C++相談室 part166

1sage (ワッチョイ 8732-NXaD)
垢版 |
2025/04/26(土) 10:34:58.41ID:pbPDl6lv0
!extend:checked:vvvvv:1000:512
!extend:checked:vvvvv:1000:512
↑同じ内容を3行貼り付けること

次スレは>>980が立てること
無理なら細かく安価指定

※前スレ
C++相談室 part165
https://mevius.5ch.net/test/read.cgi/tech/1698705458/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
2025/06/20(金) 21:43:49.77ID:ykKOKnwYM
>>412
それは、ユーザープログラムのバグではなく、コンパイラのバグだ。
コンパイラにバグが無ければ、四則演算や&,|,~,^,&&,||などと
括弧の組み合わせた結果は、最適化しても変わらない。
0除算に関しては話が別。
2025/06/20(金) 21:48:47.56ID:ykKOKnwYM
最適化されて変わる可能性があるのは、今思い出せるのは、
・初期化してない変数の中身
・変数のアドレス
・結果を利用せず、副作用も伴わない式の存在。
整数に対する四則演算を含めた「計算」は、仕様が決められているので、
同じコンパイラと同じターゲット(OS、環境)だと最適化しても
結果は変わらない。
浮動小数点に対する計算は誤差の範囲で結果が変化する可能性はある。
2025/06/20(金) 22:25:10.37ID:ykKOKnwYM
>>415
1. 整数の計算途中に「桁あふれ」が起きる場合はこの限りではないかも知れない。
 例えば、整数型 a に対して、a * 100 / 5 は、a * 20 と最適化できる
 可能性がある。しかし a がとても大きい場合には結果は同じにはならない可能性がある。このことに
 関して仕様がどうなっているかは知らない。
2. 浮動小数点型の変数 a に対して、(a * 100.0) / 5.0 は、
 a * 20.0 と最適化できる可能性があるが、浮動小数点型には計算誤差があるので、
 誤差の範囲内で異なる結果になる可能性があるかもしれない。
 これに対して仕様上、最適化していいかどうか走らない。
3. しかし、整数型
417デフォルトの名無しさん (オイコラミネオ MMdd-Rgxs)
垢版 |
2025/06/20(金) 22:25:52.67ID:ykKOKnwYM
>>416
3. しかし、整数型変数 a に対して、(a / 100) * 100 は、
 明らかに
2025/06/20(金) 22:26:34.77ID:ykKOKnwYM
>>416
3. しかし、整数型変数 a に対して、(a / 100) * 100 は、
 明らかに a とは、結果が異なる。だから a と最適化される事は無い。
419デフォルトの名無しさん (ワッチョイ 1279-T1jw)
垢版 |
2025/06/21(土) 01:51:51.86ID:bIqfBqmB0
キミは色々と勘違いをしているからこの手の話をしたいならもうちょい勉強しよう
aが何だろうがa*100/5をa*20とはそもそも出来ないし、2.も同様
3.もaの値によっては演算の前後で値がおなじケースがある
色々あるのでいちいち書かなかったが、例えばaが10の倍数の時、aの絶対値が9以下の時、またaが列挙型だったり配列の添字だったりする時は挙動が推測出来るケースも出てくる
他にも最適化で実行時の演算をしなくてすむケースがある
演算をしなくてもaの値を変えることは出来うるし、その場合除算の代わりにいくつかの分岐や直値に変わるだろう
420デフォルトの名無しさん (JP 0H46-E6Ax)
垢版 |
2025/06/21(土) 02:46:24.26ID:myS4seE9H
また空気読めない書き込みする。ずっと議論
が続いているけど興味ない。

そもそも実数データを表現するbit数が有限
なんだけど(doubleで8byte=64bit)、そりゃあ
場合によっては結果が違うが、実数の場合は
それほど問題じゃない。誤差の範囲内。

整数演算の方が問題。
i=32767/10000*10000の演算やったらどう
なるか?これはコンパイラの最適化の問題
じゃなくてプログラムする人が気をつける
べきことだと思う。というか、変な最適化
はしない方がいいと思う。最適化しなくても
現在のコンピュータ能力じゃあ大して時間差
は問題にならん。

