From 118d561e96de6015561023a1dfa4ac1ece2bd8c2 Mon Sep 17 00:00:00 2001 From: dellaert Date: Mon, 8 Dec 2014 23:57:26 +0100 Subject: [PATCH] Created GTSAM_GROUP_IDENTITY as it handles templates differently --- gtsam/base/concepts.h | 16 ++++++++++++---- gtsam/geometry/Cyclic.h | 1 + gtsam/geometry/Quaternion.h | 5 +++-- 3 files changed, 16 insertions(+), 6 deletions(-) diff --git a/gtsam/base/concepts.h b/gtsam/base/concepts.h index 119d3b16a..ab4e589b4 100644 --- a/gtsam/base/concepts.h +++ b/gtsam/base/concepts.h @@ -157,14 +157,24 @@ check_invariants(const T& a, const T& b, double tol = 1e-9) { } } // \ namespace group +#define GTSAM_GROUP_IDENTITY0(GROUP) \ +namespace group { namespace traits { \ +template<> struct identity { static const GROUP value; typedef GROUP value_type;};\ +const GROUP identity::value = GROUP::Identity();\ +}} + +#define GTSAM_GROUP_IDENTITY(TEMPLATE,GROUP) \ +namespace group { namespace traits { \ +template