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

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2023/07/29(土) 15:05:46.55ID:2Hm/yplK
C++の色々配慮してめんどくさい感じは好きだけど、実務になったらメモリ安全性とか考えて今後Rustに変わっていくんかな」
「うだうだ言ってないで仕事で必要なのをやればいいんだよ、趣味なら好きなのやればいい」

っていう雑談スレ。

前スレ 
https://itest.5ch.net/mevius/test/read.cgi/tech/1688129795

関連スレ(マ板): Google&MS「バグの70%はC/C++。Rustにする」
https://medaka.5ch.n...cgi/prog/1619943288/
2023/08/02(水) 01:09:19.89ID:iG8SsFh7
>>96-98
それは>>69の解法1を取り得ることを意味するが
公式文書では>>80のように解法2が説明されており
解法1はvery experimentalとある
なぜだい?
2023/08/02(水) 01:11:29.45ID:8pIQRBW6
誰でも知ってることを長文で書かなくていいから>>80読んでね
2023/08/02(水) 01:15:12.91ID:iG8SsFh7
>>86
>それができれば、所有権情報付きの型に対応できることになるから、
これが気になってて
>>98みたいにno_mangleすると
所有権システムは制限されるのかな?
2023/08/02(水) 01:28:10.98ID:NJTTLLY6
>>99
その文書に根拠が書かれていないからわからない
その文書によるとclangとrustcならば上手くいくのだからRust側の問題ではなくclang側の問題でもない
仮に問題があるとすればgcc側の問題なのだろう
そしてその場合かあると仮定するとC言語のみでもgccとclangで上手くいかないケースが存在するのだろう
2023/08/02(水) 01:34:00.68ID:MBDISWVo
very experimentalなのは単純に実績が浅いからでしょ
同じ規格に合わせて作ったつもりでも実際に組み合わせると想定外の問題が生じる場合がある
この辺は結合テストの経験がないとピンとこないかもしれない
2023/08/02(水) 01:51:18.44ID:TcjEDVFj
>>103
実績は10年以上あるでしょ
例えば/usr/lib/の下にあるライブラリファイルがgccかclangかどちらでコンパイルされたものかに関わらず
gccからもclangからもそれらライブラリを区別なく使われて問題を起こさず動いてきた
そこはELFのフォーマットが定められているからコンパイラの違いがあっても大丈夫
2023/08/02(水) 02:02:17.30ID:iG8SsFh7
linuxのソースに含まれない外部配布のカーネルモジュールのコンパイルって
普通コンパイラを(バージョンも含めて)揃えない?
神経質過ぎるだけかな?
2023/08/02(水) 03:18:19.71ID:stxSLRlm
結論
C++使いとRust使いは生産性が低い
2023/08/02(水) 06:19:43.25ID:2Ms30o08
生産性最強は…「さくっと探してくる」

なんでも自作(内製)しようとしちゃうよね、自分にもそんな時期がありました
勉強にはなるけど
108デフォルトの名無しさん
垢版 |
2023/08/02(水) 09:10:06.07ID:4pI1Wfnv
>>93-95
hissi.org を AI に掛けたらそろそろ自演検出出来る時代
2023/08/02(水) 14:23:27.46ID:iG8SsFh7
教師データが少なすぎて精度が上がらんやろ
2023/08/02(水) 20:35:38.56ID:HZivUK5/
>>101
こういうことじゃないか
少し前にRust派が貼った https://github.com/microsoft/windows-rs は、
win32 APIをunsafeなRustで受けてる そういうreadmeになってるからそうなんだろう
unsafeなAPIにRustが接続してるんだから、たしかに道理

