Merge pull request #2047 from borglab/fix/concept-usage
Use `GTSAM_CONCEPT_USAGE` in lieu of `BOOST_CONCEPT_USAGE`release/4.3a0
commit
528c2ee58d
|
@ -45,7 +45,7 @@ public:
|
|||
typedef typename traits<G>::group_flavor flavor_tag;
|
||||
//typedef typename traits<G>::identity::value_type identity_value_type;
|
||||
|
||||
BOOST_CONCEPT_USAGE(IsGroup) {
|
||||
GTSAM_CONCEPT_USAGE(IsGroup) {
|
||||
static_assert(
|
||||
(std::is_base_of<group_tag, structure_category_tag>::value),
|
||||
"This type's structure_category trait does not assert it as a group (or derived)");
|
||||
|
|
|
@ -282,7 +282,7 @@ public:
|
|||
typedef typename traits<T>::TangentVector TangentVector;
|
||||
typedef typename traits<T>::ChartJacobian ChartJacobian;
|
||||
|
||||
BOOST_CONCEPT_USAGE(IsLieGroup) {
|
||||
GTSAM_CONCEPT_USAGE(IsLieGroup) {
|
||||
static_assert(
|
||||
(std::is_base_of<lie_group_tag, structure_category_tag>::value),
|
||||
"This type's trait does not assert it is a Lie group (or derived)");
|
||||
|
|
|
@ -61,7 +61,7 @@ struct HasManifoldPrereqs {
|
|||
Eigen::Matrix<double, dim, 1> v;
|
||||
OptionalJacobian<dim, dim> Hp, Hq, Hv;
|
||||
|
||||
BOOST_CONCEPT_USAGE(HasManifoldPrereqs) {
|
||||
GTSAM_CONCEPT_USAGE(HasManifoldPrereqs) {
|
||||
v = p.localCoordinates(q);
|
||||
q = p.retract(v);
|
||||
}
|
||||
|
@ -139,7 +139,7 @@ public:
|
|||
typedef typename traits<T>::ManifoldType ManifoldType;
|
||||
typedef typename traits<T>::TangentVector TangentVector;
|
||||
|
||||
BOOST_CONCEPT_USAGE(IsManifold) {
|
||||
GTSAM_CONCEPT_USAGE(IsManifold) {
|
||||
static_assert(
|
||||
(std::is_base_of<manifold_tag, structure_category_tag>::value),
|
||||
"This type's structure_category trait does not assert it as a manifold (or derived)");
|
||||
|
|
|
@ -61,7 +61,7 @@ namespace gtsam {
|
|||
bool r1,r2;
|
||||
public:
|
||||
|
||||
BOOST_CONCEPT_USAGE(IsTestable) {
|
||||
GTSAM_CONCEPT_USAGE(IsTestable) {
|
||||
// check print function, with optional string
|
||||
traits<T>::Print(t, std::string());
|
||||
traits<T>::Print(t);
|
||||
|
@ -134,7 +134,7 @@ namespace gtsam {
|
|||
template<typename T>
|
||||
struct HasTestablePrereqs {
|
||||
|
||||
BOOST_CONCEPT_USAGE(HasTestablePrereqs) {
|
||||
GTSAM_CONCEPT_USAGE(HasTestablePrereqs) {
|
||||
t->print(str);
|
||||
b = t->equals(*s,tol);
|
||||
}
|
||||
|
|
|
@ -177,7 +177,7 @@ struct HasVectorSpacePrereqs {
|
|||
Class p, q;
|
||||
Vector v;
|
||||
|
||||
BOOST_CONCEPT_USAGE(HasVectorSpacePrereqs) {
|
||||
GTSAM_CONCEPT_USAGE(HasVectorSpacePrereqs) {
|
||||
p = Class::Identity(); // identity
|
||||
q = p + p; // addition
|
||||
q = p - p; // subtraction
|
||||
|
@ -492,7 +492,7 @@ public:
|
|||
|
||||
typedef typename traits<T>::structure_category structure_category_tag;
|
||||
|
||||
BOOST_CONCEPT_USAGE(IsVectorSpace) {
|
||||
GTSAM_CONCEPT_USAGE(IsVectorSpace) {
|
||||
static_assert(
|
||||
(std::is_base_of<vector_space_tag, structure_category_tag>::value),
|
||||
"This type's trait does not assert it as a vector space (or derived)");
|
||||
|
|
|
@ -17,9 +17,10 @@
|
|||
#include <boost/concept_check.hpp>
|
||||
#define GTSAM_CONCEPT_ASSERT(concept) BOOST_CONCEPT_ASSERT((concept))
|
||||
#define GTSAM_CONCEPT_REQUIRES(concept, return_type) BOOST_CONCEPT_REQUIRES(((concept)), (return_type))
|
||||
#define GTSAM_CONCEPT_USAGE BOOST_CONCEPT_USAGE
|
||||
#else
|
||||
// This does something sensible:
|
||||
#define BOOST_CONCEPT_USAGE(concept) void check##concept()
|
||||
#define GTSAM_CONCEPT_USAGE(concept) void check##concept()
|
||||
// These just ignore the concept checking for now:
|
||||
#define GTSAM_CONCEPT_ASSERT(concept) static_assert(true, "")
|
||||
#define GTSAM_CONCEPT_REQUIRES(concept, return_type) return_type
|
||||
|
|
Loading…
Reference in New Issue