On 28.02.2014 02:18, Hans-Peter Diettrich wrote:
Sven Barth schrieb:
Am 27.02.2014 15:35, schrieb Hans-Peter Diettrich:
Also "self" is no more known inside class methods in XE. In D7 it was
the class type instead of the instance pointer. Thus a too
restrictive compiler, geared towards compatibilitiy with *new* Delphi
versions, may break existing code.
Source please. This compiles and runs without problems in XE:

=== source begin ===

type
  TTest = class
    class procedure Test; <---------
  end;

When you add "static;", as required for class property getters/setters,
the following won't compile:

That's why I asked for source. The term "class methods" always implies "no static" while those with static are "static class methods".


class procedure TTest.Test;
begin
  Writeln(Self.ClassName);
end;

So the lack of "Self" seems to apply to "static;" methods, not to
"class" methods. I'll ask in an EMBT group for a description of
"static;", the OH seems to reflect the C++ meaning only, without
mentioning the impact on OPL classes.

A static class method is a method that is basically a normal global procedure/function that simply happens to be declared inside a class. They are even assignment compatible to normal procvars.

Regards,
Sven
_______________________________________________
fpc-devel maillist  -  [email protected]
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel

Reply via email to