Kiedy wywoływany jest konstruktor move w funkcji `std :: move ()`?
Funkcjastd::move()
jest zdefiniowany jako
template<typename T>
typename std::remove_reference<T>::type&& move(T && t)
{
return static_cast<typename std::remove_reference<T>::type&&>( t );
}
Są cztery miejsca, w których mogę sobie wyobrazić, jak nazywa się konstruktor ruchu:
Gdy parametr zostanie przekazany.Kiedy wykonywana jest obsada.Gdy wynik zostanie zwrócony.Nie wstd::move()
sama funkcja, ale prawdopodobnie w miejscu, do którego ostatecznie dociera zwrócona referencja.Stawiam na numer 4, ale nie jestem w 100% pewien, więc proszę wyjaśnij swoją odpowiedź.