Rustとか言うダブスタ言語 (173レス)
Rustとか言うダブスタ言語 http://medaka.5ch.net/test/read.cgi/prog/1729120072/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
レス栞
リロード規制
です。10分ほどで解除するので、
他のブラウザ
へ避難してください。
110: 警備員[Lv.17] [sage] 2024/10/20(日) 19:46:02.90 >>109 ムーブが値渡しぃ? 大量のデータわざわざコピーしてんの? http://medaka.5ch.net/test/read.cgi/prog/1729120072/110
113: 仕様書無しさん [sage] 2024/10/20(日) 20:23:37.92 >>110 ムーブもコピーも値渡しなので関数へは基本的にレジスタ群に値を入れて渡されるよ 例えば以下の例 // ムーブされる構造体例 struct MovablePoint { x: i64, y: i64, } // コピーされる構造体例 #[derive(Copy, Clone)] struct CopyablePoint { x: i64, y: i64, } ムーブとコピーの渡し方に違いはなく両者とも同じで 関数へ渡す場合はどちらも2つの64bitレジスタを使って値渡しされるよ だから>>1さんが無知で『ムーブは参照渡しされる』と誤解をしているだけですね http://medaka.5ch.net/test/read.cgi/prog/1729120072/113
114: 仕様書無しさん [] 2024/10/20(日) 20:27:59.07 >>110 雑にいえばポインタだけコピーする感じ 10万文字の文字列を扱う場合でも、大抵は文字列はヒープに確保されて、スタックにはそのアドレスや文字列長などの管理用のデータだけ置かれる ムーブする際はその管理用のデータだけコピーするので、巨大な文字列のコピーは起こらない ムーブした後はヒープのデータの所有権 (解放の責務も含む) がムーブ先の変数に移すので、ムーブ前の変数はそれを使えなくなる ファイルハンドルなんかも同じで、解放などの責務を持つリソースについて気軽なコピーをさせないよう制限してる感じ http://medaka.5ch.net/test/read.cgi/prog/1729120072/114
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.021s