[CLAM] linking

Maarten de Boer mdeboer at iua.upf.es
Wed Oct 8 02:29:21 PDT 2003


> This is a problem related with inlined template specialization, which we
> first noticed compiling with g++ 3.3 (on MacOSX). Does should be solved in
> the new CLAM release (an announcement will follow!)

Ooops... We just checked, and it seems the change did not got included in the
CLAM 0.5.3 release... The changes are minor though, see the attached patch.
We will make sure this get included in a future release.

Maarten
-------------- next part --------------
diff -u -r1.3.2.4 BinaryControlOp.hxx
--- src/Flow/Controls/BinaryControlOp.hxx	12 May 2003 17:53:11 -0000	1.3.2.4
+++ src/Flow/Controls/BinaryControlOp.hxx	8 Oct 2003 09:27:23 -0000
@@ -120,7 +120,7 @@
 	};
 
 	template < typename BinOp >
-	const char *BinaryControlOp<BinOp>::GetClassName() const { return "BinaryControlOperation"; }
+	inline const char *BinaryControlOp<BinOp>::GetClassName() const { return "BinaryControlOperation"; }
 
 }
 
diff -u -r1.3.2.2 ControlMultiplier.hxx
--- src/Flow/Controls/ControlMultiplier.hxx	12 May 2003 17:53:11 -0000	1.3.2.2
+++ src/Flow/Controls/ControlMultiplier.hxx	8 Oct 2003 09:27:23 -0000
@@ -29,7 +29,7 @@
 
 	
 	template <>
-	const char* BinaryControlOp< Multiply<TControlData> >::GetClassName() const
+	inline const char* BinaryControlOp< Multiply<TControlData> >::GetClassName() const
 	{
 		return "BinaryControlOperation_Multiply";
 	}
diff -u -r1.3.2.3 AudioAdder.hxx
--- src/Processing/ArithOps/AudioAdder.hxx	14 Jan 2003 13:22:19 -0000	1.3.2.3
+++ src/Processing/ArithOps/AudioAdder.hxx	8 Oct 2003 09:27:23 -0000
@@ -31,7 +31,7 @@
 		
 
 		template<>
-		const char* BinaryAudioOp< Add<TData> >::GetClassName() const
+		inline const char* BinaryAudioOp< Add<TData> >::GetClassName() const
 		{
 				return "BinaryAudioOperation_Add";
 		}
diff -u -r1.3.2.2 AudioMultiplier.hxx
--- src/Processing/ArithOps/AudioMultiplier.hxx	14 Jan 2003 13:22:19 -0000	1.3.2.2
+++ src/Processing/ArithOps/AudioMultiplier.hxx	8 Oct 2003 09:27:23 -0000
@@ -30,7 +30,7 @@
 
 	
 		template <>
-		const char* BinaryAudioOp< Multiply<TData> >::GetClassName() const 
+		inline const char* BinaryAudioOp< Multiply<TData> >::GetClassName() const 
 		{
 				return "BinaryAudioOperation_Multiply";
 		}
diff -u -r1.4.2.1 WaveGenerator.cxx
--- src/Processing/Generators/WaveGenerator.cxx	6 Mar 2003 15:38:31 -0000	1.4.2.1
+++ src/Processing/Generators/WaveGenerator.cxx	8 Oct 2003 09:27:23 -0000
@@ -47,7 +47,7 @@
 
 
 	template<> 
-		TData WaveFunctor<WaveGenerator::EWaveType_eSine>::operator()(TTime x,TData amplitude)
+	inline TData WaveFunctor<WaveGenerator::EWaveType_eSine>::operator()(TTime x,TData amplitude)
 	{
 		return amplitude * sin(x);
 	}
diff -u -r1.3.2.10 Array.hxx
--- src/Standard/Array.hxx	5 Sep 2003 11:09:38 -0000	1.3.2.10
+++ src/Standard/Array.hxx	8 Oct 2003 09:27:23 -0000
@@ -434,7 +434,7 @@
 
 #define CLAM_NUMERIC_ARRAY_INITIALIZATION(Type)          \
 template<>                                              \
-void Array<Type>::InitializeElement(int i)              \
+inline void Array<Type>::InitializeElement(int i)              \
 {                                                       \
     mpData[i]=0;                                        \
 }                                                       \
@@ -516,7 +516,7 @@
 
 #define CLAM_FAST_ARRAY_SPECIALIZATIONS(TYPE)                           \
 template<>                                                             \
-void Array<TYPE >::CopyDataBlock(int first, int last,                  \
+inline void Array<TYPE >::CopyDataBlock(int first, int last,                  \
                                  const TYPE *src)                      \
 {                                                                      \
     if (last>first)                                                    \
@@ -524,7 +524,7 @@
                sizeof(TYPE)*(last-first));                             \
 }                                                                      \
 template<>                                                             \
-void Array<TYPE >::InitializeCopyDataBlock(int first, int last,        \
+inline void Array<TYPE >::InitializeCopyDataBlock(int first, int last,        \
                                            const TYPE *src)            \
 {                                                                      \
     if (last>first)                                                    \
@@ -532,7 +532,7 @@
                sizeof(TYPE)*(last-first));                             \
 }                                                                      \
 template<>                                                             \
-void Array<TYPE >::InitializeCopyDataBlock(int first, int last,        \
+inline void Array<TYPE >::InitializeCopyDataBlock(int first, int last,        \
                                            int src_first,              \
                                            const TYPE *src)            \
 {                                                                      \
@@ -541,18 +541,18 @@
                sizeof(TYPE)*(last-first));                             \
 }                                                                      \
 template<>                                                             \
-void Array<TYPE >::ResizeDataBuffer(int new_size)                      \
+inline void Array<TYPE >::ResizeDataBuffer(int new_size)                      \
 {                                                                      \
     mpData = (TYPE*) realloc(mpData,new_size*sizeof(TYPE));            \
 }                                                                      \
 template<>                                                             \
-void Array<TYPE >::InsertElemInDataBuffer(int where)                   \
+inline void Array<TYPE >::InsertElemInDataBuffer(int where)                   \
 {                                                                      \
     memmove(&mpData[where+1],&mpData[where],                           \
             (mSize-where)*sizeof(TYPE));                               \
 }                                                                      \
 template<>                                                             \
-void Array<TYPE >::DeleteElemInDataBuffer(int where)                   \
+inline void Array<TYPE >::DeleteElemInDataBuffer(int where)                   \
 {                                                                      \
     memmove(&mpData[where],&mpData[where+1],                           \
             (mSize-where-1)*sizeof(TYPE));                             \


More information about the clam-users mailing list