Rust part10at TECHRust part10 - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドのURL■項目テキスト710:デフォルトの名無しさん 21/05/21 14:55:24.20 HgMuIEwp.net >>692 基本的に条件分岐はpredがコンパイル時に評価できる場合でも true/false 両方あり得るものとして扱われるよ その後の最適化フェーズであり得ないルートは除去されるだろうけど最適化の結果でコンパイルエラー差異が出ないようにする考え方なんだと思われる 無限ループ専用の構文であるloopが導入された背景もたぶんこのあたりにある 711:デフォルトの名無しさん 21/05/21 15:52:58.09 J6y23PLS.net >>697 trueのときもdrop、falseのときもdropされるとみなされるということは、 if文によってheap領域で確保しているメモリを解放するかしないか場合分けできないってことじゃん それって不便では? 712:デフォルトの名無しさん 21/05/21 16:14:23.61 qRzkKAr2.net >>698 これ元のコード見てみ これifの条件がtrueだろうがfalseだろうがsub(&_a);は実行されるやん ifの条件がfalseのときには問題なく実行できるけど、もしifの条件がtrueになって_aがdropされてしまった後にsub(&_a);が実行されてしまうと開放された値を使うことになる だからRustコンパイラはエラーを吐くんだよ 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch