2016-05-12 14 views
0

テンプレートを継承するクラスがあります。C++ 11基本テンプレートに内部クラスまたはenumクラスを使用

class Foo : public Base<...> { 
}; 

はそれが可能であり、どのようにベーステンプレートに列挙クラスを使用する:私はクラスの外に列挙型を得ることが、私はそれを使用できるようになりますことは明らかだ

class Foo : public Base<EType> { 
    enum class EType { 
     kI1, kI2, kI3 
    }; 
}; 

注意テンプレート。

class Foo : public Base<EType> { 
    enum class EType { 
     kI1, kI2, kI3 
    }; 
}; 

をしかし、あなたはこれを行うことができます:

+1

クラス定義が始まる前に 'EType'は既知の値を持つ必要があります。しかし、そうではないので、このコードはcatch-22です。あなたは何を達成しようとしていますか? –

+0

まさに私が求めているのは、内部クラスを持っていて、私もBaseテンプレートに渡す必要があるということです。 – gsf

答えて

0

いいえ、あなたはこれを行うことはできません、あなたがしたい場合は、名前空間にそれらの両方を入れることができ

enum class EType { 
    kI1, kI2, kI3 
}; 

class Foo : public Base<EType> { 
}; 

関連する問題