Является ли постоянный и эффективно такой же, как T && с std :: forward для аргумента Rvalue, когда его передают в другуC++

Программы на C++. Форум разработчиков
Anonymous
Является ли постоянный и эффективно такой же, как T && с std :: forward для аргумента Rvalue, когда его передают в другу

Сообщение Anonymous »

Скажи, что у меня есть константная T & версия: < /p>

void yetAnotherFunc( const T &input ) {
// do something...
}

void myFunc( const T &input ) {
yetAnotherFunc( input );
}
int main()
{
myFunc( someT() ); // pass in a rvalue
return 0;
}
< /code>
Эффективно ли он же, как и t && с std :: warry ниже в терминах отсутствия копии? Какие есть различия? < /p>

void yetAnotherFunc( T &&input ) {
// do something...
}

void myFunc( T &&input ) {
yetAnotherFunc( std::forward( input ) );
}
int main()
{
myFunc( someT() ); // pass in a rvalue
return 0;
}


Подробнее здесь: https://stackoverflow.com/questions/796 ... rgument-wh

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