Rust派がいうように、どんどんRust世代(Swiftとかも含む)のAPIが増えてくると、
所有権情報がついたAPIになるわけだから、C++(とC)も当然それに合わせていく必要があるし、
それがわかってるなら、いまのうちから追随に向けたC++の発展を期待するぜ、っていうわけ
111デフォルトの名無しさん
垢版 |
2023/08/02(水) 20:46:07.42ID:ss9KhaID
C++なんざ何処が良いのか分からん
C#ほどセーフティーな訳でも無ければ
アセンブラみたいに痒い所に手が届く訳でもない
2023/08/02(水) 21:02:46.80ID:bcW2DJn5
普通はインラインアセンブラとか使えるぞ たまに便利
2023/08/02(水) 21:43:56.55ID:2DJiiIQu
>>110
>所有権情報がついたAPIになるわけだから、C++(とC)も当然それに合わせていく必要があるし
C/C++の言語仕様・ライブラリでこれをサポートする予定があるのか
2023/08/03(木) 06:38:17.02ID:x4MCSOl6
サポートしてもらわないと困るって話
Rustがそこまで普及するんならね
2023/08/03(木) 08:14:30.82ID:8npqW66R
C/C++の問題点はプログラム全体がunsafeエリアな点にある
Rustのように自動的に安全が保証されるsafeエリアを作るべきだ
116デフォルトの名無しさん
垢版 |
2023/08/03(木) 13:49:40.33ID:Lr04Zjag
unsafe { } なコード描き捲れば良いじゃん
誰も止めないし
2023/08/03(木) 14:47:00.92ID:8npqW66R
生のメモリはunsafeだからunsafeなエリアをゼロにするのは無理だが最小限に閉じ込めることはできる
ちなみにunsafeなエリアとは自動的に安全性が保証されず人間が安全性を保証しなければならない意味であり安全でないコードの意味ではない
C/C++は全てがunsafeなエリアとなっていることが根本的な問題であるためC/C++に導入すべきはsafeなエリアとunsafeなエリアの区別の導入
2023/08/04(金) 02:45:20.65ID:9vVWYNaF
科学者は、新しいものより古いものを好むような気がする。
やっとFortranからC++に移行したみたいな感じじゃない。
119デフォルトの名無しさん
垢版 |
2023/08/04(金) 09:03:06.23ID:XLfSEGlw
unsafe { C++ }
unsafe { unsafe { Fortran }}
120デフォルトの名無しさん
垢版 |
2023/08/04(金) 11:28:27.58ID:rcIkyW/J
>>118
ある年齢以下だと科学者でもかなりpythonが主流派だよ。
2023/08/04(金) 12:38:38.48ID:Hxv32tG4
unsafeは名前が悪い。

noguardがguidelessの方が実態に合っている。
122デフォルトの名無しさん
垢版 |
2023/08/04(金) 12:40:31.64ID:l9tpj9tS
>>121
同意。
rustも別にunsafeだから安全じゃないってわけじゃないからな。
123デフォルトの名無しさん
垢版 |
2023/08/04(金) 13:02:53.96ID:2tbTIxDy
>>121
>noguardがguidelessの方が実態に合っている。
wwwww
guidelesswww
124デフォルトの名無しさん
垢版 |
2023/08/04(金) 13:09:44.29ID:TzILUUtf
俺はコンパイラの支援なんか不要!
安全なコード書けるから!
などというバカ対策
2023/08/04(金) 13:32:31.68ID:sr1c8EdF
いくら自信があっても
いくら百戦錬磨のプロでも
思い込みや見逃しでミスが入り込む可能性がある
そしてミスがないと主張してもその客観的な根拠はなく頭の中にしかない

C/C++にも客観的に自動的に安全性が保証されるsafeエリアを導入すべきだ
そしてプログラム本体にunsafeエリアが露出せずに済むようにsafeなライブラリ関数を充実すべきだ
126デフォルトの名無しさん
垢版 |
2023/08/04(金) 14:14:29.32ID:egOIBhxw
急にスレのベレルが下がったな
2023/08/04(金) 14:23:45.74ID:neuFS+YA
気のせいです
128デフォルトの名無しさん
垢版 |
2023/08/04(金) 14:45:44.75ID:z0X1ZVr3
>>125
唐突なポエム草
2023/08/04(金) 15:02:43.37ID:BcxuRAkw
もっともマトモな層は、コード書きに行ってこんなとこ来ないからw
2023/08/04(金) 15:21:59.11ID:9eDSr/2C
急にスレのベレルが下がったな
131デフォルトの名無しさん
垢版 |
2023/08/04(金) 15:39:49.20ID:XLfSEGlw
高かったことが一度でも在ったかのような言い草だな
2023/08/04(金) 15:45:57.96ID:f95F43ae
散髪屋に安全ガミソリを強制したり、マシン語プログラマを
蔑みそうな思想だな。
2023/08/04(金) 15:49:31.23ID:f95F43ae
安全ガミソリは刃に毛が挟まって取れなくなって、
再利用しにくいのに対し、直刃のかみそりは、
安全面さえ気をつければ手入れが簡単で再利用しやすい
からプロは後者を好んで使う。
それと同じ。
2023/08/04(金) 15:51:38.78ID:f95F43ae
直刃のかみそりを好んで使うプロたちに対して、
「お前らは客の安全性を疎かにする自信過剰で傲慢な
駄目な奴ら」
だとか言うつもりか。
2023/08/04(金) 15:56:47.17ID:i+NL2LDR
急にスレのベレルが下がったな
2023/08/04(金) 15:58:20.80ID:BcxuRAkw
>>134
消毒(sanitize)はどうしてるのかって問題はたしかにあるな
俺は気にしてないが、気にする人がいてもいい
2023/08/04(金) 16:01:00.54ID:f95F43ae
マシン語プログラマに対して、
「おまえらは、自身の腕を過信する安全性軽視の
 駄目プログラマだ」
