VC10 と C++0x その4: 続々・むーぶせまんてぃくす
例えば、
class hoge {
public:
hoge(hoge&& hogege)
: foo(std::move(hogege.foo))
{};
private:
D3DXVECTOR3 foo;
};
というクラスがある場合、D3DXVECTOR3 には右辺値参照によるコンストラクタやら=が用意されていない為、
上記のムーブコンストラクタはコピーセマンティクスとして動作してしまう。
これを解決するには、D3DXVECTOR3 を継承し、かつムーブコンストラクタを持った構造体を定義してやれば良いのだが、
毎回いちいちムーブコンストラクタやら = のオーバーロードを行わなければならないのは非常にめんどくさい。
この辺り仕様上どうしようもないのだけど、もうちょっと気軽に使えると嬉しいんだけどなぁ、と思ったねむねむの深夜でした。
※C++ 使いがこういう事言っちゃいけませんなー