[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 2ch.scのread.cgiへ]
Update time : 11/30 09:15 / Filesize : 250 KB / Number-of Response : 770
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

C++相談室 part166



1 名前:sage [2025/04/26(土) 10:34:58.41 ID:pbPDl6lv0.net]
!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

463 名前:デフォルトの名無しさん mailto:sage [2025/06/26(木) 02:55:12.43 ID:v8FRsUWIM.net]
NSCがC++を廃してRustを推しているのは、中国のUnrealEngineへの牽制か?

464 名前:デフォルトの名無しさん mailto:sage [2025/06/26(木) 02:59:40.78 ID:v8FRsUWIM.net]
NSA だ。

465 名前:デフォルトの名無しさん mailto:sage [2025/06/26(木) 03:19:10.72 ID:P3qvmtvK0.net]
>>463
unreal engineって、
中国が株主でしょ

466 名前:デフォルトの名無しさん mailto:sage [2025/06/26(木) 07:43:46.78 ID:NfgrBwV2p.net]
UEはアメリカのゲーム企業が作ったものなんだが・・

467 名前:デフォルトの名無しさん mailto:sage [2025/06/26(木) 12:38:45.11 ID:deRGahNkM.net]
スマン。中国が作ったものだとばかり思っていた。

468 名前:デフォルトの名無しさん mailto:sage [2025/06/26(木) 12:41:11.49 ID:3UJQKTFB0.net]
ったく、こりだからよお

469 名前:デフォルトの名無しさん [2025/06/26(木) 17:13:34.04 ID:zdpAcYpu0.net]
悪意のある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/

上記のプログラムと電波障害などで生じたエラーなどでで無理やりセキュリティーほーホールを見つけれる

470 名前:デフォルトの名無しさん mailto:sage [2025/06/26(木) 17:16:52.94 ID:jAlq/lgY0.net]
まず自分の書き込みにAI活用しろよって思った

471 名前:デフォルトの名無しさん [2025/06/26(木) 18:27:21.16 ID:o/InY5NNH.net]




472 名前:デフォルトの名無しさん [2025/06/26(木) 21:29:08.64 ID:zdpAcYpu0.net]
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 名前:デフォルトの名無しさん mailto:sage [2025/06/26(木) 22:43:52.27 ID:CNaMzIfEd.net]
スレ違い。

474 名前:デフォルトの名無しさん [2025/06/28(土) 01:04:10.64 ID:ILdMmS8aH.net]
gcc4.6から4倍精度入ってるみたいですねえ。
Visual C++では入っているかな。調べてみます。

475 名前:デフォルトの名無しさん mailto:sage [2025/06/28(土) 01:17:47.38 ID:Ewd2t68S0.net]
fortranで使うからね
gccはバックエンドから対応する必要がある機能を他フロントエンドのために入れるときはほぼC言語にも拡張として入れてくる

476 名前:デフォルトの名無しさん mailto:sage [2025/06/28(土) 07:36:59.43 ID:7fEtq2hP0.net]
新たなクラスを作ってまえばいいのではないでしょうか。

477 名前:デフォルトの名無しさん [2025/06/28(土) 10:51:00.28 ID:ILdMmS8aH.net]
C++23からfloat128_tがサポート予定だけど
まだ詳細は決まってなさそう
VS2022ではまだみたい。gccも13.0以降?

478 名前:デフォルトの名無しさん [2025/06/28(土) 15:20:29.63 ID:CPXhvy7f0.net]
>>477
MSのサポート掲示板だかコミュニティBBSだでVSは128_tやる気なし(一応要望は受け付けるけど)、みたいなの読んだ気がする。

479 名前:はちみつ餃子 mailto:sage [2025/06/28(土) 15:55:10.80 ID:mCCHdrx+0.net]
C++23 では「そのような型があるなら std​::​float128_t として提供されることもある」というオプショナルなもので、あまりあてにならない。
https://timsong-cpp.github.io/cppwp/n4950/basic.extended.fp#4
ハードウェアとかツールチェインとかの都合もあるだろうし。

480 名前:デフォルトの名無しさん [2025/06/28(土) 16:00:47.16 ID:ILdMmS8aH.net]
うーむ。残念

