公式
https://www.rust-lang.org/
https://blog.rust-lang.org/
https://github.com/rust-lang/rust
Web上の実行環境
https://play.rust-lang.org
日本語の情報
https://rust-jp.rs/
※Rustを学びたい人はまず最初に公式のThe Bookを読むこと
https://doc.rust-lang.org/book/
※Rustのasyncについて知りたければ「async-book」は必読
https://rust-lang.github.io/async-book/
※C++との比較は専用スレへ
C++ vs Rust
https://mevius.5ch.net/test/read.cgi/tech/1619219089/
※次スレは原則>>980が立てること
前スレ
Rust part12
https://mevius.5ch.net/test/read.cgi/tech/1629813327/
Rust part13
■ このスレッドは過去ログ倉庫に格納されています
2021/11/07(日) 10:04:59.35ID:pJhT3MIE
690デフォルトの名無しさん
2022/01/30(日) 21:12:48.50ID:2J0C/Vn/ const fn divide(x:i32, y:i32) ->i32 {
x / y
}
let x = divide(1, 0); //panic
const y: i32 = divide(1, 0); //compile error
x / y
}
let x = divide(1, 0); //panic
const y: i32 = divide(1, 0); //compile error
691デフォルトの名無しさん
2022/01/31(月) 00:45:03.08ID:wgfsi16C >>690
定数式の文脈でゼロ除算起きるとコンパイルエラーになるのはある意味当然だと思うんだけど
そうじゃないところでエラーになるのが意外だった
デバッグビルドでもMIRの最適化とかで定数畳み込みみたいなことやってるのかな
定数式の文脈でゼロ除算起きるとコンパイルエラーになるのはある意味当然だと思うんだけど
そうじゃないところでエラーになるのが意外だった
デバッグビルドでもMIRの最適化とかで定数畳み込みみたいなことやってるのかな
692デフォルトの名無しさん
2022/01/31(月) 07:35:21.99ID:qlFEomu1693デフォルトの名無しさん
2022/01/31(月) 10:25:13.89ID:y6tOo2ii とあるデータフォーマットを扱うライブラリを作っています。
一定形式のレコードが連続で書き込まれて最後には終端レコードが書き込まれるという単純な形式です。
Rust 上でもレコードを追加するのと終端処理のふたつのメソッドがあるだけです。
要は ↓ のように使えるライブラリだということです。
let mut file = File::create("file.hoge").unwrap();
Hoge::new(&mut file).add_entry("string1")?.add_entry("string2")?.finish();
このとき
・ 終端処理は必ずしたい
・ 終端処理はエラーの可能性もあり、それは捕捉したい (ので drop でさせられない)
という制約を静的に表現できるでしょうか?
現状では終端処理のメソッドが実行されたときにフラグを立てておいて
drop 内でそのフラグを検査するという形にしています。
可能ならコンパイル時に発見できるようにしたいです。
一定形式のレコードが連続で書き込まれて最後には終端レコードが書き込まれるという単純な形式です。
Rust 上でもレコードを追加するのと終端処理のふたつのメソッドがあるだけです。
要は ↓ のように使えるライブラリだということです。
let mut file = File::create("file.hoge").unwrap();
Hoge::new(&mut file).add_entry("string1")?.add_entry("string2")?.finish();
このとき
・ 終端処理は必ずしたい
・ 終端処理はエラーの可能性もあり、それは捕捉したい (ので drop でさせられない)
という制約を静的に表現できるでしょうか?
現状では終端処理のメソッドが実行されたときにフラグを立てておいて
drop 内でそのフラグを検査するという形にしています。
可能ならコンパイル時に発見できるようにしたいです。
694デフォルトの名無しさん
2022/01/31(月) 11:02:40.38ID:qlFEomu1 エラーを捕捉したいことをデストラクタに任せない
つまりそのような終端処理はdropされる前に終える
例えばBufWriter利用時も終える時は明示的にflushを呼ぶ
そしてflushはResultを返しエラーが判明する
つまりそのような終端処理はdropされる前に終える
例えばBufWriter利用時も終える時は明示的にflushを呼ぶ
そしてflushはResultを返しエラーが判明する
695デフォルトの名無しさん
2022/01/31(月) 11:32:28.54ID:LhFaS6j7 finishの呼び忘れを静的に捕捉したいということだからflushの例では不十分かな
add_entryの戻り値型の暗黙のdropを防げばいいけど、そういった機能はまだない(RFCにはあるけど進んではない)
https://users.rust-lang.org/t/prevent-drop-at-compile-time/20508
このスレッドではdropの実装に存在しないC FFI呼び出しを書いておいて、リンクエラーとして捕捉する方法が提案されているね
add_entryの戻り値型の暗黙のdropを防げばいいけど、そういった機能はまだない(RFCにはあるけど進んではない)
https://users.rust-lang.org/t/prevent-drop-at-compile-time/20508
このスレッドではdropの実装に存在しないC FFI呼び出しを書いておいて、リンクエラーとして捕捉する方法が提案されているね
696デフォルトの名無しさん
2022/01/31(月) 11:35:46.57ID:y6tOo2ii697デフォルトの名無しさん
2022/01/31(月) 11:53:47.47ID:y6tOo2ii >>695
それは残念。
言語の機能として用意されてないまわりくどい方法を使うと
エラーメッセージがよくわからん (本来の問題とは違う内容が出てくる) ことになりがちだし、
使うときに unsafe や forget をいちいち書いてもらわなきゃならないのは
ライブラリとして提供するときにはちょっと汚すぎるなぁ。
それは残念。
言語の機能として用意されてないまわりくどい方法を使うと
エラーメッセージがよくわからん (本来の問題とは違う内容が出てくる) ことになりがちだし、
使うときに unsafe や forget をいちいち書いてもらわなきゃならないのは
ライブラリとして提供するときにはちょっと汚すぎるなぁ。
698デフォルトの名無しさん
2022/01/31(月) 12:37:43.75ID:pXNCEmdM PhantomType的な?
699デフォルトの名無しさん
2022/01/31(月) 12:39:21.72ID:pXNCEmdM エラーメッセージがよくわからん事になりがちだからNGか
700デフォルトの名無しさん
2022/01/31(月) 12:47:03.61ID:qlFEomu1 >>696
なるほど
コンパイラは解析してdropさせるべき位置を把握しているから
そこへ至る全ての経路上で例えばFinalize trait実装型はそのメソッドfinalize()を呼んでいないとコンパイルエラーとなる
というような制約をするFinalize trait
が存在していれば要望を満たす?
なるほど
コンパイラは解析してdropさせるべき位置を把握しているから
そこへ至る全ての経路上で例えばFinalize trait実装型はそのメソッドfinalize()を呼んでいないとコンパイルエラーとなる
というような制約をするFinalize trait
が存在していれば要望を満たす?
701デフォルトの名無しさん
2022/01/31(月) 13:15:16.14ID:wgfsi16C >>692
非const fnについての話なんだけど
非const fnについての話なんだけど
702デフォルトの名無しさん
2022/02/01(火) 18:21:42.44ID:EUosKgIx amazon primeの記事経由でegui見てみたが結構いいな
ネイティブで試してみたが充分実用レベル
ネイティブで試してみたが充分実用レベル
703デフォルトの名無しさん
2022/02/01(火) 21:04:57.74ID:YxH4csZd GCは標準からは消えたけどライブラリでやればいいってかつてこのスレで言われたことがあるのだが、GCライブラリのデファクトスタンダードってどれだ
704デフォルトの名無しさん
2022/02/01(火) 21:52:48.48ID:noSg7Gj9705デフォルトの名無しさん
2022/02/01(火) 22:04:01.37ID:YxH4csZd >>704
いや一部だけGC欲しい時は普通にあるからそれは言い過ぎ
いや一部だけGC欲しい時は普通にあるからそれは言い過ぎ
706デフォルトの名無しさん
2022/02/01(火) 22:51:54.30ID:l+/c7OlD クッソ身につまされる記事があったので共有する
https://dystroy.org/blog/how-not-to-learn-rust
https://dystroy.org/blog/how-not-to-learn-rust
707デフォルトの名無しさん
2022/02/01(火) 23:11:34.83ID:rVnoodM/708デフォルトの名無しさん
2022/02/01(火) 23:23:08.93ID:rLXhSAw+ >>702
eguiは毎回60fpsで全画面を描き直すことで差分描き直しを避けて簡単にしてるようだけど
省力化したい方針と合わないや
ゲーム向き?
>>705
GC使ってもRustのRAIIを無くせるわけじゃないから
そういう時はVecに入れて使って
あとは任意のタイミングで未使用の要素の区画を再利用という感じにしてる
>>706
Rustは各種bookを読んであとはstd docとreference見ながら
コンパイルエラーの通り直すだけで何とかなるから書かれている通りだね
付け加えると基本要素については覚えていないメソッドのために回り道しがちなので
Option Result slice str Iteratorあたりの全メソッドは一通り認識しておくといいかな
eguiは毎回60fpsで全画面を描き直すことで差分描き直しを避けて簡単にしてるようだけど
省力化したい方針と合わないや
ゲーム向き?
>>705
GC使ってもRustのRAIIを無くせるわけじゃないから
そういう時はVecに入れて使って
あとは任意のタイミングで未使用の要素の区画を再利用という感じにしてる
>>706
Rustは各種bookを読んであとはstd docとreference見ながら
コンパイルエラーの通り直すだけで何とかなるから書かれている通りだね
付け加えると基本要素については覚えていないメソッドのために回り道しがちなので
Option Result slice str Iteratorあたりの全メソッドは一通り認識しておくといいかな
709デフォルトの名無しさん
2022/02/02(水) 10:20:38.88ID:OC/eznuR 複製おじは自分では何とかなってると思ってるのか
710デフォルトの名無しさん
2022/02/02(水) 11:48:12.13ID:yXsdGz3O 🐜蟻型蜂🐝はポジティブシンギング🤯だから
711デフォルトの名無しさん
2022/02/02(水) 18:24:25.46ID:LUGaOk8s >>706
>Mistake 3 : Start by implementing a graph based algorithm
その通りだとは思うけどRustと相性の良いアルゴリズム集的なのは欲しいとも思う
>Mistake 3 : Start by implementing a graph based algorithm
その通りだとは思うけどRustと相性の良いアルゴリズム集的なのは欲しいとも思う
712デフォルトの名無しさん
2022/02/02(水) 19:18:50.51ID:aYiI+nmg713デフォルトの名無しさん
2022/02/02(水) 20:06:31.96ID:9W9+AwqU dynや lifetime heavyは失敗しながら学ぶのでいいと思う
普通の人はしばらくやってれば気づくから
普通の人はしばらくやってれば気づくから
714デフォルトの名無しさん
2022/02/02(水) 20:34:19.12ID:ljjcfSf9 deny(rust_2018_idioms)はガチのマジでオススメです
715デフォルトの名無しさん
2022/02/02(水) 22:05:12.51ID:cdYzXGt/ データ構造が大事なんだって言われながら育ってきた身としちゃあ辛い話じゃねえか
自分で作らなけりゃいいんだな!ってslab_tree使って
「ある条件に合致した子ノードから、ルートまでの値をリストで取り出す」
みたいな処理を書こうとしたら怒られるんだよな。
node_ref.parent() : &Self<T> -> Option<NodeRef<T>
っていう型なもんだから、次々に親をたどるために
while Some(parent) = node.parent() { node = parent; ...}
みたいな処理書くと、当然怒られる。
何とか抜け道無いかって探したら、node自身じゃなくてそのIDを使えばよかったんだけど、
いつも抜け道があるとは思えない。辛い。
自分で作らなけりゃいいんだな!ってslab_tree使って
「ある条件に合致した子ノードから、ルートまでの値をリストで取り出す」
みたいな処理を書こうとしたら怒られるんだよな。
node_ref.parent() : &Self<T> -> Option<NodeRef<T>
っていう型なもんだから、次々に親をたどるために
while Some(parent) = node.parent() { node = parent; ...}
みたいな処理書くと、当然怒られる。
何とか抜け道無いかって探したら、node自身じゃなくてそのIDを使えばよかったんだけど、
いつも抜け道があるとは思えない。辛い。
716デフォルトの名無しさん
2022/02/02(水) 22:39:17.87ID:O+j3A95O Rustで普通にやってるとスレッドセーフを強いられるから制約がキツくなるんだよね
717デフォルトの名無しさん
2022/02/02(水) 22:41:53.47ID:J71gX0gE 大昔からの単純なポインタ相互参照だと
ダングリングポインタ・多重解放・解放忘れなどが全く存在しないことを検証すべき範囲が一般的には広くなりすぎる
もし狭い範囲に閉じ込められるケースならば閉じ込めた中でunsafeを用いたとしても効率的な型を提供すればよい
標準ライブラリにあるヒープを用いる型は全てそのようにして作られている
ダングリングポインタ・多重解放・解放忘れなどが全く存在しないことを検証すべき範囲が一般的には広くなりすぎる
もし狭い範囲に閉じ込められるケースならば閉じ込めた中でunsafeを用いたとしても効率的な型を提供すればよい
標準ライブラリにあるヒープを用いる型は全てそのようにして作られている
718デフォルトの名無しさん
2022/02/03(木) 23:00:23.96ID:KgH5nhZs719デフォルトの名無しさん
2022/02/03(木) 23:17:16.89ID:VxNIdQ9k Craterについて教えてください
720デフォルトの名無しさん
2022/02/04(金) 00:50:00.86ID:Ueb60Gjp >>718
もしかしてThe Bookの勝手訳の質と比べてる?
もしかしてThe Bookの勝手訳の質と比べてる?
721デフォルトの名無しさん
2022/02/04(金) 21:15:13.65ID:fCF+Tqbd >>720
勝手訳というのがなにを指すのか不明だけどオリジナルのThe Bookからリンクされている日本語訳のことであればそれと比べている
勝手訳というのがなにを指すのか不明だけどオリジナルのThe Bookからリンクされている日本語訳のことであればそれと比べている
722デフォルトの名無しさん
2022/02/04(金) 21:21:32.40ID:b3SZZj/4 そんなのを見るのは極初期だけで些細な話
その後はdoc.rust-lang.orgとdocs.rsしか見ないのだから
その後はdoc.rust-lang.orgとdocs.rsしか見ないのだから
723デフォルトの名無しさん
2022/02/05(土) 13:22:14.88ID:XET6D0Ck その極初期の人が見る和訳の質の話をしてるんだろ
724デフォルトの名無しさん
2022/02/05(土) 14:41:30.63ID:e42LAXmg あれは害悪レベルの訳だから初期でも見ない方がいいよ
ここでよくおかしなレスしてる人もあれの影響なんじゃないか?
ここでよくおかしなレスしてる人もあれの影響なんじゃないか?
725デフォルトの名無しさん
2022/02/05(土) 15:12:20.92ID:WBcMnxrA どうせ>>722のドキュメント見ないと先へ進めないしほとんどは中学生でもわかる平易な英語
日本語訳の質にこだわるような低レベルのやつはほっとけばいい
日本語訳の質にこだわるような低レベルのやつはほっとけばいい
726デフォルトの名無しさん
2022/02/05(土) 15:52:33.91ID:2hiBx8fY Mistake 2 : Dive in without looking at the book
727デフォルトの名無しさん
2022/02/05(土) 15:59:05.92ID:WBcMnxrA728デフォルトの名無しさん
2022/02/05(土) 16:02:12.98ID:2hiBx8fY >>727
言ってること変わってますけど
言ってること変わってますけど
729デフォルトの名無しさん
2022/02/05(土) 16:03:52.79ID:WBcMnxrA 一貫してるぞ
日本語訳の質にこだわるような低レベルのやつはほっとけばいい
これしか主張していない
日本語訳の質にこだわるような低レベルのやつはほっとけばいい
これしか主張していない
730デフォルトの名無しさん
2022/02/05(土) 16:09:07.88ID:2hiBx8fY そこ以外の文章はポエムか何かだったの?
731デフォルトの名無しさん
2022/02/05(土) 16:22:12.93ID:XET6D0Ck じゃあ和訳の質を話題にしている低レベルの人同士の会話はほっとけばいいのにw
732デフォルトの名無しさん
2022/02/05(土) 17:02:52.76ID:VkrSTqtm 日本語イラネ言っている人は技術資料が英語でも
日本語でも生産性が変わらない人なんだよね?
アメリカの仕事でもした方が稼げるんじゃない?
日本語でも生産性が変わらない人なんだよね?
アメリカの仕事でもした方が稼げるんじゃない?
733デフォルトの名無しさん
2022/02/05(土) 17:05:29.47ID:nog/R4+C 和訳の質にこだわってる人たちも唯一役に立つチャンスがあるよ
それは和訳の改善案を提案して質の向上に貢献すること
しかし和訳の質にこだわってるここの人たちは批判だけで提案がないから残念な人たち
それは和訳の改善案を提案して質の向上に貢献すること
しかし和訳の質にこだわってるここの人たちは批判だけで提案がないから残念な人たち
734デフォルトの名無しさん
2022/02/05(土) 17:15:34.64ID:9gZgvarh 和訳の質にこだわっている人たちの質にこだわっている人は何の役にたつの?
735デフォルトの名無しさん
2022/02/05(土) 17:36:04.99ID:XET6D0Ck どこの食堂が美味いか話しているところに割り込んで、
不味い方を立て直してこいと言うくらいナンセンス。
不味い方を立て直してこいと言うくらいナンセンス。
736デフォルトの名無しさん
2022/02/05(土) 17:36:55.75ID:Z82/7dFa >>725
その結果、所有権を複製しちゃったんでしょw
その結果、所有権を複製しちゃったんでしょw
737デフォルトの名無しさん
2022/02/05(土) 17:58:18.58ID:oHTbhGZf とはいえ元の話は
無料の炊き出しがレストランより不味い
みたいな話なのでそりゃそうだろうとしか
誰もがオライリーを気軽に買えるわけでもないし
それぞれ意味はあるだろう
無料の炊き出しがレストランより不味い
みたいな話なのでそりゃそうだろうとしか
誰もがオライリーを気軽に買えるわけでもないし
それぞれ意味はあるだろう
738デフォルトの名無しさん
2022/02/05(土) 18:14:45.46ID:9gZgvarh ざんねんながら悪文どころか誤訳だらけで無料の炊き出しよりひどいのがままあるのが技術書の世界
739デフォルトの名無しさん
2022/02/05(土) 18:19:44.18ID:nog/R4+C740デフォルトの名無しさん
2022/02/05(土) 18:40:50.96ID:SfaxLljQ クソ不味い飯屋にわざわざ改善案を提案するやつww
「批判するなら対案出せ」と同じアホ理論www
「批判するなら対案出せ」と同じアホ理論www
741デフォルトの名無しさん
2022/02/05(土) 18:44:43.09ID:NEwj3nV7 両立するよ。
改善に取り組みつつ現時点では良くないところもある (信頼しすぎるな) と初心者に警告するのは何も矛盾しない。
改善に取り組みつつ現時点では良くないところもある (信頼しすぎるな) と初心者に警告するのは何も矛盾しない。
742デフォルトの名無しさん
2022/02/05(土) 18:55:08.74ID:RA3mCqKO743デフォルトの名無しさん
2022/02/05(土) 19:15:32.20ID:9gZgvarh >>739
ではイチャモン付けるだけの残念じゃない君が俺の代わりに改善案を提案しておいてくれ
ではイチャモン付けるだけの残念じゃない君が俺の代わりに改善案を提案しておいてくれ
744デフォルトの名無しさん
2022/02/05(土) 19:38:56.71ID:nog/R4+C745デフォルトの名無しさん
2022/02/05(土) 19:43:44.48ID:9gZgvarh なんだ、日本語が読めない人だったか
746デフォルトの名無しさん
2022/02/05(土) 19:50:42.02ID:WBcMnxrA 日本語訳の質にこだわるような低レベルのやつはその先へ行けないため日本語訳にこだわる
747デフォルトの名無しさん
2022/02/05(土) 21:53:27.09ID:tUU0u0u/ 複製おじさんが言っても説得力ゼロ
748デフォルトの名無しさん
2022/02/05(土) 22:32:09.49ID:nog/R4+C 和訳にイチャモン付けるだけの残念な人は「複製おじさん」を連呼する人でしたか
749デフォルトの名無しさん
2022/02/06(日) 10:19:03.76ID:rpYaxfPG >>543からの流れを見ると確かに複製おじさんは英語読めないっぽいが
Copyを「所有権の複製」と思い込むのは日本語訳の質が原因ではない気がする
Copyを「所有権の複製」と思い込むのは日本語訳の質が原因ではない気がする
750デフォルトの名無しさん
2022/02/06(日) 21:49:38.13ID:iA9Wv++J そんな超初心者入門のところでもめてるのかね
trait Copyを実装している型は複製されて、実装していなかったら移動となるだけだぞ
所有権は難しくない
trait Copyを実装している型は複製されて、実装していなかったら移動となるだけだぞ
所有権は難しくない
751デフォルトの名無しさん
2022/02/06(日) 21:58:58.41ID:nXnmaz3p752デフォルトの名無しさん
2022/02/06(日) 22:11:28.10ID:BkoYcqr9 >>489 の文章が間違ってる、いやおかしくない、って揉めてただけだよ
まあ気付けば普通はおかしいと思うんだけど
まあ気付けば普通はおかしいと思うんだけど
753デフォルトの名無しさん
2022/02/06(日) 22:13:32.98ID:iA9Wv++J754デフォルトの名無しさん
2022/02/06(日) 22:39:23.39ID:JXWBQEX4755デフォルトの名無しさん
2022/02/06(日) 22:43:41.39ID:iA9Wv++J756デフォルトの名無しさん
2022/02/06(日) 22:57:43.95ID:VdsOdvUM Rustの所有権というのは権利というよりも所有しているリソースの解放義務を指している
複製できたら所有権管理の意味がない
分岐はもっと意味不明
複製できたら所有権管理の意味がない
分岐はもっと意味不明
757デフォルトの名無しさん
2022/02/06(日) 22:59:53.55ID:9tkt2bmo 489から始まった議論をまたやり直すの?
758デフォルトの名無しさん
2022/02/06(日) 23:01:30.97ID:s1W7Zv37 複製おじさんが分岐して所有権分岐おじさんにw
759デフォルトの名無しさん
2022/02/06(日) 23:04:45.50ID:iA9Wv++J760デフォルトの名無しさん
2022/02/06(日) 23:09:58.47ID:Woj/yg4T761デフォルトの名無しさん
2022/02/06(日) 23:26:57.07ID:kRmD/jh4 複製おじさん連呼する人は、もちっと具体的に指摘してくれるとありがたいんだが。
762デフォルトの名無しさん
2022/02/06(日) 23:31:49.27ID:iA9Wv++J 嘘ではない
もちろんCopy実装型の時点でヒープは使われないので解放といってもスタッフ上のみだから実質何も行われない
そのためデストラクタも容認されていない
その観点からCopy実装型は所有権がないと主張する人もいるくらいだ
もちろんCopy実装型の時点でヒープは使われないので解放といってもスタッフ上のみだから実質何も行われない
そのためデストラクタも容認されていない
その観点からCopy実装型は所有権がないと主張する人もいるくらいだ
763デフォルトの名無しさん
2022/02/06(日) 23:59:50.68ID:fxuI+J0l764デフォルトの名無しさん
2022/02/07(月) 00:00:24.28ID:eBqtDcmM765デフォルトの名無しさん
2022/02/07(月) 00:09:06.68ID:sOY0eIf2766デフォルトの名無しさん
2022/02/07(月) 00:19:43.65ID:+QREW3s6 > そんな超初心者入門のところでもめてるのかね
> 所有権は難しくない
【超初心者向け所有権の説明】
Copy実装型は所有権が複製されて分岐してそれ以降は異なりうる
難しくないw
> 所有権は難しくない
【超初心者向け所有権の説明】
Copy実装型は所有権が複製されて分岐してそれ以降は異なりうる
難しくないw
767デフォルトの名無しさん
2022/02/07(月) 00:23:15.30ID:A0JQeUWh >>764
この件は有名な話でRustコンパイラのサボり。
Copy型は複製分岐されて各々がdropされるのが正しいけど、スタック変数のみだからそれをサボっている。
つまり現在のコンパイラ実装は正しくなくて、dropしちゃうとサボりのせいでメモリunsafetyを引き起こす可能性がある。
だからCopy型はDropを現状では許していないという話。
rustc --explain E0184 を見てね。
この件は有名な話でRustコンパイラのサボり。
Copy型は複製分岐されて各々がdropされるのが正しいけど、スタック変数のみだからそれをサボっている。
つまり現在のコンパイラ実装は正しくなくて、dropしちゃうとサボりのせいでメモリunsafetyを引き起こす可能性がある。
だからCopy型はDropを現状では許していないという話。
rustc --explain E0184 を見てね。
768デフォルトの名無しさん
2022/02/07(月) 01:29:41.70ID:6Fl/+EdH769デフォルトの名無しさん
2022/02/07(月) 08:04:57.91ID:cIffYd5J >>725
順調に滅びの道を歩んでいるな。
順調に滅びの道を歩んでいるな。
770デフォルトの名無しさん
2022/02/07(月) 12:36:41.09ID:E3rdzbcC 将来実現されるであろうあるべき仕様が実装の都合で実現できていないから、それと矛盾しない範囲に仕様の範囲を制限した、という理解で良い?
771デフォルトの名無しさん
2022/02/07(月) 13:38:44.35ID:ZeQEvlq1 >Copy型は複製分岐されて各々がdropされるのが正しいけど、スタック変数のみだからそれをサボっている。
まーた勝手な思い込みの妄想で嘘垂れ流してる
いい加減にしろ
まーた勝手な思い込みの妄想で嘘垂れ流してる
いい加減にしろ
772デフォルトの名無しさん
2022/02/07(月) 18:29:28.92ID:lRQrpp2a773デフォルトの名無しさん
2022/02/07(月) 21:58:52.41ID:pvg7UzFi >>768
「currently disallowed」「current implementation is incorrect」「disabled for now」と強調されてるように、
あくまでも現在の実装は本来とは異なり正しくなくて、問題を引き起こすために、CopyとDropの両立を現時点では禁止してる。
理論的にはCopy型は複製分岐されて各々がdropされる形が正しくてCopyとDropの共存が可能。
この暫定的な実装に引きずられた暫定的な仕様が、将来は正される可能性も残す表現となっている。
両立禁止で実害が出てないため優先順位は低いと思われるが、もし将来に共存可能になったとしても後方互換性は生じない。
>>772
最新のエラーメッセージで合っている。
https://github.com/rust-lang/rust/blob/master/compiler/rustc_error_codes/src/error_codes/E0184.md
Latest commit 9e5f7d5 on 28 Aug 2020
「currently disallowed」「current implementation is incorrect」「disabled for now」と強調されてるように、
あくまでも現在の実装は本来とは異なり正しくなくて、問題を引き起こすために、CopyとDropの両立を現時点では禁止してる。
理論的にはCopy型は複製分岐されて各々がdropされる形が正しくてCopyとDropの共存が可能。
この暫定的な実装に引きずられた暫定的な仕様が、将来は正される可能性も残す表現となっている。
両立禁止で実害が出てないため優先順位は低いと思われるが、もし将来に共存可能になったとしても後方互換性は生じない。
>>772
最新のエラーメッセージで合っている。
https://github.com/rust-lang/rust/blob/master/compiler/rustc_error_codes/src/error_codes/E0184.md
Latest commit 9e5f7d5 on 28 Aug 2020
774デフォルトの名無しさん
2022/02/07(月) 22:27:06.61ID:zI1SZbAO775デフォルトの名無しさん
2022/02/07(月) 22:38:57.39ID:pvg7UzFi >>774
Copyなので複製分岐されるのは当たり前。
今はそこが論点ではなくて、複製分岐の後に各々に解放処理が生じるけど、現在は正しく実装されていないので仕様に制限があるとコンパイラのメッセージでも出る話。
Copyなので複製分岐されるのは当たり前。
今はそこが論点ではなくて、複製分岐の後に各々に解放処理が生じるけど、現在は正しく実装されていないので仕様に制限があるとコンパイラのメッセージでも出る話。
776デフォルトの名無しさん
2022/02/07(月) 22:50:06.68ID:3WtW5B3R >>774
複製分岐おじさんは日本語通じないからまともに相手しても時間の無駄だよ
複製分岐おじさんは日本語通じないからまともに相手しても時間の無駄だよ
777デフォルトの名無しさん
2022/02/07(月) 22:52:45.27ID:MLiEvPiI 「最新のエラーメッセージ」は1.0直前に書かれたものだしもう仕様化してもいいんじゃね
https://github.com/rust-lang/rust/pull/25272
https://github.com/rust-lang/rust/pull/25272
778デフォルトの名無しさん
2022/02/07(月) 23:03:21.13ID:jZIVUuZq779デフォルトの名無しさん
2022/02/07(月) 23:11:42.66ID:gOCxugwW780デフォルトの名無しさん
2022/02/07(月) 23:15:03.65ID:Rl6UL3Q6 半ギレww
781デフォルトの名無しさん
2022/02/07(月) 23:28:02.69ID:q/PrVpBp >>777
仕様化されてるよ
エラーメッセージをアップデートすべき
https://doc.rust-lang.org/reference/special-types-and-traits.html#copy
その時代とはDrop周りの実装も大きく変わってる上に
CopyとDropが排他的である前提で書かれたコードも多々あるから
Copy+Dropな型をサポートするならエディション対応が必須
仕様化されてるよ
エラーメッセージをアップデートすべき
https://doc.rust-lang.org/reference/special-types-and-traits.html#copy
その時代とはDrop周りの実装も大きく変わってる上に
CopyとDropが排他的である前提で書かれたコードも多々あるから
Copy+Dropな型をサポートするならエディション対応が必須
782デフォルトの名無しさん
2022/02/07(月) 23:45:39.09ID:jZIVUuZq >>779
Copyを実装している型は使われると複製され分岐すると自分も当たり前に思っているけど
異なる意見を持っているの?
否定ばかりしていて対案を出せない人はどこの世界でもダメな人扱いになっちゃうから対案を出すのがお勧め
Copyを実装している型は使われると複製され分岐すると自分も当たり前に思っているけど
異なる意見を持っているの?
否定ばかりしていて対案を出せない人はどこの世界でもダメな人扱いになっちゃうから対案を出すのがお勧め
783デフォルトの名無しさん
2022/02/07(月) 23:54:38.63ID:MLiEvPiI784デフォルトの名無しさん
2022/02/08(火) 00:13:43.96ID:6pYzzNS7 Copyを実装する型の変数にはそもそも所有権が存在しないということかな。
785デフォルトの名無しさん
2022/02/08(火) 00:58:18.89ID:v5+/0O15 ソケット、ファイルハンドラあたりがコピーされたらそら問題だろうからな。
>Copyを実装する型の変数にはそもそも所有権が存在しないということかな。
copyされたら所有権がないとかめちゃくちゃだな。int値だって共有されるかどうかはかなり問題だっての。
>Copyを実装する型の変数にはそもそも所有権が存在しないということかな。
copyされたら所有権がないとかめちゃくちゃだな。int値だって共有されるかどうかはかなり問題だっての。
786デフォルトの名無しさん
2022/02/08(火) 01:23:08.03ID:Ie+ZA5Wx787デフォルトの名無しさん
2022/02/08(火) 02:46:17.65ID:TlrfCSTD それ同一人物だぞ
複製オジは人格も複製分岐させる
複製オジは人格も複製分岐させる
788デフォルトの名無しさん
2022/02/08(火) 09:41:57.74ID:SQntNedJ たとえ話って逆に理解を妨げることも多いよね(´・ω・`)
789デフォルトの名無しさん
2022/02/08(火) 10:46:53.27ID:VdD2swgy 複製おじさんにも唯一役に立つチャンスがあるよ
それはE0184の改善案を提案してRustの質向上に貢献することw
しかし複製おじさんは妄想だけで改善が見られないから害でしかない
それはE0184の改善案を提案してRustの質向上に貢献することw
しかし複製おじさんは妄想だけで改善が見られないから害でしかない
790デフォルトの名無しさん
2022/02/08(火) 17:39:21.77ID:L87aFEFb 複製おじさん大人気だな
個人的には「所有権が分岐する」のほうが衝撃的だった
個人的には「所有権が分岐する」のほうが衝撃的だった
■ このスレッドは過去ログ倉庫に格納されています
