[英]When is the move constructor called in the `std::move()` function?
函數std::move()
定義為
template<typename T>
typename std::remove_reference<T>::type&& move(T && t)
{
return static_cast<typename std::remove_reference<T>::type&&>( t );
}
有四個地方我可以想象要調用的移動構造函數:
std::move()
函數本身,但可能在返回的引用最終到達的位置。 我敢打賭4號,但我不是百分百肯定,所以請解釋你的答案。
沒有移動建設正在進行中。 std::move()
接受引用並返回引用。 std::move()
基本上只是一個演員。
你的猜測4.是正確的(假設你實際上是在調用一個移動構造函數)。
std :: move只是一個類型轉換,它告訴編譯器該類型是一個右值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.