481 名前:はちみつ餃子 mailto:sage [2025/06/28(土) 16:13:42.13 ID:mCCHdrx+0.net]
std​::​float128_t が提供されるときは拡張浮動小数点型 (extended floating-point type) でなけりゃならないみたいだからクラスとして定義できない。



482 名前:デフォルトの名無しさん mailto:sage [2025/06/28(土) 16:59:30.25 ID:VJLy78nc0.net]
float128_tがあってもFLT_MAXは64ビットという闇

483 名前:はちみつ餃子 mailto:sage [2025/06/28(土) 18:19:57.03 ID:mCCHdrx+0.net]
>>482
??? float128_t と FLT_MAX にどのような関係があるのか意味が分からない。

484 名前:デフォルトの名無しさん mailto:sage [2025/06/28(土) 18:26:24.23 ID:uZW6Klue0.net]
float 4バイトだろ 32ビットだぞ

485 名前:はちみつ餃子 mailto:sage [2025/06/28(土) 19:30:31.51 ID:mCCHdrx+0.net]
float が 4 バイトなのに 8 バイト相当な値が FLT_MAX として定義されている (言語仕様に準拠していない) 環境があるという意味?

486 名前:デフォルトの名無しさん mailto:sage [2025/06/28(土) 19:40:49.68 ID:Ewd2t68S0.net]
最大の浮動小数点型を表す定数のどれかと間違えたんでしょ
__int128があってもintmax_tが64ビットのままみたいな話のfloat版のつもりだったと思う

487 名前:デフォルトの名無しさん [2025/06/29(日) 08:57:18.64 ID:9LYz8h1TH.net]
インターネットからファイルをダウンロードするのに、現在のc界隈ではどんなライブラリを使用してるの?
vc2010あたりなら、標準で使えていたけど今でも使えるのかしら?

488 名前:デフォルトの名無しさん mailto:sage [2025/06/29(日) 10:59:10.19 ID:zQA4sk9y0.net]
ちょっ質問なのですが
class Fooの中で構造体型PrivateStructがprivateな型として定義されており、
PrivateStruct型のFooのprivateなメンバFoo::m_stもある状況に対し、
Fooの外でauto&でもってPrivateStructの型を使用できて、
あまつさえFoo::m_stの値を読んだり書いたりできたりしてカプセル化神話が崩壊したんだけど
これっておま環?
(コード)
https://ideone.com/slBA72

489 名前:はちみつ餃子 mailto:sage [2025/06/29(日) 12:56:56.18 ID:RnCZLFSE0.net]
>>487
Windows が前提なら WinINet を使うのが素直なやり方だと思う。
規格の多少の更新などがあっても OS の側で対処してくれるからアプリケーションはリビルドする必要すらなく長期的に使えることが期待できる。

マルチプラットフォームを考えるなら Curl が楽かなぁ……。

490 名前:はちみつ餃子 mailto:sage [2025/06/29(日) 13:04:25.17 ID:RnCZLFSE0.net]
>>488
アクセス指定は識別子の可視性であって、間接的なアクセスも含めた一切の利用を禁止するわけではないよ。

491 名前:デフォルトの名無しさん mailto:sage [2025/06/29(日) 13:14:06.51 ID:zQA4sk9y0.net]
上のコードの
>auto& st = x.refStruct(); // stはFooのprivateな型だがビルドが通る。
が識別子PrivateStructの可視性を無視してくれる理由がわからんぬ……
これ
>PrivateStruct& st = x.refStruct();
と書いたら型の名前PrivateStructの可視性がprivateなのでもちろんエラーになる



492 名前:デフォルトの名無しさん mailto:sage [2025/06/29(日) 13:18:58.11 ID:zQA4sk9y0.net]
訂正orz
×: >PrivateStruct& st = x.refStruct();
○: >Foo::PrivateStruct& st = x.refStruct();

493 名前:はちみつ餃子 mailto:sage [2025/06/29(日) 13:37:38.54 ID:RnCZLFSE0.net]
>>491
> 識別子PrivateStructの可視性を無視してくれる理由

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

