Hi, developer. I couldn't build clamp in my laptop with Ubuntu 20.04. And My boost is 1.71.0. I have install gpmp2 and gtsam. So could I ask for are you still maintaining this package? Here are some errors when I try to build clamp:
n file included from /home/wjj/clamp/clamp/prior/GaussianPriorCartesianLinearArm.h:12, from /home/wjj/clamp/clamp/prior/tests/testGaussianPriorCartesianLinearArm.cpp:17: /home/wjj/clamp/clamp/prior/GaussianPriorCartesianLinear.h: In member function ‘void clamp::GaussianPriorCartesianLinear<ROBOT>::serialize(ARCHIVE&, unsigned int)’: /home/wjj/clamp/clamp/prior/GaussianPriorCartesianLinear.h:127:50: error: expected primary-expression before ‘)’ token 127 | ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(Base); | ^ /home/wjj/clamp/clamp/prior/GaussianPriorCartesianLinear.h:127:10: error: there are no arguments to ‘BOOST_SERIALIZATION_BASE_OBJECT_NVP’ that depend on a template parameter, so a declaration of ‘BOOST_SERIALIZATION_BASE_OBJECT_NVP’ must be available [-fpermissive] 127 | ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(Base); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /home/wjj/clamp/clamp/prior/GaussianPriorCartesianLinear.h:127:10: note: (if you use ‘-fpermissive’, G++ will accept your code, but allowing the use of an undeclared name is deprecated) /home/wjj/clamp/clamp/prior/GaussianPriorCartesianLinear.h:128:10: error: there are no arguments to ‘BOOST_SERIALIZATION_NVP’ that depend on a template parameter, so a declaration of ‘BOOST_SERIALIZATION_NVP’ must be available [-fpermissive] 128 | ar & BOOST_SERIALIZATION_NVP(dof_); | ^~~~~~~~~~~~~~~~~~~~~~~ /home/wjj/clamp/clamp/prior/GaussianPriorCartesianLinear.h:129:10: error: there are no arguments to ‘BOOST_SERIALIZATION_NVP’ that depend on a template parameter, so a declaration of ‘BOOST_SERIALIZATION_NVP’ must be available [-fpermissive] 129 | ar & BOOST_SERIALIZATION_NVP(Mu_); | ^~~~~~~~~~~~~~~~~~~~~~~ /home/wjj/clamp/clamp/prior/GaussianPriorCartesianLinear.h: In instantiation of ‘class clamp::GaussianPriorCartesianLinear<gpmp2::RobotModel<gpmp2::Arm> >’: /home/wjj/clamp/clamp/prior/tests/testGaussianPriorCartesianLinearArm.cpp:50:48: required from here /home/wjj/clamp/clamp/prior/GaussianPriorCartesianLinear.h:63:46: warning: ‘gtsam::NonlinearFactor::shared_ptr clamp::GaussianPriorCartesianLinear<ROBOT>::clone() const [with ROBOT = gpmp2::RobotModel<gpmp2::Arm>; gtsam::NonlinearFactor::shared_ptr = std::shared_ptr<gtsam::NonlinearFactor>]’ can be marked override [-Wsuggest-override] 63 | virtual gtsam::NonlinearFactor::shared_ptr clone() const { | ^~~~~ /home/wjj/clamp/clamp/prior/GaussianPriorCartesianLinear.h:102:10: warning: ‘size_t clamp::GaussianPriorCartesianLinear<ROBOT>::dim() const [with ROBOT = gpmp2::RobotModel<gpmp2::Arm>; size_t = long unsigned int]’ can be marked override [-Wsuggest-override] 102 | size_t dim() const { return dof_; } | ^~~ /home/wjj/clamp/clamp/prior/GaussianPriorCartesianLinear.h:110:16: warning: ‘bool clamp::GaussianPriorCartesianLinear<ROBOT>::equals(const gtsam::NonlinearFactor&, double) const [with ROBOT = gpmp2::RobotModel<gpmp2::Arm>]’ can be marked override [-Wsuggest-override] 110 | virtual bool equals(const gtsam::NonlinearFactor& expected, double tol=1e-9) const { | ^~~~~~ /home/wjj/clamp/clamp/prior/GaussianPriorCartesianLinear.h:116:8: warning: ‘void clamp::GaussianPriorCartesianLinear<ROBOT>::print(const string&, const KeyFormatter&) const [with ROBOT = gpmp2::RobotModel<gpmp2::Arm>; std::string = std::__cxx11::basic_string<char>; gtsam::KeyFormatter = std::function<std::__cxx11::basic_string<char>(long unsigned int)>]’ can be marked override [-Wsuggest-override] 116 | void print(const std::string& s="", const gtsam::KeyFormatter& keyFormatter = gtsam::DefaultKeyFormatter) const { | ^~~~~ /home/wjj/clamp/clamp/prior/tests/testGaussianPriorCartesianLinearArm.cpp: In member function ‘virtual void GaussianPriorCartesianLinearArmFactorTest::run(TestResult&)’: /home/wjj/clamp/clamp/prior/tests/testGaussianPriorCartesianLinearArm.cpp:50:35: error: cannot declare variable ‘factor’ to be of abstract type ‘clamp::GaussianPriorCartesianLinear<gpmp2::RobotModel<gpmp2::Arm> >’ 50 | GaussianPriorCartesianLinearArm factor(Symbol('x', 0), Symbol('v', 0), end_eff, Mu, Sigma); | ^~~~~~ In file included from /home/wjj/clamp/clamp/prior/GaussianPriorCartesianLinearArm.h:12, from /home/wjj/clamp/clamp/prior/tests/testGaussianPriorCartesianLinearArm.cpp:17: /home/wjj/clamp/clamp/prior/GaussianPriorCartesianLinear.h:25:7: note: because the following virtual functions are pure within ‘clamp::GaussianPriorCartesianLinear<gpmp2::RobotModel<gpmp2::Arm> >’: 25 | class GaussianPriorCartesianLinear: public gtsam::NoiseModelFactor2< | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from /usr/local/include/gtsam/nonlinear/NonlinearFactorGraph.h:25, from /home/wjj/clamp/clamp/prior/tests/testGaussianPriorCartesianLinearArm.cpp:12: /usr/local/include/gtsam/nonlinear/NonlinearFactor.h:639:18: note: ‘gtsam::Vector gtsam::NoiseModelFactorN<ValueTypes>::evaluateError(const ValueTypes& ..., gtsam::NoiseModelFactorN<ValueTypes>::OptionalMatrixTypeT<ValueTypes>...) const [with ValueTypes = {Eigen::Matrix<double, -1, 1, 0, -1, 1>, Eigen::Matrix<double, -1, 1, 0, -1, 1>}; gtsam::Vector = Eigen::Matrix<double, -1, 1>]’ 639 | virtual Vector evaluateError(const ValueTypes&... x, | ^~~~~~~~~~~~~ /home/wjj/clamp/clamp/prior/tests/testGaussianPriorCartesianLinearArm.cpp:57:43: error: ‘function’ is not a member of ‘boost’; did you mean ‘is_function’? 57 | expectH1 = numericalDerivative11(boost::function<Vector(const Vector6&)>( | ^~~~~~~~ | is_function /home/wjj/clamp/clamp/prior/tests/testGaussianPriorCartesianLinearArm.cpp:57:58: error: expected primary-expression before ‘(’ token 57 | expectH1 = numericalDerivative11(boost::function<Vector(const Vector6&)>( | ^ /home/wjj/clamp/clamp/prior/tests/testGaussianPriorCartesianLinearArm.cpp:57:59: error: expected primary-expression before ‘const’ 57 | expectH1 = numericalDerivative11(boost::function<Vector(const Vector6&)>( | ^~~~~ /home/wjj/clamp/clamp/prior/tests/testGaussianPriorCartesianLinearArm.cpp:58:14: error: ‘bind’ is not a member of ‘boost’ 58 | boost::bind(&GaussianPriorCartesianLinearArm::evaluateError, factor, | ^~~~ /home/wjj/clamp/clamp/prior/tests/testGaussianPriorCartesianLinearArm.cpp:58:14: note: suggested alternatives: In file included from /usr/local/include/gtsam/base/OptionalJacobian.h:22, from /usr/local/include/gtsam/base/Matrix.h:27, from /home/wjj/clamp/clamp/prior/tests/testGaussianPriorCartesianLinearArm.cpp:8: /usr/include/c++/9/functional:832:5: note: ‘std::bind’ 832 | bind(_Func&& __f, _BoundArgs&&... __args) | ^~~~ In file included from /usr/include/boost/mpl/aux_/include_preprocessed.hpp:37, from /usr/include/boost/mpl/bind_fwd.hpp:32, from /usr/include/boost/mpl/bind.hpp:23, from /usr/include/boost/mpl/lambda.hpp:18, from /usr/include/boost/mpl/apply.hpp:25, from /usr/include/boost/iterator/iterator_facade.hpp:36, from /usr/include/boost/range/iterator_range_core.hpp:27, from /usr/include/boost/lexical_cast.hpp:30, from /home/wjj/clamp/clamp/prior/GaussianPriorCartesianLinear.h:11, from /home/wjj/clamp/clamp/prior/GaussianPriorCartesianLinearArm.h:12, from /home/wjj/clamp/clamp/prior/tests/testGaussianPriorCartesianLinearArm.cpp:17: /usr/include/boost/mpl/aux_/preprocessed/gcc/bind_fwd.hpp:18:8: note: ‘boost::mpl::bind’ 18 | struct bind; | ^~~~ /home/wjj/clamp/clamp/prior/tests/testGaussianPriorCartesianLinearArm.cpp:59:11: error: ‘_1’ was not declared in this scope 59 | _1, v, boost::none, boost::none)), p, 1e-6); | ^~ /home/wjj/clamp/clamp/prior/tests/testGaussianPriorCartesianLinearArm.cpp:59:11: note: suggested alternatives: In file included from /usr/include/boost/mpl/aux_/include_preprocessed.hpp:37, from /usr/include/boost/mpl/placeholders.hpp:43, from /usr/include/boost/iterator/iterator_categories.hpp:16, from /usr/include/boost/iterator/iterator_facade.hpp:13, from /usr/include/boost/range/iterator_range_core.hpp:27, from /usr/include/boost/lexical_cast.hpp:30, from /home/wjj/clamp/clamp/prior/GaussianPriorCartesianLinear.h:11, from /home/wjj/clamp/clamp/prior/GaussianPriorCartesianLinearArm.h:12, from /home/wjj/clamp/clamp/prior/tests/testGaussianPriorCartesianLinearArm.cpp:17: /usr/include/boost/mpl/aux_/preprocessed/gcc/placeholders.hpp:29:16: note: ‘mpl_::_1’ 29 | typedef arg<1> _1; | ^~ In file included from /usr/local/include/gtsam/base/OptionalJacobian.h:22, from /usr/local/include/gtsam/base/Matrix.h:27, from /home/wjj/clamp/clamp/prior/tests/testGaussianPriorCartesianLinearArm.cpp:8: /usr/include/c++/9/functional:211:34: note: ‘std::placeholders::_1’ 211 | extern const _Placeholder<1> _1; | ^~ In file included from /usr/include/boost/mpl/aux_/include_preprocessed.hpp:37, from /usr/include/boost/mpl/placeholders.hpp:43, from /usr/include/boost/iterator/iterator_categories.hpp:16, from /usr/include/boost/iterator/iterator_facade.hpp:13, from /usr/include/boost/range/iterator_range_core.hpp:27, from /usr/include/boost/lexical_cast.hpp:30, from /home/wjj/clamp/clamp/prior/GaussianPriorCartesianLinear.h:11, from /home/wjj/clamp/clamp/prior/GaussianPriorCartesianLinearArm.h:12, from /home/wjj/clamp/clamp/prior/tests/testGaussianPriorCartesianLinearArm.cpp:17: /usr/include/boost/mpl/aux_/preprocessed/gcc/placeholders.hpp:29:16: note: ‘mpl_::_1’ 29 | typedef arg<1> _1; | ^~ /usr/include/boost/mpl/aux_/preprocessed/gcc/placeholders.hpp:29:16: note: ‘mpl_::_1’ /home/wjj/clamp/clamp/prior/tests/testGaussianPriorCartesianLinearArm.cpp:60:43: error: ‘function’ is not a member of ‘boost’; did you mean ‘is_function’? 60 | expectH2 = numericalDerivative11(boost::function<Vector(const Vector6&)>( | ^~~~~~~~ | is_function /home/wjj/clamp/clamp/prior/tests/testGaussianPriorCartesianLinearArm.cpp:60:58: error: expected primary-expression before ‘(’ token 60 | expectH2 = numericalDerivative11(boost::function<Vector(const Vector6&)>( | ^ /home/wjj/clamp/clamp/prior/tests/testGaussianPriorCartesianLinearArm.cpp:60:59: error: expected primary-expression before ‘const’ 60 | expectH2 = numericalDerivative11(boost::function<Vector(const Vector6&)>( | ^~~~~ /home/wjj/clamp/clamp/prior/tests/testGaussianPriorCartesianLinearArm.cpp:61:14: error: ‘bind’ is not a member of ‘boost’ 61 | boost::bind(&GaussianPriorCartesianLinearArm::evaluateError, factor, | ^~~~ /home/wjj/clamp/clamp/prior/tests/testGaussianPriorCartesianLinearArm.cpp:61:14: note: suggested alternatives: In file included from /usr/local/include/gtsam/base/OptionalJacobian.h:22, from /usr/local/include/gtsam/base/Matrix.h:27, from /home/wjj/clamp/clamp/prior/tests/testGaussianPriorCartesianLinearArm.cpp:8: /usr/include/c++/9/functional:832:5: note: ‘std::bind’ 832 | bind(_Func&& __f, _BoundArgs&&... __args) | ^~~~ In file included from /usr/include/boost/mpl/aux_/include_preprocessed.hpp:37, from /usr/include/boost/mpl/bind_fwd.hpp:32, from /usr/include/boost/mpl/bind.hpp:23, from /usr/include/boost/mpl/lambda.hpp:18, from /usr/include/boost/mpl/apply.hpp:25, from /usr/include/boost/iterator/iterator_facade.hpp:36, from /usr/include/boost/range/iterator_range_core.hpp:27, from /usr/include/boost/lexical_cast.hpp:30, from /home/wjj/clamp/clamp/prior/GaussianPriorCartesianLinear.h:11, from /home/wjj/clamp/clamp/prior/GaussianPriorCartesianLinearArm.h:12, from /home/wjj/clamp/clamp/prior/tests/testGaussianPriorCartesianLinearArm.cpp:17: /usr/include/boost/mpl/aux_/preprocessed/gcc/bind_fwd.hpp:18:8: note: ‘boost::mpl::bind’ 18 | struct bind; | ^~~~ /home/wjj/clamp/clamp/prior/tests/testGaussianPriorCartesianLinearArm.cpp:72:43: error: ‘function’ is not a member of ‘boost’; did you mean ‘is_function’? 72 | expectH1 = numericalDerivative11(boost::function<Vector(const Vector6&)>( | ^~~~~~~~ | is_function /home/wjj/clamp/clamp/prior/tests/testGaussianPriorCartesianLinearArm.cpp:72:58: error: expected primary-expression before ‘(’ token 72 | expectH1 = numericalDerivative11(boost::function<Vector(const Vector6&)>( | ^ /home/wjj/clamp/clamp/prior/tests/testGaussianPriorCartesianLinearArm.cpp:72:59: error: expected primary-expression before ‘const’ 72 | expectH1 = numericalDerivative11(boost::function<Vector(const Vector6&)>( | ^~~~~ /home/wjj/clamp/clamp/prior/tests/testGaussianPriorCartesianLinearArm.cpp:73:14: error: ‘bind’ is not a member of ‘boost’ 73 | boost::bind(&GaussianPriorCartesianLinearArm::evaluateError, factor, | ^~~~ /home/wjj/clamp/clamp/prior/tests/testGaussianPriorCartesianLinearArm.cpp:73:14: note: suggested alternatives: In file included from /usr/local/include/gtsam/base/OptionalJacobian.h:22, from /usr/local/include/gtsam/base/Matrix.h:27, from /home/wjj/clamp/clamp/prior/tests/testGaussianPriorCartesianLinearArm.cpp:8: /usr/include/c++/9/functional:832:5: note: ‘std::bind’ 832 | bind(_Func&& __f, _BoundArgs&&... __args) | ^~~~ In file included from /usr/include/boost/mpl/aux_/include_preprocessed.hpp:37, from /usr/include/boost/mpl/bind_fwd.hpp:32, from /usr/include/boost/mpl/bind.hpp:23, from /usr/include/boost/mpl/lambda.hpp:18, from /usr/include/boost/mpl/apply.hpp:25, from /usr/include/boost/iterator/iterator_facade.hpp:36, from /usr/include/boost/range/iterator_range_core.hpp:27, from /usr/include/boost/lexical_cast.hpp:30, from /home/wjj/clamp/clamp/prior/GaussianPriorCartesianLinear.h:11, from /home/wjj/clamp/clamp/prior/GaussianPriorCartesianLinearArm.h:12, from /home/wjj/clamp/clamp/prior/tests/testGaussianPriorCartesianLinearArm.cpp:17: /usr/include/boost/mpl/aux_/preprocessed/gcc/bind_fwd.hpp:18:8: note: ‘boost::mpl::bind’ 18 | struct bind; | ^~~~ /home/wjj/clamp/clamp/prior/tests/testGaussianPriorCartesianLinearArm.cpp:75:43: error: ‘function’ is not a member of ‘boost’; did you mean ‘is_function’? 75 | expectH2 = numericalDerivative11(boost::function<Vector(const Vector6&)>( | ^~~~~~~~ | is_function /home/wjj/clamp/clamp/prior/tests/testGaussianPriorCartesianLinearArm.cpp:75:58: error: expected primary-expression before ‘(’ token 75 | expectH2 = numericalDerivative11(boost::function<Vector(const Vector6&)>( | ^ /home/wjj/clamp/clamp/prior/tests/testGaussianPriorCartesianLinearArm.cpp:75:59: error: expected primary-expression before ‘const’ 75 | expectH2 = numericalDerivative11(boost::function<Vector(const Vector6&)>( | ^~~~~ /home/wjj/clamp/clamp/prior/tests/testGaussianPriorCartesianLinearArm.cpp:76:14: error: ‘bind’ is not a member of ‘boost’ 76 | boost::bind(&GaussianPriorCartesianLinearArm::evaluateError, factor, | ^~~~ /home/wjj/clamp/clamp/prior/tests/testGaussianPriorCartesianLinearArm.cpp:76:14: note: suggested alternatives: In file included from /usr/local/include/gtsam/base/OptionalJacobian.h:22, from /usr/local/include/gtsam/base/Matrix.h:27, from /home/wjj/clamp/clamp/prior/tests/testGaussianPriorCartesianLinearArm.cpp:8: /usr/include/c++/9/functional:832:5: note: ‘std::bind’ 832 | bind(_Func&& __f, _BoundArgs&&... __args) | ^~~~ In file included from /usr/include/boost/mpl/aux_/include_preprocessed.hpp:37, from /usr/include/boost/mpl/bind_fwd.hpp:32, from /usr/include/boost/mpl/bind.hpp:23, from /usr/include/boost/mpl/lambda.hpp:18, from /usr/include/boost/mpl/apply.hpp:25, from /usr/include/boost/iterator/iterator_facade.hpp:36, from /usr/include/boost/range/iterator_range_core.hpp:27, from /usr/include/boost/lexical_cast.hpp:30, from /home/wjj/clamp/clamp/prior/GaussianPriorCartesianLinear.h:11, from /home/wjj/clamp/clamp/prior/GaussianPriorCartesianLinearArm.h:12, from /home/wjj/clamp/clamp/prior/tests/testGaussianPriorCartesianLinearArm.cpp:17: /usr/include/boost/mpl/aux_/preprocessed/gcc/bind_fwd.hpp:18:8: note: ‘boost::mpl::bind’ 18 | struct bind; | ^~~~ In file included from /home/wjj/clamp/clamp/prior/GaussianPriorCartesianLinearArm.h:12, from /home/wjj/clamp/clamp/prior/tests/testGaussianPriorCartesianLinearArm.cpp:17: /home/wjj/clamp/clamp/prior/GaussianPriorCartesianLinear.h: In instantiation of ‘gtsam::Vector clamp::GaussianPriorCartesianLinear<ROBOT>::evaluateError(const Pose&, const Velocity&, boost::optional<Eigen::Matrix<double, -1, -1>&>, boost::optional<Eigen::Matrix<double, -1, -1>&>) const [with ROBOT = gpmp2::RobotModel<gpmp2::Arm>; gtsam::Vector = Eigen::Matrix<double, -1, 1>; clamp::GaussianPriorCartesianLinear<ROBOT>::Pose = Eigen::Matrix<double, -1, 1>; clamp::GaussianPriorCartesianLinear<ROBOT>::Velocity = Eigen::Matrix<double, -1, 1>]’: /home/wjj/clamp/clamp/prior/tests/testGaussianPriorCartesianLinearArm.cpp:55:57: required from here /home/wjj/clamp/clamp/prior/GaussianPriorCartesianLinear.h:82:16: error: ‘const Robot’ {aka ‘const class gpmp2::RobotModel<gpmp2::Arm>’} has no member named ‘sphereCentersAndVels’; did you mean ‘sphereCenters’? 82 | end_eff_.sphereCentersAndVels(p, v, px, vx, J_px_p, J_vx_v); | ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~ | sphereCenters /home/wjj/clamp/clamp/prior/GaussianPriorCartesianLinear.h:84:16: error: ‘const Robot’ {aka ‘const class gpmp2::RobotModel<gpmp2::Arm>’} has no member named ‘sphereCentersAndVels’; did you mean ‘sphereCenters’? 84 | end_eff_.sphereCentersAndVels(p, v, px, vx); | ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~ | sphereCenters /home/wjj/clamp/clamp/prior/GaussianPriorCartesianLinear.h: In instantiation of ‘gtsam::NonlinearFactor::shared_ptr clamp::GaussianPriorCartesianLinear<ROBOT>::clone() const [with ROBOT = gpmp2::RobotModel<gpmp2::Arm>; gtsam::NonlinearFactor::shared_ptr = std::shared_ptr<gtsam::NonlinearFactor>]’: /home/wjj/clamp/clamp/prior/GaussianPriorCartesianLinear.h:63:46: required from here /home/wjj/clamp/clamp/prior/GaussianPriorCartesianLinear.h:66:44: error: invalid new-expression of abstract class type ‘clamp::GaussianPriorCartesianLinear<gpmp2::RobotModel<gpmp2::Arm> >’ 66 | gtsam::NonlinearFactor::shared_ptr(new This(*this))); } | ^~~~~~~~~~~~~~~ make[3]: *** [clamp/prior/CMakeFiles/testGaussianPriorCartesianLinearArm.dir/build.make:76: clamp/prior/CMakeFiles/testGaussianPriorCartesianLinearArm.dir/tests/testGaussianPriorCartesianLinearArm.cpp.o] Error 1 make[2]: *** [CMakeFiles/Makefile2:433: clamp/prior/CMakeFiles/testGaussianPriorCartesianLinearArm.dir/all] Error 2 make[1]: *** [CMakeFiles/Makefile2:152: CMakeFiles/check.dir/rule] Error 2 make: *** [Makefile:179: check] Error 2
P.S. I have tried to fix some bug due to different version of Boost. If Possible, Could you give me some instructions?
Hi, developer. I couldn't build clamp in my laptop with Ubuntu 20.04. And My boost is 1.71.0. I have install gpmp2 and gtsam. So could I ask for are you still maintaining this package? Here are some errors when I try to build clamp:
n file included from /home/wjj/clamp/clamp/prior/GaussianPriorCartesianLinearArm.h:12, from /home/wjj/clamp/clamp/prior/tests/testGaussianPriorCartesianLinearArm.cpp:17: /home/wjj/clamp/clamp/prior/GaussianPriorCartesianLinear.h: In member function ‘void clamp::GaussianPriorCartesianLinear<ROBOT>::serialize(ARCHIVE&, unsigned int)’: /home/wjj/clamp/clamp/prior/GaussianPriorCartesianLinear.h:127:50: error: expected primary-expression before ‘)’ token 127 | ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(Base); | ^ /home/wjj/clamp/clamp/prior/GaussianPriorCartesianLinear.h:127:10: error: there are no arguments to ‘BOOST_SERIALIZATION_BASE_OBJECT_NVP’ that depend on a template parameter, so a declaration of ‘BOOST_SERIALIZATION_BASE_OBJECT_NVP’ must be available [-fpermissive] 127 | ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(Base); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /home/wjj/clamp/clamp/prior/GaussianPriorCartesianLinear.h:127:10: note: (if you use ‘-fpermissive’, G++ will accept your code, but allowing the use of an undeclared name is deprecated) /home/wjj/clamp/clamp/prior/GaussianPriorCartesianLinear.h:128:10: error: there are no arguments to ‘BOOST_SERIALIZATION_NVP’ that depend on a template parameter, so a declaration of ‘BOOST_SERIALIZATION_NVP’ must be available [-fpermissive] 128 | ar & BOOST_SERIALIZATION_NVP(dof_); | ^~~~~~~~~~~~~~~~~~~~~~~ /home/wjj/clamp/clamp/prior/GaussianPriorCartesianLinear.h:129:10: error: there are no arguments to ‘BOOST_SERIALIZATION_NVP’ that depend on a template parameter, so a declaration of ‘BOOST_SERIALIZATION_NVP’ must be available [-fpermissive] 129 | ar & BOOST_SERIALIZATION_NVP(Mu_); | ^~~~~~~~~~~~~~~~~~~~~~~ /home/wjj/clamp/clamp/prior/GaussianPriorCartesianLinear.h: In instantiation of ‘class clamp::GaussianPriorCartesianLinear<gpmp2::RobotModel<gpmp2::Arm> >’: /home/wjj/clamp/clamp/prior/tests/testGaussianPriorCartesianLinearArm.cpp:50:48: required from here /home/wjj/clamp/clamp/prior/GaussianPriorCartesianLinear.h:63:46: warning: ‘gtsam::NonlinearFactor::shared_ptr clamp::GaussianPriorCartesianLinear<ROBOT>::clone() const [with ROBOT = gpmp2::RobotModel<gpmp2::Arm>; gtsam::NonlinearFactor::shared_ptr = std::shared_ptr<gtsam::NonlinearFactor>]’ can be marked override [-Wsuggest-override] 63 | virtual gtsam::NonlinearFactor::shared_ptr clone() const { | ^~~~~ /home/wjj/clamp/clamp/prior/GaussianPriorCartesianLinear.h:102:10: warning: ‘size_t clamp::GaussianPriorCartesianLinear<ROBOT>::dim() const [with ROBOT = gpmp2::RobotModel<gpmp2::Arm>; size_t = long unsigned int]’ can be marked override [-Wsuggest-override] 102 | size_t dim() const { return dof_; } | ^~~ /home/wjj/clamp/clamp/prior/GaussianPriorCartesianLinear.h:110:16: warning: ‘bool clamp::GaussianPriorCartesianLinear<ROBOT>::equals(const gtsam::NonlinearFactor&, double) const [with ROBOT = gpmp2::RobotModel<gpmp2::Arm>]’ can be marked override [-Wsuggest-override] 110 | virtual bool equals(const gtsam::NonlinearFactor& expected, double tol=1e-9) const { | ^~~~~~ /home/wjj/clamp/clamp/prior/GaussianPriorCartesianLinear.h:116:8: warning: ‘void clamp::GaussianPriorCartesianLinear<ROBOT>::print(const string&, const KeyFormatter&) const [with ROBOT = gpmp2::RobotModel<gpmp2::Arm>; std::string = std::__cxx11::basic_string<char>; gtsam::KeyFormatter = std::function<std::__cxx11::basic_string<char>(long unsigned int)>]’ can be marked override [-Wsuggest-override] 116 | void print(const std::string& s="", const gtsam::KeyFormatter& keyFormatter = gtsam::DefaultKeyFormatter) const { | ^~~~~ /home/wjj/clamp/clamp/prior/tests/testGaussianPriorCartesianLinearArm.cpp: In member function ‘virtual void GaussianPriorCartesianLinearArmFactorTest::run(TestResult&)’: /home/wjj/clamp/clamp/prior/tests/testGaussianPriorCartesianLinearArm.cpp:50:35: error: cannot declare variable ‘factor’ to be of abstract type ‘clamp::GaussianPriorCartesianLinear<gpmp2::RobotModel<gpmp2::Arm> >’ 50 | GaussianPriorCartesianLinearArm factor(Symbol('x', 0), Symbol('v', 0), end_eff, Mu, Sigma); | ^~~~~~ In file included from /home/wjj/clamp/clamp/prior/GaussianPriorCartesianLinearArm.h:12, from /home/wjj/clamp/clamp/prior/tests/testGaussianPriorCartesianLinearArm.cpp:17: /home/wjj/clamp/clamp/prior/GaussianPriorCartesianLinear.h:25:7: note: because the following virtual functions are pure within ‘clamp::GaussianPriorCartesianLinear<gpmp2::RobotModel<gpmp2::Arm> >’: 25 | class GaussianPriorCartesianLinear: public gtsam::NoiseModelFactor2< | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from /usr/local/include/gtsam/nonlinear/NonlinearFactorGraph.h:25, from /home/wjj/clamp/clamp/prior/tests/testGaussianPriorCartesianLinearArm.cpp:12: /usr/local/include/gtsam/nonlinear/NonlinearFactor.h:639:18: note: ‘gtsam::Vector gtsam::NoiseModelFactorN<ValueTypes>::evaluateError(const ValueTypes& ..., gtsam::NoiseModelFactorN<ValueTypes>::OptionalMatrixTypeT<ValueTypes>...) const [with ValueTypes = {Eigen::Matrix<double, -1, 1, 0, -1, 1>, Eigen::Matrix<double, -1, 1, 0, -1, 1>}; gtsam::Vector = Eigen::Matrix<double, -1, 1>]’ 639 | virtual Vector evaluateError(const ValueTypes&... x, | ^~~~~~~~~~~~~ /home/wjj/clamp/clamp/prior/tests/testGaussianPriorCartesianLinearArm.cpp:57:43: error: ‘function’ is not a member of ‘boost’; did you mean ‘is_function’? 57 | expectH1 = numericalDerivative11(boost::function<Vector(const Vector6&)>( | ^~~~~~~~ | is_function /home/wjj/clamp/clamp/prior/tests/testGaussianPriorCartesianLinearArm.cpp:57:58: error: expected primary-expression before ‘(’ token 57 | expectH1 = numericalDerivative11(boost::function<Vector(const Vector6&)>( | ^ /home/wjj/clamp/clamp/prior/tests/testGaussianPriorCartesianLinearArm.cpp:57:59: error: expected primary-expression before ‘const’ 57 | expectH1 = numericalDerivative11(boost::function<Vector(const Vector6&)>( | ^~~~~ /home/wjj/clamp/clamp/prior/tests/testGaussianPriorCartesianLinearArm.cpp:58:14: error: ‘bind’ is not a member of ‘boost’ 58 | boost::bind(&GaussianPriorCartesianLinearArm::evaluateError, factor, | ^~~~ /home/wjj/clamp/clamp/prior/tests/testGaussianPriorCartesianLinearArm.cpp:58:14: note: suggested alternatives: In file included from /usr/local/include/gtsam/base/OptionalJacobian.h:22, from /usr/local/include/gtsam/base/Matrix.h:27, from /home/wjj/clamp/clamp/prior/tests/testGaussianPriorCartesianLinearArm.cpp:8: /usr/include/c++/9/functional:832:5: note: ‘std::bind’ 832 | bind(_Func&& __f, _BoundArgs&&... __args) | ^~~~ In file included from /usr/include/boost/mpl/aux_/include_preprocessed.hpp:37, from /usr/include/boost/mpl/bind_fwd.hpp:32, from /usr/include/boost/mpl/bind.hpp:23, from /usr/include/boost/mpl/lambda.hpp:18, from /usr/include/boost/mpl/apply.hpp:25, from /usr/include/boost/iterator/iterator_facade.hpp:36, from /usr/include/boost/range/iterator_range_core.hpp:27, from /usr/include/boost/lexical_cast.hpp:30, from /home/wjj/clamp/clamp/prior/GaussianPriorCartesianLinear.h:11, from /home/wjj/clamp/clamp/prior/GaussianPriorCartesianLinearArm.h:12, from /home/wjj/clamp/clamp/prior/tests/testGaussianPriorCartesianLinearArm.cpp:17: /usr/include/boost/mpl/aux_/preprocessed/gcc/bind_fwd.hpp:18:8: note: ‘boost::mpl::bind’ 18 | struct bind; | ^~~~ /home/wjj/clamp/clamp/prior/tests/testGaussianPriorCartesianLinearArm.cpp:59:11: error: ‘_1’ was not declared in this scope 59 | _1, v, boost::none, boost::none)), p, 1e-6); | ^~ /home/wjj/clamp/clamp/prior/tests/testGaussianPriorCartesianLinearArm.cpp:59:11: note: suggested alternatives: In file included from /usr/include/boost/mpl/aux_/include_preprocessed.hpp:37, from /usr/include/boost/mpl/placeholders.hpp:43, from /usr/include/boost/iterator/iterator_categories.hpp:16, from /usr/include/boost/iterator/iterator_facade.hpp:13, from /usr/include/boost/range/iterator_range_core.hpp:27, from /usr/include/boost/lexical_cast.hpp:30, from /home/wjj/clamp/clamp/prior/GaussianPriorCartesianLinear.h:11, from /home/wjj/clamp/clamp/prior/GaussianPriorCartesianLinearArm.h:12, from /home/wjj/clamp/clamp/prior/tests/testGaussianPriorCartesianLinearArm.cpp:17: /usr/include/boost/mpl/aux_/preprocessed/gcc/placeholders.hpp:29:16: note: ‘mpl_::_1’ 29 | typedef arg<1> _1; | ^~ In file included from /usr/local/include/gtsam/base/OptionalJacobian.h:22, from /usr/local/include/gtsam/base/Matrix.h:27, from /home/wjj/clamp/clamp/prior/tests/testGaussianPriorCartesianLinearArm.cpp:8: /usr/include/c++/9/functional:211:34: note: ‘std::placeholders::_1’ 211 | extern const _Placeholder<1> _1; | ^~ In file included from /usr/include/boost/mpl/aux_/include_preprocessed.hpp:37, from /usr/include/boost/mpl/placeholders.hpp:43, from /usr/include/boost/iterator/iterator_categories.hpp:16, from /usr/include/boost/iterator/iterator_facade.hpp:13, from /usr/include/boost/range/iterator_range_core.hpp:27, from /usr/include/boost/lexical_cast.hpp:30, from /home/wjj/clamp/clamp/prior/GaussianPriorCartesianLinear.h:11, from /home/wjj/clamp/clamp/prior/GaussianPriorCartesianLinearArm.h:12, from /home/wjj/clamp/clamp/prior/tests/testGaussianPriorCartesianLinearArm.cpp:17: /usr/include/boost/mpl/aux_/preprocessed/gcc/placeholders.hpp:29:16: note: ‘mpl_::_1’ 29 | typedef arg<1> _1; | ^~ /usr/include/boost/mpl/aux_/preprocessed/gcc/placeholders.hpp:29:16: note: ‘mpl_::_1’ /home/wjj/clamp/clamp/prior/tests/testGaussianPriorCartesianLinearArm.cpp:60:43: error: ‘function’ is not a member of ‘boost’; did you mean ‘is_function’? 60 | expectH2 = numericalDerivative11(boost::function<Vector(const Vector6&)>( | ^~~~~~~~ | is_function /home/wjj/clamp/clamp/prior/tests/testGaussianPriorCartesianLinearArm.cpp:60:58: error: expected primary-expression before ‘(’ token 60 | expectH2 = numericalDerivative11(boost::function<Vector(const Vector6&)>( | ^ /home/wjj/clamp/clamp/prior/tests/testGaussianPriorCartesianLinearArm.cpp:60:59: error: expected primary-expression before ‘const’ 60 | expectH2 = numericalDerivative11(boost::function<Vector(const Vector6&)>( | ^~~~~ /home/wjj/clamp/clamp/prior/tests/testGaussianPriorCartesianLinearArm.cpp:61:14: error: ‘bind’ is not a member of ‘boost’ 61 | boost::bind(&GaussianPriorCartesianLinearArm::evaluateError, factor, | ^~~~ /home/wjj/clamp/clamp/prior/tests/testGaussianPriorCartesianLinearArm.cpp:61:14: note: suggested alternatives: In file included from /usr/local/include/gtsam/base/OptionalJacobian.h:22, from /usr/local/include/gtsam/base/Matrix.h:27, from /home/wjj/clamp/clamp/prior/tests/testGaussianPriorCartesianLinearArm.cpp:8: /usr/include/c++/9/functional:832:5: note: ‘std::bind’ 832 | bind(_Func&& __f, _BoundArgs&&... __args) | ^~~~ In file included from /usr/include/boost/mpl/aux_/include_preprocessed.hpp:37, from /usr/include/boost/mpl/bind_fwd.hpp:32, from /usr/include/boost/mpl/bind.hpp:23, from /usr/include/boost/mpl/lambda.hpp:18, from /usr/include/boost/mpl/apply.hpp:25, from /usr/include/boost/iterator/iterator_facade.hpp:36, from /usr/include/boost/range/iterator_range_core.hpp:27, from /usr/include/boost/lexical_cast.hpp:30, from /home/wjj/clamp/clamp/prior/GaussianPriorCartesianLinear.h:11, from /home/wjj/clamp/clamp/prior/GaussianPriorCartesianLinearArm.h:12, from /home/wjj/clamp/clamp/prior/tests/testGaussianPriorCartesianLinearArm.cpp:17: /usr/include/boost/mpl/aux_/preprocessed/gcc/bind_fwd.hpp:18:8: note: ‘boost::mpl::bind’ 18 | struct bind; | ^~~~ /home/wjj/clamp/clamp/prior/tests/testGaussianPriorCartesianLinearArm.cpp:72:43: error: ‘function’ is not a member of ‘boost’; did you mean ‘is_function’? 72 | expectH1 = numericalDerivative11(boost::function<Vector(const Vector6&)>( | ^~~~~~~~ | is_function /home/wjj/clamp/clamp/prior/tests/testGaussianPriorCartesianLinearArm.cpp:72:58: error: expected primary-expression before ‘(’ token 72 | expectH1 = numericalDerivative11(boost::function<Vector(const Vector6&)>( | ^ /home/wjj/clamp/clamp/prior/tests/testGaussianPriorCartesianLinearArm.cpp:72:59: error: expected primary-expression before ‘const’ 72 | expectH1 = numericalDerivative11(boost::function<Vector(const Vector6&)>( | ^~~~~ /home/wjj/clamp/clamp/prior/tests/testGaussianPriorCartesianLinearArm.cpp:73:14: error: ‘bind’ is not a member of ‘boost’ 73 | boost::bind(&GaussianPriorCartesianLinearArm::evaluateError, factor, | ^~~~ /home/wjj/clamp/clamp/prior/tests/testGaussianPriorCartesianLinearArm.cpp:73:14: note: suggested alternatives: In file included from /usr/local/include/gtsam/base/OptionalJacobian.h:22, from /usr/local/include/gtsam/base/Matrix.h:27, from /home/wjj/clamp/clamp/prior/tests/testGaussianPriorCartesianLinearArm.cpp:8: /usr/include/c++/9/functional:832:5: note: ‘std::bind’ 832 | bind(_Func&& __f, _BoundArgs&&... __args) | ^~~~ In file included from /usr/include/boost/mpl/aux_/include_preprocessed.hpp:37, from /usr/include/boost/mpl/bind_fwd.hpp:32, from /usr/include/boost/mpl/bind.hpp:23, from /usr/include/boost/mpl/lambda.hpp:18, from /usr/include/boost/mpl/apply.hpp:25, from /usr/include/boost/iterator/iterator_facade.hpp:36, from /usr/include/boost/range/iterator_range_core.hpp:27, from /usr/include/boost/lexical_cast.hpp:30, from /home/wjj/clamp/clamp/prior/GaussianPriorCartesianLinear.h:11, from /home/wjj/clamp/clamp/prior/GaussianPriorCartesianLinearArm.h:12, from /home/wjj/clamp/clamp/prior/tests/testGaussianPriorCartesianLinearArm.cpp:17: /usr/include/boost/mpl/aux_/preprocessed/gcc/bind_fwd.hpp:18:8: note: ‘boost::mpl::bind’ 18 | struct bind; | ^~~~ /home/wjj/clamp/clamp/prior/tests/testGaussianPriorCartesianLinearArm.cpp:75:43: error: ‘function’ is not a member of ‘boost’; did you mean ‘is_function’? 75 | expectH2 = numericalDerivative11(boost::function<Vector(const Vector6&)>( | ^~~~~~~~ | is_function /home/wjj/clamp/clamp/prior/tests/testGaussianPriorCartesianLinearArm.cpp:75:58: error: expected primary-expression before ‘(’ token 75 | expectH2 = numericalDerivative11(boost::function<Vector(const Vector6&)>( | ^ /home/wjj/clamp/clamp/prior/tests/testGaussianPriorCartesianLinearArm.cpp:75:59: error: expected primary-expression before ‘const’ 75 | expectH2 = numericalDerivative11(boost::function<Vector(const Vector6&)>( | ^~~~~ /home/wjj/clamp/clamp/prior/tests/testGaussianPriorCartesianLinearArm.cpp:76:14: error: ‘bind’ is not a member of ‘boost’ 76 | boost::bind(&GaussianPriorCartesianLinearArm::evaluateError, factor, | ^~~~ /home/wjj/clamp/clamp/prior/tests/testGaussianPriorCartesianLinearArm.cpp:76:14: note: suggested alternatives: In file included from /usr/local/include/gtsam/base/OptionalJacobian.h:22, from /usr/local/include/gtsam/base/Matrix.h:27, from /home/wjj/clamp/clamp/prior/tests/testGaussianPriorCartesianLinearArm.cpp:8: /usr/include/c++/9/functional:832:5: note: ‘std::bind’ 832 | bind(_Func&& __f, _BoundArgs&&... __args) | ^~~~ In file included from /usr/include/boost/mpl/aux_/include_preprocessed.hpp:37, from /usr/include/boost/mpl/bind_fwd.hpp:32, from /usr/include/boost/mpl/bind.hpp:23, from /usr/include/boost/mpl/lambda.hpp:18, from /usr/include/boost/mpl/apply.hpp:25, from /usr/include/boost/iterator/iterator_facade.hpp:36, from /usr/include/boost/range/iterator_range_core.hpp:27, from /usr/include/boost/lexical_cast.hpp:30, from /home/wjj/clamp/clamp/prior/GaussianPriorCartesianLinear.h:11, from /home/wjj/clamp/clamp/prior/GaussianPriorCartesianLinearArm.h:12, from /home/wjj/clamp/clamp/prior/tests/testGaussianPriorCartesianLinearArm.cpp:17: /usr/include/boost/mpl/aux_/preprocessed/gcc/bind_fwd.hpp:18:8: note: ‘boost::mpl::bind’ 18 | struct bind; | ^~~~ In file included from /home/wjj/clamp/clamp/prior/GaussianPriorCartesianLinearArm.h:12, from /home/wjj/clamp/clamp/prior/tests/testGaussianPriorCartesianLinearArm.cpp:17: /home/wjj/clamp/clamp/prior/GaussianPriorCartesianLinear.h: In instantiation of ‘gtsam::Vector clamp::GaussianPriorCartesianLinear<ROBOT>::evaluateError(const Pose&, const Velocity&, boost::optional<Eigen::Matrix<double, -1, -1>&>, boost::optional<Eigen::Matrix<double, -1, -1>&>) const [with ROBOT = gpmp2::RobotModel<gpmp2::Arm>; gtsam::Vector = Eigen::Matrix<double, -1, 1>; clamp::GaussianPriorCartesianLinear<ROBOT>::Pose = Eigen::Matrix<double, -1, 1>; clamp::GaussianPriorCartesianLinear<ROBOT>::Velocity = Eigen::Matrix<double, -1, 1>]’: /home/wjj/clamp/clamp/prior/tests/testGaussianPriorCartesianLinearArm.cpp:55:57: required from here /home/wjj/clamp/clamp/prior/GaussianPriorCartesianLinear.h:82:16: error: ‘const Robot’ {aka ‘const class gpmp2::RobotModel<gpmp2::Arm>’} has no member named ‘sphereCentersAndVels’; did you mean ‘sphereCenters’? 82 | end_eff_.sphereCentersAndVels(p, v, px, vx, J_px_p, J_vx_v); | ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~ | sphereCenters /home/wjj/clamp/clamp/prior/GaussianPriorCartesianLinear.h:84:16: error: ‘const Robot’ {aka ‘const class gpmp2::RobotModel<gpmp2::Arm>’} has no member named ‘sphereCentersAndVels’; did you mean ‘sphereCenters’? 84 | end_eff_.sphereCentersAndVels(p, v, px, vx); | ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~ | sphereCenters /home/wjj/clamp/clamp/prior/GaussianPriorCartesianLinear.h: In instantiation of ‘gtsam::NonlinearFactor::shared_ptr clamp::GaussianPriorCartesianLinear<ROBOT>::clone() const [with ROBOT = gpmp2::RobotModel<gpmp2::Arm>; gtsam::NonlinearFactor::shared_ptr = std::shared_ptr<gtsam::NonlinearFactor>]’: /home/wjj/clamp/clamp/prior/GaussianPriorCartesianLinear.h:63:46: required from here /home/wjj/clamp/clamp/prior/GaussianPriorCartesianLinear.h:66:44: error: invalid new-expression of abstract class type ‘clamp::GaussianPriorCartesianLinear<gpmp2::RobotModel<gpmp2::Arm> >’ 66 | gtsam::NonlinearFactor::shared_ptr(new This(*this))); } | ^~~~~~~~~~~~~~~ make[3]: *** [clamp/prior/CMakeFiles/testGaussianPriorCartesianLinearArm.dir/build.make:76: clamp/prior/CMakeFiles/testGaussianPriorCartesianLinearArm.dir/tests/testGaussianPriorCartesianLinearArm.cpp.o] Error 1 make[2]: *** [CMakeFiles/Makefile2:433: clamp/prior/CMakeFiles/testGaussianPriorCartesianLinearArm.dir/all] Error 2 make[1]: *** [CMakeFiles/Makefile2:152: CMakeFiles/check.dir/rule] Error 2 make: *** [Makefile:179: check] Error 2
P.S. I have tried to fix some bug due to different version of Boost. If Possible, Could you give me some instructions?