結局C++とRustってどっちが良いの?
レス数が1000を超えています。これ以上書き込みはできません。
1デフォルトの名無しさん
2023/02/25(土) 09:49:46.74ID:VRyB88xR C++の色々配慮してめんどくさい感じは好きだけど、実務になったらメモリ安全性とか考えて今後Rustに変わっていくんかな?
952デフォルトの名無しさん
2023/04/01(土) 14:25:21.95ID:hxeslJ4Q Javaは糞
C#はチョット良い感じ
Juliaは死んだ
Rustがんがれ
Nimもがんがれ
C++は使い続けるけどね
C#はチョット良い感じ
Juliaは死んだ
Rustがんがれ
Nimもがんがれ
C++は使い続けるけどね
953デフォルトの名無しさん
2023/04/01(土) 15:11:33.70ID:rIj/v2ga954デフォルトの名無しさん
2023/04/01(土) 16:41:11.09ID:HWGbnwVz >>944
同名メソッドが衝突した時にどうなるかは言語によってかなり異なるから一番重要じゃないかな
衝突が許されない言語と許される場合も条件がある場合もあるよ
衝突があってもエラー出ない言語もあれば特定な時だけエラーな言語もあるね
回避方法も別名定義方式から同名自己定義や直接指定と色々だ
同名メソッドが衝突した時にどうなるかは言語によってかなり異なるから一番重要じゃないかな
衝突が許されない言語と許される場合も条件がある場合もあるよ
衝突があってもエラー出ない言語もあれば特定な時だけエラーな言語もあるね
回避方法も別名定義方式から同名自己定義や直接指定と色々だ
955デフォルトの名無しさん
2023/04/01(土) 17:25:01.59ID:/8VZFYJJ Rustが「認め」られたことで、C++のスマポも、べき・べからずが確定したと考えておk?
956デフォルトの名無しさん
2023/04/01(土) 17:29:58.10ID:WHqiXdwW >>955
どういう意味?
どういう意味?
957デフォルトの名無しさん
2023/04/01(土) 17:52:08.96ID:/8VZFYJJ 大手が認めたんだから、Rustと同等に書ければ、それはsafeなんだよな?
これまで、C++のスマポは、CppCoreGuidelinesなんてものはあっても、強制されなかった
これまで、C++のスマポは、CppCoreGuidelinesなんてものはあっても、強制されなかった
958デフォルトの名無しさん
2023/04/01(土) 18:00:21.17ID:WHqiXdwW Rustに関係なくC++ではスマートポインタを使用すれば安全に書けるし
スマートポインタの使用するしないにRustは全く関係ない?
ここ見てる人は俺も含めてRustに注目してはいるが
C++ユーザのほとんどはRustなど眼中にないだろう
スマートポインタの使用するしないにRustは全く関係ない?
ここ見てる人は俺も含めてRustに注目してはいるが
C++ユーザのほとんどはRustなど眼中にないだろう
959デフォルトの名無しさん
2023/04/01(土) 18:01:23.45ID:WHqiXdwW 二行目最後?を消し忘れた
960デフォルトの名無しさん
2023/04/01(土) 18:06:42.88ID:/8VZFYJJ 強制されるってのがミソだろ Rust派は、Rustなら、必ず・全部安全って言ってるんだからさ
961デフォルトの名無しさん
2023/04/01(土) 18:09:42.77ID:vBVsKFoD >>933
某オジお得意の誤訳だったんじゃねーの?
某オジお得意の誤訳だったんじゃねーの?
962デフォルトの名無しさん
2023/04/01(土) 19:15:27.20ID:ugeMTEEj >>914
> 具体型Fooが確定している状態で動的ディスパッチは絶対に発生しません
逆
動的ディスパッチが実行される時点では必ず具体型Fooが確定している
> dynと目印のついたトレイトオブジェクト経由でしか動的ディスパッチは発生しません
> そしてこのときトレイトは確定しているのでメソッド名は衝突しません
衝突する
直接のトレイトは確定しても付随するトレイト境界があれば各トレイトでメソッド名は衝突しうる
> 具体型Fooが確定している状態で動的ディスパッチは絶対に発生しません
逆
動的ディスパッチが実行される時点では必ず具体型Fooが確定している
> dynと目印のついたトレイトオブジェクト経由でしか動的ディスパッチは発生しません
> そしてこのときトレイトは確定しているのでメソッド名は衝突しません
衝突する
直接のトレイトは確定しても付随するトレイト境界があれば各トレイトでメソッド名は衝突しうる
963デフォルトの名無しさん
2023/04/01(土) 19:16:31.21ID:ma7yA/CE964デフォルトの名無しさん
2023/04/01(土) 19:31:10.27ID:9m4PZsrB どの言語でも他の言語とは異なる特徴があるからその説明をしてくれないとわからん
それを説明されると困る人がいるのが不思議
それを説明されると困る人がいるのが不思議
965デフォルトの名無しさん
2023/04/01(土) 21:31:47.02ID:WHqiXdwW >>957,960
何を言っているのかサッパリ分からん
何を言っているのかサッパリ分からん
966デフォルトの名無しさん
2023/04/01(土) 21:44:43.97ID:NRw2BG4n そいつはRustのこともC++のことも何も知らないくせに
なにかコメントしたいだけの池沼なので放置するしかない
なにかコメントしたいだけの池沼なので放置するしかない
967デフォルトの名無しさん
2023/04/01(土) 21:50:56.74ID:WHqiXdwW ひょっとしてGC君かな?
968デフォルトの名無しさん
2023/04/01(土) 21:55:20.36ID:3M3YuI+X >>958
C++でスマポを使ってもヌル安全性もデータ競合安全性も得られない
さらに複雑化した時のスマポの使い方ミスで多くの問題が起きてきたことを考えると
本当に必要なのはスマポが正しく使われていない時にコンパイルエラーを出すこと
現状のC++は欠陥品であり今後も多くのセキュリティホールを生み出し続けるだろう
C++でスマポを使ってもヌル安全性もデータ競合安全性も得られない
さらに複雑化した時のスマポの使い方ミスで多くの問題が起きてきたことを考えると
本当に必要なのはスマポが正しく使われていない時にコンパイルエラーを出すこと
現状のC++は欠陥品であり今後も多くのセキュリティホールを生み出し続けるだろう
969デフォルトの名無しさん
2023/04/01(土) 21:57:58.76ID:WHqiXdwW970デフォルトの名無しさん
2023/04/01(土) 22:10:09.20ID:rBOo7R6g971デフォルトの名無しさん
2023/04/01(土) 22:21:05.85ID:nbXeTJU5 ディスパッチの定義を捻じ曲げたのと同じで
衝突の定義も捻じ曲げにきてるよな
衝突の定義も捻じ曲げにきてるよな
972デフォルトの名無しさん
2023/04/01(土) 23:32:16.53ID:AdU+jSWJ >>940
コードがわかりくいのかなと思って
vtableのところをもう少しわかりやすくしてみた
trait TraitA { fn method1(&self); fn method2(&self); }
trait TraitB { fn method1(&self); fn method2(&self); }
trait TraitAB: TraitA + TraitB {}
struct Foo;
impl TraitA for Foo { fn method1(&self) {} fn method2(&self) {} }
impl TraitB for Foo { fn method1(&self) {} fn method2(&self) {} }
impl TraitAB for Foo {}
macro_rules! as_addr { ($target:expr) => { &($target) as *const _ } }
macro_rules! as_array { ($addr:expr, $index:expr) => { *(($addr) as *const usize).offset($index) } }
macro_rules! vtable { ($dyn:expr, $index:expr) => { unsafe { as_array![as_array![as_addr!($dyn), 1], $index] } } }
fn main() {
let foo = Foo;
let dyn_foo: &dyn TraitAB = &foo;
assert_eq!(vtable![dyn_foo, 0], std::ptr::drop_in_place::<Foo> as usize);
assert_eq!(vtable![dyn_foo, 1], std::mem::size_of::<Foo>());
assert_eq!(vtable![dyn_foo, 2], std::mem::align_of::<Foo>());
assert_eq!(vtable![dyn_foo, 3], <Foo as TraitA>::method1 as usize);
assert_eq!(vtable![dyn_foo, 4], <Foo as TraitA>::method2 as usize);
assert_eq!(vtable![dyn_foo, 5], <Foo as TraitB>::method1 as usize);
assert_eq!(vtable![dyn_foo, 6], <Foo as TraitB>::method2 as usize);
}
このように各トレイトの同名メソッドを区別してvtableのインデックス化(このコードだと他の部分含めてインデックス3~6)をしている
コードがわかりくいのかなと思って
vtableのところをもう少しわかりやすくしてみた
trait TraitA { fn method1(&self); fn method2(&self); }
trait TraitB { fn method1(&self); fn method2(&self); }
trait TraitAB: TraitA + TraitB {}
struct Foo;
impl TraitA for Foo { fn method1(&self) {} fn method2(&self) {} }
impl TraitB for Foo { fn method1(&self) {} fn method2(&self) {} }
impl TraitAB for Foo {}
macro_rules! as_addr { ($target:expr) => { &($target) as *const _ } }
macro_rules! as_array { ($addr:expr, $index:expr) => { *(($addr) as *const usize).offset($index) } }
macro_rules! vtable { ($dyn:expr, $index:expr) => { unsafe { as_array![as_array![as_addr!($dyn), 1], $index] } } }
fn main() {
let foo = Foo;
let dyn_foo: &dyn TraitAB = &foo;
assert_eq!(vtable![dyn_foo, 0], std::ptr::drop_in_place::<Foo> as usize);
assert_eq!(vtable![dyn_foo, 1], std::mem::size_of::<Foo>());
assert_eq!(vtable![dyn_foo, 2], std::mem::align_of::<Foo>());
assert_eq!(vtable![dyn_foo, 3], <Foo as TraitA>::method1 as usize);
assert_eq!(vtable![dyn_foo, 4], <Foo as TraitA>::method2 as usize);
assert_eq!(vtable![dyn_foo, 5], <Foo as TraitB>::method1 as usize);
assert_eq!(vtable![dyn_foo, 6], <Foo as TraitB>::method2 as usize);
}
このように各トレイトの同名メソッドを区別してvtableのインデックス化(このコードだと他の部分含めてインデックス3~6)をしている
973デフォルトの名無しさん
2023/04/01(土) 23:39:50.11ID:62NQQrT2 これ次スレたてるの? あるいはどっかの雑スレに合流?
974デフォルトの名無しさん
2023/04/01(土) 23:53:21.20ID:3egme1as C/C++ vs Rustとしてあった方が良いと思うけどね
雑スレだとGCの勢力が強くなりそう
雑スレだとGCの勢力が強くなりそう
975デフォルトの名無しさん
2023/04/02(日) 00:22:03.90ID:Xkdfgrgv 5chでC++↓Rust↑している人のC++理解度の低さは強調してしすぎることはない
https://mevius.5ch.net/test/read.cgi/tech/1652347700/385-392
https://mevius.5ch.net/test/read.cgi/tech/1652347700/385-392
976デフォルトの名無しさん
2023/04/02(日) 00:30:37.47ID:bY6+UifX977デフォルトの名無しさん
2023/04/02(日) 00:32:38.03ID:xbcpqSco 単純に開発効率の問題だよな
C++よりRustは実行デバッグの時間がかなり減って開発効率がいい
C++よりRustは実行デバッグの時間がかなり減って開発効率がいい
978デフォルトの名無しさん
2023/04/02(日) 00:39:46.89ID:GYBlNyWI 汚コード唱えるやつがコードを示したことがなく信用できない
979デフォルトの名無しさん
2023/04/02(日) 00:43:54.27ID:W9/nq+tL980デフォルトの名無しさん
2023/04/02(日) 00:48:46.53ID:Xkdfgrgv981デフォルトの名無しさん
2023/04/02(日) 01:41:46.92ID:DBhEEanc スレを読んでいて技術的な論争は興味深いんだけど
他人への攻撃をしてる人たちは邪魔なんで消えてほしい
他人への攻撃をしてる人たちは邪魔なんで消えてほしい
982デフォルトの名無しさん
2023/04/02(日) 02:09:25.03ID:WdMf4Ye5983デフォルトの名無しさん
2023/04/02(日) 07:26:34.66ID:W9/nq+tL >>3 にあるとおり、やれっていわれたらやる マとしてはこれでFA
慣れは必要だけど、要求される頃には、定石も今以上に揃うだろうし
ここ読んでて、食わず嫌いしてたRustを眺めなおしてから、
CppCoreGuidelines 読んだら、めっちゃわかりやすかった
これだけで俺には十分収穫あったね
慣れは必要だけど、要求される頃には、定石も今以上に揃うだろうし
ここ読んでて、食わず嫌いしてたRustを眺めなおしてから、
CppCoreGuidelines 読んだら、めっちゃわかりやすかった
これだけで俺には十分収穫あったね
984デフォルトの名無しさん
2023/04/02(日) 07:39:56.12ID:W9/nq+tL Linusに認められた、これだけで、Rustの「勝利」は外形的事実 争う必要はない
はずなのに、そのうえまだ、Rustの優位を主張するのに全力な香具師がいる
若いなって正直思う 昔俺もああだったぜ
C++を母語としている者が考えることは、次に何を取り込むか
やっぱ #pragma safe は欲しいね
そのうしろに値くらい付いてもいい safeの詳細も、進化していくだろうから
はずなのに、そのうえまだ、Rustの優位を主張するのに全力な香具師がいる
若いなって正直思う 昔俺もああだったぜ
C++を母語としている者が考えることは、次に何を取り込むか
やっぱ #pragma safe は欲しいね
そのうしろに値くらい付いてもいい safeの詳細も、進化していくだろうから
985デフォルトの名無しさん
2023/04/02(日) 07:53:54.77ID:W9/nq+tL あああと、パタンマッチを知らなかったのも俺だ (知らぬは)一生の恥になるとこだったw
静的にソースコードを解析してsafeを証明できる、ガイドライン違反を指摘できることだとばかり
rustcのサンプル出してくれた奴には悪かった
「たしかに面白い…けど、こういうの、Cなら、yylvalっぽく処理するよね…」っていう印象だったんだ
inspectってのが来たら来るらしいので、来たら喜んで遊んでみるとして
優位性の根拠になるか? それホントC++に必要? ってのは次スレに持ち越したい
っていう埋め
静的にソースコードを解析してsafeを証明できる、ガイドライン違反を指摘できることだとばかり
rustcのサンプル出してくれた奴には悪かった
「たしかに面白い…けど、こういうの、Cなら、yylvalっぽく処理するよね…」っていう印象だったんだ
inspectってのが来たら来るらしいので、来たら喜んで遊んでみるとして
優位性の根拠になるか? それホントC++に必要? ってのは次スレに持ち越したい
っていう埋め
986デフォルトの名無しさん
2023/04/02(日) 10:51:04.91ID:D26hzdDf987デフォルトの名無しさん
2023/04/02(日) 10:59:32.98ID:W9/nq+tL よく言われるよ
Rustのエヴァンジェリストが暴れていいのに、初心者の俺に黙っとけはないなあ
せいぜい質問させてもらうよ
Rustのエヴァンジェリストが暴れていいのに、初心者の俺に黙っとけはないなあ
せいぜい質問させてもらうよ
989デフォルトの名無しさん
2023/04/02(日) 11:10:11.81ID:6UFMeU2Z990デフォルトの名無しさん
2023/04/02(日) 11:12:51.90ID:Xkdfgrgv991デフォルトの名無しさん
2023/04/02(日) 11:17:21.13ID:W9/nq+tL ダックタイピングみたいなもんじゃないんw
992デフォルトの名無しさん
2023/04/02(日) 11:34:39.31ID:E52hJVrB 俺は池沼と複オジをこのスレから排除したいだけよ
だって時間のムダだもん
だって時間のムダだもん
993デフォルトの名無しさん
2023/04/02(日) 11:42:03.77ID:Xkdfgrgv やめろバカ!複おじを野に放つ気か!?
せっかく平和なRust本スレが実現できて、後はヤツが追い払った住民たちを呼び戻すだけだというのに!
せっかく平和なRust本スレが実現できて、後はヤツが追い払った住民たちを呼び戻すだけだというのに!
994デフォルトの名無しさん
2023/04/02(日) 11:44:18.44ID:W9/nq+tL 残念だが、初心者お断りとは書いてなかったんだなあ
そうくると思って、俺がとっととスレ建てちまったからねw
そうくると思って、俺がとっととスレ建てちまったからねw
995デフォルトの名無しさん
2023/04/02(日) 11:45:16.10ID:E52hJVrB996デフォルトの名無しさん
2023/04/02(日) 12:34:42.17ID:uooZ7ifu まあまあ同じスレで出会った仲間なんだから仲良くしようや
997デフォルトの名無しさん
2023/04/02(日) 13:29:57.68ID:Ky8sq4kq Rustが良いって言ってる人は
C/C++のポインタとメモリ管理理解出来なかったからだろ
C/C++のポインタとメモリ管理理解出来なかったからだろ
998デフォルトの名無しさん
2023/04/02(日) 13:30:14.04ID:Ky8sq4kq おにまい
999デフォルトの名無しさん
2023/04/02(日) 13:30:23.82ID:Ky8sq4kq 梅
1000デフォルトの名無しさん
2023/04/02(日) 13:30:34.24ID:Ky8sq4kq 櫻
10011001
Over 1000Thread このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 36日 3時間 40分 48秒
新しいスレッドを立ててください。
life time: 36日 3時間 40分 48秒
10021002
Over 1000Thread 5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/
▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/
▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
レス数が1000を超えています。これ以上書き込みはできません。
ニュース
- 高市首相、トランプ米大統領に「早期に会いたい」 日中関係悪化受け… ★2 [BFU★]
- 【コメ】卸売業者「簡単に安売りできない」「大暴落起きれば大赤字に」 JA「新米の販売進度が近年になく遅い。コメの回転が悪い」 ★4 [Hitzeschleier★]
- 高市早苗首相が天理教系企業に“巨額発注” 総額5000万円 本人は「政治団体の活動に必要な支出」と回答 [Hitzeschleier★]
- ホリエモン、「持ち家=幸せという価値観は過去のもの」と断言「快適な住まいが欲しいなら、賃貸住宅を次々に替えていく」 [muffin★]
- 高市早苗総理「金利上昇よりも日本の成長が大事」 ★3 [Hitzeschleier★]
- 「残クレ」でマイホーム、国が銀行向け保険 新型住宅ローン普及促す -日経 ★3 [少考さん★]
- 【実況】博衣こよりのえちえちスーパーダンガンロンパ2🧪
- 今さっき西谷駅でゲロ吐いてしれっと逃げたやつ
- 【新番組】轟はじめ🐧⚡のぶんぶんぶーん🚗💨!【🏡】
- 自民党のヒゲ「日本側の無線でcopyとは言ったが了解という意味ではない」 [834922174]
- ダウンジャケットほしい、オススメ教えて
- だから野球回がないアニメはクソアニメだって俺最初から言ってたじゃん
