[過去ログ]
C++相談室 part165 (1002レス)
C++相談室 part165 http://mevius.5ch.net/test/read.cgi/tech/1698705458/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
88: デフォルトの名無しさん (ワッチョイ cf63-nyJS) [sage] 2023/12/24(日) 17:42:52.36 ID:foDTiHm90 グローバル変数渡しは最初に思いつくのですが、ostringstream os1, os2とFoo obj1, obj2に対して異なるスレッドで os1 << custom_setw(30) << obj1; // スレッド1 os2 << custom_setw(20) << obj2; // スレッド2 とかやったら詰むし std::setw()とか一体どうやってるんじゃ…… http://mevius.5ch.net/test/read.cgi/tech/1698705458/88
89: はちみつ餃子 ◆8X2XSCHEME (ワッチョイ ff3e-XnzH) [sage] 2023/12/24(日) 18:05:55.09 ID:SfA3xmSz0 >>87-88 特定の型を出力するときにだけ作用する書式を設定するマニピュレータってこと? std::setw がやってるのはストリームのメンバ関数 width を呼ぶのと同じ。 ストリームのオブジェクトが幅に関する情報を保存するデータメンバを持っていて、それを変更してる。 もちろんあなたが定義した独自の型 (この例では Foo) に結び付いた書式を保持するところなんて存在しないから単純にはできない。 私が思いつくのは ・ ストリームのほうも新しいものを定義する、つまり basic_ostream を継承して Foo 用の書式を格納するデータメンバを増やす ・ ストリームに対応付いたデータを格納するものを std::map かなんかで保持しておいて Foo を出力するときはそれを参照する ということくらいかな。 スレッドが絡むと面倒くさいけど、しょうがないね。 http://mevius.5ch.net/test/read.cgi/tech/1698705458/89
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
1.511s*