Согласно документации (https://en.cppreference.com/w/cpp/utility/move), существует два типа конструкторов для std::move<T>
, которые описаны ниже.
Чем отличаются эти конструкторы? Что меня больше всего смутило, так это то, почему во втором конструкторе нужно ключевое слово (typename
).
Я новичок в С++. Буду признателен за любую подсказку по этому вопросу.
template< class T >
typename std::remove_reference<T>::type&& move( T&& t ) noexcept; (since C++11)(until C++14)
template< class T >
constexpr typename std::remove_reference<T>::type&& move( T&& t ) noexcept; (since C++14)