Consider the following code. foo.d --- module foo;
struct Foo { private int i; } --- main.d --- void main() { import std.stdio; import foo; auto x = Foo(); writeln(x); // ++x.i; ++x.tupleof[0]; writeln(x); } ---As expected, the commented line does not compile. If I uncomment it, I get the error "no property i for type foo.Foo". However, the rest of the code compiles just fine and outputs:
--- Foo(0) Foo(1) ---This appears to defeat the purpose of declaring i private. What am I missing?