2012-06-14 61 views
1

我想重載轉換運算符, 我有下面的代碼:與模板類轉換運算符

template <typename _T> 
class CTest 
{ 
public : 
    _T data; 

    CTest(_T _data) : data(_data) {} 
    ~CTest() {} 

    operator _T(){ return data; } 
}; 

與微軟的Visual Studio 2005中,給我下面的錯誤:

警告C4003:宏'T' 警告C4003:沒有足夠的實際參數警告C4003:宏' _T' 錯誤沒有足夠的實際參數錯誤C2833:'操作員L'不是公認的操作員或類型 請參閱參考類模板實例化'CTest < _T>'正在編譯 錯誤C2059:語法錯誤:'newline' 錯誤C2334:意外的令牌在s之前'{';跳過表觀功能體 錯誤C2833:「運算符L」是不是一個認可運營商或類型

如何可以聲明操作者_T()正確?

+7

帶前導下劃線的名稱保留用於實現。你偶然發現了一個。只要刪除下劃線,它會編譯。 – jrok

+2

特別是首字母下劃線後跟大寫字母。 –

回答