Preparing for the New DIP Process

FairEnough FairEnough at gmail.com
Mon Jan 29 23:06:57 UTC 2024


On Monday, 29 January 2024 at 12:34:05 UTC, Atila Neves wrote:
> ..
> My 2 centimes (cos I live in Switzerland) is that if you're 
> worried about too much code having access to your private 
> functions, your module is probably too large.

I'd argue:
  (1) this module is not too large. (sure its just for demo the 
concept though)
  (2) private(this) make complete sense here. There is zero need 
for the unittest of have access to count. So why not make that 
part of the Widget class design. I don't see any downside 
whatsoever. Is it absolutely necessary, well, no. But I like the 
design clarity it offers.

module test;

class Widget
{
   public:
     this() { ++count; }
     ~this() { --count; }

     int numWidgets(){ return count; }

   private(this):
     static int count;
};

unittest
{
     Widget w = new Widget, x = new Widget;
     assert(w.numWidgets() == 2);
}



More information about the Digitalmars-d-announce mailing list