気になったリファラ

"class A : public Base<A>"
こんなピンポイントな検索で引っかかるもんなんだなぁ.CRTPですな.
他にcppllの過去ログが引っかかってて,
http://www.tietew.jp/cppll/archive/2881
http://www.tietew.jp/cppll/archive/2882
やねうらおさんがやまざきさんのサイト紹介されてますにゃ.
http://member.nifty.ne.jp/yamazaki/doc/interface_oriented.html
(リンク切れてたけれど,多分このページで良いはず・・・)
蛇に足を書き足すと,template + CRTP + 継承でインターフェースをやる場合,多重継承避けてchained inheritanceを使う話もあったり(boostのMLとかc++.moderatedとかでちらほら見た覚えが).というか,boost::operatorsがまさにこの「template + CRTP + 継承 + chained inheritanceでインターフェイス」な実装そのものだったり.
多重継承の場合,継承するクラスの個数が実装詳細として固定されるとか,(空クラスの場合)EBCOが効かないとか,"Diamond of Death"(仰々しいニックネームだなぁw.よほど嫌われてるんだろうなぁ)があったりとか,色々あるのでそういうのに対してchained inheritanceが対抗策として提示されることがしばしば.
問題はやまざきさんも指摘されているとおり,やっぱり保守性と可読性だろうなぁ・・・.慣れると普通に読めるんだけどなぁ・・・.慣れるまでがなぁ・・・.
#余談になりますけれど,boost::operatorsは比較的簡単なわりに上のように示唆するところが深いので,個人的に大好きなライブラリの一つだったりしまふ.
http://www.talkaboutprogramming.com/group/comp.lang.c++.moderated/messages/159369.htmlとか発見.っていうかこれ前読んだことあるな.もっと深い議論もいっぱい転がってるはずなんだけど,どこにあるんだろ?探すの('A`)ノ マンドクセ
#そーいえば自分,あんましinterfaceというものを理解してないかも
http://www.artima.com/intv/abcs.html
http://www.artima.com/intv/mincomp.html
http://www.artima.com/intv/meaning.html
http://www.artima.com/intv/const.html
これとか読んで勉強しなおすべ.