わかりましたので、次のような2つのクラスがあります。
class Item
{
private:
HANDLE Parent;
public:
Item(const Item &I) = delete;
Item(Item &&I) = delete;
void SetParent(HANDLE Handle);
Item& operator = (const Item &I) = delete;
Item& operator = (Item &&I);
};
void Item::SetParent(HANDLE Handle)
{
this->Parent = Handle;
}
Item& Item::operator = (Item&& I) {/*Do Move Here*/}
class Box
{
private:
HANDLE Handle;
public:
void Add(const Item &I);
};
void Box::Add(const Item &I)
{
I.SetParent(this->Handle); //Error.. Item I is const.
}
I が const であるというエラーが表示されますが、それは理にかなっていますが、I をその場で構築する機能を失うことなく、Item I の SetParent を行う方法が必要です。
Box B(Item());
それ以外の:
Item I;
Box B(I);
SetParent を呼び出して変更できるようにしながら、I のインライン構成を維持する方法はありますか?