結局C++とRustってどっちが良いの?

レス数が1000を超えています。これ以上書き込みはできません。
1デフォルトの名無しさん
垢版 |
2023/02/25(土) 09:49:46.74ID:VRyB88xR
C++の色々配慮してめんどくさい感じは好きだけど、実務になったらメモリ安全性とか考えて今後Rustに変わっていくんかな?
2023/04/01(土) 21:44:43.97ID:NRw2BG4n
そいつはRustのこともC++のことも何も知らないくせに
なにかコメントしたいだけの池沼なので放置するしかない
2023/04/01(土) 21:50:56.74ID:WHqiXdwW
ひょっとしてGC君かな?
2023/04/01(土) 21:55:20.36ID:3M3YuI+X
>>958
C++でスマポを使ってもヌル安全性もデータ競合安全性も得られない
さらに複雑化した時のスマポの使い方ミスで多くの問題が起きてきたことを考えると
本当に必要なのはスマポが正しく使われていない時にコンパイルエラーを出すこと
現状のC++は欠陥品であり今後も多くのセキュリティホールを生み出し続けるだろう
969デフォルトの名無しさん
垢版 |
2023/04/01(土) 21:57:58.76ID:WHqiXdwW
>>968
おおGCくんが来た

>C++でスマポを使ってもヌル安全性もデータ競合安全性も得られない
どんなミスか興味があるのでソースで示してね
2023/04/01(土) 22:10:09.20ID:rBOo7R6g
>>743
同感
Rustは衛生的マクロな点を始めとして各種マクロが優秀すぎる
C++がダメすぎるんだよな
テンプレートも問題ありすぎ
971デフォルトの名無しさん
垢版 |
2023/04/01(土) 22:21:05.85ID:nbXeTJU5
ディスパッチの定義を捻じ曲げたのと同じで
衝突の定義も捻じ曲げにきてるよな
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)をしている
2023/04/01(土) 23:39:50.11ID:62NQQrT2
これ次スレたてるの? あるいはどっかの雑スレに合流?
974デフォルトの名無しさん
垢版 |
2023/04/01(土) 23:53:21.20ID:3egme1as
C/C++ vs Rustとしてあった方が良いと思うけどね
雑スレだとGCの勢力が強くなりそう
2023/04/02(日) 00:22:03.90ID:Xkdfgrgv
5chでC++↓Rust↑している人のC++理解度の低さは強調してしすぎることはない

https://mevius.5ch.net/test/read.cgi/tech/1652347700/385-392
976デフォルトの名無しさん
垢版 |
2023/04/02(日) 00:30:37.47ID:bY6+UifX
>>972
汚コードに磨きをかけるなよ
普通に関数で書けるものをネストさせたマクロにするセンスに脱帽
2023/04/02(日) 00:32:38.03ID:xbcpqSco
単純に開発効率の問題だよな
C++よりRustは実行デバッグの時間がかなり減って開発効率がいい
2023/04/02(日) 00:39:46.89ID:GYBlNyWI
汚コード唱えるやつがコードを示したことがなく信用できない
2023/04/02(日) 00:43:54.27ID:W9/nq+tL
建てた 叫んで埋めていいぞー

結局C++とRustってどっちが良いの? 2traits
https://mevius.5ch.net/test/read.cgi/tech/1680363777/
2023/04/02(日) 00:48:46.53ID:Xkdfgrgv
>>978
君の日本語がおかしいって話なんで、ソースで示すべきことは何も無いよ
それともなにか示してほしいの?
2023/04/02(日) 01:41:46.92ID:DBhEEanc
スレを読んでいて技術的な論争は興味深いんだけど
他人への攻撃をしてる人たちは邪魔なんで消えてほしい
2023/04/02(日) 02:09:25.03ID:WdMf4Ye5
そもそも>>1がソースを書けないと思われる
特にC++は読めもしないのだろう
RustとC++を技術的に比較するなら両方のソースをある程度書けないと不可能
2023/04/02(日) 07:26:34.66ID:W9/nq+tL
>>3 にあるとおり、やれっていわれたらやる マとしてはこれでFA
慣れは必要だけど、要求される頃には、定石も今以上に揃うだろうし