なんて言う権利は他人には無いと思う。
2023/08/04(金) 16:09:50.05ID:S7yEvO65
>>137
安全性とは何なのかも定義も理解できていないからそんな馬鹿げた書き込みばかりしてるのか
2023/08/04(金) 16:17:28.67ID:f95F43ae
結局、相手を馬鹿にしてRustを推すのが、Rust信者の
やり口。
140デフォルトの名無しさん
垢版 |
2023/08/04(金) 16:31:11.69ID:EJnCR0gN
安全カミソリは安全ではないし
直刃のカミソリを使うプロでも客に切り傷つけることはよくある
141デフォルトの名無しさん
垢版 |
2023/08/04(金) 19:56:00.95ID:l9tpj9tS
直刃のカミソリっていうか、柄もないカミソリの刃だけを使うようなもんだろ。
自分も痛い目みること含めて。
2023/08/04(金) 20:09:16.36ID:S7yEvO65
他人が書いた部分や使ってるライブラリやその孫ライブラリまで含めて全ソースをチェックするのは非現実的だからな
もちろん自分で書いた部分やリファクタリングした部分も万が一のチェックを書き換えるたびにするのも手間暇コスト増
unsafeでもunguardでも呼び名はなんでもいいからsafe/guard部分がコンパイラによる自動チェックされるようになれば人間がチェックすべき部分は激減できる
2023/08/04(金) 20:15:00.62ID:bJlFt79O
急にスレのベレルが下がったな
2023/08/04(金) 20:26:53.92ID:og8Edpiv
ダングリングの検出ってGPTの登場で
言語側が備える意味は最早なくなった
そのうち外部にチェックプログラムが登場するよ
ABIが非互換になるデメリットを考えると
なおさらRustに追随する言語はないと思う
さよならRustの未来を信じた皆さん
2023/08/04(金) 20:36:35.81ID:q/UYza0u
>>144
ダングリングなんて小さな問題だけが対象ではないことを理解していなさそうにもみえるが
これまで外部ログラムがいくら頑張っても各種問題を静的に見つけることはできていないし今後も無理だろう
AIであろうとそれは同じであり神のようなAIが登場するならその時は全ての言語のプログラマー全員廃業だ
146デフォルトの名無しさん
垢版 |
2023/08/04(金) 21:00:09.09ID:IJ6nE+NX
>>144
外部のチェックツールって今までもあったけどね。
上手いプロンプトを考えられたらいいね。
147デフォルトの名無しさん
垢版 |
2023/08/04(金) 21:36:58.62ID:K3V5Xtdy
>そのうち外部にチェックプログラムが登場するよ
今まで使ったことないのかよww
2023/08/04(金) 22:00:25.44ID:CoH1yBj0
CheckGPTでRustは終わる
149デフォルトの名無しさん
垢版 |
2023/08/05(土) 00:03:15.32ID:8PC/4Tei
残念だけど言語サポート無しにRustと同じレベルのチェックは不可能
それがわからない時点で安全なコードを書く能力もないことが分かる
2023/08/05(土) 01:06:25.49ID:YeB01PWa
>>149
SendやSyncのマーカートレイトなど
様々な安全性を型チェックで保証できるような枠組みがRustには揃ってるあたりのことか
C++にも導入すべきだよな
C++は色んな機能が足りなすぎる
2023/08/05(土) 01:50:07.55ID:dts8KIsS
Rustは人の命をあずかるシステムに使えますか?
2023/08/05(土) 02:47:29.11ID:LVFgAb7y
使えます
2023/08/05(土) 04:34:10.67ID:KocMWFZU
Rust信者の正体は、ぎゃあぎゃあ五月蝿い評論家だ。
自分が上だと思って色々言ってくる。
2023/08/05(土) 04:36:47.68ID:KocMWFZU
実際にソフトウェアでサラリーマンとしてではなく、事業
として成功している人以外の意見はさらっと流して無視
しなければ、上手く行かない。
2023/08/05(土) 07:16:06.28ID:xdlV5LLb
>>148
これ
2023/08/05(土) 07:31:06.33ID:YeB01PWa
>>155
Rustが様々な安全性をコンパイラで保証できる仕組みは
例えばスレッド間での移動や共有の可否などを抽象的なトレイトで表現して
各型をそれらのトレイト境界で制約して型チェックで実現したりしているようだから
C++にもそういう仕組みを導入すれば自動チェックの可能性が出てくるね
2023/08/05(土) 08:05:44.87ID:xdlV5LLb
>>156
将来的にそういうのはエディタに組み込まれたCheckGPTがやってくれるんじゃん
2023/08/05(土) 08:24:07.60ID:YeB01PWa
>>157
言語仕様に組み込まれていないとそれは不可能と思われる
もしそれさえ覆すAIが出現した時にはプログラミング言語自体が全て滅びてしまう新時代となる
その新時代になるまでは言語仕様が強力なRustがAI支援で圧倒的に有利にみえる
2023/08/05(土) 08:38:30.69ID:xdlV5LLb
>>158
AIに最適化された言語が登場するのかも
160デフォルトの名無しさん
垢版 |
2023/08/05(土) 11:23:13.95ID:NzC+Rt9F
>>158
>言語仕様に組み込まれていないとそれは不可能と思われる
そなの?
人間がソースコードを読んで発見できるバグなら
直感的にはAIにも出来るのでは?
2023/08/05(土) 11:43:54.44ID:Lx+Vx/pL
クソスレ上げんな低能
2023/08/05(土) 12:00:58.94ID:YeB01PWa
>>160
そこは単純な話でプログラミングよりも遥かに難しいため
つまりそれが可能な領域にAIが達した時にはAIが最初から全て行なうのでそもそもチェックも不要になる
2023/08/05(土) 12:36:48.81ID:G0xPWQV0
人間がソースコードを読んで発見できるバグなら最初からバグ入らない
164デフォルトの名無しさん
垢版 |
2023/08/05(土) 12:44:17.52ID:NzC+Rt9F
人間が読んで発見できないバグをRustが発見できるかのような言い草だな
2023/08/05(土) 12:48:32.07ID:C2ROzTMY
たぶん、いきなり初作でバグ書いたりはしないと思うのな
あとで改造したときにエンバグする
そこでコンパイルエラーになるように言語ができてる
166デフォルトの名無しさん
垢版 |
2023/08/05(土) 14:13:18.22ID:NzC+Rt9F
ChatGPT-4では検出できないが
Rustで書けば検出出来るC/C++のバグを考えようぜ
ChatGPT-4はかなり賢いので俺は既に無いと予想するよ
2023/08/05(土) 14:14:11.76ID:NzC+Rt9F
俺は既に無いと主張するが
反証1つで論破できる
2023/08/05(土) 14:42:07.80ID:z8pTYjl5
ChatGPTは、
じゃんけんの論理構造が理解できないから、じゃんけんの
プログラムのバグを発見できない。
2023/08/05(土) 15:00:11.14ID:LVFgAb7y
とりあえずシンプルなバグ
ChatGPT使い方分からんから検証は任せた
C++は長いこと書いてないから古い書き方があったらすまん

