作为容器中的类型或变量的数值常量

numerical constants as types or variables in a container?

本文关键字:变量 常量 类型      更新时间:2023-10-16

我想知道是否有数值常数作为constexpr变量或::std::integral_constant<> ?例子:

template <typename T>
struct container
{
  static constexpr ::std::size_t const size = 16;
};
template <typename T>
struct container
{
  using size = ::std::integral_constant<::std::size_t, 16>;
};

我更倾向于::std::integral_constant方法,因为静态constexpr变量可能需要在某处的.cpp文件中定义。

我个人认为,最好的选择是老式enum。constexpr容易使用odr,而integral_constant类型太多(如果稍后在代码的某个地方需要,您总是可以创建一个)。