http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56395



--- Comment #7 from Markus Trippelsdorf <markus at trippelsdorf dot de> 
2013-02-20 12:40:01 UTC ---

Still more reduced:



template<typename T>struct I

{

  typedef T type;

};

struct H

{

  typedef int ChildOnCIter;

};

template<bool>struct C;

template<>struct C<false>

{

  template<typename Sequence>struct G

  {

    typedef typename Sequence::tag type;

  };

};

template<typename Sequence>struct O : C<0>::G<Sequence>

{};

template<typename>struct W;

template<typename Sequence>struct P : W

        <typename O <Sequence>::type>::template X<Sequence>

{};

template<>struct W<int>

{

  template<typename Vector>struct X : I<Vector>

  {};

};

template<typename Base>struct R : Base

{};

template<typename = int>struct V;

template<>struct V<>

{

  typedef int tag;

};

struct S : R<V<> >

{};

template<typename>struct IterTraits

{

  template<typename OtherNodeT>struct K

  {

    typedef OtherNodeT Type;

  };

};

template<typename PrevItemT, typename NodeVecT, int>struct B

{

  typedef typename PrevItemT::IterT  PrevIterT;

  typedef typename P<NodeVecT>::type _NodeT;

  typedef typename IterTraits<PrevIterT>::template K< _NodeT>::Type IterT;

  IterTraits<IterT>ITraits;

};

template<typename PrevItemT, typename NodeVecT>struct B<PrevItemT, NodeVecT,0>

{

  typedef typename PrevItemT::IterT  PrevIterT;

  typedef typename P<NodeVecT>::type _NodeT;

  typedef typename IterTraits<PrevIterT>::template K<

      _NodeT>::Type IterT;

  IterTraits<IterT> ITraits;

};

template<typename RootChildOnIterT>struct N

{

  typedef RootChildOnIterT RootIterT;

  struct M

  {

    typedef RootIterT IterT;

  };

  B<M, S, 0>mIterList;

};

template<typename T>struct D

{

  N<typename T::ChildOnCIter>LeafCIter;

};

D<H> a;

Reply via email to