YARP
Yet Another Robot Platform
compiler.h File Reference
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

Compiler Identification Macros

Macro useful to identify current compiler and its version.

#define YARP_COMPILER_IS_Comeau   0
 
#define YARP_COMPILER_IS_Intel   0
 
#define YARP_COMPILER_IS_PathScale   0
 
#define YARP_COMPILER_IS_Embarcadero   0
 
#define YARP_COMPILER_IS_Borland   0
 
#define YARP_COMPILER_IS_Watcom   0
 
#define YARP_COMPILER_IS_OpenWatcom   0
 
#define YARP_COMPILER_IS_SunPro   0
 
#define YARP_COMPILER_IS_HP   0
 
#define YARP_COMPILER_IS_Compaq   0
 
#define YARP_COMPILER_IS_zOS   0
 
#define YARP_COMPILER_IS_XL   0
 
#define YARP_COMPILER_IS_VisualAge   0
 
#define YARP_COMPILER_IS_PGI   0
 
#define YARP_COMPILER_IS_Cray   0
 
#define YARP_COMPILER_IS_TI   0
 
#define YARP_COMPILER_IS_Fujitsu   0
 
#define YARP_COMPILER_IS_SCO   0
 
#define YARP_COMPILER_IS_AppleClang   0
 
#define YARP_COMPILER_IS_Clang   0
 
#define YARP_COMPILER_IS_GNU   0
 
#define YARP_COMPILER_IS_MSVC   0
 
#define YARP_COMPILER_IS_ADSP   0
 
#define YARP_COMPILER_IS_IAR   0
 
#define YARP_COMPILER_IS_ARMCC   0
 
#define YARP_COMPILER_IS_MIPSpro   0
 
#define YARP_COMPILER_IS_Doxygen   1
 
#define YARP_COMPILER_IS_Swig   0
 
#define YARP_COMPILER_VERSION_MAJOR   DOXYGEN_MAJOR_VERSION
 Current compiler major version number, if defined. More...
 
#define YARP_COMPILER_VERSION_MINOR   DOXYGEN_MINOR_VERSION
 Current compiler minor version number, if defined. More...
 
#define YARP_COMPILER_VERSION_PATCH   DOXYGEN_PATCH_VERSION
 Current compiler patch version number, if defined. More...
 
Compiler Supported Features

Macros useful to check if current compiler and build flags combination supports specific features.

#define YARP_COMPILER_CXX_AGGREGATE_DEFAULT_INITIALIZERS   1
 1 if the current c++ compiler and build flags combination supports aggregate default initializers, as defined in N3605. More...
 
#define YARP_COMPILER_CXX_ALIAS_TEMPLATES   1
 1 if the current c++ compiler and build flags combination supports template aliases, as defined in N2258. More...
 
#define YARP_COMPILER_CXX_ALIGNAS   1
 1 if the current c++ compiler and build flags combination supports alignment control alignas, as defined in N2341. More...
 
#define YARP_COMPILER_CXX_ALIGNOF   1
 1 if the current c++ compiler and build flags combination supports alignment control alignof, as defined in N2341. More...
 
#define YARP_COMPILER_CXX_ATTRIBUTES   1
 1 if the current c++ compiler and build flags combination supports generic attributes, as defined in N2761. More...
 
#define YARP_COMPILER_CXX_ATTRIBUTE_DEPRECATED   1
 1 if the current c++ compiler and build flags combination supports the [[deprecated]] attribute, as defined in N3760. More...
 
#define YARP_COMPILER_CXX_AUTO_TYPE   1
 1 if the current c++ compiler and build flags combination supports automatic type deduction, as defined in N1984. More...
 
#define YARP_COMPILER_CXX_BINARY_LITERALS   1
 1 if the current c++ compiler and build flags combination supports binary literals, as defined in N3472. More...
 
#define YARP_COMPILER_CXX_CONSTEXPR   1
 1 if the current c++ compiler and build flags combination supports constant expressions, as defined in N2235. More...
 
#define YARP_COMPILER_CXX_CONTEXTUAL_CONVERSIONS   1
 1 if the current c++ compiler and build flags combination supports contextual conversions, as defined in N3323. More...
 
#define YARP_COMPILER_CXX_DECLTYPE   1
 1 if the current c++ compiler and build flags combination supports decltype, as defined in N2343. More...
 
#define YARP_COMPILER_CXX_DECLTYPE_AUTO   1
 1 if the current c++ compiler and build flags combination supports decltype(auto) semantics, as defined in N3638. More...
 
#define YARP_COMPILER_CXX_DECLTYPE_INCOMPLETE_RETURN_TYPES   1
 1 if the current c++ compiler and build flags combination supports decltype on incomplete return types, as defined in N3276. More...
 
#define YARP_COMPILER_CXX_DEFAULT_FUNCTION_TEMPLATE_ARGS   1
 1 if the current c++ compiler and build flags combination supports default template arguments for function templates, as defined in DR226. More...
 
#define YARP_COMPILER_CXX_DEFAULTED_FUNCTIONS   1
 1 if the current c++ compiler and build flags combination supports defaulted functions, as defined in N2346. More...
 
#define YARP_COMPILER_CXX_DEFAULTED_MOVE_INITIALIZERS   1
 1 if the current c++ compiler and build flags combination supports defaulted move initializers, as defined in N3053. More...
 
#define YARP_COMPILER_CXX_DELEGATING_CONSTRUCTORS   1
 1 if the current c++ compiler and build flags combination supports delegating constructors, as defined in N1986. More...
 
#define YARP_COMPILER_CXX_DELETED_FUNCTIONS   1
 1 if the current c++ compiler and build flags combination supports deleted functions, as defined in N2346. More...
 
