Согласно статье «auto(x)» (wg21.link/p0849), почему «return std::forward<T>» не может идеально переслать параметры, введC++

Программы на C++. Форум разработчиков
Ответить
Гость
 Согласно статье «auto(x)» (wg21.link/p0849), почему «return std::forward<T>» не может идеально переслать параметры, введ

Сообщение Гость »


В язык добавлено выражение auto(x). Логично, потому что мы не можем усовершенствовать прямой распад с помощью этого.

шаблон constexpr распада_t распада_копии(T&& v) noException( is_nothrow_convertible_v) { return std::forward(v); } Согласно статье https://wg21.link/p0849, decay_copy просто не может избежать копирования.

Очевидная проблема заключается в том, что decay_copy(x.front()) копирует x.front(), даже если x.front() является prvalue, другими словами, копией.

Должен ли std::forward совершенствовать пересылку входных параметров, объявленных с помощью универсальной ссылки/пересылки?
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»