jeudi 5 septembre 2019

decltype ok without a forwarding reference? [duplicate]

This question already has an answer here:

If I want to forward a forwarding reference perfectly, I can use std::forward as shown in the code below:

template <typename T>
void foo(T &&x) {
  bar(std::forward<T>(x));
}

Assume I can safely call foo with an expression e. Can I instead forward this expression directly using bar(std::forward<decltype(e)>(e))? I understand this has limited practical appeal, but is the value category duly preserved by this decltype approach?

Aucun commentaire:

Enregistrer un commentaire