特殊化されたテンプレートクラス固有の静的メンバの宣言方法
下記のような、テンプレートの明示的特殊化をしたクラスにて、静的メンバを使用したいと思っています。
template<typename A>
struct Hoge{};
template<>
struct Hoge<int>{
static int Value;
};
template<>
int Hoge<int>::Value = 0;
int main(){
Hoge<int>::Value = 4;
return 0;
}
しかし、少なくとも VisualStudio2013 においては、上記コードでは int Hoge<int>::Value=0;
の部分で下記のコンパイルエラーが発生します。
error C2998: 'int Hoge<int>::Value' : テンプレート定義にはなれません。
おそらく静的メンバ変数の宣言部分の書き方がまずいんだろうと思いますが、どうすればコンパイルが通るようになるのか、どなたかご教授いただけませんでしょうか?