#include <iostream>
#include <string>
#include <vector>

using namespace std;

int main() {
auto names = vector<string>();
names.reserve(8);

string empty = "";
string *longest = ∅

while (true) {
string name;
cin >> name;
names.push_back(name);
if (names.back().length() > longest->length()) {
longest = &names.back();
}
cout << names.size() << " names, (longest: " << *longest << ")" << endl;
}
}
2023/08/05(土) 15:14:36.79ID:LVFgAb7y
なんか&empty;が空集合の記号に変換されて表示されてしまった…
たしかに文字参照形式だけど5chのバグ踏んだんかな
2023/08/05(土) 15:21:16.34ID:NzC+Rt9F
>>169
Thanks! そのまま貼るね
I: C++プログラムのバグを教えて欲しいのですが? コードレビューをできますか?
G: もちろんです、C++のコードを見せていただければ、そのコードのバグや改善点を提案することができます。どんなコードをレビューすればよいですか?
I: >>169のコード
ただし string *longest = は string *longest = nullptr; に修正
2023/08/05(土) 15:22:34.42ID:NzC+Rt9F
G: コードを見た結果、最初の問題点は次の行で生じます。
if (names.back().length() > longest->length()) {
G: 最初の入力が行われる前、longest ポインタは nullptr に設定されています。
したがって、デリファレンス操作(-> を使用)は無効なメモリへのアクセスを引き起こし、
これは未定義の動作につながります。
この問題を解決するためには、longest ポインタを使用する前に、
有効な string オブジェクトを指すように設定する必要があります。
コードを次のように修正することで、
最初の入力の後に longest ポインタを設定することができます。
2023/08/05(土) 15:23:56.83ID:NzC+Rt9F
#include <iostream>
#include <string>
#include <vector>
using namespace std;
int main() {
vector<string> names;
names.reserve(8);
string *longest = nullptr;
while (true) {
string name;
cin >> name;
if (name == "exit") { // 終了コマンドを追加
break;
}
names.push_back(name);
// 入力後にポインタを初期化
if (longest == nullptr || names.back().length() > longest->length()) {
longest = &names.back();
}
cout << names.size() << " names, longest: " << *longest << endl;
}
return 0;
}
2023/08/05(土) 15:24:14.45ID:LVFgAb7y
もし空集合の記号が見えてたら&empty;(←半角)に修正してほしい
nullptrだと最初の比較で普通に死ぬから意図したバグが出ない
2023/08/05(土) 15:27:55.04ID:NzC+Rt9F
文章を解釈してオーダにない修正(exitの追加)までしている
ChatGPT-4はマルチスレッドの競合状態なんかも検出するよ
デッドロックは試してないがら無理かもね
Rustはデッドロックは検出するんだっけ?
2023/08/05(土) 15:30:21.32ID:LVFgAb7y
173見るとnullエラーは検出するけどvectorの再配置によるダングリングは見逃す感じでいいのかな
2023/08/05(土) 15:33:22.24ID:NzC+Rt9F
>>174 修正してみた
-string *longest = nullptr;
+string *longest = ∅
G: あなたのコードは、ユーザーからの入力を無限に受け取り、
最長の文字列を保持しようとしていますが、問題がいくつかあります。
まず、reserve関数はメモリを確保しますが、実際の要素数を増やすわけではありません。
したがって、push_backを使用すると、reserveで予約された領域を超えてメモリが確保されます。
しかし、それはこの特定のコードには重大な問題ではないと思われます。
大きな問題は、無限ループとポインタの管理です。
1. 無限ループ:while (true)とすると、無限ループになります。
これは、ユーザーが特定のアクション(例:特定のキーワードを入力する)を行わない限り、
永遠に終了しないプログラムを作成します。
これを解決するためには、ループを抜け出すための条件(例:空の名前が入力された場合)を設定する必要があります。
2. ポインタの管理:longestへのポインタが問題です。
names.back()が返す参照は、次にpush_backが呼び出されると無効になる可能性があります。
これは、push_backが内部の動的配列をリサイズする必要がある場合、
新しいメモリ領域に要素が移動され、古い参照が無効になるからです。
以下に修正したコードを示します。
2023/08/05(土) 15:33:27.10ID:97ZAjLd0
俺、C++ド素人で>>169が何をしているのかさっぱり分からんから、
どこが悪いのかさっぱり分からんが
でも、ChatGPTは何をしよう(しているのか)を理解して
(質問者にvectorの再配置でポンタ無効になるからと教えて)
>>171のような修正を提示するんだな。賢すぎだろ
2023/08/05(土) 15:34:42.49ID:NzC+Rt9F
#include <iostream>
#include <string>
#include <vector>
using namespace std;
int main() {
vector<string> names;
string longest = "";
while (true) {
string name;
cin >> name;
if (name.empty()) {
break;
}
names.push_back(name);
if (names.back().length() > longest.length()) {
longest = names.back();
}
cout << names.size() << " names, (longest: " << longest << ")" << endl;
}
return 0;
}
このコードでは、longestがポインタではなく値として管理されているため、
namesの内容が変更されても影響を受けません。
また、名前が空の場合にループを抜ける条件を追加しました。
2023/08/05(土) 15:39:09.24ID:NzC+Rt9F
>>176
その通りだね
ところが>>177の修正を加えて返ってきた答えには
vectorの再配置によるダングリングを考慮してある
>>177以外の修正は俺は一切加えていない

まだ間違った答えを返すことがあるが
正解を返すポテンシャルは既にある
2023/08/05(土) 15:41:17.99ID:NzC+Rt9F
ところで>>175なんだけど
Rustってデッドロックって検出できるんだっけ?
2023/08/05(土) 15:44:11.69ID:97ZAjLd0
いま、C++で生ポンタを使うこと避けるようにするんじゃないのか
2023/08/05(土) 15:45:41.69ID:LVFgAb7y
>>174
サンクス
さすがにこのレベルだと検出できるか
(ほかに目立つバグがあるとスルーされるのかもしれないけど)
2023/08/05(土) 15:58:47.07ID:wQaB7TT9
デッドロックは人間でも解決できないパターンがあるからw
2023/08/05(土) 16:03:33.32ID:LVFgAb7y
あらゆるデッドロックを検出しようとするとデッドロックするから無理って
チューリング先生が証明してたと思う
停止性とは違うのかもしれないけどどうせ帰着ルート見つけるでしょ(適当)
2023/08/05(土) 16:22:05.73ID:z8pTYjl5
AIに関して。たまたま上手く行ったケースだけを
書いている可能性がある。
実際にやってみると変になることもあったりする
のがよくあるパターン。
2023/08/05(土) 16:44:23.90ID:NzC+Rt9F
>>186
>>171は1回だよ そのあと>>170を読んだので
チャットの途中から>>177の修正を加えて回答を生成させた
これも1回限り
ChatGPT-4を普段触っていて能力を知っていれば
納得の回答レベルだと思うけど?
2023/08/05(土) 16:52:12.45ID:z8pTYjl5
std::vector でよくある性質だけ、ChatGPTに
ハードコーディングされてる可能性がある。
2023/08/05(土) 17:30:10.13ID:YdmkUc66
>>181
デッドロックは静的に(実行せずに)検出できないことが理論的にわかっている
そのためRustを含めて任意のシステムで静的にデッドロックを検出するものは存在しない
2023/08/05(土) 17:46:13.30ID:YdmkUc66
デッドロックはロック順序が定まるように自主的対応するとして
一方でデータ競合についてはRustがデータ競合のないことを保証してくれる
2023/08/05(土) 18:41:15.10ID:NzC+Rt9F
>>190
データ競合はChatGPG-4も検出してくれる
192デフォルトの名無しさん
垢版 |
2023/08/05(土) 18:58:04.88ID:nLwYtk1m
実は俺は未来が見える。
Rustは普及しない。
いっちゃった。
ヤバイ。
2023/08/05(土) 19:24:44.46ID:YdmkUc66
>>191
ChatGPTは検出できるケースもあるだけだぞ
Rustはデータ競合を100%回避できる
そしてデータ競合は100%回避しなければならない
100%回避できる方法がある状況でそうではないChatGPTに頼るやつはバカだと断言できる
2023/08/05(土) 19:35:03.34ID:3ig1p59X
>>193
GPT4使ったてないやろ?
そんなもんじゃない
2023/08/05(土) 19:45:05.47ID:YdmkUc66
>>194
100%防がなければいけないこと(今回の例だとデータ競合)で
ChatGPTに依存するは愚の骨頂
ましてや100%防げるRustが存在する状況で
2023/08/05(土) 19:56:21.43ID:ovYwnQ8g
>>195
だってRust覚えるのめんどいじゃん?
2023/08/05(土) 21:11:57.10ID:xdlV5LLb
はいRustの負け〜
2023/08/05(土) 21:31:44.37ID:Ab8yJnrX
>>196
Rustは必要な高機能が充実しているにま関わらず
洗練されていて覚えることが少なくて楽だ
C++はC++20まで把握してもまだRustの高機能に追いつけていない
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。