std::ref(object) が std::reference_wrapper(object) を作成し、std::reference_wrapper には非明示的な型変換演算子メンバー関数があることを知っています
operator T&() const
そして、これは、テンプレート パラメーターの演繹が行われるときの使用方法に影響することを知っています。したがって、以下の Print では、引数の型 T は、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
型変換関数なので、なぜこのような参照ラッパーを使用できないのですか?