在Visual C ++ 2012(C ++ 11)中,我收到代码错误
template <typename T, T... I>
struct structFoo
{
static const T sz = sizeof...(I); (1)
static constexpr T size = sizeof...(I); (2)
};
编译器接受第(1)行但是抱怨第(2)行是错误的: '错误C4430:缺少类型说明符 - 假设为int。注意:C ++不支持default-int。
为什么?
答案 0 :(得分:4)
在Visual Studio 2015之前,Microsoft未实现对constexpr
的支持。
你暗示VC ++ 2012是C ++ 11的一个实现,但这是一个粗略的过度简化。实际上,随着时间的推移,在多个版本中添加了各种语言和库功能;一些C ++ 11的功能,尤其是C ++ 14,仍然不支持: