C++相談室 part166 (569レス)
C++相談室 part166 http://mevius.5ch.net/test/read.cgi/tech/1745631298/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
必死チェッカー(本家)
(べ)
自ID
レス栞
あぼーん
228: デフォルトの名無しさん (ワッチョイ eea1-bAVr) [sage] 2025/06/05(木) 08:27:57.44 ID:ExyrcTL10 >>227 レス?クス、 >コピーされることはこのシグネチャから自明。 なるほど…… >std::function は (同じ形式で呼び出しが可能なら) 違う型のオブジェクトを統一的に扱うことが目的なので入れる型を限定してしまうような構造は std::function を使う甲斐がない。 それはそう >そういうのが必要になってるなら設計が根本的に失敗してる可能性を疑う。 これはスレッドの終了時にコールバック関数を呼ぶ仕組みにおいて、 コールバック関数とコールバックを待機する関数の組み合わせが本当に正しいか待機関数側でチェックするのに使い鯛、 (コールバック関数は自由に登録できるようにする必要があり、 コールバックされたとき単に処理を進めるだけで待機の解除をなんら行わないコールバック関数とかもあるので 対応を間違ったらバグ http://mevius.5ch.net/test/read.cgi/tech/1745631298/228
229: デフォルトの名無しさん (ワッチョイ eea1-bAVr) [sage] 2025/06/05(木) 08:28:31.27 ID:ExyrcTL10 コールバック関数の自由な登録というのをstd::function<T>として登録することを考えて居たけんども 素のstd::function<T>ではチェックが自由にできないということがわかりた…… MSVCとかで関数を入れたstd::function<double (int, long)>に対し関数オブジェクトfooとしてtarget<foo>()するか 反対のことをしたらcatchできない例外が発生すた、(多分構造化例外か何かでSTLの仕様的にはおそらく未定義動作 故に素のstd::function<T>を使おうとする限り、入れるブツをdynamic_cast可能な関数オブジェクトに限定するとかしないと 手の打ちようが無いorz 現実解はstd::function<T>をwrapした「コールバック関数クラス」の創設…… http://mevius.5ch.net/test/read.cgi/tech/1745631298/229
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
1.350s*