Скобка инициализации скаляров внутри агрегата

Зная, что это действительно с ++ 11

int i {1};

этот действителен?

int j[] {{1}};

GCC выдает ошибку, лязгает предупреждение.

2

Решение

Это не верно, потому что j это массив int (скаляры). Вы можете
Используйте только встроенные скобки для элементов, которые сами являются агрегатами.

#include <initializer_list>

struct T
{
int x, y;
};

int main()
{
int j[] {{1}}; // error, int is scalar
T t[] {{1,2}}; // OK, T is aggregate
}
2

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector