因爲它現在代表,我有以下結構的類:C++ - 結合複製/移動運營商和建設者
struct FooClass {
FooClass();
FooClass(int CustomIndex);
FooClass(const FooClass& CopyConstructor);
FooClass(FooClass&& MoveConstructor);
FooClass& operator=(const FooClass& CopyAssignment);
FooClass& operator=(FooClass&& MoveAssignment);
};
有什麼辦法,我複製合併/移動運營商,使他們不需要首先提供,複製/移動構造函數會被調用?
如果不是,我是否至少有可能從複製/移動操作符調用複製/移動構造函數?
從本質上講,我想:
FooClass(const FooClass& CopyConstructor)
到等於FooClass& operator=(const FooClass& CopyAssignment)
和
FooClass(FooClass&& MoveConstructor)
到等於FooClass& operator=(FooClass&& MoveAssignment)
我需要複製/移動分開,因爲複製和移動操作符的邏輯非常不同。我試圖獲得複製構造函數與複製運算符相同,並移動構造函數與移動運算符相同。 – Grapes
@Grapes在這種情況下,我不明白你的問題。你可以編輯和澄清? –
我可以使用這種不需要移動操作符的方式編寫移動構造器嗎?移動運算符將由編譯器生成,但仍然調用移動構造函數?我只是不想在BOTH移動運算符和移動構造函數中重複移動功能。 – Grapes