
"Gabriel Dos Reis" <gdr@integrable-solutions.net> wrote in message news:m33c99g3ft.fsf@uniton.integrable-solutions.net...
"Andy Little" <andy@servocomm.freeserve.co.uk> writes:
[snip]
I usually describe that as "a long list of special cases", but I would not go that far saying that there is no overall vision of the concept behind why certain rules apply in a given context. Each time I've asked why certain rules don't apply, I think I've got an answer as to why.
It would be nice to have the vision explained... close by the C++ standard. (D&E is out of date. ARM is out of date) The standard is merely a collection of bits and pieces. Re your posts on comp.lang. One needs some didactics to point at students. "This is the concept behind this rule in this context" etc. Or this is the special case we are stuck with because the concept here has not been officially stated/confused.
But, there are situations where general rules are prevalent. It looks to me that this issue of members hide enclosing template-parameters is one where a general rule applies.
As I understand it currently base class names hide template parameter names. The problem with this is that it sees names in terms of parsing a grammar. "nested scopes" sees all scopes equal... takes no account of the concept 'What is a template all about'. 'What is a function body scope all about', 'what is a function parameter scope all about'. Each scope has a different character.C++ is a much richer language than to be constrained by dead grammar. Bjarne Stroustrup has commented on this in D&E. [snip]
I see now what you meant. Thanks for taking the time to clarify. Your picture leave out whether you consider nesting of scopes or not.
I have attempted to answer this on comp lang. Some scopes nest .... some dont. Each has its own character. There is a reason for that. Which is that C++ has tried to provide an intuitive language, one that feels write to the programmer. C++ reflects real world complexity. C++ has alway done things the hard way. I hope that concepts are the next major development. They really do ' feel right' to me for C++ :-) regards Andy Little