オーバーテクノロジー:How to know which functhion is actually called among Overloaded Function set at the Compilation Time?
真夜中に、闇のC++erはおそろしいサバトを開催していたようです…
普通のC++使い、銀天すばる
@SubaruG
decltype 中での置換失敗が SFINAE に則って処理されるなら、ある関数呼び出しが有効かどうかをメタ関数として情報取得出来る…ハズ。
2010-06-04 23:02:40
普通のC++使い、銀天すばる
@SubaruG
@kikairoya 普通の関数とかメタ関数とかで汎用的に作るのは無理ですよね。その都度SFINAEを書く汚いコードになりそう。
2010-06-04 23:06:11
普通のC++使い、銀天すばる
@SubaruG
テンプレートではなく、式と decltype を使ってメタプログラミングすれば、多重定義された関数も綺麗に扱えると妄想。
2010-06-04 23:11:55
Yak!
@yak_ex
SFINAE に対する(実質的な拡大で解決された) DR ってどれだっけって委員会のページ探してもすぐ分からなかったけど gcc のページ経由で発見。 http://bit.ly/aInuoN っていうか N3092 の 14.8.2 に decltype の例が載ってますね。
2010-06-04 23:13:44
Yak!
@yak_ex
正確な関数の型を知るのは難しそう。実用的には正確な関数の型は必要なくて特定の引数の型で呼び出せる関数があるかが分かれば OK だと思うので decltype で SFINAE かければ良さそうって感じでしょうか。
2010-06-04 23:25:15
普通のC++使い、銀天すばる
@SubaruG
潜在的なエラーを見つけるためには極めて打倒で、 two phase lookup は大事。 VC は爆発すればいいと思うよ?
2010-06-04 23:50:05