2004-08-20から1日間の記事一覧

むぅ

むぅ,id:Cryolite:20040819#p1の話をある程度ちゃんと書くと多分こんな感じなんだろうけれど・・・.

関数テンプレートへのポインタとコンセプトチェック

C++における汎用プログラミングにおいて「ある型に対して特定の構文がコンパイルされるかどうか」をチェックしたいという要求がありました.何故このようなことが必要かは http://www.boost.org/libs/concept_check/concept_check.htm#motivating-example ht…

オーバーロード関数へのポインタと汎用関数

C++

id:Cryolite:20040820#p1において&fという式に型が存在しないことはすでに指摘しました. このことは&fという式を汎用関数のパラメータとして直接に用いることが出来ないことを意味します. template<class FP> void g(FP fp) { std::cout << fp(0) << std::endl; } g(</class>…

関数テンプレートへのポインタ

C++

関数テンプレートは関数の無制限なオーバーロードと捉えることも出来ます.この観点から,関数テンプレートに対するポインタ取得(これは不穏当な表現ですが)もid:Cryolite:20040820#p1と全く同等の制限を食らうことになります. 通常の関数のオーバーロー…

オーバーロードされた関数へのポインタ

C++

オーバーロードされた関数へのポインタを取ることを考えます. int f(int i){ return i; } double f(double d){ return d; } int (*pfi)(int) = &f;ここで注目すべきは&fという式で,この式,結果に型が存在しません.&fのままではint (*)(int)なのかdouble …