メタテンプレート

C++のテンプレートをメタプログラミングできるテンプレート(メタテンプレート?n階テンプレート?)みないなものができないかと考えていたけど、何もできず。構造体テンプレートをネストすればできそうな気がしたが、名前をつけなきゃいけないのが壁。

やろうとしていたことは、感覚的にはこんなかんじ

template 
template 
struct boo {
    typedef foo boz;
};

boo ⇒ template struct { typedef foo boz; };
boo ⇒ struct { typedef foo boz; };

テンプレートが参照透過な関数みたいなものなのは、過去のエントリで何度か述べているとおりなので、これはラムダ関数のカリー化みないなもんですかね。

ついでに、型変数にテンプレートを渡せるといいんだけど、まだC++はそこまではいっていない。素直に関数型言語使えって話になってきそうですね。