diff --git a/gtsam/base/serialization.h b/gtsam/base/serialization.h index f589ecc5ec..24355c6845 100644 --- a/gtsam/base/serialization.h +++ b/gtsam/base/serialization.h @@ -19,8 +19,9 @@ #pragma once -#include +#include #include +#include #include // includes for standard serialization types @@ -40,6 +41,17 @@ #include #include +// Workaround a bug in GCC >= 7 and C++17 +// ref. https://gitlab.com/libeigen/eigen/-/issues/1676 +#ifdef __GNUC__ +#if __GNUC__ >= 7 && __cplusplus >= 201703L +namespace boost { namespace serialization { struct U; } } +namespace Eigen { namespace internal { +template<> struct traits {enum {Flags=0};}; +} } +#endif +#endif + namespace gtsam { /** @name Standard serialization