Скажи, что у меня есть версия const t & :
template
void yetAnotherFunc( const T &input ) {
// do something...
}
template
void myFunc( const T &input ) {
yetAnotherFunc( input );
}
int main()
{
myFunc( someT() ); // pass in a rvalue
return 0;
}
фактически так же, как версия T && с помощью std :: forward ниже, с точки зрения копии не связана? Какие есть различия? < /P>
template
void yetAnotherFunc( T &&input ) {
// do something...
}
template
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
Мобильная версия