JEDI Help:CompilerCapabilities

From Project JEDI Wiki
Jump to navigationJump to search
JEDI Help

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