6

MSVC コンパイラを使用しているときに、テンプレート化されたクラスで初期化された static const 変数を取得する際に問題があります。MSVC2013、MSVC2012、MSVC2010 を試しました。このコードは、MinGW、MinGW-w64、GCC、および Clang でうまく機能します。

#include <iostream>
#include <string>

using namespace std;

template <typename T>
struct StringHolder
{
    static const std::string str;
};

template<> const string StringHolder<int>::str { "integer" };

int main()
{
    // prints nothing when compiled with MSVC2013, works with MinGW/GCC/Clang
    cout << StringHolder<int>::str << endl;

    return 0;
}

何か案は?

4

2 に答える 2