「C++の色々配慮してめんどくさい感じは好きだけど、実務になったらメモリ安全性とか考えて今後Rustに変わっていくんかな」
「うだうだ言ってないで仕事で必要なのをやればいいんだよ、趣味なら好きなのやればいい」
っていう雑談スレ。
前スレ: 結局C++とRustってどっちが良いの? 2traits
https://mevius.5ch.net/test/read.cgi/tech/1680363777/
関連スレ(マ板): Google&MS「バグの70%はC/C++。Rustにする」
https://medaka.5ch.net/test/read.cgi/prog/1619943288/
探検
結局C++とRustってどっちが良いの? 3traits
■ このスレッドは過去ログ倉庫に格納されています
2023/05/04(木) 07:49:56.33ID:z+qB+AKQ
289デフォルトの名無しさん
2023/05/09(火) 14:18:30.40ID:qRADqwfY >>288
残念ながら一般的な場合にはその解析が不可能
そのためC言語はrestrictキーワードの指定の有無がそのまま最適化の有無に繋がる
このnoaliasによる最適化はベクトル化にも繋がるため実効果も大きい
Rustの可変参照は常にnoaliasとなりLLVMへその情報が伝わるため有利
残念ながら一般的な場合にはその解析が不可能
そのためC言語はrestrictキーワードの指定の有無がそのまま最適化の有無に繋がる
このnoaliasによる最適化はベクトル化にも繋がるため実効果も大きい
Rustの可変参照は常にnoaliasとなりLLVMへその情報が伝わるため有利
290デフォルトの名無しさん
2023/05/09(火) 14:27:49.18ID:TWnpopnf291デフォルトの名無しさん
2023/05/09(火) 14:49:54.81ID:qRADqwfY >>290
もちろんLLVMが解析で見つけ出すケースもゼロではないだろう
実際にはC言語でrestrict指定のコードを書くか否かで最適化の有無となっている現実が多々ある
つまり各言語はnoalias情報をLLVMへ渡したほうが確実に有利だ
C++は言語仕様にないが各コンパイラの独自拡張を使えば指定可能
もちろん無闇に指定してよいわけではなく確実にnoaliasと判断できる場合でないと動作不良を引き起こす
Rustは言語仕様によりデータ競合を起こさないよう可変参照が排他的になるため確実にnoaliasがLLVMに渡る
もちろんLLVMが解析で見つけ出すケースもゼロではないだろう
実際にはC言語でrestrict指定のコードを書くか否かで最適化の有無となっている現実が多々ある
つまり各言語はnoalias情報をLLVMへ渡したほうが確実に有利だ
C++は言語仕様にないが各コンパイラの独自拡張を使えば指定可能
もちろん無闇に指定してよいわけではなく確実にnoaliasと判断できる場合でないと動作不良を引き起こす
Rustは言語仕様によりデータ競合を起こさないよう可変参照が排他的になるため確実にnoaliasがLLVMに渡る
292デフォルトの名無しさん
2023/05/09(火) 15:08:56.17ID:oJhOeTc4 https://stackoverflow.com/questions/57259126/why-does-the-rust-compiler-not-optimize-code-assuming-that-two-mutable-reference
だいたいそんな感じなんだけど実際にはバグったせいで付けたり外したりしてしてます
だいたいそんな感じなんだけど実際にはバグったせいで付けたり外したりしてしてます
293デフォルトの名無しさん
2023/05/09(火) 15:10:24.05ID:TWnpopnf294デフォルトの名無しさん
2023/05/09(火) 15:21:42.16ID:GHMOM/oZ >>292
バグが見つかったのはLLVM側ね
Rustが常にnoaliasをLLVMへ指定してくるようになって
適用事例が増えてLLVMのバグが発覚できた感じ
そしてLLVM側がバグ改修中にRust側は一時的にnoaliasの指定をオフした話だね
バグが見つかったのはLLVM側ね
Rustが常にnoaliasをLLVMへ指定してくるようになって
適用事例が増えてLLVMのバグが発覚できた感じ
そしてLLVM側がバグ改修中にRust側は一時的にnoaliasの指定をオフした話だね
295デフォルトの名無しさん
2023/05/09(火) 16:23:47.59ID:oJhOeTc4 重要なのは犯人捜しではなく
「可変参照は常にnoaliasとなり」は嘘だということです
「可変参照は常にnoaliasとなり」は嘘だということです
296デフォルトの名無しさん
2023/05/09(火) 16:57:31.86ID:qRADqwfY >>293
Cではプログラマーがrestrict指定した箇所だけコンパイラがLLVMへnoalias指定する
C++ではプログラマーがコンパイラ独自拡張__restrict指定した箇所だけLLVMへnoalias指定される
言語仕様によりC/C++コンパイラがnoaliasを自動付与することはできない
C/C++プログラマーが安全に適用できると判断した時だけ自己責任でrestrict指定することになる
Rustは言語仕様により常に安全に自動的にコンパイラがLLVMへnoalias指定する
そのためRustプログラマーは何もしなくてもnoaliasによる最適化の恩恵を受けることができる
これが根本的な違い
Cではプログラマーがrestrict指定した箇所だけコンパイラがLLVMへnoalias指定する
C++ではプログラマーがコンパイラ独自拡張__restrict指定した箇所だけLLVMへnoalias指定される
言語仕様によりC/C++コンパイラがnoaliasを自動付与することはできない
C/C++プログラマーが安全に適用できると判断した時だけ自己責任でrestrict指定することになる
Rustは言語仕様により常に安全に自動的にコンパイラがLLVMへnoalias指定する
そのためRustプログラマーは何もしなくてもnoaliasによる最適化の恩恵を受けることができる
これが根本的な違い
297デフォルトの名無しさん
2023/05/09(火) 17:04:50.38ID:9RO9lVT1 コンパイラに撃墜されてるRustプログラマもいるから「何もしなくても」は言い過ぎだな
298デフォルトの名無しさん
2023/05/09(火) 17:08:17.41ID:qRADqwfY >>295
現在はLLVMがバグ対応したため常にnoalias指定となる
もちろん意図的にバグ未対応の古いバージョンのLLVMを指定したときを除く
その場合にRustコンパイラはnoaliasを指定しないという安全な動作をする
現在はLLVMがバグ対応したため常にnoalias指定となる
もちろん意図的にバグ未対応の古いバージョンのLLVMを指定したときを除く
その場合にRustコンパイラはnoaliasを指定しないという安全な動作をする
299デフォルトの名無しさん
2023/05/09(火) 17:09:31.38ID:oJhOeTc4 そんでいったい何nsec早くなるんですか?ってな
些細すぎる点です
些細すぎる点です
300デフォルトの名無しさん
2023/05/09(火) 17:30:52.58ID:JrSVS9vw Rustならテキトー書いても速くなる…はさすがに夢見すぎだろう (やってないので)しらんけど
301デフォルトの名無しさん
2023/05/09(火) 17:33:18.67ID:d0WXtuj5 おそらくだけど最適化が利いたとしてもベンチとかでは0.01%も速度は速くならないと思うけどな
302デフォルトの名無しさん
2023/05/09(火) 17:35:11.58ID:d0WXtuj5 普通にコードを書く限り一般的な速度は
c<c++<rust何だろ
でもそんなのにこだわって言語選ぶ意味はないよ
c<c++<rust何だろ
でもそんなのにこだわって言語選ぶ意味はないよ
303デフォルトの名無しさん
2023/05/09(火) 17:49:39.63ID:d0WXtuj5 速度じゃないわな
実行時間だ
速度だと
c > c++ > rust
実行時間だ
速度だと
c > c++ > rust
304デフォルトの名無しさん
2023/05/09(火) 21:13:21.70ID:jpsGavbj >>300
Rustは適当に書いたらコンパイル通らない。
Rustは適当に書いたらコンパイル通らない。
305デフォルトの名無しさん
2023/05/09(火) 21:36:53.43ID:Pc0KyjBY いうて、C++でinline、constexprやらテンプレートメタとかで実行時の処理効率を上げまくったらRustじゃ敵わないと思うんだけど、、
Rustでも似たようなこと出来るんだっけ?
Rustでも似たようなこと出来るんだっけ?
306デフォルトの名無しさん
2023/05/09(火) 21:55:51.60ID:m/PdBmgz >>305
できるよw
できるよw
307デフォルトの名無しさん
2023/05/09(火) 22:07:22.50ID:GHMOM/oZ >>305
Rustもできるよ
そもそもRustのconstはコンパイル時定数でC++のconstexprのこと
Rustの手続きマクロはRustコードの構文解析を入出力としてコンパイル時に実行生成するためC++より強力だね
Rustもできるよ
そもそもRustのconstはコンパイル時定数でC++のconstexprのこと
Rustの手続きマクロはRustコードの構文解析を入出力としてコンパイル時に実行生成するためC++より強力だね
308デフォルトの名無しさん
2023/05/09(火) 22:10:15.60ID:Pc0KyjBY なるほどね
俺の全力のC++コードじゃRustには敵わないようだ
俺の全力のC++コードじゃRustには敵わないようだ
309デフォルトの名無しさん
2023/05/09(火) 23:53:36.96ID:qRADqwfY310デフォルトの名無しさん
2023/05/10(水) 07:24:49.96ID:gVulLBUf テキトーに書いてもコンパイルが通る言語に憧れるなあ
311デフォルトの名無しさん
2023/05/10(水) 08:38:28.50ID:uLiToFDO 体感ではこうかな
c > rust > c++
c > rust > c++
312デフォルトの名無しさん
2023/05/10(水) 08:59:49.54ID:yd4Msfz1 複雑なことを好き勝手に書けるのがC++だったけど、簡潔に書くことも求められるようになりそうだねえ
当初は複雑だったけど、やることが大体固まったものをrewriteするなら、
いまなら確かにrustがアツい 成果も目に見えると思う たぶんCでは力不足だしね
当初は複雑だったけど、やることが大体固まったものをrewriteするなら、
いまなら確かにrustがアツい 成果も目に見えると思う たぶんCでは力不足だしね
313デフォルトの名無しさん
2023/05/10(水) 10:30:02.81ID:gGgNP0IP >>308
全力のrustコードを書けばいい
全力のrustコードを書けばいい
314デフォルトの名無しさん
2023/05/10(水) 12:47:47.75ID:of34847N C++相談室part161、ワッチョイ導入直前のスレ
https://mevius.5ch.net/test/read.cgi/tech/1653135809/343-381
https://mevius.5ch.net/test/read.cgi/tech/1653135809/481-650
C++相談室part162、ワッチョイ導入直後
https://mevius.5ch.net/test/read.cgi/tech/1667194175/
"Rust" の検索結果: 1件
は〜
https://mevius.5ch.net/test/read.cgi/tech/1653135809/343-381
https://mevius.5ch.net/test/read.cgi/tech/1653135809/481-650
C++相談室part162、ワッチョイ導入直後
https://mevius.5ch.net/test/read.cgi/tech/1667194175/
"Rust" の検索結果: 1件
は〜
315デフォルトの名無しさん
2023/05/10(水) 12:48:26.46ID:usV3D88W lintだけでもいいから、smart c++とか名前を付けてRustもどきの強制フォーマットを作って欲しいわ。
Rustそのものは要らん。
Rustそのものは要らん。
316デフォルトの名無しさん
2023/05/10(水) 12:49:05.61ID:of34847N Rust本スレもワッチョイ無しのほうやめちまえばいいのにな
C++相談室はすんなり移行できてて羨ましい
C++相談室はすんなり移行できてて羨ましい
317デフォルトの名無しさん
2023/05/10(水) 13:11:50.30ID:dsu8fQGS318デフォルトの名無しさん
2023/05/10(水) 13:15:44.86ID:uLiToFDO crates.io にうpして docs.rs の comment cover が
中々 100% に到達しないんだが
どこの comment が足りないって簡単に教えてくれるツールは?
local で docker 使えば判るもんなの?
あと「未 comment」数を減らした(=100%に近付けた)はずなのに
逆に%下がるケースもあるみたいで良く判らん
中々 100% に到達しないんだが
どこの comment が足りないって簡単に教えてくれるツールは?
local で docker 使えば判るもんなの?
あと「未 comment」数を減らした(=100%に近付けた)はずなのに
逆に%下がるケースもあるみたいで良く判らん
319デフォルトの名無しさん
2023/05/10(水) 14:03:23.86ID:jzBK8DOC lintにmissing_docs
https://doc.rust-lang.org/rustdoc/lints.html#missing_docs
があるけどデフォルトでallowになってるらしい
lib.rs(main.rs)に
#![warn(missing_docs)]
を足すかコマンドで↓を実行
cargo rustc -- -W missing-docs
https://doc.rust-lang.org/rustdoc/lints.html#missing_docs
があるけどデフォルトでallowになってるらしい
lib.rs(main.rs)に
#![warn(missing_docs)]
を足すかコマンドで↓を実行
cargo rustc -- -W missing-docs
320デフォルトの名無しさん
2023/05/10(水) 14:21:07.26ID:HatbRJDw >>316
注意喚起テンプレとこの隔離スレが効いてるから本スレも平和
注意喚起テンプレとこの隔離スレが効いてるから本スレも平和
321デフォルトの名無しさん
2023/05/10(水) 16:48:54.33ID:uLiToFDO322デフォルトの名無しさん
2023/05/10(水) 17:11:01.06ID:uLiToFDO323デフォルトの名無しさん
2023/05/10(水) 17:13:13.74ID:dsu8fQGS324デフォルトの名無しさん
2023/05/11(木) 03:47:03.48ID:1mbxr1bo C++だとdoxygenなど使うところが
Rustだと公式サポートされて色々と進んでいるのね
Rustだと公式サポートされて色々と進んでいるのね
325デフォルトの名無しさん
2023/05/11(木) 08:01:31.45ID:UvaUTinw https://twitter.com/markrussinovich/status/1656416376125538304
If you're on the Win11 Insider ring, you're getting the first taste of Rust in the Windows kernel!
https://pbs.twimg.com/media/FvzF4ZraQAUumaq.png
https://twitter.com/5chan_nel (5ch newer account)
If you're on the Win11 Insider ring, you're getting the first taste of Rust in the Windows kernel!
https://pbs.twimg.com/media/FvzF4ZraQAUumaq.png
https://twitter.com/5chan_nel (5ch newer account)
326デフォルトの名無しさん
2023/05/11(木) 11:43:59.84ID:Ue/TF0sJ win32kbase_rs.sys
win32kfull_rs.sys
って何?
ついでに名前が似た以下のファイルも
win32kbase.sys
win32kfull.sys
win32kfull_rs.sys
って何?
ついでに名前が似た以下のファイルも
win32kbase.sys
win32kfull.sys
327デフォルトの名無しさん
2023/05/11(木) 12:35:35.38ID:hMF5bhvG ttps://japan.zdnet.com/article/35198420/
328デフォルトの名無しさん
2023/05/11(木) 12:57:22.38ID:h0Ssdxno >>327
C++は何故か年々人気が上がってるね
C++は何故か年々人気が上がってるね
329デフォルトの名無しさん
2023/05/11(木) 13:16:26.32ID:a3sWIGIB C++0xの暗黒時代を知らない世代が増えたんだろう
330デフォルトの名無しさん
2023/05/11(木) 14:21:03.16ID:kyUN9mFL331デフォルトの名無しさん
2023/05/11(木) 14:44:20.03ID:Ue/TF0sJ いらね
332デフォルトの名無しさん
2023/05/11(木) 15:04:29.85ID:OsVl9AaP デザパタ流行した時ほにゃららパターンのほとんどが理解できなかったけどそのうち理解しなくても何の問題もない事が判った
うんこうんこうんこー
うんこうんこうんこー
333デフォルトの名無しさん
2023/05/11(木) 15:26:04.23ID:IKYAIOBH334デフォルトの名無しさん
2023/05/11(木) 16:10:38.63ID:o+lB6Dgi 近年の C + 人気は上の画像でも見ただろ
競技プログラミングだよ
競技プログラミングだよ
335デフォルトの名無しさん
2023/05/11(木) 16:14:51.13ID:a3sWIGIB GoFのパターンはiteratorとかadapterも含めてるから多分無意識で使ってるよ
昔のforループはi++で回すのが普通だったし
JavaにIterator(foreach構文)が追加されたのが1.5くらいのはず
昔のforループはi++で回すのが普通だったし
JavaにIterator(foreach構文)が追加されたのが1.5くらいのはず
336デフォルトの名無しさん
2023/05/11(木) 18:30:22.74ID:mNkrg+hY 懐かしの 何とかの呼吸 ○の型 ほにゃらら!が沢山あるけど
使わないときは使わないと言うだけです
使わないときは使わないと言うだけです
337デフォルトの名無しさん
2023/05/11(木) 18:41:36.44ID:mNkrg+hY Rustの呼吸 一の型 mut代入!
Rustの呼吸 二の型 シャドーイング!
Rustの呼吸 二の型 シャドーイング!
338デフォルトの名無しさん
2023/05/11(木) 18:56:15.63ID:gsH464oC それ現行コンテンツちゃうの? (初クール初回から録画だけして観てない
339デフォルトの名無しさん
2023/05/11(木) 19:34:36.36ID:KOkRWEaK C++コアガイドラインに従い、IDE組み込みのチェッカーを使う
これが一般的なスタイル
これだけであなたの悩みはすべて解決する
これが一般的なスタイル
これだけであなたの悩みはすべて解決する
340デフォルトの名無しさん
2023/05/11(木) 19:37:24.28ID:KOkRWEaK CCG!CCG!
341デフォルトの名無しさん
2023/05/12(金) 14:15:57.41ID:qPE7RwmZ 終戦のお知らせ
Rust言語で開発されたカーネルがプレビュー版「Windows 11」に - やじうまの杜 - 窓の杜
https://forest.watch.impress.co.jp/docs/serial/yajiuma/1500062.html
Rust言語で開発されたカーネルがプレビュー版「Windows 11」に - やじうまの杜 - 窓の杜
https://forest.watch.impress.co.jp/docs/serial/yajiuma/1500062.html
342デフォルトの名無しさん
2023/05/12(金) 14:19:03.50ID:jNwvrlvi 解散
343デフォルトの名無しさん
2023/05/12(金) 14:25:26.74ID:uf2dKGIg カーネルのどのへんで使われてるんだろう
Linuxみたいに周辺部分からかな
Linuxみたいに周辺部分からかな
344デフォルトの名無しさん
2023/05/12(金) 14:32:56.45ID:yiIZVwAo >>341
Rustの成果をC/C++に還流させるフェーズ どんどんやってくれ
Rustの成果をC/C++に還流させるフェーズ どんどんやってくれ
345デフォルトの名無しさん
2023/05/12(金) 14:44:13.86ID:GoY4o9UG Microsoft Azure security evolution: Embrace secure multitenancy, Confidential Compute, and Rust
https://azure.microsoft.com/en-us/blog/microsoft-azure-security-evolution-embrace-secure-multitenancy-confidential-compute-and-rust/
Rust as the path forward over C/C++
Decades of vulnerabilities have proven how difficult it is to prevent memory-corrupting bugs when using C/C++. While garbage-collected languages like C# or Java have proven more resilient to these issues, there are scenarios where they cannot be used. For such cases, we’re betting on Rust as the alternative to C/C++. Rust is a modern language designed to compete with the performance C/C++, but with memory safety and thread safety guarantees built into the language. While we are not able to rewrite everything in Rust overnight, we’ve already adopted Rust in some of the most critical components of Azure’s infrastructure. We expect our adoption of Rust to expand substantially over time.
https://azure.microsoft.com/en-us/blog/microsoft-azure-security-evolution-embrace-secure-multitenancy-confidential-compute-and-rust/
Rust as the path forward over C/C++
Decades of vulnerabilities have proven how difficult it is to prevent memory-corrupting bugs when using C/C++. While garbage-collected languages like C# or Java have proven more resilient to these issues, there are scenarios where they cannot be used. For such cases, we’re betting on Rust as the alternative to C/C++. Rust is a modern language designed to compete with the performance C/C++, but with memory safety and thread safety guarantees built into the language. While we are not able to rewrite everything in Rust overnight, we’ve already adopted Rust in some of the most critical components of Azure’s infrastructure. We expect our adoption of Rust to expand substantially over time.
346デフォルトの名無しさん
2023/05/12(金) 14:45:57.07ID:QUxSeMfx マイクロソフト、Rust言語による開発を含む初めてのWindowsカーネルをInsiderプログラム参加者向けに提供開始
https://www.publickey1.jp/blog/23/_rustwindowsinsider.html
デバドラからか
https://www.publickey1.jp/blog/23/_rustwindowsinsider.html
デバドラからか
347デフォルトの名無しさん
2023/05/12(金) 15:41:33.52ID:66ak38wv348デフォルトの名無しさん
2023/05/12(金) 16:02:52.10ID:TaYVXf5t むかしもこんな感じでJ++に騙されたんだよ
349デフォルトの名無しさん
2023/05/12(金) 16:05:02.84ID:vtQb4m8q コンパイラは何使っているんだろうね?
MSがllvmなんかつかうのかな?
MSがllvmなんかつかうのかな?
350デフォルトの名無しさん
2023/05/12(金) 16:11:29.41ID:GsK+e8JY Visual Rust++登場も近いな
351デフォルトの名無しさん
2023/05/12(金) 16:19:18.80ID:MfrxynDP 新しいGC言語がどれだけ出て来ても
C++の天下は揺らがない
もしC++が転落するときが来るとすれば
C++の欠点を解決しつつ同等の性能を出せる新たな非GC言語が登場した時だけだ
C++の天下は揺らがない
もしC++が転落するときが来るとすれば
C++の欠点を解決しつつ同等の性能を出せる新たな非GC言語が登場した時だけだ
352デフォルトの名無しさん
2023/05/12(金) 17:14:53.42ID:0Z+hsanL trait 内の fn は pub 付けていなくても
trait 自体が pub で定義されていたら
他の trait (というか上の trait を引き継いでいる) からでも参照出来るんだね
trait 自体が pub で定義されていたら
他の trait (というか上の trait を引き継いでいる) からでも参照出来るんだね
353デフォルトの名無しさん
2023/05/12(金) 17:16:09.03ID:0Z+hsanL Visual R++
Visual R#
しっくりこない
Visual R#
しっくりこない
354デフォルトの名無しさん
2023/05/12(金) 17:47:30.22ID:UYEx77Kz R言語はもう別であるからRustがR++になる心配はない
355デフォルトの名無しさん
2023/05/12(金) 17:50:51.87ID:BjQIXqEx Visual &mut Rust
356デフォルトの名無しさん
2023/05/12(金) 17:54:33.84ID:qfqUshnI トリビア: トレイトメソッドに付くVisibilityは構文定義上だけは許されている
357デフォルトの名無しさん
2023/05/12(金) 18:18:31.38ID:0Z+hsanL トレイト完全に理解した!
ヒャッハーっ!!!
ヒャッハーっ!!!
358デフォルトの名無しさん
2023/05/12(金) 18:29:46.57ID:LzgSZzp6 https://doc.rust-lang.org/reference/items/traits.html#item-visibility
Trait items syntactically allow a Visibility annotation,
but this is rejected when the trait is validated.
Trait items syntactically allow a Visibility annotation,
but this is rejected when the trait is validated.
359デフォルトの名無しさん
2023/05/12(金) 20:36:17.87ID:qfqUshnI またひどい知ったかぶりしてる……
https://medaka.5ch.net/test/read.cgi/prog/1619943288/575
575 仕様書無しさん 2023/05/12(金) 15:53:45.02
C++のスマートポインタはRustで吸収され
・RustのCopy実装型 (使われる時は自動コピー)
・RustのCopy非実装型 (使われる時はムーブ) ← C++のunique_ptr
・RustのArc型 (atomic増減でスレッド間も利用可) ← C++のshared_ptr
・RustのRc型 (高速にスレッド内で利用可)
つまりunique_ptrの機能がRustでは標準で備わっている
さらにshared_ptrはArcでその軽量版Rcが追加
C++と異なり使い間違えるとコンパイルエラーで知らせてくれる
さらにRustは参照と可変参照の規則によりデータ競合をコンパイル時に防ぐ
https://medaka.5ch.net/test/read.cgi/prog/1619943288/575
575 仕様書無しさん 2023/05/12(金) 15:53:45.02
C++のスマートポインタはRustで吸収され
・RustのCopy実装型 (使われる時は自動コピー)
・RustのCopy非実装型 (使われる時はムーブ) ← C++のunique_ptr
・RustのArc型 (atomic増減でスレッド間も利用可) ← C++のshared_ptr
・RustのRc型 (高速にスレッド内で利用可)
つまりunique_ptrの機能がRustでは標準で備わっている
さらにshared_ptrはArcでその軽量版Rcが追加
C++と異なり使い間違えるとコンパイルエラーで知らせてくれる
さらにRustは参照と可変参照の規則によりデータ競合をコンパイル時に防ぐ
360デフォルトの名無しさん
2023/05/12(金) 22:56:44.22ID:LzgSZzp6 問題なし
361デフォルトの名無しさん
2023/05/12(金) 23:46:30.09ID:qfqUshnI unique_ptrに対応するのはBoxやろがい
362デフォルトの名無しさん
2023/05/13(土) 02:08:25.96ID:IwTcnmrR >>361
C++のunique_ptrとRustのBoxは対応しない
Boxはヒープ確保であり例えば以下でのnew int(123)部分にあたる
std::unique_ptr<int> foo(new int(123));
そしてunique_ptr自体にヒープ確保の機能はない
C++のunique_ptrとRustのBoxは対応しない
Boxはヒープ確保であり例えば以下でのnew int(123)部分にあたる
std::unique_ptr<int> foo(new int(123));
そしてunique_ptr自体にヒープ確保の機能はない
363デフォルトの名無しさん
2023/05/13(土) 04:06:17.18ID:rghdYpRz >>351
それがrustだろ
それがrustだろ
364デフォルトの名無しさん
2023/05/13(土) 07:59:34.64ID:Mq7eAK7K 天下ねえ
天下って思われてると、むだに煽られるよねえ
C++サイコーwww(大好き)とは思ってるけど
天下って思われてると、むだに煽られるよねえ
C++サイコーwww(大好き)とは思ってるけど
365デフォルトの名無しさん
2023/05/13(土) 10:20:28.21ID:rDLT/gzF 何故プログラミング言語が変わるのか
まずハードが変わる、当然命令セットも変わる、さりとてハードが変わるたんびに新しい言語を覚える、既存のソフト移植する、など不可能なのでここで一個
ソフトサイドで新しい考え方が出てくる、既存の考え方ではバグ出やすい、効率悪い、こう考える方がいいという新しいプログラミングに関する知見が出れば言語そのものの刷新に向かう圧力が出る
ここで一個
大別すればこの2段やろな
①高級言語
━━━━━━
②繋ぎレイヤ
━━━━━━
③アセンブラ
①、③は必然的な刷新圧力に応じてどんどん変わっていく、③は必然的に新しいハードが出るたびに、①は絶対ではないけどBasic, Perl, Java, Ruby, Python などなど概ね5〜10年周期で変わってきた
しかし②のレイヤはほぼ半世紀近くC,C++の独壇場, MachとかObjectice Cとかあったけど結局消えていった
さてさてどうなるのか?
Windows, Linuxでは一部Rubyに置き換える試みがなされてるけどコレは本流の大きなにがれになるのか、あるいはやはりごく一時的なものでやはりC,C++の牙城は崩れないのか
まずハードが変わる、当然命令セットも変わる、さりとてハードが変わるたんびに新しい言語を覚える、既存のソフト移植する、など不可能なのでここで一個
ソフトサイドで新しい考え方が出てくる、既存の考え方ではバグ出やすい、効率悪い、こう考える方がいいという新しいプログラミングに関する知見が出れば言語そのものの刷新に向かう圧力が出る
ここで一個
大別すればこの2段やろな
①高級言語
━━━━━━
②繋ぎレイヤ
━━━━━━
③アセンブラ
①、③は必然的な刷新圧力に応じてどんどん変わっていく、③は必然的に新しいハードが出るたびに、①は絶対ではないけどBasic, Perl, Java, Ruby, Python などなど概ね5〜10年周期で変わってきた
しかし②のレイヤはほぼ半世紀近くC,C++の独壇場, MachとかObjectice Cとかあったけど結局消えていった
さてさてどうなるのか?
Windows, Linuxでは一部Rubyに置き換える試みがなされてるけどコレは本流の大きなにがれになるのか、あるいはやはりごく一時的なものでやはりC,C++の牙城は崩れないのか
366デフォルトの名無しさん
2023/05/13(土) 10:27:54.96ID:R1hDb7+8 >>365
Rustは③だよね?
Rustは③だよね?
367デフォルトの名無しさん
2023/05/13(土) 11:14:30.77ID:qbLWQV0Y たった今あるソリューションがRustだから、切迫した更新需要にはRustが入ると思う
もうちょっとゆとりのあるものは、improved C/C++ でいいかなって感じじゃないかな
自分もその位置
もうちょっとゆとりのあるものは、improved C/C++ でいいかなって感じじゃないかな
自分もその位置
368デフォルトの名無しさん
2023/05/13(土) 12:46:24.99ID:TFo/sDKR C++は倒れたままなのか?
死亡フラグ
死亡フラグ
369デフォルトの名無しさん
2023/05/13(土) 12:48:52.48ID:OKlDpUB8 倒れたと言いますと?
370デフォルトの名無しさん
2023/05/13(土) 13:37:03.03ID:0/cn7SoC >>365
頭悪過ぎ
頭悪過ぎ
371デフォルトの名無しさん
2023/05/13(土) 13:52:20.03ID:IGToM9iL >>362
make_unique知らないの? 知ってて黙ってる?
それとも知ってたけどunique_ptrに属さないから駄目だって言いたいの?
というかその差異を認めたとしても、スコープを抜けるとき/ムーブされるときに内容の後始末とヒープの解放を行うという重要な共通点が依然としてあるし、
その点を無視してunique_ptr<T>を任意の非Copy型と対応付けようとするほうがよっぽど無理があると思うけどね
make_unique知らないの? 知ってて黙ってる?
それとも知ってたけどunique_ptrに属さないから駄目だって言いたいの?
というかその差異を認めたとしても、スコープを抜けるとき/ムーブされるときに内容の後始末とヒープの解放を行うという重要な共通点が依然としてあるし、
その点を無視してunique_ptr<T>を任意の非Copy型と対応付けようとするほうがよっぽど無理があると思うけどね
372371
2023/05/13(土) 13:54:01.76ID:IGToM9iL あ、ムーブされるときは違うなすまん
373デフォルトの名無しさん
2023/05/13(土) 18:07:44.55ID:1P8OgH65 lifetime の &'static と
global の static で
同じ名前になってるのはセンス無いな
Rust 界にも static おじさんは息衝いている
global の static で
同じ名前になってるのはセンス無いな
Rust 界にも static おじさんは息衝いている
374デフォルトの名無しさん
2023/05/13(土) 18:08:15.66ID:Zeyov0xO なんかメチャクチャ書いたな
NeXT Stepとかはあくまで周辺プログラミング環境がobjective CだっただけでOS本体はMach kernelでそれはCとかでかかれてるから②のレイヤでC,C++に変わるものは四半世紀でてきていない
果たして本当にここにRustが食い込めるのかね、あるいは置き換わるなどということが本当に起こりうるものなのか
NeXT Stepとかはあくまで周辺プログラミング環境がobjective CだっただけでOS本体はMach kernelでそれはCとかでかかれてるから②のレイヤでC,C++に変わるものは四半世紀でてきていない
果たして本当にここにRustが食い込めるのかね、あるいは置き換わるなどということが本当に起こりうるものなのか
375デフォルトの名無しさん
2023/05/13(土) 19:38:25.85ID:rkpDrS5+376デフォルトの名無しさん
2023/05/13(土) 21:15:21.97ID:C/HTc2pJ >>371
make_uniqueは複合の合わせ技だから、
unique_ptrのコンストラクタを見た方がよいね
引き数はnewで確保したポインタなどだから、
unique_ptrの構築前に別途ヒープ領域を確保済
一方でBoxの構築時はまだヒープ領域を確保しておらず、Boxがヒープ領域を確保
だから両者は決定的に違うんじゃないかな
さらにunique_ptrは空っぽの状態、つまりヒープ領域を伴わない状態が許されるのに対して、
Boxは必ずヒープ領域を伴っていて、そこに値を必ず持っている、という重要な違いもあるね
スコープを抜けたときの処理や内部で持っているヒープ領域の解放については、
unique_ptrやBox以外でも行われる話だから、両者の共通点というよりもっと大きな範囲の共通点だね
make_uniqueは複合の合わせ技だから、
unique_ptrのコンストラクタを見た方がよいね
引き数はnewで確保したポインタなどだから、
unique_ptrの構築前に別途ヒープ領域を確保済
一方でBoxの構築時はまだヒープ領域を確保しておらず、Boxがヒープ領域を確保
だから両者は決定的に違うんじゃないかな
さらにunique_ptrは空っぽの状態、つまりヒープ領域を伴わない状態が許されるのに対して、
Boxは必ずヒープ領域を伴っていて、そこに値を必ず持っている、という重要な違いもあるね
スコープを抜けたときの処理や内部で持っているヒープ領域の解放については、
unique_ptrやBox以外でも行われる話だから、両者の共通点というよりもっと大きな範囲の共通点だね
377デフォルトの名無しさん
2023/05/13(土) 21:18:10.27ID:qbLWQV0Y378デフォルトの名無しさん
2023/05/13(土) 21:55:24.10ID:ps1U4+yC379デフォルトの名無しさん
2023/05/13(土) 22:14:54.43ID:ps1U4+yC Copy非実装型とBoxとどちらがunique_ptrに近いかと言えば大多数の人はBoxだと言うだろうな
まあ言語が変われば1対1で対応しない機能があるのが普通なので
無理に対応づけようとするよりもそれぞれの違いを学んだほうがいいよ
まあ言語が変われば1対1で対応しない機能があるのが普通なので
無理に対応づけようとするよりもそれぞれの違いを学んだほうがいいよ
380デフォルトの名無しさん
2023/05/13(土) 22:22:25.59ID:IGToM9iL >>376
> さらにunique_ptrは空っぽの状態、つまりヒープ領域を伴わない状態が許されるのに対して、
> Boxは必ずヒープ領域を伴っていて、そこに値を必ず持っている、という重要な違いもあるね
だからBoxとunique_ptrは対応しないってんなら、Arcとshared_ptrを対応させるのはもっと間違ってるぞ
> さらにunique_ptrは空っぽの状態、つまりヒープ領域を伴わない状態が許されるのに対して、
> Boxは必ずヒープ領域を伴っていて、そこに値を必ず持っている、という重要な違いもあるね
だからBoxとunique_ptrは対応しないってんなら、Arcとshared_ptrを対応させるのはもっと間違ってるぞ
381デフォルトの名無しさん
2023/05/13(土) 22:50:11.88ID:awcNL8zc Boxはボックス化つまりヒープに置くこと
C++で対応するのはnew
C++で対応するのはnew
382デフォルトの名無しさん
2023/05/13(土) 22:51:59.52ID:ps1U4+yC BoxもZero Sized Type(ZST)だとheapを伴わないよね
383デフォルトの名無しさん
2023/05/14(日) 02:32:01.76ID:WzlwealS >>377
Rustは凄いと言ってる奴は、自分はRust使ってないからな
Rustは凄いと言ってる奴は、自分はRust使ってないからな
384デフォルトの名無しさん
2023/05/14(日) 09:24:48.35ID:20ql+77K Javaが出てきたとき
Javaすげぇぇ他の言語は駆逐される
PHPが出てきたとき
PHPすげぇぇ他の言語は駆逐される
何か出るたびそれを信仰し同じコトを繰り返すんだな
Javaすげぇぇ他の言語は駆逐される
PHPが出てきたとき
PHPすげぇぇ他の言語は駆逐される
何か出るたびそれを信仰し同じコトを繰り返すんだな
385デフォルトの名無しさん
2023/05/14(日) 09:25:10.34ID:hi4Bq2pn >>383
使いどころがないからなw
使いどころがないからなw
386デフォルトの名無しさん
2023/05/14(日) 09:27:43.22ID:20ql+77K 自分で作るじゃなく他所で作られたものを自慢をするというね
こういう言語そうだそれ以外の物でもそうだし
こういう言語そうだそれ以外の物でもそうだし
387デフォルトの名無しさん
2023/05/14(日) 09:34:52.10ID:1jFVCpuN >>384
結局どうなったかっていうと、PHPはサーバサイドのDSLとして落ち着いた
JavaはOracleが接収? した
立ち位置が減少したのは多分Perlだが、いまPerl使ってるって言っても殴る人はいない
(以上、すべて個人の感想)
今回は、LLVMの成熟により、様々な言語が2.0化しようとしてるみたい
わりと何ででも、安全に、高効率なプログラミングができる時代になるのかもしれない
Rustは、新しいbetter C のような気がしてきた
…けど、記述法がどうしても見慣れない(w
結局どうなったかっていうと、PHPはサーバサイドのDSLとして落ち着いた
JavaはOracleが接収? した
立ち位置が減少したのは多分Perlだが、いまPerl使ってるって言っても殴る人はいない
(以上、すべて個人の感想)
今回は、LLVMの成熟により、様々な言語が2.0化しようとしてるみたい
わりと何ででも、安全に、高効率なプログラミングができる時代になるのかもしれない
Rustは、新しいbetter C のような気がしてきた
…けど、記述法がどうしても見慣れない(w
388デフォルトの名無しさん
2023/05/14(日) 10:27:30.61ID:pb1Dbmn7 javaはIT企業ではある意味他言語をを駆逐したと思うわ
特殊なケースだけc++、vb使う
webのDSLでtypescript
地元(田舎)の求人見ると
java,C++が使える人かjs使える人の求人が99%だから…
特殊なケースだけc++、vb使う
webのDSLでtypescript
地元(田舎)の求人見ると
java,C++が使える人かjs使える人の求人が99%だから…
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 小野田紀美・経済安保担当相「何か気に入らないことがあればすぐに経済的威圧をする国への依存はリスク」 ★2 [Hitzeschleier★]
- 日本行き空路49万件キャンセル 中国自粛呼びかけ 日本行きチケット予約の約32%に相当 ★2 [ぐれ★]
- 【中国局長】両国関係に「深刻な影響」 首相発言の撤回要求 [蚤の市★]
- 外務省局長は無言で厳しい表情…日中の高官協議終了か 高市首相“台湾”発言で中国が強硬対応 発言撤回求めたか…★3 [BFU★]
- 【インバウンド】中国人観光客の日本での消費額は年間約2兆円超…中国政府は公務員の出張取り消し [1ゲットロボ★]
- 【維新】吉村知事「中国人観光客だけに頼るビジネスモデル変えていかないといけない」「高市総理の発言は撤回する必要はない」 [Hitzeschleier★]
- 【高市朗報】 日本政府「一昨年は1300億円。去年も防衛費が1100億円余ったw」 日本の防衛費は充分足りてる事が判明。増やす必要無し [485983549]
- 高市早苗「支持者の理解を得られないので台湾発言を撤回できない」 [931948549]
- 【実況】博衣こよりのえちえち歌枠🧪
- 【高市速報】日本人の3割「中国への武力行使に踏み切る必要がある」ANN世論調査 [931948549]
- 外務省局長、よくわからないまま帰国へ [834922174]
- 【速報】51歳まで自衛隊になれるように法改正ww [347751896]
