[表示 : 全て 最新50 1-99 101- 201- 301- 401- 2ch.scのread.cgiへ]
Update time : 03/23 08:38 / Filesize : 137 KB / Number-of Response : 454
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

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



1 名前:デフォルトの名無しさん [2023/02/25(土) 09:49:46.74 ID:VRyB88xR.net]
C++の色々配慮してめんどくさい感じは好きだけど、実務になったらメモリ安全性とか考えて今後Rustに変わっていくんかな?

404 名前:デフォルトの名無しさん mailto:sage [2023/03/17(金) 17:31:51.55 ID:LTrpjv8n.net]
>>403
unsafeになる。

405 名前:デフォルトの名無しさん mailto:sage [2023/03/17(金) 17:42:50.37 ID:T8dNhcTz.net]
>>404
マジ?信じられん
もし本当ならそのunsafeを使わざるを得なかった例を具体的に出せばいいんじゃね

406 名前:デフォルトの名無しさん mailto:sage [2023/03/17(金) 17:43:39.56 ID:tBmmskox.net]
unsafeをゼロにするよりも、極小なunsafeブロックを組み込んで華麗にキメてほしいね
これはC++も同様

407 名前:デフォルトの名無しさん mailto:sage [2023/03/17(金) 17:52:35.17 ID:2s/kFNH6.net]
>>400
そういう枯れた古いものをわざわざ書き直すことに熱意を燃やせる人間は少ない
新世代のデータベースやcrypt/blockchainのように金になる新しい成長分野ではc/c++よりもrustがよく使われてる

技術の自然な世代交代は既存システムの置き換えから始まるものではない

408 名前:デフォルトの名無しさん mailto:sage [2023/03/17(金) 18:01:30.86 ID:LTrpjv8n.net]
>>405
次のことが成り立っていれば教えてもらわなくても自然に分かる:
・マルチスレッドの事を理解している。
・Rustのことを理解している。
・算数的直観力に優れる。

409 名前:デフォルトの名無しさん mailto:sage [2023/03/17(金) 18:03:48.04 ID:u99ocdLb.net]
複製おじさん vs 100点おじさん
Fight!

410 名前:デフォルトの名無しさん mailto:sage [2023/03/17(金) 18:24:08.50 ID:NC4w42Nt.net]
>>401
そのへんの問題もRustだと安全安心なのがいいよなー
特に例外機構を無くしたのは大成功
あとResult放置してると警告もしてくれるしな

>>404
そのunsafe使わないと書けなかったコードを出してみ
寄ってたかって添削してやろう

411 名前:デフォルトの名無しさん mailto:sage [2023/03/17(金) 18:36:02.65 ID:LTrpjv8n.net]
>>410
俺は天才だから、お前みたいな凡人に無料でヒントをくれてやらない。

412 名前:デフォルトの名無しさん mailto:sage [2023/03/17(金) 19:13:16.48 ID:tBmmskox.net]
Rustって、削ぎ落したものは復活させません、って宣言とかしてるん?



413 名前:デフォルトの名無しさん mailto:sage [2023/03/17(金) 19:55:25.86 ID:9o1NNcpX.net]
>>408
Rustをあんまり知らんけど言語間に根本的な差はなくね?

414 名前:デフォルトの名無しさん mailto:sage [2023/03/17(金) 20:02:50.35 ID:kImSYq8C.net]
>>408はいつものキチガイ
RustもC++もコードを書けたことがない
相手にするだけ無駄

415 名前:デフォルトの名無しさん mailto:sage [2023/03/17(金) 20:19:10.88 ID:TZnQdWAf.net]
>>414
今さらなに言ってるんだ?
ここにはキチガイしかいないぞ?
俺もお前もな

416 名前:デフォルトの名無しさん mailto:sage [2023/03/17(金) 20:29:34.70 ID:Zxg/DnHC.net]
>>413
ん?だから何?

417 名前:デフォルトの名無しさん mailto:sage [2023/03/17(金) 21:29:42.97 ID:o5CBT2m0.net]
>>416
アルゴリズムを書ける書けないの差はでない

418 名前:デフォルトの名無しさん [2023/03/17(金) 23:44:57.66 ID:Lcw0Ean/.net]
Rustほとんど知らん俺でも総合的にRustのほうがC++よりはいいだろと思う
C++より後発言語で、で、ライバルになるC++に劣っているようじゃダメだからな
で、お前らは、すごいRustで具体的に何を作っているんだ?

419 名前:デフォルトの名無しさん mailto:sage [2023/03/18(土) 00:11:15.51 ID:6kQD14Ek.net]
ChatGPT先生に聞いてみた
>>404の言う通り

