2013-12-10 23 views
2

如果在用戶定義的對象上調用std::move()會發生什麼情況,該對象不定義移動構造函數?它只是複製?如果移動一個沒有移動構造函數的對象會發生什麼?

+0

你的意思是一個刪除的移動構造函數?因爲如果你自己沒有定義一個移動構造函數,並且所有的對象成員都有一個移動構造函數,那麼會生成一個平凡的移動構造函數。 – Cubic

+3

請注意,'std :: move'本身對對象沒有任何作用。所以答案取決於上下文。例如,從對象移出可用於移動分配。或者完全不同的東西。所以它不完全依賴於可移動構造的類型 – juanchopanza

+1

'std :: move'不動,'std :: forward'不轉發。 – Yakk

回答

相關問題