C++相談室 part166 (652レス)
上下前次1-新
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
https://kristerw.github.io/2021/10/19/fast-math/
ここには、「-fassociative-math」が今回の例に近いようだが、
同じものは載ってないと思うが。
以下は、近いが、今回のものとはまた違う :
(C1 / X) * C2
↓
(C1 * C2) / X
444(1): (ワッチョイ c54b-jK4x) 06/22(日)12:29 ID:4aXQSYOG0(1)調 AAS
・人間の思考「脳波」は頭蓋骨の外に漏れない
人間の脳は発光していた!「脳が放つ光」の観測に初成功
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)」と名付けました。
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
http://hissi.org/read.php/tech/20250622/NGFYUVNZT0cw.html
毎回ここと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」
https://gigazine.net/news/20250625-vscan/
※上記の
本体プログラミング改造で改造コードを仕込む場所や攻撃ポイントを割り出せる
※上記と下記のプログラムでエラーコードをメモリー^上に無いかを調べて別のプログラムを走らせるとエラーコードから親友できるかが割り出せる
などいろいろと使用可能
AIを活用した完全自律型の侵入テストツール「XBOW」がHackerOneのランキングでついに人間を抜いて1位に
https://gigazine.net/news/20250625-hackerone-xbow/
上記のプログラムと電波障害などで生じたエラーなどでで無理やりセキュリティーほーホールを見つけれる
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」レビュー
https://gigazine.net/news/20250626-cactus-chat-android-ios-ai-local/
インターネット接続不要でAIモデルをローカル実行できる「LM Studio」にMCPサーバーへの接続機能が追加される
https://gigazine.net/news/20250626-lmstudio-mcp/
上記の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 として提供されることもある」というオプショナルなもので、あまりあてにならない。
https://timsong-cpp.github.io/cppwp/n4950/basic.extended.fp#4
ハードウェアとかツールチェインとかの都合もあるだろうし。
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あたりなら、標準で使えていたけど今でも使えるのかしら?
488(1): (ワッチョイ 06a1-6mIp) 06/29(日)10:59 ID:zQA4sk9y0(1/4)調 AAS
ちょっ質問なのですが
class Fooの中で構造体型PrivateStructがprivateな型として定義されており、
PrivateStruct型のFooのprivateなメンバFoo::m_stもある状況に対し、
Fooの外でauto&でもってPrivateStructの型を使用できて、
あまつさえFoo::m_stの値を読んだり書いたりできたりしてカプセル化神話が崩壊したんだけど
これっておま環?
(コード)
https://ideone.com/slBA72
489(1): はちみつ餃子◆8X2XSCHEME (ワッチョイ 7b32-T+w5) 06/29(日)12:56 ID:RnCZLFSE0(1/6)調 AAS
>>487
Windows が前提なら WinINet を使うのが素直なやり方だと思う。
規格の多少の更新などがあっても OS の側で対処してくれるからアプリケーションはリビルドする必要すらなく長期的に使えることが期待できる。
マルチプラットフォームを考えるなら Curl が楽かなぁ……。
490: はちみつ餃子◆8X2XSCHEME (ワッチョイ 7b32-T+w5) 06/29(日)13:04 ID:RnCZLFSE0(2/6)調 AAS
>>488
アクセス指定は識別子の可視性であって、間接的なアクセスも含めた一切の利用を禁止するわけではないよ。
491(1): (ワッチョイ 06a1-6mIp) 06/29(日)13:14 ID:zQA4sk9y0(2/4)調 AAS
上のコードの
>auto& st = x.refStruct(); // stはFooのprivateな型だがビルドが通る。
が識別子PrivateStructの可視性を無視してくれる理由がわからんぬ……
これ
>PrivateStruct& st = x.refStruct();
と書いたら型の名前PrivateStructの可視性がprivateなのでもちろんエラーになる
492: (ワッチョイ 06a1-6mIp) 06/29(日)13:18 ID:zQA4sk9y0(3/4)調 AAS
訂正orz
×: >PrivateStruct& st = x.refStruct();
○: >Foo::PrivateStruct& st = x.refStruct();
493: はちみつ餃子◆8X2XSCHEME (ワッチョイ 7b32-T+w5) 06/29(日)13:37 ID:RnCZLFSE0(3/6)調 AAS
>>491
> 識別子PrivateStructの可視性を無視してくれる理由
識別子 PrivateStruct を使っていないから。
この場合は x.refStruct() という式から型を推論するので型名 (であるような識別子) の可視性は関係ない。
プライベートなデータメンバ m_st だってその参照を外へ持ち出してるだろ。
外で m_st という名前でアクセスできないが m_st に対応するオブジェクトへのアクセスは (アクセス経路があるなら) アクセス指定に左右されない。
同様に、プライベートに定義した型を型名ではアクセスできないが型を使えないわけではない。
494(2): (ワッチョイ 06a1-6mIp) 06/29(日)13:59 ID:zQA4sk9y0(4/4)調 AAS
>識別子 PrivateStruct を使っていないから。
>この場合は x.refStruct() という式から型を推論するので型名 (であるような識別子) の可視性は関係ない。
なんで?
不完全な型の参照はエラーになるのだから
コンパイラは型推論の際Foo::PrivateStructという完全な型の情報まで突き止めているはず……
なんでFoo::PrivateStructの可視性を無視してくれるのや……
無視せずエラーにする言語仕様もあり得たはず
ていうかエラーにならないのがおま環でない証拠がいまのところ無い……
495: はちみつ餃子◆8X2XSCHEME (ワッチョイ 7b32-T+w5) 06/29(日)14:09 ID:RnCZLFSE0(4/6)調 AAS
>>494
名前に対する使用制限である旨がはっきりと書いてある。
https://timsong-cpp.github.io/cppwp/n3337/class.access#1.1
496: (ワッチョイ 42dd-95xj) 06/29(日)15:12 ID:FAAHlPSo0(1)調 AAS
>>494
でもFoo::PrivateStructを指すpublicなtype aliasがあったらやっぱりエラーにしないで!
とか言ってきたらはっ倒すぞって感じの言語仕様やなあ
497(1): (ワッチョイ d7ad-DFSU) 06/29(日)15:29 ID:PWOccKtm0(1)調 AAS
プライベートメンバーの参照を返す関数を public でアクセスできる設計の方が驚き
498: はちみつ餃子◆8X2XSCHEME (ワッチョイ 7b32-0lSL) 06/29(日)15:52 ID:RnCZLFSE0(5/6)調 AAS
>>497
これ単体で見るとおかしいがプロキシパターンなどでそういう構成になることはある。
499: はちみつ餃子◆8X2XSCHEME (ワッチョイ 7b32-0lSL) 06/29(日)16:51 ID:RnCZLFSE0(6/6)調 AAS
すまん。プロクシパターンではないな。
見当違いなことを書いてた。
まあこの場合は言語機能の確認のサンプルだと思うから設計がどうこうはあまり気にしなくていいんじゃね。
500: (アウアウウー Sabb-BfA2) 06/29(日)19:25 ID:TdQ2JxNKa(1)調 AAS
たしかに直感的には auto で private な型を推論してしまうのはヤバくね?という感覚になってしまうが
続くレスで指摘されてるとおり private な識別子だからといって外に持ち出せないわけではないので(それを禁止するほうが弊害が大きい)
そういうもんだと思ってプログラマが注意するしかないな
元々 C++ はやり方次第で言語仕様の本来の目的を外れたヤバい方法がいくらでもつかえる言語であり
どんな場面でも常にプログラマは注意を払うべきなので、そういう C++ の"性格"がこの場面でも出たというところか
こういうのがどうしても気になり完全な"性格"の言語が欲しいなら、他の言語にいったほうがよい
501: (オイコラミネオ MM6b-fGW2) 06/29(日)19:47 ID:ivfL45vHM(1)調 AAS
>>489
libcurl でいいと思う。便利だし。
curlコマンドと同じように使えるはずだし。
502: (ワッチョイ 8e1a-9Qg/) 06/30(月)19:44 ID:etdu4EFd0(1)調 AAS
長い名前空間の扱いの質問なのですが、
例えば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の部分を簡潔な表記にする方法はありますでしょうか
503: (ワッチョイ e794-iZCu) 06/30(月)20:47 ID:CUK0Fuvn0(1)調 AAS
namespace pqrs = P::Q::R::S
でいいんじゃない?
504(1): (ワッチョイ 7b7c-9nZq) 07/01(火)21:41 ID:W7Fp4vWi0(1)調 AAS
Sしか使わないならusing P::Q::R::S;
505: はちみつ餃子◆8X2XSCHEME (ワッチョイ 7b32-0lSL) 07/01(火)22:22 ID:kHEih0Y20(1)調 AAS
>>504
using P::Q::R::S; したらもしも using namespace A::B::C; したときに P::Q::R::S も探索対象になってしまう。
使う側に余計な影響を与えないようにするには別名をつけるほうがより良い。
506(1): (ワッチョイ 3641-ctb7) 07/03(木)00:24 ID:ye5zZInN0(1)調 AAS
エンベデッド分野は今でもC/C++が主流なの?
AIに任せられない分野だから生きのこれそうで気になっておりまする
507: (アウアウウー Sabb-H9/A) 07/03(木)09:26 ID:q23h/8z8a(1)調 AAS
良いんじゃね
508(1): はちみつ餃子◆8X2XSCHEME (ワッチョイ 4730-0lSL) 07/03(木)11:06 ID:4Hn86Ej50(1)調 AAS
>>506
組み込みシステムも多様なので性質や規模によるでしょ。
リアルタイム性が重要なところでは C/C++ は主流のままだと思うけど、プロジェクト全体が C/C++ だけで構成されることは少なくなるんじゃない?
509(2): (ワッチョイ 420e-vr7j) 07/03(木)11:57 ID:0Ka09OV10(1)調 AAS
リアルタイム性はOSがやることだし
言語関係ないよ
510: (ワッチョイ e79a-0q56) 07/03(木)12:22 ID:dQk6sKVB0(1)調 AAS
Javaや.NETはGCでストップ・ザ・ワールドが発生するからリアルタイムに弱いらしい
最近は目標停止時間を1ms以下に抑えるGCもあるけど、あくまでも目標であって保証ではないからね
511(1): (ワッチョイ 4e5f-nkZs) 07/03(木)15:27 ID:d0nwmVKl0(1)調 AAS
>>509
イベントスレッドでIOされてもOSがなんとかすると思ってんの?
512(1): (アウアウウー Sabb-H9/A) 07/04(金)08:50 ID:fF3rQ1JLa(1)調 AAS
組み込み
リアルタイムOS
これほど曖昧な言い回しは他に無い
513: はちみつ餃子◆8X2XSCHEME (ワッチョイ 7b32-0lSL) 07/04(金)10:17 ID:wZ441BSd0(1)調 AAS
>>509
リアルタイム性が重要なところというのはまさにそのリアルタイム OS のことで、それらを書くのに C/C++ が主流という話なんやで。
そんで既存の OS を使う場合でも次にアプリケーションを用意すれば動くというわけではなくて、組み込みシステムなら大抵の場合にデバイスドライバも書かなければいけないし、 OS が面倒みてくれる範囲は小さい。
低レイヤの整備がすでに整っている状況ならアプリケーションはもうちょっと言語の選択肢はあるかもね。
514: (ワッチョイ a332-vr7j) 07/04(金)10:58 ID:8a61AjkK0(1/2)調 AAS
リアルタイムOSでないOSで、リアルタイム性重視ならそうだが
リアルタイムOSで作るなら言語は何でもいい
515: (ワッチョイ a332-vr7j) 07/04(金)10:59 ID:8a61AjkK0(2/2)調 AAS
例えば24時間365日止まってはいけない産業用制御なんて
C++でも何でもない
516: (ワッチョイ 6fd6-sHGY) 07/04(金)11:09 ID:7dTC+3QP0(1)調 AAS
シェルで済むならシェルにしなさい。(UNIX)
517: (ワッチョイ 4ef9-nkZs) 07/04(金)11:13 ID:lC93JhvQ0(1/2)調 AAS
言語なんでもいいって?
リアルタイムOSってそもそも言語の選択肢少ねーだろ
518: (ワッチョイ 4ef9-nkZs) 07/04(金)11:19 ID:lC93JhvQ0(2/2)調 AAS
>>512
いうほどあいまいか?
せいぜい中身がLinux、Windowsでアプリのインストールも自由みたいなやつだけだろ
519: (ワッチョイ 06a1-6mIp) 07/04(金)20:28 ID:wNUogzY00(1/2)調 AAS
>>511
ちょっI/Oしたらやっぱリアルタイム性に影響出るの?!
んまー秒単位でwaitして帰ってこないみたいな極端なI/Oポートがあったらそうかもしれないが
520: (ワッチョイ 06a1-6mIp) 07/04(金)20:39 ID:wNUogzY00(2/2)調 AAS
>24時間365日止まってはいけない産業用制御
冗長構成かフェイルオーバーするような枠組みとしての取り組みが第一優先な希ガス……
ソフトウェアーの冪等性により同じバグが同じタイミングで発生して冗長構成が無意味化するする危険性については
十分テストしてバグを撮ったのちに起動タイミングをずらすなどの工夫を行えばポアソン分布の同時確率か何かに従って無視できうる(と思う
さすがに原子炉の制御とかだとプロセス単体も形式検証して他分野よりもっと十分検証するらしい(間接伝聞
521(1): (ワッチョイ eb86-SoaL) 07/05(土)12:14 ID:JEWbe+UQ0(1)調 AAS
そんなレベルはラダー図で書くやろ
522: (ブーイモ MM8e-nkZs) 07/05(土)12:31 ID:yj3snSzGM(1)調 AAS
というかリアルタイムOSの話から関係ない24/365システムの話を出すあたりよくわかってないことを雰囲気で話すタイプの人でしょ
523: (ワッチョイ af77-vr7j) 07/05(土)20:19 ID:iY4IPiMb0(1)調 AAS
>>521
C++ではないわな
524: (ワッチョイ ffa1-BzvG) 07/06(日)06:14 ID:B20RUTJT0(1/9)調 AAS
質問なのですが
ケースA) std::stringstream ist("A B"); char c1, c2, c3; に対し、ist >> c1; ist >> c2; ist >> c3; とすると
ist >> c2 は正常に読めて、ist >> c3 を実施した時点で!ist.good()かつist.eof() となってgetc()と類似のEOF検知挙動なのですが
(ちなみに読み取った文字は c1='A'、c2='B'。c3の読み取りは行われない
ケースB) std::stringstream ist("A B"); std::string s1, s2, s3; に対し、ist >> s1; ist >> s2; ist >> s3; とすると
ist >> s2 を実施した時点で早々に!ist.good()かつist.eof() となって挙動が相違し
(ちなみに読み取った文字列は s1="A"、s2="B"。s3の読み取りは行われない
ケースC) しかしBの後に空白を追加してstd::stringstream ist("A B "); とすると、
ist >> s2 は正常に読めて、ist >> s3 を実施した時点で!ist.good()かつist.eof() となってgetc()と類似のEOF検知挙動になる
(ちなみに読み取った文字列は s1="A"、s2="B"。s3の読み取りは行われない
となってケースB)とケースC)で共通に使えるような最終要素まで読み取り完了判定ロジックが無く
std::istream神話が崩壊したんだけどこれっておま環?
一体どうすれば……orz
525: (ワッチョイ ffa1-BzvG) 07/06(日)06:16 ID:B20RUTJT0(2/9)調 AAS
確認用サンプルコード:
https://ideone.com/Guifzs
526: (ワッチョイ ffa1-BzvG) 07/06(日)06:47 ID:B20RUTJT0(3/9)調 AAS
とりま上のコードからフォークしたソースコード
https://ideone.com/4WPZtB
の
parse_as_string_with_common_logic(std::istream& is, std::string& s, bool& bErr)
みたいな判定処理にしたらケースB、Cを共通に扱えるような印象
なのですが正しくはどうすればよいかわからん……
527(1): (ワッチョイ 17a6-aNVA) 07/06(日)07:26 ID:oIAQiRlj0(1)調 AAS
一般的な話ならchar以外の>>で一貫した挙動を期待するのに無理がある
期待した文字が来なかったらungetするかどうか?ファイル最後の改行をどうするか?シグナルが来たら?とか色々あるし
ケースBで言えば"B"の後に文字が続いていればs2に含まないといけないのだから内部的にはケースAで言えばc3まで試し済みの状態
EOFフラグを見るのではなく例外で受け取ったほうが確実
528(1): (アウアウウー Sa9b-zcFv) 07/06(日)10:18 ID:RFZXbMVga(1/2)調 AAS
ケースB、Cを共通に扱える
ist.eof()でいいやん
Bが一回余分にループするのは気持ち悪いけど
気にしたら負け
529(2): (ワッチョイ 1f7f-Wka8) 07/06(日)10:53 ID:14zTNASB0(1)調 AAS
普通はoperator bool(または fail())を使う
530: (ワッチョイ ffa1-BzvG) 07/06(日)10:56 ID:B20RUTJT0(4/9)調 AAS
>>527
だいたいわかりた
is >> s
ライブラリの「>>」の仕様的にsが任意のクラスで有り得るから、
例えばsが複素数クラスで2つの要素を読み取るブツなのに対し要素を1つだけ読み取れなかった場合、
みたいなのが生じ得るがis.eof()ではそこまで表現できない故にライブラリ側では
char以外の一般のケースについて責任を持たないというと理解すた、
従って、test_parse_as_string_with_common_logic(const char* szInput, bool& bErr)を
charの読み取りによってeof()判定するように直したわ
これならiostreamの正当な使い方だけで構成されておりかつ目的を果たせているはず……
https://ideone.com/eaYGEt
531: (ワッチョイ ffa1-BzvG) 07/06(日)11:00 ID:B20RUTJT0(5/9)調 AAS
>>528
>Bが一回余分にループするのは気持ち悪いけど
いきなりis >> s してその直後のeof()を当てにするロジックである限り、
リンク先のケースBの挙動となり、最後の要素に引き続く空白文字がないとき
最後の要素が入力ストリームにあるのに受け取れないというもっと深刻な事態となる以下略
>>529
operator boolはis.good()と同じはず……
なおかつそれ単独では(is >> sのsがchar以外のとき)ケースBの解決になんね
532: (ワッチョイ ffa1-BzvG) 07/06(日)11:06 ID:B20RUTJT0(6/9)調 AAS
ごめoperator boolは!is.fail()やった……orz
533(1): (ワッチョイ ffa1-BzvG) 07/06(日)11:24 ID:B20RUTJT0(7/9)調 AAS
二転三転してすまんこ考えを改めたはサーセン……orz
入力ストリームはシリアルポートみたいな途中で入力がブチ切れる危険性があるブツである
こともあるから、
ケースB) (空白) (非空白文字列の期待する全体)
ケースB') (空白) (非空白文字列が受信タイムアウトにより途中で切れたもの)
の区別が!isになったというだけでは区別がつかない。一方、
(空白) (非空白文字列) (空白)
まで受け取ったら、(非空白文字列) がタイムアウトにより途中で切れたものでないことが確実となりワカル
故に、ケースBやB'みたいな条件を扱うこと自体がライブラリの仕様想定外なのかもしれん……
通常のテキスト読み込みでは行末に改行文字(空白文字のうち)が1文字以上あるから、この枠内で話が収まる。
Unixみたいに改行文字が '\n' 1文字だけな環境で、改行文字を読み飛ばして
呼び出し元に返さないgetline()みたいなやつで読んだ結果を
istringstreamしようとするとケースBが顕在化するが、
この場合は強制的に末尾に空白文字を付けることができうる
そうすればケースBは発生しない(ただし空白文字を付け忘れるとバグ
534(1): (ワッチョイ 377c-ZLf6) 07/06(日)11:56 ID:wbQZP2jZ0(1)調 AAS
iostreamなんかをテキストの厳格なパースなんかに使わなければならない理由から考え直した方がいい
535: (アウアウウー Sa9b-zcFv) 07/06(日)12:20 ID:RFZXbMVga(2/2)調 AAS
末尾で改行無しでeofが来るファイルは多い
536: (ワッチョイ ffa1-BzvG) 07/06(日)12:43 ID:B20RUTJT0(8/9)調 AAS
>>529
ゴメ operator std::istream::bool() か std::istream::fail() だけでとりま解決したわスマンカッタorz
https://ideone.com/Fd5zV6
オンメモリのストリームである std::istringstream であっても>>533のケースB'に当たるケース
(オンメモリなので非空白文字列でデータが終わっている場合)においてbadbitがセットされるっぽい
この挙動がおま環でないかどうかはわからん……
537: (ワッチョイ ffa1-BzvG) 07/06(日)12:47 ID:B20RUTJT0(9/9)調 AAS
>>534
いまさらlex的な処理をgetc()で手で書いたりstrtok()に戻ったりしたくないし……
538: はちみつ餃子◆8X2XSCHEME (ワッチョイ 3732-D1Zn) 07/06(日)13:40 ID:VHUnBvW80(1)調 AAS
パーサコンビネータ的なものを先に作るのがモダンな方法だが……。
汚い部分を抽象の向こうに押し込めるだけなので汚さが無くなるわけではない。
小さい規模だと愚直な方法が楽だったりするよ。
539(2): (ワッチョイ 576b-4VWQ) 07/10(木)15:17 ID:pWdjbLc50(1/2)調 AAS
C++を勉強して思ったのが
C++って基底クラスをリストに登録させて
派生クラスの機能をひたすら実行させることに特化してるように思うのだけどこの考え方で合ってる?
要はリストありきな感じ
540(2): はちみつ餃子◆8X2XSCHEME (ワッチョイ 3732-SsbA) 07/10(木)15:54 ID:UMLMi9p20(1)調 AAS
>>539
ゲームのフレームワークでは全てのエンティティを登録してそれに対する更新を繰り返すというモデルがありふれているが、 C++ 的にそれが普通というわけではない。
541(1): (ワッチョイ bfad-3agI) 07/10(木)16:45 ID:1drjG1ps0(1)調 AAS
>>539
一度デバッガで実行をトレースしてみ?
上下前次1-新書関写板覧索設栞歴
あと 111 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.019s