#define YARP_COMPILER_CXX_DIGIT_SEPARATORS   1
 1 if the current c++ compiler and build flags combination supports digit separators, as defined in N3781. More...
 
#define YARP_COMPILER_CXX_ENUM_FORWARD_DECLARATIONS   1
 1 if the current c++ compiler and build flags combination supports enum forward declarations, as defined in N2764. More...
 
#define YARP_COMPILER_CXX_EXPLICIT_CONVERSIONS   1
 1 if the current c++ compiler and build flags combination supports explicit conversion operators, as defined in N2437. More...
 
#define YARP_COMPILER_CXX_EXTENDED_FRIEND_DECLARATIONS   1
 1 if the current c++ compiler and build flags combination supports extended friend declarations, as defined in N1791. More...
 
#define YARP_COMPILER_CXX_EXTERN_TEMPLATES   1
 1 if the current c++ compiler and build flags combination supports extern templates, as defined in N1987. More...
 
#define YARP_COMPILER_CXX_FINAL   1
 1 if the current c++ compiler and build flags combination supports the override control final keyword, as defined in N2928, N3206 and N3272. More...
 
#define YARP_COMPILER_CXX_FUNC_IDENTIFIER   1
 1 if the current c++ compiler and build flags combination supports predefined __func__ identifier, as defined in N2340. More...
 
#define YARP_COMPILER_CXX_GENERALIZED_INITIALIZERS   1
 1 if the current c++ compiler and build flags combination supports initializer lists, as defined in N2672. More...
 
#define YARP_COMPILER_CXX_GENERIC_LAMBDAS   1
 1 if the current c++ compiler and build flags combination supports generic lambdas, as defined in N3649. More...
 
#define YARP_COMPILER_CXX_INHERITING_CONSTRUCTORS   1
 1 if the current c++ compiler and build flags combination supports inheriting constructors, as defined in N2540. More...
 
#define YARP_COMPILER_CXX_INLINE_NAMESPACES   1
 1 if the current c++ compiler and build flags combination supports inline namespaces, as defined in N2535. More...
 
#define YARP_COMPILER_CXX_LAMBDAS   1
 1 if the current c++ compiler and build flags combination supports lambda functions, as defined in N2927. More...
 
#define YARP_COMPILER_CXX_LAMBDA_INIT_CAPTURES   1
 1 if the current c++ compiler and build flags combination supports lambda init captures, as defined in N3648. More...
 
#define YARP_COMPILER_CXX_LOCAL_TYPE_TEMPLATE_ARGS   1
 1 if the current c++ compiler and build flags combination supports local and unnamed types as template arguments, as defined in N2657. More...
 
#define YARP_COMPILER_CXX_LONG_LONG_TYPE   1
 1 if the current c++ compiler and build flags combination supports long long type, as defined in N1811. More...
 
#define YARP_COMPILER_CXX_NOEXCEPT   1
 1 if the current c++ compiler and build flags combination supports exception specifications, as defined in N3050. More...
 
#define YARP_COMPILER_CXX_NONSTATIC_MEMBER_INIT   1
 1 if the current c++ compiler and build flags combination supports non-static data member initialization, as defined in N2756. More...
 
#define YARP_COMPILER_CXX_NULLPTR   1
 1 if the current c++ compiler and build flags combination supports null pointer, as defined in N2431. More...
 
#define YARP_COMPILER_CXX_OVERRIDE   1
 1 if the current c++ compiler and build flags combination supports the override control override keyword, as defined in N2928, N3206 and N3272. More...
 
#define YARP_COMPILER_CXX_RANGE_FOR   1
 1 if the current c++ compiler and build flags combination supports range based for, as defined in N2930. More...
 
#define YARP_COMPILER_CXX_RAW_STRING_LITERALS   1
 1 if the current c++ compiler and build flags combination supports raw string literals, as defined in N2442. More...
 
#define YARP_COMPILER_CXX_REFERENCE_QUALIFIED_FUNCTIONS   1
 1 if the current c++ compiler and build flags combination supports reference qualified functions, as defined in N2439. More...
 
#define YARP_COMPILER_CXX_RELAXED_CONSTEXPR   1
 1 if the current c++ compiler and build flags combination supports relaxed constexpr, as defined in N3652. More...
 
#define YARP_COMPILER_CXX_RETURN_TYPE_DEDUCTION   1
 1 if the current c++ compiler and build flags combination supports return type deduction on normal functions, as defined in N3386. More...
 
#define YARP_COMPILER_CXX_RIGHT_ANGLE_BRACKETS   1
 1 if the current c++ compiler and build flags combination supports right angle bracket parsing, as defined in N1757. More...
 
#define YARP_COMPILER_CXX_RVALUE_REFERENCES   1
 1 if the current c++ compiler and build flags combination supports r-value references, as defined in N2118. More...
 
#define YARP_COMPILER_CXX_SIZEOF_MEMBER   1
 1 if the current c++ compiler and build flags combination supports size of non-static data members, as defined in N2253. More...
 
#define YARP_COMPILER_CXX_STATIC_ASSERT   1
 1 if the current c++ compiler and build flags combination supports static asserts, as defined in N1720. More...
 
#define YARP_COMPILER_CXX_STRONG_ENUMS   1
 1 if the current c++ compiler and build flags combination supports strongly typed enums, as defined in N2347. More...
 
#define YARP_COMPILER_CXX_TEMPLATE_TEMPLATE_PARAMETERS   1
 1 if the current c++ compiler and build flags combination supports template template parameters, as defined in ISO/IEC 14882:1998. More...
 
