Delphi language features missing from the Free Pascal Compiler
From Free Pascal wiki
New since Delphi 2007
Operator Overloading Syntax for records and classes
Delphi win32 compiler supports only operators for records. .Net compiler also supports classes.
Info: http://docwiki.embarcadero.com/RADStudio/en/Operator_Overloading http://wiert.wordpress.com/2009/10/19/delphi-operator-overloading-table-of-operators-names-and-some-notes-on-usage-and-glitches/
Class Helpers
http://www.prestwood.com/ASPSuite/KB/Document_View.asp?QID=101869 http://blog.excastle.com/2007/08/29/unfinished-delphi-feature-of-the-day-virtual-class-helper-methods/
Records with Methods
New since Delphi 2009
Generics Syntax
Unicode string support
Anonymouse Methods
New since Delphi 2010
Custom Attributes
Enhanced RTTI
Class constructors and destructors
http://blogs.embarcadero.com/abauer/2009/09/03/38898
Delayed directive
Info is here: http://docwiki.embarcadero.com/RADStudio/en/Libraries_and_Packages#Delayed_Loading Some info about internals:
- http://blogs.embarcadero.com/abauer/2009/08/25/38894
- http://blogs.embarcadero.com/abauer/2009/08/29/38896
- http://blogs.embarcadero.com/chrishesik/2009/11/02/35056
fpc wiki about that topic: http://wiki.freepascal.org/Dynamically_loading_headers
AS and IS extended for interfaces
Info is here:
- http://docwiki.embarcadero.com/RADStudio/en/Interface_References#Casting_Interface_References_to_Objects
- http://blogs.embarcadero.com/abauer/2009/08/21/38893
Misc
- using point in the unitname like: unit Borland.VCL.Types (since Delphi 7)
- {$pointermath ON} directive which turns on pointer arithmetic.