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


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