------- Comment #17 from rguenth at gcc dot gnu dot org 2007-09-18 11:58 ------- Note that the double virtual inheritance in the Serializer template creates the exponential behavior. You can fix this at the source level by instead doing
template <class Key, class Head> class Serializer<Key, Loki::Typelist<Head, Loki::NullType> >: public virtual Serializer<Key, Head> { }; template <class Key, class Head, class Tail> class Serializer<Key, Loki::Typelist<Head, Tail> >: public virtual Serializer<Key, Head>, public Serializer<Key, Tail> { }; template <class Key> class Serializer<Key, Loki::NullType> : public virtual Factory<Key> { }; which also makes more sense(?). Back to marking this as possibly a C++ frontend bug - though I'm inclined to close this bug as INVALID. -- rguenth at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- Component|tree-optimization |c++ http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31863