これは私が何をしたいです:列挙型は
enum MyEnum
{
ONE = 1, TWO, THREE
};
template<class T>
void func()
{
cout << T::TWO << endl;
}
int main()
{
func<MyEnum>();
};
それは動作しますが、私は警告が出ます:「C4482警告:非標準の拡張機能を使用:修飾名に使われる列挙 『MyEnum』」
を警告を表示せずにこれを行うにはどうすればいいですか
'enum E1 {ONE、TWO}; enum E2 {ONE、TWO};期待通りに 'ONE'という矛盾した宣言を与えます。' enum E1'の値は名前空間 'E1'に入りません。あなたは何を期待していますか? – delnan
'TWO'は' MyEnum'で定義されています。これはあなたが示したクラスや名前空間の一部ではありません。 enumはスコープを宣言していないため、スコープ演算子を使用して解決しません。 –
これは私がしたいことです、私はそれを印刷するときにE1とE2の両方を渡して別の値を得ることができるようにしたいです – hidayat