Package: g++-3.3 Version: 3.3.3-0pre4 The following source does not compile:
template< int dimension > struct Vector { inline Vector( void ) ; } ; template<> inline Vector< 3 >::Vector( void ) ; GCC reports this error: gcc-error.cpp: In constructor `Vector<dimension>::Vector() [with int dimension = 3]': gcc-error.cpp:5: error: parse error before `;' token GCC seems to interpret the declaration as a definition, and is confused by the ';' token. It's able to parse the source if it's modified in any of the following ways: - The specialization is defined, not declared. - The specialization is not 'inline'. - It's declaration of inline specialization of a non-constructor method (even specialization of destructor works). -- Stepan Vondrak