プライベートなデータメンバ m_st だってその参照を外へ持ち出してるだろ。
外で m_st という名前でアクセスできないが m_st に対応するオブジェクトへのアクセスは (アクセス経路があるなら) アクセス指定に左右されない。
同様に、プライベートに定義した型を型名ではアクセスできないが型を使えないわけではない。

494 名前:デフォルトの名無しさん mailto:sage [2025/06/29(日) 13:59:10.64 ID:zQA4sk9y0.net]
>識別子 PrivateStruct を使っていないから。
>この場合は x.refStruct() という式から型を推論するので型名 (であるような識別子) の可視性は関係ない。
なんで?
不完全な型の参照はエラーになるのだから
コンパイラは型推論の際Foo::PrivateStructという完全な型の情報まで突き止めているはず……
なんでFoo::PrivateStructの可視性を無視してくれるのや……
無視せずエラーにする言語仕様もあり得たはず
ていうかエラーにならないのがおま環でない証拠がいまのところ無い……

495 名前:はちみつ餃子 mailto:sage [2025/06/29(日) 14:09:12.19 ID:RnCZLFSE0.net]
>>494
名前に対する使用制限である旨がはっきりと書いてある。
https://timsong-cpp.github.io/cppwp/n3337/class.access#1.1

496 名前:デフォルトの名無しさん mailto:sage [2025/06/29(日) 15:12:39.04 ID:FAAHlPSo0.net]
>>494
でもFoo::PrivateStructを指すpublicなtype aliasがあったらやっぱりエラーにしないで!
とか言ってきたらはっ倒すぞって感じの言語仕様やなあ

497 名前:デフォルトの名無しさん mailto:sage [2025/06/29(日) 15:29:55.25 ID:PWOccKtm0.net]
プライベートメンバーの参照を返す関数を public でアクセスできる設計の方が驚き

498 名前:はちみつ餃子 mailto:sage [2025/06/29(日) 15:52:20.20 ID:RnCZLFSE0.net]
>>497
これ単体で見るとおかしいがプロキシパターンなどでそういう構成になることはある。

499 名前:はちみつ餃子 mailto:sage [2025/06/29(日) 16:51:17.70 ID:RnCZLFSE0.net]
すまん。プロクシパターンではないな。
見当違いなことを書いてた。

まあこの場合は言語機能の確認のサンプルだと思うから設計がどうこうはあまり気にしなくていいんじゃね。

500 名前:デフォルトの名無しさん mailto:sage [2025/06/29(日) 19:25:35.84 ID:TdQ2JxNKa.net]
たしかに直感的には auto で private な型を推論してしまうのはヤバくね?という感覚になってしまうが
続くレスで指摘されてるとおり private な識別子だからといって外に持ち出せないわけではないので(それを禁止するほうが弊害が大きい)
そういうもんだと思ってプログラマが注意するしかないな
元々 C++ はやり方次第で言語仕様の本来の目的を外れたヤバい方法がいくらでもつかえる言語であり
どんな場面でも常にプログラマは注意を払うべきなので、そういう C++ の"性格"がこの場面でも出たというところか
こういうのがどうしても気になり完全な"性格"の言語が欲しいなら、他の言語にいったほうがよい

501 名前:デフォルトの名無しさん mailto:sage [2025/06/29(日) 19:47:06.28 ID:ivfL45vHM.net]
>>489
libcurl でいいと思う。便利だし。
curlコマンドと同じように使えるはずだし。



502 名前:デフォルトの名無しさん mailto:sage [2025/06/30(月) 19:44:03.19 ID:etdu4EFd0.net]
長い名前空間の扱いの質問なのですが、
例えば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 名前:デフォルトの名無しさん mailto:sage [2025/06/30(月) 20:47:28.37 ID:CUK0Fuvn0.net]
namespace pqrs = P::Q::R::S
でいいんじゃない?

504 名前:デフォルトの名無しさん mailto:sage [2025/07/01(火) 21:41:31.12 ID:W7Fp4vWi0.net]
Sしか使わないならusing P::Q::R::S;

505 名前:はちみつ餃子 mailto:sage [2025/07/01(火) 22:22:06.69 ID:kHEih0Y20.net]
>>504
using P::Q::R::S; したらもしも using namespace A::B::C; したときに P::Q::R::S も探索対象になってしまう。
使う側に余計な影響を与えないようにするには別名をつけるほうがより良い。

