Very hacky solution to class private members

bauss jj_1337 at live.dk
Thu Jun 9 11:33:08 UTC 2022


On Thursday, 9 June 2022 at 11:04:31 UTC, Dom Disc wrote:
> On Thursday, 9 June 2022 at 10:40:01 UTC, bauss wrote:
>
>> Might as well just make everything public then, right?
> No. I have written reducing the search-space to one file *DOES* 
> reduce the effort.
> But reducing it to a part of a file (which class level privacy 
> would do) does not, because still all member-functions that 
> shouldn't have access to the privates still have to be 
> reviewed. You still have to search the whole file to find all 
> usages of private variables, so you gain nothing.
>
>> Why stop there. Removing private, protected, package etc. is 
>> the way to go then?
> Nonsense. Nobody wants that.
>
>> the point of it all is to cut down the amount of code you have 
>> to review.
> Yup. And the reduction gained by class level in addition to 
> module level (which is not available in C++) is neglictable.
>
>> There's no reason to do the analysis yourself if the compiler 
>> can do it for you in 99% of the cases.
> But it can't. You have to check the member functions manually 
> anyway.
> On module level you have to additionally check the handful of 
> function that are also in the same file. But in C++ instead you 
> have to check the additionally friends, which may be scattered 
> all over the whole project.
>
> So in comparison with C++ module level privacy is just better 
> (if you don't put everything in one file).
> Within D alone, we would gain nearly nothing by an additional 
> level.

I don't know why you keep mentioning C++ and how D improves over 
C++.

Nobody mentioned C++, I certainly didn't and I really don't care 
if D improves over C++ or not or what their differences are.

I'm not a C++ programmer and I don't come from a C++ background.


More information about the Digitalmars-d mailing list