【问题标题】:Array in C++ 11 [duplicate]C ++ 11中的数组[重复]
【发布时间】:2014-11-18 08:11:21
【问题描述】:

如何使用聚合初始化,因为以下行给了我错误(预期为;

 std::array<int, 5> i_array1{ {3, 4, 5, 1, 2} }; 

但是我能够编译以下代码行

std::array<int, 5> a2 = {3, 2, 1,10,12};

我正在尝试适应新的数组容器。 我正在使用 Visual Studio 2012 Ultimate。 寻求任何帮助。 问候

【问题讨论】:

  • 第一个版本很好。也许您的编译器不完全支持 C++11。
  • IIRC,这在 VS2012 中没有完全实现。它在 VS2013 中编译
  • 你不能让编译器支持它。您只能升级到 afaik 正确支持的 VS2013。
  • @AliKazmi 除非您在 Microsoft 从事他们的编译器工作,并且可以为 VS2012 编译器制作私有补丁,否则您不能。获得更好支持的唯一方法是升级到较新的版本。
  • 如果可以的话,升级到VS2013。

标签: c++ visual-studio-2012 c++11


【解决方案1】:

根据this page on MSDN,Visual Studio 2012 不支持初始化列表,但 2013 支持。

【讨论】:

  • 谢谢,你节省了我的时间
  • 这是错误的。 std::array 是一个聚合,不使用 initializer_lists。
猜你喜欢
  • 2018-02-04
  • 1970-01-01
  • 2017-08-11
  • 1970-01-01
  • 2012-08-27
  • 1970-01-01
  • 2022-01-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多