是否存在用于嵌套枚举类的接口机制
Is there an interface mechanism for nested enum classes?
在c++中,纯虚函数提供接口的功能。也就是说,任何子类必须实现基类中的所有纯虚函数:
class myClass {
virtual bool implementme() = 0; // MUST be implemented
};
class mySubClass : public myClass {
bool implementme() {} // REQUIRED
};
嵌套的(enum
) class
是否有类似的机制?也就是说,我要找像
class myClass {
virtual enum class myEnum = 0; // MUST be implemented
};
class mySubClass : public myClass {
enum class myEnum {}; // REQUIRED
};
既然您说实现者不是您的代码库的一部分(因此不会产生编译错误),我必须假设您正在编写一个库,并且使用此enum的代码位于库的消费者中。
我建议您这样使用CRTP:
class myClass {
};
template<typename T> class myClassImpl : public myClass {
static_assert(std::is_enum<typename T::myEnum>::value, "Subclasses of myClassImpl must provide the myEnum enum class");
};
class mySubClass : public myClassImpl<mySubClass> {
enum class myEnum {};
};
这没什么意义。有些人可能只能看到基类(而不是派生类),并从一些虚函数的返回中获得myEnum
,其中myEnum
是不完整类型。没有任何类型的虚拟类型机制,包括枚举。你真的想要一个虚表来查找你的类型吗?
相关文章:
- C++核心准则 C35 对于接口类"A base class destructor should be either public and virtual, or protected and nonv
- Visual C++GC接口如何启用它以及要包含哪个库
- Windows.h与GLFW.h的接口
- 当字段可以为null时,如何使用C++接口在Avro中写入数据
- 提供与TMP和SFINAE的通用接口
- 为重写std::exception的库生成swig接口时出错
- 内联如何影响模块接口中的成员函数
- COM 接口 c# 封送数组数组
- 如何在 SCIP C++ 接口中获取 MILP 约束矩阵中的系数值
- 重载 -> shared_ptr 个实例中的箭头运算符<interface>,接口中没有纯虚拟析构函数
- 如何绑定 C++ gRPC 客户端的网络接口
- 模板化接口 - 创建一个泛型模板类以返回任何容器
- 如何从实现接口的模板化类实例访问结构
- 带有进度表的 curl 多接口程序
- 使用共享指针时,从共享指针本身释放内存的机制是什么
- 设计帮助 - 为不同类型的消息处理通用接口的设计模式
- 我可以在具有一个标头和一个接口的 cpp 文件中有多个嵌入吗?
- 类接口,可以创建N个方法
- 类具有相同的接口,但参数的类型不同
- 是否存在用于嵌套枚举类的接口机制