有没有一种方法可以定义可以像枚举一样初始化的类?
例如:
class TYPE;
TYPE _type {
a,
b,
c,
};
_type::a;
TYPE::TYPENAME tn = _type::c; // or such similar things
_type.get_size(); // the example returns 3
这种在C ++中可用的类定义吗?如果是,请解释一下该方法及其工作原理吗?如果没有,那么我可能会使用可变参数模板来实现。
编辑
如果我按自己的喜好创建了一个类,则下面的代码将起作用:
main.cpp
#include <iostream>
#include "advanced_enum_class_name_TYPE.h"
TYPE type { a, b, c }; // a, b, c have not been defined before this line
int main() {
type _type = type::a;
std::cout << type.get_size() << std::endl; // 3
if(_type == type::b) { // false
std::cout << "it is b!" << std::endl;
}
else {
std::cout << "it is not b!" << std::endl;
}
}