5
考慮下面的代碼:何時將std :: reference_wrapper轉換爲T&?
#include <iostream>
#include <functional>
using namespace std;
template<class T>
void fun(T t)
{
t+=8;
}
int main()
{
int i = 0;
fun(ref(i));
cout << i << endl;
}
此代碼打印 「8」。我假設fun()中的t自動轉換爲int &。
但是,如果我將t+=8
替換爲t=8
,程序將無法編譯。
爲什麼?
謝謝ecatmur,這是有道理的。 – oz1cz