On Thursday, 12 September 2013 at 16:16:14 UTC, Maxim Fomin wrote:
On Thursday, 12 September 2013 at 11:29:22 UTC, Jacob Carlborg
wrote:
On 2013-09-12 11:28, Namespace wrote:
But if I try to write 'override' before [1], I get this error
message:
Error: function T4._apply cannot override a non-virtual
function
This seems inconsistent. I really overwrite the method, and
then I put
it in a package label.
I think the error message is pretty clear. You cannot override
a function that isn't virtual. Private and package methods are
not virtual.
Actually error message is misleading - it complains as T1._apply
would be non-virtual function which is wrong, it is one. The
problem is not in case of overriding non-virtual function but in
attempt to override virtual function (private) by non-virtual
one
(package). I think error mesage should be something like:
"Error: function T4._apply is non-virtual function and cannot
ovverride virtual function T1._apply"
Thank you, you understand my problem. ;)
I agree, the message should be changed.