C++におけるtypenameの役割2

コンパイラが"error: type 'foo' is not derived from type 'bar'"と言って通してくれない.

メッセージの意味から何か未定義なものがあるのかと思っていたら, 単にtypenameの書き忘れであった. ある意味未定義だったわけだが, メッセージが分かりにくい. foo, barがかなり入り組んだテンプレートの適用をしていたので尚更.
以後気をつけます.

http://debuggingasusual.blogspot.jp/2012/01/templatetypedeftypename.html