それよりも行列演算でNRVOを実装してほしい。
gccの一部では実装されているみたいだけど。
421デフォルトの名無しさん (JP 0H46-E6Ax)
垢版 |
2025/06/21(土) 02:49:22.52ID:myS4seE9H
あ、言い忘れた。演算子のオーバーロードでの話ね。
2025/06/21(土) 06:20:55.55ID:mM+iEPSf0
>>413
0除算は未定義動作だから、(0除算については)最適化されてエラーが出なくてもC++規格通りかね。
423デフォルトの名無しさん (JP 0H46-E6Ax)
垢版 |
2025/06/21(土) 08:07:57.88ID:myS4seE9H
浮動小数点演算で問題になるのは情報落ち(桁落ち)。
expを指数関数としてexp(x)+exp(-x)でxの絶対値が
大きくなるとどうなるか?4倍精度演算が標準として
ほしい。fortranには昔からある。たしか南米の人が
C++で4倍精度演算ライブラリ作ってた気がする。
424デフォルトの名無しさん (JP 0H46-E6Ax)
垢版 |
2025/06/21(土) 08:14:50.36ID:myS4seE9H
ところで、前から気になってたけど何でワイだけ
ワッチョイ出ないんだろ。メール設定ミス?それとも
プロバイダの問題?目立つから困る。
2025/06/21(土) 09:45:45.70ID:cFB8HkI30
signedのオーバーフローは未定義だがunsignedのオーバーフローは定義されてる
あとC/C++はfenvで浮動小数点コプロセッサのモードを切り替えられるから、それを使うつもりのコードはコンパイル時に計算されると狂ったりはする
2025/06/21(土) 11:27:06.14ID:fGhLJfIJa
>>424
ワッチョイと同じ役割を持つ名前一覧
1) オイコラミネオ
2) ササクッテロ
3) オッペケ
4) エムゾネ
5) スプー・スプッ

JPは知らん
2025/06/21(土) 11:46:04.84ID:pKk6RtsPM
>>419
あなたは馬鹿。
数学的センスが無いので、勉強しても直らないだろう。
428デフォルトの名無しさん (JP 0H46-E6Ax)
垢版 |
2025/06/21(土) 12:00:57.87ID:myS4seE9H
>>426
レスありがとう。プロバイダが関係してるのかな
429デフォルトの名無しさん (アウアウウー Sacd-dpHj)
垢版 |
2025/06/21(土) 13:55:21.38ID:xPq+xj/ja
>>424
VPNでも使ってるんだろ
430デフォルトの名無しさん (JP 0H46-E6Ax)
垢版 |
2025/06/21(土) 14:01:54.99ID:myS4seE9H
VPNオンだと5chが書き込み拒否する。まあ、いいか。
2025/06/21(土) 15:02:17.15ID:S2983oYI0
>>424
出てるじゃん JPって
大方逆引き不可なホストだろうからプロバイダの問題ではある
マイナーすぎて細かく設定してないだけかも知れないけど
432デフォルトの名無しさん (JP 0H46-E6Ax)
垢版 |
2025/06/21(土) 15:34:31.30ID:myS4seE9H
>>431
レスありがとうございます。本スレの趣旨に合わないので
以後の返事は控えさせていただきます。
2025/06/21(土) 16:15:28.70ID:kXnmGuVNM
先の話題について、コンピュータではなく数学の世界まで振り返って考えてみると、
(1) a が実数の時
a * 100 / 100 = a
は恒等的に成り立つ。だからこの最適化は、精度を無視すれば
していい可能性が高い。
(2) a が整数で、整数としての割り算で考える場合、
a * 100 / 100 = a
は、一般的には成り立たない。
だから、a * 100 / 100 を a と最適化することはそもそも出来ない。
2025/06/21(土) 16:16:35.17ID:kXnmGuVNM
>>433
重大な訂正。
(2)は正しくはこう :
(a / 100) * 100 = a
は、一般的には成り立たない。
だから、(a /100) * 100 を a と最適化することはそもそも出来ない。
435デフォルトの名無しさん (ワッチョイ b295-m2eM)
垢版 |
2025/06/21(土) 16:40:28.18ID:Kar31VLO0
分かったからもういいって
対人論証するようなのの意見は誰も聞かんよ
436デフォルトの名無しさん (ワッチョイ 6ef5-QhKk)
垢版 |
2025/06/21(土) 17:52:28.47ID:YF3X9a/V0
そりゃタダのコンパイラならかっこ付き計算の仕様に合わせて最適化しかできない
でもそれがAIがやるようになると、トータルで何やってるか把握して最適化するようになるから
無駄な計算は省かれるだろう
2025/06/21(土) 18:30:14.39ID:wcVxTOdx0
マジックナンバーだらけになりそうだな
2025/06/21(土) 18:49:30.35ID:9yAQ73mO0
日によって最適化の結果が変わりそうだな
2025/06/21(土) 19:00:56.65ID:kXnmGuVNM
浮動小数点数を「実数」と見た時に
『数学的な恒等式』ならば、最適化していい
という価値観は有るはずだ。
実際には、実数は無限精度であるのに対し、浮動小数点数は
有限精度であるから、実数では恒等式であっても、
浮動小数点数では恒等式ではないので、最適化すると結果が
少し変わってしまうことはありえる。
2025/06/21(土) 20:42:47.18ID:ea0qUnOa0
そんなのはまともなコンパイラはみんな分かってて-ffast-mathとかでやるかやらないか選べるけどそれが何?
441デフォルトの名無しさん (JP 0H46-E6Ax)
垢版 |
2025/06/21(土) 21:24:08.46ID:myS4seE9H
すみません。次のコードで .5e のところの精度(少数部桁数)5
を変数precで設定したいんですけど、さっきからコンパイラに
駄目だし食らって遊ばれとります。わかる人いますか?
#include <iostream>
#include <cmath>
#include <format>

