为全局 constexpr 变量生成唯一值
Generate unique values for global constexpr variables
我正在使用全局 constexpr 作为访问地图的键,我想知道是否有一种方法可以使用下一个可用整数自动初始化它们。
constexpr size_t ON_EVENT_X = 0;
constexpr size_t ON_EVENT_Y = 1;
constexpr size_t ON_EVENT_Z = 2;
给定 ON_EVENT_X、ON_EVENT_Y 和 ON_EVENT_Z 是否有可能用正确的值自动初始化它们?
我认为它可以通过预处理器宏来完成,但我还没有充分使用它来确切地知道如何。
有什么建议吗?
枚举适用于此:
enum : std::size_t {
ON_EVENT_X,
ON_EVENT_Y,
ON_EVENT_Z,
};
对于更复杂的情况,例如单独的定义或枚举不合适的任何地方,有基于宏的解决方案,例如 BOOST_PP_COUNTER
结合 BOOST_PP_UPDATE_COUNTER
。
我正在使用全局 constexpr 作为访问地图的键,我想知道是否有一种方法可以使用下一个可用整数自动初始化它们。
constexpr size_t ON_EVENT_X = 0;
constexpr size_t ON_EVENT_Y = 1;
constexpr size_t ON_EVENT_Z = 2;
给定 ON_EVENT_X、ON_EVENT_Y 和 ON_EVENT_Z 是否有可能用正确的值自动初始化它们? 我认为它可以通过预处理器宏来完成,但我还没有充分使用它来确切地知道如何。
有什么建议吗?
枚举适用于此:
enum : std::size_t {
ON_EVENT_X,
ON_EVENT_Y,
ON_EVENT_Z,
};
对于更复杂的情况,例如单独的定义或枚举不合适的任何地方,有基于宏的解决方案,例如 BOOST_PP_COUNTER
结合 BOOST_PP_UPDATE_COUNTER
。