【发布时间】:2015-08-04 09:01:25
【问题描述】:
假设我有一个函数func:
template<typename T>
auto func(T arg){
std::cout << std::boolalpha;
std::cout << "T is ref: " << std::is_reference<T>::value << '\n';
}
有没有一种方法可以强制将T 推断为引用类型,而无需显式指定模板参数?
就像能够写出这样的东西:
auto main() -> int{
auto x = 5;
func(std::ref(x));
}
但不必专门针对std::reference_wrapper。
static_casting 不会阻止 int& 衰减为 int for T。
假设我不能更改函数签名。
【问题讨论】:
-
auto func(T&& arg)? -
@cpplearner 我知道我可以重新编写函数。这个问题纯粹是出于好奇。
标签: c++ templates c++14 language-lawyer