C++ Boost Interface Library ( BIL )

http://www.kmonos.net/alang/boost/経由で
http://www.cdiggins.com/bil.html
継承関係結ばずに動的多相性を構築するっていうのは,用いている要素技術としては多分これに似たものだろうなぁ.
全く同じことをやろうとしてすぐに挫折した経験がある自分としては,その挫折の原因となった部分にどううまく対処しているのかに非常に興味があったり.

BOOST_INTERFACE_BEGIN(Hoge)
  BOOST_INTERFACE_CONST_FUNCTION1(Huga, void, (std::map<int, std::string> const &, map)) // ぎゃーす!
BOOST_INTERFACE_END(Hoge)
// (要するにテンプレート引数リストのコンマがマクロ引数の区切りとして認識される)

これを直接扱おうと思ったらC99にあるような可変引数マクロ(Variadic Macro)が要ると思うんだけどなぁ・・・.どうするつもりなんだろう?Boost.PPのsequenceって手もあるけれど・・・う〜ん.
っていうかこのtemplateとマクロの相性の悪さは何とかならんのかねぇ,まったく.