Присвоение braced-init-list к корректному массиву? [закрытый]

В стандарте говорится под 5.17/9

braced-init-list может появиться на правой стороне
- присвоение на скаляр [...]
- присвоение определяется пользовательским оператором присваивания [..]

В то время как в 4.5.1-pre9999 GCC, я могу скомпилировать это (использующий-std=c ++ 0x, НЕ-std=gnu ++ 0x)

#include <iostream>

int main()
{
        int test[] = {1,2,3};
        std::cout << test[0] << test[1] << test[2];
        test = {4,5,6};
        std::cout << test[0] << test[1] << test[2] << std::endl;
}

и это печатает 123456. GCC корректен здесь?

9
задан Xeo 12 July 2012 в 13:34
поделиться

1 ответ

Мне это кажется ошибкой. Инициализация ( int test = {1,2,3}; ) в порядке, но, насколько я могу судить, ничто в стандарте не допускает присвоения.

4
ответ дан 3 November 2019 в 07:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: