公式
https://www.rust-lang.org/
https://blog.rust-lang.org/
https://github.com/rust-lang/rust
公式ドキュメント
https://www.rust-lang.org/learn
Web上の実行環境
https://play.rust-lang.org
※Rustを学びたい人はまず最初に公式のThe Bookを読むこと
https://doc.rust-lang.org/book/
(コミュニティによる日本語翻訳版もあります: https://doc.rust-jp.rs/book-ja/)
※Rustを学ぶ際に犯しがちな12の過ち
https://dystroy.org/blog/how-not-to-learn-rust
※Rustのasyncについて知りたければ「async-book」は必読
https://rust-lang.github.io/async-book/
※次スレは原則>>980が立てること
前スレ
Rust part37
https://mevius.5ch.io/test/read.cgi/tech/1784283151/
ワッチョイスレ
プログラミング言語 Rust 4【ワッチョイ】
https://mevius.5ch.io/test/read.cgi/tech/1514107621/
Rust part38
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2026/07/24(金) 20:04:25.76ID:24e2kQId792sage
2026/09/19(土) 23:42:26.15ID:hDUFdP6a そんなもんが必要ならAIに書かせとけ
793デフォルトの名無しさん
2026/09/20(日) 12:50:06.54ID:r+SWRFAW AIがこういう間違い記事を学習してしまうと
正しく「staticライフタイムなオブジェクトを作れます。」という記事がない限り正せない?
https://qiita.com/terukazu/items/efd9dc2ca334cfe90c05
Rustではプリミティブ型やリテラルだけが static 定義できます。
つまり、オブジェクトは static ライフタイムが使えません。
Singletonパターンを使ってグローバルステートを実装することはできますが、staticライフタイムなオブジェクトは作れません。
正しく「staticライフタイムなオブジェクトを作れます。」という記事がない限り正せない?
https://qiita.com/terukazu/items/efd9dc2ca334cfe90c05
Rustではプリミティブ型やリテラルだけが static 定義できます。
つまり、オブジェクトは static ライフタイムが使えません。
Singletonパターンを使ってグローバルステートを実装することはできますが、staticライフタイムなオブジェクトは作れません。
794デフォルトの名無しさん
2026/09/20(日) 12:51:36.39ID:qvZ3EA97 実際に作って見せれば謝って来るさw
795デフォルトの名無しさん
2026/09/20(日) 12:59:26.79ID:z/Z/4nFE それはその場では謝るけど全体への学習しないパターンではないかい
ソース記事がない状況でユーザに言われるがまま訂正学習していったらヤバいじゃん
ソース記事がない状況でユーザに言われるがまま訂正学習していったらヤバいじゃん
796デフォルトの名無しさん
2026/09/20(日) 16:19:17.63ID:IOF+gfQZ >>793
大丈夫、既にその記事の著者や我々なんかよりAIは遥かにRustを正しく理解しているから
大丈夫、既にその記事の著者や我々なんかよりAIは遥かにRustを正しく理解しているから
797デフォルトの名無しさん
2026/09/20(日) 16:33:40.22ID:45Iurzgz 今のフロンティアモデルは人間が>>793のような誤りを冒すに至る認知構造まで含めて余裕で理解してるでしょ
むしろこういう記事のほうがAIにとって価値がありそう
むしろこういう記事のほうがAIにとって価値がありそう
798デフォルトの名無しさん
2026/09/20(日) 18:03:16.19ID:3gFE3rTD Python遅いけど、C++だと訳わからんくて完全AI任せになってしまうと思ってrustにしたら意外とc++よりはなんか分かりやすくていいね
nimも試したけどライブラリが古いのとラッパーばっかだったし程よい感じ。
nimも試したけどライブラリが古いのとラッパーばっかだったし程よい感じ。
799デフォルトの名無しさん
2026/09/20(日) 18:03:52.42ID:3gFE3rTD バイブコーダーなのは変わらんけど、完全に置いてけぼりにはならなくなった
800デフォルトの名無しさん
2026/09/20(日) 18:48:52.66ID:TGvlEQzb801デフォルトの名無しさん
2026/09/20(日) 22:08:35.06ID:/SPJ5dBm 例としてstd::env::args()を&'static [&'static str]にする方法をAIたちに尋ねてみると
まずみんなleakメソッドを使いたがる
leakメソッド禁止など指示していくと正解にたどり着けるAIもいれば無理だとお手上げのAIもいる
ということは人間プログラマも正解にたどり着ける人間とお手上げの人間がいそうな気がする
まずみんなleakメソッドを使いたがる
leakメソッド禁止など指示していくと正解にたどり着けるAIもいれば無理だとお手上げのAIもいる
ということは人間プログラマも正解にたどり着ける人間とお手上げの人間がいそうな気がする
802デフォルトの名無しさん
2026/09/21(月) 05:12:58.13ID:SvG49y4t 所有権を理解していない初心者には難しいだろう
803デフォルトの名無しさん
2026/09/21(月) 08:37:24.77ID:78hFi8Mi コンテキスト次第だろう
所有権の問題あるいは実用的な問いと考えるなら不可能だし、無意味なパズルだとするなら方法はあるわな
AIはその手の問いに対して「実用上意味がある答えを」という暗黙の前提を置きがちで、
別途staticなフィールドを外で持って値だけコピーするような方法はleak案が否定された時点で実用上無意味な方法であるとして除外されやすい
つまりお前より頭いいからそうなるんだよ
所有権の問題あるいは実用的な問いと考えるなら不可能だし、無意味なパズルだとするなら方法はあるわな
AIはその手の問いに対して「実用上意味がある答えを」という暗黙の前提を置きがちで、
別途staticなフィールドを外で持って値だけコピーするような方法はleak案が否定された時点で実用上無意味な方法であるとして除外されやすい
つまりお前より頭いいからそうなるんだよ
804デフォルトの名無しさん
2026/09/21(月) 09:02:44.18ID:09sz93T0 こちらのAIはstatic変数に持つのがむしろ良い方法だと言ってるよ
> Box::leakのように意図しないメモリ管理の放棄や生ポインタの手動操作を伴わず、安全なカプセル化(Safeな抽象化)として実現できます。
> once_cell または std::sync::OnceLock(Rust 1.70以降で標準化)を使用してstatic変数にデータをグローバル保持する方法が最も一般的かつ安全です。
2023年6月安定化のOnceLockは出て来たけど
2025年7月安定化のLazyLockはないね
> Box::leakのように意図しないメモリ管理の放棄や生ポインタの手動操作を伴わず、安全なカプセル化(Safeな抽象化)として実現できます。
> once_cell または std::sync::OnceLock(Rust 1.70以降で標準化)を使用してstatic変数にデータをグローバル保持する方法が最も一般的かつ安全です。
2023年6月安定化のOnceLockは出て来たけど
2025年7月安定化のLazyLockはないね
805デフォルトの名無しさん
2026/09/21(月) 09:09:02.57ID:XoaY1bMn >>804
大切なのはleakとOnceLockのどちらが優れているかではなく、この問いにおいて一方が否定された時点でもう一方に意味があるかどうか
まともなAIであれば単なるトンチに過ぎず無意味であると判断する
大切なのはleakとOnceLockのどちらが優れているかではなく、この問いにおいて一方が否定された時点でもう一方に意味があるかどうか
まともなAIであれば単なるトンチに過ぎず無意味であると判断する
806デフォルトの名無しさん
2026/09/21(月) 09:26:12.65ID:QyR36taW807デフォルトの名無しさん
2026/09/21(月) 10:50:33.72ID:a1rtISKh >>801
>例としてstd::env::args()を&'static [&'static str]にする方法をAIたちに尋ねてみると
>まずみんなleakメソッドを使いたがる
尋ね方の問題だろうな
>例としてstd::env::args()を&'static [&'static str]にする方法をAIたちに尋ねてみると
>まずみんなleakメソッドを使いたがる
尋ね方の問題だろうな
808デフォルトの名無しさん
2026/09/21(月) 11:10:16.37ID:ZzOmsOkb >>803
static変数に入れることは実用上意味があって便利だぜ
他のスレッドたちへ文字列を受け渡す場合
以下が可能ならばどれがいい?
①StringをCopyして渡す
②StringをArcで包んでCloneして渡す
③Stringをstatic変数に入れて&'static strを共有
static変数に入れることは実用上意味があって便利だぜ
他のスレッドたちへ文字列を受け渡す場合
以下が可能ならばどれがいい?
①StringをCopyして渡す
②StringをArcで包んでCloneして渡す
③Stringをstatic変数に入れて&'static strを共有
809デフォルトの名無しさん
2026/09/21(月) 11:36:54.89ID:TsfRMUJ+ constで
810デフォルトの名無しさん
2026/09/21(月) 11:46:14.15ID:LEbdPNEq Rustのconstはコンパイル時に確定する値しか扱えないよ
staticは実行時に確定する値も扱えるね
staticは実行時に確定する値も扱えるね
811デフォルトの名無しさん
2026/09/21(月) 13:09:53.44ID:YzHNkURJ 複おじってOnceLock/LazyLockネタ好きだよね
812デフォルトの名無しさん
2026/09/21(月) 13:10:56.53ID:eDapVINV プログラム実行中に決まる値だけどその後はプログラム終了後まで変わらない値はよくあるけど
それを関数呼び出しするたびに引数として渡して持ち回る方法と
static変数に入れてしまう方法
どちらが便利でコストも低いかという話だよな
それを関数呼び出しするたびに引数として渡して持ち回る方法と
static変数に入れてしまう方法
どちらが便利でコストも低いかという話だよな
813デフォルトの名無しさん
2026/09/21(月) 13:16:30.70ID:xBV1TS81 起動引数程度ならどっちでもいいよ
問題はコンパイル通すためにstaticにしたがるやつ
問題はコンパイル通すためにstaticにしたがるやつ
814デフォルトの名無しさん
2026/09/21(月) 13:26:12.40ID:dJbgy1B2 不変staticは安全で良い方法だが、staticに親でも殺されたかのように嫌ってる人がいる
815デフォルトの名無しさん
2026/09/21(月) 13:30:54.81ID:TsfRMUJ+ Rustって、ROM化出来るん?
816デフォルトの名無しさん
2026/09/21(月) 14:03:28.72ID:OHUe+syF できる
むしろRustができない理由が存在しない
むしろRustができない理由が存在しない
817デフォルトの名無しさん
2026/09/21(月) 14:35:01.23ID:+5XKJfPw opencode重すぎだからgooseに頑張ってほC
818デフォルトの名無しさん
2026/09/21(月) 14:35:55.53ID:H9KETvz/ >>813
起動引数や設定ファイルのデータだけでなく
他のサーバから読み込んだデータなどあらゆる含む
巨大なデータまで全てが対象
・プログラム実行中に必要とするデータ
・プログラム実行中は変化しないデータ
この2点を満たすならばstatic変数に格納することで利便性が高まることが多い
コンパイルを通すために関数の引数として全てを毎回渡して引きずり回すと不利になりがち
起動引数や設定ファイルのデータだけでなく
他のサーバから読み込んだデータなどあらゆる含む
巨大なデータまで全てが対象
・プログラム実行中に必要とするデータ
・プログラム実行中は変化しないデータ
この2点を満たすならばstatic変数に格納することで利便性が高まることが多い
コンパイルを通すために関数の引数として全てを毎回渡して引きずり回すと不利になりがち
819デフォルトの名無しさん
2026/09/21(月) 17:09:13.62ID:CklClm5E820デフォルトの名無しさん
2026/09/21(月) 17:21:27.82ID:S88AQXnW >>819
それは不可能
それは不可能
821デフォルトの名無しさん
2026/09/21(月) 18:38:55.58ID:8A7K5noZ822デフォルトの名無しさん
2026/09/21(月) 19:26:08.22ID:ViIoR4CZ しょうがないにゃあ
https://crates.io/crates/argv
https://crates.io/crates/argv
823デフォルトの名無しさん
2026/09/21(月) 19:46:34.91ID:jPdCazQ8 >>822
こっちはちゃんとメモリリークと明記しているのが好感もてる
こっちはちゃんとメモリリークと明記しているのが好感もてる
824デフォルトの名無しさん
2026/09/21(月) 20:16:08.52ID:K9rKMqSY 量が分かってるメモリリークは別に問題ないだろ
昔の、main()を抜ける前にfree()すべき論争みたい
昔の、main()を抜ける前にfree()すべき論争みたい
825デフォルトの名無しさん
2026/09/21(月) 20:30:31.56ID:ma4ce9+I826デフォルトの名無しさん
2026/09/21(月) 20:42:35.20ID:ViIoR4CZ ただしとは?
827デフォルトの名無しさん
2026/09/21(月) 20:53:42.98ID:tMMC3trf ほんとだ
static mutまで使ってやがる
static mutまで使ってやがる
828デフォルトの名無しさん
2026/09/21(月) 21:04:24.20ID:AqfCcW0e 大した需要が無い事が判明したね
ダウンロード数からして
ダウンロード数からして
829デフォルトの名無しさん
2026/09/21(月) 21:08:52.30ID:3ovHO8wn 普通にstd::env使えばunsafe使わずに3行で書けるからなあ
830デフォルトの名無しさん
2026/09/21(月) 21:22:23.35ID:6jL4N2Yz Box::leakで取った参照ってBox::from_rawで戻していいのかな
&strとかスライスだと無理そうだけど&Stringなら大丈夫そうな気がする
&strとかスライスだと無理そうだけど&Stringなら大丈夫そうな気がする
831デフォルトの名無しさん
2026/09/21(月) 21:26:27.88ID:w2fYUVEb どのAIも本質的に同じコードを出してくる
once_cell使ったり細かな違いしかない
fn args() -> &'static[&'static str] {
static ARGS_STRING: LazyLock<Vec<String>> = LazyLock::new(|| std::env::args().collect());
static ARGS_STR: LazyLock<Vec<&'static str>> = LazyLock::new(|| ARGS_STRING.iter().map(|s| &**s).collect());
return &**ARGS_STR
}
once_cell使ったり細かな違いしかない
fn args() -> &'static[&'static str] {
static ARGS_STRING: LazyLock<Vec<String>> = LazyLock::new(|| std::env::args().collect());
static ARGS_STR: LazyLock<Vec<&'static str>> = LazyLock::new(|| ARGS_STRING.iter().map(|s| &**s).collect());
return &**ARGS_STR
}
832デフォルトの名無しさん
2026/09/21(月) 21:35:09.56ID:AjhCgfEP833デフォルトの名無しさん
2026/09/21(月) 21:42:13.71ID:P02CzQjz メモリリークとはプログラムを動かし続けていると使っていない使用メモリが増え続けていくことだよ
増え続けないものをメモリリークとは言わない
増え続けないものをメモリリークとは言わない
834デフォルトの名無しさん
2026/09/21(月) 21:49:47.19ID:ViIoR4CZ メモリリークの定義はいろいろあります
835デフォルトの名無しさん
2026/09/21(月) 22:01:36.60ID:bs8gwQEk 確保したままなのに使われていないメモリ領域が増えていくとメモリリーク
これ以外に定義はない
これ以外に定義はない
836デフォルトの名無しさん
2026/09/21(月) 22:05:35.92ID:K+qAF0YS 増えていくなんて条件はプログラミング素人過ぎないか?
837デフォルトの名無しさん
2026/09/21(月) 22:07:24.58ID:ViIoR4CZ838デフォルトの名無しさん
2026/09/21(月) 22:18:29.62ID:828MNJlE >>820>>821
草w草w
草w草w
839デフォルトの名無しさん
2026/09/21(月) 22:21:40.28ID:JadhMs23 >>837
それは狂信的なので完全に無視していい
少なくともRustの方針とは真逆
Rustは「プログラム終了時にすべてのヒープメモリを返す」という無駄なことをしない方針をとっている
そしてIT大手各社そのRustの方針に賛同しているため現状がある
それは狂信的なので完全に無視していい
少なくともRustの方針とは真逆
Rustは「プログラム終了時にすべてのヒープメモリを返す」という無駄なことをしない方針をとっている
そしてIT大手各社そのRustの方針に賛同しているため現状がある
840デフォルトの名無しさん
2026/09/21(月) 22:27:16.47ID:ViIoR4CZ はあ? 狂信的? 方針? 何の話?
841デフォルトの名無しさん
2026/09/21(月) 22:35:21.70ID:VhTjeoQU >>824の話だよな
Rustは「main()を抜ける前に全てfree()すべき」というキチガイをガン無視
Rustは「main()を抜ける前に全てfree()すべき」というキチガイをガン無視
842デフォルトの名無しさん
2026/09/21(月) 22:55:44.23ID:ViIoR4CZ 単にRustがメモリリークについて大した方針も用語定義も持っていないだけでは?
ところで、某「IT大手各社」が言うメモリリークも「増え続ける」なんて条件はない
https://learn.microsoft.com/en-us/cpp/c-runtime-library/find-memory-leaks-using-the-crt-library
ところで、某「IT大手各社」が言うメモリリークも「増え続ける」なんて条件はない
https://learn.microsoft.com/en-us/cpp/c-runtime-library/find-memory-leaks-using-the-crt-library
843デフォルトの名無しさん
2026/09/21(月) 23:03:53.06ID:e5c+uMkQ844デフォルトの名無しさん
2026/09/21(月) 23:30:10.79ID:ViIoR4CZ RustプログラムでもCRTはリンクするんじゃないの?
というか言語ごとにメモリリークの定義が違うとかないし関係ないでしょ
というか言語ごとにメモリリークの定義が違うとかないし関係ないでしょ
845デフォルトの名無しさん
2026/09/21(月) 23:34:20.26ID:TsfRMUJ+ メモリー解放やってくれる言語でメモリーリークってあるの?
846デフォルトの名無しさん
2026/09/21(月) 23:43:06.97ID:oY6DZ07F CRTってどの話
公開鍵暗号証明書のCRTか
AWSの共通ランタイムか
公開鍵暗号証明書のCRTか
AWSの共通ランタイムか
847デフォルトの名無しさん
2026/09/22(火) 00:35:22.45ID:cK0j03T+ >>845
コンテナに詰めたまま今後使われることも無く放置されるオブジェクトというのは、言語機能も手が出せないからメモリリークということになる
コンテナに詰めたまま今後使われることも無く放置されるオブジェクトというのは、言語機能も手が出せないからメモリリークということになる
848デフォルトの名無しさん
2026/09/22(火) 10:09:10.96ID:bNLehxTt >>819
他のスレッドへ渡すことができる参照は&'staticだけです
他のスレッドへ渡すことができる参照は&'staticだけです
849デフォルトの名無しさん
2026/09/22(火) 10:27:39.48ID:4pxM2A40 >>848
嘘おじ乙
嘘おじ乙
850デフォルトの名無しさん
2026/09/22(火) 11:39:45.83ID:q5Do/obS なぜ他のスレッドへ&'static参照しか渡せないのかというと
渡した元のスレッドが先に終了したら参照が指している実体が亡くなってしまうためだよ
&'static以外の参照を渡せるようにするためには他のスレッドが動作中は元のスレッドをブロックして終了しないように制限するしかない
渡した元のスレッドが先に終了したら参照が指している実体が亡くなってしまうためだよ
&'static以外の参照を渡せるようにするためには他のスレッドが動作中は元のスレッドをブロックして終了しないように制限するしかない
851デフォルトの名無しさん
2026/09/22(火) 11:53:56.01ID:MTP/56Du 共有メモリでやりとりするんじゃ無くて?
852デフォルトの名無しさん
2026/09/22(火) 12:00:50.22ID:TAf3sznx お手軽な参照渡しは>>850
所有者はArcに包んで共同所有者になればcloneで共同所有者を増やすことができて他のスレッドへ渡せる
所有者はArcに包んで共同所有者になればcloneで共同所有者を増やすことができて他のスレッドへ渡せる
853デフォルトの名無しさん
2026/09/22(火) 12:03:50.00ID:6FDtA0Sv854デフォルトの名無しさん
2026/09/22(火) 12:09:22.44ID:xOIplrwn855デフォルトの名無しさん
2026/09/22(火) 12:11:27.47ID:WqQc5uVE std::thread::scope
856デフォルトの名無しさん
2026/09/22(火) 12:14:30.45ID:lvVWXgg1857デフォルトの名無しさん
2026/09/22(火) 12:17:28.17ID:izQVrR2Y 相手のバッファに突っ込んでしまえばいいだけでは?
858デフォルトの名無しさん
2026/09/22(火) 12:20:46.33ID:/aCQSoPr859デフォルトの名無しさん
2026/09/22(火) 12:22:14.62ID:MTP/56Du コストより、相手のライフ状態気にしなくてし済む自由
860デフォルトの名無しさん
2026/09/22(火) 12:23:02.48ID:DaZhbE7H AIともこんな調子でバトってるのかな
861デフォルトの名無しさん
2026/09/22(火) 12:26:22.07ID:C2KoahVf862デフォルトの名無しさん
2026/09/22(火) 12:40:46.70ID:0nX3vX8d > 問題はコンパイル通すためにstaticにしたがるやつ >>861
863デフォルトの名無しさん
2026/09/22(火) 12:49:22.11ID:yoeWEF+y static変数はスレッド間で共有するために存在してるんだよ
だからこそstatic mutはunsafeでしか扱えないようにしてある
staticで可変にしたい場合は内部可変性を使うことでsafeに使えるよ
だからこそstatic mutはunsafeでしか扱えないようにしてある
staticで可変にしたい場合は内部可変性を使うことでsafeに使えるよ
864デフォルトの名無しさん
2026/09/22(火) 13:00:51.63ID:IGaT0qGE &'staticを得られるから自由に他スレッドに渡せるだけでなくシングルスレッドの利用でも利点が多い
ライフタイム気にしなくてよくなる
ライフタイム気にしなくてよくなる
865デフォルトの名無しさん
2026/09/22(火) 13:04:32.19ID:cr0HifoN >>846
Cathode Ray Tube
Cathode Ray Tube
866デフォルトの名無しさん
2026/09/22(火) 14:50:04.06ID:rR3JhzUW867デフォルトの名無しさん
2026/09/22(火) 14:51:29.96ID:nQd/xlrB 関数の引数として渡すときにもstatic化は効果絶大だよ
直接もしくは連れ回す構造体に格納するとき
1. 所有型(VecやString)を使うと構造体のサイズが割り増しになる
2. 通常の参照を使うと構造体にライフタイム<'a>が付いて扱いが煩雑になる
3. 'static参照を使うと構造体がシンプルで済む
便利で効率も良いのはstatic化した時の 3. だよね
直接もしくは連れ回す構造体に格納するとき
1. 所有型(VecやString)を使うと構造体のサイズが割り増しになる
2. 通常の参照を使うと構造体にライフタイム<'a>が付いて扱いが煩雑になる
3. 'static参照を使うと構造体がシンプルで済む
便利で効率も良いのはstatic化した時の 3. だよね
868デフォルトの名無しさん
2026/09/22(火) 15:04:40.05ID:6O2cWAgA 結局スレッド云々は全く関係がないんだよな
グローバル変数にして個別に受け渡しせず使いたいならstaticにする
それだけ
グローバル変数は
依存性が隠れやすい/テストしにくいなどのダウンサイドもあるので
用法用量には注意しましょうということ
複おじ節には耳をかすな
これだけでいい
グローバル変数にして個別に受け渡しせず使いたいならstaticにする
それだけ
グローバル変数は
依存性が隠れやすい/テストしにくいなどのダウンサイドもあるので
用法用量には注意しましょうということ
複おじ節には耳をかすな
これだけでいい
869デフォルトの名無しさん
2026/09/22(火) 15:14:50.45ID:jVMf5Btc static変数はグローバル変数ではありません
テストがしにくくなることもありません
テストがしにくくなることもありません
870デフォルトの名無しさん
2026/09/22(火) 15:20:16.77ID:wJ8CVmO0 >>868
基本的な違いをいくつも理解できてないな
まず指摘があるようにstatic変数はグローバル変数ではなくスコープは関数内やモジュール内に閉じて使える
次にstatic変数を直接使う話ではなくてそれが見えない場所からも使える&'static参照の話だろう
基本的な違いをいくつも理解できてないな
まず指摘があるようにstatic変数はグローバル変数ではなくスコープは関数内やモジュール内に閉じて使える
次にstatic変数を直接使う話ではなくてそれが見えない場所からも使える&'static参照の話だろう
871デフォルトの名無しさん
2026/09/22(火) 15:21:25.46ID:DaZhbE7H 「バカは'static以外のライフタイム使わないほうがいい」はガチ
872デフォルトの名無しさん
2026/09/22(火) 15:41:20.58ID:1FMPzNcm873デフォルトの名無しさん
2026/09/22(火) 16:30:49.95ID:mb5/PVHr &str の lifetime に納得行かないのなら
&'static str より String 使え
&'static str より String 使え
874デフォルトの名無しさん
2026/09/22(火) 16:39:33.99ID:Dlcehamx875デフォルトの名無しさん
2026/09/22(火) 17:22:46.10ID:X93HRnuq すべったね
876デフォルトの名無しさん
2026/09/22(火) 17:28:58.82ID:9iufHjYY しかもスレッドに渡すなら
文字列を渡したいだけなのに
&'static str vs. Arc<String>になってしまうもんな
文字列を渡したいだけなのに
&'static str vs. Arc<String>になってしまうもんな
877デフォルトの名無しさん
2026/09/22(火) 18:24:55.02ID:HJSsYxXe 複おじ(2022)「可変性を気にしなくてよくなるからCell使え」
複おじ(2026)「ライフタイム気にしなくてよくなるから&'static使え」
1ミリも進歩してないwww
複おじ(2026)「ライフタイム気にしなくてよくなるから&'static使え」
1ミリも進歩してないwww
878デフォルトの名無しさん
2026/09/22(火) 18:29:20.00ID:DaZhbE7H 令和最新版staticおじさん
879デフォルトの名無しさん
2026/09/22(火) 19:34:33.89ID:JjocWP+j どんなものでも用いることでコードがシンプルになったり速くなったりするなら使うのが正解
unsafeは除く
unsafeは除く
880デフォルトの名無しさん
2026/09/22(火) 21:06:58.96ID:OwGqJ8SC なんでもArcにすると扱いが楽!は遅くなるからダメだけど
>>877は問題ないと思う
>>877は問題ないと思う
881デフォルトの名無しさん
2026/09/22(火) 21:46:26.41ID:dZHoI6bq CPUバウンドな処理をスレッドで回したいだけなら安直にrayonで書く
プロファイラかけてボトルネックだとなったらゼロコピーで書き直す
そうそうない
プロファイラかけてボトルネックだとなったらゼロコピーで書き直す
そうそうない
882デフォルトの名無しさん
2026/09/22(火) 21:57:02.17ID:nl5zGx1z883デフォルトの名無しさん
2026/09/22(火) 22:03:22.11ID:Z9tABGZi 分割できるなんらかの計算処理以外にrayon活用無理だろ
884デフォルトの名無しさん
2026/09/22(火) 22:18:24.35ID:rLmwJ50F >>882
非同期で書く課題だから他の言語は非同期を使ってるいるのに1人だけ非同期ではないのは恥ずかしい
非同期で書く課題だから他の言語は非同期を使ってるいるのに1人だけ非同期ではないのは恥ずかしい
885デフォルトの名無しさん
2026/09/22(火) 22:26:59.47ID:nl5zGx1z generatorはコルーチンだよ
886デフォルトの名無しさん
2026/09/22(火) 22:29:08.11ID:DaZhbE7H C++読む気ないのにこれだからなあ
887デフォルトの名無しさん
2026/09/22(火) 22:31:19.91ID:nl5zGx1z >>884
もうちょっと詳しく書くと
>>882のC++コードはこれに対応している
https://github.com/hanabi1224/Programming-Language-Benchmarks/blob/main/bench/algorithm/coro-prime-sieve/2.py
ただしPythonは再帰呼び出しでスタックオバーフローする
もうちょっと詳しく書くと
>>882のC++コードはこれに対応している
https://github.com/hanabi1224/Programming-Language-Benchmarks/blob/main/bench/algorithm/coro-prime-sieve/2.py
ただしPythonは再帰呼び出しでスタックオバーフローする
888デフォルトの名無しさん
2026/09/22(火) 22:35:00.67ID:ql3fUNJl ざっと見たところPythonもJavaScriptもC#もGoもRustも非同期タスクを使っているようだ
非同期タスクを使う課題なのではないか?
非同期タスクを使う課題なのではないか?
889デフォルトの名無しさん
2026/09/22(火) 22:38:54.92ID:1Jvzfdv3 1.pyなど1.*しか見てなかったからasync使うベンチマークかと思ったら2.pyはasync出て来ないのな
出題が悪いのではないか
出題が悪いのではないか
890デフォルトの名無しさん
2026/09/22(火) 22:43:39.10ID:nl5zGx1z >>888
非同期機構のプリミティブは言語毎に違うけどC++はプロミスで
std::generatorはsingle threaded executorだからJavascriptよりかな
C++コードが登録されてないのはこれが流行ったのが昔だからでは
非同期機構のプリミティブは言語毎に違うけどC++はプロミスで
std::generatorはsingle threaded executorだからJavascriptよりかな
C++コードが登録されてないのはこれが流行ったのが昔だからでは
891デフォルトの名無しさん
2026/09/22(火) 22:44:53.33ID:nl5zGx1z >>889
カラーレスのgoでチャンネルを使ったのがひな型
カラーレスのgoでチャンネルを使ったのがひな型
892デフォルトの名無しさん
2026/09/22(火) 22:51:10.96ID:fLfMQzIX シングルスレッドの生成器でいいなら
C++の1つ目のジェネレータはRustでは「2..」
2つ目は「(2..).filter(|&i| i % prime != 0)」
しかしそのようなコードを期待されているベンチマークではないと思われる
C++の1つ目のジェネレータはRustでは「2..」
2つ目は「(2..).filter(|&i| i % prime != 0)」
しかしそのようなコードを期待されているベンチマークではないと思われる
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【ボクシング】井上拓真が那須川天心を返り討ち 7回にダウン奪われるも「那須川天心を倒す」有言実行 WBC世界バンタム級 [鉄チーズ烏★]
- ロシア外相 「日本とドイツは軍国主義」 国連で声明 ★3 [お断り★]
- 【兵役免除】社会人日本代表、韓国に敗れ銀メダル リベンジ食らい5連覇許す【アジア大会】 [鉄チーズ烏★]
- 中国のパンダ2頭、米到着 習主席「友情の使者」 [煮卵★]
- 【自動車】なんて恐ろしい契約を…「残クレ」で念願のアルファードを手に入れた年収600万円・45歳サラリーマンの末路 ★3 [ぐれ★]
- 【野球】アジア大会・決勝の日韓戦が“地上波中継なし” 「冷遇されてる」「メダルかかってるのに...」との声も [尺アジ★]
- 【悲報】亜月ねね先生の家、巨大監視カメラが設置されておわる ★2 [398059782]
- 【実況】博衣こよりのえちえちねぽっくす打ち上げ🧪★2
- 【悲報】那須川天心また負けるwwwwwwwwwwwwwwwwwwww [802034645]
- シルバーウィーク暇ならアニソン聴こうぜ・・・
- 如意棒を使えば上に行けるって言われたんだが、
- 【画像】🤖「車のいらないオプションtier表がこれ」 [394133584]