[解決済み] デフォルトの移動コンストラクタはメンバ単位の移動コンストラクタと同じですか?
2022-06-09 20:28:17
質問
これは
struct Example {
string a, b;
Example(Example&& mE) : a{move(mE.a)}, b{move(mE.b)} { }
Example& operator=(Example&& mE) { a = move(mE.a); b = move(mE.b); return *this; }
}
と同じです。
struct Example {
string a, b;
Example(Example&& mE) = default;
Example& operator=(Example&& mE) = default;
}
?
どのように解決するのですか?
はい、どちらも同じです。
しかし
struct Example {
string a, b;
Example(Example&& mE) = default;
Example& operator=(Example&& mE) = default;
}
このバージョンでは、ボディの定義を省略することができます。
を宣言するときには、いくつかの規則に従わなければなりません。
explicitly-defaulted-functions
:
8.4.2 明示的にデフォルトにされた関数 [dcl.fct.def.default]
フォームの関数定義です。
attribute-specifier-seqopt decl-specifier-seqopt declarator virt-specifier-seqopt = default ;
は 明示的に既定された という定義があります。明示的にデフォルト化された関数は
は特別なメンバ関数でなければならない。
宣言された関数型が同じであること(ただし 参照修飾子 また、コピーコンストラクタやコピー代入演算子の場合、パラメータの型は "nononst
T
" とすることができる。T
はメンバ関数のクラス名) が暗黙のうちに宣言されていたかのように見えます。はデフォルトの引数を持ちません。
関連
-
[解決済み] C++で、あるコンストラクタを別のコンストラクタから呼び出す(コンストラクタ・チェイニングを行う)ことは可能ですか?
-
[解決済み] Java で、あるコンストラクタを別のコンストラクタから呼び出すにはどうすればよいですか?
-
[解決済み] なぜC++はPythonよりもstdinからの行の読み込みが遅いのですか?
-
[解決済み] ムーブセマンティクスとは何ですか?
-
[解決済み] C#でベースコンストラクタを呼び出す
-
[解決済み] コンストラクタ内の仮想メンバー呼び出し
-
[解決済み] あるコンストラクタを別のコンストラクタから呼び出す
-
[解決済み] std::move()とは何ですか?また、どのような場合に使用するのですか?
-
[解決済み] ベースクラスのコンストラクタを呼び出す際のルールは?
-
[解決済み] プログラム上のデフォルトに相当するもの(Type)
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】コンストラクターでのエラー:識別子を期待されますか?
-
[解決済み】Visual Studio 2015で「非標準の構文; '&'を使用してメンバーへのポインターを作成します」エラー
-
[解決済み】C++コンパイルタイムエラー:数値定数の前に期待される識別子
-
[解決済み】 != と =! の違いと例(C++の場合)
-
[解決済み】C++でランダムな2倍数を生成する
-
[解決済み】文字列関数で'char const*'のインスタンスを投げた後に呼び出されるterminate [閉店].
-
[解決済み】IntelliSense:オブジェクトに、メンバー関数と互換性のない型修飾子がある
-
[解決済み】浮動小数点例外エラーが発生する: 8
-
[解決済み】1つ以上の多重定義されたシンボルが見つかる
-
[解決済み】標準ライブラリにstd::endlに相当するタブはあるか?