vendredi 21 août 2015

Difference between add_lvalue_reference_t

Suppose you have a template argument T.

What are the differences between

  • add_cv_t<T> and const volatile T
  • add_const_t<T> and const T
  • add_volatile_t<T> and volatile T
  • add_lvalue_reference_t<T> and T&
  • add_rvalue_reference_t<T> and T&&
  • add_pointer_t<T> and T*?

Why should I use add_rvalue_reference_t<T> instead of T&& for example. Are there any rules when to choose which?

Aucun commentaire:

Enregistrer un commentaire