公式
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/
※Rustを学ぶ際に犯しがちな12の過ち
https://dystroy.org/blog/how-not-to-learn-rust
※Rustのasyncについて知りたければ「async-book」は必読
https://rust-lang.github.io/async-book/
※次スレは原則>>980が立てること
前スレ
Rust part23
https://mevius.5ch.net/test/read.cgi/tech/1708677472/
Rust part24
■ このスレッドは過去ログ倉庫に格納されています
2024/05/27(月) 06:41:26.82ID:T4AFD1f4
121デフォルトの名無しさん
2024/06/14(金) 08:56:27.95ID:ZAmC1x49 聖地に向かっている者だけが地政学を信じている
122デフォルトの名無しさん
2024/06/14(金) 09:19:59.81ID:g3k7S7zc >>109
現在進行形だけどC/C++が絶滅するわけじゃなさそう
現在進行形だけどC/C++が絶滅するわけじゃなさそう
123デフォルトの名無しさん
2024/06/14(金) 10:01:07.05ID:lj8dYX/x >>115
C++のロードマップを見てくると良いよ
C++のロードマップを見てくると良いよ
124デフォルトの名無しさん
2024/06/14(金) 11:03:03.69ID:GO4uoc83 今考えられてるアノテーションではmaybe safer C++になるだけで根本的にsafeではない
既存資産を活用するという最大のメリットを捨てて非互換新言語を作れば可能だけどRustがある現状で誰もそんな事に投資しないから実現不可能
既存資産を活用するという最大のメリットを捨てて非互換新言語を作れば可能だけどRustがある現状で誰もそんな事に投資しないから実現不可能
125デフォルトの名無しさん
2024/06/14(金) 11:28:58.36ID:O+avA7Kj >>117
carbonとか完全に忘れてたわ。あれ絶対c++やRustより先に無くなるやろ
carbonとか完全に忘れてたわ。あれ絶対c++やRustより先に無くなるやろ
126デフォルトの名無しさん
2024/06/14(金) 17:00:20.45ID:wrlhIGAu127デフォルトの名無しさん
2024/06/14(金) 17:29:32.96ID:97A5EwfU C++を安全にしようとすると標準ライブラリの各インターフェースから全て作り直しとなり
標準でないライブラリも同様なので既存のコード資産は使えず全面書き直しとなってしまう
それだけでは済まなくて互換性のない言語仕様も取り入れないといけない
なんとか手間暇かけてそこまで頑張って安全なC++ができあがっても何の意味もメリットも無くなってることに誰もが気付いた
標準でないライブラリも同様なので既存のコード資産は使えず全面書き直しとなってしまう
それだけでは済まなくて互換性のない言語仕様も取り入れないといけない
なんとか手間暇かけてそこまで頑張って安全なC++ができあがっても何の意味もメリットも無くなってることに誰もが気付いた
128デフォルトの名無しさん
2024/06/14(金) 17:31:19.78ID:stz6yx5w 色使いが目にunsafeすぎる
129デフォルトの名無しさん
2024/06/14(金) 18:01:13.88ID:PWCt6Qaf zlib-rsで移植のほぼ完了したdeflateを見ればよくわかるけどすごくメモリ安全だぞ
現実を見ろ
現実を見ろ
130デフォルトの名無しさん
2024/06/14(金) 18:18:31.44ID:49Oug44p >>109
ゲーム分野のC/C++は置き換わらない
ゲーム分野のC/C++は置き換わらない
131デフォルトの名無しさん
2024/06/14(金) 18:24:39.72ID:lj8dYX/x ゲームなんざ脆弱性があろうが最悪クラッシュさせりゃいいからな😁
まともなゲームエンジンフレームワークのないRustを使う意味がない
それよかクラッシュしたら人死の出るようなところのRust化が優先
まともなゲームエンジンフレームワークのないRustを使う意味がない
それよかクラッシュしたら人死の出るようなところのRust化が優先
132デフォルトの名無しさん
2024/06/14(金) 19:04:14.04ID:1kqNSQLr ネットワーク対戦ゲームだと細工したパケット送ると
バッファーオーバーフローで云々とよくある
脆弱性になるじゃん
バッファーオーバーフローで云々とよくある
脆弱性になるじゃん
133デフォルトの名無しさん
2024/06/14(金) 19:13:14.40ID:65JFUBxW >>132
そんなつまらない欠陥じゃなくてC++ではなくRust選ぶ利点になりえる脆弱性を言ってよ
そんなつまらない欠陥じゃなくてC++ではなくRust選ぶ利点になりえる脆弱性を言ってよ
134デフォルトの名無しさん
2024/06/14(金) 20:42:46.16ID:ZAmC1x49 今すぐ物を作るのは損
10年後20年後に作れば得
これがインフレだが
本当はどちらか一つだけ選ぶのは損で両方選ぶのが得だと思わないか
10年後20年後に作れば得
これがインフレだが
本当はどちらか一つだけ選ぶのは損で両方選ぶのが得だと思わないか
135デフォルトの名無しさん
2024/06/14(金) 21:29:25.97ID:1kqNSQLr >>133
あなたがつまらんかどうかが評価軸じゃないので
あなたがつまらんかどうかが評価軸じゃないので
136デフォルトの名無しさん
2024/06/14(金) 22:51:10.89ID:SfJORH/f137デフォルトの名無しさん
2024/06/14(金) 23:07:33.93ID:B5keN8zV C++書くのダルイんよ
Rustのゲームエンジン来るの待ってる
Rustのゲームエンジン来るの待ってる
138デフォルトの名無しさん
2024/06/14(金) 23:46:55.69ID:49Oug44p ゲームはまずdirectxやopenglとかがrustで書き直されないことには何も始まらんと思うわ
139デフォルトの名無しさん
2024/06/15(土) 00:13:27.25ID:W+2t+gug この板はプログラムを作らない人のための板ですね
140デフォルトの名無しさん
2024/06/15(土) 00:24:57.03ID:mfm3bm5o 作ると断言するが、時の指定まではしていない
141デフォルトの名無しさん
2024/06/15(土) 04:55:57.02ID:ao0/TxVC142デフォルトの名無しさん
2024/06/15(土) 06:54:41.07ID:FwUehUa7 >>138
それらは書き直されてもunsafeばっかになって意味ないだろ
それらは書き直されてもunsafeばっかになって意味ないだろ
143デフォルトの名無しさん
2024/06/15(土) 07:07:04.66ID:jiIbIudV OSのシステムコールだって生ポインタを渡したりunsafeな仕様だけど
Rustはsafeなインターフェースのライブラリとして提供して安全に使われているよ
Rustはsafeなインターフェースのライブラリとして提供して安全に使われているよ
144デフォルトの名無しさん
2024/06/15(土) 08:12:25.38ID:h+pAIb35 AIに組み込まれた検閲による命令拒否を打ち消してあらゆる種類の質問に応答できるようにする「アブリテレーション」とは?
2024年06月14日
※自分の身近な人の嘘や陥れようかが話されたことと実際の動き【動画撮影含む】っを解析すれば判明
スポーツで動的シミレーションなどをする不正をしているや審判の判定がおかしいも判明
日常生活の動きも同時に併用されればボイス・トォ・スカルを使用しているかが判明
スマフォにAIが搭載されるので容易に判定
120フレームと8k【人間の網膜の解像度と同じ】あればかなり制度が上がる
相手の望まない手助けは数週間持続する高いストレスを与える!
2024.06.13
↕サイコパスはどう考えるのかな
使えない人」を排斥するとき周りの人の心は痛みにくいと判明
2021.05.22 SAT
ネット上で問題発言をする人は、暗い性格特性「ダーク・トライアド」かもしれない
2021.04.02 FRI
ナルシストは他の人よりも早くCEOの地位にたどり着く
2021.02.09 TUE
つい被害者を責めてしまう「公正世界仮説」とは何なのか?
2019.07.22 MON
「無能」でもOK? 社会的地位の高い人ほど信頼されやすい理由とは
2019.06.02 SUN
2024年06月14日
※自分の身近な人の嘘や陥れようかが話されたことと実際の動き【動画撮影含む】っを解析すれば判明
スポーツで動的シミレーションなどをする不正をしているや審判の判定がおかしいも判明
日常生活の動きも同時に併用されればボイス・トォ・スカルを使用しているかが判明
スマフォにAIが搭載されるので容易に判定
120フレームと8k【人間の網膜の解像度と同じ】あればかなり制度が上がる
相手の望まない手助けは数週間持続する高いストレスを与える!
2024.06.13
↕サイコパスはどう考えるのかな
使えない人」を排斥するとき周りの人の心は痛みにくいと判明
2021.05.22 SAT
ネット上で問題発言をする人は、暗い性格特性「ダーク・トライアド」かもしれない
2021.04.02 FRI
ナルシストは他の人よりも早くCEOの地位にたどり着く
2021.02.09 TUE
つい被害者を責めてしまう「公正世界仮説」とは何なのか?
2019.07.22 MON
「無能」でもOK? 社会的地位の高い人ほど信頼されやすい理由とは
2019.06.02 SUN
145デフォルトの名無しさん
2024/06/15(土) 08:12:46.55ID:h+pAIb35 「問題を指摘する人」に問題があると思い込む心理バイアス「自発的特性転移」が陰謀論を生んでいるという主張
2024年05
悪いニュースを伝えた人は理不尽に嫌われてしまうことが明らかに
2019.05.17
「恋人がサイコパス」だった時の見分け方とは
2018.12.09 SUN
ロンドン市民の娯楽だった?!近代イギリスの公開処刑
2023/12/17
スラップ訴訟
>>ある程度の発言力や社会的影響力のある、社会的に優位といえる立場の者が、特に発言力や影響力を持たない相対的弱者を相手取り訴訟を起こすこと。
巨大IT企業から「法的措置をちらつかせる停止通告書」を受け取った場合の対処方法とは?
2024年02月01日 08時00分
2024年05
悪いニュースを伝えた人は理不尽に嫌われてしまうことが明らかに
2019.05.17
「恋人がサイコパス」だった時の見分け方とは
2018.12.09 SUN
ロンドン市民の娯楽だった?!近代イギリスの公開処刑
2023/12/17
スラップ訴訟
>>ある程度の発言力や社会的影響力のある、社会的に優位といえる立場の者が、特に発言力や影響力を持たない相対的弱者を相手取り訴訟を起こすこと。
巨大IT企業から「法的措置をちらつかせる停止通告書」を受け取った場合の対処方法とは?
2024年02月01日 08時00分
146デフォルトの名無しさん
2024/06/15(土) 10:23:21.15ID:sguIT4c6 サイバーエージェント、画像認識できる75億パラメーターの日本語LLM公開 商用利用OK
サイバーエージェントは6月13日、日本語大規模言語モデル(LLM)に画像認識機能を追加した大規模視覚言語モデル(VLM)「llava-calm2-siglip」を公開した。
「ChatGPT」画像を見ながら人間みたいに話せる新機能、今後数週間でリリースと予告
OpenAIは6月14日、同社の公式Instagramアカウントを通じ、ChatGPT(GPT-4o)に音声と映像を同時に理解する機能を追加し、今後数週間以内にリリースすると発表した。
画像生成AI「Stable Diffusion 3 Medium」公開 プロンプトの理解力が上がり、リアルな画像が生成可能に
Stability.aiは6月12日、同社が開発する画像生成AI「Stable Diffusion 3」シリーズの最新モデル「Stable Diffusion 3 Medium」を発表、無償の非商用ライセンスおよびクリエイターライセンスの下で利用可能だ。
サイバーエージェント、画像認識できる75億パラメーターの日本語LLM公開 商用利用OK
サイバーエージェントは6月13日、日本語大規模言語モデル(LLM)に画像認識機能を追加した大規模視覚言語モデル(VLM)「llava-calm2-siglip」を公開した。
「ChatGPT」画像を見ながら人間みたいに話せる新機能、今後数週間でリリースと予告
OpenAIは6月14日、同社の公式Instagramアカウントを通じ、ChatGPT(GPT-4o)に音声と映像を同時に理解する機能を追加し、今後数週間以内にリリースすると発表した。
画像生成AI「Stable Diffusion 3 Medium」公開 プロンプトの理解力が上がり、リアルな画像が生成可能に
Stability.aiは6月12日、同社が開発する画像生成AI「Stable Diffusion 3」シリーズの最新モデル「Stable Diffusion 3 Medium」を発表、無償の非商用ライセンスおよびクリエイターライセンスの下で利用可能だ。
サイバーエージェントは6月13日、日本語大規模言語モデル(LLM)に画像認識機能を追加した大規模視覚言語モデル(VLM)「llava-calm2-siglip」を公開した。
「ChatGPT」画像を見ながら人間みたいに話せる新機能、今後数週間でリリースと予告
OpenAIは6月14日、同社の公式Instagramアカウントを通じ、ChatGPT(GPT-4o)に音声と映像を同時に理解する機能を追加し、今後数週間以内にリリースすると発表した。
画像生成AI「Stable Diffusion 3 Medium」公開 プロンプトの理解力が上がり、リアルな画像が生成可能に
Stability.aiは6月12日、同社が開発する画像生成AI「Stable Diffusion 3」シリーズの最新モデル「Stable Diffusion 3 Medium」を発表、無償の非商用ライセンスおよびクリエイターライセンスの下で利用可能だ。
サイバーエージェント、画像認識できる75億パラメーターの日本語LLM公開 商用利用OK
サイバーエージェントは6月13日、日本語大規模言語モデル(LLM)に画像認識機能を追加した大規模視覚言語モデル(VLM)「llava-calm2-siglip」を公開した。
「ChatGPT」画像を見ながら人間みたいに話せる新機能、今後数週間でリリースと予告
OpenAIは6月14日、同社の公式Instagramアカウントを通じ、ChatGPT(GPT-4o)に音声と映像を同時に理解する機能を追加し、今後数週間以内にリリースすると発表した。
画像生成AI「Stable Diffusion 3 Medium」公開 プロンプトの理解力が上がり、リアルな画像が生成可能に
Stability.aiは6月12日、同社が開発する画像生成AI「Stable Diffusion 3」シリーズの最新モデル「Stable Diffusion 3 Medium」を発表、無償の非商用ライセンスおよびクリエイターライセンスの下で利用可能だ。
147デフォルトの名無しさん
2024/06/15(土) 11:03:47.63ID:8Y+G0brA >>143
それなら既存のRustラッパーでよくね?
それなら既存のRustラッパーでよくね?
148デフォルトの名無しさん
2024/06/15(土) 12:50:26.14ID:lxZB8+rK 根っこの技術がc/c++製でガワだけrustで、それでc++を置き換えたと言えるのか?
149デフォルトの名無しさん
2024/06/15(土) 12:55:07.64ID:pv+Dr0CG150デフォルトの名無しさん
2024/06/15(土) 13:06:53.11ID:I+z8iAZu151デフォルトの名無しさん
2024/06/15(土) 13:08:57.41ID:I+z8iAZu >>149
完全に pure Rust の OS があったとして
その上で動くアプリケーションは全て Rust で描かないといけない世界が良いのか
Rust OS の上でも C/C++ で開発したい(API は C 相当)のかで意見が変わる
完全に pure Rust の OS があったとして
その上で動くアプリケーションは全て Rust で描かないといけない世界が良いのか
Rust OS の上でも C/C++ で開発したい(API は C 相当)のかで意見が変わる
152デフォルトの名無しさん
2024/06/15(土) 13:33:19.67ID:mfm3bm5o 完全に純粋に一人で打席に立つことは
そいつの年収やそのカネの所有権を定義するのに必要みたいな感じでしょ
そいつの年収やそのカネの所有権を定義するのに必要みたいな感じでしょ
153デフォルトの名無しさん
2024/06/15(土) 15:03:07.44ID:jiIbIudV 勘違いしてる人が多いようだけど
Rustの目的は全てをRustで書くことではなく安全にすることなんだよ
だからOSシステムコール呼び出しもRust(と最小限の各アーキテクチャ毎のレジスタ積み等)で頑張るのではなくCで書かれたlibcを用いている
つまりRustのunsafe部分を最小限にするとともに、unsafeだが枯れて安全なlibcを活用している
Rustの目的は全てをRustで書くことではなく安全にすることなんだよ
だからOSシステムコール呼び出しもRust(と最小限の各アーキテクチャ毎のレジスタ積み等)で頑張るのではなくCで書かれたlibcを用いている
つまりRustのunsafe部分を最小限にするとともに、unsafeだが枯れて安全なlibcを活用している
154デフォルトの名無しさん
2024/06/15(土) 15:11:35.25ID:W+2t+gug 勘違いしてんのはここでまともなRustの話ができると思ってるお前だよ
155デフォルトの名無しさん
2024/06/15(土) 15:51:53.03ID:uRWofhsS156デフォルトの名無しさん
2024/06/15(土) 15:54:39.14ID:I+z8iAZu 自分は pure Rust に全然拘っていないし
むしろ unsafe 大好きだが
pure Rust に拘ってる人や
unsafe 絶対無くせって言ってる人も居るのを知ってる
後者は基地外
むしろ unsafe 大好きだが
pure Rust に拘ってる人や
unsafe 絶対無くせって言ってる人も居るのを知ってる
後者は基地外
157デフォルトの名無しさん
2024/06/15(土) 16:13:09.69ID:uRWofhsS use std::io::{self, BufRead, BufReader};
const FULL_BITS: u32 = (1 << 26) - 1;
fn main() {
let mut shortest: Option<String> = None;
for line in BufReader::new(io::stdin()).lines() {
let line = line.unwrap();
let mut bits = 0;
for b in line.as_bytes() {
let index = match b {
b'A'..=b'Z' => b - b'A',
b'a'..=b'z' => b - b'a',
_ => continue,
};
bits |= 1 << index;
}
if bits != FULL_BITS {
continue;
}
if let Some(ref shortest) = shortest {
if shortest.len() < line.len() {
continue;
}
}
shortest = Some(line);
}
if let Some(shortest) = shortest {
println!("{shortest}");
} else {
eprintln!("ERROR: no matched lines");
}
}
const FULL_BITS: u32 = (1 << 26) - 1;
fn main() {
let mut shortest: Option<String> = None;
for line in BufReader::new(io::stdin()).lines() {
let line = line.unwrap();
let mut bits = 0;
for b in line.as_bytes() {
let index = match b {
b'A'..=b'Z' => b - b'A',
b'a'..=b'z' => b - b'a',
_ => continue,
};
bits |= 1 << index;
}
if bits != FULL_BITS {
continue;
}
if let Some(ref shortest) = shortest {
if shortest.len() < line.len() {
continue;
}
}
shortest = Some(line);
}
if let Some(shortest) = shortest {
println!("{shortest}");
} else {
eprintln!("ERROR: no matched lines");
}
}
158デフォルトの名無しさん
2024/06/15(土) 17:55:06.95ID:uRWofhsS ソースコードのコピペで止まるスレ
159デフォルトの名無しさん
2024/06/15(土) 20:29:16.21ID:x7/eMzge ソースコード貼るなんて暴力ですよ!
160デフォルトの名無しさん
2024/06/15(土) 21:06:34.26ID:uRWofhsS161デフォルトの名無しさん
2024/06/15(土) 21:09:34.98ID:jiIbIudV >>156
unsafeは好き嫌いというよりも
最下層のCPUとメモリもしくは境界のFFIで必須な存在とみるべきではないかな
ただしそこだけにunsafeを閉じ込めて一般プログラマーはsafeなインタフェイスのみを使う
unsafeは好き嫌いというよりも
最下層のCPUとメモリもしくは境界のFFIで必須な存在とみるべきではないかな
ただしそこだけにunsafeを閉じ込めて一般プログラマーはsafeなインタフェイスのみを使う
162デフォルトの名無しさん
2024/06/15(土) 21:10:47.55ID:uRWofhsS 一行のコードも書かずに形而上学みたいにプログラミングを学ぶ贅沢はいいね
163デフォルトの名無しさん
2024/06/15(土) 21:54:03.45ID:uRWofhsS Rust「で」作るんじゃなくてRust「を」作る秘密が知りたいんだよね
すべてのソースコードがコンパイル時に手元にあったとして、メモリの使途を解析してしまえるなんて普通は思わないからね
この点を「たまたま思いついた天才がいた」で済ませたくない
すべてのソースコードがコンパイル時に手元にあったとして、メモリの使途を解析してしまえるなんて普通は思わないからね
この点を「たまたま思いついた天才がいた」で済ませたくない
164デフォルトの名無しさん
2024/06/15(土) 22:10:08.33ID:uRWofhsS Copy型とそうでない型。よろしい
Copy型の自動変数みたいにそうでない型もスコープを抜けると解放。それはよろしい
しかしそんなものは遥か実用に遠い
Copy型の自動変数みたいにそうでない型もスコープを抜けると解放。それはよろしい
しかしそんなものは遥か実用に遠い
165デフォルトの名無しさん
2024/06/15(土) 22:29:19.17ID:uRWofhsS いったい何がきっかけでメモリの使途を把握してしまえるかもと思ったか
それが分かるまでごくごくゆっくりとしか勉強しないよ
それが分かるまでごくごくゆっくりとしか勉強しないよ
166デフォルトの名無しさん
2024/06/15(土) 22:33:28.01ID:mfm3bm5o ヒープを一切使わないパラダイムは昔に戻っただけ
スタックの安全性だけを考えてヒープはライブラリに任せる
スタックの安全性だけを考えてヒープはライブラリに任せる
167デフォルトの名無しさん
2024/06/15(土) 22:46:06.16ID:uRWofhsS 全部スタックでやってるって本当の話なの?
168デフォルトの名無しさん
2024/06/15(土) 22:51:02.34ID:uRWofhsS allocaとかとっくにあったよ?
169デフォルトの名無しさん
2024/06/15(土) 23:22:17.89ID:uRWofhsS 逆のものを想像してんだけどな
スタックでなくヒープにあっても同じなのがRustじゃないの?
スタックでなくヒープにあっても同じなのがRustじゃないの?
170デフォルトの名無しさん
2024/06/15(土) 23:47:36.34ID:mfm3bm5o 参照の寿命が尽きても参照元のデストラクタは呼ばれない
だから参照元がヒープにあろうがなかろうが参照の寿命はスタックに基づいて決めてしまえば良い
だから参照元がヒープにあろうがなかろうが参照の寿命はスタックに基づいて決めてしまえば良い
171デフォルトの名無しさん
2024/06/16(日) 00:42:56.54ID:DhqUa2Zy172デフォルトの名無しさん
2024/06/16(日) 00:50:00.04ID:+a7ueRP7 >>169
スタック上への参照とヒープ上への参照をRustでは区別しない
ライフタイムさえ満たしていればどこを指していても区別なく参照を扱う
そのため、従来行われてきた「安全にヒープ上でに領域を確保してヒープ上への参照を返す」をしなくても
ライフタイムさえ満たしていればスタック上への参照を安全に渡したり返したり自由にできるようになった
そのため、従来はヒープ上に確保していていたケースがRustではスタック上に置くことができるようになり、その点でも高速化に寄与している
スタック上への参照とヒープ上への参照をRustでは区別しない
ライフタイムさえ満たしていればどこを指していても区別なく参照を扱う
そのため、従来行われてきた「安全にヒープ上でに領域を確保してヒープ上への参照を返す」をしなくても
ライフタイムさえ満たしていればスタック上への参照を安全に渡したり返したり自由にできるようになった
そのため、従来はヒープ上に確保していていたケースがRustではスタック上に置くことができるようになり、その点でも高速化に寄与している
173デフォルトの名無しさん
2024/06/16(日) 01:00:26.12ID:d8h4GcS0 複オジのレスはいつも通り8割は嘘だな
174デフォルトの名無しさん
2024/06/16(日) 01:15:13.88ID:dwkxcYMW >>172
別にC言語だってallocaの返したポインタとmallocの返したポインタを区別しないけど
別にC言語だってallocaの返したポインタとmallocの返したポインタを区別しないけど
175デフォルトの名無しさん
2024/06/16(日) 01:25:03.80ID:J8bJz9x+ 誰が解放するか責任もなく解放忘れや多重解放を生むC言語は論外だろ
解放されたスタックフレームやヒープエリアを指し続けているポインタが残ったりな
解放されたスタックフレームやヒープエリアを指し続けているポインタが残ったりな
176デフォルトの名無しさん
2024/06/16(日) 01:32:46.10ID:dwkxcYMW C言語と違って区別しないわけじゃないし、C言語と違って高速ってわけでもない
177デフォルトの名無しさん
2024/06/16(日) 01:39:48.74ID:dwkxcYMW C言語同様に区別しないし、C言語同様に高速なんでしょう
178デフォルトの名無しさん
2024/06/16(日) 01:45:22.24ID:sswa3N72 そろそろ自己隔離しとけザコども
結局C++とRustってどっちが良いの? 9traits
ttps://mevius.5ch.net/test/read.cgi/tech/1701997063/
結局C++とRustってどっちが良いの? 9traits
ttps://mevius.5ch.net/test/read.cgi/tech/1701997063/
179デフォルトの名無しさん
2024/06/16(日) 03:32:45.56ID:dwkxcYMW へえ、コピーじゃなくて移動をデフォにしちゃうのか
180デフォルトの名無しさん
2024/06/16(日) 04:03:11.69ID:WxpyLfm8 >>174
mallocで得たポインタとallocaで得たポインタは明確に区別しなければならない
mallocで得たポインタのみfreeの対象としなければならない
この区別はCプログラマーの責務でありミスると破綻する
mallocで得たポインタとallocaで得たポインタは明確に区別しなければならない
mallocで得たポインタのみfreeの対象としなければならない
この区別はCプログラマーの責務でありミスると破綻する
181デフォルトの名無しさん
2024/06/16(日) 04:10:20.19ID:dwkxcYMW182デフォルトの名無しさん
2024/06/16(日) 04:28:58.35ID:QdGU/f8s Rustはヒープで確保したメモリ領域も完全自動で安全にメモリ解放されるからプログラマーの負担がなくていいよね
ヒープへの参照とスタックへの参照に区別がないだけでなく
それらをたとえ混ぜて関数間で渡したり返したりたらい回しにしても安全で
もし安全でない使い方をした時はライフタイムが切れてコンパイルエラーになるから自由と安全が両立されてるね
ヒープへの参照とスタックへの参照に区別がないだけでなく
それらをたとえ混ぜて関数間で渡したり返したりたらい回しにしても安全で
もし安全でない使い方をした時はライフタイムが切れてコンパイルエラーになるから自由と安全が両立されてるね
184デフォルトの名無しさん
2024/06/16(日) 04:43:29.58ID:dwkxcYMW メモリはコピーじゃなくて(所有権の)移動がデフォ
所有者がスコープを抜けるとメモリは解放
所有者に別の値が代入された際もメモリは解放
代入元は所有権が移ると未初期化の扱いになる
これだけでもかなり面白いね
所有者がスコープを抜けるとメモリは解放
所有者に別の値が代入された際もメモリは解放
代入元は所有権が移ると未初期化の扱いになる
これだけでもかなり面白いね
185デフォルトの名無しさん
2024/06/16(日) 04:50:45.28ID:/uiI2ckT >>183
C/C++/Rustすべて関数が呼び出し元に戻るときにスタックフレームは自動解放されます
もしその破棄されたスタックフレーム上を指すポインタ(参照)がどこかに残っていた場合、
C/C++ではそのポインタ使用でそこをアクセスしてしまい気づかないバグや穴となるでしょう
Rustではコンパイル時点でライフタイムエラーとなるため問題が起きないです
C/C++/Rustすべて関数が呼び出し元に戻るときにスタックフレームは自動解放されます
もしその破棄されたスタックフレーム上を指すポインタ(参照)がどこかに残っていた場合、
C/C++ではそのポインタ使用でそこをアクセスしてしまい気づかないバグや穴となるでしょう
Rustではコンパイル時点でライフタイムエラーとなるため問題が起きないです
186デフォルトの名無しさん
2024/06/16(日) 05:46:32.57ID:Jxkkspwa 正体不明のボイス・トォ・スカル
マイクロ波聴覚効果の機能より
神の声兵器は機器の場所が割れているので
ハッキング下と奪取後に器機を複製できた音を宣言していた
電磁波音波なのでむやみに器機に仕掛けると誰かが攻撃しているとすぐに設置したものは察知するが
その監視網をかいくぐるということは一発で危機をジャックしたことになる
そして機器の性能は年々よくなるので自分に行って見分けがつかないくらいになると器機使用者が幻覚を見ていると錯覚し始める
マイクロ波聴覚効果の機能より
神の声兵器は機器の場所が割れているので
ハッキング下と奪取後に器機を複製できた音を宣言していた
電磁波音波なのでむやみに器機に仕掛けると誰かが攻撃しているとすぐに設置したものは察知するが
その監視網をかいくぐるということは一発で危機をジャックしたことになる
そして機器の性能は年々よくなるので自分に行って見分けがつかないくらいになると器機使用者が幻覚を見ていると錯覚し始める
187デフォルトの名無しさん
2024/06/16(日) 06:03:13.93ID:dwkxcYMW メモリはそれ自体は無論のこと、それを指すポインタもひとつしかないわけだ
188デフォルトの名無しさん
2024/06/16(日) 07:56:02.10ID:dwkxcYMW この発想は正直なかったわ
ひとつのメモリをあちこちから参照すればするほど高効率みたいな思い込みがあるからね
ひとつのメモリをあちこちから参照すればするほど高効率みたいな思い込みがあるからね
189デフォルトの名無しさん
2024/06/16(日) 10:08:57.93ID:R4/urzCg190デフォルトの名無しさん
2024/06/16(日) 10:11:02.64ID:R4/urzCg >>169-171
CにBoxを導入すれば解決
CにBoxを導入すれば解決
191デフォルトの名無しさん
2024/06/16(日) 10:13:30.02ID:R4/urzCg >>173
ほんそれ
ほんそれ
192デフォルトの名無しさん
2024/06/16(日) 10:32:48.33ID:dwkxcYMW で、配列の要素だったり構造体のメンバだったりは「移動済み」にできない?
193デフォルトの名無しさん
2024/06/16(日) 10:36:59.18ID:dwkxcYMW とにかく&をつければアドレスを借用できて、その生存規則違反はコンパイラがはじく、と
194デフォルトの名無しさん
2024/06/16(日) 10:41:20.79ID:irw16nD2 新参に教えといてあげると
172, 175, 180, 182あたりはすべて複製おじさん(通称 複オジ)という同一人物だよ
知ったかぶりで出鱈目ばかり書いて全く反省しないという
悪い意味で有名な人ので騙されないように注意してね
172, 175, 180, 182あたりはすべて複製おじさん(通称 複オジ)という同一人物だよ
知ったかぶりで出鱈目ばかり書いて全く反省しないという
悪い意味で有名な人ので騙されないように注意してね
195デフォルトの名無しさん
2024/06/16(日) 10:51:27.98ID:DhqUa2Zy 1日10行推敲するより1日1万行書いた方が数値化に貢献しやすいからしょうがない
196デフォルトの名無しさん
2024/06/16(日) 11:21:38.24ID:dwkxcYMW ボローチェッカーは作るのも使うのも難しそう
よくこんなこと可能だと思ったもんだ
よくこんなこと可能だと思ったもんだ
197デフォルトの名無しさん
2024/06/16(日) 11:48:19.48ID:dwkxcYMW Rustの中ではつまらないというか泥臭い部分だね
198デフォルトの名無しさん
2024/06/16(日) 12:06:57.33ID:0Wwb3VFz >>196
ライフタイムについてまじめに知りたいなら(ある程度Rustには慣れた前提として)NLLのRFCを読むのをおすすめしたい
ttps://rust-lang.github.io/rfcs/2094-nll.html
そろそろこれよりいい資料は出ないもんかね……というかReferenceに明記してもらえんかね
なんか1.79でも地味にルールが拡張されたようだし
ライフタイムについてまじめに知りたいなら(ある程度Rustには慣れた前提として)NLLのRFCを読むのをおすすめしたい
ttps://rust-lang.github.io/rfcs/2094-nll.html
そろそろこれよりいい資料は出ないもんかね……というかReferenceに明記してもらえんかね
なんか1.79でも地味にルールが拡張されたようだし
199デフォルトの名無しさん
2024/06/16(日) 12:23:11.10ID:dwkxcYMW ええっと、メモリの所有者が
・スコープを抜けること
・別の値が代入されること
・別の変数に所有権を移動させること
はもともと検出できる前提なのだよね
ボローチェッカーと言ってもその3つの組み合わせに毛が生えた程度なのかどうか
・スコープを抜けること
・別の値が代入されること
・別の変数に所有権を移動させること
はもともと検出できる前提なのだよね
ボローチェッカーと言ってもその3つの組み合わせに毛が生えた程度なのかどうか
200デフォルトの名無しさん
2024/06/16(日) 12:27:02.82ID:EH7/X6SF >>198
全ての言語仕様を「仕様書」としてまとめる提案は出ているんだけど何年も動きがないんだよね……
全ての言語仕様を「仕様書」としてまとめる提案は出ているんだけど何年も動きがないんだよね……
201デフォルトの名無しさん
2024/06/16(日) 12:30:31.60ID:M/AsARsj >>174
allocaで得たポインタfreeしてそうなコメントだな
allocaで得たポインタfreeしてそうなコメントだな
202デフォルトの名無しさん
2024/06/16(日) 12:32:49.98ID:EH7/X6SF >>199
メモリとかアドレスとか言ってる時点で正確な理解から遠いと思う。
変数はメモリではないし、参照はアドレスではない。
処理系の実装としてはそのように対応するという想定はあるだろうけど機械語レベルの事情と言語のルールはレイヤが違う。
メモリとかアドレスとか言ってる時点で正確な理解から遠いと思う。
変数はメモリではないし、参照はアドレスではない。
処理系の実装としてはそのように対応するという想定はあるだろうけど機械語レベルの事情と言語のルールはレイヤが違う。
203デフォルトの名無しさん
2024/06/16(日) 12:33:46.16ID:dwkxcYMW >>201
機械語知ってるからそんな心配はない
機械語知ってるからそんな心配はない
204デフォルトの名無しさん
2024/06/16(日) 12:36:26.13ID:dwkxcYMW >>202
そうだね。Rustは高級アセンブラってわけではまったくないね。勘違いしてた
そうだね。Rustは高級アセンブラってわけではまったくないね。勘違いしてた
205デフォルトの名無しさん
2024/06/16(日) 12:42:20.38ID:dwkxcYMW 代入だったり関数呼び出しの引数だったりはコピーじゃなくて移動がキホンって時点で機械語ともC言語とも違う
206デフォルトの名無しさん
2024/06/16(日) 12:51:16.07ID:G6A3UH2o207デフォルトの名無しさん
2024/06/16(日) 13:26:09.91ID:Crm/SwBu あえて機械語レベルでも考えるとするなら概念的には移動でも (最適化を別にすれば) ビットパターンはコピーしている。
所有権を失った変数にはアクセスできないように静的に制限されるから所有権が移動したように見える。
借用は (借用が存在している間は) 移動を許さない権利として捉えることができる。
所有権を失った変数にはアクセスできないように静的に制限されるから所有権が移動したように見える。
借用は (借用が存在している間は) 移動を許さない権利として捉えることができる。
208デフォルトの名無しさん
2024/06/16(日) 13:35:38.29ID:wnp+0tyF >>200
現状だとここを見ておくのがいいかも
https://public-docs.ferrocene.dev/main/specification/index.html
ISO 26262の認定通すために書かれたものだからかなりちゃんとしている
現状だとここを見ておくのがいいかも
https://public-docs.ferrocene.dev/main/specification/index.html
ISO 26262の認定通すために書かれたものだからかなりちゃんとしている
209デフォルトの名無しさん
2024/06/16(日) 15:11:48.05ID:xaMJYqDm210デフォルトの名無しさん
2024/06/16(日) 15:51:37.66ID:Crm/SwBu >>209
C++ だって三年ごとに更新する制度になってるし、その間の議論でも仕様の文面をどう変えるかという形式をとる。
頻繁に変えるつもりがあるならなおさら今どうなってるのかの全体像を把握できる仕組みがないと困る。
C++ だって三年ごとに更新する制度になってるし、その間の議論でも仕様の文面をどう変えるかという形式をとる。
頻繁に変えるつもりがあるならなおさら今どうなってるのかの全体像を把握できる仕組みがないと困る。
211デフォルトの名無しさん
2024/06/16(日) 15:52:59.06ID:sKPbV2Nu RubyもISOになったことあるし
212デフォルトの名無しさん
2024/06/16(日) 15:57:39.35ID:sswa3N72 15.4:16 ??? (this should describe the order of borrowing and when the borrow is returned)
わろた
わろた
213デフォルトの名無しさん
2024/06/16(日) 16:23:56.88ID:dwkxcYMW NLLというくらいだからもともとLL
214デフォルトの名無しさん
2024/06/16(日) 16:49:41.43ID:dwkxcYMW まあ一応(ボローチェッカーというものが)可能そう
215デフォルトの名無しさん
2024/06/16(日) 17:20:46.77ID:dwkxcYMW コンパイラはプログラム中の全ての参照型に対してライフタイムを割り当てる、と
216デフォルトの名無しさん
2024/06/16(日) 17:45:29.17ID:WRdAUcGE 言語にISO標準を求めるのって相当なお爺ちゃんでしょ
もうそういう時代じゃないですよ
もうそういう時代じゃないですよ
217デフォルトの名無しさん
2024/06/16(日) 17:52:05.41ID:fzWVLbYH >>215
所有者がどのスタックフレーム(の中のどのブロックスコープ)にいるかだけの話だよな
そこより先なら参照は生きて
そこより元なら参照も死ぬ
もちろんそんな神の絶対的な視点を実行前のコンパイル時点で静的に持つことはできない
しかし各関数内での出入り(引数がinで返り値がout)は静的にわかるから
相対的な視点で有効か無効かわかることになると
所有者がどのスタックフレーム(の中のどのブロックスコープ)にいるかだけの話だよな
そこより先なら参照は生きて
そこより元なら参照も死ぬ
もちろんそんな神の絶対的な視点を実行前のコンパイル時点で静的に持つことはできない
しかし各関数内での出入り(引数がinで返り値がout)は静的にわかるから
相対的な視点で有効か無効かわかることになると
218デフォルトの名無しさん
2024/06/16(日) 17:55:19.72ID:Crm/SwBu219デフォルトの名無しさん
2024/06/16(日) 18:05:26.18ID:0Wwb3VFz 複製おじさんと遊ぼうスレ
220デフォルトの名無しさん
2024/06/16(日) 18:43:24.33ID:hxwMVp5d■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 日本行き空路49万件キャンセル 中国自粛呼びかけ 日本行きチケット予約の約32%に相当 ★4 [ぐれ★]
- 【音楽】Perfume・あ~ちゃんの結婚相手「一般男性」は吉田カバンの社長・吉田幸裕氏(41) 高身長で山本耕史似 [Ailuropoda melanoleuca★]
- 【大分】佐賀関で大規模火災、170棟以上が延焼中 70代男性1人と連絡取れず [ぐれ★]
- 【サッカー】U-17日本代表、激闘PK戦制す 北朝鮮撃破で6大会ぶり8強入り U17W杯 [久太郎★]
- 【インバウンド】中国人観光客の日本での消費額は年間約2兆円超…中国政府は公務員の出張取り消し [1ゲットロボ★]
- 【サッカー】日本代表、ボリビアに3発快勝 森保監督通算100試合目を飾る…鎌田、町野、中村がゴール [久太郎★]
- アンケート調査で「高市発言は問題なし」 93.5%wwwwwwwwwwwwwwwwwwwwwwwww [279254606]
- 寝癖ってどうしたらつかなくなるんや?
- 自閉症が「んなっしょい」と連呼するお🏡
- 【画像】エロい一般漫画はなぜこんなに抜けるのか
- BTSのバラエティ面白すぎワロタ
- 自民党議員「高市は先人が築き上げた日中関係を壊した。外務省が謝罪に言ってるが自分で責任を取れ」 [834922174]
