diff --git a/gtsam/hybrid/HybridNonlinearFactorGraph.h b/gtsam/hybrid/HybridNonlinearFactorGraph.h index 5f04851d4..b48e8bb5c 100644 --- a/gtsam/hybrid/HybridNonlinearFactorGraph.h +++ b/gtsam/hybrid/HybridNonlinearFactorGraph.h @@ -42,6 +42,16 @@ class GTSAM_EXPORT HybridNonlinearFactorGraph : public HybridFactorGraph { using IsNonlinear = typename std::enable_if< std::is_base_of::value>::type; + /// Check if T has a value_type derived from FactorType. + template + using HasDerivedValueType = typename std::enable_if< + std::is_base_of::value>::type; + + /// Check if T has a pointer type derived from FactorType. + template + using HasDerivedElementType = typename std::enable_if::value>::type; + public: using Base = HybridFactorGraph; using This = HybridNonlinearFactorGraph; ///< this class @@ -114,15 +124,13 @@ class GTSAM_EXPORT HybridNonlinearFactorGraph : public HybridFactorGraph { * copied) */ template - Base::Base::HasDerivedElementType push_back( - const CONTAINER& container) { + HasDerivedElementType push_back(const CONTAINER& container) { Base::push_back(container.begin(), container.end()); } /// Push back non-pointer objects in a container (factors are copied). template - Base::Base::HasDerivedValueType push_back( - const CONTAINER& container) { + HasDerivedValueType push_back(const CONTAINER& container) { Base::push_back(container.begin(), container.end()); }