我知道 std::ref(object) 创建了 std::reference_wrapper(object),并且 std::reference_wrapper 具有非显式类型转换运算符成员函数
operator T&() const
而且我知道这会影响我在模板参数推导发挥作用时使用它的方式:所以在下面的打印中,如果我用 std::ref("你好”)
template <class T>
void Print(T t)
{
std::cout << t << std::end;
}
为什么这一行不编译?
std::string s = "hello";
std::cout << std::reference_wrapper<std::string>(s) << std::endl;
实例化的特化应该有一个
operator std::string&() const
类型转换函数,那么为什么我不能使用这样的引用包装器呢?