如何返回转发参考?

时间:2018-09-14 04:57:08

标签: c++ c++11 return forwarding-reference

返回正向(通用)参考的最自然方法是什么?

struct B{
         template<class Ar> friend
/*   1*/ Ar&& operator<<(Ar&& ar, A const& a){...; return std::forward<Archive>(ar);}
         template<class Ar> friend 
/*OR 2*/ Ar& operator<<(Ar&& ar, A const& a){...; return ar;}
         template<class Ar> friend 
/*OR 3*/ Ar  operator<<(Ar&& ar, A const& a){...; return std::forward<Ar>(ar);}
         template<class Ar> friend 
/*OR 4*/ Ar  operator<<(Ar&& ar, A const& a){...; return ar;}
/*OR 5*/ other??
}

我想到的情况是构造并立即使用的类似流的对象。例如:

dosomethign( myarchive_type{} << B{} << B{} << other_unrelated_type{} );

0 个答案:

没有答案