diff --git a/gtsam/base/std_optional_serialization.h b/gtsam/base/std_optional_serialization.h index f285ae931..f8c351b9c 100644 --- a/gtsam/base/std_optional_serialization.h +++ b/gtsam/base/std_optional_serialization.h @@ -17,6 +17,19 @@ #include #include #include + +//!!!!!!!!! I don't completely understand or know if this is correct but compilation works!!!!!!!!!!! +#ifdef __GNUC__ +#if __GNUC__ >= 7 && __cplusplus >= 201703L +namespace boost { namespace serialization { struct U; } } +namespace std { template<> struct is_trivially_default_constructible : std::false_type {}; } +namespace std { template<> struct is_trivially_copy_constructible : std::false_type {}; } +namespace std { template<> struct is_trivially_move_constructible : std::false_type {}; } +#endif +#endif +//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + + // function specializations must be defined in the appropriate // namespace - boost::serialization namespace boost {