diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt index 1584a3a35..80d030413 100644 --- a/examples/CMakeLists.txt +++ b/examples/CMakeLists.txt @@ -4,10 +4,17 @@ set (excluded_examples # if GTSAM_ENABLE_BOOST_SERIALIZATION is not set then SolverComparer.cpp will not compile if (NOT GTSAM_ENABLE_BOOST_SERIALIZATION) - set (excluded_examples - ${excluded_examples} + list (APPEND excluded_examples SolverComparer.cpp ) endif() +# Add examples to exclude if GTSAM_USE_BOOST is not set +if (NOT GTSAM_USE_BOOST) + # add to excluded examples + list (APPEND excluded_examples + # Boost examples + SolverComparer.cpp + ) +endif() gtsamAddExamplesGlob("*.cpp" "${excluded_examples}" "gtsam;gtsam_unstable;${Boost_PROGRAM_OPTIONS_LIBRARY}") diff --git a/gtsam/base/utilities.h b/gtsam/base/utilities.h index 0a05a704c..03e9636da 100644 --- a/gtsam/base/utilities.h +++ b/gtsam/base/utilities.h @@ -28,16 +28,9 @@ private: } -// boost::index_sequence was introduced in 1.66, so we'll manually define an -// implementation if user has 1.65. boost::index_sequence is used to get array -// indices that align with a parameter pack. -#include -#if BOOST_VERSION >= 106600 -#include -#else -namespace boost { -namespace mp11 { +namespace gtsam { // Adapted from https://stackoverflow.com/a/32223343/9151520 +// An adaptation of boost::mp11::index_sequence template struct index_sequence { using type = index_sequence; @@ -49,20 +42,16 @@ template struct _merge_and_renumber; template -struct _merge_and_renumber, index_sequence > +struct _merge_and_renumber, index_sequence> : index_sequence {}; } // namespace detail template -struct make_index_sequence - : detail::_merge_and_renumber< - typename make_index_sequence::type, - typename make_index_sequence::type> {}; +struct make_index_sequence : detail::_merge_and_renumber::type, + typename make_index_sequence::type> {}; template <> struct make_index_sequence<0> : index_sequence<> {}; template <> struct make_index_sequence<1> : index_sequence<0> {}; template using index_sequence_for = make_index_sequence; -} // namespace mp11 -} // namespace boost -#endif +} // namespace gtsam diff --git a/gtsam/nonlinear/NonlinearFactor.h b/gtsam/nonlinear/NonlinearFactor.h index d22409875..e8ae9fd47 100644 --- a/gtsam/nonlinear/NonlinearFactor.h +++ b/gtsam/nonlinear/NonlinearFactor.h @@ -26,7 +26,7 @@ #include #include #include -#include // boost::index_sequence +#include #ifdef GTSAM_ENABLE_BOOST_SERIALIZATION #include @@ -609,7 +609,7 @@ protected: Vector unwhitenedError( const Values& x, OptionalMatrixVecType H = nullptr) const override { - return unwhitenedError(boost::mp11::index_sequence_for{}, x, + return unwhitenedError(gtsam::index_sequence_for{}, x, H); } @@ -702,7 +702,7 @@ protected: */ template inline Vector unwhitenedError( - boost::mp11::index_sequence, // + gtsam::index_sequence, // const Values& x, OptionalMatrixVecType H = nullptr) const { if (this->active(x)) { diff --git a/gtsam_unstable/discrete/examples/CMakeLists.txt b/gtsam_unstable/discrete/examples/CMakeLists.txt index da06b7dfc..ba4e278c9 100644 --- a/gtsam_unstable/discrete/examples/CMakeLists.txt +++ b/gtsam_unstable/discrete/examples/CMakeLists.txt @@ -1,5 +1,15 @@ -set (excluded_examples - # fileToExclude.cpp -) +# disable tests if GTSAM_USE_BOOST_FEATURES is OFF +if (NOT GTSAM_USE_BOOST_FEATURES) + set (excluded_examples + # fileToExclude.cpp + "schedulingExample.cpp" + "schedulingQuals12.cpp" + "schedulingQuals13.cpp" + ) +else() + set (excluded_examples "") +endif() + + gtsamAddExamplesGlob("*.cpp" "${excluded_examples}" "gtsam_unstable") diff --git a/gtsam_unstable/examples/CMakeLists.txt b/gtsam_unstable/examples/CMakeLists.txt index b2e1ad6dd..483b0fa6c 100644 --- a/gtsam_unstable/examples/CMakeLists.txt +++ b/gtsam_unstable/examples/CMakeLists.txt @@ -1,13 +1,3 @@ -# disable tests if GTSAM_USE_BOOST_FEATURES is OFF -if (NOT GTSAM_USE_BOOST_FEATURES) - set (excluded_examples - # fileToExclude.cpp - "schedulingExample.cpp" - "schedulingQuals12.cpp" - "schedulingQuals13.cpp" - ) -else() - set (excluded_examples "") -endif() +set (excluded_examples "") gtsamAddExamplesGlob("*.cpp" "${excluded_examples}" "gtsam_unstable")