由于轉發參考和右值參考的語法令人困惑,我不清楚如何撰寫一個T通過右值參考獲取某種型別的函式。也就是說,雖然
template <typename T> void foo(T x);
按價值取值x和
template <typename T> void foo(T& x);
通過參考,和
template <typename T> void foo(T* x);
通過指標,當我們說
template <typename T> void foo(T&& x);
突然它x通過轉發參考而不是右值參考來獲取。轉發參考的正確說法foo是什么?x像這樣?
template <typename T>
void foo(T&& x) {
static_assert(std::is_rvalue_reference_v<T&&>, "x must be an rvalue reference.");
uj5u.com熱心網友回復:
template<class T>
void f(T &&)
requires(!std::is_lvalue_reference_v<T>);
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/433978.html
下一篇:使用模板嵌套型別多載
