[過去ログ] 次世代言語14 Elixir Crystal Julia Rust Swift (1002レス)
前次1-
抽出解除 レス栞

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
117
(1): デフォルトの名無しさん [sage] 2018/09/16(日) 18:24:03.24 ID:AUVu3qQo(3/5) AAS
>>115
115(1): デフォルトの名無しさん [sage] 2018/09/16(日) 17:04:17.35 ID:eufVg8gX(1/4) AAS
>>113 >>114
構造体のフィールドはmove出来ちゃまずいから
この場合はむしろC++のコンパイルが通ってることが問題だよ

記述の一貫性のためだけに未定義動作の危険性を許しちゃダメでしょ
このコードに問題も未定義動作も無いぞ
unique_ptrのムーブコンストラクタにより適切に所有権が移動される
118
(1): デフォルトの名無しさん [sage] 2018/09/16(日) 20:39:05.75 ID:eufVg8gX(2/4) AAS
>>116
116(1): デフォルトの名無しさん [sage] 2018/09/16(日) 18:21:37.55 ID:RkzcyYVh(2/3) AAS
Rustの構造体 T のフィールドはmoveできる
&mut T は全体のmoveもフィールドのmoveもできないがreplaceならできる
すまん 言葉足らずだった
Rustに関してはその通りだよ
でもC++はRustみたいに強力なボローチェッカーがないからmoveはまずい

>>117
そのコードは確かに未定義動作は起こさない
でも未定義動作を起こす危険性を含む
C++の方のfooメソッドの最後の一行をコメントアウトしても
コンパイルが通ってしまうって言えば何が危険か分かるよね
それを防ぐためにはC++の方もreplaceでなきゃダメ
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.248s*