Аналогично этому вопросу, но вместо идеального пересылающего члена объекта я хотел бы знать, как усовершенствовать пересылку элементов контейнера STL, т.е. аналогично
struct X {};
void f(X&);
void f(X&&);
template <typename Vector>
void g(Vector&& v, size_t i) {
if (is_lvalue_reference<Vector>::value) {
f(v[i]);
} else {
f(move(v[i]));
}
}
vector<T>
изvector<U1>
,vector<U2>
, ...., где каждый элементT
построен изU1
,U2
, .... Каждый массивvector<Ui>
может быть либо &, либо &&, и я бы хотел, чтобыUi
быть идеально перенаправлены. - person Kan Li   schedule 21.04.2015v[i]
, еслиv
было привязано к rvalue. - person T.C.   schedule 21.04.2015