summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWillem Jan Palenstijn <Willem.Jan.Palenstijn@cwi.nl>2016-11-23 18:15:51 +0100
committerWillem Jan Palenstijn <Willem.Jan.Palenstijn@cwi.nl>2016-11-25 10:46:44 +0100
commitb483804b0f7777046fc198793f4037b9a9cb080d (patch)
treeca57be1aa5a3fdfb0c6196edd4eb337cdcfa4d06
parentc4b5018ca57213601d0b31139be8c4268a308910 (diff)
downloadastra-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.h8
-rw-r--r--src/AstraObjectFactory.cpp6
-rw-r--r--src/AstraObjectManager.cpp16
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