0

クラスは、インスタンス化せずに型を公開できます。例えば:

class bar {
  typedef int GET_TYPE;
};

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

foo<bar>();

同様の方法で整数を公開できますか?テンプレートパラメータはタイプまたは組み込みタイプのいずれかであるという意味で。

4

2 に答える 2

5

enumそのために良いです。

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

これは整数値に対してのみ機能しますが、C++のすべてのバージョンで機能します。

非整数値については、CatPlusPlusの最新のソリューション(C ++ 11のみ)を参照してください。

于 2012-06-07T19:02:31.577 に答える
4

はい、静的データメンバーを使用します。

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

// ... use foo::something ...
于 2012-06-07T19:02:28.453 に答える