「C++の色々配慮してめんどくさい感じは好きだけど、実務になったらメモリ安全性とか考えて今後Rustに変わっていくんかな」
「うだうだ言ってないで仕事で必要なのをやればいいんだよ、趣味なら好きなのやればいい」
っていう雑談スレ。
前スレ: 結局C++とRustってどっちが良いの? 3traits
https://mevius.5ch.net/test/read.cgi/tech/1683154196/
関連スレ(マ板): Google&MS「バグの70%はC/C++。Rustにする」
https://medaka.5ch.net/test/read.cgi/prog/1619943288/
結局C++とRustってどっちが良いの? 4traits
■ このスレッドは過去ログ倉庫に格納されています
2023/06/06(火) 19:13:06.15ID:ZuKzBsFa
476デフォルトの名無しさん
2023/06/20(火) 19:56:44.38ID:hFVGfJKF マジだった<ズコー解散
477デフォルトの名無しさん
2023/06/20(火) 20:11:23.59ID:hFVGfJKF 勘違いかも知れないからしばらく様子見にする
478デフォルトの名無しさん
2023/06/20(火) 20:16:50.04ID:VutPP0gw 頭が良ければミスしないから無視して良いという考え方は
プログラミングに限らずエンジニアリング一般として
排除されるべきものなんだけどね
プログラミングに限らずエンジニアリング一般として
排除されるべきものなんだけどね
479デフォルトの名無しさん
2023/06/20(火) 20:18:31.24ID:4GGWBlC0 そいつはC++派の数学天才大先生だよ
480デフォルトの名無しさん
2023/06/20(火) 20:50:54.50ID:kHT6BzKp ミスするバカだからRustありき、と言われて、ウンって言えないわな
俺はそんなミスしねーよとしか返しようがないw
C++だって、とうの昔から、型チェックだの、assertだのとチェックの恩恵は受けてるんだけどね
Rustが正しいと業界が認めたんなら、C++にもとっとと所有権関係きてほしい
俺はそんなミスしねーよとしか返しようがないw
C++だって、とうの昔から、型チェックだの、assertだのとチェックの恩恵は受けてるんだけどね
Rustが正しいと業界が認めたんなら、C++にもとっとと所有権関係きてほしい
481デフォルトの名無しさん
2023/06/20(火) 21:03:21.76ID:SQUZYpcX >>467
その件はRustとC++の話とは関係ない
ElectronもTauriもWeb技術つまりHTML/CSS/JavaScriptでGUI部分が記述されWebブラウザと同じ
つまりWebブラウザと同じフレームワーク含めたコードとデータを使ってデスクトップアプリを作れることが利点
Visual Studio CodeがElectronで作られているようにほとんどの利用ではパフォーマンスに問題はなくマルチプラットフォームの恩恵もある
しかしそれらWeb技術ベースではなく直接GUIライブラリを呼び出したほうが少し速いし更にOS固有のライブラリを呼び出した方が少し速いのも当然だ
そこは何を重視するかで変わる
その例だとWinUIを直接呼び出す選択をしたという話だろう
その件はRustとC++の話とは関係ない
ElectronもTauriもWeb技術つまりHTML/CSS/JavaScriptでGUI部分が記述されWebブラウザと同じ
つまりWebブラウザと同じフレームワーク含めたコードとデータを使ってデスクトップアプリを作れることが利点
Visual Studio CodeがElectronで作られているようにほとんどの利用ではパフォーマンスに問題はなくマルチプラットフォームの恩恵もある
しかしそれらWeb技術ベースではなく直接GUIライブラリを呼び出したほうが少し速いし更にOS固有のライブラリを呼び出した方が少し速いのも当然だ
そこは何を重視するかで変わる
その例だとWinUIを直接呼び出す選択をしたという話だろう
482デフォルトの名無しさん
2023/06/20(火) 21:04:54.13ID:OJ/rnI9Q >>479だね、このタイミングで同時出現した理由は不明だけど
http://hissi.org/read.php/tech/20230620/RkRnWmV5ZW0.html
別スレみたら 複おじ=はちみつ はhissiで確定してるっぽい
仮に>>472が本当ならトリップ付きで表明しないと偽物が濡れ衣きせ放題だよね
でも今後も自演なりすまし、Rustでマウント嘘大げさばら撒く気満々だと思われ
http://hissi.org/read.php/tech/20230620/RkRnWmV5ZW0.html
別スレみたら 複おじ=はちみつ はhissiで確定してるっぽい
仮に>>472が本当ならトリップ付きで表明しないと偽物が濡れ衣きせ放題だよね
でも今後も自演なりすまし、Rustでマウント嘘大げさばら撒く気満々だと思われ
483デフォルトの名無しさん
2023/06/20(火) 21:15:52.12ID:OJ/rnI9Q ほら、これこれ>>481
なんの情報もない前置き、プロンプトエンジニアリングで消したいわ
最後の一文もRustからWinUI直呼び出来るのに、なんでRust却下だったのかは話逸らし
マイクロソフトが評価してGUIに向ていないと結論出したのが大きいよ
なんの情報もない前置き、プロンプトエンジニアリングで消したいわ
最後の一文もRustからWinUI直呼び出来るのに、なんでRust却下だったのかは話逸らし
マイクロソフトが評価してGUIに向ていないと結論出したのが大きいよ
484デフォルトの名無しさん
2023/06/20(火) 21:30:35.90ID:SQUZYpcX >>483
ちゃんと理解できているか?
元々C++で本体を書いていてGUI部分がElectronだったのをWinUIへ切り替えた話だぞ
当然C++による本体部分はそのままなのだからWinUI呼び出しにRustを使うわけがない
もし仮に元々Rustで本体を書いていてGUI部分がTauriだったのをWinUIへ切り替えるならばそこだけC++を使うわけないのと同じだ
ちゃんと理解できているか?
元々C++で本体を書いていてGUI部分がElectronだったのをWinUIへ切り替えた話だぞ
当然C++による本体部分はそのままなのだからWinUI呼び出しにRustを使うわけがない
もし仮に元々Rustで本体を書いていてGUI部分がTauriだったのをWinUIへ切り替えるならばそこだけC++を使うわけないのと同じだ
485デフォルトの名無しさん
2023/06/20(火) 21:50:52.83ID:yTQuVHz5 え?>>484はelectornアプリ書いたこと無いんかwww
旧Teamsのnative部分なんてほんのわずかだったと思うぞ
その僅かな部分さえRustに置き換えるメリットがないと
マイクロソフトが評価した
という事から目を逸らすなよ
旧Teamsのnative部分なんてほんのわずかだったと思うぞ
その僅かな部分さえRustに置き換えるメリットがないと
マイクロソフトが評価した
という事から目を逸らすなよ
486デフォルトの名無しさん
2023/06/20(火) 21:59:22.19ID:06Fb/Gz+ 本体のソースが僅かでもビルドツールを変えるのが超面倒くさそう
487デフォルトの名無しさん
2023/06/20(火) 22:05:38.07ID:yTQuVHz5 マイクロソフトが評価した:
ビルドツールを変えるメリットもなし
ビルドツールを変えるメリットもなし
488デフォルトの名無しさん
2023/06/20(火) 22:15:37.37ID:yTQuVHz5 >>471は大丈夫か?ちょっと心配になるレベル
489デフォルトの名無しさん
2023/06/20(火) 22:43:42.63ID:Z2DS3pTa >>485
GUIがメインのおもちゃなプログラムだとネイティブ部分がごく僅かもあるかもしれないけど
普通のプログラムならネイティブ部分が主要部だよ
もしGUI部分にはGUI以外も記述しているなら酷いよ
GUIがメインのおもちゃなプログラムだとネイティブ部分がごく僅かもあるかもしれないけど
普通のプログラムならネイティブ部分が主要部だよ
もしGUI部分にはGUI以外も記述しているなら酷いよ
490デフォルトの名無しさん
2023/06/20(火) 22:54:00.81ID:yTQuVHz5 >>489
一言だけ言うけどvscode最適化のblog見た方が良いよ
一言だけ言うけどvscode最適化のblog見た方が良いよ
491デフォルトの名無しさん
2023/06/21(水) 00:54:28.81ID:yg4jaQpK492デフォルトの名無しさん
2023/06/21(水) 01:34:53.97ID:9X2c1iiY デストラクタが呼ばれないバグまたは仕様が大量にありそう
2回呼ぶより0回の方がマシだから呼ばない
0回を1回に改善する度胸はC++には無さそうだ
2回呼ぶより0回の方がマシだから呼ばない
0回を1回に改善する度胸はC++には無さそうだ
493デフォルトの名無しさん
2023/06/21(水) 01:40:34.87ID:CWKUsltc494デフォルトの名無しさん
2023/06/21(水) 01:41:22.60ID:CWKUsltc >>492
???
???
495デフォルトの名無しさん
2023/06/21(水) 01:44:16.17ID:yg4jaQpK496デフォルトの名無しさん
2023/06/21(水) 01:48:00.26ID:hIXW3K+V497デフォルトの名無しさん
2023/06/21(水) 01:57:47.17ID:CWKUsltc498デフォルトの名無しさん
2023/06/21(水) 01:58:43.32ID:CWKUsltc >>492
ひょっとしてC++のデストラクタは手動で呼んでると思ってる?
ひょっとしてC++のデストラクタは手動で呼んでると思ってる?
499デフォルトの名無しさん
2023/06/21(水) 02:07:24.26ID:9X2c1iiY >>498
古いコードの互換性を切り捨てていないならそうなると思ってる
古いコードの互換性を切り捨てていないならそうなると思ってる
500デフォルトの名無しさん
2023/06/21(水) 02:09:24.33ID:CWKUsltc501デフォルトの名無しさん
2023/06/21(水) 02:10:15.27ID:yg4jaQpK >>497
どうせお前反応しないから書くわけないだろ
どうせお前反応しないから書くわけないだろ
502デフォルトの名無しさん
2023/06/21(水) 02:10:48.86ID:CWKUsltc >>501
反応するよ
反応するよ
503デフォルトの名無しさん
2023/06/21(水) 02:14:26.08ID:yg4jaQpK わかったから
何も理解してないのだから大人しくしとけ
何も理解してないのだから大人しくしとけ
504デフォルトの名無しさん
2023/06/21(水) 02:16:55.88ID:hIXW3K+V 理解と信頼を得るために、Rustを使う。いい判断だ
俺はC++でたくさんだ
俺はC++でたくさんだ
505デフォルトの名無しさん
2023/06/21(水) 02:24:38.85ID:CWKUsltc >>503
議論にならんだろ? 具体的に書けよ
議論にならんだろ? 具体的に書けよ
506デフォルトの名無しさん
2023/06/21(水) 02:26:49.12ID:yg4jaQpK 別にC++がダメとは思わない
最近の機能を駆使すれば相当安全なプログラムは書けると思う
ただあまりにもバッドパーツが多いのよ
最近の機能を駆使すれば相当安全なプログラムは書けると思う
ただあまりにもバッドパーツが多いのよ
507デフォルトの名無しさん
2023/06/21(水) 02:27:24.03ID:yg4jaQpK >>505
ヒント:オブジェクトのコピー時に起きることは?
ヒント:オブジェクトのコピー時に起きることは?
508デフォルトの名無しさん
2023/06/21(水) 02:33:04.46ID:hIXW3K+V509デフォルトの名無しさん
2023/06/21(水) 02:34:56.87ID:hIXW3K+V >>507
ヒント:オブジェクトのコピー時に実装者の脳内に起きることは?
ヒント:オブジェクトのコピー時に実装者の脳内に起きることは?
510デフォルトの名無しさん
2023/06/21(水) 02:35:56.67ID:CWKUsltc >>507
議論するならちゃんと書け
議論するならちゃんと書け
511デフォルトの名無しさん
2023/06/21(水) 02:38:30.13ID:yg4jaQpK ほら反応しないw
予想通りすぎてワラケテクル
予想通りすぎてワラケテクル
512デフォルトの名無しさん
2023/06/21(水) 02:39:26.43ID:yg4jaQpK513デフォルトの名無しさん
2023/06/21(水) 02:41:29.54ID:yg4jaQpK 結局発狂で終わるいつもの彼だった
514デフォルトの名無しさん
2023/06/21(水) 02:41:57.81ID:yg4jaQpK 寝る前におちょくれたから満足
おやすみー
おやすみー
515デフォルトの名無しさん
2023/06/21(水) 02:44:23.21ID:hIXW3K+V ちな俺も言い返せて満足したので寝る またな
516デフォルトの名無しさん
2023/06/21(水) 02:45:00.13ID:CWKUsltc517デフォルトの名無しさん
2023/06/21(水) 07:51:59.20ID:BoU8Mg0d 初めて書き込む者ですが
結局メモリ管理をプログラム言語に任せるか自分でやるかって差だと思うのですよ
メモリ管理でバグは出ると言う人はじゃあ言語にメモリ管理を任せてもバグは出るって事になるじゃないですか
最終的にメモリ管理をきっちできるかどうかできっちりできる人は自分で管理できるんですよ
結局メモリ管理をプログラム言語に任せるか自分でやるかって差だと思うのですよ
メモリ管理でバグは出ると言う人はじゃあ言語にメモリ管理を任せてもバグは出るって事になるじゃないですか
最終的にメモリ管理をきっちできるかどうかできっちりできる人は自分で管理できるんですよ
518デフォルトの名無しさん
2023/06/21(水) 08:16:06.70ID:SwjUevsl >>517
GoogleやMicrosoftやAmazonなどライバル同士のIT大手が手を取り合ってRust Foundationを設立しRustへ移行しつつある理由はメモリ管理だけでなくあらゆる点でRustが優れているためです
まずはRustも使いこなせるようになってみましょう
他のプログラミング言語と比べて優れていることを誰でも理解できるでしょう
食わず嫌いの人はこのスレに参加する権利がありません
GoogleやMicrosoftやAmazonなどライバル同士のIT大手が手を取り合ってRust Foundationを設立しRustへ移行しつつある理由はメモリ管理だけでなくあらゆる点でRustが優れているためです
まずはRustも使いこなせるようになってみましょう
他のプログラミング言語と比べて優れていることを誰でも理解できるでしょう
食わず嫌いの人はこのスレに参加する権利がありません
519デフォルトの名無しさん
2023/06/21(水) 08:42:12.23ID:uufs1S4J メモリ管理の事を言っただけで好き嫌いがあるという事にされて書く権利とか何故か自分に権利があるか如く言う人がいるのがrustなんですね
520デフォルトの名無しさん
2023/06/21(水) 08:46:53.83ID:PH1LdoZ4 まぁしかしこれが流行るかどうかのキモでもある
要は正解はひとつじゃないのに何でお前の見つけた正解だけでオレの流儀の正解は正解にしてもらえないの?オレの流儀でもうまく行ってるんだからほっといてくれや、小難しい言葉ばっかり使いやがって、ほっとけや‥となる
「コンパイラが間違いを見つけるチャンスを増やす」=「今までどうでも好きにできたものを“こっちにしろ”と強要される」わけでしかもそれで何か「今まで出来なかった事が何か新しくできるようになる」感じはほとんどないからな
使わない人は永遠に使わない気もする
要は正解はひとつじゃないのに何でお前の見つけた正解だけでオレの流儀の正解は正解にしてもらえないの?オレの流儀でもうまく行ってるんだからほっといてくれや、小難しい言葉ばっかり使いやがって、ほっとけや‥となる
「コンパイラが間違いを見つけるチャンスを増やす」=「今までどうでも好きにできたものを“こっちにしろ”と強要される」わけでしかもそれで何か「今まで出来なかった事が何か新しくできるようになる」感じはほとんどないからな
使わない人は永遠に使わない気もする
521デフォルトの名無しさん
2023/06/21(水) 08:55:22.51ID:/+I3kGvO > 食わず嫌いの人はこのスレに参加する権利がありません
ダウトw 食わず嫌いで愚痴ってる俺も混じってるぜw
>>1 のとおり、マなら、やれといわれたらやるんだが
自分用はねえ
あ、Rustのメモリ管理がC++にも来るのが前提な あれはいいものだ
ダウトw 食わず嫌いで愚痴ってる俺も混じってるぜw
>>1 のとおり、マなら、やれといわれたらやるんだが
自分用はねえ
あ、Rustのメモリ管理がC++にも来るのが前提な あれはいいものだ
522デフォルトの名無しさん
2023/06/21(水) 09:06:03.20ID:tOHaDLj+ メモリ管理もいいけどそれはオマケだな
Rustは各言語で育った最新のプログラミングパラダイムが有機的に洗練されて採り入れられていて書きやすい
C++にもそのうち一部はあるが継ぎ接ぎ増築のせいで使いにくく普及していない機能が多い
快適さが天と地ほど異なりC++には戻りたくない
Rustは各言語で育った最新のプログラミングパラダイムが有機的に洗練されて採り入れられていて書きやすい
C++にもそのうち一部はあるが継ぎ接ぎ増築のせいで使いにくく普及していない機能が多い
快適さが天と地ほど異なりC++には戻りたくない
523デフォルトの名無しさん
2023/06/21(水) 09:37:22.69ID:0qOyuZMD そうね
今からキメラCやるよりRustの方が合理的
今からキメラCやるよりRustの方が合理的
524デフォルトの名無しさん
2023/06/21(水) 10:22:22.83ID:3v7xwtLO Rustの独習本でたら買おうと待ってるんだが出ないな
需要がないのかな?
需要がないのかな?
525デフォルトの名無しさん
2023/06/21(水) 10:43:34.18ID:aGqo09sZ そう言えばRustメインでWebアプリを製作してるって日本の企業があった気がする。
526デフォルトの名無しさん
2023/06/21(水) 10:48:44.70ID:tOHaDLj+ このネット時代にどのプログラミング言語を学習するにしても書籍は不要だろう
どうしても書籍がいいなら本屋に何種類もRust本が並んでいるから好みのを買えばよい
おすすめはオライリーの『プログラミングRust 第2版』だがもっと入門に徹したものが欲しいなら立ち読みで探せ
どうしても書籍がいいなら本屋に何種類もRust本が並んでいるから好みのを買えばよい
おすすめはオライリーの『プログラミングRust 第2版』だがもっと入門に徹したものが欲しいなら立ち読みで探せ
527デフォルトの名無しさん
2023/06/21(水) 10:56:40.50ID:0qOyuZMD TRPLを日本語以外で読む
528デフォルトの名無しさん
2023/06/21(水) 11:09:23.56ID:LnEQtJHf >>520
Effective C++ってのを購入しないとC++の正解には到達できないんだろ?
Effective C++ってのを購入しないとC++の正解には到達できないんだろ?
529デフォルトの名無しさん
2023/06/21(水) 11:48:15.03ID:/+I3kGvO そのへんは教科書だし、そもそも仕様書が頭に入ってないとダメ
認めてもらおうと思ったらね
まあ図書館に置いてあればいっぺん目を通しとけ
認めてもらおうと思ったらね
まあ図書館に置いてあればいっぺん目を通しとけ
530デフォルトの名無しさん
2023/06/21(水) 12:06:18.55ID:aGqo09sZ Rustは以外とWeb系のバックエンドのライブラリ(例えばactix-webとか)はしっかりしてる印象がある。GUI,部分を担うTauriがもうちょい進化すれば、RustオンリーでWeb系は完結するようになるかも。
531デフォルトの名無しさん
2023/06/21(水) 12:56:03.51ID:iHjwZZoe532デフォルトの名無しさん
2023/06/21(水) 13:08:01.81ID:LnEQtJHf 強要しているのはRustでも数学でもないんだよなあ
生物学が色々なことを強要して炎上している
生物学が色々なことを強要して炎上している
533デフォルトの名無しさん
2023/06/21(水) 13:53:29.27ID:wPpPRD11 まぁメモリ管理に対しては一応納得いく強要かなとは思う
プログラマにメモリの確保、解放をさせない、データをコンストラクトした時点でメモリ確保、参照が終わった時点で解放
しかし一つのデータを複数の変数が参照しているとどの参照が無効になった時点で解放していいのか決定できないから“所有権”なる概念を導入する、いつ参照が終了したのか確定するために“ライフタイム”という概念の設定
もちろんどちらの概念もないとコンパイラはいつメモリを確保していつ解放していいかわからない、なのでプログラマはこの概念を理解して所有権とは何か、ライフタイムとは何か、どのように決まるのか理解しないといけない
まぁ鬱陶しいのはその概念を“全変数全クラス一律統一”のルールにしてるので“整数型”とか“プール型”みたいな“メモリの確保”もへったくれもない変数についてもそのルールが適用されるとこかな
すると極めて簡単なHellow Worldレベルのプログラムでさえ怒られる時があって“うぜー!ぎー!”とはなるな、確かに
なので学習コスト高めの批評につながる
プログラマにメモリの確保、解放をさせない、データをコンストラクトした時点でメモリ確保、参照が終わった時点で解放
しかし一つのデータを複数の変数が参照しているとどの参照が無効になった時点で解放していいのか決定できないから“所有権”なる概念を導入する、いつ参照が終了したのか確定するために“ライフタイム”という概念の設定
もちろんどちらの概念もないとコンパイラはいつメモリを確保していつ解放していいかわからない、なのでプログラマはこの概念を理解して所有権とは何か、ライフタイムとは何か、どのように決まるのか理解しないといけない
まぁ鬱陶しいのはその概念を“全変数全クラス一律統一”のルールにしてるので“整数型”とか“プール型”みたいな“メモリの確保”もへったくれもない変数についてもそのルールが適用されるとこかな
すると極めて簡単なHellow Worldレベルのプログラムでさえ怒られる時があって“うぜー!ぎー!”とはなるな、確かに
なので学習コスト高めの批評につながる
534デフォルトの名無しさん
2023/06/21(水) 17:26:07.24ID:1S9Lzf4M >>533
所有権も参照もC++にある概念でRust特有の話ではないだろ
ライフタイムはC++にないがプログラマーは意識していないとダングリング等を引き起こしかねないので意識してるだろ
>> “整数型”とか“プール型”みたいな“メモリの確保”もへったくれもない変数
この部分は意味がわからない
整数型でもブール型でもメモリの確保は必要だろ
型が違うとサイズが同じでも突然にメモリ確保が必要になったり不要になったりするのか?
それとも例えばサイズが4バイトだとメモリ確保が不要だが16バイトだとメモリ確保が必要とかそんな世界があるのか??(サイズ0は除く)
>> 極めて簡単なHellow Worldレベルのプログラムでさえ怒られる時があって“うぜー!ぎー!”
これは何を指しているか曖昧でよくわからんが
コンパイルエラーか何かでそこまで短気なやつはいないし
どんな機能でも使い方を数回間違えれば覚えるだろ
そんなことで詰まる人はどんな言語でもどんなシステムでもどんな機能でも対応無理だ
所有権も参照もC++にある概念でRust特有の話ではないだろ
ライフタイムはC++にないがプログラマーは意識していないとダングリング等を引き起こしかねないので意識してるだろ
>> “整数型”とか“プール型”みたいな“メモリの確保”もへったくれもない変数
この部分は意味がわからない
整数型でもブール型でもメモリの確保は必要だろ
型が違うとサイズが同じでも突然にメモリ確保が必要になったり不要になったりするのか?
それとも例えばサイズが4バイトだとメモリ確保が不要だが16バイトだとメモリ確保が必要とかそんな世界があるのか??(サイズ0は除く)
>> 極めて簡単なHellow Worldレベルのプログラムでさえ怒られる時があって“うぜー!ぎー!”
これは何を指しているか曖昧でよくわからんが
コンパイルエラーか何かでそこまで短気なやつはいないし
どんな機能でも使い方を数回間違えれば覚えるだろ
そんなことで詰まる人はどんな言語でもどんなシステムでもどんな機能でも対応無理だ
535デフォルトの名無しさん
2023/06/21(水) 17:45:46.05ID:gSq+Wc2A >>534
まぁ、そこらへんは多分ほんとにコンパイラ自分で作ってみるくらいの事しないと分かりにくいかもな
ここがわからないとそもそもopy treitとは何かの意味がわからんからな
意味がわからなくても「これはcopy trait、これは違う、何故か、わからなくても全部暗記」でも乗り越えられなくはないけど
まぁ、そこらへんは多分ほんとにコンパイラ自分で作ってみるくらいの事しないと分かりにくいかもな
ここがわからないとそもそもopy treitとは何かの意味がわからんからな
意味がわからなくても「これはcopy trait、これは違う、何故か、わからなくても全部暗記」でも乗り越えられなくはないけど
536デフォルトの名無しさん
2023/06/21(水) 18:06:26.11ID:pPTmuDvO >>535
根本的な理解ができていないようだな
Copyトレイトを実装しているか否かに関わらず当然どちらもメモリの確保が必要
例えば
// Copy非実装型
struct Foo(i32);
// Copy実装型
#[derive(Copy,Clone)]
struct Bar(i32);
型Fooも型Barも当然どちらもメモリの確保が必要
根本的な理解ができていないようだな
Copyトレイトを実装しているか否かに関わらず当然どちらもメモリの確保が必要
例えば
// Copy非実装型
struct Foo(i32);
// Copy実装型
#[derive(Copy,Clone)]
struct Bar(i32);
型Fooも型Barも当然どちらもメモリの確保が必要
537デフォルトの名無しさん
2023/06/21(水) 18:07:23.44ID:iHjwZZoe まぁ、基本は
スタック is GOD.
再帰構造 is GOD.
という話なんですけどね。
型厳密なFORCEとかできんかね。
スタック is GOD.
再帰構造 is GOD.
という話なんですけどね。
型厳密なFORCEとかできんかね。
538デフォルトの名無しさん
2023/06/21(水) 18:09:14.14ID:gSq+Wc2A あぁ根本的にわかってなかったわオレ
539デフォルトの名無しさん
2023/06/21(水) 18:12:04.35ID:Ak6ZR8qs 普通にRustの仕組みを誤解してるんだと思うわ
一番問題なのは借用と値渡しを混同してると思うところ
一番問題なのは借用と値渡しを混同してると思うところ
540デフォルトの名無しさん
2023/06/21(水) 18:29:37.38ID:pPTmuDvO というか言語に関係なく
サイズ0でなければメモリの確保が必要
これはメモリを使うコンピュータの基本常識
もちろんコンパイル最適化によって生成コードレベルではレジスタ利用のみに成りうる場合もあるが
それは環境依存であるとともに言語レベルでは関係ない話
サイズ0でなければメモリの確保が必要
これはメモリを使うコンピュータの基本常識
もちろんコンパイル最適化によって生成コードレベルではレジスタ利用のみに成りうる場合もあるが
それは環境依存であるとともに言語レベルでは関係ない話
541デフォルトの名無しさん
2023/06/21(水) 18:34:15.18ID:NExILAZp TがCopyならば&Tを渡されても全く問題ない、とは言い切れない
呼び出し直前にコピーし参照が消滅してから値渡しすれば&mut Tを得られる可能性がある
呼び出し直前にコピーし参照が消滅してから値渡しすれば&mut Tを得られる可能性がある
542デフォルトの名無しさん
2023/06/21(水) 18:43:06.10ID:pPTmuDvO543デフォルトの名無しさん
2023/06/21(水) 19:02:31.10ID:Ak6ZR8qs なんで借用が使われてるか分かってない人が書いてるから
そこに乗っかって言いたいことを言い続けても話が長引くだけで不毛だから
そこに乗っかって言いたいことを言い続けても話が長引くだけで不毛だから
544デフォルトの名無しさん
2023/06/21(水) 19:58:12.70ID:Vhws5a0p 借用とは参照の受け渡しに過ぎず
参照とはライフタイム付きのポインタ(アドレス)に過ぎないから
C言語のポインタさえ理解している人ならば理解に困らない
その上でデータ競合防止のための単純な借用制限ルールを把握すれば基本は完了
ここはすぐに学習が終わるところ
混乱ないように補足しておくと
単体の参照はアドレスのみだか
連続体の参照はアドレス+長さの対
dynの参照はアドレス+vtableアドレスの対
参照は以上3種類
ちなみに例えばVecがアドレス+長さ+キャパシティを持つのは参照とは無関係でVecの構造体データ自体
それを&Vec<T>として参照すらならその構造体データを指すアドレスとなるし
&[T]として参照するならばVecの構造体データを指さずに中身のアドレス+長さの対の参照となる
その違いまでを理解できたら終わり
参照とはライフタイム付きのポインタ(アドレス)に過ぎないから
C言語のポインタさえ理解している人ならば理解に困らない
その上でデータ競合防止のための単純な借用制限ルールを把握すれば基本は完了
ここはすぐに学習が終わるところ
混乱ないように補足しておくと
単体の参照はアドレスのみだか
連続体の参照はアドレス+長さの対
dynの参照はアドレス+vtableアドレスの対
参照は以上3種類
ちなみに例えばVecがアドレス+長さ+キャパシティを持つのは参照とは無関係でVecの構造体データ自体
それを&Vec<T>として参照すらならその構造体データを指すアドレスとなるし
&[T]として参照するならばVecの構造体データを指さずに中身のアドレス+長さの対の参照となる
その違いまでを理解できたら終わり
545デフォルトの名無しさん
2023/06/21(水) 20:01:59.11ID:NExILAZp なぜコードを出さないかというと強要されてないから
まさか強要が好きな人はいないよね
まさか強要が好きな人はいないよね
546デフォルトの名無しさん
2023/06/21(水) 20:27:21.64ID:Ak6ZR8qs この件にとやかく言うつもりないけど
ずっとレジスタに乗ったままの変数ならメモリは確保しなくてもいいんじゃないかと思うけど
xorの後カウントとか何かの値をレジスタに入れてそれを使って判定してそのまま消えるとか
関数抜けるときレジスタに入れっぱなしとか
検証する気もないが
ずっとレジスタに乗ったままの変数ならメモリは確保しなくてもいいんじゃないかと思うけど
xorの後カウントとか何かの値をレジスタに入れてそれを使って判定してそのまま消えるとか
関数抜けるときレジスタに入れっぱなしとか
検証する気もないが
547デフォルトの名無しさん
2023/06/21(水) 20:28:47.54ID:RAQbywAa C/C++理解してたらそんなゴミみたいな質問は出てこないのだけどな
いきなりrustやってもわからんというのが俺の持論
いきなりrustやってもわからんというのが俺の持論
548デフォルトの名無しさん
2023/06/21(水) 20:33:13.90ID:RAQbywAa >>546
レジスタに乗せるのはメモリからだよ?
レジスタに乗せるのはメモリからだよ?
549デフォルトの名無しさん
2023/06/21(水) 20:34:50.23ID:Ak6ZR8qs xorの後の意味が分かってなさそう
gcc -Sでアセンブリに変えてみてるとそういう挙動に見えるんだから
gcc -Sでアセンブリに変えてみてるとそういう挙動に見えるんだから
550デフォルトの名無しさん
2023/06/21(水) 20:51:37.32ID:W7d/0xn7 >>546
最終的にレジスタ演算のみで完結したとしてもそれは各CPU等のアーキテクチャ毎に最適化したコード生成レベルの話
プログラミング言語レベルの話ではない
例えばレジスタを持たない仮想機械でも動かせる
最終的にレジスタ演算のみで完結したとしてもそれは各CPU等のアーキテクチャ毎に最適化したコード生成レベルの話
プログラミング言語レベルの話ではない
例えばレジスタを持たない仮想機械でも動かせる
551デフォルトの名無しさん
2023/06/21(水) 21:50:11.61ID:fcVVYIqb ほんとこのスレのレベルときたらww
552デフォルトの名無しさん
2023/06/21(水) 22:00:07.36ID:yg4jaQpK 無知なのは仕方ないが積み重ねてる感じが一切ないんだよな
まっっっっっったく学習してないというかなんというか
まっっっっっったく学習してないというかなんというか
553デフォルトの名無しさん
2023/06/21(水) 22:32:22.16ID:96H1cmJ1 【プログラミング言語】企業が求めるエンジニア言語ランキング 2位「R」、3位「Go」 1位は? 企業DB運営会社が発表 [すらいむ★]
https://egg.5ch.net/test/read.cgi/scienceplus/1687350694/
Rustがランキング入りしてない
https://egg.5ch.net/test/read.cgi/scienceplus/1687350694/
Rustがランキング入りしてない
554デフォルトの名無しさん
2023/06/21(水) 22:39:28.03ID:LxMKpynY RustaceanはMicrosoftで働くんで
555デフォルトの名無しさん
2023/06/21(水) 23:08:25.74ID:ZJTVCC4y コンパイル先で使えるレジスタが0本か100本かわからないので全てメモリ上に確保して進められる
参照を渡すならばレジスタが余っていようとレジスタへの最適化はできない
しかし参照渡しを値渡しに最適化してしまいレジスタを使う可能性もありうる
いずれにせよレジスタの存在は忘れてプログラミングすることになる
参照を渡すならばレジスタが余っていようとレジスタへの最適化はできない
しかし参照渡しを値渡しに最適化してしまいレジスタを使う可能性もありうる
いずれにせよレジスタの存在は忘れてプログラミングすることになる
556デフォルトの名無しさん
2023/06/21(水) 23:27:01.13ID:NExILAZp 要するに物理的事情で強要されるのは許せるが数学的に強要されるのは許せないと
557デフォルトの名無しさん
2023/06/22(木) 00:08:59.97ID:rxgTyL0O558デフォルトの名無しさん
2023/06/22(木) 00:20:09.63ID:lCfUltlm559デフォルトの名無しさん
2023/06/22(木) 00:34:12.55ID:3JQlcWdL560デフォルトの名無しさん
2023/06/22(木) 00:35:21.97ID:Sopf/1Je 企業はRust使いを望んでないのか
俺は硬い書き味への期待で個人で使うつもりで学んでる
身に付けるまでに多少の苦労があっても恩恵がデカすぎると思ってるから
つーのもts書いてるとjsとかP系言語で新規に何か書く気になれねえんだよな。tsの型なんて言ってしまえば柔軟性優先のユルユルでしかないのに、もうそれがないところには戻りたくない
またwasmをホイホイ使えるようになれば、有象無象のWEB系人材の中では多少マシな立ち回りができるんじゃないかと期待してるから
つまり個人の戦略としては、企業の求める人材像に伸るか反るかとは別であっても良いんじゃないの
俺は硬い書き味への期待で個人で使うつもりで学んでる
身に付けるまでに多少の苦労があっても恩恵がデカすぎると思ってるから
つーのもts書いてるとjsとかP系言語で新規に何か書く気になれねえんだよな。tsの型なんて言ってしまえば柔軟性優先のユルユルでしかないのに、もうそれがないところには戻りたくない
またwasmをホイホイ使えるようになれば、有象無象のWEB系人材の中では多少マシな立ち回りができるんじゃないかと期待してるから
つまり個人の戦略としては、企業の求める人材像に伸るか反るかとは別であっても良いんじゃないの
561デフォルトの名無しさん
2023/06/22(木) 01:00:34.66ID:tBxE2vDE もっと有害な物がいくらでもある
企業が求めてないけど無害な物をいちいち問題視するのは安全第一ではない視点
企業が求めてないけど無害な物をいちいち問題視するのは安全第一ではない視点
562デフォルトの名無しさん
2023/06/22(木) 05:55:26.99ID:Ais208bK563デフォルトの名無しさん
2023/06/22(木) 06:28:24.38ID:jA6oBQqU 上の方で出てたけど、webから来た人とRustは相性はいいみたいね
ニーズも合う 確実にマルチスレッドだし、セキュリティに関しては最前線だし
ニーズも合う 確実にマルチスレッドだし、セキュリティに関しては最前線だし
564デフォルトの名無しさん
2023/06/22(木) 06:30:48.10ID:sqPUKGaH >>553
Rustじゃ何も作れないんだからしゃーない
Rustじゃ何も作れないんだからしゃーない
565デフォルトの名無しさん
2023/06/22(木) 07:29:12.62ID:GA9cMKb9 >>559
LLVM IRのレジスタはCPUのレジスタとは全く別物
LLVM IRのレジスタは書き換えができない一方で無限の個数を持ててCPUのレジスタとは真逆の性質を持つ
あくまでも中間言語であって各プログラミング言語とも各CPUアーキテクチャとも独立している
一方C++やRustなどのプログラミング言語の変数においてレジスタは直接無関係で仮定されない
(staticでない)ローカル変数はスタック上にそのメモリ領域を確保したものとして動作するとみなしてよい
そのためレジスタを持たないWebAssemblyでも動作することができる
レジスタを持つ環境ではそのコード生成時の最適化でレジスタ利用ももちろん可能
各プログラミング言語とレジスタは直接関係ない
LLVM IRのレジスタはCPUのレジスタとは全く別物
LLVM IRのレジスタは書き換えができない一方で無限の個数を持ててCPUのレジスタとは真逆の性質を持つ
あくまでも中間言語であって各プログラミング言語とも各CPUアーキテクチャとも独立している
一方C++やRustなどのプログラミング言語の変数においてレジスタは直接無関係で仮定されない
(staticでない)ローカル変数はスタック上にそのメモリ領域を確保したものとして動作するとみなしてよい
そのためレジスタを持たないWebAssemblyでも動作することができる
レジスタを持つ環境ではそのコード生成時の最適化でレジスタ利用ももちろん可能
各プログラミング言語とレジスタは直接関係ない
566デフォルトの名無しさん
2023/06/22(木) 09:53:39.17ID:kNfUaD9C futures::select を macro で使いたいんだが
use futures::{pin_mut, selct, future::FutureExt};
だと select! が無いと言われ
use futures::{pin_mut, future::{FutureExt, selct}};
だと select() は function だと言われる
select! どこいったし
use futures::{pin_mut, selct, future::FutureExt};
だと select! が無いと言われ
use futures::{pin_mut, future::{FutureExt, selct}};
だと select() は function だと言われる
select! どこいったし
567デフォルトの名無しさん
2023/06/22(木) 09:55:38.17ID:kNfUaD9C568デフォルトの名無しさん
2023/06/22(木) 10:01:29.99ID:kNfUaD9C569デフォルトの名無しさん
2023/06/22(木) 10:04:09.32ID:kNfUaD9C570デフォルトの名無しさん
2023/06/22(木) 11:04:46.33ID:kNfUaD9C >>566 自己解決しましたほんとうにありがとうございました
571デフォルトの名無しさん
2023/06/22(木) 12:19:03.55ID:6tUlm0fw まぁ覚えても仕事で使う人はほとんどいないだろうから覚えてもおそらく1円の特にもならない人がほとんどやろ
そう言う人が覚えるメリットはないし覚えなくてもいいやろな
オレは大学でソフトウェア工学やってたから興味あるので勉強するけどそうでもなけりゃやる意味ないかもな
そう言う人が覚えるメリットはないし覚えなくてもいいやろな
オレは大学でソフトウェア工学やってたから興味あるので勉強するけどそうでもなけりゃやる意味ないかもな
572デフォルトの名無しさん
2023/06/22(木) 13:08:06.44ID:uVGpMx3S >>571
やって来た言語の一覧と感想書いてみて
やって来た言語の一覧と感想書いてみて
573デフォルトの名無しさん
2023/06/22(木) 13:48:40.36ID:dV8803l+ >>572
言うほどないけど
BASIC : 最初の一歩には最適かな?
C : 感動したな
Perl : さらっとなんかやりたい時は便利だった
Objective-C : NeXTでやった、大学時代、最先端やってる感だったけど、GUI周りがサクサクできるのは楽しかったかな
Eiffel : これも大学時代、Object指向大流行の時代、まぁ学術的な意味しかない感じ
Lisp : 計算論の勉強のときに必須だった、ともかく大学時代の勉強で後で実務に役に立ったものはない、しかし勉強して無意味だったとはもちろん思わないんだけどね
C++ : 就職してから、仕事で覚えた、イヤもなんもなし、できなきゃ飯が食えん、まぁ文句なしの業界標準
JAVA : コレも仕事、職場であったけど自分であんま組んだ事ない、できたコード見て綺麗やなとは思った
Javascript : コレは組んだ事もほとんどないくせに教えさせられた、必然的に憶えたけど
Haskell : 趣味、関数型流行の先駆け、久々のLisp系、ちょっと感動、流行ってほしかったけどいつの間にか消えてしまって残念
Rust : 現在趣味で勉強中、コレも消えちゃうのかな
言うほどないけど
BASIC : 最初の一歩には最適かな?
C : 感動したな
Perl : さらっとなんかやりたい時は便利だった
Objective-C : NeXTでやった、大学時代、最先端やってる感だったけど、GUI周りがサクサクできるのは楽しかったかな
Eiffel : これも大学時代、Object指向大流行の時代、まぁ学術的な意味しかない感じ
Lisp : 計算論の勉強のときに必須だった、ともかく大学時代の勉強で後で実務に役に立ったものはない、しかし勉強して無意味だったとはもちろん思わないんだけどね
C++ : 就職してから、仕事で覚えた、イヤもなんもなし、できなきゃ飯が食えん、まぁ文句なしの業界標準
JAVA : コレも仕事、職場であったけど自分であんま組んだ事ない、できたコード見て綺麗やなとは思った
Javascript : コレは組んだ事もほとんどないくせに教えさせられた、必然的に憶えたけど
Haskell : 趣味、関数型流行の先駆け、久々のLisp系、ちょっと感動、流行ってほしかったけどいつの間にか消えてしまって残念
Rust : 現在趣味で勉強中、コレも消えちゃうのかな
574デフォルトの名無しさん
2023/06/22(木) 15:55:25.89ID:wLpLG8yK575デフォルトの名無しさん
2023/06/22(木) 17:21:07.81ID:8oSiMZ4Q アセンブラとか含まないんだ…。(自分ならお約束的にZ80とか混ぜてる
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 中国側が首相答弁の撤回要求、日本側拒否 [夜のけいちゃん★]
- 債券・円・株「トリプル安」に…長期金利1.755%まで上昇、円は対ユーロで史上最安値 [蚤の市★]
- 映画「鬼滅の刃」の興行収入急減、日本行き航空券大量キャンセル…中国メディア報道 [蚤の市★]
- 日本行き空路49万件キャンセル 中国自粛呼びかけ 日本行きチケット予約の約32%に相当 ★5 [ぐれ★]
- 【音楽】Perfume・あ~ちゃんの結婚相手「一般男性」は吉田カバンの社長・吉田幸裕氏(41) 高身長で山本耕史似 [Ailuropoda melanoleuca★]
- 【大分】佐賀関で大規模火災、170棟以上が延焼中 70代男性1人と連絡取れず [ぐれ★]
- 【悲報】中国営業に熱心な日本人タレントたち、中国のイベントが続々と中止に… まだ予定中のアイドルとか歌手とかたくさんいるけど [452836546]
- 麻生太郎氏、高市政権と距離を置きはじめる(´・ω・`) [399259198]
- 自閉症が「んなっしょい」と連呼するお🏡
- 【悲報】SP500今日も暴落で完全に世界恐慌。高市恐慌として全世界で語り継がれそう [686538148]
- トヨタ、反日だった。2027年に中国にレクサスのEV工場を設立。高市 [931948549]
- 【悲報】高市効果で「1ドル=160円」が相場へwwwwwwwwwwwwwwwwwwwwwwwwwwwww 止まらぬ高市円安💥💥 [871926377]
