在下面的代碼,push_back()
一個std::ref
成std::vector<reference_wrapper<Type>>
效果很好但是,分配std::ref
到reference_wrapper<Type>
不起作用。爲什麼?的reference_wrapper:作品的push_back但不分配
#include <iostream>
#include <vector>
#include <functional>
using namespace std;
struct Type {};
int main()
{
Type t1;
vector<reference_wrapper<Type>> t2;
t2.push_back(ref(t1)); // OK
//reference_wrapper<Type> t3; // error: no matching function for call to std::reference_wrapper<Type>::reference_wrapper()’
//t3 = ref(t1);
return 0;
}
你試圖默認構造一個引用包裝器,它究竟是指什麼,如果這是允許的?問題的標題與錯誤無關。 – Praetorian
爲什麼不''reference_wrapper t3 = ref(t1);'? –