100-02-01から1ヶ月間の記事一覧

クラステンプレートの内側にあるクラステンプレートの定義をクラススコープの外で行う

C++

クラステンプレートの中に入れ子でクラステンプレートを宣言して,クラススコープの外から内側のクラステンプレートの定義を書く書き方.関数テンプレートについても同様. template<typename T1> class C1 { template<typename T2> class C2; template<typename T2> void f(T2 arg); }; template<typename T1> te</typename></typename></typename></typename>…

std名前空間にテンプレートの特殊化を追加する

C++

多くのC++プログラマは「std名前空間には何物も追加してはならない」という認識で一致していると思うのですが,実はこれには例外が存在します.以下,標準から抜粋. 17.4.3.1 Reserved names 1 It is undefined for a C++ program to add declarations or d…

オーバーロードされた関数へのポインタ / 関数テンプレートへのポインタ

C++

STLやBoostにおいて関数ポインタを使っていると,恐らく「オーバーロードした関数へのポインタはどうやって取得するのか?」,もしくは「関数テンプレートへのポインタはどうやって取得するのか?」という問題にハマるかと思います.規格にはこれに関する記…