クラスは、インスタンス化せずに型を公開できます。例えば:
class bar {
typedef int GET_TYPE;
};
template<class T>
void foo() {
typename T::GET_TYPE t;
// do something with t
}
foo<bar>();
同様の方法で整数を公開できますか?テンプレートパラメータはタイプまたは組み込みタイプのいずれかであるという意味で。
クラスは、インスタンス化せずに型を公開できます。例えば:
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 ...