Talk:cpp/language/nested types

C++11 changes?
I'm pretty sure that C++11 changed the rules for nested classes slightly. Specifically, I recall that nested classes are now considered a first-class member of their outer class, so they can access private and protected data members of their enclosing class and can be declared/defined in any order. Can this be confirmed and updated?  LB ( T 13:01, 28 March 2014 (PDT)
 * Yes, I missed the small change in 9.5/1 from 03 to 11. Updated (changes weren't that drastic though, you could always access private members) --Cubbi (talk) 14:17, 28 March 2014 (PDT)

As there are two Xes.
As of 20 Apr 2014 there is such a code snippet on the page: {{source|1= int x,y; // globals class enclose { // enclosing class int x; // note: private members static int s; public: struct inner { // nested class void f(int i) { x = i; // Error: can't write to non-static enclose::x without instance int a = sizeof x; // Error until C++11, // OK in C++11: operand of sizeof is unevaluated, this use is ok ... }; }} It raise a question about the value of a:
 * In the statement {{c|a}} get size of a private member or of the global {{c|x}}?

Would it be better to make global {{c|x}} and private {{c|x}} of different types and add the actual value of {{c|a}} in the comments, wouldn't it?


 * I added a comment to say which x is found by lookup at that line, although it isn't different from one line above. --Cubbi (talk) 12:55, 20 April 2014 (PDT)

Is the current title appropriate?
It seems that nested class is better than nested types, as nested types can also be nested typedef's, but this page doesn't talk anything about that. --115.231.76.49 08:17, 17 May 2014 (PDT)


 * True, this isn't about nested typedef declarations (which are mentioned briefly in a few places, but not here). Changed title. --Cubbi (talk) 12:05, 21 May 2014 (PDT)