diff --git a/gtsam/nonlinear/NonlinearFactor.h b/gtsam/nonlinear/NonlinearFactor.h index 235858088..5409920d3 100644 --- a/gtsam/nonlinear/NonlinearFactor.h +++ b/gtsam/nonlinear/NonlinearFactor.h @@ -618,14 +618,16 @@ protected: */ template > inline Vector evaluateError(const ValueTypes&... x, OptionalJacArgs&&... H) const { - constexpr bool are_all_opt_mat = (... && std::is_same>::value); - constexpr bool are_all_mat = (... && std::is_same>::value); - static_assert((are_all_mat == false && are_all_opt_mat == false), "ERRORRR"); - if constexpr ((... && std::is_same>::value)) { - return evaluateError(x..., std::forward(H)..., OptionalNone); - } else if constexpr ((... && std::is_same>::value)) { - return evaluateError(x..., std::forward(H)..., OptionalNone); - } + /* constexpr bool are_all_opt_mat = (... && std::is_same>::value); */ + constexpr bool are_all_mat = + (... && (std::is_same>::value || + std::is_same>::value)); + static_assert(are_all_mat, "ERRORRR"); + /* if constexpr ((... && std::is_same>::value)) { */ + /* return evaluateError(x..., std::forward(H)..., boost::none); */ + /* } else if constexpr ((... && std::is_same>::value)) { */ + return evaluateError(x..., std::forward(H)..., boost::none); + /* } */ } /// @}