列出模板静态成员的初始化 class

List initialization of static member of template class

当我尝试像这样初始化静态成员变量时,VS2015 出现语法错误:

template<typename T> class Foo { public: static const T bar; };

template<typename T> const T Foo<T>::bar{ T(1) };

另一方面,以下作品:

template<typename T> const T Foo<T>::bar = T(1);

这里有什么问题?在这种情况下,是编译器还是 C++ 不允许列表初始化?

这是一个 MSVS2015 编译器错误。