This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug c++/25185] deep typedef substitution in error message



------- 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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]