私は私が混乱しているC++プログラミング言語で文を見た:プログラマがコピー操作、移動操作、またはクラスのデストラクタ、ノーコピー操作、移動を宣言した場合 •操作、またはデストラクタがそのクラスに対して生成されます。 は、私は、以下に示すテストコードを書いた: #include <iostream>
using namespace std;
class A
{
public:
A(
ここでは移動コンストラクタで、ほとんどの任意のクラスのための移動の割り当てを定義するための非常に簡単な方法です: class Foo {
public:
Foo(Foo&& foo); // you still have to write this one
Foo& operator=(Foo&& foo) {
if (this != &foo) {
オブジェクトが移動可能であってはならないため、移動割り当てが明示的に削除されるクラスがあります。私はRVOを使用して、このクラスのインスタンスに割り当てた場合でも、コンパイラは私にエラーを与える: main.cpp:12:16: note: candidate function has been explicitly deleted
もコンパイラは、既存のコピー代入演算子を言及されたが、それを