1)
template<typename T, typename Arg>
shared_ptr<T> factory(Arg arg)
{
return shared_ptr<T>(new T(arg));
}
2)
template<typename T, typename Arg>
shared_ptr<T> factory(Arg& arg)
{
return shared_ptr<T>(new T(arg));
}
3)
template<typename T, typename Arg>
shared_ptr<T> factory(Arg const & arg)
{
return shared_ptr<T>(new T(arg));
}
*) 为什么 3 号比 1 号和 2 号更受欢迎?
*) 如果调用 factory(41),为什么要在右值上调用?
*)# 定义 BOOST_ASIO_MOVE_ARG(type) type&&. 在这种情况下 && 是什么?