int main()
{
using namespace std;

double x, y, dx=0.5;
unsigned prec =4;

for (int i = 0; i < 20; ++i)
{
x = i * dx;
y = sin(x);
cout << format("{: .5e} {: .5e}", x, y) << endl;
}

cin.get();
return 0;
}
442デフォルトの名無しさん (JP 0H46-E6Ax)
垢版 |
2025/06/21(土) 21:35:25.24ID:myS4seE9H
cout << format("{0: .{2}e} {1: .{2}e}", x, y, prec) << endl;
で解決しました。
2025/06/21(土) 22:20:34.53ID:07kyc98IM
>>440
https://kristerw.github.io/2021/10/19/fast-math/
ここには、「-fassociative-math」が今回の例に近いようだが、
同じものは載ってないと思うが。
以下は、近いが、今回のものとはまた違う :
(C1 / X) * C2

(C1 * C2) / X
444デフォルトの名無しさん (ワッチョイ c54b-jK4x)
垢版 |
2025/06/22(日) 12:29:48.51ID:4aXQSYOG0
・人間の思考「脳波」は頭蓋骨の外に漏れない
人間の脳は発光していた!「脳が放つ光」の観測に初成功
2025.06.19 12:00:38 THURSDAY
https://nazology.kusuguru.co.jp/archives/179808
>>カナダ・アルゴマ大学(Algoma University)の最新研究で、ついにこの「脳の光」を頭蓋骨の外から観測することに成功したのです。
>>UPEは細胞の代謝活動、特に酸化反応によって発生する副産物の一種です。
>>以来、UPEはあらゆる植物や動物の細胞からも確認されており、生体内の酸化ストレスや老化、さらにはがんの診断補助にも応用が期待されてきました。
>>脳は体の中で最も代謝が活発な臓器のひとつであり、神経活動に伴って活性酸素が多く発生します。
>>チームは今回、20人の健康な成人を対象に、特殊な装置を用いた実験を実施しました。
>>被験者は真っ暗な部屋に座り、頭には脳波計を装着。
>>その周囲には、光電子増倍管(PMT)と呼ばれる極微弱な光を検出する装置が配置されました。
>>そして被験者には、目を開ける/閉じる、あるいは音楽(120BPM)を聴くといったシンプルなタスクを行ってもらい、その間のUPEと脳波の変化を同時に測定したのです。
☆>>まず、脳からのUPEは背景光(周囲の空気中のノイズ)とは明確に異なる変動パターンを持つことが判明したのです。
>>とくに後頭部(視覚野)と側頭部(聴覚野)から検出された光は、安静時でも一定のリズムと変動性を示し、他の部位とは異なるスペクトル的特徴を持っていました。
>>さらに目を閉じたときに増える「アルファ波」と呼ばれる脳波の活動と、UPEの強さが同期していることも発見されました。
>>これはつまり、脳の電気的な信号(脳波)と、化学的な代謝反応(UPE)が連動していることを意味します。
>>この成果は、従来のfMRIやPETスキャンのような「重装備で高コスト」な装置を使わずとも、非侵襲・低刺激で脳機能の状態を“光”から読み取る可能性を示すものです。
>>研究者たちはこの新しい手法を「光脳波記録(photoencephalography)」と名付けました。
2025/06/22(日) 12:39:57.32ID:gKjr8htc0
光コンピューティングやないかい
2025/06/22(日) 17:00:05.82ID:CnBC1yms0
光というのは電磁波だったと思うが。
447デフォルトの名無しさん (ワッチョイ 3575-mUa+)
垢版 |
2025/06/22(日) 17:03:00.89ID:ZWGsAnaU0
ニュータイプ近づいたな
2025/06/22(日) 18:48:20.68ID:/yOBM7d0d
スレ違い。
2025/06/22(日) 19:08:02.78ID:x4CLaAtVM
>>444
みたいな書き込み、完全にスレチ
このスレのみならず、板自体が壊れてしまう。
2025/06/23(月) 01:01:04.29ID:Gvg9upbV0
http://hissi.org/read.php/tech/20250622/NGFYUVNZT0cw.html
毎回こことPythonスレだけ荒らしてるアホ
2025/06/23(月) 01:12:15.09ID:Btl+IikW0
統失の間でもPythonとC++は認知されてるってことでしょ
名誉ですなぁ
2025/06/23(月) 14:29:01.81ID:zsxUyp330
C++でpythonのライブラリを作るのが気持ちいいかなみたいな。
ん? 普通はpythonのライブラリって何で書かれているんだろう。
2025/06/23(月) 16:02:13.08ID:n3O4Zcz+M
>>450
Rustスレにも投稿されてたで。
2025/06/24(火) 09:31:18.32ID:17zM306Da
pythonのモジュールはpythonでも描けるが
もちろんCでも描けるしC++でも描ける
最近はRustで描くのが楽で良い
455デフォルトの名無しさん (JP 0Hab-E2BB)
垢版 |
2025/06/24(火) 17:31:46.42ID:Sa2uRHN0H
Rustは良い言語かもしれんが、自分には
必要ない。
2025/06/24(火) 18:59:56.02ID:FRc1H2/gM
>>455
同意
2025/06/24(火) 19:19:29.25ID:8wBejQ5/0
>>454
なんで、AIはPythonで書かれるんだろうな