ここ読んでて、食わず嫌いしてたRustを眺めなおしてから、
CppCoreGuidelines 読んだら、めっちゃわかりやすかった
これだけで俺には十分収穫あったね
2023/04/02(日) 07:39:56.12ID:W9/nq+tL
Linusに認められた、これだけで、Rustの「勝利」は外形的事実 争う必要はない
はずなのに、そのうえまだ、Rustの優位を主張するのに全力な香具師がいる
若いなって正直思う 昔俺もああだったぜ

C++を母語としている者が考えることは、次に何を取り込むか
やっぱ #pragma safe は欲しいね
そのうしろに値くらい付いてもいい safeの詳細も、進化していくだろうから
2023/04/02(日) 07:53:54.77ID:W9/nq+tL
あああと、パタンマッチを知らなかったのも俺だ (知らぬは)一生の恥になるとこだったw
静的にソースコードを解析してsafeを証明できる、ガイドライン違反を指摘できることだとばかり

rustcのサンプル出してくれた奴には悪かった
「たしかに面白い…けど、こういうの、Cなら、yylvalっぽく処理するよね…」っていう印象だったんだ
inspectってのが来たら来るらしいので、来たら喜んで遊んでみるとして
優位性の根拠になるか? それホントC++に必要? ってのは次スレに持ち越したい

っていう埋め
2023/04/02(日) 10:51:04.91ID:D26hzdDf
>>985
キミは周回遅れのド素人でかつ
人より知能が劣るからもう発言しなくていいです
これはいじわる発言じゃなくて、助言です
2023/04/02(日) 10:59:32.98ID:W9/nq+tL
よく言われるよ

Rustのエヴァンジェリストが暴れていいのに、初心者の俺に黙っとけはないなあ
せいぜい質問させてもらうよ
988デフォルトの名無しさん
垢版 |
2023/04/02(日) 11:04:00.93ID:xlKg15xW
>>981>>986は同一人物です
皆さん次スレでも騙されないようご注意を
989デフォルトの名無しさん
垢版 |
2023/04/02(日) 11:10:11.81ID:6UFMeU2Z
>>976
複オジメソッドに釣られてるよ
気をつけて
2023/04/02(日) 11:12:51.90ID:Xkdfgrgv
自分の間違いを認められるだけマシ

>>981は露骨に複おじだけど
>>986=>>847=ID:BpzIAh0Kは違う気がするんよなあ

あんまり雑認定しすぎるとおじサイドの「自演に見えてるやつは頭がおかしい」の批判が有効になってしまうから、確証を持てないならほどほどにな
2023/04/02(日) 11:17:21.13ID:W9/nq+tL
ダックタイピングみたいなもんじゃないんw
2023/04/02(日) 11:34:39.31ID:E52hJVrB
俺は池沼と複オジをこのスレから排除したいだけよ
だって時間のムダだもん
2023/04/02(日) 11:42:03.77ID:Xkdfgrgv
やめろバカ!複おじを野に放つ気か!?
せっかく平和なRust本スレが実現できて、後はヤツが追い払った住民たちを呼び戻すだけだというのに!
2023/04/02(日) 11:44:18.44ID:W9/nq+tL
残念だが、初心者お断りとは書いてなかったんだなあ

そうくると思って、俺がとっととスレ建てちまったからねw
2023/04/02(日) 11:45:16.10ID:E52hJVrB
>>993
そうかそっちか
それは申し訳なかった
こっちを隔離にすべきやね
複オジも池沼(ID:W9/nq+tL)もこっちに張り付く気マンマンらしいし
996デフォルトの名無しさん
垢版 |
2023/04/02(日) 12:34:42.17ID:uooZ7ifu
まあまあ同じスレで出会った仲間なんだから仲良くしようや
997デフォルトの名無しさん
垢版 |
2023/04/02(日) 13:29:57.68ID:Ky8sq4kq
Rustが良いって言ってる人は
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秒
レス数が1000を超えています。これ以上書き込みはできません。
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況