From be37e1ed0540e403d4d51bd6f058379cefcf0cde Mon Sep 17 00:00:00 2001 From: balderdash-devil Date: Wed, 21 Jan 2015 13:02:35 -0500 Subject: [PATCH] Fix for Issue #201 It seems like MSVC was unable to identify the template specialization for the 'const' keyword. So added a specialization in each of these files for that --- gtsam/geometry/Cal3Bundler.h | 3 +++ gtsam/geometry/Cal3DS2.h | 3 +++ gtsam/geometry/Cal3Unified.h | 3 +++ gtsam/geometry/Cal3_S2.h | 3 +++ gtsam/geometry/Cal3_S2Stereo.h | 4 ++++ gtsam/geometry/CalibratedCamera.h | 3 +++ gtsam/geometry/EssentialMatrix.h | 3 +++ gtsam/geometry/PinholeCamera.h | 3 +++ gtsam/geometry/Point3.h | 3 +++ gtsam/geometry/Pose2.h | 3 +++ gtsam/geometry/Pose3.h | 4 ++++ gtsam/geometry/Rot2.h | 3 +++ gtsam/geometry/Rot3.h | 3 +++ gtsam/geometry/SO3.h | 3 ++- gtsam/geometry/StereoCamera.h | 2 ++ gtsam/geometry/StereoPoint2.h | 3 +++ gtsam/geometry/Unit3.h | 2 ++ gtsam/slam/dataset.cpp | 1 + 18 files changed, 51 insertions(+), 1 deletion(-) diff --git a/gtsam/geometry/Cal3Bundler.h b/gtsam/geometry/Cal3Bundler.h index ce9f94c48..e90ae32a4 100644 --- a/gtsam/geometry/Cal3Bundler.h +++ b/gtsam/geometry/Cal3Bundler.h @@ -174,4 +174,7 @@ private: template<> struct traits : public internal::Manifold {}; +template<> +struct traits : public internal::Manifold {}; + } // namespace gtsam diff --git a/gtsam/geometry/Cal3DS2.h b/gtsam/geometry/Cal3DS2.h index 0c77eebbc..0cb914ce3 100644 --- a/gtsam/geometry/Cal3DS2.h +++ b/gtsam/geometry/Cal3DS2.h @@ -112,5 +112,8 @@ private: template<> struct traits : public internal::Manifold {}; +template<> +struct traits : public internal::Manifold {}; + } diff --git a/gtsam/geometry/Cal3Unified.h b/gtsam/geometry/Cal3Unified.h index d0e0f3891..624d7dbb4 100644 --- a/gtsam/geometry/Cal3Unified.h +++ b/gtsam/geometry/Cal3Unified.h @@ -142,5 +142,8 @@ private: template<> struct traits : public internal::Manifold {}; +template<> +struct traits : public internal::Manifold {}; + } diff --git a/gtsam/geometry/Cal3_S2.h b/gtsam/geometry/Cal3_S2.h index 0c5386822..b9e2ef581 100644 --- a/gtsam/geometry/Cal3_S2.h +++ b/gtsam/geometry/Cal3_S2.h @@ -226,4 +226,7 @@ private: template<> struct traits : public internal::Manifold {}; +template<> +struct traits : public internal::Manifold {}; + } // \ namespace gtsam diff --git a/gtsam/geometry/Cal3_S2Stereo.h b/gtsam/geometry/Cal3_S2Stereo.h index 3585fb156..651a7fabb 100644 --- a/gtsam/geometry/Cal3_S2Stereo.h +++ b/gtsam/geometry/Cal3_S2Stereo.h @@ -158,4 +158,8 @@ namespace gtsam { struct traits : public internal::Manifold { }; + template<> + struct traits : public internal::Manifold { + }; + } // \ namespace gtsam diff --git a/gtsam/geometry/CalibratedCamera.h b/gtsam/geometry/CalibratedCamera.h index cda01b600..9e907f1d5 100644 --- a/gtsam/geometry/CalibratedCamera.h +++ b/gtsam/geometry/CalibratedCamera.h @@ -204,5 +204,8 @@ private: template<> struct traits : public internal::Manifold {}; +template<> +struct traits : public internal::Manifold {}; + } diff --git a/gtsam/geometry/EssentialMatrix.h b/gtsam/geometry/EssentialMatrix.h index c9e702078..606f62f87 100644 --- a/gtsam/geometry/EssentialMatrix.h +++ b/gtsam/geometry/EssentialMatrix.h @@ -201,5 +201,8 @@ private: template<> struct traits : public internal::Manifold {}; +template<> +struct traits : public internal::Manifold {}; + } // gtsam diff --git a/gtsam/geometry/PinholeCamera.h b/gtsam/geometry/PinholeCamera.h index b409c956d..12eb0235d 100644 --- a/gtsam/geometry/PinholeCamera.h +++ b/gtsam/geometry/PinholeCamera.h @@ -499,4 +499,7 @@ private: template struct traits< PinholeCamera > : public internal::Manifold > {}; +template +struct traits< const PinholeCamera > : public internal::Manifold > {}; + } // \ gtsam diff --git a/gtsam/geometry/Point3.h b/gtsam/geometry/Point3.h index c9dee9003..95f728e39 100644 --- a/gtsam/geometry/Point3.h +++ b/gtsam/geometry/Point3.h @@ -197,4 +197,7 @@ namespace gtsam { template<> struct traits : public internal::VectorSpace {}; + + template<> + struct traits : public internal::VectorSpace {}; } diff --git a/gtsam/geometry/Pose2.h b/gtsam/geometry/Pose2.h index be860107e..d4b647949 100644 --- a/gtsam/geometry/Pose2.h +++ b/gtsam/geometry/Pose2.h @@ -293,5 +293,8 @@ GTSAM_EXPORT boost::optional align(const std::vector& pairs); template<> struct traits : public internal::LieGroupTraits {}; +template<> +struct traits : public internal::LieGroupTraits {}; + } // namespace gtsam diff --git a/gtsam/geometry/Pose3.h b/gtsam/geometry/Pose3.h index d30bd4167..4130a252e 100644 --- a/gtsam/geometry/Pose3.h +++ b/gtsam/geometry/Pose3.h @@ -325,4 +325,8 @@ GTSAM_EXPORT boost::optional align(const std::vector& pairs); template<> struct traits : public internal::LieGroupTraits {}; +template<> +struct traits : public internal::LieGroupTraits {}; + + } // namespace gtsam diff --git a/gtsam/geometry/Rot2.h b/gtsam/geometry/Rot2.h index 95f025622..deae1f3a0 100644 --- a/gtsam/geometry/Rot2.h +++ b/gtsam/geometry/Rot2.h @@ -210,4 +210,7 @@ namespace gtsam { template<> struct traits : public internal::LieGroupTraits {}; + template<> + struct traits : public internal::LieGroupTraits {}; + } // gtsam diff --git a/gtsam/geometry/Rot3.h b/gtsam/geometry/Rot3.h index e9568fb26..4e42d7efb 100644 --- a/gtsam/geometry/Rot3.h +++ b/gtsam/geometry/Rot3.h @@ -463,5 +463,8 @@ namespace gtsam { template<> struct traits : public internal::LieGroupTraits {}; + + template<> + struct traits : public internal::LieGroupTraits {}; } diff --git a/gtsam/geometry/SO3.h b/gtsam/geometry/SO3.h index bed2f1212..e52eaae1e 100644 --- a/gtsam/geometry/SO3.h +++ b/gtsam/geometry/SO3.h @@ -85,6 +85,7 @@ public: template<> struct traits : public internal::LieGroupTraits {}; - +template<> +struct traits : public internal::LieGroupTraits {}; } // end namespace gtsam diff --git a/gtsam/geometry/StereoCamera.h b/gtsam/geometry/StereoCamera.h index 49abcf36b..913b1eab3 100644 --- a/gtsam/geometry/StereoCamera.h +++ b/gtsam/geometry/StereoCamera.h @@ -149,4 +149,6 @@ private: template<> struct traits : public internal::Manifold {}; +template<> +struct traits : public internal::Manifold {}; } diff --git a/gtsam/geometry/StereoPoint2.h b/gtsam/geometry/StereoPoint2.h index 2ec745fd8..803c59a4b 100644 --- a/gtsam/geometry/StereoPoint2.h +++ b/gtsam/geometry/StereoPoint2.h @@ -176,4 +176,7 @@ namespace gtsam { template<> struct traits : public internal::Manifold {}; + + template<> + struct traits : public internal::Manifold {}; } diff --git a/gtsam/geometry/Unit3.h b/gtsam/geometry/Unit3.h index 8784d0eb8..50ffb55b7 100644 --- a/gtsam/geometry/Unit3.h +++ b/gtsam/geometry/Unit3.h @@ -171,5 +171,7 @@ private: // Define GTSAM traits template <> struct traits : public internal::Manifold {}; +template <> struct traits : public internal::Manifold {}; + } // namespace gtsam diff --git a/gtsam/slam/dataset.cpp b/gtsam/slam/dataset.cpp index a6fb2d830..d3a7c1e84 100644 --- a/gtsam/slam/dataset.cpp +++ b/gtsam/slam/dataset.cpp @@ -19,6 +19,7 @@ #include #include #include +#include #include #include