, . , . , , , , .
Passing rvalue!
const l value: 1357465
rvalue forwarding: 669589
Passing lvalue!
const l value: 744105
rvalue forwarding: 713189
, .
1) wrap1("test"), const std::string &, char, , std::string (.. n times), * . func1, std::string, ( const, , , ), , , - RVO , . , , temp. , , ( , ). , std::string .
2) wrap2("test") const char[5], rvalue func2, std::string const char[], . T const char[5] &&, , , , , rvalue (- , const std::string). , / ( const char[5] ).
3) wrap1(arg) lvalue const string & , func1.
4) wrap2(arg) , T const std::string &.
5) , , , (, temp). "test" std::string("test"), std::string &&, std::forward<T>(arg), . :
Passing rvalue!
const l value: 1314630
rvalue forwarding: 595084
Passing lvalue!
const l value: 712461
rvalue forwarding: 720338
, .
, . , , 2-4.
, , " ++" 23-30. , , , .
* - ; ytoledano , . , , , , .