4
我知道如何完善轉發參數。但是,我從不同的來源讀取(如有效的現代C++項目24 - 斯科特邁爾斯),人們可以只有完美的向前,當你有確切的模板名稱,例如:是否可以完善轉發模板模板參數
template<typename T>
void foo(T&& param) { bar(std::forward<T>(param)); }
如果我所尋找的是有是一種完善邁出了模板的模板參數,如:
template<template<int, class TypeT> class Vector, int Size, typename TypeT>
void foo(Vector<Size, TypeT>&& param) { bar(std::forward<Vector<Size, TypeT>>(param)); }
當我編譯上面,我得到一個錯誤信息:「你不能綁定一個左一個右值引用」(VC12),其中建議我知道編譯器不會將& &識別爲「通用參考」,而是作爲右值參考。這種完美的前進可能對我有用,因爲我可以利用推導出的TypeT和Size。
問題:是否有可能完善前向模板模板參數?如果是這樣,我的語法在哪裏不正確?
謝謝!
不需要。你需要'T &&',稍後檢查'std :: decay_t'。 –
你也可以做2次重載,一次是r值,一次是l值。 – Jarod42