タグ

関連タグで絞り込む (0)

  • 関連タグはありません

タグの絞り込みを解除

c++とテンプレートに関するuechocoのブックマーク (2)

  • C++ template の(部分)?特殊化ができるとき、できないとき

    C++ template の(部分)特殊化ができるとき、できないとき STL はまあ普通に使う、くらいの軟弱な知識で C++ を使っていると、クラス内で関数テンプレートの特殊化をしようとしてコンパイルエラーになって、なんでここで特殊化できないんだよ〜と愚痴を言っていたら、さらに恐ろしいことに、特殊化はできないのに部分特殊化はできる場合に遭遇したりして、 C++ の闇に触れた気分になるのだけど、実はそうでもないという話(少なくとも、ユーザの側から理解するだけなら、ね)。 (部分)特殊化できる条件 ややこしく感じる理由は、特殊化できる条件と、部分特殊化できる条件が全く別だから。実はそんなに複雑ではない。 特殊化できる OK: 名前空間スコープで定義 NG: クラススコープで定義 部分特殊化できる OK: クラステンプレート NG: 関数(⊃メンバ関数)テンプレート 例 template<cla

  • 関数テンプレートの特殊化について - memologue

    関数テンプレートの特殊化いろいろ なんか日記を書くのを忘れていました。よくない。というわけで、最近おぼえたtipsを書きます。クラステンプレート内のテンプレートの特殊化(もどき)についての自分なりのまとめ。 まず、 namespace A { template<int V> static void YYY() { std::printf("default %d\n", V); } } int main() { YYY<0>(); YYY<128>(); } のような関数テンプレートがあるとき、これを特殊化*1した関数は namespace A { template<int V> static void YYY() { std::printf("default %d\n", V); } template<> static void YYY<128>() { std::printf("for

    関数テンプレートの特殊化について - memologue
    uechoco
    uechoco 2015/02/05
    メンバ関数テンプレート、特殊化、
  • 1