This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug c++/25185] deep typedef substitution in error message
- From: "jason at redhat dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 4 Apr 2009 03:45:56 -0000
- Subject: [Bug c++/25185] deep typedef substitution in error message
- References: <bug-25185-501@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #21 from jason at redhat dot com 2009-04-04 03:45 -------
Subject: Re: deep typedef substitution in error message
dave at boostpro dot com wrote:
> Well, I find that a little confusing. Why is it explaining to me what
>
> typename boost::result_of<CalcSize()>::type
>
> is? I don't see that type anywhere else in there.
A bug that I've already fixed.
> Also, I'm not thrilled that
>
> boost::sequence::detail::range_maker<Elements, Begin, End, CalcSize>::type
>
> is still present in the signature, even if it's explained below.
> Carried to an extreme, you get EDG's nasty nested
>
> ={...={...={...}}}
>
> type descriptions. Do you need to do that? Why not just spell out the
> return type?
Because that's the return type specified in the declaration. The
alternative would be for it to say
boost::sequence::range_::range<Elements, Begin, End, typename
boost::result_of<CalcSize()>::type>
like it used to; do you prefer that? It seemed to me that we might as
well just print the typedef in the signature and give the fully
instantiated type in the bindings list rather than give a
still-dependent type in the signature and explain any component
typenames in the bindings list, but I don't feel strongly about that.
Jason
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=25185