探検
結局C++とRustってどっちが良いの?
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2023/02/25(土) 09:49:46.74ID:VRyB88xR C++の色々配慮してめんどくさい感じは好きだけど、実務になったらメモリ安全性とか考えて今後Rustに変わっていくんかな?
103デフォルトの名無しさん
2023/03/02(木) 23:06:33.64ID:4/ee2SHc104デフォルトの名無しさん
2023/03/03(金) 06:56:09.99ID:3EPD3050 >>99
その「特殊な組み込み環境」とやらでもC/C++は使えるからね。
C++はフルには要らんかもだけど、
クラスと継承は組み込みとかでも便利に使われてたりするね。
できることが大差ないとすると、仕事でRustを使えと言われない限り、個人レベルで積極的に使う理由に乏しいかなぁ。
個人でメンテできる程度だとメモリ安全ってそれほど重要ポイントではないし。
PythonにとってのAIみたいに、こういうアプリケーションなら、C/C++より遥かに楽で簡単に実現できるというものが必要なのではないかな。
今の段階じゃ、メモリ安全にするために制約やチェックを厳しくしたC/C++ってだけって感じだもの。
その「特殊な組み込み環境」とやらでもC/C++は使えるからね。
C++はフルには要らんかもだけど、
クラスと継承は組み込みとかでも便利に使われてたりするね。
できることが大差ないとすると、仕事でRustを使えと言われない限り、個人レベルで積極的に使う理由に乏しいかなぁ。
個人でメンテできる程度だとメモリ安全ってそれほど重要ポイントではないし。
PythonにとってのAIみたいに、こういうアプリケーションなら、C/C++より遥かに楽で簡単に実現できるというものが必要なのではないかな。
今の段階じゃ、メモリ安全にするために制約やチェックを厳しくしたC/C++ってだけって感じだもの。
105デフォルトの名無しさん
2023/03/03(金) 07:13:09.62ID:5+VE8dsn Rustは後発なアドバンテージで
洗練されたモダンな言語仕様のため非常に書きやすい
これが一番大きなメリット
おまけとしてメモリ安全性の自動保証とデータ競合なしの保証
これらにおかげでC/C++で書いてた時に無駄に必要だった実行時デバッグが激減して消えた
Rustは開発効率が大きく向上する
洗練されたモダンな言語仕様のため非常に書きやすい
これが一番大きなメリット
おまけとしてメモリ安全性の自動保証とデータ競合なしの保証
これらにおかげでC/C++で書いてた時に無駄に必要だった実行時デバッグが激減して消えた
Rustは開発効率が大きく向上する
106デフォルトの名無しさん
2023/03/03(金) 09:31:41.76ID:oC7cFOXy107デフォルトの名無しさん
2023/03/03(金) 13:09:51.97ID:t7eEMnCD >>106
どこが似てんだよ何も区別付かないアフォ
どこが似てんだよ何も区別付かないアフォ
108デフォルトの名無しさん
2023/03/03(金) 13:21:04.67ID:mNTxopBi おちんちんランドへおいでよ!
109デフォルトの名無しさん
2023/03/03(金) 13:21:58.74ID:PdMH/ctM altJSブームが落ち着いたせいで下火になっちゃったけど
やっぱりHaxeは復活すべきだよな
やっぱりHaxeは復活すべきだよな
110デフォルトの名無しさん
2023/03/03(金) 13:26:08.63ID:HbtHbRsb111デフォルトの名無しさん
2023/03/03(金) 16:49:35.55ID:lJwnZSPr >>110
しかも、Javaの普及速度は物凄く速かったが、Rustは伸びてない。
しかも、Javaの普及速度は物凄く速かったが、Rustは伸びてない。
112デフォルトの名無しさん
2023/03/03(金) 19:36:46.54ID:NsCHD7Iu >>91 >>110
プログラミング言語の一般的な基礎知識を持たない人がRustのアンチをやっているのかしら
JavaがCやC++に置き換わらなかった理由の一つはJavaがガベージコレクション必須の言語だからですよ
CやC++の置き換えとなるためにはGCを必要としないプログラミング言語でないとダメなんですよ
GCを必要としない言語も数少ないながら今までいくつか出て来たのになぜCやC++を置き換えられなかったか分かりますか?
CやC++で問題となってきたのはメモリ操作の安全性とデータ競合の安全性です
それらを完璧に対応して言語自体が安全性を保証する言語が今までなかったからですよ
Rustが初めて対応して初めて真にCやC++を置き換えられるようになりました
だからIT大手各社がライバル関係を超えて共同してRustを支援そして採用しているのですよ
プログラミング言語の一般的な基礎知識を持たない人がRustのアンチをやっているのかしら
JavaがCやC++に置き換わらなかった理由の一つはJavaがガベージコレクション必須の言語だからですよ
CやC++の置き換えとなるためにはGCを必要としないプログラミング言語でないとダメなんですよ
GCを必要としない言語も数少ないながら今までいくつか出て来たのになぜCやC++を置き換えられなかったか分かりますか?
CやC++で問題となってきたのはメモリ操作の安全性とデータ競合の安全性です
それらを完璧に対応して言語自体が安全性を保証する言語が今までなかったからですよ
Rustが初めて対応して初めて真にCやC++を置き換えられるようになりました
だからIT大手各社がライバル関係を超えて共同してRustを支援そして採用しているのですよ
113デフォルトの名無しさん
2023/03/03(金) 20:45:25.65ID:56kfvkVg114デフォルトの名無しさん
2023/03/03(金) 21:06:34.40ID:NsCHD7Iu >>113
その>>77を見てみましたがリアルタイム性の話ですか
それは直接はプログラミング言語とは関係ない話ですが少し関係がありますね
言語に関わらず作成したシステム側の話でOSからゲームのようなアプリまで必要とされる時間的制約があることをリアルタイム性と言います
もちろんガベージコレクションはリアルタイム性の障害となりますのでそれを軽減する手法を取ったりリアルタイム性を必要としないタイミングでGCを実行します
しかしそれでも現実的なOSや基幹システムでGC言語の利用は厳しいでしょう
そのためOSなどの記述にはCやC++やRustが使われます
メモリ安全性などの保証をプログラマーではなく言語システムに任せることができるRustがベストとなります
その>>77を見てみましたがリアルタイム性の話ですか
それは直接はプログラミング言語とは関係ない話ですが少し関係がありますね
言語に関わらず作成したシステム側の話でOSからゲームのようなアプリまで必要とされる時間的制約があることをリアルタイム性と言います
もちろんガベージコレクションはリアルタイム性の障害となりますのでそれを軽減する手法を取ったりリアルタイム性を必要としないタイミングでGCを実行します
しかしそれでも現実的なOSや基幹システムでGC言語の利用は厳しいでしょう
そのためOSなどの記述にはCやC++やRustが使われます
メモリ安全性などの保証をプログラマーではなく言語システムに任せることができるRustがベストとなります
115デフォルトの名無しさん
2023/03/03(金) 21:20:32.28ID:qLiBhaKu エアプするにしてもせめてthe embedded bookくらいざっくり読んでからにすればいいのに
116デフォルトの名無しさん
2023/03/03(金) 21:26:29.88ID:HbtHbRsb117デフォルトの名無しさん
2023/03/03(金) 21:48:53.60ID:IWtB3OsL120デフォルトの名無しさん
2023/03/03(金) 22:54:44.50ID:3xVHehJY ここが新しい隔離スレちゃんですか
121デフォルトの名無しさん
2023/03/03(金) 23:40:18.48ID:DSH9vzOS ここは純粋にC++とRustの比較スレ
しかし無関係なGC言語を持ち出してくるバカがいてそれを邪魔をしているようだ
しかし無関係なGC言語を持ち出してくるバカがいてそれを邪魔をしているようだ
122デフォルトの名無しさん
2023/03/03(金) 23:41:20.65ID:kiJ4JQPs 実務経験の乏しい人が言語機能だけで頭でっかちなアピールしてるのを見ると狙ってアンチ活動してるのかと勘繰りたくなるよね
まぁ隔離ファイト続けてくれ
まぁ隔離ファイト続けてくれ
123デフォルトの名無しさん
2023/03/03(金) 23:57:24.37ID:gZNQib4P それらの言語を実際に書いて使っていればガッべージコレクションのある言語がC言語系を置き換えできないことくらい分かるはずだもんなー
124デフォルトの名無しさん
2023/03/04(土) 02:04:08.56ID:OUzFL/z0 WinAPI/ATL/MFCの系譜をWinFormsが現れて.NETが置き換えていった歴史は無かったことにされたらしい
125デフォルトの名無しさん
2023/03/04(土) 05:09:33.55ID:zMMeSguG CやC++に置き換わる言語の話でWinAPIやWinFormsを持ち出してくるとは頭おかしいな
126デフォルトの名無しさん
2023/03/04(土) 10:37:16.20ID:4/pts6A0 C#もGCないネイティブでビルドするオプションがあったら天下取れたかもな
VB6はGC無かったのになぜこうなった
VB6はGC無かったのになぜこうなった
127デフォルトの名無しさん
2023/03/04(土) 10:41:49.65ID:CDmz22lO128デフォルトの名無しさん
2023/03/04(土) 10:54:13.03ID:RFNVa0Qi >>114
chatGPTの回答に似てるなωωω
chatGPTの回答に似てるなωωω
129デフォルトの名無しさん
2023/03/04(土) 10:59:11.20ID:RFNVa0Qi130デフォルトの名無しさん
2023/03/04(土) 11:05:58.63ID:54Un32Sk >>129
「CやC++に置き換わる言語の話」なんて誰もしていない
「CやC++に取って代わる」あるいは「CやC++を置き換える」と言いたいのだろう
あるいは本気で「CやC++に置き換わる言語の話」をしているのなら今度こそ本当に頭がおかしいな
「CやC++に置き換わる言語の話」なんて誰もしていない
「CやC++に取って代わる」あるいは「CやC++を置き換える」と言いたいのだろう
あるいは本気で「CやC++に置き換わる言語の話」をしているのなら今度こそ本当に頭がおかしいな
131デフォルトの名無しさん
2023/03/04(土) 11:14:10.28ID:RFNVa0Qi それがてにをはどどう関係あるの?
132デフォルトの名無しさん
2023/03/04(土) 11:23:10.42ID:33wAkDSd >>126
VB6はトレースGCではないけど参照カウンタGC方式のGC言語
VB6オブジェクトは裏で参照カウンタが自動的に使われていてそれにより使われなくなったメモリを回収している
ちなみにC++のshared_ptrなども参照カウンタ方式だが裏で勝手に使われることはなく必須でもなくプログラマー裁量なのでC++はGC言語ではない
VB6はトレースGCではないけど参照カウンタGC方式のGC言語
VB6オブジェクトは裏で参照カウンタが自動的に使われていてそれにより使われなくなったメモリを回収している
ちなみにC++のshared_ptrなども参照カウンタ方式だが裏で勝手に使われることはなく必須でもなくプログラマー裁量なのでC++はGC言語ではない
133デフォルトの名無しさん
2023/03/04(土) 11:59:27.29ID:Ss9j+0Cw Rustに期待している人のフラストレーションを解消したいなら
フルスクラッチでOSを書くくらいしか方法はないだろうね
OSの普及は更に至難の技だけども
フルスクラッチでOSを書くくらいしか方法はないだろうね
OSの普及は更に至難の技だけども
134デフォルトの名無しさん
2023/03/04(土) 12:08:40.51ID:2fdiw2OM (実務経験ゼロ + 論理的思考力の欠落 + 自己愛性パーソナリティ障害) * Rustへの執着 = 通称複製おじさん
135デフォルトの名無しさん
2023/03/04(土) 12:51:29.76ID:SdQ3Tgr2 |
| 彡⌒ミ
\ (´・ω・`)またGCの話してる
(| |)::::
(γ /:::::::
し \:::
\
| 彡⌒ミ
\ (´・ω・`)またGCの話してる
(| |)::::
(γ /:::::::
し \:::
\
136デフォルトの名無しさん
2023/03/05(日) 00:54:23.16ID:OH6jTTZv うるせー馬鹿
137デフォルトの名無しさん
2023/03/05(日) 00:59:18.56ID:eidG4gk+ >>133
フルスクラッチの新たなOSを普及させるのは難しいだろうが
>>74に記事があるようにGoogleがRustのみで新OSを作ってるな
あとAndroidもLinuxもWindowsもRustの一部採用を始めて
この流れはOSに限らず全てのシステムでRust化が進んでいくのだろう
GoogleとMicrosoftがRust言語でOS開発
https://xtech.nikkei.com/atcl/nxt/column/18/00692/042700054/
フルスクラッチの新たなOSを普及させるのは難しいだろうが
>>74に記事があるようにGoogleがRustのみで新OSを作ってるな
あとAndroidもLinuxもWindowsもRustの一部採用を始めて
この流れはOSに限らず全てのシステムでRust化が進んでいくのだろう
GoogleとMicrosoftがRust言語でOS開発
https://xtech.nikkei.com/atcl/nxt/column/18/00692/042700054/
138デフォルトの名無しさん
2023/03/05(日) 09:30:23.81ID:B0+xSixt139デフォルトの名無しさん
2023/03/05(日) 10:00:51.19ID:N4QaJnep 私はRustで年収1億稼ぎましたみたいな話はないのかよ
マイナープロジェクトでちょっと使われたら勝利なのかよ
マイナープロジェクトでちょっと使われたら勝利なのかよ
140デフォルトの名無しさん
2023/03/05(日) 11:14:29.69ID:/Qd0pRlS Winnyの作者みたいに逮捕されるかと思ったら怖くて無理
141デフォルトの名無しさん
2023/03/05(日) 11:34:54.12ID:ukOUhlGm 話し飛躍しすぎでしょ
142デフォルトの名無しさん
2023/03/05(日) 11:49:22.14ID:nmaj3sub Rustで検証してうまくいったらそのままCにコンバートすれば余計なチェックコードが削れてる速く動く
とかね。
とかね。
143デフォルトの名無しさん
2023/03/05(日) 14:28:35.02ID:FAqgXVt3 てかGCって別に悪いもんじゃねぇしな
144デフォルトの名無しさん
2023/03/05(日) 14:30:11.56ID:FAqgXVt3145デフォルトの名無しさん
2023/03/05(日) 14:54:49.80ID:B0+xSixt146デフォルトの名無しさん
2023/03/05(日) 15:15:15.70ID:WdTi9AcG147デフォルトの名無しさん
2023/03/05(日) 15:45:42.10ID:09jM8Cxo148デフォルトの名無しさん
2023/03/05(日) 15:50:56.78ID:7nv7saAE 本当にGCの話しかしないんだね
GC以外のことを語る知識がない
GCはこの板見てる人はほぼ誰でも知っているだろう
GC以外のことを語る知識がない
GCはこの板見てる人はほぼ誰でも知っているだろう
149デフォルトの名無しさん
2023/03/05(日) 15:58:09.36ID:Y+o3TKYe 色んな言語のライブラリがC++(や最近はRust)で書かれているのを考えると
C++とRustが王者決定戦になるのは当たり前じゃね?
C++とRustが王者決定戦になるのは当たり前じゃね?
150デフォルトの名無しさん
2023/03/05(日) 16:07:43.53ID:RiJu3w7U 入力にゴミデータを与えるとゴミしか出力されないことの好例
151デフォルトの名無しさん
2023/03/05(日) 18:26:02.22ID:xsWqtK1g いつのまにかPythonやJavaScriptのライブラリがRustで作れるようになってるのな
152デフォルトの名無しさん
2023/03/06(月) 00:49:06.50ID:pFRSokg0 そりゃラップするだけなんだから作れるだろ
アホか
アホか
153デフォルトの名無しさん
2023/03/06(月) 09:19:45.87ID:93HR+LQR そして我が道をいくLISP
154デフォルトの名無しさん
2023/03/06(月) 09:45:52.37ID:4Z2NP+rF LISPといえばGCの元祖だな
155デフォルトの名無しさん
2023/03/06(月) 13:40:13.02ID:diWxUEyJ |
| 彡⌒ミ
\ (´・ω・`)またGCの話してる
(| |)::::
(γ /:::::::
し \:::
\
| 彡⌒ミ
\ (´・ω・`)またGCの話してる
(| |)::::
(γ /:::::::
し \:::
\
156デフォルトの名無しさん
2023/03/06(月) 15:05:53.11ID:diWxUEyJ157デフォルトの名無しさん
2023/03/06(月) 17:14:45.53ID:93HR+LQR ふと思ったんだけど、Rustのmutableな構造体の中にimmutableなフィールドって持てるんだっけ?
158デフォルトの名無しさん
2023/03/06(月) 20:00:50.97ID:BPh5rEIJ >>157
そういえば、C++のcv属性は、論理和方式で、constは足し算の様に0から1に
変わるが、mut 属性はそうはならないだろうから、どうなるんだろうな。
constは意味的に考えてもcastしない限りは、、constなものはいくらやっても
書き込めるようにはならない、というのは安全性から当然なんだけど、
mutだとそうはいかない。
そういえば、C++のcv属性は、論理和方式で、constは足し算の様に0から1に
変わるが、mut 属性はそうはならないだろうから、どうなるんだろうな。
constは意味的に考えてもcastしない限りは、、constなものはいくらやっても
書き込めるようにはならない、というのは安全性から当然なんだけど、
mutだとそうはいかない。
159デフォルトの名無しさん
2023/03/06(月) 20:09:02.49ID:BPh5rEIJ >>158
mutとconstは逆さまの働きみたいだから、どっちで行くかは言語設計者の自由と
思われがちだけど、constな構造体のメンバは勝手に全てconst扱いになるという
単純な論理に出来るけど、mut方式の場合は、constキーワードも別に必要になりそう。
mutとconstは逆さまの働きみたいだから、どっちで行くかは言語設計者の自由と
思われがちだけど、constな構造体のメンバは勝手に全てconst扱いになるという
単純な論理に出来るけど、mut方式の場合は、constキーワードも別に必要になりそう。
160デフォルトの名無しさん
2023/03/06(月) 21:18:31.55ID:HKTArltY161デフォルトの名無しさん
2023/03/06(月) 21:44:09.47ID:l1NoBYC6 >>159
C++でconstを誤用しているのとは異なり
Rustではconstを正しく定数の意味で使っているので注意
つまりconstは定数でありコンパイル時に静的に定まる
もちろんconstとは別の概念としてmutableとimmutableがあり、これらは可変性の有無を表す
さらにそれらと別の概念として所有権があり、所有権を持っていればimmutableであろうと関係なくmutableな変数へ移すことで可変性を得られる
一方で所有権を持たないimmutableな参照からは可変性を得られない
C++でconstを誤用しているのとは異なり
Rustではconstを正しく定数の意味で使っているので注意
つまりconstは定数でありコンパイル時に静的に定まる
もちろんconstとは別の概念としてmutableとimmutableがあり、これらは可変性の有無を表す
さらにそれらと別の概念として所有権があり、所有権を持っていればimmutableであろうと関係なくmutableな変数へ移すことで可変性を得られる
一方で所有権を持たないimmutableな参照からは可変性を得られない
162デフォルトの名無しさん
2023/03/06(月) 21:51:25.41ID:1935XsNt163デフォルトの名無しさん
2023/03/06(月) 22:01:32.22ID:l1NoBYC6 >>162
そうだよ
実行するたびにあるいは関数を呼ぶたびに値が変わりうる変数(=静的に値が定まらず変わりうること)に対して、
変数がimmutableであることを間違えてconstと付けてしまった
そのためC++では定数(=静的に値が定まること)の場合は苦肉の策でconstexprと変な名前を付けることになった
そうだよ
実行するたびにあるいは関数を呼ぶたびに値が変わりうる変数(=静的に値が定まらず変わりうること)に対して、
変数がimmutableであることを間違えてconstと付けてしまった
そのためC++では定数(=静的に値が定まること)の場合は苦肉の策でconstexprと変な名前を付けることになった
164デフォルトの名無しさん
2023/03/06(月) 22:21:12.53ID:1935XsNt >>163
C++では単に値が`constant'って意味で使っただけではないのかな?
それを誤用とは言わんと思う
ところで何でconstexprではないconst変数は
静的に定まらないことになってるの?
C++では単に値が`constant'って意味で使っただけではないのかな?
それを誤用とは言わんと思う
ところで何でconstexprではないconst変数は
静的に定まらないことになってるの?
165デフォルトの名無しさん
2023/03/06(月) 22:37:19.16ID:l1NoBYC6 >>164
もちろんC++は整数などに限ればconstで静的な定数となるが
それ以外C++のconstは定数ではなく静的にコンパイル時に定まらない
そのため真のconstを表すためにconstexprというキーワードを新たに用意する本末転倒な状況となった
もちろんC++は整数などに限ればconstで静的な定数となるが
それ以外C++のconstは定数ではなく静的にコンパイル時に定まらない
そのため真のconstを表すためにconstexprというキーワードを新たに用意する本末転倒な状況となった
166デフォルトの名無しさん
2023/03/06(月) 22:52:19.69ID:1935XsNt167デフォルトの名無しさん
2023/03/06(月) 22:53:11.95ID:1935XsNt168デフォルトの名無しさん
2023/03/06(月) 23:09:16.19ID:h8dbx3na >>166
C++で何らかのクラスのインスタンスを作ってconstに入れることを考えてみるとわかりやすいよ
もちろんこのconstのインスタンスはコンストラクタの引き数の値によって変わるから静的な定数じゃないよね
つまり単なるimmutableな変数に過ぎないわけだけどC++はそれに対してconstと間違えて名付けちゃった
だから本当の定数に対してconstexprと名付けることになった有名な話だよ
C++で何らかのクラスのインスタンスを作ってconstに入れることを考えてみるとわかりやすいよ
もちろんこのconstのインスタンスはコンストラクタの引き数の値によって変わるから静的な定数じゃないよね
つまり単なるimmutableな変数に過ぎないわけだけどC++はそれに対してconstと間違えて名付けちゃった
だから本当の定数に対してconstexprと名付けることになった有名な話だよ
169デフォルトの名無しさん
2023/03/06(月) 23:20:34.22ID:1935XsNt >>168
>つまり単なるimmutableな変数に過ぎないわけだけどC++はそれに対してconstと間違えて名付けちゃった
C++のconstは単なる`constant'の意味で
静的な定数という意味でないというだけなのでは?
本当に「間違えて」名付けたのかな?
俺にはC++のconstにあなたが「間違えて」静的な定数という意味を
期待しているだけに見えるのだが?
>つまり単なるimmutableな変数に過ぎないわけだけどC++はそれに対してconstと間違えて名付けちゃった
C++のconstは単なる`constant'の意味で
静的な定数という意味でないというだけなのでは?
本当に「間違えて」名付けたのかな?
俺にはC++のconstにあなたが「間違えて」静的な定数という意味を
期待しているだけに見えるのだが?
170デフォルトの名無しさん
2023/03/06(月) 23:31:32.57ID:l1NoBYC6171デフォルトの名無しさん
2023/03/06(月) 23:33:40.69ID:1935XsNt172デフォルトの名無しさん
2023/03/06(月) 23:42:46.60ID:l1NoBYC6 >>171
関数に渡ってきた毎回変わりうる引き数を使ってそれを渡してインスタンス作成してconstに突っ込む場合でもよい
あるいは環境変数やargv使ってインスタンス作成でもよい
いずれも毎回インスタンスの値が変わりうるため定数ではないがC++ではconstと付けてしまった
そして本当の定数にconstexprと付けた
関数に渡ってきた毎回変わりうる引き数を使ってそれを渡してインスタンス作成してconstに突っ込む場合でもよい
あるいは環境変数やargv使ってインスタンス作成でもよい
いずれも毎回インスタンスの値が変わりうるため定数ではないがC++ではconstと付けてしまった
そして本当の定数にconstexprと付けた
173デフォルトの名無しさん
2023/03/06(月) 23:47:46.47ID:1935XsNt174デフォルトの名無しさん
2023/03/06(月) 23:52:15.11ID:p7JhiTtQ ただし*const Tのconstだけはコンパイル時定数の意ではなく、C++と同じで書き換えを行えないという意味です
一貫性がありませんね
一貫性がありませんね
175デフォルトの名無しさん
2023/03/06(月) 23:56:33.22ID:h8dbx3na >>169
数字でも物理でも定数は静的に定まるものだよ
でもC++はconstをimmutableの意味で間違えて名付けてしまいました
そして定数を表すためにconstを使えなくなりconstexprと名付けたという誰でも知ってる有名な話だよ
数字でも物理でも定数は静的に定まるものだよ
でもC++はconstをimmutableの意味で間違えて名付けてしまいました
そして定数を表すためにconstを使えなくなりconstexprと名付けたという誰でも知ってる有名な話だよ
176デフォルトの名無しさん
2023/03/07(火) 00:01:46.05ID:gZ1LpnCS >>175
>でもC++はconstをimmutableの意味で間違えて名付けてしまいました
とあなたが思っているだけではないかな?
C++のconstにあなたなが「間違えて」静的に定まるものを期待しているだけでは?
>でもC++はconstをimmutableの意味で間違えて名付けてしまいました
とあなたが思っているだけではないかな?
C++のconstにあなたなが「間違えて」静的に定まるものを期待しているだけでは?
177デフォルトの名無しさん
2023/03/07(火) 00:09:47.95ID:6eBCzRN0 言われてみれば数字や物理で定数は静的に定まる値だな
どうせC++で静的に定まる値を示すキーワードも必要となるんだから素直にそれをconstにしておくべきだったか
設計ミスだな
どうせC++で静的に定まる値を示すキーワードも必要となるんだから素直にそれをconstにしておくべきだったか
設計ミスだな
178デフォルトの名無しさん
2023/03/07(火) 00:57:00.01ID:UNnBBHt0179デフォルトの名無しさん
2023/03/07(火) 01:08:45.38ID:gZ1LpnCS180デフォルトの名無しさん
2023/03/07(火) 01:27:52.75ID:phr7A4jU immutableとconstantの違いを区別できていない人がimmutableに対してconstと命名してしまったのかな
そのためconstantに対してconstと命名できなくなってconstexprと命名したと
そのためconstantに対してconstと命名できなくなってconstexprと命名したと
181デフォルトの名無しさん
2023/03/07(火) 01:31:47.04ID:CjRtBzJ1 同じ言葉や字句でも言語ごとにその概念が指すものは異なる
相対主義的に考えなさい
相手の価値観を理解しなければ説得力は生まれません
相対主義的に考えなさい
相手の価値観を理解しなければ説得力は生まれません
182デフォルトの名無しさん
2023/03/07(火) 02:21:18.68ID:oSHTm7sl ・y = ax (a=10である)
aをimmutableと呼ぶかconstantと呼ぶか
・y=f(a) (a=10である)
f(a)をconstantと呼ぶかconstant expressionと呼ぶか
まあ考え方次第だよな
aをimmutableと呼ぶかconstantと呼ぶか
・y=f(a) (a=10である)
f(a)をconstantと呼ぶかconstant expressionと呼ぶか
まあ考え方次第だよな
183デフォルトの名無しさん
2023/03/07(火) 02:29:20.82ID:phr7A4jU184デフォルトの名無しさん
2023/03/07(火) 08:05:58.19ID:oSHTm7sl >>183
かかるaについてなんと呼ぶかって話だから別にxについて気にする必要は無いよ
かかるaについてなんと呼ぶかって話だから別にxについて気にする必要は無いよ
185デフォルトの名無しさん
2023/03/07(火) 08:10:06.41ID:X5urLXgj >>182
理解できていなさ過ぎだろw
理解できていなさ過ぎだろw
186デフォルトの名無しさん
2023/03/07(火) 08:16:15.53ID:X5urLXgj187デフォルトの名無しさん
2023/03/07(火) 09:21:06.13ID:hj+ftEk+ 自演してRustゴリ推し他言語叩きをしてるのは
複製おじさんと呼ばれてるRustスレでは有名な荒らし
しかもそいつが「RustJP公式 」の中の人で間違いなさそうって話だから手に負えない
複製おじさんと呼ばれてるRustスレでは有名な荒らし
しかもそいつが「RustJP公式 」の中の人で間違いなさそうって話だから手に負えない
188デフォルトの名無しさん
2023/03/07(火) 10:27:35.30ID:QCj9HjAv >>187
「RustJP自称公式 」なのでなんの問題もない
「RustJP自称公式 」なのでなんの問題もない
189デフォルトの名無しさん
2023/03/07(火) 11:40:31.33ID:gZ1LpnCS >>180
それはお前用語なんじゃね?
それはお前用語なんじゃね?
190デフォルトの名無しさん
2023/03/07(火) 11:55:27.75ID:CdvGJ9oA y = ax
y も a も x も変数としか言いようがない
y も a も x も変数としか言いようがない
191デフォルトの名無しさん
2023/03/07(火) 12:47:12.28ID:CHI/c7S+ aを10としたときにコンパイル時
最適化してしまうかaという入れ物残しとくか更にはf(a)も計算して結果だけ使うか
最適化してしまうかaという入れ物残しとくか更にはf(a)も計算して結果だけ使うか
192デフォルトの名無しさん
2023/03/07(火) 21:59:54.08ID:6AJw5hNk 整数はconstやconstexprの有無に関係なくコンパイル時に最適化されるから整数を持ち出して来ても意味がない
C++ならクラスのインスタンスを生成する場合などを考えるとわかりやすい
コンパイル時点でそのインスタンスを定数化できる時にconstexprを使い静的に定数となる
そうでなく実行時にならないと値が定まらない変数となる時はconstexprを使えない
その変数がimmutableつまり生成以降は値を変更できない時はconstを使う
C++ならクラスのインスタンスを生成する場合などを考えるとわかりやすい
コンパイル時点でそのインスタンスを定数化できる時にconstexprを使い静的に定数となる
そうでなく実行時にならないと値が定まらない変数となる時はconstexprを使えない
その変数がimmutableつまり生成以降は値を変更できない時はconstを使う
193182
2023/03/07(火) 22:28:59.56ID:oSHTm7sl constというものの表現を語るうえで言語依存しない形で書いただけなので
少数でも文字列でも適当に読み替えてね
少数でも文字列でも適当に読み替えてね
194デフォルトの名無しさん
2023/03/08(水) 00:26:55.95ID:Ax/TB2dR195デフォルトの名無しさん
2023/03/08(水) 00:36:06.87ID:o1WhyvRq 壊れたテープレコーダは生まれてくるべきでなかった
196デフォルトの名無しさん
2023/03/08(水) 00:46:11.75ID:+ZMcnEdg 事後諸葛亮
197デフォルトの名無しさん
2023/03/08(水) 01:01:29.10ID:qkb67oYH 同じ事しか書けない命名君はGC連呼厨なのか
198デフォルトの名無しさん
2023/03/08(水) 01:22:37.49ID:9h+oJZcX 結果的に後からみればC++の命名ミスなんだろうが歴史的経緯で仕方ないだろ
昔はimmutableとconstantの概念の区別が曖昧だった
昔はimmutableとconstantの概念の区別が曖昧だった
199デフォルトの名無しさん
2023/03/08(水) 01:53:12.26ID:CbNEQcSB どうしても`immutable'を使いたければマクロ定義すれば?
#define immutable const
#define immutable const
200デフォルトの名無しさん
2023/03/08(水) 02:01:56.79ID:3vDDzLqz Rustはconstをimmutableとcompile-time constantの両方の意味で使うので一貫性が無い
>>174
>>174
201デフォルトの名無しさん
2023/03/08(水) 07:29:50.16ID:OMAPV4fU >>200
Rustでconstは常に静的な定数を表す
*constはconstとは全く別のものであり予約語を最小限にするための使い回し組み合わせ
両者は種別も異なるため混乱することもない
constは定数の定義なのでこの位置に来る
let foo: i32 = 12345;
const FOO: i32 = 12345;
*constは生ポインタの型を示すのでこの位置に来る
const BAR: &i32 = &FOO;
const BAZ: *const i32 = &FOO;
このように両者は全く別物で出現位置も異なり共存もでき混乱することもない
この生ポインタはunsafe Rustでしか使わないため通常は出て来ない
そのために新たな予約語を消費するのは馬鹿げているため既存の組み合わせという合理的な選択をした
Rustでconstは常に静的な定数を表す
*constはconstとは全く別のものであり予約語を最小限にするための使い回し組み合わせ
両者は種別も異なるため混乱することもない
constは定数の定義なのでこの位置に来る
let foo: i32 = 12345;
const FOO: i32 = 12345;
*constは生ポインタの型を示すのでこの位置に来る
const BAR: &i32 = &FOO;
const BAZ: *const i32 = &FOO;
このように両者は全く別物で出現位置も異なり共存もでき混乱することもない
この生ポインタはunsafe Rustでしか使わないため通常は出て来ない
そのために新たな予約語を消費するのは馬鹿げているため既存の組み合わせという合理的な選択をした
202デフォルトの名無しさん
2023/03/08(水) 07:30:57.28ID:/qygPgTx constはCからの流れだしな。
元々Cがシステムプログラミング向けだったことを思えば、「リードオンリーセクションに置け」っていうくらいのつもりだったんだろ。
定数は#defineで指定しろって感じかな。
元々Cがシステムプログラミング向けだったことを思えば、「リードオンリーセクションに置け」っていうくらいのつもりだったんだろ。
定数は#defineで指定しろって感じかな。
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 東京都「都民の税金1.5兆円が国に奪われている」「全国に分配されている」に地方民ブチギレ [Hitzeschleier★]
- 高市首相の答弁書に「台湾有事答えない」と明記 存立危機発言当時 [蚤の市★]
- 「もうキモくてキモくて…」29歳女性が語る“おぢアタック”の実態。「俺ならイケるかも」年下女性を狙う勘違い中年男性に共通点が★4 [Hitzeschleier★]
- JA全農が「新おこめ券」…来年9月末の有効期限を新設、必要経費のみ上乗せ [蚤の市★]
- 【おこめ券】鈴木憲和農相 小泉前農相の備蓄米放出を“反省”「備蓄の円滑な運営を図ってまいります」 [Hitzeschleier★]
- 1人3千円の食品高騰対策、何に使える? あいまいなまま衆院通過 [蚤の市★]
- 【まずは自助】高市早苗「自らの命は自らが守るという原則に従っていただく」 青森の被災地、能登と同じく見捨てられる模様 [314039747]
- トランプ、G7に代わるcore 5を発表 [805596214]
- 【実況】博衣こよりのえちえちダンガンロンパ2🧪★6
- 【悲報】日本共産党、ツイッター速報にブチギレ法的措置WWWWWWWWWWWWWWWWWWWWWWWWWWWW [935793931]
- 【実況】博衣こよりのえちえちダンガンロンパ2🧪★5
- 木曜日のんなっしょい❗(・o・🍬)仕放題スレ🏡
