JEDI Help:CompilerCapabilities
From Project JEDI Wiki
Jump to navigationJump to searchJEDI Help: Compiler Capabilities
Search in JEDI Help
Search in all projects
Summary
Compiler symbol for detecting compiler capabilities.
Pascal
{$IFDEF SYMBOL} // The compiler feature is available {$ENDIF SYMBOL}
Description
Once jedi.inc is included at the top of your pascal source file, the following compiler symbols are defined depending on your compiler and IDE version.
These symbols can be used for conditional compilation based on compiler available features:
Symbol | Description |
SUPPORTS_CONSTPARAMS | Compiler supports const parameters (D1+) |
SUPPORTS_SINGLE | Compiler supports the Single type (D1+) |
SUPPORTS_DOUBLE | Compiler supports the Double type (D1+) |
SUPPORTS_EXTENDED | Compiler supports the Extended type (D1+) |
SUPPORTS_CURRENCY | Compiler supports the Currency type (D2+) |
SUPPORTS_THREADVAR | Compiler supports threadvar declarations (D2+) |
SUPPORTS_OUTPARAMS | Compiler supports out parameters (D3+) |
SUPPORTS_VARIANT | Compiler supports variant (D2+) |
SUPPORTS_WIDECHAR | Compiler supports the WideChar type (D2+) |
SUPPORTS_WIDESTRING | Compiler supports the WideString type (D3+/BCB3+) |
SUPPORTS_INTERFACE | Compiler supports interfaces (D3+/BCB3+) |
SUPPORTS_DISPINTERFACE | Compiler supports dispatch interfaces (D3+/BCB3+) |
SUPPORTS_DISPID | Compiler supports dispatch ids (D3+/BCB3+/FPC) |
SUPPORTS_EXTSYM | Compiler supports the $EXTERNALSYM directive (D4+/BCB3+) |
SUPPORTS_NODEFINE | Compiler supports the $NODEFINE directive (D4+/BCB3+) |
SUPPORTS_LONGWORD | Compiler supports the LongWord type (unsigned 32 bit) (D4+/BCB4+) |
SUPPORTS_INT64 | Compiler supports the Int64 type (D4+/BCB4+) |
SUPPORTS_UINT64 | Compiler supports the UInt64 type (D15+/BCB15+) |
SUPPORTS_DYNAMICARRAYS | Compiler supports dynamic arrays (D4+/BCB4+) |
SUPPORTS_DEFAULTPARAMS | Compiler supports default parameters (D4+/BCB4+) |
SUPPORTS_OVERLOAD | Compiler supports overloading (D4+/BCB4+) |
SUPPORTS_IMPLEMENTS | Compiler supports implements (D4+/BCB4+) |
SUPPORTS_DEPRECATED | Compiler supports the deprecated directive (D6+/BCB6+) |
SUPPORTS_PLATFORM | Compiler supports the platform directive (D6+/BCB6+) |
SUPPORTS_LIBRARY | Compiler supports the library directive (D6+/BCB6+/FPC) |
SUPPORTS_LOCAL | Compiler supports the local directive (D6+/BCB6+) |
SUPPORTS_SETPEFLAGS | Compiler supports the SetPEFlags directive (D6+/BCB6+) |
SUPPORTS_EXPERIMENTAL_WARNINGS | Compiler supports the WARN SYMBOL_EXPERIMENTAL and WARN UNIT_EXPERIMENTAL directives (D6+/BCB6+) |
SUPPORTS_INLINE | Compiler supports the inline directive (D9+/FPC) |
SUPPORTS_FOR_IN | Compiler supports for in loops (D9+) |
SUPPORTS_NESTED_CONSTANTS | Compiler supports nested constants (D9+) |
SUPPORTS_NESTED_TYPES | Compiler supports nested types (D9+) |
SUPPORTS_REGION | Compiler supports the REGION and ENDREGION directives (D9+) |
SUPPORTS_ENHANCED_RECORDS | function|procedure] for record types (D9.NET, D10+) |
SUPPORTS_CLASS_FIELDS | Compiler supports class fields (D9.NET, D10+) |
SUPPORTS_CLASS_HELPERS | Compiler supports class helpers (D9.NET, D10+) |
SUPPORTS_CLASS_OPERATORS | Compiler supports class operators (D9.NET, D10+) |
SUPPORTS_CLASS_CTORDTORS | Compiler supports class contructors/destructors (D14+) |
SUPPORTS_STRICT | Compiler supports strict keyword (D9.NET, D10+) |
SUPPORTS_STATIC | Compiler supports static keyword (D9.NET, D10+) |
SUPPORTS_FINAL | Compiler supports final keyword (D9.NET, D10+) |
SUPPORTS_METHODINFO | Compiler supports the METHODINFO directives (D10+) |
SUPPORTS_GENERICS | Compiler supports generic implementations (D11.NET, D12+) |
SUPPORTS_DEPRECATED_DETAILS | Compiler supports additional text for the deprecated directive (D11.NET, D12+) |
ACCEPT_DEPRECATED | Compiler supports or ignores the deprecated directive (D6+/BCB6+/FPC) |
ACCEPT_PLATFORM | Compiler supports or ignores the platform directive (D6+/BCB6+/FPC) |
ACCEPT_LIBRARY | Compiler supports or ignores the library directive (D6+/BCB6+) |
SUPPORTS_CUSTOMVARIANTS | Compiler supports custom variants (D6+/BCB6+) |
SUPPORTS_VARARGS | Compiler supports varargs (D6+/BCB6+) |
SUPPORTS_ENUMVALUE | Compiler supports assigning ordinalities to values of enums (D6+/BCB6+) |
SUPPORTS_DEPRECATED_WARNINGS | Compiler supports deprecated warnings (D6+/BCB6+) |
SUPPORTS_LIBRARY_WARNINGS | Compiler supports library warnings (D6+/BCB6+) |
SUPPORTS_PLATFORM_WARNINGS | Compiler supports platform warnings (D6+/BCB6+) |
SUPPORTS_UNSAFE_WARNINGS | Compiler supports unsafe warnings (D7) |
SUPPORTS_WEAKPACKAGEUNIT | Compiler supports the WEAKPACKAGEUNIT directive |
SUPPORTS_COMPILETIME_MESSAGES | Compiler supports the MESSAGE directive |
SUPPORTS_PACKAGES | Compiler supports Packages |
SUPPORTS_UNICODE | string type is aliased to an unicode string (WideString or UnicodeString) (DX.NET, D12+) |
SUPPORTS_UNICODE_STRING | Compiler supports UnicodeString (D12+) |
SUPPORTS_INT_ALIASES | Types Int8, Int16, Int32, UInt8, UInt16 and UInt32 are defined in the unit System (D12+) |
SUPPORTS_CAST_INTERFACE_TO_OBJ | The compiler supports casts from interfaces to objects (D14+) |
SUPPORTS_DELAYED_LOADING | The compiler generates stubs for delaying imported function loads (D14+) |
About
Contribute to this help topic
This documentation wiki is based on the collaborative effort of Project JEDI users. Your edits are welcome in order to improve documentation quality: edit this page