On Thursday, 1 March 2012 at 07:26:01 UTC, Jacob Carlborg wrote:
On 2012-03-01 01:53, Jonathan M Davis wrote:
package functions are currenly non-virtual.

The spec claims that "all non-sta­tic non-pri­vate non-tem­plate mem­ber func­ tions are vir­tual," which would mean that package is supposed to be virtual. But from what I recall, the plan is to leave package as non-virtual. So, is that indeed the case and the spec needs to be fixed, or is package going to be
made virtual at some point?

- Jonathan M Davis

Is anyone even using "package"? I've basically never used it.

In a module based approach, it's not as useful. But for people who are more used to Java and C# and end up using mostly one file/module per class, it is indeed useful. I've never had nor saw a use for overriding a package member though. If there is, C# partially solves this by 'protected internal' where internal is essentially package; this allows it to be called as a package function but still be overridable and accessible from the inheriting class. I have found a few use cases for it, with a workaround of making a package function to call the protected function.

Reply via email to