C++相談室 part166 (754レス)
上下前次1-新
407(1): (オイコラミネオ MMdd-Rgxs) [sate] 06/20(金)19:12 ID:ykKOKnwYM(1/7) AAS
>>406
回答者にも正しいことを言っている人と間違っていることを言っている人が
いるというだけ。
正しいのは、仕様に明示されている動作については、
最適化してもしなくても結果が変わらないという事だ。
なぜなら、それが仕様なのだから。
408: はちみつ餃子◆8X2XSCHEME (ワッチョイ f532-iKku) 06/20(金)19:41 ID:3ZuChe0s0(1) AAS
>>407
大元の質問からすると仕様が動作を保証するか結果を保証するかをわかってないようだからその説明では不十分でしょ。
409(1): (オイコラミネオ MMdd-Rgxs) 06/20(金)20:44 ID:ykKOKnwYM(2/7) AAS
保証されます。
410: (ワッチョイ b235-m2eM) 06/20(金)21:00 ID:M1o0ztly0(1) AAS
コンパイル時に値が決まるようなら実行時に演算されない
そうでない場合でもある整数が決まった値になることが保証されていることがコンパイル時に分かっているなら最適化されて演算されないケースがある
それ以外なら最適化されない
411: (オイコラミネオ MMdd-15C+) 06/20(金)21:06 ID:80Iion+LM(1/2) AAS
いずれにせよ結果を使わないなら最適化で丸々消される
412(1): (ワッチョイ 0175-Is3k) 06/20(金)21:12 ID:BxPKXrVj0(4/4) AAS
>>409
ただしバグがなければ
413(1): (オイコラミネオ MMdd-15C+) 06/20(金)21:18 ID:80Iion+LM(2/2) AAS
最適化の時点でコードが消されるので直に0で除算をするとコンパイルエラー
変数に突っ込んでるとコンパイル可能で実行してもその部分は最適化され消されてるのでゼロ除算にならない
もちろんconstにしててもコンパイルエラー
414: (オイコラミネオ MMdd-Rgxs) 06/20(金)21:43 ID:ykKOKnwYM(3/7) AAS
>>412
それは、ユーザープログラムのバグではなく、コンパイラのバグだ。
コンパイラにバグが無ければ、四則演算や&,|,~,^,&&,||などと
括弧の組み合わせた結果は、最適化しても変わらない。
0除算に関しては話が別。
415(1): (オイコラミネオ MMdd-Rgxs) 06/20(金)21:48 ID:ykKOKnwYM(4/7) AAS
最適化されて変わる可能性があるのは、今思い出せるのは、
・初期化してない変数の中身
・変数のアドレス
・結果を利用せず、副作用も伴わない式の存在。
整数に対する四則演算を含めた「計算」は、仕様が決められているので、
同じコンパイラと同じターゲット(OS、環境)だと最適化しても
結果は変わらない。
省1
416(2): (オイコラミネオ MMdd-Rgxs) 06/20(金)22:25 ID:ykKOKnwYM(5/7) AAS
>>415
1. 整数の計算途中に「桁あふれ」が起きる場合はこの限りではないかも知れない。
例えば、整数型 a に対して、a * 100 / 5 は、a * 20 と最適化できる
可能性がある。しかし a がとても大きい場合には結果は同じにはならない可能性がある。このことに
関して仕様がどうなっているかは知らない。
2. 浮動小数点型の変数 a に対して、(a * 100.0) / 5.0 は、
a * 20.0 と最適化できる可能性があるが、浮動小数点型には計算誤差があるので、
省3
417: (オイコラミネオ MMdd-Rgxs) 06/20(金)22:25 ID:ykKOKnwYM(6/7) AAS
>>416
3. しかし、整数型変数 a に対して、(a / 100) * 100 は、
明らかに
418: (オイコラミネオ MMdd-Rgxs) 06/20(金)22:26 ID:ykKOKnwYM(7/7) AAS
>>416
3. しかし、整数型変数 a に対して、(a / 100) * 100 は、
明らかに a とは、結果が異なる。だから a と最適化される事は無い。
419(1): (ワッチョイ 1279-T1jw) 06/21(土)01:51 ID:bIqfBqmB0(1) AAS
キミは色々と勘違いをしているからこの手の話をしたいならもうちょい勉強しよう
aが何だろうがa*100/5をa*20とはそもそも出来ないし、2.も同様
3.もaの値によっては演算の前後で値がおなじケースがある
色々あるのでいちいち書かなかったが、例えばaが10の倍数の時、aの絶対値が9以下の時、またaが列挙型だったり配列の添字だったりする時は挙動が推測出来るケースも出てくる
他にも最適化で実行時の演算をしなくてすむケースがある
演算をしなくてもaの値を変えることは出来うるし、その場合除算の代わりにいくつかの分岐や直値に変わるだろう
420: (JP 0H46-E6Ax) 06/21(土)02:46 ID:myS4seE9H(1/9) AAS
また空気読めない書き込みする。ずっと議論
が続いているけど興味ない。
そもそも実数データを表現するbit数が有限
なんだけど(doubleで8byte=64bit)、そりゃあ
場合によっては結果が違うが、実数の場合は
それほど問題じゃない。誤差の範囲内。
整数演算の方が問題。
省9
421: (JP 0H46-E6Ax) 06/21(土)02:49 ID:myS4seE9H(2/9) AAS
あ、言い忘れた。演算子のオーバーロードでの話ね。
422: (ワッチョイ 01de-Ni2x) 06/21(土)06:20 ID:mM+iEPSf0(1) AAS
>>413
0除算は未定義動作だから、(0除算については)最適化されてエラーが出なくてもC++規格通りかね。
423: (JP 0H46-E6Ax) 06/21(土)08:07 ID:myS4seE9H(3/9) AAS
浮動小数点演算で問題になるのは情報落ち(桁落ち)。
expを指数関数としてexp(x)+exp(-x)でxの絶対値が
大きくなるとどうなるか?4倍精度演算が標準として
ほしい。fortranには昔からある。たしか南米の人が
C++で4倍精度演算ライブラリ作ってた気がする。
424(3): (JP 0H46-E6Ax) 06/21(土)08:14 ID:myS4seE9H(4/9) AAS
ところで、前から気になってたけど何でワイだけ
ワッチョイ出ないんだろ。メール設定ミス?それとも
プロバイダの問題?目立つから困る。
425: (ワッチョイ 71a6-Y+Ow) 06/21(土)09:45 ID:cFB8HkI30(1) AAS
signedのオーバーフローは未定義だがunsignedのオーバーフローは定義されてる
あとC/C++はfenvで浮動小数点コプロセッサのモードを切り替えられるから、それを使うつもりのコードはコンパイル時に計算されると狂ったりはする
426(1): (アウアウウー Sacd-xHx3) 06/21(土)11:27 ID:fGhLJfIJa(1) AAS
>>424
ワッチョイと同じ役割を持つ名前一覧
1) オイコラミネオ
2) ササクッテロ
3) オッペケ
4) エムゾネ
5) スプー・スプッ
省1
427: (オイコラミネオ MMdd-Rgxs) 06/21(土)11:46 ID:pKk6RtsPM(1) AAS
>>419
あなたは馬鹿。
数学的センスが無いので、勉強しても直らないだろう。
428: (JP 0H46-E6Ax) 06/21(土)12:00 ID:myS4seE9H(5/9) AAS
>>426
レスありがとう。プロバイダが関係してるのかな
429: (アウアウウー Sacd-dpHj) 06/21(土)13:55 ID:xPq+xj/ja(1) AAS
>>424
VPNでも使ってるんだろ
430: (JP 0H46-E6Ax) 06/21(土)14:01 ID:myS4seE9H(6/9) AAS
VPNオンだと5chが書き込み拒否する。まあ、いいか。
431(1): (ワッチョイ 6e59-dswa) 06/21(土)15:02 ID:S2983oYI0(1) AAS
>>424
出てるじゃん JPって
大方逆引き不可なホストだろうからプロバイダの問題ではある
マイナーすぎて細かく設定してないだけかも知れないけど
432: (JP 0H46-E6Ax) 06/21(土)15:34 ID:myS4seE9H(7/9) AAS
>>431
レスありがとうございます。本スレの趣旨に合わないので
以後の返事は控えさせていただきます。
433(1): (オイコラミネオ MMc6-Rgxs) 06/21(土)16:15 ID:kXnmGuVNM(1/3) AAS
先の話題について、コンピュータではなく数学の世界まで振り返って考えてみると、
(1) a が実数の時
a * 100 / 100 = a
は恒等的に成り立つ。だからこの最適化は、精度を無視すれば
していい可能性が高い。
(2) a が整数で、整数としての割り算で考える場合、
a * 100 / 100 = a
省2
434: (オイコラミネオ MMc6-Rgxs) 06/21(土)16:16 ID:kXnmGuVNM(2/3) AAS
>>433
重大な訂正。
(2)は正しくはこう :
(a / 100) * 100 = a
は、一般的には成り立たない。
だから、(a /100) * 100 を a と最適化することはそもそも出来ない。
435: (ワッチョイ b295-m2eM) 06/21(土)16:40 ID:Kar31VLO0(1) AAS
分かったからもういいって
対人論証するようなのの意見は誰も聞かんよ
436: (ワッチョイ 6ef5-QhKk) 06/21(土)17:52 ID:YF3X9a/V0(1) AAS
そりゃタダのコンパイラならかっこ付き計算の仕様に合わせて最適化しかできない
でもそれがAIがやるようになると、トータルで何やってるか把握して最適化するようになるから
無駄な計算は省かれるだろう
437: (ワッチョイ 92f0-xkro) 06/21(土)18:30 ID:wcVxTOdx0(1) AAS
マジックナンバーだらけになりそうだな
438: (ワッチョイ 5e10-cspE) 06/21(土)18:49 ID:9yAQ73mO0(1) AAS
日によって最適化の結果が変わりそうだな
439: (オイコラミネオ MMc6-Rgxs) 06/21(土)19:00 ID:kXnmGuVNM(3/3) AAS
浮動小数点数を「実数」と見た時に
『数学的な恒等式』ならば、最適化していい
という価値観は有るはずだ。
実際には、実数は無限精度であるのに対し、浮動小数点数は
有限精度であるから、実数では恒等式であっても、
浮動小数点数では恒等式ではないので、最適化すると結果が
少し変わってしまうことはありえる。
440(1): (ワッチョイ f57c-EPY7) 06/21(土)20:42 ID:ea0qUnOa0(1) AAS
そんなのはまともなコンパイラはみんな分かってて-ffast-mathとかでやるかやらないか選べるけどそれが何?
441: (JP 0H46-E6Ax) 06/21(土)21:24 ID:myS4seE9H(8/9) AAS
すみません。次のコードで .5e のところの精度(少数部桁数)5
を変数precで設定したいんですけど、さっきからコンパイラに
駄目だし食らって遊ばれとります。わかる人いますか?
#include <iostream>
#include <cmath>
#include <format>
int main()
省13
442: (JP 0H46-E6Ax) 06/21(土)21:35 ID:myS4seE9H(9/9) AAS
cout << format("{0: .{2}e} {1: .{2}e}", x, y, prec) << endl;
で解決しました。
443: (オイコラミネオ MMdd-Rgxs) 06/21(土)22:20 ID:07kyc98IM(1) AAS
>>440
外部リンク:kristerw.github.io
ここには、「-fassociative-math」が今回の例に近いようだが、
同じものは載ってないと思うが。
以下は、近いが、今回のものとはまた違う :
(C1 / X) * C2
↓
省1
444(1): (ワッチョイ c54b-jK4x) 06/22(日)12:29 ID:4aXQSYOG0(1) AAS
・人間の思考「脳波」は頭蓋骨の外に漏れない
人間の脳は発光していた!「脳が放つ光」の観測に初成功
2025.06.19 12:00:38 THURSDAY
外部リンク:nazology.kusuguru.co.jp
>>カナダ・アルゴマ大学(Algoma University)の最新研究で、ついにこの「脳の光」を頭蓋骨の外から観測することに成功したのです。
>>UPEは細胞の代謝活動、特に酸化反応によって発生する副産物の一種です。
>>以来、UPEはあらゆる植物や動物の細胞からも確認されており、生体内の酸化ストレスや老化、さらにはがんの診断補助にも応用が期待されてきました。
省11
445: (ワッチョイ 23f0-WswN) 06/22(日)12:39 ID:gKjr8htc0(1) AAS
光コンピューティングやないかい
446: (ワッチョイ d5d6-WswN) 06/22(日)17:00 ID:CnBC1yms0(1) AAS
光というのは電磁波だったと思うが。
447: (ワッチョイ 3575-mUa+) 06/22(日)17:03 ID:ZWGsAnaU0(1) AAS
ニュータイプ近づいたな
448: (スプープ Sd43-WIQI) 06/22(日)18:48 ID:/yOBM7d0d(1) AAS
スレ違い。
449: (オイコラミネオ MMab-Hs71) 06/22(日)19:08 ID:x4CLaAtVM(1) AAS
>>444
みたいな書き込み、完全にスレチ
このスレのみならず、板自体が壊れてしまう。
450(1): (ワッチョイ 6501-AU/s) 06/23(月)01:01 ID:Gvg9upbV0(1) AAS
外部リンク[html]:hissi.org
毎回こことPythonスレだけ荒らしてるアホ
451: (ワッチョイ 7dbb-uyNB) 06/23(月)01:12 ID:Btl+IikW0(1) AAS
統失の間でもPythonとC++は認知されてるってことでしょ
名誉ですなぁ
452: (ワッチョイ d5d6-WswN) 06/23(月)14:29 ID:zsxUyp330(1) AAS
C++でpythonのライブラリを作るのが気持ちいいかなみたいな。
ん? 普通はpythonのライブラリって何で書かれているんだろう。
453: (オイコラミネオ MM89-Hs71) 06/23(月)16:02 ID:n3O4Zcz+M(1) AAS
>>450
Rustスレにも投稿されてたで。
454(1): (アウアウウー Sa69-G7Nc) 06/24(火)09:31 ID:17zM306Da(1) AAS
pythonのモジュールはpythonでも描けるが
もちろんCでも描けるしC++でも描ける
最近はRustで描くのが楽で良い
455(1): (JP 0Hab-E2BB) 06/24(火)17:31 ID:Sa2uRHN0H(1) AAS
Rustは良い言語かもしれんが、自分には
必要ない。
456: (オイコラミネオ MM89-Hs71) 06/24(火)18:59 ID:FRc1H2/gM(1) AAS
>>455
同意
457(1): (ワッチョイ 2302-ES++) 06/24(火)19:19 ID:8wBejQ5/0(1/2) AAS
>>454
なんで、AIはPythonで書かれるんだろうな
謎だな…
458: (ワッチョイ 2338-QARi) 06/24(火)19:22 ID:hfqdv+Ay0(1) AAS
Rustに静的ダックタイプ入ったら使うかどうか考える。
設計をカッチリできるプロジェクトでもなければRustはキツくない?
c++もコンセプト制約変数とか入らんかな。
変数レベルで静的ダックタイプにして、クラス継承は無くしたい。
459: はちみつ餃子◆8X2XSCHEME (ワッチョイ 8d32-ukKJ) 06/24(火)19:44 ID:s2rFPvAe0(1/2) AAS
C++26 にはリフレクションがようやく入る見込みで、これを使えばダックタイピングのような仕組みをライブラリで実現できる。
460(1): (ワッチョイ 55ea-mGXm) 06/24(火)20:15 ID:S1fYPTVc0(1) AAS
>>457
モジュールを書く人とAIを書く人が別だからじゃろ
461: はちみつ餃子◆8X2XSCHEME (ワッチョイ 8d32-ukKJ) 06/24(火)20:45 ID:s2rFPvAe0(2/2) AAS
AI の専門家がプログラミングの専門家というわけでもないしな。
462: (ワッチョイ 2302-ES++) 06/24(火)20:49 ID:8wBejQ5/0(2/2) AAS
>>460
というと?
463(1): (オイコラミネオ MM89-Hs71) 06/26(木)02:55 ID:v8FRsUWIM(1/2) AAS
NSCがC++を廃してRustを推しているのは、中国のUnrealEngineへの牽制か?
464: (オイコラミネオ MM89-Hs71) 06/26(木)02:59 ID:v8FRsUWIM(2/2) AAS
NSA だ。
465: (ワッチョイ 2302-ES++) 06/26(木)03:19 ID:P3qvmtvK0(1) AAS
>>463
unreal engineって、
中国が株主でしょ
466: (ササクッテロリ Sp81-AU/s) 06/26(木)07:43 ID:NfgrBwV2p(1) AAS
UEはアメリカのゲーム企業が作ったものなんだが・・
467: (オイコラミネオ MM89-HeZH) 06/26(木)12:38 ID:deRGahNkM(1) AAS
スマン。中国が作ったものだとばかり思っていた。
468: (ワッチョイ 23f0-WswN) 06/26(木)12:41 ID:3UJQKTFB0(1) AAS
ったく、こりだからよお
469: (ワッチョイ 23b7-S6wV) 06/26(木)17:13 ID:zdpAcYpu0(1/2) AAS
悪意のあるVSCode拡張機能を検出できる「VSCan」
外部リンク:gigazine.net
※上記の
本体プログラミング改造で改造コードを仕込む場所や攻撃ポイントを割り出せる
※上記と下記のプログラムでエラーコードをメモリー^上に無いかを調べて別のプログラムを走らせるとエラーコードから親友できるかが割り出せる
などいろいろと使用可能
AIを活用した完全自律型の侵入テストツール「XBOW」がHackerOneのランキングでついに人間を抜いて1位に
省2
470: (ワッチョイ 3580-mGXm) 06/26(木)17:16 ID:jAlq/lgY0(1) AAS
まず自分の書き込みにAI活用しろよって思った
471: (JP 0Hab-pT1b) 06/26(木)18:27 ID:o/InY5NNH(1) AAS
藁
472: (ワッチョイ 23b7-S6wV) 06/26(木)21:29 ID:zdpAcYpu0(2/2) AAS
AndroidスマホでもiPhoneでもAIモデルをローカルで実行してチャットできる無料アプリ「Cactus Chat」レビュー
外部リンク:gigazine.net
インターネット接続不要でAIモデルをローカル実行できる「LM Studio」にMCPサーバーへの接続機能が追加される
外部リンク:gigazine.net
上記のAIとマクロ機能を使用すればAIのみで会話できるようになる
ボイス・トォ・スカル「神や幽霊」の声はこれで行っているのか?
マクロ機能の拡張でインターネットにも自動で書き込みが可能になる
473: (スプープ Sd43-WIQI) 06/26(木)22:43 ID:CNaMzIfEd(1) AAS
スレ違い。
474: (JP 0Hab-pT1b) 06/28(土)01:04 ID:ILdMmS8aH(1/3) AAS
gcc4.6から4倍精度入ってるみたいですねえ。
Visual C++では入っているかな。調べてみます。
475: (ワッチョイ 55a6-WIQI) 06/28(土)01:17 ID:Ewd2t68S0(1/2) AAS
fortranで使うからね
gccはバックエンドから対応する必要がある機能を他フロントエンドのために入れるときはほぼC言語にも拡張として入れてくる
476: (ワッチョイ d5d6-WswN) 06/28(土)07:36 ID:7fEtq2hP0(1) AAS
新たなクラスを作ってまえばいいのではないでしょうか。
477(1): (JP 0Hab-pT1b) 06/28(土)10:51 ID:ILdMmS8aH(2/3) AAS
C++23からfloat128_tがサポート予定だけど
まだ詳細は決まってなさそう
VS2022ではまだみたい。gccも13.0以降?
478: (ワッチョイ 9bc2-SN7F) 06/28(土)15:20 ID:CPXhvy7f0(1) AAS
>>477
MSのサポート掲示板だかコミュニティBBSだでVSは128_tやる気なし(一応要望は受け付けるけど)、みたいなの読んだ気がする。
479: はちみつ餃子◆8X2XSCHEME (ワッチョイ 8d32-RyDx) 06/28(土)15:55 ID:mCCHdrx+0(1/4) AAS
C++23 では「そのような型があるなら std::float128_t として提供されることもある」というオプショナルなもので、あまりあてにならない。
外部リンク[fp]:timsong-cpp.github.io
ハードウェアとかツールチェインとかの都合もあるだろうし。
480: (JP 0Hab-pT1b) 06/28(土)16:00 ID:ILdMmS8aH(3/3) AAS
うーむ。残念
481: はちみつ餃子◆8X2XSCHEME (ワッチョイ 8d32-RyDx) 06/28(土)16:13 ID:mCCHdrx+0(2/4) AAS
std::float128_t が提供されるときは拡張浮動小数点型 (extended floating-point type) でなけりゃならないみたいだからクラスとして定義できない。
482(1): (ワッチョイ 8d7c-BujW) 06/28(土)16:59 ID:VJLy78nc0(1) AAS
float128_tがあってもFLT_MAXは64ビットという闇
483: はちみつ餃子◆8X2XSCHEME (ワッチョイ 8d32-RyDx) 06/28(土)18:19 ID:mCCHdrx+0(3/4) AAS
>>482
??? float128_t と FLT_MAX にどのような関係があるのか意味が分からない。
484: (ワッチョイ 23f0-WswN) 06/28(土)18:26 ID:uZW6Klue0(1) AAS
float 4バイトだろ 32ビットだぞ
485: はちみつ餃子◆8X2XSCHEME (ワッチョイ 8d32-ukKJ) 06/28(土)19:30 ID:mCCHdrx+0(4/4) AAS
float が 4 バイトなのに 8 バイト相当な値が FLT_MAX として定義されている (言語仕様に準拠していない) 環境があるという意味?
486: (ワッチョイ 55a6-WIQI) 06/28(土)19:40 ID:Ewd2t68S0(2/2) AAS
最大の浮動小数点型を表す定数のどれかと間違えたんでしょ
__int128があってもintmax_tが64ビットのままみたいな話のfloat版のつもりだったと思う
487(1): (JP 0H8e-mQSl) 06/29(日)08:57 ID:9LYz8h1TH(1) AAS
インターネットからファイルをダウンロードするのに、現在のc界隈ではどんなライブラリを使用してるの?
vc2010あたりなら、標準で使えていたけど今でも使えるのかしら?
上下前次1-新書関写板覧索設栞歴
あと 267 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.025s