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

时间:2012-06-07 18:59:07

标签: c++

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

class bar {
  typedef int GET_TYPE;
};

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

foo<bar>();

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

2 个答案:

答案 0 :(得分:5)

enum对此有好处。

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

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

有关非整数值,请参阅CatPlusPlus's modern solution (C++11-only)

答案 1 :(得分:4)

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

struct foo {
    static constexpr int something = 42;
};

// ... use foo::something ...