このコード片
#include <tuple>
struct Foo
{
Foo(const int& value):value_(value){}
//Foo(const Foo&)=delete; // delete copy constructor
int value_;
};
int main()
{
std::tuple<Foo> tup(std::move(Foo(1)));
return 0;
}
Foo
正常に動作しますが、コピー コンストラクターを削除すると、次のコンパイル エラーで失敗します: use of deleted function Foo::Foo(const Foo&)
。
しかし、オブジェクトを移動できることを明示的に伝えているのに、なぜコンストラクターは移動コンストラクターではなくコピー コンストラクstd::tuple
ターを使用するのでしょうか? インスタンスをコピーするのではなく、インスタンスを移動するようFoo
に強制するにはどうすればよいですか?std::tuple
Foo