#define YARP_COMPILER_CXX_THREAD_LOCAL   1
 1 if the current c++ compiler and build flags combination supports thread-local variables, as defined in N2659. More...
 
#define YARP_COMPILER_CXX_TRAILING_RETURN_TYPES   1
 1 if the current c++ compiler and build flags combination supports automatic function return type, as defined in N2541. More...
 
#define YARP_COMPILER_CXX_UNICODE_LITERALS   1
 1 if the current c++ compiler and build flags combination supports unicode string literals, as defined in N2443. More...
 
#define YARP_COMPILER_CXX_UNIFORM_INITIALIZATION   1
 1 if the current c++ compiler and build flags combination supports uniform initialization, as defined in N2640. More...
 
#define YARP_COMPILER_CXX_UNRESTRICTED_UNIONS   1
 1 if the current c++ compiler and build flags combination supports uniform initialization, as defined in N2544. More...
 
#define YARP_COMPILER_CXX_USER_LITERALS   1
 1 if the current c++ compiler and build flags combination supports user-defined literals, as defined in N2765. More...
 
#define YARP_COMPILER_CXX_VARIABLE_TEMPLATES   1
 1 if the current c++ compiler and build flags combination supports user-defined literals, as defined in N3651. More...
 
#define YARP_COMPILER_CXX_VARIADIC_MACROS   1
 1 if the current c++ compiler and build flags combination supports variadic macros, as defined in N1653. More...
 
#define YARP_COMPILER_CXX_VARIADIC_TEMPLATES   1
 1 if the current c++ compiler and build flags combination supports variadic templates, as defined in N2242. More...
 
Alignment Macros
#define YARP_ALIGNAS(X)   alignas(X)
 Expands to the standard alignas decorator if supported, or a compiler-specific decorator such as __attribute__ ((__aligned__)) used by GNU compilers. More...
 
#define YARP_ALIGNOF(X)   alignof(X)
 Expands to the standard alignof decorator if supported, or a compiler-specific decorator such as __alignof__ used by GNU compilers. More...
 
Deprecated Functions Macros
#define YARP_DEPRECATED   [[deprecated]]
 Expands to either the standard [[deprecated]] attribute or a compiler-specific decorator such as __attribute__((__deprecated__)) used by GNU compilers. More...
 
#define YARP_DEPRECATED_MSG(MSG)   [[deprecated(MSG)]]
 Expands to either the standard [[deprecated]] attribute or a compiler-specific decorator such as __attribute__((__deprecated__)) used by GNU compilers. More...
 
Constant Expressions Macros
#define YARP_CONSTEXPR   constexpr
 Expands to constexpr if constant expressions are supported by the current c++ compiler and build flags combination, defined empty elsewhere. More...
 
Deleted Functions Macros
#define YARP_DELETED_FUNCTION   = delete
 Expands to = delete if deleted functions are supported by the the current c++ compiler and build flags combination, defined empty elsewhere. More...
 
Extern Templates Macros
#define YARP_EXTERN_TEMPLATE   extern
 Expands to exter if extern templates are supported by the the current c++ compiler and build flags combination, defined empty elsewhere. More...
 
Override Control Macros
#define YARP_FINAL   final
 Expands to the override control final keyword if this is supported by the current c++ compiler and build flags combination, defined empty elsewhere. More...
 
#define YARP_OVERRIDE   override
 Expands to the override control override keyword if this is supported by the current c++ compiler and build flags combination, defined empty elsewhere. More...
 
Exception Specifications Macros
#define YARP_NOEXCEPT   noexcept
 Expands to noexcept if exception specifications are supported by the current c++ compiler and build flags combination, defined empty elsewhere. More...
 
#define YARP_NOEXCEPT_EXPR(X)   noexcept(X)
 Expands to noexcept(X) if exception specifications are supported by the current c++ compiler and build flags combination, defined empty elsewhere. More...
 
Null Pointer Macros
#define YARP_NULLPTR   nullptr
 Expands to either the standard nullptr or to 0 elsewhere. More...
 
