Согласно статье «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 совершенствовать пересылку входных параметров, объявленных с помощью универсальной ссылки/пересылки?

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