Broken?

Michel Fortin michel.fortin at michelf.ca
Wed Mar 12 06:15:14 PDT 2014


On 2014-03-12 12:48:59 +0000, "Steven Schveighoffer" 
<schveiguy at yahoo.com> said:

> On Wed, 12 Mar 2014 08:32:14 -0400, Michel Fortin  
> <michel.fortin at michelf.ca> wrote:
> 
>> I'll add another argument to the mix.
>> 
>> Currently, you can't have private/package functions that are virtual,  
>> contrary to what TDPL says.
>> 
>> To make things coherent we could change private function so they become 
>>  virtual by default. You might be able to see the problem with this  
>> option: making private function virtual by default is likely to add 
>> many  performance regressions in existing code, silently.
> 
> Private virtual functions make 0 sense. A private function cannot be  
> accessed by a derived class. Who gets to access a overriden virtual  
> function? The base class only? If I'm writing a function, I certainly  
> should be able to access it, no? Even if you want to restrict my 
> access,  you cannot, I'm in control of that code!

You're mixing C++ private with D private. Private just means the symbol 
is only accessible within the same module. You can have a whole class 
hierarchy in a module if you want, and thus could override private 
functions assuming they could be virtual.


-- 
Michel Fortin
michel.fortin at michelf.ca
http://michelf.ca



More information about the Digitalmars-d mailing list