c++ - 是否可以在该类中声明该类的静态 constexpr/inline 成员变量?
问题描述
我创建了一种适配器类,除了将两个不同库中功能相同的枚举隐式转换为内部表示之外,没有其他用途。
static constexpr
如果可能的话,我还希望这个类通过成员变量来模拟枚举的功能。C++20 的using enum
声明可以缓解这个问题,但不幸的是我暂时被 C++17 困住了。话虽这么说,但似乎以下内容是有效的:
class Fruit {
...
public:
static const Fruit APPLE;
};
const Fruit Fruit::APPLE(0);
在声明中替换const
为constexpr
orconst inline
会产生错误,因为Fruit
is 必须是完整类型才能满足 LiteralType 的要求。我更希望这些伪枚举器被内联,但它开始看起来不太可能。还有另一种方法可以实现我没有想到的吗?
解决方案
推荐阅读
- node.js - npm脚本中的nodemon多次触发
- postgresql - PostgreSQL 中的解释分析:对查询性能的影响?
- r - 在 R 中并行化 BMA
- delphi - TButtonItem 的 OnClick 返回 TCategoryButtons 的 Sender
- c++ - 打印时限制QStringList的长度
- python - 如何附加由分号分隔的列?
- node.js - 如何捕捉 serverOpening 事件?
- javascript - 如何将 D3 nest() 中缺少的键的计数设置为零
- html - 问题下方的单选按钮未与其对齐
- apache-flink - 有没有关于 SQL flink 支持什么的官方文档