[過去ログ] Rust part16 (1002レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
209: 2022/07/07(木)00:49 ID:Sq6Pkb7P(1) AAS
>>208
俺らのレベルではその程度の知識で十分だろ
で、スマートポインタでもなんか違いあるの?と質問されても具体的に答えられなくても
全く問題ないからな。
一方、すごい人からすれはstd::shared_ptr<>とRcは全然違うとなるんだろうが
(すごい人敵にはそれらは例えばstd::shared_ptrは信長で人間、一方、Rcはオムライスで食べ物ぐらい違う!
でも、俺らは人間だって餌として食べることができるから同じだろ)
210: 2022/07/07(木)05:04 ID:WPmCyDkS(1) AAS
>>196
>>193 は
> C++のshared_ptr = RustのArc = SwiftのARC が同じ機能であり、スレッドセーフなリファレンスカウンタ利用の共有ポインタ方式。
って書いてるんだから同じじゃないとか全然違うとかフワフワしたこと言ってないで
・機能
・スレッドセーフ
・リファレンスカウンタを利用
の各項目について違いを書きなよ
211: 2022/07/07(木)08:43 ID:M+xvnEsX(1) AAS
共有ポインタって何?
212(1): 2022/07/07(木)10:54 ID:LNwVrqhE(1) AAS
shared pointerじゃね?
213: 2022/07/07(木)11:14 ID:xmv5m6Ag(1) AAS
結局参照カウント方式なのは一緒なんでしょ
214(1): 2022/07/07(木)12:48 ID:kuHYrppG(1) AAS
>>212
だとするとshared pointer方式ってどんな方式??
リファレンスカウンタを利用しないshared pointer方式もあるってことだよね?
215: 2022/07/07(木)14:09 ID:1csywUpz(1) AAS
>>214
shared pointerはc++のが有名すぎるからなんとも言えないなぁ。
参照カウント以外でポインタを共有するのはリンクリスト方式とかあるよ。
216(4): 2022/07/07(木)15:30 ID:jjCeBJbE(1) AAS
ARCで管理してる時点でRustはガベコレじゃないからすごい!って理論は破綻してるんじゃありませんかね?
217: 2022/07/07(木)15:41 ID:6JbvD3+y(2/5) AAS
>>216
誰がそんなこと言ってんの?
静的に管理できるものは静的に管理するし、実行時にしかわからないものは実行時に管理するってだけのことだ。
参照カウンタの適用範囲を間違えてるプログラマがいるならそれはそいつが無能。
218: 2022/07/07(木)16:01 ID:HUExG/fK(1) AAS
Rust公式の日本語意訳にはしっかりRustはガベコレじゃないから高速って書いてあるね
219: 2022/07/07(木)16:16 ID:I5wN0SQd(1) AAS
>>216
Objective-C/SwiftのARCとRustのArcは同じ3文字略語だけど別のものだよ
それを理解した上で言ってるのなら別にいいんだけどさ
220(1): 2022/07/07(木)18:43 ID:u5IGnUan(1) AAS
>>216
そもそもRust公式が「メモリリークはメモリ安全の範疇」と言っているしな。
221(1): 2022/07/07(木)18:52 ID:pAImJ0Xg(1/2) AAS
>>220
それはRustの定義がおかしい
一般的にはメモリリークがあるとメモリ安全だとは言わない
222(1): 2022/07/07(木)18:55 ID:V91F8QUY(1) AAS
流れぶった切りだけど単純にRustの人たちはGUIどうしてんの?
223: 2022/07/07(木)19:11 ID:Efq0h4+x(1) AAS
なんだ、じゃあ、バグはセーフティと定義したら、Rustは安全高めなのか。
224(2): 2022/07/07(木)19:29 ID:webRw0a6(1/2) AAS
rust にクラスはないのですか?
225(1): 2022/07/07(木)19:39 ID:6JbvD3+y(3/5) AAS
>>221
Rust が言語の仕組みによって防ごうと努力する範囲にメモリリークは含まないという定義だよ。
それを表すのに「Rust の仕様の中では」メモリ安全という用語を使っているのであって、
定義におかしいもクソもない。 定義なんだから。
226: 2022/07/07(木)19:46 ID:6JbvD3+y(4/5) AAS
>>224
クラスと名付けられている概念はない。
あなたにとってクラスとは何のこと? 何が出来ればクラス?
227: 2022/07/07(木)19:48 ID:UC7ZSmFv(1) AAS
型クラスの事を聞いてるんじゃない?
228(1): 2022/07/07(木)19:49 ID:idvDnT2E(1/4) AAS
>>216
ARCで管理しているのはSwift
RustはC++と同じくRAIIなので高速
どうしても共有メモリを使いたい時のみshared_ptrやRc/Arcを用いる
229(2): 2022/07/07(木)20:00 ID:pAImJ0Xg(2/2) AAS
>>225
そのRustの仕様の中でメモリ安全性を達成できていないんだから
Rustの仕様の中でメモリ安全性という用語を使うのは不適切
Rustの謳うメモリ安全性は世間一般のメモリ安全性とは異なる概念なんだからそれを表すには他の用語を使うのが適当かと
230(1): 2022/07/07(木)20:06 ID:idvDnT2E(2/4) AAS
>>224
クラスはその根幹の継承がデメリットだらけと結論が出ているためGoやRustなどでは採用されていない
メンバー変数やメンバーメソッド等とは構造体で使えるため困ることはない
Rustでは構造体を含む任意の型に対して横断的に共通適用可能なトレイトがあり非常に強力で利便性がよい
231: 2022/07/07(木)20:09 ID:6JbvD3+y(5/5) AAS
>>229
知らんがな。
大抵の専門用語は一般名詞に (その分野における) 明確な定義を与えることで成り立ってるのはごく普通のことだろ。
232: 2022/07/07(木)20:25 ID:idvDnT2E(3/4) AAS
>>229
世間一般なんてものはなくそれぞれがそれぞれの定義域に依る
そしてそれが明確になっていればよい
例えばRustではメモリ競合は防止可能と明確化しつつ、より一般的な競合状態は対象外と明確化している
原理的に無理なものは無理なのだからそこは明確化してあればそれでよい
233(1): 2022/07/07(木)21:01 ID:0wlfNyVX(1) AAS
>>228
aliasingの話してるところにRAIIが来るのもよくわからないがRAIIだと高速という理屈はさらにわけわかめ
234: 2022/07/07(木)21:12 ID:PQWZgdhj(1) AAS
>>222
windows-rsでunsafe祭りになりながら書いたよ。オススメはしないが。
235: 2022/07/07(木)21:39 ID:pHkHW2c/(1) AAS
SwiftのARCとRustのArcの区別がつかない人は論外なので発言を控えてほしい
ただでさえしょうもないのにしょうもなさが倍増するからね・・・
SwiftのARCはAutomatic Reference Counting
外部リンク[html]:docs.swift.org
RustのArcはAtomically Reference Counted
外部リンク[html]:doc.rust-lang.org
236(2): 2022/07/07(木)22:03 ID:webRw0a6(2/2) AAS
>>230
継承をやめて委譲にすれば割とまともになると思います
2chスレ:tech
2chスレ:tech
237: 2022/07/07(木)22:05 ID:idvDnT2E(4/4) AAS
>>233
C++とRustはヒープ利用に対してRAIIによるデストラクタ呼び出しによりリファレンスカウンタ無しでメモリ解放するので高速
さらに加えてRustでは所有権と借用のルール明確化により解放の安全性も静的に保証している
一方でSwiftはヒープ利用に対して常にリファレンスカウンタを用いるARCによりメモリ解放の管理をするため低速
238: 2022/07/07(木)22:11 ID:hEh+9Mpq(1) AAS
>>236
その流れで継承不可のクラスベースのオブジェクト指向言語がどういうものになるか思考実験的に考えてみなよ
上下前次1-新書関写板覧索設栞歴
あと 764 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.028s