Compile issues on develop (merging traits)

Issue #198 resolved
Zhaoyang Lv created an issue
[  1%] Built target CppUnitLite
[  9%] Built target wrap_lib
[  9%] Built target wrap
[ 31%] Built target metis
[ 72%] Built target gtsam
[ 74%] Built target gtsam_wrapper
[ 74%] Built target CameraResectioning
[ 74%] Built target CreateSFMExampleData
[ 74%] Built target LocalizationExample
[ 75%] Built target METISOrderingExample
[ 75%] Built target OdometryExample
[ 75%] Built target PlanarSLAMExample
[ 75%] Built target Pose2SLAMExample
[ 77%] Built target Pose2SLAMExample_g2o
[ 77%] Built target Pose2SLAMExample_graph
[ 77%] Built target Pose2SLAMExample_graphviz
[ 77%] Built target Pose2SLAMExample_lago
[ 77%] Built target Pose2SLAMwSPCG
[ 79%] Built target Pose3SLAMExample_changeKeys
[ 79%] Built target Pose3SLAMExample_g2o
[ 79%] Built target Pose3SLAMExample_initializePose3Chordal
[ 79%] Built target Pose3SLAMExample_initializePose3Gradient
[ 79%] Built target RangeISAMExample_plaza2
[ 81%] Built target SFMExample
[ 81%] Built target SFMExample_SmartFactor
[ 81%] Built target SFMExample_bal
[ 81%] Built target SelfCalibrationExample
[ 83%] Built target SimpleRotation
[ 85%] Building CXX object examples/CMakeFiles/SolverComparer.dir/SolverComparer.cpp.o
/home/zhaoyang/Develop/gtsam/examples/SolverComparer.cpp: In function 'void runIncremental()':
/home/zhaoyang/Develop/gtsam/examples/SolverComparer.cpp:272:19: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
       if((key1 >= firstStep && key1 < key2) || (key2 >= firstStep && key2 < key1)) {
                   ^
/home/zhaoyang/Develop/gtsam/examples/SolverComparer.cpp:272:57: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
       if((key1 >= firstStep && key1 < key2) || (key2 >= firstStep && key2 < key1)) {
                                                         ^
/home/zhaoyang/Develop/gtsam/examples/SolverComparer.cpp:277:19: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
       if((key2 >= firstStep && key1 < key2) || (key1 >= firstStep && key2 < key1)) {
                   ^
/home/zhaoyang/Develop/gtsam/examples/SolverComparer.cpp:277:57: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
       if((key2 >= firstStep && key1 < key2) || (key1 >= firstStep && key2 < key1)) {
                                                         ^
/home/zhaoyang/Develop/gtsam/examples/SolverComparer.cpp:298:109: error: 'Dim' is not a member of 'Pose {aka gtsam::Pose2}'
     newFactors.push_back(boost::make_shared<PriorFactor<Pose> >(firstPose, Pose(), noiseModel::Unit::Create(Pose::Dim())));
                                                                                                             ^
/home/zhaoyang/Develop/gtsam/examples/SolverComparer.cpp:306:107: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   for(size_t step = firstPose; nextMeasurement < datasetMeasurements.size() && (lastStep == -1 || step <= lastStep); ++step)
                                                                                                           ^
/home/zhaoyang/Develop/gtsam/examples/SolverComparer.cpp: In function 'void runBatch()':
/home/zhaoyang/Develop/gtsam/examples/SolverComparer.cpp:477:101: error: 'Dim' is not a member of 'Pose {aka gtsam::Pose2}'
   measurements.push_back(boost::make_shared<PriorFactor<Pose> >(0, Pose(), noiseModel::Unit::Create(Pose::Dim())));
                                                                                                     ^
In file included from /home/zhaoyang/Develop/gtsam/gtsam/nonlinear/Values.h:27:0,
                 from /home/zhaoyang/Develop/gtsam/gtsam/nonlinear/NonlinearFactor.h:23,
                 from /home/zhaoyang/Develop/gtsam/gtsam/nonlinear/NonlinearFactorGraph.h:25,
                 from /home/zhaoyang/Develop/gtsam/gtsam/slam/dataset.h:21,
                 from /home/zhaoyang/Develop/gtsam/examples/SolverComparer.cpp:36:
/home/zhaoyang/Develop/gtsam/gtsam/base/GenericValue.h: In instantiation of 'class gtsam::GenericValue<gtsam::Value>':
/usr/include/boost/type_traits/is_polymorphic.hpp:106:1:   required from 'struct boost::is_polymorphic<gtsam::GenericValue<gtsam::Value> >'
/usr/include/boost/serialization/export.hpp:137:9:   required from 'const boost::archive::detail::extra_detail::guid_initializer<T>& boost::archive::detail::extra_detail::guid_initializer<T>::export_guid() const [with T = gtsam::GenericValue<gtsam::Value>]'
/home/zhaoyang/Develop/gtsam/examples/SolverComparer.cpp:75:1:   required from here
/home/zhaoyang/Develop/gtsam/gtsam/base/GenericValue.h:45:5: error: cannot declare field 'gtsam::GenericValue<gtsam::Value>::value_' to be of abstract type 'gtsam::Value'
   T value_; ///< The wrapped value
     ^
In file included from /home/zhaoyang/Develop/gtsam/gtsam/base/GenericValue.h:23:0,
                 from /home/zhaoyang/Develop/gtsam/gtsam/nonlinear/Values.h:27,
                 from /home/zhaoyang/Develop/gtsam/gtsam/nonlinear/NonlinearFactor.h:23,
                 from /home/zhaoyang/Develop/gtsam/gtsam/nonlinear/NonlinearFactorGraph.h:25,
                 from /home/zhaoyang/Develop/gtsam/gtsam/slam/dataset.h:21,
                 from /home/zhaoyang/Develop/gtsam/examples/SolverComparer.cpp:36:
/home/zhaoyang/Develop/gtsam/gtsam/base/Value.h:81:22: note:   because the following virtual functions are pure within 'gtsam::Value':
   class GTSAM_EXPORT Value {
                      ^
In file included from /home/zhaoyang/Develop/gtsam/gtsam/base/GenericValue.h:23:0,
                 from /home/zhaoyang/Develop/gtsam/gtsam/nonlinear/Values.h:27,
                 from /home/zhaoyang/Develop/gtsam/gtsam/nonlinear/NonlinearFactor.h:23,
                 from /home/zhaoyang/Develop/gtsam/gtsam/nonlinear/NonlinearFactorGraph.h:25,
                 from /home/zhaoyang/Develop/gtsam/gtsam/slam/dataset.h:21,
                 from /home/zhaoyang/Develop/gtsam/examples/SolverComparer.cpp:36:
/home/zhaoyang/Develop/gtsam/gtsam/base/Value.h:85:20: note:    virtual gtsam::Value* gtsam::Value::clone_() const
     virtual Value* clone_() const = 0;
                    ^
/home/zhaoyang/Develop/gtsam/gtsam/base/Value.h:88:18: note:    virtual void gtsam::Value::deallocate_() const
     virtual void deallocate_() const = 0;
                  ^
/home/zhaoyang/Develop/gtsam/gtsam/base/Value.h:91:38: note:    virtual boost::shared_ptr<gtsam::Value> gtsam::Value::clone() const
     virtual boost::shared_ptr<Value> clone() const = 0;
                                      ^
/home/zhaoyang/Develop/gtsam/gtsam/base/Value.h:94:18: note:    virtual bool gtsam::Value::equals_(const gtsam::Value&, double) const
     virtual bool equals_(const Value& other, double tol = 1e-9) const = 0;
                  ^
/home/zhaoyang/Develop/gtsam/gtsam/base/Value.h:97:18: note:    virtual void gtsam::Value::print(const string&) const
     virtual void print(const std::string& str = "") const = 0;
                  ^
/home/zhaoyang/Develop/gtsam/gtsam/base/Value.h:104:20: note:   virtual std::size_t gtsam::Value::dim() const
     virtual size_t dim() const = 0;
                    ^
/home/zhaoyang/Develop/gtsam/gtsam/base/Value.h:112:20: note:   virtual gtsam::Value* gtsam::Value::retract_(const Vector&) const
     virtual Value* retract_(const Vector& delta) const = 0;
                    ^
/home/zhaoyang/Develop/gtsam/gtsam/base/Value.h:120:20: note:   virtual gtsam::Vector gtsam::Value::localCoordinates_(const gtsam::Value&) const
     virtual Vector localCoordinates_(const Value& value) const = 0;
                    ^
In file included from /home/zhaoyang/Develop/gtsam/gtsam/nonlinear/Values.h:27:0,
                 from /home/zhaoyang/Develop/gtsam/gtsam/nonlinear/NonlinearFactor.h:23,
                 from /home/zhaoyang/Develop/gtsam/gtsam/nonlinear/NonlinearFactorGraph.h:25,
                 from /home/zhaoyang/Develop/gtsam/gtsam/slam/dataset.h:21,
                 from /home/zhaoyang/Develop/gtsam/examples/SolverComparer.cpp:36:
/home/zhaoyang/Develop/gtsam/gtsam/base/GenericValue.h: In instantiation of 'class gtsam::GenericValue<gtsam::NonlinearFactor>':
/usr/include/boost/type_traits/is_polymorphic.hpp:106:1:   required from 'struct boost::is_polymorphic<gtsam::GenericValue<gtsam::NonlinearFactor> >'
/usr/include/boost/serialization/export.hpp:137:9:   required from 'const boost::archive::detail::extra_detail::guid_initializer<T>& boost::archive::detail::extra_detail::guid_initializer<T>::export_guid() const [with T = gtsam::GenericValue<gtsam::NonlinearFactor>]'
/home/zhaoyang/Develop/gtsam/examples/SolverComparer.cpp:79:1:   required from here
/home/zhaoyang/Develop/gtsam/gtsam/base/GenericValue.h:45:5: error: cannot declare field 'gtsam::GenericValue<gtsam::NonlinearFactor>::value_' to be of abstract type 'gtsam::NonlinearFactor'
   T value_; ///< The wrapped value
     ^
In file included from /home/zhaoyang/Develop/gtsam/gtsam/nonlinear/NonlinearFactorGraph.h:25:0,
                 from /home/zhaoyang/Develop/gtsam/gtsam/slam/dataset.h:21,
                 from /home/zhaoyang/Develop/gtsam/examples/SolverComparer.cpp:36:
/home/zhaoyang/Develop/gtsam/gtsam/nonlinear/NonlinearFactor.h:52:20: note:   because the following virtual functions are pure within 'gtsam::NonlinearFactor':
 class GTSAM_EXPORT NonlinearFactor: public Factor {
                    ^
/home/zhaoyang/Develop/gtsam/gtsam/nonlinear/NonlinearFactor.h:100:18: note:    virtual double gtsam::NonlinearFactor::error(const gtsam::Values&) const
   virtual double error(const Values& c) const = 0;
                  ^
/home/zhaoyang/Develop/gtsam/gtsam/nonlinear/NonlinearFactor.h:103:18: note:    virtual std::size_t gtsam::NonlinearFactor::dim() const
   virtual size_t dim() const = 0;
                  ^
/home/zhaoyang/Develop/gtsam/gtsam/nonlinear/NonlinearFactor.h:119:3: note:     virtual boost::shared_ptr<gtsam::GaussianFactor> gtsam::NonlinearFactor::linearize(const gtsam::Values&) const
   linearize(const Values& c) const = 0;
   ^
In file included from /home/zhaoyang/Develop/gtsam/gtsam/nonlinear/Values.h:27:0,
                 from /home/zhaoyang/Develop/gtsam/gtsam/nonlinear/NonlinearFactor.h:23,
                 from /home/zhaoyang/Develop/gtsam/gtsam/nonlinear/NonlinearFactorGraph.h:25,
                 from /home/zhaoyang/Develop/gtsam/gtsam/slam/dataset.h:21,
                 from /home/zhaoyang/Develop/gtsam/examples/SolverComparer.cpp:36:
/home/zhaoyang/Develop/gtsam/gtsam/base/GenericValue.h: In instantiation of 'class gtsam::GenericValue<gtsam::NoiseModelFactor>':
/usr/include/boost/type_traits/is_polymorphic.hpp:106:1:   required from 'struct boost::is_polymorphic<gtsam::GenericValue<gtsam::NoiseModelFactor> >'
/usr/include/boost/serialization/export.hpp:137:9:   required from 'const boost::archive::detail::extra_detail::guid_initializer<T>& boost::archive::detail::extra_detail::guid_initializer<T>::export_guid() const [with T = gtsam::GenericValue<gtsam::NoiseModelFactor>]'
/home/zhaoyang/Develop/gtsam/examples/SolverComparer.cpp:80:1:   required from here
/home/zhaoyang/Develop/gtsam/gtsam/base/GenericValue.h:45:5: error: cannot declare field 'gtsam::GenericValue<gtsam::NoiseModelFactor>::value_' to be of abstract type 'gtsam::NoiseModelFactor'
   T value_; ///< The wrapped value
     ^
In file included from /home/zhaoyang/Develop/gtsam/gtsam/nonlinear/NonlinearFactorGraph.h:25:0,
                 from /home/zhaoyang/Develop/gtsam/gtsam/slam/dataset.h:21,
                 from /home/zhaoyang/Develop/gtsam/examples/SolverComparer.cpp:36:
/home/zhaoyang/Develop/gtsam/gtsam/nonlinear/NonlinearFactor.h:162:20: note:   because the following virtual functions are pure within 'gtsam::NoiseModelFactor':
 class GTSAM_EXPORT NoiseModelFactor: public NonlinearFactor {
                    ^
/home/zhaoyang/Develop/gtsam/gtsam/nonlinear/NonlinearFactor.h:221:18: note:    virtual gtsam::Vector gtsam::NoiseModelFactor::unwhitenedError(const gtsam::Values&, boost::optional<std::vector<Eigen::Matrix<double, -1, -1> >&>) const
   virtual Vector unwhitenedError(const Values& x,
                  ^
In file included from /home/zhaoyang/Develop/gtsam/gtsam/nonlinear/Values.h:27:0,
                 from /home/zhaoyang/Develop/gtsam/gtsam/nonlinear/NonlinearFactor.h:23,
                 from /home/zhaoyang/Develop/gtsam/gtsam/nonlinear/NonlinearFactorGraph.h:25,
                 from /home/zhaoyang/Develop/gtsam/gtsam/slam/dataset.h:21,
                 from /home/zhaoyang/Develop/gtsam/examples/SolverComparer.cpp:36:
/home/zhaoyang/Develop/gtsam/gtsam/base/GenericValue.h: In instantiation of 'class gtsam::GenericValue<gtsam::NoiseModelFactor1<gtsam::Pose2> >':
/usr/include/boost/type_traits/is_polymorphic.hpp:106:1:   required from 'struct boost::is_polymorphic<gtsam::GenericValue<gtsam::NoiseModelFactor1<gtsam::Pose2> > >'
/usr/include/boost/serialization/export.hpp:137:9:   required from 'const boost::archive::detail::extra_detail::guid_initializer<T>& boost::archive::detail::extra_detail::guid_initializer<T>::export_guid() const [with T = gtsam::GenericValue<gtsam::NoiseModelFactor1<gtsam::Pose2> >]'
/home/zhaoyang/Develop/gtsam/examples/SolverComparer.cpp:81:1:   required from here
/home/zhaoyang/Develop/gtsam/gtsam/base/GenericValue.h:45:5: error: cannot declare field 'gtsam::GenericValue<gtsam::NoiseModelFactor1<gtsam::Pose2> >::value_' to be of abstract type 'gtsam::NoiseModelFactor1<gtsam::Pose2>'
   T value_; ///< The wrapped value
     ^
In file included from /home/zhaoyang/Develop/gtsam/gtsam/nonlinear/NonlinearFactorGraph.h:25:0,
                 from /home/zhaoyang/Develop/gtsam/gtsam/slam/dataset.h:21,
                 from /home/zhaoyang/Develop/gtsam/examples/SolverComparer.cpp:36:
/home/zhaoyang/Develop/gtsam/gtsam/nonlinear/NonlinearFactor.h:270:7: note:   because the following virtual functions are pure within 'gtsam::NoiseModelFactor1<gtsam::Pose2>':
 class NoiseModelFactor1: public NoiseModelFactor {
       ^
/home/zhaoyang/Develop/gtsam/gtsam/nonlinear/NonlinearFactor.h:320:18: note:    gtsam::Vector gtsam::NoiseModelFactor1<VALUE>::evaluateError(const X&, boost::optional<Eigen::Matrix<double, -1, -1>&>) const [with VALUE = gtsam::Pose2; gtsam::Vector = Eigen::Matrix<double, -1, 1>; gtsam::NoiseModelFactor1<VALUE>::X = gtsam::Pose2]
   virtual Vector evaluateError(const X& x, boost::optional<Matrix&> H =
                  ^
In file included from /home/zhaoyang/Develop/gtsam/gtsam/nonlinear/Values.h:27:0,
                 from /home/zhaoyang/Develop/gtsam/gtsam/nonlinear/NonlinearFactor.h:23,
                 from /home/zhaoyang/Develop/gtsam/gtsam/nonlinear/NonlinearFactorGraph.h:25,
                 from /home/zhaoyang/Develop/gtsam/gtsam/slam/dataset.h:21,
                 from /home/zhaoyang/Develop/gtsam/examples/SolverComparer.cpp:36:
/home/zhaoyang/Develop/gtsam/gtsam/base/GenericValue.h: In instantiation of 'class gtsam::GenericValue<gtsam::NoiseModelFactor2<gtsam::Pose2, gtsam::Pose2> >':
/usr/include/boost/type_traits/is_polymorphic.hpp:106:1:   required from 'struct boost::is_polymorphic<gtsam::GenericValue<gtsam::NoiseModelFactor2<gtsam::Pose2, gtsam::Pose2> > >'
/usr/include/boost/serialization/export.hpp:137:9:   required from 'const boost::archive::detail::extra_detail::guid_initializer<T>& boost::archive::detail::extra_detail::guid_initializer<T>::export_guid() const [with T = gtsam::GenericValue<gtsam::NoiseModelFactor2<gtsam::Pose2, gtsam::Pose2> >]'
/home/zhaoyang/Develop/gtsam/examples/SolverComparer.cpp:82:1:   required from here
/home/zhaoyang/Develop/gtsam/gtsam/base/GenericValue.h:45:5: error: cannot declare field 'gtsam::GenericValue<gtsam::NoiseModelFactor2<gtsam::Pose2, gtsam::Pose2> >::value_' to be of abstract type 'gtsam::NoiseModelFactor2<gtsam::Pose2, gtsam::Pose2>'
   T value_; ///< The wrapped value
     ^
In file included from /home/zhaoyang/Develop/gtsam/gtsam/nonlinear/NonlinearFactorGraph.h:25:0,
                 from /home/zhaoyang/Develop/gtsam/gtsam/slam/dataset.h:21,
                 from /home/zhaoyang/Develop/gtsam/examples/SolverComparer.cpp:36:
/home/zhaoyang/Develop/gtsam/gtsam/nonlinear/NonlinearFactor.h:339:7: note:   because the following virtual functions are pure within 'gtsam::NoiseModelFactor2<gtsam::Pose2, gtsam::Pose2>':
 class NoiseModelFactor2: public NoiseModelFactor {
       ^
/home/zhaoyang/Develop/gtsam/gtsam/nonlinear/NonlinearFactor.h:396:3: note:     gtsam::Vector gtsam::NoiseModelFactor2<VALUE1, VALUE2>::evaluateError(const X1&, const X2&, boost::optional<Eigen::Matrix<double, -1, -1>&>, boost::optional<Eigen::Matrix<double, -1, -1>&>) const [with VALUE1 = gtsam::Pose2; VALUE2 = gtsam::Pose2; gtsam::Vector = Eigen::Matrix<double, -1, 1>; gtsam::NoiseModelFactor2<VALUE1, VALUE2>::X1 = gtsam::Pose2; gtsam::NoiseModelFactor2<VALUE1, VALUE2>::X2 = gtsam::Pose2]
   evaluateError(const X1&, const X2&, boost::optional<Matrix&> H1 =
   ^
In file included from /home/zhaoyang/Develop/gtsam/gtsam/nonlinear/Values.h:27:0,
                 from /home/zhaoyang/Develop/gtsam/gtsam/nonlinear/NonlinearFactor.h:23,
                 from /home/zhaoyang/Develop/gtsam/gtsam/nonlinear/NonlinearFactorGraph.h:25,
                 from /home/zhaoyang/Develop/gtsam/gtsam/slam/dataset.h:21,
                 from /home/zhaoyang/Develop/gtsam/examples/SolverComparer.cpp:36:
/home/zhaoyang/Develop/gtsam/gtsam/base/GenericValue.h: In instantiation of 'class gtsam::GenericValue<gtsam::noiseModel::Base>':
/usr/include/boost/type_traits/is_polymorphic.hpp:106:1:   required from 'struct boost::is_polymorphic<gtsam::GenericValue<gtsam::noiseModel::Base> >'
/usr/include/boost/serialization/export.hpp:137:9:   required from 'const boost::archive::detail::extra_detail::guid_initializer<T>& boost::archive::detail::extra_detail::guid_initializer<T>::export_guid() const [with T = gtsam::GenericValue<gtsam::noiseModel::Base>]'
/home/zhaoyang/Develop/gtsam/examples/SolverComparer.cpp:86:1:   required from here
/home/zhaoyang/Develop/gtsam/gtsam/base/GenericValue.h:45:5: error: cannot declare field 'gtsam::GenericValue<gtsam::noiseModel::Base>::value_' to be of abstract type 'gtsam::noiseModel::Base'
   T value_; ///< The wrapped value
     ^
In file included from /home/zhaoyang/Develop/gtsam/gtsam/nonlinear/NonlinearFactor.h:24:0,
                 from /home/zhaoyang/Develop/gtsam/gtsam/nonlinear/NonlinearFactorGraph.h:25,
                 from /home/zhaoyang/Develop/gtsam/gtsam/slam/dataset.h:21,
                 from /home/zhaoyang/Develop/gtsam/examples/SolverComparer.cpp:36:
/home/zhaoyang/Develop/gtsam/gtsam/linear/NoiseModel.h:51:24: note:   because the following virtual functions are pure within 'gtsam::noiseModel::Base':
     class GTSAM_EXPORT Base {
                        ^
/home/zhaoyang/Develop/gtsam/gtsam/linear/NoiseModel.h:74:20: note:     virtual void gtsam::noiseModel::Base::print(const string&) const
       virtual void print(const std::string& name = "") const = 0;
                    ^
/home/zhaoyang/Develop/gtsam/gtsam/linear/NoiseModel.h:76:20: note:     virtual bool gtsam::noiseModel::Base::equals(const gtsam::noiseModel::Base&, double) const
       virtual bool equals(const Base& expected, double tol=1e-9) const = 0;
                    ^
/home/zhaoyang/Develop/gtsam/gtsam/linear/NoiseModel.h:81:22: note:     virtual gtsam::Vector gtsam::noiseModel::Base::whiten(const Vector&) const
       virtual Vector whiten(const Vector& v) const = 0;
                      ^
/home/zhaoyang/Develop/gtsam/gtsam/linear/NoiseModel.h:86:22: note:     virtual gtsam::Vector gtsam::noiseModel::Base::unwhiten(const Vector&) const
       virtual Vector unwhiten(const Vector& v) const = 0;
                      ^
/home/zhaoyang/Develop/gtsam/gtsam/linear/NoiseModel.h:88:22: note:     virtual double gtsam::noiseModel::Base::distance(const Vector&) const
       virtual double distance(const Vector& v) const = 0;
                      ^
/home/zhaoyang/Develop/gtsam/gtsam/linear/NoiseModel.h:90:20: note:     virtual void gtsam::noiseModel::Base::WhitenSystem(std::vector<Eigen::Matrix<double, -1, -1> >&, gtsam::Vector&) const
       virtual void WhitenSystem(std::vector<Matrix>& A, Vector& b) const = 0;
                    ^
/home/zhaoyang/Develop/gtsam/gtsam/linear/NoiseModel.h:91:20: note:     virtual void gtsam::noiseModel::Base::WhitenSystem(gtsam::Matrix&, gtsam::Vector&) const
       virtual void WhitenSystem(Matrix& A, Vector& b) const = 0;
                    ^
/home/zhaoyang/Develop/gtsam/gtsam/linear/NoiseModel.h:92:20: note:     virtual void gtsam::noiseModel::Base::WhitenSystem(gtsam::Matrix&, gtsam::Matrix&, gtsam::Vector&) const
       virtual void WhitenSystem(Matrix& A1, Matrix& A2, Vector& b) const = 0;
                    ^
/home/zhaoyang/Develop/gtsam/gtsam/linear/NoiseModel.h:93:20: note:     virtual void gtsam::noiseModel::Base::WhitenSystem(gtsam::Matrix&, gtsam::Matrix&, gtsam::Matrix&, gtsam::Vector&) const
       virtual void WhitenSystem(Matrix& A1, Matrix& A2, Matrix& A3, Vector& b) const = 0;
                    ^
/home/zhaoyang/Develop/gtsam/gtsam/base/GenericValue.h: In instantiation of 'gtsam::GenericValue<T>::GenericValue() [with T = gtsam::noiseModel::Isotropic]':
/usr/include/boost/serialization/access.hpp:132:9:   required from 'static void boost::serialization::access::construct(T*) [with T = gtsam::GenericValue<gtsam::noiseModel::Isotropic>]'
/usr/include/boost/serialization/serialization.hpp:93:24:   required from 'void boost::serialization::load_construct_data(Archive&, T*, unsigned int) [with Archive = boost::archive::binary_iarchive; T = gtsam::GenericValue<gtsam::noiseModel::Isotropic>]'
/usr/include/boost/serialization/serialization.hpp:158:37:   required from 'void boost::serialization::load_construct_data_adl(Archive&, T*, unsigned int) [with Archive = boost::archive::binary_iarchive; T = gtsam::GenericValue<gtsam::noiseModel::Isotropic>]'
/usr/include/boost/archive/detail/iserializer.hpp:323:9:   required from 'void boost::archive::detail::pointer_iserializer<Archive, T>::load_object_ptr(boost::archive::detail::basic_iarchive&, void*&, unsigned int) const [with Archive = boost::archive::binary_iarchive; T = gtsam::GenericValue<gtsam::noiseModel::Isotropic>]'
/usr/include/boost/archive/detail/iserializer.hpp:203:1:   required from 'class boost::archive::detail::pointer_iserializer<boost::archive::binary_iarchive, gtsam::GenericValue<gtsam::noiseModel::Isotropic> >'
/usr/include/boost/serialization/export.hpp:66:31:   [ skipping 2 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/usr/include/boost/serialization/export.hpp:86:1:   required from 'struct boost::archive::detail::ptr_serialization_support<boost::archive::binary_iarchive, gtsam::GenericValue<gtsam::noiseModel::Isotropic> >'
/usr/include/boost/archive/detail/register_archive.hpp:25:8:   required from 'struct boost::archive::detail::_ptr_serialization_support<boost::archive::binary_iarchive, gtsam::GenericValue<gtsam::noiseModel::Isotropic> >'
/usr/include/boost/archive/binary_iarchive.hpp:96:1:   required by substitution of 'template<class Serializable> typename boost::archive::detail::_ptr_serialization_support<boost::archive::binary_iarchive, Serializable>::type boost::archive::detail::instantiate_ptr_serialization(Serializable*, boost::archive::binary_iarchive*, boost::archive::detail::adl_tag) [with Serializable = gtsam::GenericValue<gtsam::noiseModel::Isotropic>]'
/usr/include/boost/serialization/export.hpp:132:58:   required from 'void boost::archive::detail::extra_detail::guid_initializer<T>::export_guid(mpl_::false_) const [with T = gtsam::GenericValue<gtsam::noiseModel::Isotropic>; mpl_::false_ = mpl_::bool_<false>]'
/usr/include/boost/serialization/export.hpp:142:61:   required from 'const boost::archive::detail::extra_detail::guid_initializer<T>& boost::archive::detail::extra_detail::guid_initializer<T>::export_guid() const [with T = gtsam::GenericValue<gtsam::noiseModel::Isotropic>]'
/home/zhaoyang/Develop/gtsam/examples/SolverComparer.cpp:87:1:   required from here
/home/zhaoyang/Develop/gtsam/gtsam/linear/NoiseModel.h:514:7: error: 'gtsam::noiseModel::Isotropic::Isotropic()' is protected
       Isotropic() : Diagonal(repeat(1, 1.0)),sigma_(1.0),invsigma_(1.0) {}
       ^
In file included from /home/zhaoyang/Develop/gtsam/gtsam/nonlinear/Values.h:27:0,
                 from /home/zhaoyang/Develop/gtsam/gtsam/nonlinear/NonlinearFactor.h:23,
                 from /home/zhaoyang/Develop/gtsam/gtsam/nonlinear/NonlinearFactorGraph.h:25,
                 from /home/zhaoyang/Develop/gtsam/gtsam/slam/dataset.h:21,
                 from /home/zhaoyang/Develop/gtsam/examples/SolverComparer.cpp:36:
/home/zhaoyang/Develop/gtsam/gtsam/base/GenericValue.h:49:17: error: within this context
   GenericValue(){}
                 ^
In file included from /home/zhaoyang/Develop/gtsam/gtsam/nonlinear/NonlinearFactor.h:24:0,
                 from /home/zhaoyang/Develop/gtsam/gtsam/nonlinear/NonlinearFactorGraph.h:25,
                 from /home/zhaoyang/Develop/gtsam/gtsam/slam/dataset.h:21,
                 from /home/zhaoyang/Develop/gtsam/examples/SolverComparer.cpp:36:
/home/zhaoyang/Develop/gtsam/gtsam/base/GenericValue.h: In instantiation of 'gtsam::GenericValue<T>::GenericValue() [with T = gtsam::noiseModel::Gaussian]':
/usr/include/boost/serialization/access.hpp:132:9:   required from 'static void boost::serialization::access::construct(T*) [with T = gtsam::GenericValue<gtsam::noiseModel::Gaussian>]'
/usr/include/boost/serialization/serialization.hpp:93:24:   required from 'void boost::serialization::load_construct_data(Archive&, T*, unsigned int) [with Archive = boost::archive::binary_iarchive; T = gtsam::GenericValue<gtsam::noiseModel::Gaussian>]'
/usr/include/boost/serialization/serialization.hpp:158:37:   required from 'void boost::serialization::load_construct_data_adl(Archive&, T*, unsigned int) [with Archive = boost::archive::binary_iarchive; T = gtsam::GenericValue<gtsam::noiseModel::Gaussian>]'
/usr/include/boost/archive/detail/iserializer.hpp:323:9:   required from 'void boost::archive::detail::pointer_iserializer<Archive, T>::load_object_ptr(boost::archive::detail::basic_iarchive&, void*&, unsigned int) const [with Archive = boost::archive::binary_iarchive; T = gtsam::GenericValue<gtsam::noiseModel::Gaussian>]'
/usr/include/boost/archive/detail/iserializer.hpp:203:1:   required from 'class boost::archive::detail::pointer_iserializer<boost::archive::binary_iarchive, gtsam::GenericValue<gtsam::noiseModel::Gaussian> >'
/usr/include/boost/serialization/export.hpp:66:31:   [ skipping 2 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/usr/include/boost/serialization/export.hpp:86:1:   required from 'struct boost::archive::detail::ptr_serialization_support<boost::archive::binary_iarchive, gtsam::GenericValue<gtsam::noiseModel::Gaussian> >'
/usr/include/boost/archive/detail/register_archive.hpp:25:8:   required from 'struct boost::archive::detail::_ptr_serialization_support<boost::archive::binary_iarchive, gtsam::GenericValue<gtsam::noiseModel::Gaussian> >'
/usr/include/boost/archive/binary_iarchive.hpp:96:1:   required by substitution of 'template<class Serializable> typename boost::archive::detail::_ptr_serialization_support<boost::archive::binary_iarchive, Serializable>::type boost::archive::detail::instantiate_ptr_serialization(Serializable*, boost::archive::binary_iarchive*, boost::archive::detail::adl_tag) [with Serializable = gtsam::GenericValue<gtsam::noiseModel::Gaussian>]'
/usr/include/boost/serialization/export.hpp:132:58:   required from 'void boost::archive::detail::extra_detail::guid_initializer<T>::export_guid(mpl_::false_) const [with T = gtsam::GenericValue<gtsam::noiseModel::Gaussian>; mpl_::false_ = mpl_::bool_<false>]'
/usr/include/boost/serialization/export.hpp:142:61:   required from 'const boost::archive::detail::extra_detail::guid_initializer<T>& boost::archive::detail::extra_detail::guid_initializer<T>::export_guid() const [with T = gtsam::GenericValue<gtsam::noiseModel::Gaussian>]'
/home/zhaoyang/Develop/gtsam/examples/SolverComparer.cpp:88:1:   required from here
/home/zhaoyang/Develop/gtsam/gtsam/linear/NoiseModel.h:159:7: error: 'gtsam::noiseModel::Gaussian::Gaussian(std::size_t, const boost::optional<Eigen::Matrix<double, -1, -1> >&)' is protected
       Gaussian(size_t dim = 1, const boost::optional<Matrix>& sqrt_information = boost::none) :
       ^
In file included from /home/zhaoyang/Develop/gtsam/gtsam/nonlinear/Values.h:27:0,
                 from /home/zhaoyang/Develop/gtsam/gtsam/nonlinear/NonlinearFactor.h:23,
                 from /home/zhaoyang/Develop/gtsam/gtsam/nonlinear/NonlinearFactorGraph.h:25,
                 from /home/zhaoyang/Develop/gtsam/gtsam/slam/dataset.h:21,
                 from /home/zhaoyang/Develop/gtsam/examples/SolverComparer.cpp:36:
/home/zhaoyang/Develop/gtsam/gtsam/base/GenericValue.h:49:17: error: within this context
   GenericValue(){}
                 ^
In file included from /home/zhaoyang/Develop/gtsam/gtsam/nonlinear/NonlinearFactor.h:24:0,
                 from /home/zhaoyang/Develop/gtsam/gtsam/nonlinear/NonlinearFactorGraph.h:25,
                 from /home/zhaoyang/Develop/gtsam/gtsam/slam/dataset.h:21,
                 from /home/zhaoyang/Develop/gtsam/examples/SolverComparer.cpp:36:
/home/zhaoyang/Develop/gtsam/gtsam/base/GenericValue.h: In instantiation of 'gtsam::GenericValue<T>::GenericValue() [with T = gtsam::noiseModel::Diagonal]':
/usr/include/boost/serialization/access.hpp:132:9:   required from 'static void boost::serialization::access::construct(T*) [with T = gtsam::GenericValue<gtsam::noiseModel::Diagonal>]'
/usr/include/boost/serialization/serialization.hpp:93:24:   required from 'void boost::serialization::load_construct_data(Archive&, T*, unsigned int) [with Archive = boost::archive::binary_iarchive; T = gtsam::GenericValue<gtsam::noiseModel::Diagonal>]'
/usr/include/boost/serialization/serialization.hpp:158:37:   required from 'void boost::serialization::load_construct_data_adl(Archive&, T*, unsigned int) [with Archive = boost::archive::binary_iarchive; T = gtsam::GenericValue<gtsam::noiseModel::Diagonal>]'
/usr/include/boost/archive/detail/iserializer.hpp:323:9:   required from 'void boost::archive::detail::pointer_iserializer<Archive, T>::load_object_ptr(boost::archive::detail::basic_iarchive&, void*&, unsigned int) const [with Archive = boost::archive::binary_iarchive; T = gtsam::GenericValue<gtsam::noiseModel::Diagonal>]'
/usr/include/boost/archive/detail/iserializer.hpp:203:1:   required from 'class boost::archive::detail::pointer_iserializer<boost::archive::binary_iarchive, gtsam::GenericValue<gtsam::noiseModel::Diagonal> >'
/usr/include/boost/serialization/export.hpp:66:31:   [ skipping 2 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/usr/include/boost/serialization/export.hpp:86:1:   required from 'struct boost::archive::detail::ptr_serialization_support<boost::archive::binary_iarchive, gtsam::GenericValue<gtsam::noiseModel::Diagonal> >'
/usr/include/boost/archive/detail/register_archive.hpp:25:8:   required from 'struct boost::archive::detail::_ptr_serialization_support<boost::archive::binary_iarchive, gtsam::GenericValue<gtsam::noiseModel::Diagonal> >'
/usr/include/boost/archive/binary_iarchive.hpp:96:1:   required by substitution of 'template<class Serializable> typename boost::archive::detail::_ptr_serialization_support<boost::archive::binary_iarchive, Serializable>::type boost::archive::detail::instantiate_ptr_serialization(Serializable*, boost::archive::binary_iarchive*, boost::archive::detail::adl_tag) [with Serializable = gtsam::GenericValue<gtsam::noiseModel::Diagonal>]'
/usr/include/boost/serialization/export.hpp:132:58:   required from 'void boost::archive::detail::extra_detail::guid_initializer<T>::export_guid(mpl_::false_) const [with T = gtsam::GenericValue<gtsam::noiseModel::Diagonal>; mpl_::false_ = mpl_::bool_<false>]'
/usr/include/boost/serialization/export.hpp:142:61:   required from 'const boost::archive::detail::extra_detail::guid_initializer<T>& boost::archive::detail::extra_detail::guid_initializer<T>::export_guid() const [with T = gtsam::GenericValue<gtsam::noiseModel::Diagonal>]'
/home/zhaoyang/Develop/gtsam/examples/SolverComparer.cpp:89:1:   required from here
/home/zhaoyang/Develop/gtsam/gtsam/linear/NoiseModel.h:272:7: error: 'gtsam::noiseModel::Diagonal::Diagonal()' is protected
       Diagonal();
       ^
In file included from /home/zhaoyang/Develop/gtsam/gtsam/nonlinear/Values.h:27:0,
                 from /home/zhaoyang/Develop/gtsam/gtsam/nonlinear/NonlinearFactor.h:23,
                 from /home/zhaoyang/Develop/gtsam/gtsam/nonlinear/NonlinearFactorGraph.h:25,
                 from /home/zhaoyang/Develop/gtsam/gtsam/slam/dataset.h:21,
                 from /home/zhaoyang/Develop/gtsam/examples/SolverComparer.cpp:36:
/home/zhaoyang/Develop/gtsam/gtsam/base/GenericValue.h:49:17: error: within this context
   GenericValue(){}
                 ^
In file included from /home/zhaoyang/Develop/gtsam/gtsam/nonlinear/NonlinearFactor.h:24:0,
                 from /home/zhaoyang/Develop/gtsam/gtsam/nonlinear/NonlinearFactorGraph.h:25,
                 from /home/zhaoyang/Develop/gtsam/gtsam/slam/dataset.h:21,
                 from /home/zhaoyang/Develop/gtsam/examples/SolverComparer.cpp:36:
/home/zhaoyang/Develop/gtsam/gtsam/base/GenericValue.h: In instantiation of 'gtsam::GenericValue<T>::GenericValue() [with T = gtsam::noiseModel::Unit]':
/usr/include/boost/serialization/access.hpp:132:9:   required from 'static void boost::serialization::access::construct(T*) [with T = gtsam::GenericValue<gtsam::noiseModel::Unit>]'
/usr/include/boost/serialization/serialization.hpp:93:24:   required from 'void boost::serialization::load_construct_data(Archive&, T*, unsigned int) [with Archive = boost::archive::binary_iarchive; T = gtsam::GenericValue<gtsam::noiseModel::Unit>]'
/usr/include/boost/serialization/serialization.hpp:158:37:   required from 'void boost::serialization::load_construct_data_adl(Archive&, T*, unsigned int) [with Archive = boost::archive::binary_iarchive; T = gtsam::GenericValue<gtsam::noiseModel::Unit>]'
/usr/include/boost/archive/detail/iserializer.hpp:323:9:   required from 'void boost::archive::detail::pointer_iserializer<Archive, T>::load_object_ptr(boost::archive::detail::basic_iarchive&, void*&, unsigned int) const [with Archive = boost::archive::binary_iarchive; T = gtsam::GenericValue<gtsam::noiseModel::Unit>]'
/usr/include/boost/archive/detail/iserializer.hpp:203:1:   required from 'class boost::archive::detail::pointer_iserializer<boost::archive::binary_iarchive, gtsam::GenericValue<gtsam::noiseModel::Unit> >'
/usr/include/boost/serialization/export.hpp:66:31:   [ skipping 2 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/usr/include/boost/serialization/export.hpp:86:1:   required from 'struct boost::archive::detail::ptr_serialization_support<boost::archive::binary_iarchive, gtsam::GenericValue<gtsam::noiseModel::Unit> >'
/usr/include/boost/archive/detail/register_archive.hpp:25:8:   required from 'struct boost::archive::detail::_ptr_serialization_support<boost::archive::binary_iarchive, gtsam::GenericValue<gtsam::noiseModel::Unit> >'
/usr/include/boost/archive/binary_iarchive.hpp:96:1:   required by substitution of 'template<class Serializable> typename boost::archive::detail::_ptr_serialization_support<boost::archive::binary_iarchive, Serializable>::type boost::archive::detail::instantiate_ptr_serialization(Serializable*, boost::archive::binary_iarchive*, boost::archive::detail::adl_tag) [with Serializable = gtsam::GenericValue<gtsam::noiseModel::Unit>]'
/usr/include/boost/serialization/export.hpp:132:58:   required from 'void boost::archive::detail::extra_detail::guid_initializer<T>::export_guid(mpl_::false_) const [with T = gtsam::GenericValue<gtsam::noiseModel::Unit>; mpl_::false_ = mpl_::bool_<false>]'
/usr/include/boost/serialization/export.hpp:142:61:   required from 'const boost::archive::detail::extra_detail::guid_initializer<T>& boost::archive::detail::extra_detail::guid_initializer<T>::export_guid() const [with T = gtsam::GenericValue<gtsam::noiseModel::Unit>]'
/home/zhaoyang/Develop/gtsam/examples/SolverComparer.cpp:90:1:   required from here
/home/zhaoyang/Develop/gtsam/gtsam/linear/NoiseModel.h:575:7: error: 'gtsam::noiseModel::Unit::Unit(std::size_t)' is protected
       Unit(size_t dim=1): Isotropic(dim,1.0) {}
       ^
In file included from /home/zhaoyang/Develop/gtsam/gtsam/nonlinear/Values.h:27:0,
                 from /home/zhaoyang/Develop/gtsam/gtsam/nonlinear/NonlinearFactor.h:23,
                 from /home/zhaoyang/Develop/gtsam/gtsam/nonlinear/NonlinearFactorGraph.h:25,
                 from /home/zhaoyang/Develop/gtsam/gtsam/slam/dataset.h:21,
                 from /home/zhaoyang/Develop/gtsam/examples/SolverComparer.cpp:36:
/home/zhaoyang/Develop/gtsam/gtsam/base/GenericValue.h:49:17: error: within this context
   GenericValue(){}
                 ^
/home/zhaoyang/Develop/gtsam/gtsam/base/GenericValue.h: In instantiation of 'std::size_t gtsam::GenericValue<T>::dim() const [with T = gtsam::noiseModel::Unit; std::size_t = long unsigned int]':
/home/zhaoyang/Develop/gtsam/examples/SolverComparer.cpp:611:1:   required from here
/home/zhaoyang/Develop/gtsam/gtsam/base/GenericValue.h:150:44: error: 'GetDimension' is not a member of 'gtsam::traits<gtsam::noiseModel::Unit>'
       return traits<T>::GetDimension(value_);
                                            ^
/home/zhaoyang/Develop/gtsam/gtsam/base/GenericValue.h: In instantiation of 'gtsam::Value* gtsam::GenericValue<T>::retract_(const Vector&) const [with T = gtsam::noiseModel::Unit; gtsam::Vector = Eigen::Matrix<double, -1, 1>]':
/home/zhaoyang/Develop/gtsam/examples/SolverComparer.cpp:611:1:   required from here
/home/zhaoyang/Develop/gtsam/gtsam/base/GenericValue.h:117:81: error: 'Retract' is not a member of 'gtsam::traits<gtsam::noiseModel::Unit>'
       const T retractResult = traits<T>::Retract(GenericValue<T>::value(), delta);
                                                                                 ^
/home/zhaoyang/Develop/gtsam/gtsam/base/GenericValue.h: In instantiation of 'gtsam::Vector gtsam::GenericValue<T>::localCoordinates_(const gtsam::Value&) const [with T = gtsam::noiseModel::Unit; gtsam::Vector = Eigen::Matrix<double, -1, 1>]':
/home/zhaoyang/Develop/gtsam/examples/SolverComparer.cpp:611:1:   required from here
/home/zhaoyang/Develop/gtsam/gtsam/base/GenericValue.h:135:78: error: 'Local' is not a member of 'gtsam::traits<gtsam::noiseModel::Unit>'
       return traits<T>::Local(GenericValue<T>::value(), genericValue2.value());
                                                                              ^
/home/zhaoyang/Develop/gtsam/gtsam/base/GenericValue.h: In instantiation of 'std::size_t gtsam::GenericValue<T>::dim() const [with T = gtsam::noiseModel::Diagonal; std::size_t = long unsigned int]':
/home/zhaoyang/Develop/gtsam/examples/SolverComparer.cpp:611:1:   required from here
/home/zhaoyang/Develop/gtsam/gtsam/base/GenericValue.h:150:44: error: 'GetDimension' is not a member of 'gtsam::traits<gtsam::noiseModel::Diagonal>'
       return traits<T>::GetDimension(value_);
                                            ^
/home/zhaoyang/Develop/gtsam/gtsam/base/GenericValue.h: In instantiation of 'gtsam::Value* gtsam::GenericValue<T>::retract_(const Vector&) const [with T = gtsam::noiseModel::Diagonal; gtsam::Vector = Eigen::Matrix<double, -1, 1>]':
/home/zhaoyang/Develop/gtsam/examples/SolverComparer.cpp:611:1:   required from here
/home/zhaoyang/Develop/gtsam/gtsam/base/GenericValue.h:117:81: error: 'Retract' is not a member of 'gtsam::traits<gtsam::noiseModel::Diagonal>'
       const T retractResult = traits<T>::Retract(GenericValue<T>::value(), delta);
                                                                                 ^
/home/zhaoyang/Develop/gtsam/gtsam/base/GenericValue.h: In instantiation of 'gtsam::Vector gtsam::GenericValue<T>::localCoordinates_(const gtsam::Value&) const [with T = gtsam::noiseModel::Diagonal; gtsam::Vector = Eigen::Matrix<double, -1, 1>]':
/home/zhaoyang/Develop/gtsam/examples/SolverComparer.cpp:611:1:   required from here
/home/zhaoyang/Develop/gtsam/gtsam/base/GenericValue.h:135:78: error: 'Local' is not a member of 'gtsam::traits<gtsam::noiseModel::Diagonal>'
       return traits<T>::Local(GenericValue<T>::value(), genericValue2.value());
                                                                              ^
/home/zhaoyang/Develop/gtsam/gtsam/base/GenericValue.h: In instantiation of 'std::size_t gtsam::GenericValue<T>::dim() const [with T = gtsam::noiseModel::Gaussian; std::size_t = long unsigned int]':
/home/zhaoyang/Develop/gtsam/examples/SolverComparer.cpp:611:1:   required from here
/home/zhaoyang/Develop/gtsam/gtsam/base/GenericValue.h:150:44: error: 'GetDimension' is not a member of 'gtsam::traits<gtsam::noiseModel::Gaussian>'
       return traits<T>::GetDimension(value_);
                                            ^
/home/zhaoyang/Develop/gtsam/gtsam/base/GenericValue.h: In instantiation of 'gtsam::Value* gtsam::GenericValue<T>::retract_(const Vector&) const [with T = gtsam::noiseModel::Gaussian; gtsam::Vector = Eigen::Matrix<double, -1, 1>]':
/home/zhaoyang/Develop/gtsam/examples/SolverComparer.cpp:611:1:   required from here
/home/zhaoyang/Develop/gtsam/gtsam/base/GenericValue.h:117:81: error: 'Retract' is not a member of 'gtsam::traits<gtsam::noiseModel::Gaussian>'
       const T retractResult = traits<T>::Retract(GenericValue<T>::value(), delta);
                                                                                 ^
/home/zhaoyang/Develop/gtsam/gtsam/base/GenericValue.h: In instantiation of 'gtsam::Vector gtsam::GenericValue<T>::localCoordinates_(const gtsam::Value&) const [with T = gtsam::noiseModel::Gaussian; gtsam::Vector = Eigen::Matrix<double, -1, 1>]':
/home/zhaoyang/Develop/gtsam/examples/SolverComparer.cpp:611:1:   required from here
/home/zhaoyang/Develop/gtsam/gtsam/base/GenericValue.h:135:78: error: 'Local' is not a member of 'gtsam::traits<gtsam::noiseModel::Gaussian>'
       return traits<T>::Local(GenericValue<T>::value(), genericValue2.value());
                                                                              ^
/home/zhaoyang/Develop/gtsam/gtsam/base/GenericValue.h: In instantiation of 'std::size_t gtsam::GenericValue<T>::dim() const [with T = gtsam::noiseModel::Isotropic; std::size_t = long unsigned int]':
/home/zhaoyang/Develop/gtsam/examples/SolverComparer.cpp:611:1:   required from here
/home/zhaoyang/Develop/gtsam/gtsam/base/GenericValue.h:150:44: error: 'GetDimension' is not a member of 'gtsam::traits<gtsam::noiseModel::Isotropic>'
       return traits<T>::GetDimension(value_);
                                            ^
/home/zhaoyang/Develop/gtsam/gtsam/base/GenericValue.h: In instantiation of 'gtsam::Value* gtsam::GenericValue<T>::retract_(const Vector&) const [with T = gtsam::noiseModel::Isotropic; gtsam::Vector = Eigen::Matrix<double, -1, 1>]':
/home/zhaoyang/Develop/gtsam/examples/SolverComparer.cpp:611:1:   required from here
/home/zhaoyang/Develop/gtsam/gtsam/base/GenericValue.h:117:81: error: 'Retract' is not a member of 'gtsam::traits<gtsam::noiseModel::Isotropic>'
       const T retractResult = traits<T>::Retract(GenericValue<T>::value(), delta);
                                                                                 ^
/home/zhaoyang/Develop/gtsam/gtsam/base/GenericValue.h: In instantiation of 'gtsam::Vector gtsam::GenericValue<T>::localCoordinates_(const gtsam::Value&) const [with T = gtsam::noiseModel::Isotropic; gtsam::Vector = Eigen::Matrix<double, -1, 1>]':
/home/zhaoyang/Develop/gtsam/examples/SolverComparer.cpp:611:1:   required from here
/home/zhaoyang/Develop/gtsam/gtsam/base/GenericValue.h:135:78: error: 'Local' is not a member of 'gtsam::traits<gtsam::noiseModel::Isotropic>'
       return traits<T>::Local(GenericValue<T>::value(), genericValue2.value());
                                                                              ^
/home/zhaoyang/Develop/gtsam/gtsam/base/GenericValue.h: In instantiation of 'bool gtsam::GenericValue<T>::equals_(const gtsam::Value&, double) const [with T = gtsam::BearingRangeFactor<gtsam::Pose2, gtsam::Point2>]':
/home/zhaoyang/Develop/gtsam/examples/SolverComparer.cpp:611:1:   required from here
/home/zhaoyang/Develop/gtsam/gtsam/base/GenericValue.h:75:69: error: incomplete type 'gtsam::traits<gtsam::BearingRangeFactor<gtsam::Pose2, gtsam::Point2> >' used in nested name specifier
     return traits<T>::Equals(this->value_, genericValue2.value_, tol);
                                                                     ^
/home/zhaoyang/Develop/gtsam/gtsam/base/GenericValue.h: In instantiation of 'void gtsam::GenericValue<T>::print(const string&) const [with T = gtsam::BearingRangeFactor<gtsam::Pose2, gtsam::Point2>; std::string = std::basic_string<char>]':
/home/zhaoyang/Develop/gtsam/examples/SolverComparer.cpp:611:1:   required from here
/home/zhaoyang/Develop/gtsam/gtsam/base/GenericValue.h:85:33: error: incomplete type 'gtsam::traits<gtsam::BearingRangeFactor<gtsam::Pose2, gtsam::Point2> >' used in nested name specifier
     traits<T>::Print(value_, str);
                                 ^
/home/zhaoyang/Develop/gtsam/gtsam/base/GenericValue.h: In instantiation of 'std::size_t gtsam::GenericValue<T>::dim() const [with T = gtsam::BearingRangeFactor<gtsam::Pose2, gtsam::Point2>; std::size_t = long unsigned int]':
/home/zhaoyang/Develop/gtsam/examples/SolverComparer.cpp:611:1:   required from here
/home/zhaoyang/Develop/gtsam/gtsam/base/GenericValue.h:150:44: error: incomplete type 'gtsam::traits<gtsam::BearingRangeFactor<gtsam::Pose2, gtsam::Point2> >' used in nested name specifier
       return traits<T>::GetDimension(value_);
                                            ^
/home/zhaoyang/Develop/gtsam/gtsam/base/GenericValue.h: In instantiation of 'gtsam::Value* gtsam::GenericValue<T>::retract_(const Vector&) const [with T = gtsam::BearingRangeFactor<gtsam::Pose2, gtsam::Point2>; gtsam::Vector = Eigen::Matrix<double, -1, 1>]':
/home/zhaoyang/Develop/gtsam/examples/SolverComparer.cpp:611:1:   required from here
/home/zhaoyang/Develop/gtsam/gtsam/base/GenericValue.h:117:81: error: incomplete type 'gtsam::traits<gtsam::BearingRangeFactor<gtsam::Pose2, gtsam::Point2> >' used in nested name specifier
       const T retractResult = traits<T>::Retract(GenericValue<T>::value(), delta);
                                                                                 ^
/home/zhaoyang/Develop/gtsam/gtsam/base/GenericValue.h: In instantiation of 'gtsam::Vector gtsam::GenericValue<T>::localCoordinates_(const gtsam::Value&) const [with T = gtsam::BearingRangeFactor<gtsam::Pose2, gtsam::Point2>; gtsam::Vector = Eigen::Matrix<double, -1, 1>]':
/home/zhaoyang/Develop/gtsam/examples/SolverComparer.cpp:611:1:   required from here
/home/zhaoyang/Develop/gtsam/gtsam/base/GenericValue.h:135:78: error: incomplete type 'gtsam::traits<gtsam::BearingRangeFactor<gtsam::Pose2, gtsam::Point2> >' used in nested name specifier
       return traits<T>::Local(GenericValue<T>::value(), genericValue2.value());
                                                                              ^
/home/zhaoyang/Develop/gtsam/gtsam/base/GenericValue.h: In instantiation of 'bool gtsam::GenericValue<T>::equals_(const gtsam::Value&, double) const [with T = gtsam::PriorFactor<gtsam::Pose2>]':
/home/zhaoyang/Develop/gtsam/examples/SolverComparer.cpp:611:1:   required from here
/home/zhaoyang/Develop/gtsam/gtsam/base/GenericValue.h:75:69: error: incomplete type 'gtsam::traits<gtsam::PriorFactor<gtsam::Pose2> >' used in nested name specifier
     return traits<T>::Equals(this->value_, genericValue2.value_, tol);
                                                                     ^
/home/zhaoyang/Develop/gtsam/gtsam/base/GenericValue.h: In instantiation of 'void gtsam::GenericValue<T>::print(const string&) const [with T = gtsam::PriorFactor<gtsam::Pose2>; std::string = std::basic_string<char>]':
/home/zhaoyang/Develop/gtsam/examples/SolverComparer.cpp:611:1:   required from here
/home/zhaoyang/Develop/gtsam/gtsam/base/GenericValue.h:85:33: error: incomplete type 'gtsam::traits<gtsam::PriorFactor<gtsam::Pose2> >' used in nested name specifier
     traits<T>::Print(value_, str);
                                 ^
/home/zhaoyang/Develop/gtsam/gtsam/base/GenericValue.h: In instantiation of 'std::size_t gtsam::GenericValue<T>::dim() const [with T = gtsam::PriorFactor<gtsam::Pose2>; std::size_t = long unsigned int]':
/home/zhaoyang/Develop/gtsam/examples/SolverComparer.cpp:611:1:   required from here
/home/zhaoyang/Develop/gtsam/gtsam/base/GenericValue.h:150:44: error: incomplete type 'gtsam::traits<gtsam::PriorFactor<gtsam::Pose2> >' used in nested name specifier
       return traits<T>::GetDimension(value_);
                                            ^
/home/zhaoyang/Develop/gtsam/gtsam/base/GenericValue.h: In instantiation of 'gtsam::Value* gtsam::GenericValue<T>::retract_(const Vector&) const [with T = gtsam::PriorFactor<gtsam::Pose2>; gtsam::Vector = Eigen::Matrix<double, -1, 1>]':
/home/zhaoyang/Develop/gtsam/examples/SolverComparer.cpp:611:1:   required from here
/home/zhaoyang/Develop/gtsam/gtsam/base/GenericValue.h:117:81: error: incomplete type 'gtsam::traits<gtsam::PriorFactor<gtsam::Pose2> >' used in nested name specifier
       const T retractResult = traits<T>::Retract(GenericValue<T>::value(), delta);
                                                                                 ^
/home/zhaoyang/Develop/gtsam/gtsam/base/GenericValue.h: In instantiation of 'gtsam::Vector gtsam::GenericValue<T>::localCoordinates_(const gtsam::Value&) const [with T = gtsam::PriorFactor<gtsam::Pose2>; gtsam::Vector = Eigen::Matrix<double, -1, 1>]':
/home/zhaoyang/Develop/gtsam/examples/SolverComparer.cpp:611:1:   required from here
/home/zhaoyang/Develop/gtsam/gtsam/base/GenericValue.h:135:78: error: incomplete type 'gtsam::traits<gtsam::PriorFactor<gtsam::Pose2> >' used in nested name specifier
       return traits<T>::Local(GenericValue<T>::value(), genericValue2.value());
                                                                              ^
/home/zhaoyang/Develop/gtsam/gtsam/base/GenericValue.h: In instantiation of 'std::size_t gtsam::GenericValue<T>::dim() const [with T = gtsam::BetweenFactor<gtsam::Pose2>; std::size_t = long unsigned int]':
/home/zhaoyang/Develop/gtsam/examples/SolverComparer.cpp:611:1:   required from here
/home/zhaoyang/Develop/gtsam/gtsam/base/GenericValue.h:150:44: error: 'GetDimension' is not a member of 'gtsam::traits<gtsam::BetweenFactor<gtsam::Pose2> >'
       return traits<T>::GetDimension(value_);
                                            ^
/home/zhaoyang/Develop/gtsam/gtsam/base/GenericValue.h: In instantiation of 'gtsam::Value* gtsam::GenericValue<T>::retract_(const Vector&) const [with T = gtsam::BetweenFactor<gtsam::Pose2>; gtsam::Vector = Eigen::Matrix<double, -1, 1>]':
/home/zhaoyang/Develop/gtsam/examples/SolverComparer.cpp:611:1:   required from here
/home/zhaoyang/Develop/gtsam/gtsam/base/GenericValue.h:117:81: error: 'Retract' is not a member of 'gtsam::traits<gtsam::BetweenFactor<gtsam::Pose2> >'
       const T retractResult = traits<T>::Retract(GenericValue<T>::value(), delta);
                                                                                 ^
/home/zhaoyang/Develop/gtsam/gtsam/base/GenericValue.h: In instantiation of 'gtsam::Vector gtsam::GenericValue<T>::localCoordinates_(const gtsam::Value&) const [with T = gtsam::BetweenFactor<gtsam::Pose2>; gtsam::Vector = Eigen::Matrix<double, -1, 1>]':
/home/zhaoyang/Develop/gtsam/examples/SolverComparer.cpp:611:1:   required from here
/home/zhaoyang/Develop/gtsam/gtsam/base/GenericValue.h:135:78: error: 'Local' is not a member of 'gtsam::traits<gtsam::BetweenFactor<gtsam::Pose2> >'
       return traits<T>::Local(GenericValue<T>::value(), genericValue2.value());
                                                                              ^
/home/zhaoyang/Develop/gtsam/gtsam/base/GenericValue.h: In member function 'std::size_t gtsam::GenericValue<T>::dim() const [with T = gtsam::noiseModel::Unit; std::size_t = long unsigned int]':
/home/zhaoyang/Develop/gtsam/gtsam/base/GenericValue.h:151:5: warning: control reaches end of non-void function [-Wreturn-type]
     }
     ^
/home/zhaoyang/Develop/gtsam/gtsam/base/GenericValue.h: In member function 'gtsam::Vector gtsam::GenericValue<T>::localCoordinates_(const gtsam::Value&) const [with T = gtsam::noiseModel::Unit; gtsam::Vector = Eigen::Matrix<double, -1, 1>]':
/home/zhaoyang/Develop/gtsam/gtsam/base/GenericValue.h:136:5: warning: control reaches end of non-void function [-Wreturn-type]
     }
     ^
/home/zhaoyang/Develop/gtsam/gtsam/base/GenericValue.h: In member function 'std::size_t gtsam::GenericValue<T>::dim() const [with T = gtsam::noiseModel::Diagonal; std::size_t = long unsigned int]':
/home/zhaoyang/Develop/gtsam/gtsam/base/GenericValue.h:151:5: warning: control reaches end of non-void function [-Wreturn-type]
     }
     ^
/home/zhaoyang/Develop/gtsam/gtsam/base/GenericValue.h: In member function 'gtsam::Vector gtsam::GenericValue<T>::localCoordinates_(const gtsam::Value&) const [with T = gtsam::noiseModel::Diagonal; gtsam::Vector = Eigen::Matrix<double, -1, 1>]':
/home/zhaoyang/Develop/gtsam/gtsam/base/GenericValue.h:136:5: warning: control reaches end of non-void function [-Wreturn-type]
     }
     ^
/home/zhaoyang/Develop/gtsam/gtsam/base/GenericValue.h: In member function 'std::size_t gtsam::GenericValue<T>::dim() const [with T = gtsam::noiseModel::Gaussian; std::size_t = long unsigned int]':
/home/zhaoyang/Develop/gtsam/gtsam/base/GenericValue.h:151:5: warning: control reaches end of non-void function [-Wreturn-type]
     }
     ^
/home/zhaoyang/Develop/gtsam/gtsam/base/GenericValue.h: In member function 'gtsam::Vector gtsam::GenericValue<T>::localCoordinates_(const gtsam::Value&) const [with T = gtsam::noiseModel::Gaussian; gtsam::Vector = Eigen::Matrix<double, -1, 1>]':
/home/zhaoyang/Develop/gtsam/gtsam/base/GenericValue.h:136:5: warning: control reaches end of non-void function [-Wreturn-type]
     }
     ^
/home/zhaoyang/Develop/gtsam/gtsam/base/GenericValue.h: In member function 'std::size_t gtsam::GenericValue<T>::dim() const [with T = gtsam::noiseModel::Isotropic; std::size_t = long unsigned int]':
/home/zhaoyang/Develop/gtsam/gtsam/base/GenericValue.h:151:5: warning: control reaches end of non-void function [-Wreturn-type]
     }
     ^
/home/zhaoyang/Develop/gtsam/gtsam/base/GenericValue.h: In member function 'gtsam::Vector gtsam::GenericValue<T>::localCoordinates_(const gtsam::Value&) const [with T = gtsam::noiseModel::Isotropic; gtsam::Vector = Eigen::Matrix<double, -1, 1>]':
/home/zhaoyang/Develop/gtsam/gtsam/base/GenericValue.h:136:5: warning: control reaches end of non-void function [-Wreturn-type]
     }
     ^
/home/zhaoyang/Develop/gtsam/gtsam/base/GenericValue.h: In member function 'bool gtsam::GenericValue<T>::equals_(const gtsam::Value&, double) const [with T = gtsam::BearingRangeFactor<gtsam::Pose2, gtsam::Point2>]':
/home/zhaoyang/Develop/gtsam/gtsam/base/GenericValue.h:76:3: warning: control reaches end of non-void function [-Wreturn-type]
   }
   ^
/home/zhaoyang/Develop/gtsam/gtsam/base/GenericValue.h: In member function 'std::size_t gtsam::GenericValue<T>::dim() const [with T = gtsam::BearingRangeFactor<gtsam::Pose2, gtsam::Point2>; std::size_t = long unsigned int]':
/home/zhaoyang/Develop/gtsam/gtsam/base/GenericValue.h:151:5: warning: control reaches end of non-void function [-Wreturn-type]
     }
     ^
/home/zhaoyang/Develop/gtsam/gtsam/base/GenericValue.h: In member function 'gtsam::Vector gtsam::GenericValue<T>::localCoordinates_(const gtsam::Value&) const [with T = gtsam::BearingRangeFactor<gtsam::Pose2, gtsam::Point2>; gtsam::Vector = Eigen::Matrix<double, -1, 1>]':
/home/zhaoyang/Develop/gtsam/gtsam/base/GenericValue.h:136:5: warning: control reaches end of non-void function [-Wreturn-type]
     }
     ^
/home/zhaoyang/Develop/gtsam/gtsam/base/GenericValue.h: In member function 'bool gtsam::GenericValue<T>::equals_(const gtsam::Value&, double) const [with T = gtsam::PriorFactor<gtsam::Pose2>]':
/home/zhaoyang/Develop/gtsam/gtsam/base/GenericValue.h:76:3: warning: control reaches end of non-void function [-Wreturn-type]
   }
   ^
/home/zhaoyang/Develop/gtsam/gtsam/base/GenericValue.h: In member function 'std::size_t gtsam::GenericValue<T>::dim() const [with T = gtsam::PriorFactor<gtsam::Pose2>; std::size_t = long unsigned int]':
/home/zhaoyang/Develop/gtsam/gtsam/base/GenericValue.h:151:5: warning: control reaches end of non-void function [-Wreturn-type]
     }
     ^
/home/zhaoyang/Develop/gtsam/gtsam/base/GenericValue.h: In member function 'gtsam::Vector gtsam::GenericValue<T>::localCoordinates_(const gtsam::Value&) const [with T = gtsam::PriorFactor<gtsam::Pose2>; gtsam::Vector = Eigen::Matrix<double, -1, 1>]':
/home/zhaoyang/Develop/gtsam/gtsam/base/GenericValue.h:136:5: warning: control reaches end of non-void function [-Wreturn-type]
     }
     ^
/home/zhaoyang/Develop/gtsam/gtsam/base/GenericValue.h: In member function 'std::size_t gtsam::GenericValue<T>::dim() const [with T = gtsam::BetweenFactor<gtsam::Pose2>; std::size_t = long unsigned int]':
/home/zhaoyang/Develop/gtsam/gtsam/base/GenericValue.h:151:5: warning: control reaches end of non-void function [-Wreturn-type]
     }
     ^
/home/zhaoyang/Develop/gtsam/gtsam/base/GenericValue.h: In member function 'gtsam::Vector gtsam::GenericValue<T>::localCoordinates_(const gtsam::Value&) const [with T = gtsam::BetweenFactor<gtsam::Pose2>; gtsam::Vector = Eigen::Matrix<double, -1, 1>]':
/home/zhaoyang/Develop/gtsam/gtsam/base/GenericValue.h:136:5: warning: control reaches end of non-void function [-Wreturn-type]
     }
     ^
make[2]: *** [examples/CMakeFiles/SolverComparer.dir/SolverComparer.cpp.o] Error 1
make[1]: *** [examples/CMakeFiles/SolverComparer.dir/all] Error 2
make: *** [all] Error 2

Comments (4)

  1. Zhaoyang Lv reporter
    make -j1
    

    I did it from a QT creator IDE and copy the full errors. Issues results same from command line.

  2. Log in to comment