506 名前:デフォルトの名無しさん [2025/07/03(木) 00:24:37.09 ID:ye5zZInN0.net]
エンベデッド分野は今でもC/C++が主流なの?
AIに任せられない分野だから生きのこれそうで気になっておりまする

507 名前:デフォルトの名無しさん mailto:sage [2025/07/03(木) 09:26:35.93 ID:q23h/8z8a.net]
良いんじゃね

508 名前:はちみつ餃子 mailto:sage [2025/07/03(木) 11:06:49.67 ID:4Hn86Ej50.net]
>>506
組み込みシステムも多様なので性質や規模によるでしょ。
リアルタイム性が重要なところでは C/C++ は主流のままだと思うけど、プロジェクト全体が C/C++ だけで構成されることは少なくなるんじゃない?

509 名前:デフォルトの名無しさん [2025/07/03(木) 11:57:31.86 ID:0Ka09OV10.net]
リアルタイム性はOSがやることだし
言語関係ないよ

510 名前:デフォルトの名無しさん [2025/07/03(木) 12:22:21.27 ID:dQk6sKVB0.net]
Javaや.NETはGCでストップ・ザ・ワールドが発生するからリアルタイムに弱いらしい
最近は目標停止時間を1ms以下に抑えるGCもあるけど、あくまでも目標であって保証ではないからね

511 名前:デフォルトの名無しさん mailto:sage [2025/07/03(木) 15:27:43.14 ID:d0nwmVKl0.net]
>>509
イベントスレッドでIOされてもOSがなんとかすると思ってんの?



512 名前:デフォルトの名無しさん [2025/07/04(金) 08:50:43.54 ID:fF3rQ1JLa.net]
組み込み
リアルタイムOS
これほど曖昧な言い回しは他に無い

513 名前:はちみつ餃子 mailto:sage [2025/07/04(金) 10:17:03.12 ID:wZ441BSd0.net]
>>509
リアルタイム性が重要なところというのはまさにそのリアルタイム OS のことで、それらを書くのに C/C++ が主流という話なんやで。
そんで既存の OS を使う場合でも次にアプリケーションを用意すれば動くというわけではなくて、組み込みシステムなら大抵の場合にデバイスドライバも書かなければいけないし、 OS が面倒みてくれる範囲は小さい。

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

514 名前:デフォルトの名無しさん [2025/07/04(金) 10:58:10.60 ID:8a61AjkK0.net]
リアルタイムOSでないOSで、リアルタイム性重視ならそうだが
リアルタイムOSで作るなら言語は何でもいい

515 名前:デフォルトの名無しさん [2025/07/04(金) 10:59:28.16 ID:8a61AjkK0.net]
例えば24時間365日止まってはいけない産業用制御なんて
C++でも何でもない

516 名前:デフォルトの名無しさん mailto:sage [2025/07/04(金) 11:09:00.86 ID:7dTC+3QP0.net]
シェルで済むならシェルにしなさい。(UNIX)

517 名前:デフォルトの名無しさん mailto:sage [2025/07/04(金) 11:13:55.32 ID:lC93JhvQ0.net]
言語なんでもいいって?
リアルタイムOSってそもそも言語の選択肢少ねーだろ

518 名前:デフォルトの名無しさん mailto:sage [2025/07/04(金) 11:19:04.05 ID:lC93JhvQ0.net]
>>512
いうほどあいまいか?
せいぜい中身がLinux、Windowsでアプリのインストールも自由みたいなやつだけだろ

519 名前:デフォルトの名無しさん mailto:sage [2025/07/04(金) 20:28:14.57 ID:wNUogzY00.net]
>>511
ちょっI/Oしたらやっぱリアルタイム性に影響出るの?!
んまー秒単位でwaitして帰ってこないみたいな極端なI/Oポートがあったらそうかもしれないが

