次のコードが問題なくコンパイルされるのはなぜですか?
MCl<char, a> tryout;
に
MCl<char, a> tryout();
「エラーC2228:「。ea」の左側にはクラス/構造体/共用体が必要です」が表示されますか?tryout()はデフォルトのコンストラクターの呼び出しではありませんか?
これが完全なコードです
template <class T, T myval> class MCl
{
public:
T ea;
MCl() : ea(myval)
{
}
};
int main()
{
const char a = 'e';
MCl<char, a> tryout;
// MCl<char, a> tryout();
cout << tryout.ea;
return 0;
}