diff options
author | Willem Jan Palenstijn <Willem.Jan.Palenstijn@cwi.nl> | 2016-11-23 18:15:51 +0100 |
---|---|---|
committer | Willem Jan Palenstijn <Willem.Jan.Palenstijn@cwi.nl> | 2016-11-25 10:46:44 +0100 |
commit | b483804b0f7777046fc198793f4037b9a9cb080d (patch) | |
tree | ca57be1aa5a3fdfb0c6196edd4eb337cdcfa4d06 | |
parent | c4b5018ca57213601d0b31139be8c4268a308910 (diff) | |
download | astra-b483804b0f7777046fc198793f4037b9a9cb080d.tar.gz astra-b483804b0f7777046fc198793f4037b9a9cb080d.tar.bz2 astra-b483804b0f7777046fc198793f4037b9a9cb080d.tar.xz astra-b483804b0f7777046fc198793f4037b9a9cb080d.zip |
Change order of template instantiations for clang
At least Apple's clang-703.0.31 needs this.
-rw-r--r-- | include/astra/Singleton.h | 8 | ||||
-rw-r--r-- | src/AstraObjectFactory.cpp | 6 | ||||
-rw-r--r-- | src/AstraObjectManager.cpp | 16 |
3 files changed, 15 insertions, 15 deletions
diff --git a/include/astra/Singleton.h b/include/astra/Singleton.h index 9d3c088..7271691 100644 --- a/include/astra/Singleton.h +++ b/include/astra/Singleton.h @@ -82,15 +82,15 @@ class Singleton { // libastra. This situation would cause issues when .mex files are unloaded. #define DEFINE_SINGLETON(T) \ -template<> void Singleton<T >::construct() { assert(!m_singleton); m_singleton = new T(); } \ -template<> T* Singleton<T >::m_singleton = 0 +template<> T* Singleton<T >::m_singleton = 0; \ +template<> void Singleton<T >::construct() { assert(!m_singleton); m_singleton = new T(); } // This is a hack to support statements like // DEFINE_SINGLETON2(CTemplatedClass<C1, C2>); #define DEFINE_SINGLETON2(A,B) \ -template<> void Singleton<A,B >::construct() { assert(!m_singleton); m_singleton = new A,B(); } \ -template<> A,B* Singleton<A,B >::m_singleton = 0 +template<> A,B* Singleton<A,B >::m_singleton = 0; \ +template<> void Singleton<A,B >::construct() { assert(!m_singleton); m_singleton = new A,B(); } } // end namespace diff --git a/src/AstraObjectFactory.cpp b/src/AstraObjectFactory.cpp index 35132d0..1dda3b2 100644 --- a/src/AstraObjectFactory.cpp +++ b/src/AstraObjectFactory.cpp @@ -32,8 +32,8 @@ using namespace std; namespace astra { -DEFINE_SINGLETON2(CAstraObjectFactory<CAlgorithm, AlgorithmTypeList>); -DEFINE_SINGLETON2(CAstraObjectFactory<CProjector2D, Projector2DTypeList>); -DEFINE_SINGLETON2(CAstraObjectFactory<CProjector3D, Projector3DTypeList>); +DEFINE_SINGLETON2(CAstraObjectFactory<CAlgorithm, AlgorithmTypeList>) +DEFINE_SINGLETON2(CAstraObjectFactory<CProjector2D, Projector2DTypeList>) +DEFINE_SINGLETON2(CAstraObjectFactory<CProjector3D, Projector3DTypeList>) } // end namespace diff --git a/src/AstraObjectManager.cpp b/src/AstraObjectManager.cpp index 46eae4b..3b818d3 100644 --- a/src/AstraObjectManager.cpp +++ b/src/AstraObjectManager.cpp @@ -31,13 +31,13 @@ $Id$ namespace astra { -DEFINE_SINGLETON(CProjector2DManager); -DEFINE_SINGLETON(CProjector3DManager); -DEFINE_SINGLETON(CData2DManager); -DEFINE_SINGLETON(CData3DManager); -DEFINE_SINGLETON(CAlgorithmManager); -DEFINE_SINGLETON(CMatrixManager); - -DEFINE_SINGLETON(CAstraIndexManager); +DEFINE_SINGLETON(CProjector2DManager) +DEFINE_SINGLETON(CProjector3DManager) +DEFINE_SINGLETON(CData2DManager) +DEFINE_SINGLETON(CData3DManager) +DEFINE_SINGLETON(CAlgorithmManager) +DEFINE_SINGLETON(CMatrixManager) + +DEFINE_SINGLETON(CAstraIndexManager) } // end namespace |