2009-09-30 51 views
4

VC++不支持默認模板參數參數嗎?這個簡單的代碼:VC++中的默認模板參數參數

template <typename T=int> 
class X 
{ 
}; 

X x; 

給我'error C2955: 'X' : use of class template requires template argument list'。然而,沒有關於模板聲明的投訴。

我在這裏錯過了什麼?一些編譯器切換可能?

回答

9

我覺得你還是必須指定一個空的模板列表,或使用typedef:

template <typename T=int> 
class X 
{ 
}; 

X<> x; 

typedef X<> XX; 
XX x; 
0

你的問題已經answered very well。但是,我想指出的是,無論何時您問自己是否是編譯器,都可以將代碼剪切到Comeau's online compiler。 Comeau被公認爲是最符合標準的C++編譯器,並且具有出色的錯誤消息。因爲編譯器不需要花費太多的代價,所以如果你想在你的機器上使用它的便利性,價格不應該受到影響。