template <typename T>
class LockFreeStack {
public:
void push(const T& value) {
Node* new_node = new Node(value);
new_node->next = head.load(std::memory_order_relaxed);
while (!head.compare_exchange_weak(new_node->next, new_node,
std::memory_order_release,
std::memory_order_relaxed));
}
std::shared_ptr<T> pop() {
Node* old_head = head.load(std::memory_order_relaxed);
while (old_head && !head.compare_exchange_weak(old_head, old_head->next,
std::memory_order_acquire,
std::memory_order_relaxed));
return old_head ? std::make_shared<T>(old_head->value) : nullptr;
}
private:
struct Node {
T value;
Node* next;
Node(const T& value) : value(value), next(nullptr) {}
};
std::atomic<Node*> head{nullptr};
};

420 名前:デフォルトの名無しさん mailto:sage [2023/03/18(土) 00:31:48.86 ID:jelBOeFa.net]
先生にからかわれとるぞw

421 名前:デフォルトの名無しさん mailto:sage [2023/03/18(土) 00:53:02.93 ID:rMRLIFsD.net]
>>419はこれと同じのをRustで書いたらunsafeになる(だろ?)
って言いたいんだろ
偉大なるChatGPT先生が言うんだから間違いないだろな

422 名前:デフォルトの名無しさん mailto:sage [2023/03/18(土) 00:58:57.68 ID:6kQD14Ek.net]
>>421
いやChatGPTは信用しない方が良い
俺はRustは良く分からんがChatGPT曰く
>Rustには、このようなロックフリーなデータ構造を提供する
>クレート(ライブラリ)が存在します。その一つがcrossbeamです。
>このクレートは、スレッドセーフで効率的なデータ構造を提供しており、
>crossbeam内でUnsafeな操作が行われているにもかかわらず、
>APIを通じて安全に使用できます。
だそうな
crossbeamってRustで書かれとらんのかな?



423 名前:デフォルトの名無しさん mailto:sage [2023/03/18(土) 01:14:24.86 ID:pMxUNH+f.net]
>>422
本当は、ライブラリの中だけをunsafeにして、アプリ側はsafeに出来るケースも有れば、
アプリ側も unsafe を消せないケースもありえる。

424 名前:デフォルトの名無しさん mailto:sage [2023/03/18(土) 01:17:39.13 ID:6kQD14Ek.net]
unsafeってキーワード使えばチェックをオフにできるのね

425 名前:デフォルトの名無しさん mailto:sage [2023/03/18(土) 01:29:02.55 ID:6kQD14Ek.net]
>>420
Rustで書いてみよう!

426 名前:デフォルトの名無しさん mailto:sage [2023/03/18(土) 04:35:18.48 ID:+IGrKU6n.net]
ArcとAtomicでほぼそのまま書けるけど
pointer dereferenceのためにunsafeは必須

427 名前:デフォルトの名無しさん mailto:sage [2023/03/18(土) 10:03:55.24 ID:fNuha5Rk.net]
言語マウントごっこにしか使われてないrust

428 名前:デフォルトの名無しさん [2023/03/18(土) 10:25:46.77 ID:fSPMk7mF.net]
no chance

429 名前:デフォルトの名無しさん mailto:sage [2023/03/18(土) 11:41:47.24 ID:ux4diyjf.net]
平日の昼にID真っ赤なのは仕事か
板違いのスレで必死に毎日お疲れさん

430 名前:デフォルトの名無しさん mailto:sage [2023/03/18(土) 14:02:46.54 ID:d2/CRNVk.net]
ちょうどオライリーから「Rust Atomics and Locks」という本が出てるよ

基本的な内容を説明してる本なのでC++でatomicsやmemory orderingに慣れ親しんでる人がわざわざ買うほどのものではないかもしれないけど
かなりわかりやすくまとまってるのでRustでこの辺りの機能を使ったコードを良く書く人は読んで置いて損はないと思う

431 名前:デフォルトの名無しさん [2023/03/18(土) 16:09:57.63 ID:fSPMk7mF.net]
ほう
https://bokuweb.github.io/undefined/articles/20230205.html

432 名前:デフォルトの名無しさん mailto:sage [2023/03/18(土) 18:42:10.12 ID:kFUsfJhu.net]
Lock-Freeなデータ構造を自分で作りたい人はこれを見るといい

Porting Java's ConcurrentHashMap to Rust (part 1)
https://www.youtube.com/watch?v=yQFWmGaFBjk



433 名前:デフォルトの名無しさん mailto:sage [2023/03/19(日) 12:22:41.89 ID:LfQxDddq.net]
> cargo new hoge
> cargo run
→ 3MB
main.rs に
use clap::Parser;
追加すると
> cargo run
→ 100MB 超えるんだが
どうすれば容量減らせるん?

