<div dir="ltr">On 1 November 2017 at 15:31, BJ Homer <span dir="ltr">&lt;<a href="mailto:bjhomer@gmail.com" target="_blank">bjhomer@gmail.com</a>&gt;</span> wrote:<br><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex"><div style="word-wrap:break-word;line-break:after-white-space">Again, though, “anyone” here only means “anyone working in the same module”. Which is a very restricted set of “anyone”: it only includes people who already have full access, and could just modify the original struct anyway.</div></blockquote><div><br></div><div>by this logic we can conclude that &quot;private&quot; in C++ is absolutely useless, as anyone (like &quot;anyone in the world with the header&quot;) can change the header from: &quot;private: void foo();&quot; to &quot;public: void foo();&quot; even without the need of having the corresponding source file with &quot;void foo()&quot;. right?</div><div><br></div><div>i&#39;d say wrong. i&#39;d say that even if i have a physical write access to, say, 30 third party libraries and use them in my project doesn&#39;t mean i am &quot;free&quot; to go to those other people classes and change private things to public willy nilly, or add variables to their classes, etc. my proposal, as well as the above example with C++ private - only works if people &quot;behave&quot;. ledger is an explicit list of parts allowed. a guest list if you wish. &quot;party crashing&quot; is not addressed in this proposal.</div><div><br></div><div>Mike</div><div> </div></div></div></div>