>>756
その仮説で正しそうだが念のため確認してみた
まず>>741の通りだとdrop()を呼び出さずに当然コンパイルが通るので
何でもいいから関数呼び出し(演算含む)するものを間に挟んでみた
let foo = Foo::new("Hello, World!");
println!("test"); // ←ここに挿入
foo.finalize()?;
するとこの形はdrop()を呼び出ように変化するようでリンクエラーとなる
この関数呼び出しはfooの参照を使うか否かに関係なく同じ結果
ところがfoo生成前に置くとコンパイルが通る
println!("test");
let foo = Foo::new("Hello, World!");
foo.finalize()?;
さらにfoo消滅後に置いてもコンパイルが通る
let foo = Foo::new("Hello, World!");
foo.finalize()?;
println!("test");
したがってfooが有効な期間に何か関数呼び出しがそこで起きる時のみ
drop()が呼ばれるコードが用意されてリンクエラーとなっている
これはRustがpanic時もメモリ解放をきちんと扱う話とも合致する
つまりpanic時の巻き戻し時のfoo解放をコンパイラが用意している仮説で正しいようだ
次世代言語27 TypeScript Swift Go Kotlin Rust Nim
■ このスレッドは過去ログ倉庫に格納されています
760デフォルトの名無しさん
2022/08/22(月) 07:51:24.23ID:qagbwcru■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【W杯】ブラジルFWクーニャ、塩貝へ「これで俺らのことが分かっただろう」SNS投稿 「謙虚になれよ」が繰り返される曲流す ★2 [ネギうどん★]
- 【サッカー】塩貝健人、挑発されるも「仕方ない」 出番なしで…発言を弁解「弱いと言いたかったわけじゃ」 [王子★]
- 強豪オランダもPK戦でモロッコに敗れる…ドイツに続き欧州強国2チームが32強でまさかの終了★2 [王子★]
- 【円安】1ドル162円台まで下落 円相場が39年半ぶりの円安ドル高水準に ★2 [ぐれ★]
- ブラジルに敗れた日本代表…スペインメディアはどう報じた?「ネイマールを嘲笑った日本人たちをヴィニシウスがだまらせた」 [王子★]
- 【W杯】ブラジルに敗れた森保監督「これからも世界一を目指して日本のために頑張りたい」★2 [ネギうどん★]
- 日本企業さん、日中関係の悪化でレアアースを必要量確保できず、やむを得ず製品に組み込み密輸してしまったことが発覚。これ誰の責任? [668024367]
- 【失笑】日本人さん、球蹴りでの現実逃避を諦めふたたび大谷で現実逃避開始!! [194819832]
- 経産省、ソフトバンク主導の国産AI新会社に3873億円プレゼント [256556981]
- 長友佑都(39)「5度目のW杯は『青春』だった。そして青春が終わってしまって寂しい。森保さんを優勝監督にしたかった」 [683137174]
- Q:なぜ日本人は反中なのか?A:中国が落ちたら日本が上がると本気で信じてるからwww [354616885]
- 日本はベスト8に入るための努力をしろ