我有在VC9(Microsoft Visual C ++ 2008 SP1)中有效的代码,但在GCC 4.2(在Mac上)中无效:
struct tag {};
template< typename T >
struct C
{
template< typename Tag >
void f( T ); // declaration only
template<>
inline void f< tag >( T ) {} // ERROR: explicit specialization in
}; // non-namespace scope 'structC<T>'
我知道GCC希望我将显式专业移至类之外,但我无法弄清楚语法。有任何想法吗?
// the following is not correct syntax, what is?
template< typename T >
template<>
inline void C< T >::f< tag >( T ) {}
一只名叫tom的猫
拉莫斯之舞
相关分类