Consider following code:
template <typename C>
void boo (C&& c) {
c ();
}
template <typename T>
void foo (T&& v) { // (X)
boo ([&v] () { some_func (std::forward<T> (v)); }); // (Y)
}
As far as I am concerned v in (X) is a forwarding reference. Is v also a forwarding reference in (Y) if it was captured by reference? Or should I write it differently to take advantage of forwarding?
Aucun commentaire:
Enregistrer un commentaire