2015-04-03 81 views
0

当编译这行代码在Visual Studio 2013:static_assert(标准:: is_abstract)导致在Visual Studio中编译器错误2013

static_assert(!std::is_abstract<int>(), "test"); 

此编译器输出错误:

expected constant expression 

但该代码片段作为this SO question中的答案呈现。这是MSVC++编译器中的错误吗?有没有解决方法?

+3

[Visual Studio中2013不支持'constexpr'](https://msdn.microsoft.com/en-us/ library/hh567368.aspx),所以'is_abstract :: operator bool()'方法不能用在常量表达式中。但是你可以直接用'is_abstract :: value'来访问这个值。 – 0x499602D2 2015-04-03 13:43:17

+1

实际上它在VS2015中也不起作用,它支持'constexpr'部分 – Predelnik 2015-04-03 13:55:07

回答

3

MSVC没有constexpr,使用std :: is_abstract < INT> ::值