所以我没能找到一种方法来获得以下编译。任何可能的解决方法?
#include <vector>
class A : public std::vector<A::B>
{
public:
enum class B
{
};
};
int main()
{
}
答案 0 :(得分:1)
您可以在基类中提取B
:
struct P {
enum class B { /* ... */ };
};
struct A : P, std::vector<P::B> {
using P::B;
};
答案 1 :(得分:0)
你做不到。如果没有定义A::B
,则无法使用A
。
从设计的角度来看,不鼓励从标准库容器派生。如果不是太麻烦,我建议使用:
class A
{
public:
enum class B
{
};
std::vector<B> data;
};