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()正確?
帶前導下劃線的名稱保留用於實現。你偶然發現了一個。只要刪除下劃線,它會編譯。 – jrok
特別是首字母下劃線後跟大寫字母。 –