Static Assert Macros
#define YARP_STATIC_ASSERT(X)   static_assert(X, #X)
 Expands to static_assert(X, #X) if static asserts are supported by the current c++ compiler and build flags combination, to a compatibility implementation otherwise. More...
 
#define YARP_STATIC_ASSERT_MSG(X, MSG)   static_assert(X, MSG)
 Expands to static_assert(X, MSG) if static asserts are supported by the current c++ compiler and build flags combination, to a compatibility implementation otherwise. More...
 
Thread-Local Variables Macros
#define YARP_THREAD_LOCAL   thread_local
 Expands to either the standard thread_local attribute, to a compiler-specific decorator such as __thread used by GNU compilers, or defined empty if not supported by the current c++ compiler and build flags combination. More...
 

Macro Definition Documentation

◆ YARP_ALIGNAS

#define YARP_ALIGNAS (   X)    alignas(X)

Expands to the standard alignas decorator if supported, or a compiler-specific decorator such as __attribute__ ((__aligned__)) used by GNU compilers.

See also
YARP_COMPILER_CXX_ALIGNAS, YARP_ALIGNOF

Definition at line 2861 of file compiler.h.

◆ YARP_ALIGNOF

#define YARP_ALIGNOF (   X)    alignof(X)

Expands to the standard alignof decorator if supported, or a compiler-specific decorator such as __alignof__ used by GNU compilers.

See also
YARP_COMPILER_CXX_ALIGNOF, YARP_ALIGNAS

Definition at line 2872 of file compiler.h.

◆ YARP_COMPILER_CXX_AGGREGATE_DEFAULT_INITIALIZERS

#define YARP_COMPILER_CXX_AGGREGATE_DEFAULT_INITIALIZERS   1

1 if the current c++ compiler and build flags combination supports aggregate default initializers, as defined in N3605.

Definition at line 2785 of file compiler.h.

◆ YARP_COMPILER_CXX_ALIAS_TEMPLATES

#define YARP_COMPILER_CXX_ALIAS_TEMPLATES   1

1 if the current c++ compiler and build flags combination supports template aliases, as defined in N2258.

Definition at line 2786 of file compiler.h.

◆ YARP_COMPILER_CXX_ALIGNAS

#define YARP_COMPILER_CXX_ALIGNAS   1

1 if the current c++ compiler and build flags combination supports alignment control alignas, as defined in N2341.

Definition at line 2787 of file compiler.h.

◆ YARP_COMPILER_CXX_ALIGNOF

#define YARP_COMPILER_CXX_ALIGNOF   1

1 if the current c++ compiler and build flags combination supports alignment control alignof, as defined in N2341.

Definition at line 2788 of file compiler.h.

◆ YARP_COMPILER_CXX_ATTRIBUTE_DEPRECATED

#define YARP_COMPILER_CXX_ATTRIBUTE_DEPRECATED   1

1 if the current c++ compiler and build flags combination supports the [[deprecated]] attribute, as defined in N3760.

Definition at line 2790 of file compiler.h.

◆ YARP_COMPILER_CXX_ATTRIBUTES

#define YARP_COMPILER_CXX_ATTRIBUTES   1

1 if the current c++ compiler and build flags combination supports generic attributes, as defined in N2761.

Definition at line 2789 of file compiler.h.

◆ YARP_COMPILER_CXX_AUTO_TYPE

#define YARP_COMPILER_CXX_AUTO_TYPE   1

1 if the current c++ compiler and build flags combination supports automatic type deduction, as defined in N1984.

Definition at line 2791 of file compiler.h.

◆ YARP_COMPILER_CXX_BINARY_LITERALS

#define YARP_COMPILER_CXX_BINARY_LITERALS   1

1 if the current c++ compiler and build flags combination supports binary literals, as defined in N3472.

Definition at line 2792 of file compiler.h.

◆ YARP_COMPILER_CXX_CONSTEXPR

#define YARP_COMPILER_CXX_CONSTEXPR   1

1 if the current c++ compiler and build flags combination supports constant expressions, as defined in N2235.

Definition at line 2793 of file compiler.h.

◆ YARP_COMPILER_CXX_CONTEXTUAL_CONVERSIONS

#define YARP_COMPILER_CXX_CONTEXTUAL_CONVERSIONS   1

1 if the current c++ compiler and build flags combination supports contextual conversions, as defined in N3323.

Definition at line 2794 of file compiler.h.

◆ YARP_COMPILER_CXX_DECLTYPE

#define YARP_COMPILER_CXX_DECLTYPE   1

1 if the current c++ compiler and build flags combination supports decltype, as defined in N2343.

Definition at line 2795 of file compiler.h.

◆ YARP_COMPILER_CXX_DECLTYPE_AUTO

#define YARP_COMPILER_CXX_DECLTYPE_AUTO   1

1 if the current c++ compiler and build flags combination supports decltype(auto) semantics, as defined in N3638.

Definition at line 2796 of file compiler.h.

◆ YARP_COMPILER_CXX_DECLTYPE_INCOMPLETE_RETURN_TYPES

#define YARP_COMPILER_CXX_DECLTYPE_INCOMPLETE_RETURN_TYPES   1

1 if the current c++ compiler and build flags combination supports decltype on incomplete return types, as defined in N3276.

Definition at line 2797 of file compiler.h.

◆ YARP_COMPILER_CXX_DEFAULT_FUNCTION_TEMPLATE_ARGS

#define YARP_COMPILER_CXX_DEFAULT_FUNCTION_TEMPLATE_ARGS   1

1 if the current c++ compiler and build flags combination supports default template arguments for function templates, as defined in DR226.

Definition at line 2798 of file compiler.h.

◆ YARP_COMPILER_CXX_DEFAULTED_FUNCTIONS

#define YARP_COMPILER_CXX_DEFAULTED_FUNCTIONS   1

1 if the current c++ compiler and build flags combination supports defaulted functions, as defined in N2346.

See also
YARP_DEFAULTED_FUNCTION, YARP_COMPILER_CXX_DELETED_FUNCTIONS

Definition at line 2799 of file compiler.h.

◆ YARP_COMPILER_CXX_DEFAULTED_MOVE_INITIALIZERS

#define YARP_COMPILER_CXX_DEFAULTED_MOVE_INITIALIZERS   1

1 if the current c++ compiler and build flags combination supports defaulted move initializers, as defined in N3053.

Definition at line 2800 of file compiler.h.

◆ YARP_COMPILER_CXX_DELEGATING_CONSTRUCTORS

#define YARP_COMPILER_CXX_DELEGATING_CONSTRUCTORS   1

1 if the current c++ compiler and build flags combination supports delegating constructors, as defined in N1986.

Definition at line 2801 of file compiler.h.

◆ YARP_COMPILER_CXX_DELETED_FUNCTIONS

#define YARP_COMPILER_CXX_DELETED_FUNCTIONS   1

1 if the current c++ compiler and build flags combination supports deleted functions, as defined in N2346.

See also
YARP_DELETED_FUNCTION, YARP_COMPILER_CXX_DEFAULTED_FUNCTIONS

Definition at line 2802 of file compiler.h.

◆ YARP_COMPILER_CXX_DIGIT_SEPARATORS

#define YARP_COMPILER_CXX_DIGIT_SEPARATORS   1

1 if the current c++ compiler and build flags combination supports digit separators, as defined in N3781.

Definition at line 2803 of file compiler.h.

◆ YARP_COMPILER_CXX_ENUM_FORWARD_DECLARATIONS

#define YARP_COMPILER_CXX_ENUM_FORWARD_DECLARATIONS   1

1 if the current c++ compiler and build flags combination supports enum forward declarations, as defined in N2764.

Definition at line 2804 of file compiler.h.

◆ YARP_COMPILER_CXX_EXPLICIT_CONVERSIONS

#define YARP_COMPILER_CXX_EXPLICIT_CONVERSIONS   1

1 if the current c++ compiler and build flags combination supports explicit conversion operators, as defined in N2437.

Definition at line 2805 of file compiler.h.

◆ YARP_COMPILER_CXX_EXTENDED_FRIEND_DECLARATIONS

#define YARP_COMPILER_CXX_EXTENDED_FRIEND_DECLARATIONS   1

1 if the current c++ compiler and build flags combination supports extended friend declarations, as defined in N1791.

Definition at line 2806 of file compiler.h.

◆ YARP_COMPILER_CXX_EXTERN_TEMPLATES

#define YARP_COMPILER_CXX_EXTERN_TEMPLATES   1

1 if the current c++ compiler and build flags combination supports extern templates, as defined in N1987.

Definition at line 2807 of file compiler.h.

◆ YARP_COMPILER_CXX_FINAL

#define YARP_COMPILER_CXX_FINAL   1

1 if the current c++ compiler and build flags combination supports the override control final keyword, as defined in N2928, N3206 and N3272.

See also
YARP_FINAL, YARP_COMPILER_CXX_OVERRIDE

Definition at line 2808 of file compiler.h.

◆ YARP_COMPILER_CXX_FUNC_IDENTIFIER

#define YARP_COMPILER_CXX_FUNC_IDENTIFIER   1

1 if the current c++ compiler and build flags combination supports predefined __func__ identifier, as defined in N2340.

Definition at line 2809 of file compiler.h.

◆ YARP_COMPILER_CXX_GENERALIZED_INITIALIZERS

#define YARP_COMPILER_CXX_GENERALIZED_INITIALIZERS   1

1 if the current c++ compiler and build flags combination supports initializer lists, as defined in N2672.

Definition at line 2810 of file compiler.h.

◆ YARP_COMPILER_CXX_GENERIC_LAMBDAS

#define YARP_COMPILER_CXX_GENERIC_LAMBDAS   1

1 if the current c++ compiler and build flags combination supports generic lambdas, as defined in N3649.

Definition at line 2811 of file compiler.h.

◆ YARP_COMPILER_CXX_INHERITING_CONSTRUCTORS

#define YARP_COMPILER_CXX_INHERITING_CONSTRUCTORS   1

1 if the current c++ compiler and build flags combination supports inheriting constructors, as defined in N2540.

Definition at line 2812 of file compiler.h.

◆ YARP_COMPILER_CXX_INLINE_NAMESPACES

#define YARP_COMPILER_CXX_INLINE_NAMESPACES   1

1 if the current c++ compiler and build flags combination supports inline namespaces, as defined in N2535.

Definition at line 2813 of file compiler.h.

◆ YARP_COMPILER_CXX_LAMBDA_INIT_CAPTURES

#define YARP_COMPILER_CXX_LAMBDA_INIT_CAPTURES   1

1 if the current c++ compiler and build flags combination supports lambda init captures, as defined in N3648.

Definition at line 2815 of file compiler.h.

◆ YARP_COMPILER_CXX_LAMBDAS

#define YARP_COMPILER_CXX_LAMBDAS   1

1 if the current c++ compiler and build flags combination supports lambda functions, as defined in N2927.

Definition at line 2814 of file compiler.h.

◆ YARP_COMPILER_CXX_LOCAL_TYPE_TEMPLATE_ARGS

#define YARP_COMPILER_CXX_LOCAL_TYPE_TEMPLATE_ARGS   1

1 if the current c++ compiler and build flags combination supports local and unnamed types as template arguments, as defined in N2657.

Definition at line 2816 of file compiler.h.

◆ YARP_COMPILER_CXX_LONG_LONG_TYPE

#define YARP_COMPILER_CXX_LONG_LONG_TYPE   1

1 if the current c++ compiler and build flags combination supports long long type, as defined in N1811.

Definition at line 2817 of file compiler.h.

◆ YARP_COMPILER_CXX_NOEXCEPT

#define YARP_COMPILER_CXX_NOEXCEPT   1

1 if the current c++ compiler and build flags combination supports exception specifications, as defined in N3050.

See also
YARP_NOEXCEPT, YARP_NOEXCEPT_EXPR

Definition at line 2818 of file compiler.h.

◆ YARP_COMPILER_CXX_NONSTATIC_MEMBER_INIT

#define YARP_COMPILER_CXX_NONSTATIC_MEMBER_INIT   1

1 if the current c++ compiler and build flags combination supports non-static data member initialization, as defined in N2756.

Definition at line 2819 of file compiler.h.

◆ YARP_COMPILER_CXX_NULLPTR

#define YARP_COMPILER_CXX_NULLPTR   1

1 if the current c++ compiler and build flags combination supports null pointer, as defined in N2431.

Definition at line 2820 of file compiler.h.

◆ YARP_COMPILER_CXX_OVERRIDE

#define YARP_COMPILER_CXX_OVERRIDE   1

1 if the current c++ compiler and build flags combination supports the override control override keyword, as defined in N2928, N3206 and N3272.

See also
YARP_OVERRIDE, YARP_COMPILER_CXX_FINAL

Definition at line 2821 of file compiler.h.

◆ YARP_COMPILER_CXX_RANGE_FOR

#define YARP_COMPILER_CXX_RANGE_FOR   1

1 if the current c++ compiler and build flags combination supports range based for, as defined in N2930.

Definition at line 2822 of file compiler.h.

◆ YARP_COMPILER_CXX_RAW_STRING_LITERALS

#define YARP_COMPILER_CXX_RAW_STRING_LITERALS   1

1 if the current c++ compiler and build flags combination supports raw string literals, as defined in N2442.

Definition at line 2823 of file compiler.h.

◆ YARP_COMPILER_CXX_REFERENCE_QUALIFIED_FUNCTIONS

#define YARP_COMPILER_CXX_REFERENCE_QUALIFIED_FUNCTIONS   1

1 if the current c++ compiler and build flags combination supports reference qualified functions, as defined in N2439.

Definition at line 2824 of file compiler.h.

◆ YARP_COMPILER_CXX_RELAXED_CONSTEXPR

#define YARP_COMPILER_CXX_RELAXED_CONSTEXPR   1

1 if the current c++ compiler and build flags combination supports relaxed constexpr, as defined in N3652.

Definition at line 2825 of file compiler.h.

◆ YARP_COMPILER_CXX_RETURN_TYPE_DEDUCTION

#define YARP_COMPILER_CXX_RETURN_TYPE_DEDUCTION   1

1 if the current c++ compiler and build flags combination supports return type deduction on normal functions, as defined in N3386.

Definition at line 2826 of file compiler.h.

◆ YARP_COMPILER_CXX_RIGHT_ANGLE_BRACKETS

#define YARP_COMPILER_CXX_RIGHT_ANGLE_BRACKETS   1

1 if the current c++ compiler and build flags combination supports right angle bracket parsing, as defined in N1757.

Definition at line 2827 of file compiler.h.

◆ YARP_COMPILER_CXX_RVALUE_REFERENCES

#define YARP_COMPILER_CXX_RVALUE_REFERENCES   1

1 if the current c++ compiler and build flags combination supports r-value references, as defined in N2118.

Definition at line 2828 of file compiler.h.

◆ YARP_COMPILER_CXX_SIZEOF_MEMBER

#define YARP_COMPILER_CXX_SIZEOF_MEMBER   1

1 if the current c++ compiler and build flags combination supports size of non-static data members, as defined in N2253.

Definition at line 2829 of file compiler.h.

◆ YARP_COMPILER_CXX_STATIC_ASSERT

#define YARP_COMPILER_CXX_STATIC_ASSERT   1

1 if the current c++ compiler and build flags combination supports static asserts, as defined in N1720.

Definition at line 2830 of file compiler.h.

◆ YARP_COMPILER_CXX_STRONG_ENUMS

#define YARP_COMPILER_CXX_STRONG_ENUMS   1

1 if the current c++ compiler and build flags combination supports strongly typed enums, as defined in N2347.

Definition at line 2831 of file compiler.h.

◆ YARP_COMPILER_CXX_TEMPLATE_TEMPLATE_PARAMETERS

#define YARP_COMPILER_CXX_TEMPLATE_TEMPLATE_PARAMETERS   1

1 if the current c++ compiler and build flags combination supports template template parameters, as defined in ISO/IEC 14882:1998.

Definition at line 2832 of file compiler.h.

◆ YARP_COMPILER_CXX_THREAD_LOCAL

#define YARP_COMPILER_CXX_THREAD_LOCAL   1

1 if the current c++ compiler and build flags combination supports thread-local variables, as defined in N2659.

Definition at line 2833 of file compiler.h.

◆ YARP_COMPILER_CXX_TRAILING_RETURN_TYPES

#define YARP_COMPILER_CXX_TRAILING_RETURN_TYPES   1

1 if the current c++ compiler and build flags combination supports automatic function return type, as defined in N2541.

Definition at line 2834 of file compiler.h.

◆ YARP_COMPILER_CXX_UNICODE_LITERALS

#define YARP_COMPILER_CXX_UNICODE_LITERALS   1

1 if the current c++ compiler and build flags combination supports unicode string literals, as defined in N2443.

Definition at line 2835 of file compiler.h.

◆ YARP_COMPILER_CXX_UNIFORM_INITIALIZATION

#define YARP_COMPILER_CXX_UNIFORM_INITIALIZATION   1

1 if the current c++ compiler and build flags combination supports uniform initialization, as defined in N2640.

Definition at line 2836 of file compiler.h.

◆ YARP_COMPILER_CXX_UNRESTRICTED_UNIONS

#define YARP_COMPILER_CXX_UNRESTRICTED_UNIONS   1

1 if the current c++ compiler and build flags combination supports uniform initialization, as defined in N2544.

Definition at line 2837 of file compiler.h.

◆ YARP_COMPILER_CXX_USER_LITERALS

#define YARP_COMPILER_CXX_USER_LITERALS   1

1 if the current c++ compiler and build flags combination supports user-defined literals, as defined in N2765.

Definition at line 2838 of file compiler.h.

◆ YARP_COMPILER_CXX_VARIABLE_TEMPLATES

#define YARP_COMPILER_CXX_VARIABLE_TEMPLATES   1

1 if the current c++ compiler and build flags combination supports user-defined literals, as defined in N3651.

Definition at line 2839 of file compiler.h.

◆ YARP_COMPILER_CXX_VARIADIC_MACROS

#define YARP_COMPILER_CXX_VARIADIC_MACROS   1

1 if the current c++ compiler and build flags combination supports variadic macros, as defined in N1653.

Definition at line 2840 of file compiler.h.

◆ YARP_COMPILER_CXX_VARIADIC_TEMPLATES

#define YARP_COMPILER_CXX_VARIADIC_TEMPLATES   1

1 if the current c++ compiler and build flags combination supports variadic templates, as defined in N2242.

Definition at line 2841 of file compiler.h.

◆ YARP_COMPILER_IS_ADSP

#define YARP_COMPILER_IS_ADSP   0

Definition at line 2771 of file compiler.h.

◆ YARP_COMPILER_IS_AppleClang

#define YARP_COMPILER_IS_AppleClang   0

Definition at line 2767 of file compiler.h.

◆ YARP_COMPILER_IS_ARMCC

#define YARP_COMPILER_IS_ARMCC   0

Definition at line 2773 of file compiler.h.

◆ YARP_COMPILER_IS_Borland

#define YARP_COMPILER_IS_Borland   0

Definition at line 2753 of file compiler.h.

◆ YARP_COMPILER_IS_Clang

#define YARP_COMPILER_IS_Clang   0

Definition at line 2768 of file compiler.h.

◆ YARP_COMPILER_IS_Comeau

#define YARP_COMPILER_IS_Comeau   0

Definition at line 2749 of file compiler.h.

◆ YARP_COMPILER_IS_Compaq

#define YARP_COMPILER_IS_Compaq   0

Definition at line 2758 of file compiler.h.

◆ YARP_COMPILER_IS_Cray

#define YARP_COMPILER_IS_Cray   0

Definition at line 2763 of file compiler.h.

◆ YARP_COMPILER_IS_Doxygen

#define YARP_COMPILER_IS_Doxygen   1

Definition at line 2775 of file compiler.h.

◆ YARP_COMPILER_IS_Embarcadero

#define YARP_COMPILER_IS_Embarcadero   0

Definition at line 2752 of file compiler.h.

◆ YARP_COMPILER_IS_Fujitsu

#define YARP_COMPILER_IS_Fujitsu   0

Definition at line 2765 of file compiler.h.

◆ YARP_COMPILER_IS_GNU

#define YARP_COMPILER_IS_GNU   0

Definition at line 2769 of file compiler.h.

◆ YARP_COMPILER_IS_HP

#define YARP_COMPILER_IS_HP   0

Definition at line 2757 of file compiler.h.

◆ YARP_COMPILER_IS_IAR

#define YARP_COMPILER_IS_IAR   0

Definition at line 2772 of file compiler.h.

◆ YARP_COMPILER_IS_Intel

#define YARP_COMPILER_IS_Intel   0

Definition at line 2750 of file compiler.h.

◆ YARP_COMPILER_IS_MIPSpro

#define YARP_COMPILER_IS_MIPSpro   0

Definition at line 2774 of file compiler.h.

◆ YARP_COMPILER_IS_MSVC

#define YARP_COMPILER_IS_MSVC   0

Definition at line 2770 of file compiler.h.

◆ YARP_COMPILER_IS_OpenWatcom

#define YARP_COMPILER_IS_OpenWatcom   0

Definition at line 2755 of file compiler.h.

◆ YARP_COMPILER_IS_PathScale

#define YARP_COMPILER_IS_PathScale   0

Definition at line 2751 of file compiler.h.

◆ YARP_COMPILER_IS_PGI

#define YARP_COMPILER_IS_PGI   0

Definition at line 2762 of file compiler.h.

◆ YARP_COMPILER_IS_SCO

#define YARP_COMPILER_IS_SCO   0

Definition at line 2766 of file compiler.h.

◆ YARP_COMPILER_IS_SunPro

#define YARP_COMPILER_IS_SunPro   0

Definition at line 2756 of file compiler.h.

◆ YARP_COMPILER_IS_Swig

#define YARP_COMPILER_IS_Swig   0

Definition at line 2776 of file compiler.h.

◆ YARP_COMPILER_IS_TI

#define YARP_COMPILER_IS_TI   0

Definition at line 2764 of file compiler.h.

◆ YARP_COMPILER_IS_VisualAge

#define YARP_COMPILER_IS_VisualAge   0

Definition at line 2761 of file compiler.h.

◆ YARP_COMPILER_IS_Watcom

#define YARP_COMPILER_IS_Watcom   0

Definition at line 2754 of file compiler.h.

◆ YARP_COMPILER_IS_XL

#define YARP_COMPILER_IS_XL   0

Definition at line 2760 of file compiler.h.

◆ YARP_COMPILER_IS_zOS

#define YARP_COMPILER_IS_zOS   0

Definition at line 2759 of file compiler.h.

◆ YARP_COMPILER_VERSION_MAJOR

#define YARP_COMPILER_VERSION_MAJOR   DOXYGEN_MAJOR_VERSION

Current compiler major version number, if defined.

See also
YARP_COMPILER_VERSION_MINOR, YARP_COMPILER_VERSION_PATCH

Definition at line 2778 of file compiler.h.

◆ YARP_COMPILER_VERSION_MINOR

#define YARP_COMPILER_VERSION_MINOR   DOXYGEN_MINOR_VERSION

Current compiler minor version number, if defined.

See also
YARP_COMPILER_VERSION_MAJOR, YARP_COMPILER_VERSION_PATCH

Definition at line 2779 of file compiler.h.

◆ YARP_COMPILER_VERSION_PATCH

#define YARP_COMPILER_VERSION_PATCH   DOXYGEN_PATCH_VERSION

Current compiler patch version number, if defined.

See also
YARP_COMPILER_VERSION_MAJOR, YARP_COMPILER_VERSION_MINOR

Definition at line 2780 of file compiler.h.

◆ YARP_CONSTEXPR

#define YARP_CONSTEXPR   constexpr

Expands to constexpr if constant expressions are supported by the current c++ compiler and build flags combination, defined empty elsewhere.

See also
YARP_COMPILER_CXX_CONSTEXPR

Definition at line 2898 of file compiler.h.

◆ YARP_DELETED_FUNCTION

#define YARP_DELETED_FUNCTION   = delete

Expands to = delete if deleted functions are supported by the the current c++ compiler and build flags combination, defined empty elsewhere.

See also
YARP_COMPILER_CXX_DELETED_FUNCTIONS

Definition at line 2905 of file compiler.h.

◆ YARP_DEPRECATED

#define YARP_DEPRECATED   [[deprecated]]

Expands to either the standard [[deprecated]] attribute or a compiler-specific decorator such as __attribute__((__deprecated__)) used by GNU compilers.

See also
YARP_COMPILER_CXX_ATTRIBUTE_DEPRECATED YARP_DEPRECATED_MSG

Definition at line 2882 of file compiler.h.

◆ YARP_DEPRECATED_MSG

#define YARP_DEPRECATED_MSG (   MSG)    [[deprecated(MSG)]]

Expands to either the standard [[deprecated]] attribute or a compiler-specific decorator such as __attribute__((__deprecated__)) used by GNU compilers.

See also
YARP_COMPILER_CXX_ATTRIBUTE_DEPRECATED YARP_DEPRECATED

Definition at line 2883 of file compiler.h.

◆ YARP_EXTERN_TEMPLATE

#define YARP_EXTERN_TEMPLATE   extern

Expands to exter if extern templates are supported by the the current c++ compiler and build flags combination, defined empty elsewhere.

See also
YARP_COMPILER_CXX_EXTERN_TEMPLATES

Definition at line 2912 of file compiler.h.

◆ YARP_FINAL

#define YARP_FINAL   final

Expands to the override control final keyword if this is supported by the current c++ compiler and build flags combination, defined empty elsewhere.

See also
YARP_COMPILER_CXX_FINAL, YARP_OVERRIDE

Definition at line 2919 of file compiler.h.

◆ YARP_NOEXCEPT

#define YARP_NOEXCEPT   noexcept

Expands to noexcept if exception specifications are supported by the current c++ compiler and build flags combination, defined empty elsewhere.

See also
YARP_COMPILER_CXX_NOEXCEPT, YARP_NOEXCEPT_EXPR

Definition at line 2926 of file compiler.h.

◆ YARP_NOEXCEPT_EXPR

#define YARP_NOEXCEPT_EXPR (   X)    noexcept(X)

Expands to noexcept(X) if exception specifications are supported by the current c++ compiler and build flags combination, defined empty elsewhere.

See also
YARP_COMPILER_CXX_NOEXCEPT, YARP_NOEXCEPT

Definition at line 2927 of file compiler.h.

◆ YARP_NULLPTR

#define YARP_NULLPTR   nullptr

Expands to either the standard nullptr or to 0 elsewhere.

See also
YARP_COMPILER_CXX_NULLPTR

Definition at line 2935 of file compiler.h.

◆ YARP_OVERRIDE

#define YARP_OVERRIDE   override

Expands to the override control override keyword if this is supported by the current c++ compiler and build flags combination, defined empty elsewhere.

See also
YARP_COMPILER_CXX_OVERRIDE, YARP_FINAL

Definition at line 2942 of file compiler.h.

◆ YARP_STATIC_ASSERT

#define YARP_STATIC_ASSERT (   X)    static_assert(X, #X)

Expands to static_assert(X, #X) if static asserts are supported by the current c++ compiler and build flags combination, to a compatibility implementation otherwise.

Warning
This macro cannot be used everywhere like a static_assert, see CMake#16185). Moreover, in order to be portable, if the X argument is an expression, it must be enclosed in parenthesis. For example:
See also
YARP_COMPILER_CXX_STATIC_ASSERT YARP_STATIC_ASSERT_MSG

Definition at line 2948 of file compiler.h.

◆ YARP_STATIC_ASSERT_MSG

#define YARP_STATIC_ASSERT_MSG (   X,
  MSG 
)    static_assert(X, MSG)

Expands to static_assert(X, MSG) if static asserts are supported by the current c++ compiler and build flags combination, to a compatibility implementation otherwise.

Warning
This macro cannot be used everywhere like a static_assert, see CMake#16185). Moreover, in order to be portable, if the X argument is an expression, it must be enclosed in parenthesis. For example:
YARP_STATIC_ASSERT_MSG((42 < 0), "This is wrong");
See also
YARP_COMPILER_CXX_STATIC_ASSERT YARP_STATIC_ASSERT

Definition at line 2949 of file compiler.h.

◆ YARP_THREAD_LOCAL

#define YARP_THREAD_LOCAL   thread_local

Expands to either the standard thread_local attribute, to a compiler-specific decorator such as __thread used by GNU compilers, or defined empty if not supported by the current c++ compiler and build flags combination.

See also
YARP_COMPILER_CXX_THREAD_LOCAL

Definition at line 2961 of file compiler.h.

YARP_STATIC_ASSERT_MSG
#define YARP_STATIC_ASSERT_MSG(X, MSG)
Expands to static_assert(X, MSG) if static asserts are supported by the current c++ compiler and buil...
Definition: compiler.h:2949
YARP_STATIC_ASSERT
#define YARP_STATIC_ASSERT(X)
Expands to static_assert(X, #X) if static asserts are supported by the current c++ compiler and build...
Definition: compiler.h:2948