diff --git a/gtsam/base/Manifold.h b/gtsam/base/Manifold.h index 1190822ed..c5554fd1a 100644 --- a/gtsam/base/Manifold.h +++ b/gtsam/base/Manifold.h @@ -70,7 +70,8 @@ struct is_manifold: public boost::false_type { // defaults to dynamic, TODO makes sense ? typedef boost::integral_constant Dynamic; template -struct dimension: public Dynamic { +//struct dimension: public Dynamic { +struct dimension : public boost::integral_constant { // just temporary fix to minimize compiler errors while refactoring }; /** diff --git a/gtsam/base/concepts.h b/gtsam/base/concepts.h index 68752bdff..6d5a5d74d 100644 --- a/gtsam/base/concepts.h +++ b/gtsam/base/concepts.h @@ -41,7 +41,7 @@ template struct dimension; } template struct traits_x { - // todo: remove anything in here ASAP. + // TODO: remove anything in here ASAP. // This is just here during development to avoid compilation // errors while implmenting traits for everything. enum { dimension = traits::dimension::value }; diff --git a/gtsam/base/numericalDerivative.h b/gtsam/base/numericalDerivative.h index 9ee25349d..188647525 100644 --- a/gtsam/base/numericalDerivative.h +++ b/gtsam/base/numericalDerivative.h @@ -195,10 +195,10 @@ inline Matrix numericalDerivative21(Y (*h)(const X1&, const X2&), const X1& x1, template Matrix numericalDerivative22(boost::function h, const X1& x1, const X2& x2, double delta = 1e-5) { - BOOST_STATIC_ASSERT_MSG(traits::is_manifold::value, - "Template argument Y must be a manifold type."); - BOOST_STATIC_ASSERT_MSG(traits::is_manifold::value, - "Template argument X2 must be a manifold type."); + BOOST_STATIC_ASSERT_MSG( (boost::is_base_of::structure_category>::value), + "Template argument X1 must be a manifold type."); + BOOST_STATIC_ASSERT_MSG( (boost::is_base_of::structure_category>::value), + "Template argument X2 must be a manifold type."); return numericalDerivative11(boost::bind(h, x1, _1), x2, delta); }