在模板函数中,引用无效,必须使用引用包装器
template<typename T>
void com(T num)
{
num++;
}
void main()
{
int num = 9;
com(num);
std::cout << num << std::endl;
int &pnum = num;
com(pnum);
std::cout << num << std::endl;
com(std::ref(num));
std::cout << num << std::endl;
std::cin.get();
}
com(std::ref(num));这就是函数引用包装器,从结果可以看出只有在使用函数模板包装器的时候才能改变原来的值。
单纯使用引用是无效的;