首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >c++11标准数组-- gcc与visual studio的区别

c++11标准数组-- gcc与visual studio的区别
EN

Stack Overflow用户
提问于 2013-04-23 20:08:17
回答 1查看 1.6K关注 0票数 1

我对这部分代码有一个问题:

代码语言:javascript
复制
typedef std::array<u32, 3> my_array;

void foo()
{
    my_array a1{{1, 2, 3}};
    a1 = {{1, 2, 3}}; // PROBLEM - does not work;

    my_array a2{{3, 2, 1}};
    a1 = a2;
}

GCC 4.7也编译了这段代码,但Visual studio从2012年11月开始使用cl失败了,错误代码是:

代码语言:javascript
复制
 error C2679: binary '=' : no operator found which takes a right-hand
 operand of type 'initializer-list' (or there is no acceptable
 conversion) 1>        C:\Program Files (x86)\Microsoft Visual Studio
 11.0\VC\INCLUDE\array(211): could be 'std::array<u32,3> &std::array<u32,3>::operator =(const std::array<u32,3> &)' 1>       
 while trying to match the argument list '(my_array, initializer-list)'

此语法是否正确并符合c++11标准?我找不到任何关于这方面的信息,也不知道我应该责怪哪个编译器。提前感谢您的帮助。

诚挚的问候。

EN

回答 1

Stack Overflow用户

发布于 2013-04-23 20:11:35

正如我所说的,VS2012有点蹩脚,在使用C++11方面有一些困难,如果你想要一个列表,可以看看here

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16168987

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档