静态检查类标识符是否已存在

时间:2017-01-16 13:35:45

标签: c++

我有一组派生自相同基类的类,大致如下所示:

class IClass
{
public:
    virtual int64_t getIdentifier() const = 0;
};

template<int64_t ID>
class Base : public IClass
{
public:
    static const int64_t s_identifier = ID;
    virtual int64_t getIdentifier() const { return s_identifier; }
};

我想使用静态s_identifier来标识一组派生类(我知道有一个typeid运算符,但我想找到另一个解决方案)。

例如,一个派生类可能如下所示:

class Derived : public Base<0x630aea1e>
{
};

如果有两个具有相同标识符的派生类(以避免复制和粘贴错误,或仅仅是因为有人将0x12345678作为ID放置两次),我正在寻找获得警告的方法。我认为必须在编译时完成,但我目前无法想办法如何做到这一点,也许有人可以帮助我。

0 个答案:

没有答案