C++相談室 part120 [転載禁止]©5ch.io
■ このスレッドは過去ログ倉庫に格納されています
0055デフォルトの名無しさん
2015/10/25(日) 03:56:53.78ID:4lnR5/Hi・throwされる型のコピー/ムーブ コンストラクタ/代入演算子がアクセス不能な場合
・同じ型のreference, const referenceが同時にcatchされている場合
の挙動がよくわからん。
とりあえず
・コピーもムーブも可能な場合
(copy constructible, copy assignable, move constructible, move assignable)
同じ型のreference, const referenceが同時にcatchされていても上の方で
catchされる
→ まぁこれはわかる
・コピーができない場合(move constructible, move assignable)
値渡しのcatchがあるとコンパイルエラー
referenceのcatchとconst referenceのcatch両方あると上の方でcatchされる
catchされるときにムーブコンストラクタ/代入演算子は呼ばれていない
→ これもわかる
・コピーもムーブもできない場合
値渡しのcatchは当然コンパイルエラー
referenceのcatchとconst referenceのcatchもコンパイルエラーになる
→これがわからない。
ムーブのみ可能なときにムーブコンストラクタ/代入演算子呼ばれてないのに
なんでムーブ禁止するとコンパイルエラーになるねん。
C++標準でどう決まっているとか詳しい説明できる方いませんか。
なお上記実験で使ったコンパイラはclang。
■ このスレッドは過去ログ倉庫に格納されています