謎だな…
2025/06/24(火) 19:22:51.87ID:hfqdv+Ay0
Rustに静的ダックタイプ入ったら使うかどうか考える。
設計をカッチリできるプロジェクトでもなければRustはキツくない?

c++もコンセプト制約変数とか入らんかな。
変数レベルで静的ダックタイプにして、クラス継承は無くしたい。
2025/06/24(火) 19:44:21.82ID:s2rFPvAe0
C++26 にはリフレクションがようやく入る見込みで、これを使えばダックタイピングのような仕組みをライブラリで実現できる。
2025/06/24(火) 20:15:46.49ID:S1fYPTVc0
>>457
モジュールを書く人とAIを書く人が別だからじゃろ
2025/06/24(火) 20:45:25.03ID:s2rFPvAe0
AI の専門家がプログラミングの専門家というわけでもないしな。
2025/06/24(火) 20:49:18.38ID:8wBejQ5/0
>>460
というと?
2025/06/26(木) 02:55:12.43ID:v8FRsUWIM
NSCがC++を廃してRustを推しているのは、中国のUnrealEngineへの牽制か?
2025/06/26(木) 02:59:40.78ID:v8FRsUWIM
NSA だ。
2025/06/26(木) 03:19:10.72ID:P3qvmtvK0
>>463
unreal engineって、
中国が株主でしょ
2025/06/26(木) 07:43:46.78ID:NfgrBwV2p
UEはアメリカのゲーム企業が作ったものなんだが・・
2025/06/26(木) 12:38:45.11ID:deRGahNkM
スマン。中国が作ったものだとばかり思っていた。
2025/06/26(木) 12:41:11.49ID:3UJQKTFB0
ったく、こりだからよお
469デフォルトの名無しさん (ワッチョイ 23b7-S6wV)
垢版 |
2025/06/26(木) 17:13:34.04ID:zdpAcYpu0
悪意のあるVSCode拡張機能を検出できる「VSCan」
https://gigazine.net/news/20250625-vscan/
※上記の
本体プログラミング改造で改造コードを仕込む場所や攻撃ポイントを割り出せる
※緒繼Lと下記のプャ鴻Oラムでエラ=[コードをメモャ梶[^上に無いbゥを調べて別のャvログラムを走b轤ケるとエラーャRードから親友bナきるかが割り緒oせる
などいろいろと使用可能

AIを活用した完全自律型の侵入テストツール「XBOW」がHackerOneのランキングでついに人間を抜いて1位に
https://gigazine.net/news/20250625-hackerone-xbow/

上記のプログラムと電波障害などで生じたエラーなどでで無理やりセキュリティーほーホールを見つけれる
2025/06/26(木) 17:16:52.94ID:jAlq/lgY0
まず自分の書き込みにAI活用しろよって思った
471デフォルトの名無しさん (JP 0Hab-pT1b)
垢版 |
2025/06/26(木) 18:27:21.16ID:o/InY5NNH
472デフォルトの名無しさん (ワッチョイ 23b7-S6wV)
垢版 |
2025/06/26(木) 21:29:08.64ID:zdpAcYpu0
AndroidスマホでもiPhoneでもAIモデルをローカルで実行してチャットできる無料アプリ「Cactus Chat」レビュー
https://gigazine.net/news/20250626-cactus-chat-android-ios-ai-local/

インターネット接続不要でAIモデルをローカル実行できる「LM Studio」にMCPサーバーへの接続機能が追加される
https://gigazine.net/news/20250626-lmstudio-mcp/

上記のAIとマクロ機能を使用すればAIのみで会話できるようになる
ボイス・トォ・スカル「神や幽霊」の声はこれで行っているのか?

マクロ機能の拡張でインターネットにも自動で書き込みが可能になる
2025/06/26(木) 22:43:52.27ID:CNaMzIfEd
スレ違い。
474デフォルトの名無しさん (JP 0Hab-pT1b)
垢版 |
2025/06/28(土) 01:04:10.64ID:ILdMmS8aH
gcc4.6から4倍精度入ってるみたいですねえ。
Visual C++では入っているかな。調べてみます。
2025/06/28(土) 01:17:47.38ID:Ewd2t68S0
fortranで使うからね
gccはバックエンドから対応する必要がある機能を他フロントエンドのために入れるときはほぼC言語にも拡張として入れてくる
2025/06/28(土) 07:36:59.43ID:7fEtq2hP0
新たなクラスを作ってまえばいいのではないでしょうか。
477デフォルトの名無しさん (JP 0Hab-pT1b)
垢版 |
2025/06/28(土) 10:51:00.28ID:ILdMmS8aH
C++23からfloat128_tがサポート予定だけど
まだ詳細は決まってなさそう
VS2022ではまだみたい。gccも13.0以降?
478デフォルトの名無しさん (ワッチョイ 9bc2-SN7F)
垢版 |
2025/06/28(土) 15:20:29.63ID:CPXhvy7f0
>>477
MSのサポート掲示板だかコミュニティBBSだでVSは128_tやる気なし(一応要望は受け付けるけど)、みたいなの読んだ気がする。
2025/06/28(土) 15:55:10.80ID:mCCHdrx+0
C++23 では「そのような型があるなら std​::​float128_t として提供されることもある」というオプショナルなもので、あまりあてにならない。
https://timsong-cpp.github.io/cppwp/n4950/basic.extended.fp#4
ハードウェアとかツールチェインとかの都合もあるだろうし。
480デフォルトの名無しさん (JP 0Hab-pT1b)
垢版 |
2025/06/28(土) 16:00:47.16ID:ILdMmS8aH
うーむ。残念
2025/06/28(土) 16:13:42.13ID:mCCHdrx+0
std​::​float128_t が提供されるときは拡張浮動小数点型 (extended floating-point type) でなけりゃならないみたいだからクラスとして定義できない。
2025/06/28(土) 16:59:30.25ID:VJLy78nc0
float128_tがあってもFLT_MAXは64ビットという闇
2025/06/28(土) 18:19:57.03ID:mCCHdrx+0
>>482
??? float128_t と FLT_MAX にどのような関係があるのか意味が分からない。
2025/06/28(土) 18:26:24.23ID:uZW6Klue0
float 4バイトだろ 32ビットだぞ
2025/06/28(土) 19:30:31.51ID:mCCHdrx+0
float が 4 バイトなのに 8 バイト相当な値が FLT_MAX として定義されている (言語仕様に準拠していない) 環境があるという意味?
2025/06/28(土) 19:40:49.68ID:Ewd2t68S0
最大の浮動小数点型を表す定数のどれかと間違えたんでしょ
__int128があってもintmax_tが64ビットのままみたいな話のfloat版のつもりだったと思う
487デフォルトの名無しさん (JP 0H8e-mQSl)
垢版 |
2025/06/29(日) 08:57:18.64ID:9LYz8h1TH
インターネットからファイルをダウンロードするのに、現在のc界隈ではどんなライブラリを使用してるの?
vc2010あたりなら、標準で使えていたけど今でも使えるのかしら?
2025/06/29(日) 10:59:10.19ID:zQA4sk9y0
ちょっ質問なのですが
class Fooの中で構造体型PrivateStructがprivateな型として定義されており、
PrivateStruct型のFooのprivateなメンバFoo::m_stもある状況に対し、
Fooの外でauto&でもってPrivateStructの型を使用できて、
あまつさえFoo::m_stの値を読んだり書いたりできたりしてカプセル化神話が崩壊したんだけど
これっておま環?
(コード)
https://ideone.com/slBA72
2025/06/29(日) 12:56:56.18ID:RnCZLFSE0
>>487
Windows が前提なら WinINet を使うのが素直なやり方だと思う。
規格の多少の更新などがあっても OS の側で対処してくれるからアプリケーションはリビルドする必要すらなく長期的に使えることが期待できる。

マルチプラットフォームを考えるなら Curl が楽かなぁ……。
2025/06/29(日) 13:04:25.17ID:RnCZLFSE0
>>488
アクセス指定は識別子の可視性であって、間接的なアクセスも含めた一切の利用を禁止するわけではないよ。
2025/06/29(日) 13:14:06.51ID:zQA4sk9y0
上のコードの
>auto& st = x.refStruct(); // stはFooのprivateな型だがビルドが通る。
が識別子PrivateStructの可視性を無視してくれる理由がわからんぬ……
これ
>PrivateStruct& st = x.refStruct();
と書いたら型の名前PrivateStructの可視性がprivateなのでもちろんエラーになる
2025/06/29(日) 13:18:58.11ID:zQA4sk9y0
訂正orz
×: >PrivateStruct& st = x.refStruct();
○: >Foo::PrivateStruct& st = x.refStruct();
2025/06/29(日) 13:37:38.54ID:RnCZLFSE0
>>491
> 識別子PrivateStructの可視性を無視してくれる理由

識別子 PrivateStruct を使っていないから。
この場合は x.refStruct() という式から型を推論するので型名 (であるような識別子) の可視性は関係ない。

プライベートなデータメンバ m_st だってその参照を外へ持ち出してるだろ。
外で m_st という名前でアクセスできないが m_st に対応するオブジェクトへのアクセスは (アクセス経路があるなら) アクセス指定に左右されない。
同様に、プライベートに定義した型を型名ではアクセスできないが型を使えないわけではない。
2025/06/29(日) 13:59:10.64ID:zQA4sk9y0
>識別子 PrivateStruct を使っていないから。
>この場合は x.refStruct() という式から型を推論するので型名 (であるような識別子) の可視性は関係ない。
なんで?
不完全な型の参照はエラーになるのだから
コンパイラは型推論の際Foo::PrivateStructという完全な型の情報まで突き止めているはず……
なんでFoo::PrivateStructの可視性を無視してくれるのや……
無視せずエラーにする言語仕様もあり得たはず
ていうかエラーにならないのがおま環でない証拠がいまのところ無い……
2025/06/29(日) 14:09:12.19ID:RnCZLFSE0
>>494
名前に対する使用制限である旨がはっきりと書いてある。
https://timsong-cpp.github.io/cppwp/n3337/class.access#1.1
2025/06/29(日) 15:12:39.04ID:FAAHlPSo0
>>494
でもFoo::PrivateStructを指すpublicなtype aliasがあったらやっぱりエラーにしないで!
とか言ってきたらはっ倒すぞって感じの言語仕様やなあ
2025/06/29(日) 15:29:55.25ID:PWOccKtm0
プライベートメンバーの参照を返す関数を public でアクセスできる設計の方が驚き
2025/06/29(日) 15:52:20.20ID:RnCZLFSE0
>>497
これ単体で見るとおかしいがプロキシパターンなどでそういう構成になることはある。
2025/06/29(日) 16:51:17.70ID:RnCZLFSE0
すまん。プロクシパターンではないな。
見当違いなことを書いてた。

まあこの場合は言語機能の確認のサンプルだと思うから設計がどうこうはあまり気にしなくていいんじゃね。
2025/06/29(日) 19:25:35.84ID:TdQ2JxNKa
たしかに直感的には auto で private な型を推論してしまうのはヤバくね?という感覚になってしまうが
続くレスで指摘されてるとおり private な識別子だからといって外に持ち出せないわけではないので(それを禁止するほうが弊害が大きい)
そういうもんだと思ってプログラマが注意するしかないな
元々 C++ はやり方次第で言語仕様の本来の目的を外れたヤバい方法がいくらでもつかえる言語であり
どんな場面でも常にプログラマは注意を払うべきなので、そういう C++ の"性格"がこの場面でも出たというところか
こういうのがどうしても気になり完全な"性格"の言語が欲しいなら、他の言語にいったほうがよい
2025/06/29(日) 19:47:06.28ID:ivfL45vHM
>>489
libcurl でいいと思う。便利だし。
curlコマンドと同じように使えるはずだし。
2025/06/30(月) 19:44:03.19ID:etdu4EFd0
長い名前空間の扱いの質問なのですが、
例えばA::B::C::DみたいなクラスD内でP::Q::R::SのようなクラスSを使用していて
ヘッダーファイルが
namespace A::B::C {
public class D {
 void foo(P::Q::R::S& s);
};
}
みたいな感じになるのですが、実際にはこのP::Q::R::Sが非常に長く正直見苦しいです
かといってusingをヘッダー内で使うのは良くないですよね?
こういう場合にP::Q::R::Sの部分を簡潔な表記にする方法はありますでしょうか
2025/06/30(月) 20:47:28.37ID:CUK0Fuvn0
namespace pqrs = P::Q::R::S
でいいんじゃない?
2025/07/01(火) 21:41:31.12ID:W7Fp4vWi0
Sしか使わないならusing P::Q::R::S;
2025/07/01(火) 22:22:06.69ID:kHEih0Y20
>>504
using P::Q::R::S; したらもしも using namespace A::B::C; したときに P::Q::R::S も探索対象になってしまう。
使う側に余計な影響を与えないようにするには別名をつけるほうがより良い。
506デフォルトの名無しさん (ワッチョイ 3641-ctb7)
垢版 |
2025/07/03(木) 00:24:37.09ID:ye5zZInN0
エンベデッド分野は今でもC/C++が主流なの?
AIに任せられない分野だから生きのこれそうで気になっておりまする
2025/07/03(木) 09:26:35.93ID:q23h/8z8a
良いんじゃね
2025/07/03(木) 11:06:49.67ID:4Hn86Ej50
>>506
組み込みシステムも多様なので性質や規模によるでしょ。
リアルタイム性が重要なところでは C/C++ は主流のままだと思うけど、プロジェクト全体が C/C++ だけで構成されることは少なくなるんじゃない?
509デフォルトの名無しさん (ワッチョイ 420e-vr7j)
垢版 |
2025/07/03(木) 11:57:31.86ID:0Ka09OV10
リアルタイム性はOSがやることだし
言語関係ないよ
510デフォルトの名無しさん (ワッチョイ e79a-0q56)
垢版 |
2025/07/03(木) 12:22:21.27ID:dQk6sKVB0
Javaや.NETはGCでストップ・ザ・ワールドが発生するからリアルタイムに弱いらしい
最近は目標停止時間を1ms以下に抑えるGCもあるけど、あくまでも目標であって保証ではないからね
2025/07/03(木) 15:27:43.14ID:d0nwmVKl0
>>509
イベントスレッドでIOされてもOSがなんとかすると思ってんの?
512デフォルトの名無しさん (アウアウウー Sabb-H9/A)
垢版 |
2025/07/04(金) 08:50:43.54ID:fF3rQ1JLa
組み込み
リアルタイムOS
これほど曖昧な言い回しは他に無い
2025/07/04(金) 10:17:03.12ID:wZ441BSd0
>>509
リアルタイム性が重要なところというのはまさにそのリアルタイム OS のことで、それらを書くのに C/C++ が主流という話なんやで。
そんで既存の OS を使う場合でも次にアプリケーションを用意すれば動くというわけではなくて、組み込みシステムなら大抵の場合にデバイスドライバも書かなければいけないし、 OS が面倒みてくれる範囲は小さい。

低レイヤの整備がすでに整っている状況ならアプリケーションはもうちょっと言語の選択肢はあるかもね。
レスを投稿する

5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況