История изменений
Исправление KennyMinigun, (текущая версия) :
Не вижу тут UB.
Ок, код выше может работать не так, как планировалось. Т.е. в check попадет константая ссылка* на обьект std::vector<int> в «valid but unspecified state».
Эвалуация аргументов функции при вызове (комментарий)
Т.е. результат move() всё равно в итоге будет использован при инициализации, которая может происходить в любом порядке, в том числе и в «плохом».
* была опечатка в примере, исправил.
Исправление KennyMinigun, :
Не вижу тут UB.
Ок, код выше может работать не так, как планировалось. Т.е. в check попадет константая ссылка на обьект std::vector<int> в «valid but unspecified state».
Эвалуация аргументов функции при вызове (комментарий)
Т.е. результат move() всё равно в итоге будет использован при инициализации, которая может происходить в любом порядке, в том числе и в «плохом».
Исходная версия KennyMinigun, :
Не вижу тут UB.
Ок, код выше может работать не так, как планировалось. Т.е. в check попадет константая(!) ссылка на обьект std::vector<int> в «valid but unspecified state».
Эвалуация аргументов функции при вызове (комментарий)
Т.е. результат move() всё равно в итоге будет использован при инициализации, которая может происходить в любом порядке, в том числе и в «плохом».