模板中sizeof的constexpr无法编译

时间:2015-07-26 00:42:27

标签: c++ visual-studio-2012

在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。

为什么?

1 个答案:

答案 0 :(得分:4)

在Visual Studio 2015之前,Microsoft未实现对constexpr的支持。

你暗示VC ++ 2012是C ++ 11的一个实现,但这是一个粗略的过度简化。实际上,随着时间的推移,在多个版本中添加了各种语言和库功能;一些C ++ 11的功能,尤其是C ++ 14,仍然不支持