我的任務是實現我自己的std :: ref函數。我知道有一個reference_wrapper函數,它有助於std :: ref。但我怎麼能實現這些功能/類。我想到以下內容:C++ 11 std :: ref如何工作?
template <class T>
struct myreference_wrapper{
T& functor;
myreference_wrapper(T& t):functor(t){}
void operator()('parameter') {
functor('parameter');
};
};
template<class T>
myreference_wrapper<T> myref(T& t){
myreference_wrapper<T> functor(t);
return functor;
}
當我們調用myref時,我們不能使用模板參數,因爲std :: ref不使用模板參數。但是當我們調用operator()時,我們需要知道它的參數,因爲我們想把它們傳遞給函數的操作符()(我用'參數'對它進行了簽名)。 std :: ref如何在沒有任何模板參數的情況下執行此操作?
您可以嘗試爲'Callable'類型專門設置'myreference_wrapper'。 – Holt
從什麼時候'std :: ref'不使用模板參數? – InternetAussie
爲什麼你想重新發明輪子而不使用'std :: ref'? – zett42