support 4 concept asserts
parent
7afccbc446
commit
29c25970ad
|
@ -15,14 +15,17 @@
|
|||
#define GTSAM_CONCEPT_ASSERT1(concept) BOOST_CONCEPT_ASSERT((concept))
|
||||
#define GTSAM_CONCEPT_ASSERT2(concept) BOOST_CONCEPT_ASSERT((concept))
|
||||
#define GTSAM_CONCEPT_ASSERT3(concept) BOOST_CONCEPT_ASSERT((concept))
|
||||
#define GTSAM_CONCEPT_ASSERT4(concept) BOOST_CONCEPT_ASSERT((concept))
|
||||
#define GTSAM_CONCEPT_REQUIRES(concept, return_type) BOOST_CONCEPT_REQUIRES((concept), (return_type))
|
||||
#else
|
||||
// These do something sensible:
|
||||
#define GTSAM_CONCEPT_USAGE(concept) void check##concept()
|
||||
// TODO(dellaert): would be nice if it was a single macro...
|
||||
#define GTSAM_CONCEPT_ASSERT(concept) concept checkConcept [[maybe_unused]];
|
||||
#define GTSAM_CONCEPT_ASSERT1(concept) concept checkConcept1 [[maybe_unused]];
|
||||
#define GTSAM_CONCEPT_ASSERT2(concept) concept checkConcept2 [[maybe_unused]];
|
||||
#define GTSAM_CONCEPT_ASSERT3(concept) concept checkConcept3 [[maybe_unused]];
|
||||
#define GTSAM_CONCEPT_ASSERT4(concept) concept checkConcept4 [[maybe_unused]];
|
||||
// This one just ignores concept for now:
|
||||
#define GTSAM_CONCEPT_REQUIRES(concept, return_type) return_type
|
||||
#endif
|
||||
|
|
|
@ -38,26 +38,26 @@ typedef PinholeCamera<Cal3Bundler> Camera;
|
|||
//******************************************************************************
|
||||
TEST(Manifold, SomeManifoldsGTSAM) {
|
||||
//GTSAM_CONCEPT_ASSERT(IsManifold<int>); // integer is not a manifold
|
||||
GTSAM_CONCEPT_ASSERT(IsManifold<Camera>);
|
||||
GTSAM_CONCEPT_ASSERT(IsManifold<Cal3_S2>);
|
||||
GTSAM_CONCEPT_ASSERT(IsManifold<Cal3Bundler>);
|
||||
GTSAM_CONCEPT_ASSERT(IsManifold<Camera>);
|
||||
GTSAM_CONCEPT_ASSERT1(IsManifold<Camera>);
|
||||
GTSAM_CONCEPT_ASSERT2(IsManifold<Cal3_S2>);
|
||||
GTSAM_CONCEPT_ASSERT3(IsManifold<Cal3Bundler>);
|
||||
GTSAM_CONCEPT_ASSERT4(IsManifold<Camera>);
|
||||
}
|
||||
|
||||
//******************************************************************************
|
||||
TEST(Manifold, SomeLieGroupsGTSAM) {
|
||||
GTSAM_CONCEPT_ASSERT(IsLieGroup<Rot2>);
|
||||
GTSAM_CONCEPT_ASSERT(IsLieGroup<Pose2>);
|
||||
GTSAM_CONCEPT_ASSERT(IsLieGroup<Rot3>);
|
||||
GTSAM_CONCEPT_ASSERT(IsLieGroup<Pose3>);
|
||||
GTSAM_CONCEPT_ASSERT1(IsLieGroup<Rot2>);
|
||||
GTSAM_CONCEPT_ASSERT2(IsLieGroup<Pose2>);
|
||||
GTSAM_CONCEPT_ASSERT3(IsLieGroup<Rot3>);
|
||||
GTSAM_CONCEPT_ASSERT4(IsLieGroup<Pose3>);
|
||||
}
|
||||
|
||||
//******************************************************************************
|
||||
TEST(Manifold, SomeVectorSpacesGTSAM) {
|
||||
GTSAM_CONCEPT_ASSERT(IsVectorSpace<double>);
|
||||
GTSAM_CONCEPT_ASSERT(IsVectorSpace<float>);
|
||||
GTSAM_CONCEPT_ASSERT(IsVectorSpace<Point2>);
|
||||
GTSAM_CONCEPT_ASSERT(IsVectorSpace<Matrix24>);
|
||||
GTSAM_CONCEPT_ASSERT1(IsVectorSpace<double>);
|
||||
GTSAM_CONCEPT_ASSERT2(IsVectorSpace<float>);
|
||||
GTSAM_CONCEPT_ASSERT3(IsVectorSpace<Point2>);
|
||||
GTSAM_CONCEPT_ASSERT4(IsVectorSpace<Matrix24>);
|
||||
}
|
||||
|
||||
//******************************************************************************
|
||||
|
|
Loading…
Reference in New Issue