繁体   English   中英

在C ++ 11中初始化一个C ++ std :: array的struct

[英]initialise a C++ std::array of struct in C++11

我已经阅读了类似的问题,但有人知道为什么我有一个结构

struct ArabicRoman {
    char roman;
    int arabic;
};

我可以通过以下方式初始化C ++ std::array

ArabicRoman M({'M', 1000});
ArabicRoman D({'D', 500});
array<ArabicRoman, 2> const SYMBOLS({ M, D });

我可以通过以下方式初始化C风格的数组:

ArabicRoman const SYMBOLS[]({ {'M', 1000}, {'D', 500} });

但是,以下内容未编译:

array<ArabicRoman, 2> const SYMBOLS({ {'M', 1000}, {'D', 500} });

初始化C ++样式结构数组的任何解决方法?

您需要用括号替换括号:

std::array<ArabicRoman, 2> const SYMBOLS {{ {'M', 1000}, {'D', 500} }};
                                         ^                           ^

现场演示

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM