Должны ли мы всегда всегда STD :: Перестайте универсальный справочный аргумент, даже если он ненужный?C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Должны ли мы всегда всегда STD :: Перестайте универсальный справочный аргумент, даже если он ненужный?

Сообщение Anonymous »

Рассмотрим следующий код: < /p>

Код: Выделить всё

#include 

auto f1(auto&& v) {
return v;
}

auto f2(auto&& v) {
return std::forward(v);
}

int main() {
return f1(std::string("hello")).size() + f2(std::string("hello")).size();
}
clang будет генерировать тот же код сборки для f1 и f2 . Однако

[*] Согласно рекомендациям C ++ Core, F2 рекомендуется;

Согласно P0527R1, F1 достаточно, так как C ++ 23. Мы все еще всегда std :: forward универсальный справочный аргумент? или основные рекомендации C ++ должны быть обновлены?

Подробнее здесь: https://stackoverflow.com/questions/796 ... n-if-unnec
Ответить

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

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

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

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

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