ice with a big template

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello,

i'm compiling a program with gcc 4.1.0 (not 4.0.1, it's not a mistake ;),
but i've also tried gcc 4.0.0 and there's the ice too), and gcc complains
about that part of the program :

template <typename Functor, typename FunctorMethodPtr>
typename adaptor::adaptor<typename adaptor::caller<Functor, typename
adaptor::decayer<FunctorMethodPtr>::type> >
adapt(Functor const& functor, FunctorMethodPtr)
{
  return typename adaptor::adaptor<typename adaptor::caller<Functor,
typename adaptor::decayer<FunctorMethodPtr>::type> >(functor);
}

The error reported by gcc is:

../../src/functions/../parser/adapt.h: In function
'avs::parser::adaptor::adaptor<avs::parser::adaptor::caller<Functor,
typename avs::parser::adaptor::decayer<FunctorMethodPtr>::type>, typename
avs::parser::adaptor::caller<Functor, typename
avs::parser::adaptor::decayer<FunctorMethodPtr>::type>::ResultType>
avs::parser::detail::adapt(const Functor&, FunctorMethodPtr)':
../../src/functions/../parser/adapt.h:50: internal compiler error: tree
check: expected class 'type', have 'declaration' (namespace_decl) in
dependent_type_p, at cp/pt.c:12020

line 50 is the line where the 'return' is.

I'm not skilled enough to know if it's a problem with gcc or with the
program.

I would also like to point out that there is no problem with gcc 3.3.4.

Does someone see any problem in the code above, or a workaround ?

Thank you

Vincent Torri

[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux