Согласно статье «auto(x)» (wg21.link/p0849), почему «return std::forward<T>» не может идеально переслать параметры, введ ⇐ 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 совершенствовать пересылку входных параметров, объявленных с помощью универсальной ссылки/пересылки?
В язык добавлено выражение 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 совершенствовать пересылку входных параметров, объявленных с помощью универсальной ссылки/пересылки?
Мобильная версия