1

キャスト演算子をオーバーロードしたいのですが、次のコードがあります。

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

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

    operator _T(){ return data; }
};

また、MS Visual Studio 2005では、次のエラーが発生します。

警告C4003:マクロ' T'の実際のパラメーターが不足しています警告C4003:マクロ' _T'の実際のパラメーターが不足していますエラーC2833:'演算子L'が認識された演算子またはタイプではありませんクラステンプレートのインスタンス化の参照'CTest <_T> 'コンパイル中エラーC2059:構文エラー:'newline'エラーC2334:'{'の前に予期しないトークンがあります。見かけの関数本体エラーをスキップしますC2833:'演算子L'は認識された演算子またはタイプではありません

演算子_T()を正しく宣言するにはどうすればよいですか?

4

1 に答える 1

5

_TはWINAPIマクロです(Tchar.hの汎用テキストマッピングを参照するか、C ++文字列リテラルで_Tまたは_TEXTを使用する必要がありますか?):に変更_TTます。

于 2012-06-14T20:28:43.177 に答える