[fpc-devel] Compile time functions

J. Gareth Moreton gareth at moreton-family.com
Sat Jul 28 23:22:21 CEST 2018


 Aah, right.  Class methods I have used in past projects, but my
understanding is that, in these instances, Self can still be accessed, but
represents the class rather than the object, can be called without an
instantiated object, and still have the issues that they can be virtual and
overridden (something i'm disallowing with pure functions because of the
initial complexity of determining which version of a method to call).

 Can you clarify, Sven, with "static" and "class"?

 Gareth aka. Kit

 On Sat 28/07/18 23:11 , "Dmitry Boyarintsev" skalogryz.lists at gmail.com
sent:
 These are known as “class” methods (rather than “static”) in
object pascal.
 Thanks,Dmitry

 On Saturday, July 28, 2018, J. Gareth Moreton  wrote:
  Aah, right.
 I'm probably being rather dumb here from not having used them before, but
do you mean things like this?

 type
   TNewClass = class    function Special: Boolean; static;
 end;

 I gather you can't access Self in such methods.

 Gareth aka. Kit

 On Sat 28/07/18 20:37 , "Sven Barth" pascaldragon at googlemail.com sent:
 J. Gareth Moreton  schrieb am Sa., 28. Juli 2018, 19:34:
  I did wonder about that, but wasn't sure how it would affect things where
inheritance is concerned.  I dare ask, do you have an example of a class
method that you would consider pure?

 They don't have inheritance. If they have the modifier "static" they
really are simply scoped functions or procedures. They can even be assigned
to non-"of object" procedure variables. 
  Regards, Sven   
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freepascal.org/pipermail/fpc-devel/attachments/20180728/bed2e169/attachment.html>


More information about the fpc-devel mailing list