私はテンプレートを持っています:
template<unsigned int N> struct IntN;
template <> struct IntN< 8> {
typedef uint8_t type;
};
template <> struct IntN<16> {
typedef uint16_t type;
};
そして、主に私はこれを行うことによって初期化して交互にします:
IntN< 8>::type c;
これは機能しているようですが、変数内に値を格納すると機能せず、次のエラーが発生します。
エラー:タイプ'int'の非タイプテンプレート引数は整数定数式ではありません
コードの例を次に示します。
template<unsigned int N> struct IntN;
template <> struct IntN< 8> {
typedef uint8_t type;
};
template <> struct IntN<16> {
typedef uint16_t type;
};
int main(int argc, char *argv[]) {
int foo = 8;
IntN<foo>::type c;
}
誰かアイデアはありますか?ありがとう