类可以在不实例化数字的情况下公开数字吗?

Can a class expose a number without instantiating it?

本文关键字:数字 情况下 实例化      更新时间:2023-10-16

类可以在不实例化类型的情况下公开类型。例如:

class bar {
  typedef int GET_TYPE;
};
template<class T>
void foo() {
  typename T::GET_TYPE t;
  // do something with t
}
foo<bar>();

整数可以以类似的方式公开吗?从某种意义上说,模板参数可以是类型或内置类型。

enum对此

有好处。

class bar
{
     enum { MyNumericValue = 17, };
};

这仅适用于整数值,但适用于所有版本的C++。

有关非整数值,请参阅 CatPlusPlus 的现代解决方案(仅限 C++11)。

是的,使用静态数据成员。

struct foo {
    static constexpr int something = 42;
};
// ... use foo::something ...
相关文章: