This is the mail archive of the libstdc++@gcc.gnu.org mailing list for the libstdc++ 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]

Re: [Patch] PR11504: -Wcast-qual and general constness issues with stl_tree.h


On Sat, Jul 26, 2003 at 04:02:23PM +0200, Gawain Bolton wrote:

> >>    Why do I have to define "const" versions of the typedefs?
> >>    If I have "typedef _Rb_tree_node* _Link_type;" then why can't I
> >>    use "const _Link_type" instead of having to define an explicit
> >>    const typedef like "typedef const _Rb_tree_node* _const_Link_type;"?
> >>   
> >>
> >
> >Because "const _Link_type" is the same as "_Link_type const" which is
> >"_Rb_tree_node* const" which is a const-pointer to a non-const-node,
> >not a pointer to a const-node.
> >
> Yes this is what I was seeing...   I just thought it strange that 
> "const" was being added afterwards when it was put before _Link_type...  
> Guess you'll have to tell me what you're smoking if this seems perfectly 
> clear to you!

I've been smoking FAQ

http://www.parashift.com/c++-faq-lite/const-correctness.html#faq-18.5

and the following entries from 18.6 to 18.9

"const A" and "A const" are the same, whether A is a "real" type or a
typedef for something more complex such as "int const * const * const" 

jon


-- 
-><- IO ERIS IO ERIS ERIS -><-


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