520 名前:デフォルトの名無しさん mailto:sage [2025/07/04(金) 20:39:26.88 ID:wNUogzY00.net]
>24時間365日止まってはいけない産業用制御
冗長構成かフェイルオーバーするような枠組みとしての取り組みが第一優先な希ガス……
ソフトウェアーの冪等性により同じバグが同じタイミングで発生して冗長構成が無意味化するする危険性については
十分テストしてバグを撮ったのちに起動タイミングをずらすなどの工夫を行えばポアソン分布の同時確率か何かに従って無視できうる(と思う
さすがに原子炉の制御とかだとプロセス単体も形式検証して他分野よりもっと十分検証するらしい(間接伝聞

521 名前:デフォルトの名無しさん mailto:sage [2025/07/05(土) 12:14:15.08 ID:JEWbe+UQ0.net]
そんなレベルはラダー図で書くやろ



522 名前:デフォルトの名無しさん mailto:sage [2025/07/05(土) 12:31:12.20 ID:yj3snSzGM.net]
というかリアルタイムOSの話から関係ない24/365システムの話を出すあたりよくわかってないことを雰囲気で話すタイプの人でしょ

523 名前:デフォルトの名無しさん [2025/07/05(土) 20:19:54.08 ID:iY4IPiMb0.net]
>>521
C++ではないわな

524 名前:デフォルトの名無しさん mailto:sage [2025/07/06(日) 06:14:16.80 ID:B20RUTJT0.net]
質問なのですが
ケース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 名前:デフォルトの名無しさん mailto:sage [2025/07/06(日) 06:16:00.70 ID:B20RUTJT0.net]
確認用サンプルコード:
https://ideone.com/Guifzs

526 名前:デフォルトの名無しさん mailto:sage [2025/07/06(日) 06:47:52.68 ID:B20RUTJT0.net]
とりま上のコードからフォークしたソースコード
https://ideone.com/4WPZtB

 parse_as_string_with_common_logic(std::istream& is, std::string& s, bool& bErr)
みたいな判定処理にしたらケースB、Cを共通に扱えるような印象
なのですが正しくはどうすればよいかわからん……

527 名前:デフォルトの名無しさん mailto:sage [2025/07/06(日) 07:26:05.90 ID:oIAQiRlj0.net]
一般的な話ならchar以外の>>で一貫した挙動を期待するのに無理がある
期待した文字が来なかったらungetするかどうか?ファイル最後の改行をどうするか?シグナルが来たら?とか色々あるし
ケースBで言えば"B"の後に文字が続いていればs2に含まないといけないのだから内部的にはケースAで言えばc3まで試し済みの状態
EOFフラグを見るのではなく例外で受け取ったほうが確実

528 名前:デフォルトの名無しさん mailto:sage [2025/07/06(日) 10:18:34.40 ID:RFZXbMVga.net]
ケースB、Cを共通に扱える
ist.eof()でいいやん
Bが一回余分にループするのは気持ち悪いけど
気にしたら負け

529 名前:デフォルトの名無しさん mailto:sage [2025/07/06(日) 10:53:22.37 ID:14zTNASB0.net]
普通はoperator bool(または fail())を使う

530 名前:デフォルトの名無しさん mailto:sage [2025/07/06(日) 10:56:09.61 ID:B20RUTJT0.net]
>>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 名前:デフォルトの名無しさん mailto:sage [2025/07/06(日) 11:00:55.07 ID:B20RUTJT0.net]
>>528
>Bが一回余分にループするのは気持ち悪いけど
いきなりis >> s してその直後のeof()を当てにするロジックである限り、
リンク先のケースBの挙動となり、最後の要素に引き続く空白文字がないとき
最後の要素が入力ストリームにあるのに受け取れないというもっと深刻な事態となる以下略

>>529
operator boolはis.good()と同じはず……
なおかつそれ単独では(is >> sのsがchar以外のとき)ケースBの解決になんね



532 名前:デフォルトの名無しさん mailto:sage [2025/07/06(日) 11:06:26.76 ID:B20RUTJT0.net]
ごめoperator boolは!is.fail()やった……orz

533 名前:デフォルトの名無しさん mailto:sage [2025/07/06(日) 11:24:16.88 ID:B20RUTJT0.net]
二転三転してすまんこ考えを改めたはサーセン……orz
入力ストリームはシリアルポートみたいな途中で入力がブチ切れる危険性があるブツである
こともあるから、
 ケースB) (空白) (非空白文字列の期待する全体)
 ケースB') (空白) (非空白文字列が受信タイムアウトにより途中で切れたもの)
の区別が!isになったというだけでは区別がつかない。一方、
(空白) (非空白文字列) (空白)
まで受け取ったら、(非空白文字列) がタイムアウトにより途中で切れたものでないことが確実となりワカル
故に、ケースBやB'みたいな条件を扱うこと自体がライブラリの仕様想定外なのかもしれん……
通常のテキスト読み込みでは行末に改行文字(空白文字のうち)が1文字以上あるから、この枠内で話が収まる。

Unixみたいに改行文字が '\n' 1文字だけな環境で、改行文字を読み飛ばして
呼び出し元に返さないgetline()みたいなやつで読んだ結果を
istringstreamしようとするとケースBが顕在化するが、
この場合は強制的に末尾に空白文字を付けることができうる
そうすればケースBは発生しない(ただし空白文字を付け忘れるとバグ

534 名前:デフォルトの名無しさん mailto:sage [2025/07/06(日) 11:56:43.72 ID:wbQZP2jZ0.net]
iostreamなんかをテキストの厳格なパースなんかに使わなければならない理由から考え直した方がいい

535 名前:デフォルトの名無しさん [2025/07/06(日) 12:20:19.64 ID:RFZXbMVga.net]
末尾で改行無しでeofが来るファイルは多い

536 名前:デフォルトの名無しさん mailto:sage [2025/07/06(日) 12:43:07.86 ID:B20RUTJT0.net]
>>529
ゴメ operator std::istream::bool() か std::istream::fail() だけでとりま解決したわスマンカッタorz
https://ideone.com/Fd5zV6

オンメモリのストリームである std::istringstream であっても>>533のケースB'に当たるケース
(オンメモリなので非空白文字列でデータが終わっている場合)においてbadbitがセットされるっぽい
この挙動がおま環でないかどうかはわからん……

537 名前:デフォルトの名無しさん mailto:sage [2025/07/06(日) 12:47:26.46 ID:B20RUTJT0.net]
>>534
いまさらlex的な処理をgetc()で手で書いたりstrtok()に戻ったりしたくないし……

538 名前:はちみつ餃子 mailto:sage [2025/07/06(日) 13:40:09.19 ID:VHUnBvW80.net]
パーサコンビネータ的なものを先に作るのがモダンな方法だが……。
汚い部分を抽象の向こうに押し込めるだけなので汚さが無くなるわけではない。
小さい規模だと愚直な方法が楽だったりするよ。

539 名前:デフォルトの名無しさん mailto:sage [2025/07/10(木) 15:17:59.65 ID:pWdjbLc50.net]
C++を勉強して思ったのが
C++って基底クラスをリストに登録させて
派生クラスの機能をひたすら実行させることに特化してるように思うのだけどこの考え方で合ってる?
要はリストありきな感じ

540 名前:はちみつ餃子 mailto:sage [2025/07/10(木) 15:54:02.04 ID:UMLMi9p20.net]
>>539
ゲームのフレームワークでは全てのエンティティを登録してそれに対する更新を繰り返すというモデルがありふれているが、 C++ 的にそれが普通というわけではない。

541 名前:デフォルトの名無しさん mailto:sage [2025/07/10(木) 16:45:53.90 ID:1drjG1ps0.net]
>>539
一度デバッガで実行をトレースしてみ?



542 名前:デフォルトの名無しさん [2025/07/10(木) 18:55:50.32 ID:y21Xxg220.net]
>>508
な、なるほど
何にしても、この先生きのこるには C/C++ は必要そうだね
Py や JS なんかだと若い衆がどんどん来るから負けそうだし・・・

543 名前:デフォルトの名無しさん mailto:sage [2025/07/10(木) 21:11:59.82 ID:pWdjbLc50.net]
>>540-541
ありがとうございます
リストを自作するなりstd::listを使うなりして
printfみたいな文字出力をする時も、出力部分をタスククラスにぶっこんでラッピングして
出力は派生クラスでオーバーライドしたc->draw();みたいなのに任せる、というのはゲーム専用で他ではあまりされないんですね

544 名前:はちみつ餃子 mailto:sage [2025/07/11(金) 01:51:13.39 ID:/nWuXYnL0.net]
C++ は設計理念のひとつとして「人に何かを強制しない」というのを挙げていて、やりたいように書けることを重視してる。
同じパターンでプログラムを書いているように感じるなら単にあなたがそのやり方しか知らないだけ。
分野ごとに大枠ではやりやすいパターンが定着していたりはするので、ひとつの分野だけ見ていると頻出パターンがあるように見えることはあるかも。

545 名前:デフォルトの名無しさん [2025/07/11(金) 11:58:09.09 ID:nUxw0t1Z0.net]
BASICも同様の理念で作ればいいのに

546 名前:デフォルトの名無しさん [2025/07/11(金) 12:28:00.28 ID:36pXyECQ0.net]
>>544
Z世代にはRuby on RailsやRustのほうが良いかもしれませんね

547 名前:デフォルトの名無しさん [2025/07/11(金) 14:36:44.91 ID:zLrVPFvnd.net]
>>543
RustのDisplayやDebugなんてまさにそれだが

548 名前:デフォルトの名無しさん [2025/07/12(土) 13:34:42.02 ID:Y1veRsrW0.net]
C++でデフォルトコンストラクタで確保したリソースだけデストラクタで破棄したくてコピーコンストラクタやコピー代入ムーブコンストラクタやムーブ代入で得たリソースはデストラクタで破棄させたくないときどうする?
rustみたいな所有権システム必要になるんですか?

549 名前:デフォルトの名無しさん [2025/07/12(土) 14:19:56.77 ID:tjRcyRc80.net]
なんでそんなことが必要なのかわからないけど、破棄するかどうかのフラグを持っておけばいいんじゃないの?
設計から見直した方が良いようなきがするけどw

550 名前:デフォルトの名無しさん mailto:sage [2025/07/12(土) 17:03:35.88 ID:BGsI/m1X0.net]
>>548
俺もなんでそんなことが必要なのかわからないけど、pip使ってデフォルトコントラスタのオーナーだけにshared ptrでリソース管理させるとか?

これだとバグが怖いから、素直にshared ptrでリソースを共有したほうがいい気がする。

551 名前:デフォルトの名無しさん mailto:sage [2025/07/12(土) 17:24:13.44 ID:1YAX70Df0.net]
ゲームプログラムをマルチスレッドにするとき、何をマルチスレッドにするの?
ストレージのロードとかはともかく



552 名前:デフォルトの名無しさん [2025/07/12(土) 18:45:10.30 ID:/RtKayKia.net]
マルチスレッドにしたいものをマルチスレッドにする

553 名前:デフォルトの名無しさん [2025/07/12(土) 19:12:52.47 ID:LUVzIFWA0.net]
遠景のテクスチャのロードなんかは別スレッドかな?
当たり判定などのロジックは遅延なく1フレーム16ミリ秒以内にやらなきゃいけないのでメインスレッドでやるしかない
ゲームでマルチスレッド使うのって難しいよね

554 名前:はちみつ餃子 mailto:sage [2025/07/12(土) 20:02:23.86 ID:5KyGwfre0.net]
排他処理が入ると並列化の恩恵がだいぶん減るので高速化の意図でマルチスレッドを使うなら排他が不要な部分を見つけるのが第一だね。

メモリなどの各種のリソース管理の後始末を別スレッドに任せるという例も聞いたことはある。
デストラクタが起動するとサブオブジェクトのデストラクタも連鎖的に起動するからワンフレームの時間が限られている状況では間に合わないということも起こる。
だからデストラクタは後始末が必要なリソースをテーブルに登録するだけにして、別スレッドが実際の後始末をするってことね。
もう使うことの無いリソースだというのは分かってるから排他は少なくてすむ。
(ヒープメモリの管理テーブルはスレッド共通だから排他がゼロとはいかないと思うけど。)
後始末が少しくらい遅れてもどうということはないし。

555 名前:デフォルトの名無しさん mailto:sage [2025/07/13(日) 11:30:27.40 ID:WDtYO/xJ0.net]
まあ、
アクションとか以外の、1/60秒で同期させなくていい処理ですかね…
遠くのPhysXの物理とかもできるのかな…

数年ぶりで、レイトレーシングとか未経験だわ…

556 名前:デフォルトの名無しさん mailto:sage [2025/07/13(日) 11:36:28.87 ID:WDtYO/xJ0.net]
>>554
コンテキストスイッチとか気にしないといけないですね…
PlaystationとXboxとPCゲームで、それぞれに最適化とか大変そうですね…

557 名前:デフォルトの名無しさん [2025/07/13(日) 21:38:10.94 ID:e/4c/Agi0.net]
・人間は犯罪を起こす種族と言い切っている
地球はすでに丸見え、レーダー電波で宇宙人に居場所をさらしている
公開: 2025-07-13 21:00
https://karapaia.com/archives/524757.html
 >>明らかに人工的なもので、200光年以内にある知的文明なら、地球の場所を把握できる可能性が高い。
 >>アレシボ天文台のような超高感度の望遠鏡を使えば、理論上は6万光年先からでも地球の電波を検出できるとされている。
 >>に宇宙空間で“丸見え”の状態にあり、その状況は75年前から続いているのだ。問題は、彼らが友好的な文明であるという保証がまったくないことだ。
★>>可能性としては、(我々人間のように)きわめて敵対的かつ侵略的な種族であるケースも十分にあり得る。

558 名前:デフォルトの名無しさん [2025/07/14(月) 12:26:06.28 ID:D5VD7WG/0.net]
GPT-4.1超えの中国製AIモデル「Kimi K2」が無料公開される、複数のテストでGPT-4.1やClaude 4 Opusを打ち負かしエージェントタスクもこなす
2025年07月14日 11時10分
https://gigazine.net/news/20250714-ai-kimi-k2/
>>Kimi K2はベースモデルの「Kimi-K2-Base」と事後学習済みモデルの「Kimi-K2-Instruct」の2種類に分かれてリリースされています。以下の図は「Kimi-K2-Instruct」「DeepSeek V3」「Qwen3-235B」「GPT-4.1」「Claude 4 Opus」「Claude 4 Sonnet」「Gemini 2.5 Flash」のベンチマークスコアを並べたものです。Kimi-K2-InstructはすべてのテストでオープンモデルのDeepSeel V3とQwen3-235Bを超えるスコアを記録し、一部のテストでGPT-4.1やClaude Sonnet 4などの商用モデルに勝利しています。
◇上記サイト内にダウンロードリンクがある

559 名前:デフォルトの名無しさん mailto:sage [2025/07/14(月) 14:37:25.45 ID:4jx6FCSc0.net]
>>540
お前ゲーム作ったこと無いやろ・・・

560 名前:デフォルトの名無しさん mailto:sage [2025/07/14(月) 16:00:51.76 ID:sJl0ASyp0.net]
ただエンプティ言いたいだけ違うんかと

561 名前:デフォルトの名無しさん mailto:sage [2025/07/14(月) 16:18:22.23 ID:CQ+aGKeG0.net]
画面描画FPS(frames per second)を固定させる為に、以下の待ち処理を入れるとFPSがメッチャ安定する:
while (system_clock::now() < t_after_sleeping) {
Sleep(0);
}
しかし強制フリーズさせてるみたいで、ハード痛めたりしないか不安なんだが。どうなん実際の所?詳しい人教えて



562 名前:デフォルトの名無しさん mailto:sage [2025/07/14(月) 16:27:01.51 ID:NLDJkZue0.net]
マルチスレッドのセオリーとしてはSleepせずにビジーループするほうが問題
なんだけど、Sleepだと精度悪すぎてちゃんとFPS担保できるのか心配にはなる。動いてるならそれでいいけど

563 名前:はちみつ餃子 mailto:sage [2025/07/14(月) 17:49:12.87 ID:23SHNwVj0.net]
>>561
定石と言えるレベルの普通の処理だよ。
既に指摘されているようにタイマーの精度の問題はあるので工夫を入れる必要はあるけど、
精度が悪くても処理が遅れる (想定より FPS が下がる) 可能性があるだけ。

どういう理屈で不安に思っているのかがよくわからないので何を間違っているのか説明できない。
Sleep(0) が何をやってるかわからない (これが何らかの危険な処理だと思っている) ってこと?






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<250KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef