Поскольку вы используете case
, вы определяете частичную функцию, а частичные функции требуют фигурных скобок.
Используйте список инициализатора в конструкторе:
COuter::CInner::CInner(const bool is_master, const uint32_t data_length)
:mutex(0),
single_place{
{is_master, data_length},
{is_master, data_length},
{is_master, data_length},
{is_master, data_length},
{is_master, data_length}}
{}
http://coliru.stacked-crooked.com/a/14be9645dbf34a36
Стоит отметить что вам почти никогда не нужен массив в качестве члена, особенно если массив относится к типу, в котором вы не хотите использовать конструктор по умолчанию. Вы, вероятно, хотите std::vector
. Даже если вы думаете, что хотите использовать элемент массива, вам обычно следует использовать std::array<5, CSingle_Element>
. Это требует дополнительного {}
в списке инициализатора, но в остальном это чистый выигрыш.