函数模板可以将自己的参数完美转发给内部调用的其他函数,完美指的是不仅能够准确地转发参数的值,还能保证被转发参数的左右值属性不变。

    1. //
    2. // Created by Administrator on 2022/2/21.
    3. //
    4. /*
    5. * 完美转发
    6. */
    7. #include<bits/stdc++.h>
    8. using namespace std;
    9. void otherdef(int &t) {
    10. cout<<"lvalue"<<endl;
    11. }
    12. void otherdef(const int &t) {
    13. cout<<"rvalue"<<endl;
    14. }
    15. template<typename T>
    16. void myfunction(T && t) {
    17. otherdef(forward<T>(t));
    18. }
    19. int main() {
    20. myfunction(5);
    21. int x = 1;
    22. myfunction(x);
    23. return 0;
    24. }