2016-05-12 79 views
0

我有一個繼承模板的類。C++ 11在基本模板中使用內部類和/或枚舉類

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

是否可能,如何使用枚舉類的基本模板:

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

注意,我清楚要枚舉出來的類將允許我在使用它模板。

+1

在類定義開始之前,'EType'需要有一個已知的值。但事實並非如此,所以這段代碼是一個catch-22。你想達到什麼目的? –

+0

正是我問 - 有內部類,我也需要傳遞給基本模板。 – gsf

回答

0

不,你不能做到這一點:

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

但你可以這樣做:

enum class EType { 
    kI1, kI2, kI3 
}; 

class Foo : public Base<EType> { 
}; 

你可以把它們都變成一個命名空間,如果你想。