在C ++ 11

时间:2015-11-07 18:32:58

标签: c++ arrays c++11 struct

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

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 ++样式结构数组的任何解决方法?

1 个答案:

答案 0 :(得分:3)

您需要用括号替换括号:

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

LIVE DEMO