Hola James Vega!

El 18/03/2008 a las 01:23 escribiste:
> On Sat, Mar 15, 2008 at 10:07:27PM -0200, Maximiliano Curia wrote:
> > I'm attaching a patch to fix this bug, please keep in mind that gcc 4.3 
> > issues
> > are tagged as release goals, so it would probably be NMUed if don't upload a
> > fixed version soon.
 
> I NMUed rezound with this patch today but the patch causes build
> failures[0] with gcc-4.2.  Could you possibly update the patch to fix
> this problem?

Ups, it seems that the patch wasn't clean as it should be, I was adding a .swp
file, I'm attaching a fixed version. Anyway that wasn't the problem in question.

The problem appears to be quite ugly, the least intrusive fix might be to
check __GNUC__ and __GNUC_MINOR__ numbers. I'm not really sure if its feasible
to split anytype.h without making a major rewrite. Scary parts:

// vector versions (prototyped BEFORE we include CNestedDataFile.h which calls
// them)
....lots of templates specifications....
#include <CNestedDataFile/CNestedDataFile.h>
....lots of templates specifications that use CNestedDataFile....

Anyway C++ is not my native language. :)
It might be a good idea to ask upstream to fix this issues.

-- 
"Programming today is a race between software engineers striving to build
bigger and better idiot-proof programs, and the Universe trying to produce
bigger and better idiots. So far, the Universe is winning."
                -- (Rich Cook)
Saludos /\/\ /\ >< `/
diff -Naru rezound-0.12.3beta~/src/misc/CNestedDataFile/anytype.h rezound-0.12.3beta/src/misc/CNestedDataFile/anytype.h
--- rezound-0.12.3beta~/src/misc/CNestedDataFile/anytype.h	2007-01-13 05:24:22.000000000 -0300
+++ rezound-0.12.3beta/src/misc/CNestedDataFile/anytype.h	2008-03-15 19:11:12.000000000 -0200
@@ -67,28 +67,28 @@
 
 // template specializations of string_to_anytype
 
-template<> static const string string_to_anytype<string>(const string &str,string &ret)                         { return s2at::unescape_chars(s2at::remove_surrounding_quotes(str)); }
+template<> const string string_to_anytype<string>(const string &str,string &ret)                         { return s2at::unescape_chars(s2at::remove_surrounding_quotes(str)); }
 
-template<> static const bool string_to_anytype<bool>(const string &str,bool &ret)                             { return s2at::remove_surrounding_quotes(str)=="true" ? ret=true : ret=false; }
+template<> const bool string_to_anytype<bool>(const string &str,bool &ret)                             { return s2at::remove_surrounding_quotes(str)=="true" ? ret=true : ret=false; }
 
-template<> static const char string_to_anytype<char>(const string &str,char &ret)                             { istringstream ss(s2at::remove_surrounding_quotes(str)); NO_LOCALE(ss) ret=0; ss >> ret; return ret; }
-template<> static const unsigned char string_to_anytype<unsigned char>(const string &str,unsigned char &ret)           { istringstream ss(s2at::remove_surrounding_quotes(str)); NO_LOCALE(ss) ret=0; ss >> ret; return ret; }
+template<> const char string_to_anytype<char>(const string &str,char &ret)                             { istringstream ss(s2at::remove_surrounding_quotes(str)); NO_LOCALE(ss) ret=0; ss >> ret; return ret; }
+template<> const unsigned char string_to_anytype<unsigned char>(const string &str,unsigned char &ret)           { istringstream ss(s2at::remove_surrounding_quotes(str)); NO_LOCALE(ss) ret=0; ss >> ret; return ret; }
 
-template<> static const short string_to_anytype<short>(const string &str,short &ret)                           { istringstream ss(s2at::remove_surrounding_quotes(str)); NO_LOCALE(ss) ret=0; ss >> ret; return ret; }
-template<> static const unsigned short string_to_anytype<unsigned short>(const string &str,unsigned short &ret)         { istringstream ss(s2at::remove_surrounding_quotes(str)); NO_LOCALE(ss) ret=0; ss >> ret; return ret; }
+template<> const short string_to_anytype<short>(const string &str,short &ret)                           { istringstream ss(s2at::remove_surrounding_quotes(str)); NO_LOCALE(ss) ret=0; ss >> ret; return ret; }
+template<> const unsigned short string_to_anytype<unsigned short>(const string &str,unsigned short &ret)         { istringstream ss(s2at::remove_surrounding_quotes(str)); NO_LOCALE(ss) ret=0; ss >> ret; return ret; }
 
-template<> static const int string_to_anytype<int>(const string &str,int &ret)                               { istringstream ss(s2at::remove_surrounding_quotes(str)); NO_LOCALE(ss) ret=0; ss >> ret; return ret; }
-template<> static const unsigned int string_to_anytype<unsigned int>(const string &str,unsigned int &ret)             { istringstream ss(s2at::remove_surrounding_quotes(str)); NO_LOCALE(ss) ret=0; ss >> ret; return ret; }
+template<> const int string_to_anytype<int>(const string &str,int &ret)                               { istringstream ss(s2at::remove_surrounding_quotes(str)); NO_LOCALE(ss) ret=0; ss >> ret; return ret; }
+template<> const unsigned int string_to_anytype<unsigned int>(const string &str,unsigned int &ret)             { istringstream ss(s2at::remove_surrounding_quotes(str)); NO_LOCALE(ss) ret=0; ss >> ret; return ret; }
 
-template<> static const long string_to_anytype<long>(const string &str,long &ret)                             { istringstream ss(s2at::remove_surrounding_quotes(str)); NO_LOCALE(ss) ret=0; ss >> ret; return ret; }
-template<> static const unsigned long string_to_anytype<unsigned long>(const string &str,unsigned long &ret)           { istringstream ss(s2at::remove_surrounding_quotes(str)); NO_LOCALE(ss) ret=0; ss >> ret; return ret; }
+template<> const long string_to_anytype<long>(const string &str,long &ret)                             { istringstream ss(s2at::remove_surrounding_quotes(str)); NO_LOCALE(ss) ret=0; ss >> ret; return ret; }
+template<> const unsigned long string_to_anytype<unsigned long>(const string &str,unsigned long &ret)           { istringstream ss(s2at::remove_surrounding_quotes(str)); NO_LOCALE(ss) ret=0; ss >> ret; return ret; }
 
-template<> static const long long string_to_anytype<long long>(const string &str,long long &ret)                   { istringstream ss(s2at::remove_surrounding_quotes(str)); NO_LOCALE(ss) ret=0; ss >> ret; return ret; }
-template<> static const unsigned long long string_to_anytype<unsigned long long>(const string &str,unsigned long long &ret) { istringstream ss(s2at::remove_surrounding_quotes(str)); NO_LOCALE(ss) ret=0; ss >> ret; return ret; }
+template<> const long long string_to_anytype<long long>(const string &str,long long &ret)                   { istringstream ss(s2at::remove_surrounding_quotes(str)); NO_LOCALE(ss) ret=0; ss >> ret; return ret; }
+template<> const unsigned long long string_to_anytype<unsigned long long>(const string &str,unsigned long long &ret) { istringstream ss(s2at::remove_surrounding_quotes(str)); NO_LOCALE(ss) ret=0; ss >> ret; return ret; }
 
-template<> static const float string_to_anytype<float>(const string &str,float &ret)                           { istringstream ss(s2at::remove_surrounding_quotes(str)); NO_LOCALE(ss) ret=0.0f; ss >> ret; return ret; }
-template<> static const double string_to_anytype<double>(const string &str,double &ret)                         { istringstream ss(s2at::remove_surrounding_quotes(str)); NO_LOCALE(ss) ret=0.0; ss >> ret; return ret; }
-template<> static const long double string_to_anytype<long double>(const string &str,long double &ret)               { istringstream ss(s2at::remove_surrounding_quotes(str)); NO_LOCALE(ss) ret=0.0; ss >> ret; return ret; }
+template<> const float string_to_anytype<float>(const string &str,float &ret)                           { istringstream ss(s2at::remove_surrounding_quotes(str)); NO_LOCALE(ss) ret=0.0f; ss >> ret; return ret; }
+template<> const double string_to_anytype<double>(const string &str,double &ret)                         { istringstream ss(s2at::remove_surrounding_quotes(str)); NO_LOCALE(ss) ret=0.0; ss >> ret; return ret; }
+template<> const long double string_to_anytype<long double>(const string &str,long double &ret)               { istringstream ss(s2at::remove_surrounding_quotes(str)); NO_LOCALE(ss) ret=0.0; ss >> ret; return ret; }
 
 // I really wished that I didn't have to explicitly use 'vector' in the definition; I'd have like to use any container with an iterator interface
 #include <CMutex.h>
@@ -119,31 +119,31 @@
 
 // template specializations of anytype_to_string
 
-template<> static const string anytype_to_string<string>(const string &any)             { return "\""+s2at::escape_chars(any)+"\""; }
+template<> const string anytype_to_string<string>(const string &any)             { return "\""+s2at::escape_chars(any)+"\""; }
 
-template<> static const string anytype_to_string<bool>(const bool &any)               { return any ? "true" : "false"; }
+template<> const string anytype_to_string<bool>(const bool &any)               { return any ? "true" : "false"; }
 
-template<> static const string anytype_to_string<char>(const char &any)               { ostringstream ss; NO_LOCALE(ss) ss << any; return ss.str(); }
-template<> static const string anytype_to_string<unsigned char>(const unsigned char &any)      { ostringstream ss; NO_LOCALE(ss) ss << any; return ss.str(); }
+template<> const string anytype_to_string<char>(const char &any)               { ostringstream ss; NO_LOCALE(ss) ss << any; return ss.str(); }
+template<> const string anytype_to_string<unsigned char>(const unsigned char &any)      { ostringstream ss; NO_LOCALE(ss) ss << any; return ss.str(); }
 
-template<> static const string anytype_to_string<short>(const short &any)              { ostringstream ss; NO_LOCALE(ss) ss << any; return ss.str(); }
-template<> static const string anytype_to_string<unsigned short>(const unsigned short &any)     { ostringstream ss; NO_LOCALE(ss) ss << any; return ss.str(); }
+template<> const string anytype_to_string<short>(const short &any)              { ostringstream ss; NO_LOCALE(ss) ss << any; return ss.str(); }
+template<> const string anytype_to_string<unsigned short>(const unsigned short &any)     { ostringstream ss; NO_LOCALE(ss) ss << any; return ss.str(); }
 
-template<> static const string anytype_to_string<int>(const int &any)                { ostringstream ss; NO_LOCALE(ss) ss << any; return ss.str(); }
-template<> static const string anytype_to_string<unsigned int>(const unsigned int &any)       { ostringstream ss; NO_LOCALE(ss) ss << any; return ss.str(); }
+template<> const string anytype_to_string<int>(const int &any)                { ostringstream ss; NO_LOCALE(ss) ss << any; return ss.str(); }
+template<> const string anytype_to_string<unsigned int>(const unsigned int &any)       { ostringstream ss; NO_LOCALE(ss) ss << any; return ss.str(); }
 
-template<> static const string anytype_to_string<long>(const long &any)               { ostringstream ss; NO_LOCALE(ss) ss << any; return ss.str(); }
-template<> static const string anytype_to_string<unsigned long>(const unsigned long &any)      { ostringstream ss; NO_LOCALE(ss) ss << any; return ss.str(); }
+template<> const string anytype_to_string<long>(const long &any)               { ostringstream ss; NO_LOCALE(ss) ss << any; return ss.str(); }
+template<> const string anytype_to_string<unsigned long>(const unsigned long &any)      { ostringstream ss; NO_LOCALE(ss) ss << any; return ss.str(); }
 
-template<> static const string anytype_to_string<long long>(const long long &any)          { ostringstream ss; NO_LOCALE(ss) ss << any; return ss.str(); }
-template<> static const string anytype_to_string<unsigned long long>(const unsigned long long &any) { ostringstream ss; NO_LOCALE(ss) ss << any; return ss.str(); }
+template<> const string anytype_to_string<long long>(const long long &any)          { ostringstream ss; NO_LOCALE(ss) ss << any; return ss.str(); }
+template<> const string anytype_to_string<unsigned long long>(const unsigned long long &any) { ostringstream ss; NO_LOCALE(ss) ss << any; return ss.str(); }
 
 // I've picked a rather arbitrary way of formatting floats one way or another depending on how big it is.. I wish there were a way to output the ascii in such a way as to preserve all the information in the float (without printing the hex of it or something like that)
 #include <istring>
 #include <math.h> // for isnan which I hope is there (maybe fix in common.h if it's not
-template<> static const string anytype_to_string<float>(const float &any)              { if(isnan(any)) return "0"; else { ostringstream ss; NO_LOCALE(ss) if(any>999999.0) {ss.setf(ios::scientific); ss.width(0); ss.precision(12); ss.fill(' '); } else {ss.setf(ios::fixed); ss.precision(6); ss.fill(' '); } ss << any; return istring(ss.str()).trim(); } }
-template<> static const string anytype_to_string<double>(const double &any)             { if(isnan(any)) return "0"; else { ostringstream ss; NO_LOCALE(ss) if(any>999999.0) {ss.setf(ios::scientific); ss.width(0); ss.precision(12); ss.fill(' '); } else {ss.setf(ios::fixed); ss.precision(6); ss.fill(' '); } ss << any; return istring(ss.str()).trim(); } }
-template<> static const string anytype_to_string<long double>(const long double &any)        { if(isnan(any)) return "0"; else { ostringstream ss; NO_LOCALE(ss) if(any>999999.0) {ss.setf(ios::scientific); ss.width(0); ss.precision(12); ss.fill(' '); } else {ss.setf(ios::fixed); ss.precision(6); ss.fill(' '); } ss << any; return istring(ss.str()).trim(); } }
+template<> const string anytype_to_string<float>(const float &any)              { if(isnan(any)) return "0"; else { ostringstream ss; NO_LOCALE(ss) if(any>999999.0) {ss.setf(ios::scientific); ss.width(0); ss.precision(12); ss.fill(' '); } else {ss.setf(ios::fixed); ss.precision(6); ss.fill(' '); } ss << any; return istring(ss.str()).trim(); } }
+template<> const string anytype_to_string<double>(const double &any)             { if(isnan(any)) return "0"; else { ostringstream ss; NO_LOCALE(ss) if(any>999999.0) {ss.setf(ios::scientific); ss.width(0); ss.precision(12); ss.fill(' '); } else {ss.setf(ios::fixed); ss.precision(6); ss.fill(' '); } ss << any; return istring(ss.str()).trim(); } }
+template<> const string anytype_to_string<long double>(const long double &any)        { if(isnan(any)) return "0"; else { ostringstream ss; NO_LOCALE(ss) if(any>999999.0) {ss.setf(ios::scientific); ss.width(0); ss.precision(12); ss.fill(' '); } else {ss.setf(ios::fixed); ss.precision(6); ss.fill(' '); } ss << any; return istring(ss.str()).trim(); } }
 
 
 // I really wished that I didn't have to explicitly use 'vector' in the definition, I'd have like to use any container with an iterator interface
diff -Naru rezound-0.12.3beta~/src/misc/endian_util.h rezound-0.12.3beta/src/misc/endian_util.h
--- rezound-0.12.3beta~/src/misc/endian_util.h	2004-06-17 23:43:55.000000000 -0300
+++ rezound-0.12.3beta/src/misc/endian_util.h	2008-03-15 19:39:04.000000000 -0200
@@ -131,13 +131,13 @@
 	}
 
 	// --- implementation for 1 byte quantities (nothing)
-	template<> inline static void really_swap_endian_ptr<1>(void *value,const unsigned size)
+	template<> inline void really_swap_endian_ptr<1>(void *value,const unsigned size)
 	{
 		// nothing to do
 	}
 
 	// --- implementation for 2 byte quantities
-	template<> inline static void really_swap_endian_ptr<2>(void *value,const unsigned size)
+	template<> inline void really_swap_endian_ptr<2>(void *value,const unsigned size)
 	{
 		const register uint16_t v=((uint16_t *)value)[0];
 		((uint16_t *)value)[0]=
@@ -147,7 +147,7 @@
 	}
 
 	// --- implementation for 4 byte quantities
-	template<> inline static void really_swap_endian_ptr<4>(void *value,const unsigned size)
+	template<> inline void really_swap_endian_ptr<4>(void *value,const unsigned size)
 	{
 		const register uint32_t v=((uint32_t *)value)[0];
 		((uint32_t *)value)[0]=
@@ -157,7 +157,7 @@
 	}
 
 	// --- implementation for 8 byte quantities
-	template<> inline static void really_swap_endian_ptr<8>(void *value,const unsigned size)
+	template<> inline void really_swap_endian_ptr<8>(void *value,const unsigned size)
 	{
 		const register uint64_t v=((uint64_t *)value)[0];
 		// of 8, swap upper most and lower most octets then the next two inward, and so on ..
diff -Naru rezound-0.12.3beta~/src/backend/ALFO.h rezound-0.12.3beta/src/backend/ALFO.h
--- rezound-0.12.3beta~/src/backend/ALFO.h	2005-11-15 23:53:17.000000000 -0300
+++ rezound-0.12.3beta/src/backend/ALFO.h	2008-03-15 19:52:34.000000000 -0200
@@ -94,7 +94,7 @@
 };
 
 #include <CNestedDataFile/anytype.h>
-template<> static const CLFODescription string_to_anytype<CLFODescription>(const string &str,CLFODescription &ret) 
+template<> const CLFODescription string_to_anytype<CLFODescription>(const string &str,CLFODescription &ret) 
 {
 	 CNestedDataFile f;
 	 f.parseString(s2at::remove_surrounding_quotes(str));
@@ -102,7 +102,7 @@
 	 return ret;
 }
 
-template<> static const string anytype_to_string<CLFODescription>(const CLFODescription &any) 
+template<> const string anytype_to_string<CLFODescription>(const CLFODescription &any) 
 {
 	CNestedDataFile f; any.writeToFile(&f,"");
 	return "\""+s2at::escape_chars(istring(f.asString()).searchAndReplace("\n"," ",true))+"\"";
diff -Naru rezound-0.12.3beta~/src/backend/CPluginMapping.h rezound-0.12.3beta/src/backend/CPluginMapping.h
--- rezound-0.12.3beta~/src/backend/CPluginMapping.h	2005-11-15 23:53:56.000000000 -0300
+++ rezound-0.12.3beta/src/backend/CPluginMapping.h	2008-03-15 19:53:23.000000000 -0200
@@ -215,7 +215,7 @@
 };
 
 #include <CNestedDataFile/anytype.h>
-template<> static const CPluginMapping string_to_anytype<CPluginMapping>(const string &str,CPluginMapping &ret)
+template<> const CPluginMapping string_to_anytype<CPluginMapping>(const string &str,CPluginMapping &ret)
 {
 	CNestedDataFile f;
 	f.parseString(s2at::remove_surrounding_quotes(str));
@@ -223,7 +223,7 @@
 	return ret;
 }
 
-template<> static const string anytype_to_string<CPluginMapping>(const CPluginMapping &any)
+template<> const string anytype_to_string<CPluginMapping>(const CPluginMapping &any)
 {
 	CNestedDataFile f;
 	any.writeToFile(&f,"");
diff -Naru rezound-0.12.3beta~/src/backend/CSound_defs.h rezound-0.12.3beta/src/backend/CSound_defs.h
--- rezound-0.12.3beta~/src/backend/CSound_defs.h	2004-06-17 23:45:47.000000000 -0300
+++ rezound-0.12.3beta/src/backend/CSound_defs.h	2008-03-15 19:49:57.000000000 -0200
@@ -161,10 +161,10 @@
 
 // int8_t -> ...
 	// int8_t -> int8_t
-	template<> static inline const int8_t convert_sample<int8_t,int8_t>(const register int8_t sample) { return sample; }
+	template<> inline const int8_t convert_sample<int8_t,int8_t>(const register int8_t sample) { return sample; }
 
 	// int8_t -> int16_t
-	template<> static inline const int16_t convert_sample<int8_t,int16_t>(const register int8_t sample) { return sample*256; }
+	template<> inline const int16_t convert_sample<int8_t,int16_t>(const register int8_t sample) { return sample*256; }
 
 	// int8_t -> int24_t
 	//template<> static inline const int24_t convert_sample<int8_t,int24_t>(const register int8_t sample) { }
@@ -173,7 +173,7 @@
 	//template<> static inline const int32_t convert_sample<int8_t,int32_t>(const register int8_t sample) { }
 
 	// int8_t -> float
-	template<> static inline const float convert_sample<int8_t,float>(const register int8_t sample) { return ((float)sample)/127.0f; }
+	template<> inline const float convert_sample<int8_t,float>(const register int8_t sample) { return ((float)sample)/127.0f; }
 
 	// int8_t -> double
 	//template<> static inline const double convert_sample<int8_t,double>(const register int8_t sample) { }
@@ -181,22 +181,22 @@
 
 // int16_t -> ...
 	// int16_t -> int8_t
-	template<> static inline const int8_t convert_sample<int16_t,int8_t>(const register int16_t sample) { return sample/256; }
+	template<> inline const int8_t convert_sample<int16_t,int8_t>(const register int16_t sample) { return sample/256; }
 
 	// int16_t -> int16_t
-	template<> static inline const int16_t convert_sample<int16_t,int16_t>(const register int16_t sample) { return sample; }
+	template<> inline const int16_t convert_sample<int16_t,int16_t>(const register int16_t sample) { return sample; }
 
 	// int16_t -> int24_t
-	template<> static inline const int24_t convert_sample<int16_t,int24_t>(const register int16_t sample) { int24_t r; r.set(sample*256); return r; }
+	template<> inline const int24_t convert_sample<int16_t,int24_t>(const register int16_t sample) { int24_t r; r.set(sample*256); return r; }
 
 	// int16_t -> int32_t
-	template<> static inline const int32_t convert_sample<int16_t,int32_t>(const register int16_t sample) { return sample*65536; }
+	template<> inline const int32_t convert_sample<int16_t,int32_t>(const register int16_t sample) { return sample*65536; }
 
 	// int16_t -> float
-	template<> static inline const float convert_sample<int16_t,float>(const register int16_t sample) { return (float)sample/32767.0f; }
+	template<> inline const float convert_sample<int16_t,float>(const register int16_t sample) { return (float)sample/32767.0f; }
 
 	// int16_t -> double
-	template<> static inline const double convert_sample<int16_t,double>(const register int16_t sample) { return (double)sample/32767.0; }
+	template<> inline const double convert_sample<int16_t,double>(const register int16_t sample) { return (double)sample/32767.0; }
 
 
 // int24_t -> ...
@@ -204,16 +204,16 @@
 	//template<> static inline const int8_t convert_sample<int24_t,int8_t>(const int24_t sample) { }
 
 	// int24_t -> int16_t
-	template<> static inline const int16_t convert_sample<int24_t,int16_t>(const int24_t sample) { return sample.get()>>8; }
+	template<> inline const int16_t convert_sample<int24_t,int16_t>(const int24_t sample) { return sample.get()>>8; }
 
 	// int24_t -> int24_t
-	template<> static inline const int24_t convert_sample<int24_t,int24_t>(const int24_t sample) { return sample; }
+	template<> inline const int24_t convert_sample<int24_t,int24_t>(const int24_t sample) { return sample; }
 
 	// int24_t -> int32_t
 	//template<> static inline const int32_t convert_sample<int24_t,int32_t>(const int24_t sample) { }
 
 	// int24_t -> float
-	template<> static inline const float convert_sample<int24_t,float>(const int24_t sample) { return sample.get()/8388607.0f; }
+	template<> inline const float convert_sample<int24_t,float>(const int24_t sample) { return sample.get()/8388607.0f; }
 
 	// int24_t -> double
 	//template<> static inline const double convert_sample<int24_t,double>(const int24_t sample) { }
@@ -224,16 +224,16 @@
 	//template<> static inline const int8_t convert_sample<int32_t,int8_t>(const register int32_t sample) { }
 
 	// int32_t -> int16_t
-	template<> static inline const int16_t convert_sample<int32_t,int16_t>(const register int32_t sample) { return sample/65536; }
+	template<> inline const int16_t convert_sample<int32_t,int16_t>(const register int32_t sample) { return sample/65536; }
 
 	// int32_t -> int24_t
 	//template<> static inline const int24_t convert_sample<int32_t,int24_t>(const register int32_t sample) { }
 
 	// int32_t -> int32_t
-	template<> static inline const int32_t convert_sample<int32_t,int32_t>(const register int32_t sample) { return sample; }
+	template<> inline const int32_t convert_sample<int32_t,int32_t>(const register int32_t sample) { return sample; }
 
 	// int32_t -> float
-	template<> static inline const float convert_sample<int32_t,float>(const register int32_t sample) { return ((double)sample)/2147483647.0; }
+	template<> inline const float convert_sample<int32_t,float>(const register int32_t sample) { return ((double)sample)/2147483647.0; }
 
 	// int32_t -> double
 	//template<> static inline const double  convert_sample<int32_t,double >(const register int32_t sample) { }
@@ -241,22 +241,22 @@
 
 // float -> ...
 	// float -> int8_t
-	template<> static inline const int8_t convert_sample<float,int8_t>(const register float sample) { return (int8_t)floorf((sample>1.0f ? 1.0f : (sample<-1.0f ? -1.0f : sample))*127.0f); }
+	template<> inline const int8_t convert_sample<float,int8_t>(const register float sample) { return (int8_t)floorf((sample>1.0f ? 1.0f : (sample<-1.0f ? -1.0f : sample))*127.0f); }
 
 	// float -> int16_t
-	template<> static inline const int16_t convert_sample<float,int16_t>(const register float sample) { return (int16_t)floorf((sample>1.0f ? 1.0f : (sample<-1.0f ? -1.0f : sample))*32767.0f); }
+	template<> inline const int16_t convert_sample<float,int16_t>(const register float sample) { return (int16_t)floorf((sample>1.0f ? 1.0f : (sample<-1.0f ? -1.0f : sample))*32767.0f); }
 
 	// float -> int24_t
-	template<> static inline const int24_t convert_sample<float,int24_t>(const register float sample) { int24_t r; r.set((int_fast32_t)floorf((sample>1.0f ? 1.0f : (sample<-1.0f ? -1.0f : sample))*8388607.0f)); return r; }
+	template<> inline const int24_t convert_sample<float,int24_t>(const register float sample) { int24_t r; r.set((int_fast32_t)floorf((sample>1.0f ? 1.0f : (sample<-1.0f ? -1.0f : sample))*8388607.0f)); return r; }
 
 	// float -> int32_t
-	template<> static inline const int32_t convert_sample<float,int32_t>(const register float sample) { return (int32_t) floor((double)(sample>1.0f ? 1.0f : (sample<-1.0f ? -1.0f : sample)) * 2147483647.0); }
+	template<> inline const int32_t convert_sample<float,int32_t>(const register float sample) { return (int32_t) floor((double)(sample>1.0f ? 1.0f : (sample<-1.0f ? -1.0f : sample)) * 2147483647.0); }
 
 	// float -> float
-	template<> static inline const float convert_sample<float,float>(const register float sample) { return sample; }
+	template<> inline const float convert_sample<float,float>(const register float sample) { return sample; }
 
 	// float -> double
-	template<> static inline const double convert_sample<float,double>(const register float sample) { return (double)sample; }
+	template<> inline const double convert_sample<float,double>(const register float sample) { return (double)sample; }
 
 
 // double -> ...
@@ -264,7 +264,7 @@
 	//template<> static inline const int8_t convert_sample<double,int8_t>(const register double sample) { }
 
 	// double -> int16_t
-	template<> static inline const int16_t convert_sample<double,int16_t>(const register double sample) { return (int16_t)floor((sample>1.0 ? 1.0 : (sample<-1.0 ? -1.0 : sample))*32767.0); }
+	template<> inline const int16_t convert_sample<double,int16_t>(const register double sample) { return (int16_t)floor((sample>1.0 ? 1.0 : (sample<-1.0 ? -1.0 : sample))*32767.0); }
 
 	// double -> int24_t
 	//template<> static inline const int24_t convert_sample<double,int24_t>(const register double sample) { }
@@ -273,10 +273,10 @@
 	//template<> static inline const int32_t convert_sample<double,int32_t>(const register double sample) { }
 
 	// double -> float
-	template<> static inline const float convert_sample<double,float>(const register double sample) { return (float)sample; }
+	template<> inline const float convert_sample<double,float>(const register double sample) { return (float)sample; }
 
 	// double -> double
-	template<> static inline const double convert_sample<double,double>(const register double sample) { return sample; }
+	template<> inline const double convert_sample<double,double>(const register double sample) { return sample; }
 
 

diff -Naru rezound-0.12.3beta~/src/backend/CGraphParamValueNode.h rezound-0.12.3beta/src/backend/CGraphParamValueNode.h
--- rezound-0.12.3beta~/src/backend/CGraphParamValueNode.h	2005-11-16 00:06:59.000000000 -0300
+++ rezound-0.12.3beta/src/backend/CGraphParamValueNode.h	2008-03-15 19:55:18.000000000 -0200
@@ -45,7 +45,7 @@
 typedef vector<CGraphParamValueNode> CGraphParamValueNodeList;
 
 #include <CNestedDataFile/anytype.h>
-template<> static const CGraphParamValueNode string_to_anytype<CGraphParamValueNode>(const string &_str,CGraphParamValueNode &ret) 
+template<> const CGraphParamValueNode string_to_anytype<CGraphParamValueNode>(const string &_str,CGraphParamValueNode &ret) 
 {
 	const string str=s2at::remove_surrounding_quotes(_str); 
 	const size_t pos=str.find("|"); 
@@ -56,7 +56,7 @@
 	return ret; 
 }
 
-template<> static const string anytype_to_string<CGraphParamValueNode>(const CGraphParamValueNode &any) 
+template<> const string anytype_to_string<CGraphParamValueNode>(const CGraphParamValueNode &any) 
 {
 	return "\""+anytype_to_string<double>(any.x)+"|"+anytype_to_string<double>(any.y)+"\""; 
 }
 
diff -Naru rezound-0.12.3beta~/src/backend/Generate/CGenerateNoiseAction.cpp rezound-0.12.3beta/src/backend/Generate/CGenerateNoiseAction.cpp
--- rezound-0.12.3beta~/src/backend/Generate/CGenerateNoiseAction.cpp	2005-02-09 05:17:36.000000000 -0300
+++ rezound-0.12.3beta/src/backend/Generate/CGenerateNoiseAction.cpp	2008-03-15 20:22:16.000000000 -0200
@@ -22,6 +22,7 @@
 #include "CGenerateNoiseAction.h"
 
 #include "../CActionParameters.h"
+#include <cstdlib>
 
 CGenerateNoiseAction::CGenerateNoiseAction(const AActionFactory *factory,const CActionSound *actionSound,const double _noiseLength,const double _volume,const NoiseTypes _noiseType,const StereoImage _stereoImage,const double _maxParticleVelocity):
 	AAction(factory,actionSound),

Reply via email to