Код: Выделить всё
int num1[3] = {1,2,3};
int num2[3];
num2 = num1; // "error: invalid array assignment"
Однако следующее действительно работает:
Код: Выделить всё
struct myStruct { int num[3]; };
struct myStruct struct1 = {{1,2,3}};
struct myStruct struct2;
struct2 = struct1;
Почему почленное присвоение массивов поддерживается для структур, но не в целом?
изменить: Роджер Пейт< Комментарий /strong> в теме std::string в struct - Проблемы с копированием/назначением? кажется, указывает на общее направление ответа, но я не знаю достаточно, чтобы подтвердить это самому.
редактировать 2: много отличных ответов. Я выбираю версию Лютера Блиссетта, потому что в основном меня интересовали философские или исторические обоснования такого поведения, но ссылка Джеймса МакНеллиса на соответствующую документацию по спецификациям также оказалась полезной. .
Подробнее здесь: https://stackoverflow.com/questions/343 ... ts-but-not
Мобильная версия