2015-04-03 112 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> ::值