YARP  2.3.68+272-20170522.1+git50f0ae7
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_GNU   1
 
#define YARP_COMPILER_VERSION_MAJOR   (__GNUC__)
 Current compiler major version number, if defined. More...
 
#define YARP_COMPILER_VERSION_MINOR   (__GNUC_MINOR__)
 Current compiler minor version number, if defined. More...
 
#define YARP_COMPILER_VERSION_PATCH   (__GNUC_PATCHLEVEL__)
 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   0
 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   0
 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   0
 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   0
 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   0
 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   0
 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   0
 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   0
 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   0
 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   0
 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   0
 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   __attribute__((__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)   __attribute__((__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_loca 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 2439 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 2450 of file compiler.h.

◆ YARP_COMPILER_CXX_AGGREGATE_DEFAULT_INITIALIZERS

#define YARP_COMPILER_CXX_AGGREGATE_DEFAULT_INITIALIZERS   0

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

Definition at line 1032 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 1036 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 1042 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 1048 of file compiler.h.

◆ YARP_COMPILER_CXX_ATTRIBUTE_DEPRECATED

#define YARP_COMPILER_CXX_ATTRIBUTE_DEPRECATED   0

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

Definition at line 1062 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 1054 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 1066 of file compiler.h.

◆ YARP_COMPILER_CXX_BINARY_LITERALS

#define YARP_COMPILER_CXX_BINARY_LITERALS   0

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

Definition at line 1074 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 1078 of file compiler.h.

◆ YARP_COMPILER_CXX_CONTEXTUAL_CONVERSIONS

#define YARP_COMPILER_CXX_CONTEXTUAL_CONVERSIONS   0

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

Definition at line 1086 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 1090 of file compiler.h.

◆ YARP_COMPILER_CXX_DECLTYPE_AUTO

#define YARP_COMPILER_CXX_DECLTYPE_AUTO   0

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

Definition at line 1098 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 1102 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 1108 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 1114 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 1120 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 1126 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 1132 of file compiler.h.

◆ YARP_COMPILER_CXX_DIGIT_SEPARATORS

#define YARP_COMPILER_CXX_DIGIT_SEPARATORS   0

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

Definition at line 1140 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 1144 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 1150 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 1156 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 1162 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 1168 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 1174 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 1180 of file compiler.h.

◆ YARP_COMPILER_CXX_GENERIC_LAMBDAS

#define YARP_COMPILER_CXX_GENERIC_LAMBDAS   0

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

Definition at line 1188 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 1192 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 1198 of file compiler.h.

◆ YARP_COMPILER_CXX_LAMBDA_INIT_CAPTURES

#define YARP_COMPILER_CXX_LAMBDA_INIT_CAPTURES   0

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

Definition at line 1212 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 1204 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 1216 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 1222 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 1228 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 1234 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 1240 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 1246 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 1252 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 1258 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 1264 of file compiler.h.

◆ YARP_COMPILER_CXX_RELAXED_CONSTEXPR

#define YARP_COMPILER_CXX_RELAXED_CONSTEXPR   0

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

Definition at line 1272 of file compiler.h.

◆ YARP_COMPILER_CXX_RETURN_TYPE_DEDUCTION

#define YARP_COMPILER_CXX_RETURN_TYPE_DEDUCTION   0

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

Definition at line 1278 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 1282 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 1288 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 1294 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 1300 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 1306 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 1312 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 1318 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 1324 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 1330 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 1336 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 1342 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 1348 of file compiler.h.

◆ YARP_COMPILER_CXX_VARIABLE_TEMPLATES

#define YARP_COMPILER_CXX_VARIABLE_TEMPLATES   0

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

Definition at line 1356 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 1360 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 1366 of file compiler.h.

◆ YARP_COMPILER_IS_ADSP

#define YARP_COMPILER_IS_ADSP   0

Definition at line 903 of file compiler.h.

◆ YARP_COMPILER_IS_AppleClang

#define YARP_COMPILER_IS_AppleClang   0

Definition at line 899 of file compiler.h.

◆ YARP_COMPILER_IS_ARMCC

#define YARP_COMPILER_IS_ARMCC   0

Definition at line 905 of file compiler.h.

◆ YARP_COMPILER_IS_Borland

#define YARP_COMPILER_IS_Borland   0

Definition at line 885 of file compiler.h.

◆ YARP_COMPILER_IS_Clang

#define YARP_COMPILER_IS_Clang   0

Definition at line 900 of file compiler.h.

◆ YARP_COMPILER_IS_Comeau

#define YARP_COMPILER_IS_Comeau   0

Definition at line 881 of file compiler.h.

◆ YARP_COMPILER_IS_Compaq

#define YARP_COMPILER_IS_Compaq   0

Definition at line 890 of file compiler.h.

◆ YARP_COMPILER_IS_Cray

#define YARP_COMPILER_IS_Cray   0

Definition at line 895 of file compiler.h.

◆ YARP_COMPILER_IS_Embarcadero

#define YARP_COMPILER_IS_Embarcadero   0

Definition at line 884 of file compiler.h.

◆ YARP_COMPILER_IS_Fujitsu

#define YARP_COMPILER_IS_Fujitsu   0

Definition at line 897 of file compiler.h.

◆ YARP_COMPILER_IS_GNU [1/2]

#define YARP_COMPILER_IS_GNU   0

Definition at line 990 of file compiler.h.

◆ YARP_COMPILER_IS_GNU [2/2]

#define YARP_COMPILER_IS_GNU   1

Definition at line 990 of file compiler.h.

◆ YARP_COMPILER_IS_HP

#define YARP_COMPILER_IS_HP   0

Definition at line 889 of file compiler.h.

◆ YARP_COMPILER_IS_IAR

#define YARP_COMPILER_IS_IAR   0

Definition at line 904 of file compiler.h.

◆ YARP_COMPILER_IS_Intel

#define YARP_COMPILER_IS_Intel   0

Definition at line 882 of file compiler.h.

◆ YARP_COMPILER_IS_MIPSpro

#define YARP_COMPILER_IS_MIPSpro   0

Definition at line 906 of file compiler.h.

◆ YARP_COMPILER_IS_MSVC

#define YARP_COMPILER_IS_MSVC   0

Definition at line 902 of file compiler.h.

◆ YARP_COMPILER_IS_OpenWatcom

#define YARP_COMPILER_IS_OpenWatcom   0

Definition at line 887 of file compiler.h.

◆ YARP_COMPILER_IS_PathScale

#define YARP_COMPILER_IS_PathScale   0

Definition at line 883 of file compiler.h.

◆ YARP_COMPILER_IS_PGI

#define YARP_COMPILER_IS_PGI   0

Definition at line 894 of file compiler.h.

◆ YARP_COMPILER_IS_SCO

#define YARP_COMPILER_IS_SCO   0

Definition at line 898 of file compiler.h.

◆ YARP_COMPILER_IS_SunPro

#define YARP_COMPILER_IS_SunPro   0

Definition at line 888 of file compiler.h.

◆ YARP_COMPILER_IS_TI

#define YARP_COMPILER_IS_TI   0

Definition at line 896 of file compiler.h.

◆ YARP_COMPILER_IS_VisualAge

#define YARP_COMPILER_IS_VisualAge   0

Definition at line 893 of file compiler.h.

◆ YARP_COMPILER_IS_Watcom

#define YARP_COMPILER_IS_Watcom   0

Definition at line 886 of file compiler.h.

◆ YARP_COMPILER_IS_XL

#define YARP_COMPILER_IS_XL   0

Definition at line 892 of file compiler.h.

◆ YARP_COMPILER_IS_zOS

#define YARP_COMPILER_IS_zOS   0

Definition at line 891 of file compiler.h.

◆ YARP_COMPILER_VERSION_MAJOR

#define YARP_COMPILER_VERSION_MAJOR   (__GNUC__)

Current compiler major version number, if defined.

See also
YARP_COMPILER_VERSION_MINOR, YARP_COMPILER_VERSION_PATCH

Definition at line 1021 of file compiler.h.

◆ YARP_COMPILER_VERSION_MINOR

#define YARP_COMPILER_VERSION_MINOR   (__GNUC_MINOR__)

Current compiler minor version number, if defined.

See also
YARP_COMPILER_VERSION_MAJOR, YARP_COMPILER_VERSION_PATCH

Definition at line 1023 of file compiler.h.

◆ YARP_COMPILER_VERSION_PATCH

#define YARP_COMPILER_VERSION_PATCH   (__GNUC_PATCHLEVEL__)

Current compiler patch version number, if defined.

See also
YARP_COMPILER_VERSION_MAJOR, YARP_COMPILER_VERSION_MINOR

Definition at line 1026 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 2476 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 2483 of file compiler.h.

◆ YARP_DEPRECATED

#define YARP_DEPRECATED   __attribute__((__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 2463 of file compiler.h.

◆ YARP_DEPRECATED_MSG

#define YARP_DEPRECATED_MSG (   MSG)    __attribute__((__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 2464 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 2490 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 2497 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 2504 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 2505 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 2513 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 2520 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 2526 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 2527 of file compiler.h.

◆ YARP_THREAD_LOCAL

#define YARP_THREAD_LOCAL   thread_local

Expands to either the standard thread_loca 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 2537 of file compiler.h.