相关疑难解决方法(0)

您使用C++中的哪种Typesafe枚举?

众所周知,C++中的内置枚举不是类型安全的.我想知道实现类型安全枚举的哪些类在那里使用...我自己使用以下"自行车",但它有点冗长和有限:

typesafeenum.h:

struct TypesafeEnum
{
// Construction:
public:
    TypesafeEnum(): id (next_id++), name("") {}
    TypesafeEnum(const std::string& n): id(next_id++), name(n) {}

// Operations:
public:
    bool operator == (const TypesafeEnum& right) const;
    bool operator != (const TypesafeEnum& right) const;
    bool operator < (const TypesafeEnum& right) const;

    std::string to_string() const { return name; }

// Implementation:
private:
    static int next_id;
    int id;
    std::string name;
};
Run Code Online (Sandbox Code Playgroud)

typesafeenum.cpp:

int TypesafeEnum::next_id = 1;

bool TypesafeEnum::operator== (const TypesafeEnum& right) const 
{ return id == right.id; }

bool TypesafeEnum::operator!= …
Run Code Online (Sandbox Code Playgroud)

enums design-patterns enumeration type-safety c++03

44
推荐指数
4
解决办法
2万
查看次数

标签 统计

c++03 ×1

design-patterns ×1

enumeration ×1

enums ×1

type-safety ×1