template<typename T> void foo(T&& t);
here
t
是转发参考。
可以强迫签名作为rvalue参考,同时保持模板参数扣除?
template<typename T> void foo(std::type_identity_t<T>&& t);
没关系,因为它会抑制模板参数扣除。
delete
那个超负荷
template<typename T> void foo(T& t) = delete;
上面的模板是LVALUE的更好匹配,因此将选择它而不是转发参考版本。
您可以在这个live示例中看到此功能。