由于static_assert
:
#include <ratio>
#include <iostream>
template<typename T>
class A
{
public:
const static T a = 10;
A()
{
static_assert(false, "Can't instantiate this");
}
};
int main()
{
A<int>::a;
return 0;
}
但是,相同的代码在Visual Studio 2012中编译。如果我实际实例化该类,我只会遇到编译错误(同样,如果我将类设置为非模板化的话,则在不实例化类的情况下触发static_assert)。
哪个编译器符合标准?我认为这是海湾合作委员会,但我无法在标准中看到明确的确认。