首页 > 解决方案 > 是否可以在该类中声明该类的静态 constexpr/inline 成员变量?

问题描述

我创建了一种适配器类,除了将两个不同库中功能相同的枚举隐式转换为内部表示之外,没有其他用途。

static constexpr如果可能的话,我还希望这个类通过成员变量来模拟枚举的功能。C++20 的using enum声明可以缓解这个问题,但不幸的是我暂时被 C++17 困住了。话虽这么说,但似乎以下内容是有效的:

class Fruit {
    ...
public:
    static const Fruit APPLE;
};

const Fruit Fruit::APPLE(0);

在声明中替换constconstexprorconst inline会产生错误,因为Fruitis 必须是完整类型才能满足 LiteralType 的要求。我更希望这些伪枚举器被内联,但它开始看起来不太可能。还有另一种方法可以实现我没有想到的吗?

标签: c++

解决方案


推荐阅读