前スレ
C++相談室 part158
https://mevius.5ch.net/test/read.cgi/tech/1636969758/
探検
C++相談室 part159
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2022/02/19(土) 11:56:42.14ID:kSnJ/KwP131デフォルトの名無しさん
2022/02/23(水) 16:14:02.97ID:vCUIsgzX132デフォルトの名無しさん
2022/02/23(水) 16:42:08.43ID:lSALbkfN 126と86は俺だけど…
133デフォルトの名無しさん
2022/02/23(水) 16:45:52.89ID:UVDZkpPA >>126
kwsk
複数プロセスから同一ファイルに対する同時書き込みオープンは当然できなず、後から開こうとしたプロセスはオープンに失敗する
その場合失敗したプロセスは(エラー要因を調べた上で)一定時間(例えばT秒後)後にオープンを再トライする必要がある
んまーそう作っても良いが(ファイルアクセス権獲得待ちをいつでも簡単にやめられるメリットがある)が、
失敗の度にT秒消費するというのをミューテックスを使えば短縮できる
kwsk
複数プロセスから同一ファイルに対する同時書き込みオープンは当然できなず、後から開こうとしたプロセスはオープンに失敗する
その場合失敗したプロセスは(エラー要因を調べた上で)一定時間(例えばT秒後)後にオープンを再トライする必要がある
んまーそう作っても良いが(ファイルアクセス権獲得待ちをいつでも簡単にやめられるメリットがある)が、
失敗の度にT秒消費するというのをミューテックスを使えば短縮できる
134デフォルトの名無しさん
2022/02/23(水) 16:51:07.27ID:A1VwjaQk オープン失敗したら100ms開けてリトライで十分だろう。待機が嫌なら非同期で実装するだけ。
T秒消費するというが同期オブジェクト使っても変わらん。
T秒消費するというが同期オブジェクト使っても変わらん。
135デフォルトの名無しさん
2022/02/23(水) 16:54:41.39ID:UVDZkpPA >>134
>T秒消費するというが同期オブジェクト使っても変わらん。
間違い。
同期オブジェクトを使えばプロセスAがファイルへのアクセス権を行使中、
プロセスBがアクセス権が回ってくるのを待っている状態で
プロセスAがアクセス権を放棄した瞬間にプロセスBにディスパッチされる
ことが気体できる
無駄というものが最小限で済む
>T秒消費するというが同期オブジェクト使っても変わらん。
間違い。
同期オブジェクトを使えばプロセスAがファイルへのアクセス権を行使中、
プロセスBがアクセス権が回ってくるのを待っている状態で
プロセスAがアクセス権を放棄した瞬間にプロセスBにディスパッチされる
ことが気体できる
無駄というものが最小限で済む
136デフォルトの名無しさん
2022/02/23(水) 16:58:57.65ID:lSALbkfN 同期オブジェクトってそんな低レベルで存在しとる概念なのかね
137はちみつ餃子 ◆8X2XSCHEME
2022/02/23(水) 17:06:44.05ID:o4j3GXmb 同期オブジェクトを機能させるためにスケジューラに負担をかけるので
待機時間が特に短いことがわかってるならスピンロックのほうが性能は出る可能性はある。
でもスピンロックを正しく実装できる気がしない。
同期のための仕組みを用意してくれてるんだからそれを使っておくのが基本的には楽だよ。
待機時間 100ms のところを 10ms とかに短縮できたところでなんだというんだ。
それが必要な場合もあるといえばあるけど、どちらがより良いかは状況による。
待機時間が特に短いことがわかってるならスピンロックのほうが性能は出る可能性はある。
でもスピンロックを正しく実装できる気がしない。
同期のための仕組みを用意してくれてるんだからそれを使っておくのが基本的には楽だよ。
待機時間 100ms のところを 10ms とかに短縮できたところでなんだというんだ。
それが必要な場合もあるといえばあるけど、どちらがより良いかは状況による。
138デフォルトの名無しさん
2022/02/23(水) 17:12:13.15ID:UVDZkpPA >待機時間 100ms のところを 10ms とかに短縮できたところで
プロセスAがファイルのアクセス権を握り続けている間、
プロセスBがファイルシステムを10 ms周期でcallすることになるな!
プロセスAがファイルのアクセス権を握り続けている間、
プロセスBがファイルシステムを10 ms周期でcallすることになるな!
139デフォルトの名無しさん
2022/02/23(水) 17:17:22.47ID:A1VwjaQk 消費ってCPUリソースの話じゃないのか。
書き込みに100msの待機が問題となるようなリアルタイムな要件があるならともかく
ファイルの書き込みなんていう遅いものは非同期の実装に頭使うほうが効率的だろう。
書き込みに100msの待機が問題となるようなリアルタイムな要件があるならともかく
ファイルの書き込みなんていう遅いものは非同期の実装に頭使うほうが効率的だろう。
140デフォルトの名無しさん
2022/02/23(水) 17:21:14.59ID:UVDZkpPA 非同期の実装を最小の時間ロスで安全に行うものにするにはミューテックスによる同期が必要なわけで(以下無限ループ
141はちみつ餃子 ◆8X2XSCHEME
2022/02/23(水) 17:24:49.92ID:o4j3GXmb スピンロックは沼なんで、
OS が用意してくれとる仕組みを使えってことで FA 。
OS が用意してくれとる仕組みを使えってことで FA 。
142デフォルトの名無しさん
2022/02/23(水) 17:26:48.01ID:A1VwjaQk143デフォルトの名無しさん
2022/02/23(水) 17:30:05.39ID:lSALbkfN タイミング合わせるために工夫をこらしたプログラムってのは見ていて嫌な気分になるのう
8bit機なら全部ビジーウェイトでいいんだけど
8bit機なら全部ビジーウェイトでいいんだけど
144デフォルトの名無しさん
2022/02/23(水) 18:04:03.45ID:vCUIsgzX145デフォルトの名無しさん
2022/02/23(水) 18:13:52.21ID:A1VwjaQk 8bitのCPUなんて命令の消費clockでタイミング取るとか普通やん
146デフォルトの名無しさん
2022/02/23(水) 19:32:25.60ID:+QDyyf8g ウェイト気にするんだったらI/O周りでガチャガチャするより書き込み要求をキューで受け付ける専門プロセス用意しろよ
147デフォルトの名無しさん
2022/02/23(水) 19:34:41.10ID:lREuCbZK >>117
ありがとうございます、inline変数を試してみます
ありがとうございます、inline変数を試してみます
148デフォルトの名無しさん
2022/02/23(水) 19:41:23.72ID:lREuCbZK >>120
コードは手元(スマホ)にはないので貼れないです、すみませんが日本語で理解してもらえると助かります。
クラスHogeは書いている通りシングルトンです。
よく分かっていませんがHogeは静的ライブラリ?というのでしょうか。
visual studioでいうと、
Hogeが入っているプロジェクトと
mainのプロジェクト、
dllのプロジェクトの3つがあって
mainとdllのプロジェクトの両方が「参照」でHogeが入ってるプロジェクトを依存関係?構築してます。
コードは手元(スマホ)にはないので貼れないです、すみませんが日本語で理解してもらえると助かります。
クラスHogeは書いている通りシングルトンです。
よく分かっていませんがHogeは静的ライブラリ?というのでしょうか。
visual studioでいうと、
Hogeが入っているプロジェクトと
mainのプロジェクト、
dllのプロジェクトの3つがあって
mainとdllのプロジェクトの両方が「参照」でHogeが入ってるプロジェクトを依存関係?構築してます。
149デフォルトの名無しさん
2022/02/23(水) 20:42:20.48ID:vCUIsgzX150デフォルトの名無しさん
2022/02/23(水) 20:50:56.75ID:vCUIsgzX >>146
結局ここまで全部要件の問題ということで・・・
結局ここまで全部要件の問題ということで・・・
151デフォルトの名無しさん
2022/02/23(水) 21:10:52.14ID:A1VwjaQk Hogeのヘッダとlibファイルをmainとdllのプロジェクトに追加するだけの話じゃないのか。
152デフォルトの名無しさん
2022/02/23(水) 21:37:03.52ID:vCUIsgzX >>151
こんな感じになってるんだと思う
https://wandbox.org/permlink/ME0HLrM3vXDeMvoR
main.cpp(exeプロジェクト)
api.h(dllプロジェクト)
api.cpp(dllプロジェクト)
Sample.h(libプロジェクト)
Sample.cpp(libプロジェクト)
vc++で実行すれば分かるけど、dllとexeでインスタンスが2個出来る
IDEが作るファイルは使ってない(プリコンパイル済ヘッダ未使用vs2019で確認)
こんな感じになってるんだと思う
https://wandbox.org/permlink/ME0HLrM3vXDeMvoR
main.cpp(exeプロジェクト)
api.h(dllプロジェクト)
api.cpp(dllプロジェクト)
Sample.h(libプロジェクト)
Sample.cpp(libプロジェクト)
vc++で実行すれば分かるけど、dllとexeでインスタンスが2個出来る
IDEが作るファイルは使ってない(プリコンパイル済ヘッダ未使用vs2019で確認)
153デフォルトの名無しさん
2022/02/23(水) 21:55:19.66ID:PssNo99E154デフォルトの名無しさん
2022/02/23(水) 22:10:26.11ID:vCUIsgzX155デフォルトの名無しさん
2022/02/23(水) 22:31:49.11ID:PssNo99E 質問者ではないけど俺は.hで完結させたい人種なので「dll側かexe側に変数の実体を作らなきゃいけない」という縛りを極端に嫌ってる
dllとも変数実体を共有したいなら.h完結を諦めて
・実体生成用の1つのcppでだけ#defineでなんか定義して実体を定義させる
ぐらいしかまともな回答は思いつかん
どうせ複数dllから1つの変数を共有したいって話にもなるから
実体生成用のcppはexe側が受け持つか管理用のdll(質問者はやりたくないようだが)を作ることになるだろうな
dllとも変数実体を共有したいなら.h完結を諦めて
・実体生成用の1つのcppでだけ#defineでなんか定義して実体を定義させる
ぐらいしかまともな回答は思いつかん
どうせ複数dllから1つの変数を共有したいって話にもなるから
実体生成用のcppはexe側が受け持つか管理用のdll(質問者はやりたくないようだが)を作ることになるだろうな
156デフォルトの名無しさん
2022/02/23(水) 22:49:56.05ID:A1VwjaQk hogeの実装がどこにあるべきか決めてないとな。COMにするという手もあるな。
157デフォルトの名無しさん
2022/02/23(水) 23:10:37.89ID:vCUIsgzX 質問者本人の匂いがプンプンするけど、全部ヘッダならそもそもlibやdll要らないでしょ
昔からstaticメンバ変数にその手のマクロが付いてるヘッダオンリーなライブラリもどきはある
管理用のdllなるものを作るにしたって、exportされるAPIとしてインスタンス生成用メンバ関数を直に紐付ける方法がないと、公開された生成方法が必要になり、シングルトンとして十分制限できない。
COMにするならもうC#で作ればいいのにと思ってしまう。
昔からstaticメンバ変数にその手のマクロが付いてるヘッダオンリーなライブラリもどきはある
管理用のdllなるものを作るにしたって、exportされるAPIとしてインスタンス生成用メンバ関数を直に紐付ける方法がないと、公開された生成方法が必要になり、シングルトンとして十分制限できない。
COMにするならもうC#で作ればいいのにと思ってしまう。
158デフォルトの名無しさん
2022/02/23(水) 23:14:23.43ID:bb+gp0i+ Linuxには名前付きミューテックスないだっけ?
プロセス間の排他制御にflock使った思い出
プロセス間の排他制御にflock使った思い出
159デフォルトの名無しさん
2022/02/23(水) 23:19:02.33ID:kWD6+CX1 pthreadにあるやつが使えるからあるんでしょう
160デフォルトの名無しさん
2022/02/23(水) 23:19:54.09ID:kWD6+CX1 mutexっていうかセマフォ使ってるかも
161デフォルトの名無しさん
2022/02/23(水) 23:33:12.25ID:vCUIsgzX linuxのプロセス間同期にはセマフォを使うよ
https://man7.org/linux/man-pages/man7/sem_overview.7.html
boostでやりたければこんな感じらしい
https://www.boost.org/doc/libs/1_58_0/doc/html/interprocess/synchronization_mechanisms.html#interprocess.synchronization_mechanisms.mutexes.mutexes_named_example
※最近boost使ってないのでよく知らない
https://man7.org/linux/man-pages/man7/sem_overview.7.html
boostでやりたければこんな感じらしい
https://www.boost.org/doc/libs/1_58_0/doc/html/interprocess/synchronization_mechanisms.html#interprocess.synchronization_mechanisms.mutexes.mutexes_named_example
※最近boost使ってないのでよく知らない
162デフォルトの名無しさん
2022/02/23(水) 23:43:27.24ID:bb+gp0i+ なるほどLinuxもセマフォは名前付きがあるのね
ありがとう!
ありがとう!
163デフォルトの名無しさん
2022/02/23(水) 23:44:52.39ID:kWD6+CX1 条件変数が一番好きです
164デフォルトの名無しさん
2022/02/24(木) 02:08:55.88ID:9O+r6lMK そのへんが全て最初から言語の型として標準で装備されていて
さらにコンパイルが通ればマルチスレッド時のデータ競合すら起きないことが保証されるRustが強いよな
さらにコンパイルが通ればマルチスレッド時のデータ競合すら起きないことが保証されるRustが強いよな
165デフォルトの名無しさん
2022/02/24(木) 02:43:58.81ID:tiwBzbY0 openMPを使いたいけど使うと言えない
166デフォルトの名無しさん
2022/02/24(木) 03:32:22.22ID:+hdCiApF どうやってスレ立てるの??
167デフォルトの名無しさん
2022/02/24(木) 03:59:43.03ID:D634csZp168デフォルトの名無しさん
2022/02/24(木) 15:54:24.18ID:ZFLA2QwP メモリ上で連続した多次元配列を動的に確保したいんですけど、どうするのがスマートなやり方ですか?
169デフォルトの名無しさん
2022/02/24(木) 16:09:23.68ID:tiwBzbY0 多次元配列を宣言する
170デフォルトの名無しさん
2022/02/24(木) 16:12:31.94ID:MBzpszCI171デフォルトの名無しさん
2022/02/24(木) 16:25:32.45ID:xAP0ZjRZ スマートが何処にかかるのか
172デフォルトの名無しさん
2022/02/24(木) 16:32:30.77ID:cGpWV2sd またスマートとか自分の希望要件すら言語化できないアホな質問来てるな・・・
いっぺん真で頭ガチャするのがスマート
いっぺん真で頭ガチャするのがスマート
173はちみつ餃子 ◆8X2XSCHEME
2022/02/24(木) 16:42:22.24ID:KIw+63Ii 「動的に確保」というのも、コンストラクトの時点で大きさが確定するというのと
後から伸長する可能性も含むというのでは事情が違う。
後から伸長する可能性も含むというのでは事情が違う。
174デフォルトの名無しさん
2022/02/24(木) 17:02:25.64ID:ZFLA2QwP >>173
VLAのように実行時に全体の大きさを指定したいです
VLAのように実行時に全体の大きさを指定したいです
175デフォルトの名無しさん
2022/02/24(木) 17:05:32.25ID:M4s9COHd mallocや
176デフォルトの名無しさん
2022/02/24(木) 17:34:08.45ID:cGpWV2sd 小出しにしてんじゃねーよw
質問者のお前が聞かれたことに答えるんじゃなくて、せめて満たすべき最低限の要件くらい自分で明確にしろと言ってるんだよw
そんなこともできなければ真でくれと言われてるのw
質問者のお前が聞かれたことに答えるんじゃなくて、せめて満たすべき最低限の要件くらい自分で明確にしろと言ってるんだよw
そんなこともできなければ真でくれと言われてるのw
177デフォルトの名無しさん
2022/02/24(木) 17:38:54.01ID:MBzpszCI178デフォルトの名無しさん
2022/02/24(木) 17:40:07.73ID:MBzpszCI あるいは、CのVLAをC++で操作できるようにしたいのか?
179デフォルトの名無しさん
2022/02/24(木) 18:26:58.76ID:qnUKy4cC 初心者ですまんがVLAってvectorで代用できないの?
180デフォルトの名無しさん
2022/02/24(木) 18:34:10.20ID:xAP0ZjRZ つvalarray
181デフォルトの名無しさん
2022/02/24(木) 19:04:00.53ID:7WoYZRJz 3次元配列なら
template<class T>
class V{
T*const ptr;
size_t s1,s2,s3;
public:
V(size_t s1,size_t s2,size_t s3):
s1(s1),s2(s2),s3(s3),
ptr(new T[s1*s2*s3]){}
T&operator()(size_t i1,size_t i2,size_t i3){
return ptr[i1*s2*s3+i2*s3*i3];
}
~V(){delete[]ptr;}
};
V<int> v(4,5,6);
v(1,2,3)=42;
みたいのでええんか?
大体こういうの自分で作るとバグらせるからあんまやりたくないけど
template<class T>
class V{
T*const ptr;
size_t s1,s2,s3;
public:
V(size_t s1,size_t s2,size_t s3):
s1(s1),s2(s2),s3(s3),
ptr(new T[s1*s2*s3]){}
T&operator()(size_t i1,size_t i2,size_t i3){
return ptr[i1*s2*s3+i2*s3*i3];
}
~V(){delete[]ptr;}
};
V<int> v(4,5,6);
v(1,2,3)=42;
みたいのでええんか?
大体こういうの自分で作るとバグらせるからあんまやりたくないけど
182デフォルトの名無しさん
2022/02/24(木) 19:07:44.67ID:cGpWV2sd すでにバグってる気がする
183デフォルトの名無しさん
2022/02/24(木) 20:00:57.06ID:1pzXIXf6 boostにあるけどオーバーエンジニアリングっぽいんだよな
184デフォルトの名無しさん
2022/02/24(木) 20:30:12.93ID:cGpWV2sd 馬鹿にされたい馬鹿が小出しにしてる以上何とも言えないw
僕ちゃんboost使いたかったけど馬鹿だからよく分からないし、条件小出しなまま複数IDで汎用な答えが欲しいのぉって言ってるだけなのが透けて見えるw
僕ちゃんboost使いたかったけど馬鹿だからよく分からないし、条件小出しなまま複数IDで汎用な答えが欲しいのぉって言ってるだけなのが透けて見えるw
185デフォルトの名無しさん
2022/02/24(木) 20:38:21.09ID:I6df84hq 何の情報が必要かすら分かってない初心者かもしれないんだから聞き出してやればいいのに
煽って出てくると思ってるなら考え甘いぞ、要件引き出せないようじゃ半人前
煽って出てくると思ってるなら考え甘いぞ、要件引き出せないようじゃ半人前
186デフォルトの名無しさん
2022/02/24(木) 20:59:04.53ID:cGpWV2sd ちゃんとID変えて出てきてるし煽ってないし、僕ちゃん答えは欲しいのに分不相応なプライドだけ高くて素直になれないのぉって言われてもね
187デフォルトの名無しさん
2022/02/24(木) 21:02:22.10ID:j0njw0Fu 一方すぐ質問者にマウンティングしたがるおまえはすぐわかるなw
188デフォルトの名無しさん
2022/02/24(木) 21:03:10.18ID:MBzpszCI > ID:cGpWV2sd
おまえイラネ
無駄にうるせえ
おまえイラネ
無駄にうるせえ
189デフォルトの名無しさん
2022/02/24(木) 21:29:39.55ID:cGpWV2sd こんなスレにいちいち相談する初心者なんてそうそういねーよ
もし初心者なら回答欲しいんだから何言われても何某か返事する
そういうのがなく単発IDなどが煽ってくるということはつまり・・・図星ってことw
もし初心者なら回答欲しいんだから何言われても何某か返事する
そういうのがなく単発IDなどが煽ってくるということはつまり・・・図星ってことw
190デフォルトの名無しさん
2022/02/24(木) 21:36:30.68ID:j0njw0Fu ここ覗いてるのって技術系の雑談ネタとしか思ってないだろうが、
毎回、単発IDで質問して逃げてるとしたらクソ野郎だな。
学生の課題か何かだろう。おれたちは利用されてるんだ!!!
毎回、単発IDで質問して逃げてるとしたらクソ野郎だな。
学生の課題か何かだろう。おれたちは利用されてるんだ!!!
191デフォルトの名無しさん
2022/02/24(木) 21:50:54.34ID:p3uXF2gK 利用されるのが嫌ってこと?よくわからんが。
まぁ、学校の課題でズルしても本人のためにはならないんだから勝手にしとけって感じだな。
まぁ、学校の課題でズルしても本人のためにはならないんだから勝手にしとけって感じだな。
192デフォルトの名無しさん
2022/02/24(木) 21:59:42.81ID:cGpWV2sd193デフォルトの名無しさん
2022/02/24(木) 23:03:53.08ID:I6df84hq 妄想えっぐ、糖質っぽいな
194デフォルトの名無しさん
2022/02/25(金) 00:16:50.60ID:5F5cVQmS 在日君なんだろうな
195デフォルトの名無しさん
2022/02/25(金) 01:06:42.45ID:xX3MCg4u >>192
おれみたいなじーさんがおまえのような小便垂れの小僧に質問するわけないだろ…
おれみたいなじーさんがおまえのような小便垂れの小僧に質問するわけないだろ…
196デフォルトの名無しさん
2022/02/25(金) 11:25:19.29ID:xlKD2LUb なんで const なオブジェクトは const なメンバ関数しか呼べないの?
197デフォルトの名無しさん
2022/02/25(金) 11:29:01.84ID:uD2ZWt4n メンバ関数でメンバ変数が書き変わるとconstオブジェクトとして困るから
198デフォルトの名無しさん
2022/02/25(金) 11:29:09.22ID:KX/JNmq+ 中が書き換わるかもしれないから
199デフォルトの名無しさん
2022/02/25(金) 11:59:24.66ID:169sj97j でもポインタで簡単に書き換えられるじゃん
200デフォルトの名無しさん
2022/02/25(金) 12:14:57.98ID:mK/IikxE 意図的にconst外さなきゃconstのままだよ
何も考えずconst外すバカのことなんて知らん
何も考えずconst外すバカのことなんて知らん
201デフォルトの名無しさん
2022/02/25(金) 18:43:59.10ID:xX3MCg4u constが役にたった場面にあったことがない。
自分で書き換えといて「書き換わるかもしれない!!」とかどんだけ適当にコード書いてんだか。
自分で書き換えといて「書き換わるかもしれない!!」とかどんだけ適当にコード書いてんだか。
202デフォルトの名無しさん
2022/02/25(金) 19:05:22.20ID:kxjR7eze constは積極的に使うことでI/Fを分かりやすくしたりできるね
書き換えない想定を明示的にして最適化しやすくする効果もある
意味的に正しいことが保証できないときにconstを使うと泣くこともあるけどw
書き換えない想定を明示的にして最適化しやすくする効果もある
意味的に正しいことが保証できないときにconstを使うと泣くこともあるけどw
203デフォルトの名無しさん
2022/02/25(金) 19:11:03.22ID:xX3MCg4u >>202
const使ったらコンパイラはどういった最適化するんだ?
const使ったらコンパイラはどういった最適化するんだ?
204デフォルトの名無しさん
2022/02/25(金) 19:12:37.70ID:pF12AA3R constとprivateはテストの邪魔でしかない
使ってる奴は例外なく低脳
使ってる奴は例外なく低脳
205デフォルトの名無しさん
2022/02/25(金) 19:27:49.01ID:RMWkUPMB privateはインテリセンスがすっきりしていいじゃん
206デフォルトの名無しさん
2022/02/25(金) 19:38:04.25ID:kxjR7eze207デフォルトの名無しさん
2022/02/25(金) 19:43:16.35ID:xX3MCg4u 自分で言い出しといて急にキレられてもな。
208デフォルトの名無しさん
2022/02/25(金) 19:48:21.44ID:kxjR7eze >>207
キレる?お前が調べもせずに聞いてくるから当たり前のことを言っただけだが
キレる?お前が調べもせずに聞いてくるから当たり前のことを言っただけだが
209デフォルトの名無しさん
2022/02/25(金) 19:52:14.27ID:pF12AA3R >>206
エアプは君だよ
製品レベルの緻密なテストセットをきちんと書き上げるためにはconstなしのオールpublicしかあり得ん
テストケースで様々な状態を作りだして動作確認するためには、全てを必要に応じて自由に書き換えられることが不可欠というもの
書き換え不可だのクラス専用だのの決め事は命名規則で担保するんだぞ
エアプは君だよ
製品レベルの緻密なテストセットをきちんと書き上げるためにはconstなしのオールpublicしかあり得ん
テストケースで様々な状態を作りだして動作確認するためには、全てを必要に応じて自由に書き換えられることが不可欠というもの
書き換え不可だのクラス専用だのの決め事は命名規則で担保するんだぞ
210デフォルトの名無しさん
2022/02/25(金) 19:58:35.87ID:46L8HXzx IFのシグネチャにconstついてないといちいち仕様書読まなきゃいけないから面倒くね?
char* token(char* str)とかあったら破壊的かどうか判別できん
char* token(char* str)とかあったら破壊的かどうか判別できん
211デフォルトの名無しさん
2022/02/25(金) 20:00:20.50ID:gDL/lDyA >>209
struct最強伝説キタコレ
struct最強伝説キタコレ
212デフォルトの名無しさん
2022/02/25(金) 20:04:09.41ID:Ttq2k6xT >>211
staticおじさんの生まれ変わりだろw
staticおじさんの生まれ変わりだろw
213デフォルトの名無しさん
2022/02/25(金) 20:04:09.42ID:kxjR7eze214デフォルトの名無しさん
2022/02/25(金) 20:07:48.92ID:xX3MCg4u const使ったらどんな最適化するんだろう? 言った本人はキレて答えてくれないし。
215デフォルトの名無しさん
2022/02/25(金) 20:12:00.77ID:kxjR7eze216デフォルトの名無しさん
2022/02/25(金) 20:14:10.16ID:aDhOSI3t Rustは何も指定しないとimmutable(不変)にしちゃったから、そういう点でもわかりやすく、かつ、テストやデバッグも少数のmutableなものだけ対象にすればよくなってるね
217デフォルトの名無しさん
2022/02/25(金) 20:15:39.58ID:xX3MCg4u218デフォルトの名無しさん
2022/02/25(金) 20:16:05.93ID:kxjR7eze >>216
Rustは無関係なので巣に帰れ
Rustは無関係なので巣に帰れ
219デフォルトの名無しさん
2022/02/25(金) 20:32:18.12ID:6k09Uwld constを使うのがいいことがよく分かった
220デフォルトの名無しさん
2022/02/25(金) 20:39:24.80ID:xX3MCg4u constウイルスと言わざるをえないアホ仕様
221デフォルトの名無しさん
2022/02/25(金) 20:57:38.37ID:QBj91W6D だからさ、釣り針が太すぎるんだよな
222デフォルトの名無しさん
2022/02/25(金) 21:25:13.93ID:4EL5U7Bc constついてないコードは九分九厘ごみ
絶対に自分一人で書き上げて絶対に一生涯外に出さない保証があるなら付けなくても良い
絶対に自分一人で書き上げて絶対に一生涯外に出さない保証があるなら付けなくても良い
223デフォルトの名無しさん
2022/02/25(金) 21:34:50.33ID:6k09Uwld 本に載るほどの支持を覆すほどの権威と実例があるわけもなく
224デフォルトの名無しさん
2022/02/25(金) 22:44:59.40ID:RMWkUPMB メンバ関数のconst修飾とか関数の引数のconstとかはわかるけど関数内部のローカル変数にconst付けるのはよくわからんな
225デフォルトの名無しさん
2022/02/25(金) 22:51:54.69ID:a/ksSb5+ const お会いしたらお茶しませんか?
226デフォルトの名無しさん
2022/02/25(金) 23:04:47.69ID:aDhOSI3t227デフォルトの名無しさん
2022/02/25(金) 23:07:46.96ID:vOr560R7 ここ数年constをつけて再代入しないのが当然になってますってjavascriptの専門家に言われて殴りたくなりました
228デフォルトの名無しさん
2022/02/25(金) 23:13:07.22ID:aDhOSI3t JavaScript程度はブラウザのカスタマイズしたり含めて誰でも使える言語だろ
まさかC++しか使えない新人かね
まさかC++しか使えない新人かね
229デフォルトの名無しさん
2022/02/26(土) 00:15:34.77ID:VmHIkvc0 Pythonにはconstもprivateもない
大文字だけの名前はconst、アンダースコア始まりの名前はprivateという規約があるだけ
でもそれでみんな勝手に書き換えるべきでないと了解されてて完全に成立してる
とはいえ言語機能ではないのでテストとかでの必要に応じて規約を無視して値を変えることもできる
こういう実例を見るとわざわざコンパイラ機能として書き換え禁を強要してるconstやprivateは偏執的過ぎると思う
大文字だけの名前はconst、アンダースコア始まりの名前はprivateという規約があるだけ
でもそれでみんな勝手に書き換えるべきでないと了解されてて完全に成立してる
とはいえ言語機能ではないのでテストとかでの必要に応じて規約を無視して値を変えることもできる
こういう実例を見るとわざわざコンパイラ機能として書き換え禁を強要してるconstやprivateは偏執的過ぎると思う
230デフォルトの名無しさん
2022/02/26(土) 00:23:17.69ID:xDf2Ellb 小さいオブジェクトにconst付けるとアドレスが割り振られて最適化が阻害されるみたいな話は聞いたな
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【サッカー】U-17日本代表、激闘PK戦制す 北朝鮮撃破で6大会ぶり8強入り U17W杯 [久太郎★]
- 【サッカー】日本代表、ボリビアに3発快勝 森保監督通算100試合目を飾る…鎌田、町野、中村がゴール [久太郎★]
- XやChatGPTで広範囲の通信障害 投稿や閲覧できず [蚤の市★]
- 【芸能】日中関係悪化でエンタメ業界に大ダメージ… JO1の中国でのイベント中止、邦画は公開延期、STARTOアイドルへの影響も [冬月記者★]
- 【インバウンド】中国人観光客の日本での消費額は年間約2兆円超…中国政府は公務員の出張取り消し [1ゲットロボ★]
- 【ローソン】ロゴの「L」で誤解生んだコーヒーカップ、デザイン変更へ 在庫使い切る3か月後にリニューアル [ぐれ★]
- 今日はチートデイなのでパスタサラダ食べました
- Perfume・あ~ちゃんの結婚相手の一般男性、吉田カバンの社長と判明 [977261419]
- 自民党議員「高市は先人が築き上げた日中関係を壊した。外務省が謝罪に言ってるが自分で責任を取れ」 [834922174]
- 5時だから窓から5回ちんこ出した
- 岡田克也「軽々しく存立危機事態とか言うべきじゃない」高市早苗「台湾で武力攻撃が発生したらどう考えても日本の存立危機事態」 [931948549]
- リュウジ、ファミマコラボが不評だったから反論で緊急の動画回しててワロタァ
