クラスなしでテンプレート変数を定義したいのですが、MSVC++ はそれを受け入れません。C++ 標準によると、その周りのグーグルは正しくないようです:
template<CharType> static CharType hexDigits[17];
template<> char hexDigits[17] = "0123456789ABCDEF";
template<> wchar_t hexDigits[17] = L"0123456789ABCDEF";
これらの特殊化された変数は、(特殊化されていない) テンプレート関数内から使用されます。
だから私はこのように書くことを余儀なくされています:
template<typename CharType> class dummyclass {
static CharType hexDigits[17];
};
template<> char dummyclass<char>::hexDigits[17] = "0123456789ABCDEF";
template<> wchar_t dummyclass<wchar_t>::hexDigits[17] = L"0123456789ABCDEF";
ダミー クラスを定義せずにこれら 2 つの変数を定義する方法はありますか?
また、C++ 標準が最初のコードを許可しない正当な理由はありますか? 結局のところ、クラス外のテンプレート関数は許可されています。