434 名前:デフォルトの名無しさん mailto:sage [2023/03/19(日) 12:44:51.20 ID:TIfaDrwo.net]
とりあえず--releaseつける

435 名前:デフォルトの名無しさん mailto:sage [2023/03/19(日) 13:32:03.94 ID:fPDrKYk/.net]
しらんけど
https://igaguri.はてなぶろぐ.com/entry/2020/06/07/133847
https://crates.io/crates/cargo-clean-recursive

436 名前:デフォルトの名無しさん mailto:sage [2023/03/19(日) 13:35:18.59 ID:fPDrKYk/.net]
とりあえずは
cargo clean
で良いはず
最初から余計なのは造りたくないって言う話ならほんまにしらん

437 名前:デフォルトの名無しさん mailto:sage [2023/03/19(日) 14:03:33.37 ID:4KWNgnTF.net]
>>436
ありがとうございました

438 名前:デフォルトの名無しさん mailto:sage [2023/03/20(月) 08:59:55.73 ID:8VwEKWf+.net]
やっぱC++にもボローチェッカ欲しい
なんならCにも欲しい
attributeとか併用したら、やってできないことはないんじゃねーの

439 名前:デフォルトの名無しさん mailto:sage [2023/03/21(火) 17:20:17.93 ID:icU0z8mb.net]
rg3d はなぜ
https://github.com/rg3dengine/rg3d
から
https://github.com/FyroxEngine/Fyrox
に改名したのですか?

440 名前:デフォルトの名無しさん mailto:sage [2023/03/21(火) 17:50:34.39 ID:5MGYYNx+.net]
rustの読み物公式が面白いのしっかり出してるから
それ読むだけでも大分良い
後発言語らしくイイトコどりしまくってる
null無くした代わりになんでもかんでもラップしてるから若干だるいけど
すげー面白い

441 名前:デフォルトの名無しさん [2023/03/21(火) 19:41:09.03 ID:4irMO5jk.net]
Unity超えるゲームエンジン作ってから言え

442 名前:デフォルトの名無しさん [2023/03/21(火) 19:42:14.14 ID:4irMO5jk.net]
Blenderとかでもいいよ



443 名前:デフォルトの名無しさん mailto:sage [2023/03/21(火) 21:54:25.24 ID:gItZ+a0F.net]
cpp2rsみたいのがじきできるから、そしたら一発
ただ、それだと、safeではあるけど、Rustのシンプルさは(メリットとして)失うな

444 名前:デフォルトの名無しさん [2023/03/22(水) 07:30:44.03 ID:7nCtmzjD.net]
>>443
ほんとにできる?

445 名前:デフォルトの名無しさん [2023/03/22(水) 09:09:27.85 ID:II3LrhVD.net]
文法がRustなだけで
Rustのコードとして使い物にならん
ゲテモノが出て来るわ
今のGPTも酷い

446 名前:デフォルトの名無しさん mailto:sage [2023/03/22(水) 09:47:28.48 ID:RLKJ2atP.net]
ああ、あと全自動とは言わない あっちこっちで、あれなおせーこれなおせーって言われるかと

447 名前:デフォルトの名無しさん [2023/03/22(水) 10:40:01.19 ID:Motackg9.net]
たしかに、C++でメモリ安全性を静的チェックするツールを作るのはなかなか難しいもんかね?

448 名前:デフォルトの名無しさん mailto:sage [2023/03/22(水) 12:19:59.74 ID:jZlOcGNt.net]
gccだとvargrindとかあるけどね

449 名前:デフォルトの名無しさん mailto:sage [2023/03/22(水) 14:27:48.09 ID:RqRpj7Ax.net]
valgrindはgcc関係なくないか?
rustでもメモリリークの確認に使う

有用なツールだけど静的チェックと呼べるのかは疑問

450 名前:デフォルトの名無しさん mailto:sage [2023/03/22(水) 21:31:28.83 ID:vDLoPLCP.net]
valgrindは実行時チェックだから出現レアケースだと時間内に検出できない

451 名前:デフォルトの名無しさん mailto:sage [2023/03/22(水) 21:43:05.82 ID:jZlOcGNt.net]
AddressSanitizerでもValgrindでもmtraceでも好きなの選べ
https://kivantium.hateblo.jp/entry/2018/07/14/233027

452 名前:デフォルトの名無しさん mailto:sage [2023/03/22(水) 21:46:10.74 ID:vDLoPLCP.net]
全て実行時チェックだな



453 名前:デフォルトの名無しさん mailto:sage [2023/03/22(水) 21:54:30.07 ID:jZlOcGNt.net]
静的ツールだとこんなのもあるね
https://cppcheck.sourceforge.io/

スマートポインタ使えばそもそもいらんがね






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<137KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef