14#if GTSAM_ENABLE_BOOST_SERIALIZATION
16#include <boost/config.hpp>
18#include <boost/archive/detail/basic_iarchive.hpp>
19#include <boost/move/utility_core.hpp>
21#include <boost/serialization/item_version_type.hpp>
22#include <boost/serialization/split_free.hpp>
23#include <boost/serialization/level.hpp>
24#include <boost/serialization/nvp.hpp>
25#include <boost/serialization/version.hpp>
26#include <boost/type_traits/is_pointer.hpp>
27#include <boost/serialization/detail/stack_constructor.hpp>
28#include <boost/serialization/detail/is_default_constructible.hpp>
50#if __GNUC__ >= 7 && __cplusplus >= 201703L
52namespace boost {
namespace serialization {
struct U{}; } }
53namespace std {
template<>
struct is_trivially_default_constructible<boost::serialization::U> : std::false_type {}; }
54namespace std {
template<>
struct is_trivially_copy_constructible<boost::serialization::U> : std::false_type {}; }
55namespace std {
template<>
struct is_trivially_move_constructible<boost::serialization::U> : std::false_type {}; }
58namespace std {
template<>
struct is_trivially_destructible<boost::serialization::U> : std::false_type {}; }
70#if BOOST_VERSION < 108400
74namespace serialization {
76template <
class Archive,
class T>
77void save(Archive& ar,
const std::optional<T>& t,
const unsigned int
82 static_assert(boost::serialization::detail::is_default_constructible<T>::value || boost::is_pointer<T>::value);
83 const bool tflag = t.has_value();
84 ar << boost::serialization::make_nvp(
"initialized", tflag);
86 ar << boost::serialization::make_nvp(
"value", *t);
90template <
class Archive,
class T>
91void load(Archive& ar, std::optional<T>& t,
const unsigned int ) {
93 ar >> boost::serialization::make_nvp(
"initialized", tflag);
103 ar >> boost::serialization::make_nvp(
"value", *t);
106template <
class Archive,
class T>
107void serialize(Archive& ar, std::optional<T>& t,
const unsigned int version) {
108 boost::serialization::split_free(ar, t, version);
void save(const Matrix &A, const string &s, const string &filename)
save a matrix to file, which can be loaded by matlab
Definition Matrix.cpp:154