メタテンプレート
C++のテンプレートをメタプログラミングできるテンプレート(メタテンプレート?n階テンプレート?)みないなものができないかと考えていたけど、何もできず。構造体テンプレートをネストすればできそうな気がしたが、名前をつけなきゃいけないのが壁。
やろうとしていたことは、感覚的にはこんなかんじ
templatetemplate struct boo { typedef foo boz; }; boo ⇒ template struct { typedef foo boz; }; boo ⇒ struct { typedef foo boz; };
テンプレートが参照透過な関数みたいなものなのは、過去のエントリで何度か述べているとおりなので、これはラムダ関数のカリー化みないなもんですかね。
ついでに、型変数にテンプレートを渡せるといいんだけど、まだC++はそこまではいっていない。素直に関数型言語使えって話になってきそうですね。