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: "dave at boostpro dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 6 Apr 2009 09:35:52 -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 #23 from dave at boostpro dot com 2009-04-06 09:35 -------
Subject: Re: deep typedef substitution in error message
On Apr 3, 2009, at 11:45 PM, jason at redhat dot com wrote:
>
>
>> 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?
No, because that contains ">::type"
I'd want to see
boost::sequence::range_::range<Elements, Begin, End,
mpl_::integral_c<unsigned int,5u> >
> 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.
I'm confused as to why you think you need to give a still-dependent
type in the signature
--
David Abrahams
BoostPro Computing
http://boostpro.com
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=25185