YARP
Yet Another Robot Platform
 
Loading...
Searching...
No Matches
compiler.h
Go to the documentation of this file.
1
2// This is a generated file. Do not edit!
3
4#ifndef YARP_COMPILER_DETECTION_H
5#define YARP_COMPILER_DETECTION_H
6
7// BEGIN compiler.dox.in
8
9/*
10 * SPDX-FileCopyrightText: 2006-2021 Istituto Italiano di Tecnologia (IIT)
11 * SPDX-License-Identifier: BSD-3-Clause
12 */
13
14// This file is generated by the WriteCompilerDetectionHeader CMake module,
15// including consent from the following files:
16// * compiler.dox.in
17// * compiler.prolog.in
18// * <content generated by write_compiler_detection_header>
19// * compiler.epilog.swig.in
20// * compiler.epilog.doxygen.in
21// * compiler.epilog.in
22
899// END compiler.dox.in
900
901// BEGIN compiler.prolog.in
902
903// In order to allow swig and doxygen pre-processors to parse the macros defined
904// in this file properly, it is necessary to bypass the content generated by
905// write_compiler_detection_header
906#if !defined(SWIG) && !defined(DOXYGEN)
907
908# ifdef __cplusplus
909# define YARP_COMPILER_IS_Doxygen 0
910# define YARP_COMPILER_IS_Swig 0
911# endif // __cplusplus
912
913// END compiler.prolog.in
914
915// BEGIN <content generated by write_compiler_detection_header>
916
917#ifdef __cplusplus
918# define YARP_COMPILER_IS_Comeau 0
919# define YARP_COMPILER_IS_Intel 0
920# define YARP_COMPILER_IS_IntelLLVM 0
921# define YARP_COMPILER_IS_PathScale 0
922# define YARP_COMPILER_IS_Embarcadero 0
923# define YARP_COMPILER_IS_Borland 0
924# define YARP_COMPILER_IS_Watcom 0
925# define YARP_COMPILER_IS_OpenWatcom 0
926# define YARP_COMPILER_IS_SunPro 0
927# define YARP_COMPILER_IS_HP 0
928# define YARP_COMPILER_IS_Compaq 0
929# define YARP_COMPILER_IS_zOS 0
930# define YARP_COMPILER_IS_XLClang 0
931# define YARP_COMPILER_IS_XL 0
932# define YARP_COMPILER_IS_VisualAge 0
933# define YARP_COMPILER_IS_NVHPC 0
934# define YARP_COMPILER_IS_PGI 0
935# define YARP_COMPILER_IS_Cray 0
936# define YARP_COMPILER_IS_TI 0
937# define YARP_COMPILER_IS_FujitsuClang 0
938# define YARP_COMPILER_IS_Fujitsu 0
939# define YARP_COMPILER_IS_GHS 0
940# define YARP_COMPILER_IS_SCO 0
941# define YARP_COMPILER_IS_ARMCC 0
942# define YARP_COMPILER_IS_AppleClang 0
943# define YARP_COMPILER_IS_ARMClang 0
944# define YARP_COMPILER_IS_Clang 0
945# define YARP_COMPILER_IS_GNU 0
946# define YARP_COMPILER_IS_MSVC 0
947# define YARP_COMPILER_IS_ADSP 0
948# define YARP_COMPILER_IS_IAR 0
949# define YARP_COMPILER_IS_MIPSpro 0
950
951#if defined(__COMO__)
952# undef YARP_COMPILER_IS_Comeau
953# define YARP_COMPILER_IS_Comeau 1
954
955#elif defined(__INTEL_COMPILER) || defined(__ICC)
956# undef YARP_COMPILER_IS_Intel
957# define YARP_COMPILER_IS_Intel 1
958
959#elif (defined(__clang__) && defined(__INTEL_CLANG_COMPILER)) || defined(__INTEL_LLVM_COMPILER)
960# undef YARP_COMPILER_IS_IntelLLVM
961# define YARP_COMPILER_IS_IntelLLVM 1
962
963#elif defined(__PATHCC__)
964# undef YARP_COMPILER_IS_PathScale
965# define YARP_COMPILER_IS_PathScale 1
966
967#elif defined(__BORLANDC__) && defined(__CODEGEARC_VERSION__)
968# undef YARP_COMPILER_IS_Embarcadero
969# define YARP_COMPILER_IS_Embarcadero 1
970
971#elif defined(__BORLANDC__)
972# undef YARP_COMPILER_IS_Borland
973# define YARP_COMPILER_IS_Borland 1
974
975#elif defined(__WATCOMC__) && __WATCOMC__ < 1200
976# undef YARP_COMPILER_IS_Watcom
977# define YARP_COMPILER_IS_Watcom 1
978
979#elif defined(__WATCOMC__)
980# undef YARP_COMPILER_IS_OpenWatcom
981# define YARP_COMPILER_IS_OpenWatcom 1
982
983#elif defined(__SUNPRO_CC)
984# undef YARP_COMPILER_IS_SunPro
985# define YARP_COMPILER_IS_SunPro 1
986
987#elif defined(__HP_aCC)
988# undef YARP_COMPILER_IS_HP
989# define YARP_COMPILER_IS_HP 1
990
991#elif defined(__DECCXX)
992# undef YARP_COMPILER_IS_Compaq
993# define YARP_COMPILER_IS_Compaq 1
994
995#elif defined(__IBMCPP__) && defined(__COMPILER_VER__)
996# undef YARP_COMPILER_IS_zOS
997# define YARP_COMPILER_IS_zOS 1
998
999#elif defined(__ibmxl__) && defined(__clang__)
1000# undef YARP_COMPILER_IS_XLClang
1001# define YARP_COMPILER_IS_XLClang 1
1002
1003#elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ >= 800
1004# undef YARP_COMPILER_IS_XL
1005# define YARP_COMPILER_IS_XL 1
1006
1007#elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ < 800
1008# undef YARP_COMPILER_IS_VisualAge
1009# define YARP_COMPILER_IS_VisualAge 1
1010
1011#elif defined(__NVCOMPILER)
1012# undef YARP_COMPILER_IS_NVHPC
1013# define YARP_COMPILER_IS_NVHPC 1
1014
1015#elif defined(__PGI)
1016# undef YARP_COMPILER_IS_PGI
1017# define YARP_COMPILER_IS_PGI 1
1018
1019#elif defined(_CRAYC)
1020# undef YARP_COMPILER_IS_Cray
1021# define YARP_COMPILER_IS_Cray 1
1022
1023#elif defined(__TI_COMPILER_VERSION__)
1024# undef YARP_COMPILER_IS_TI
1025# define YARP_COMPILER_IS_TI 1
1026
1027#elif defined(__CLANG_FUJITSU)
1028# undef YARP_COMPILER_IS_FujitsuClang
1029# define YARP_COMPILER_IS_FujitsuClang 1
1030
1031#elif defined(__FUJITSU)
1032# undef YARP_COMPILER_IS_Fujitsu
1033# define YARP_COMPILER_IS_Fujitsu 1
1034
1035#elif defined(__ghs__)
1036# undef YARP_COMPILER_IS_GHS
1037# define YARP_COMPILER_IS_GHS 1
1038
1039#elif defined(__SCO_VERSION__)
1040# undef YARP_COMPILER_IS_SCO
1041# define YARP_COMPILER_IS_SCO 1
1042
1043#elif defined(__ARMCC_VERSION) && !defined(__clang__)
1044# undef YARP_COMPILER_IS_ARMCC
1045# define YARP_COMPILER_IS_ARMCC 1
1046
1047#elif defined(__clang__) && defined(__apple_build_version__)
1048# undef YARP_COMPILER_IS_AppleClang
1049# define YARP_COMPILER_IS_AppleClang 1
1050
1051#elif defined(__clang__) && defined(__ARMCOMPILER_VERSION)
1052# undef YARP_COMPILER_IS_ARMClang
1053# define YARP_COMPILER_IS_ARMClang 1
1054
1055#elif defined(__clang__)
1056# undef YARP_COMPILER_IS_Clang
1057# define YARP_COMPILER_IS_Clang 1
1058
1059#elif defined(__GNUC__) || defined(__GNUG__)
1060# undef YARP_COMPILER_IS_GNU
1061# define YARP_COMPILER_IS_GNU 1
1062
1063#elif defined(_MSC_VER)
1064# undef YARP_COMPILER_IS_MSVC
1065# define YARP_COMPILER_IS_MSVC 1
1066
1067#elif defined(__VISUALDSPVERSION__) || defined(__ADSPBLACKFIN__) || defined(__ADSPTS__) || defined(__ADSP21000__)
1068# undef YARP_COMPILER_IS_ADSP
1069# define YARP_COMPILER_IS_ADSP 1
1070
1071#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC)
1072# undef YARP_COMPILER_IS_IAR
1073# define YARP_COMPILER_IS_IAR 1
1074
1075
1076#endif
1077
1078# if YARP_COMPILER_IS_GNU
1079
1080# if !((__GNUC__ * 100 + __GNUC_MINOR__) >= 404)
1081# error Unsupported compiler version
1082# endif
1083
1084# if defined(__GNUC__)
1085# define YARP_COMPILER_VERSION_MAJOR (__GNUC__)
1086# else
1087# define YARP_COMPILER_VERSION_MAJOR (__GNUG__)
1088# endif
1089# if defined(__GNUC_MINOR__)
1090# define YARP_COMPILER_VERSION_MINOR (__GNUC_MINOR__)
1091# endif
1092# if defined(__GNUC_PATCHLEVEL__)
1093# define YARP_COMPILER_VERSION_PATCH (__GNUC_PATCHLEVEL__)
1094# endif
1095
1096# if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && __cplusplus
1097# define YARP_COMPILER_CXX_TEMPLATE_TEMPLATE_PARAMETERS 1
1098# else
1099# define YARP_COMPILER_CXX_TEMPLATE_TEMPLATE_PARAMETERS 0
1100# endif
1101
1102# if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L
1103# define YARP_COMPILER_CXX_ALIAS_TEMPLATES 1
1104# else
1105# define YARP_COMPILER_CXX_ALIAS_TEMPLATES 0
1106# endif
1107
1108# if (__GNUC__ * 100 + __GNUC_MINOR__) >= 408 && __cplusplus >= 201103L
1109# define YARP_COMPILER_CXX_ALIGNAS 1
1110# else
1111# define YARP_COMPILER_CXX_ALIGNAS 0
1112# endif
1113
1114# if (__GNUC__ * 100 + __GNUC_MINOR__) >= 408 && __cplusplus >= 201103L
1115# define YARP_COMPILER_CXX_ALIGNOF 1
1116# else
1117# define YARP_COMPILER_CXX_ALIGNOF 0
1118# endif
1119
1120# if (__GNUC__ * 100 + __GNUC_MINOR__) >= 408 && __cplusplus >= 201103L
1121# define YARP_COMPILER_CXX_ATTRIBUTES 1
1122# else
1123# define YARP_COMPILER_CXX_ATTRIBUTES 0
1124# endif
1125
1126# if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
1127# define YARP_COMPILER_CXX_AUTO_TYPE 1
1128# else
1129# define YARP_COMPILER_CXX_AUTO_TYPE 0
1130# endif
1131
1132# if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
1133# define YARP_COMPILER_CXX_CONSTEXPR 1
1134# else
1135# define YARP_COMPILER_CXX_CONSTEXPR 0
1136# endif
1137
1138# if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
1139# define YARP_COMPILER_CXX_DECLTYPE 1
1140# else
1141# define YARP_COMPILER_CXX_DECLTYPE 0
1142# endif
1143
1144# if ((__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__) >= 40801) && __cplusplus >= 201103L
1145# define YARP_COMPILER_CXX_DECLTYPE_INCOMPLETE_RETURN_TYPES 1
1146# else
1147# define YARP_COMPILER_CXX_DECLTYPE_INCOMPLETE_RETURN_TYPES 0
1148# endif
1149
1150# if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
1151# define YARP_COMPILER_CXX_DEFAULT_FUNCTION_TEMPLATE_ARGS 1
1152# else
1153# define YARP_COMPILER_CXX_DEFAULT_FUNCTION_TEMPLATE_ARGS 0
1154# endif
1155
1156# if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
1157# define YARP_COMPILER_CXX_DEFAULTED_FUNCTIONS 1
1158# else
1159# define YARP_COMPILER_CXX_DEFAULTED_FUNCTIONS 0
1160# endif
1161
1162# if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
1163# define YARP_COMPILER_CXX_DEFAULTED_MOVE_INITIALIZERS 1
1164# else
1165# define YARP_COMPILER_CXX_DEFAULTED_MOVE_INITIALIZERS 0
1166# endif
1167
1168# if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L
1169# define YARP_COMPILER_CXX_DELEGATING_CONSTRUCTORS 1
1170# else
1171# define YARP_COMPILER_CXX_DELEGATING_CONSTRUCTORS 0
1172# endif
1173
1174# if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
1175# define YARP_COMPILER_CXX_DELETED_FUNCTIONS 1
1176# else
1177# define YARP_COMPILER_CXX_DELETED_FUNCTIONS 0
1178# endif
1179
1180# if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
1181# define YARP_COMPILER_CXX_ENUM_FORWARD_DECLARATIONS 1
1182# else
1183# define YARP_COMPILER_CXX_ENUM_FORWARD_DECLARATIONS 0
1184# endif
1185
1186# if (__GNUC__ * 100 + __GNUC_MINOR__) >= 405 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
1187# define YARP_COMPILER_CXX_EXPLICIT_CONVERSIONS 1
1188# else
1189# define YARP_COMPILER_CXX_EXPLICIT_CONVERSIONS 0
1190# endif
1191
1192# if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L
1193# define YARP_COMPILER_CXX_EXTENDED_FRIEND_DECLARATIONS 1
1194# else
1195# define YARP_COMPILER_CXX_EXTENDED_FRIEND_DECLARATIONS 0
1196# endif
1197
1198# if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
1199# define YARP_COMPILER_CXX_EXTERN_TEMPLATES 1
1200# else
1201# define YARP_COMPILER_CXX_EXTERN_TEMPLATES 0
1202# endif
1203
1204# if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L
1205# define YARP_COMPILER_CXX_FINAL 1
1206# else
1207# define YARP_COMPILER_CXX_FINAL 0
1208# endif
1209
1210# if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
1211# define YARP_COMPILER_CXX_FUNC_IDENTIFIER 1
1212# else
1213# define YARP_COMPILER_CXX_FUNC_IDENTIFIER 0
1214# endif
1215
1216# if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
1217# define YARP_COMPILER_CXX_GENERALIZED_INITIALIZERS 1
1218# else
1219# define YARP_COMPILER_CXX_GENERALIZED_INITIALIZERS 0
1220# endif
1221
1222# if (__GNUC__ * 100 + __GNUC_MINOR__) >= 408 && __cplusplus >= 201103L
1223# define YARP_COMPILER_CXX_INHERITING_CONSTRUCTORS 1
1224# else
1225# define YARP_COMPILER_CXX_INHERITING_CONSTRUCTORS 0
1226# endif
1227
1228# if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
1229# define YARP_COMPILER_CXX_INLINE_NAMESPACES 1
1230# else
1231# define YARP_COMPILER_CXX_INLINE_NAMESPACES 0
1232# endif
1233
1234# if (__GNUC__ * 100 + __GNUC_MINOR__) >= 405 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
1235# define YARP_COMPILER_CXX_LAMBDAS 1
1236# else
1237# define YARP_COMPILER_CXX_LAMBDAS 0
1238# endif
1239
1240# if (__GNUC__ * 100 + __GNUC_MINOR__) >= 405 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
1241# define YARP_COMPILER_CXX_LOCAL_TYPE_TEMPLATE_ARGS 1
1242# else
1243# define YARP_COMPILER_CXX_LOCAL_TYPE_TEMPLATE_ARGS 0
1244# endif
1245
1246# if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
1247# define YARP_COMPILER_CXX_LONG_LONG_TYPE 1
1248# else
1249# define YARP_COMPILER_CXX_LONG_LONG_TYPE 0
1250# endif
1251
1252# if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
1253# define YARP_COMPILER_CXX_NOEXCEPT 1
1254# else
1255# define YARP_COMPILER_CXX_NOEXCEPT 0
1256# endif
1257
1258# if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L
1259# define YARP_COMPILER_CXX_NONSTATIC_MEMBER_INIT 1
1260# else
1261# define YARP_COMPILER_CXX_NONSTATIC_MEMBER_INIT 0
1262# endif
1263
1264# if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
1265# define YARP_COMPILER_CXX_NULLPTR 1
1266# else
1267# define YARP_COMPILER_CXX_NULLPTR 0
1268# endif
1269
1270# if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L
1271# define YARP_COMPILER_CXX_OVERRIDE 1
1272# else
1273# define YARP_COMPILER_CXX_OVERRIDE 0
1274# endif
1275
1276# if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
1277# define YARP_COMPILER_CXX_RANGE_FOR 1
1278# else
1279# define YARP_COMPILER_CXX_RANGE_FOR 0
1280# endif
1281
1282# if (__GNUC__ * 100 + __GNUC_MINOR__) >= 405 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
1283# define YARP_COMPILER_CXX_RAW_STRING_LITERALS 1
1284# else
1285# define YARP_COMPILER_CXX_RAW_STRING_LITERALS 0
1286# endif
1287
1288# if ((__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__) >= 40801) && __cplusplus >= 201103L
1289# define YARP_COMPILER_CXX_REFERENCE_QUALIFIED_FUNCTIONS 1
1290# else
1291# define YARP_COMPILER_CXX_REFERENCE_QUALIFIED_FUNCTIONS 0
1292# endif
1293
1294# if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
1295# define YARP_COMPILER_CXX_RIGHT_ANGLE_BRACKETS 1
1296# else
1297# define YARP_COMPILER_CXX_RIGHT_ANGLE_BRACKETS 0
1298# endif
1299
1300# if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
1301# define YARP_COMPILER_CXX_RVALUE_REFERENCES 1
1302# else
1303# define YARP_COMPILER_CXX_RVALUE_REFERENCES 0
1304# endif
1305
1306# if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
1307# define YARP_COMPILER_CXX_SIZEOF_MEMBER 1
1308# else
1309# define YARP_COMPILER_CXX_SIZEOF_MEMBER 0
1310# endif
1311
1312# if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
1313# define YARP_COMPILER_CXX_STATIC_ASSERT 1
1314# else
1315# define YARP_COMPILER_CXX_STATIC_ASSERT 0
1316# endif
1317
1318# if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
1319# define YARP_COMPILER_CXX_STRONG_ENUMS 1
1320# else
1321# define YARP_COMPILER_CXX_STRONG_ENUMS 0
1322# endif
1323
1324# if (__GNUC__ * 100 + __GNUC_MINOR__) >= 408 && __cplusplus >= 201103L
1325# define YARP_COMPILER_CXX_THREAD_LOCAL 1
1326# else
1327# define YARP_COMPILER_CXX_THREAD_LOCAL 0
1328# endif
1329
1330# if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
1331# define YARP_COMPILER_CXX_TRAILING_RETURN_TYPES 1
1332# else
1333# define YARP_COMPILER_CXX_TRAILING_RETURN_TYPES 0
1334# endif
1335
1336# if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
1337# define YARP_COMPILER_CXX_UNICODE_LITERALS 1
1338# else
1339# define YARP_COMPILER_CXX_UNICODE_LITERALS 0
1340# endif
1341
1342# if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
1343# define YARP_COMPILER_CXX_UNIFORM_INITIALIZATION 1
1344# else
1345# define YARP_COMPILER_CXX_UNIFORM_INITIALIZATION 0
1346# endif
1347
1348# if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
1349# define YARP_COMPILER_CXX_UNRESTRICTED_UNIONS 1
1350# else
1351# define YARP_COMPILER_CXX_UNRESTRICTED_UNIONS 0
1352# endif
1353
1354# if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L
1355# define YARP_COMPILER_CXX_USER_LITERALS 1
1356# else
1357# define YARP_COMPILER_CXX_USER_LITERALS 0
1358# endif
1359
1360# if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
1361# define YARP_COMPILER_CXX_VARIADIC_MACROS 1
1362# else
1363# define YARP_COMPILER_CXX_VARIADIC_MACROS 0
1364# endif
1365
1366# if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
1367# define YARP_COMPILER_CXX_VARIADIC_TEMPLATES 1
1368# else
1369# define YARP_COMPILER_CXX_VARIADIC_TEMPLATES 0
1370# endif
1371
1372# if (__GNUC__ * 100 + __GNUC_MINOR__) >= 500 && __cplusplus >= 201402L
1373# define YARP_COMPILER_CXX_AGGREGATE_DEFAULT_INITIALIZERS 1
1374# else
1375# define YARP_COMPILER_CXX_AGGREGATE_DEFAULT_INITIALIZERS 0
1376# endif
1377
1378# if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L
1379# define YARP_COMPILER_CXX_ATTRIBUTE_DEPRECATED 1
1380# else
1381# define YARP_COMPILER_CXX_ATTRIBUTE_DEPRECATED 0
1382# endif
1383
1384# if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L
1385# define YARP_COMPILER_CXX_BINARY_LITERALS 1
1386# else
1387# define YARP_COMPILER_CXX_BINARY_LITERALS 0
1388# endif
1389
1390# if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L
1391# define YARP_COMPILER_CXX_CONTEXTUAL_CONVERSIONS 1
1392# else
1393# define YARP_COMPILER_CXX_CONTEXTUAL_CONVERSIONS 0
1394# endif
1395
1396# if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L
1397# define YARP_COMPILER_CXX_DECLTYPE_AUTO 1
1398# else
1399# define YARP_COMPILER_CXX_DECLTYPE_AUTO 0
1400# endif
1401
1402# if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L
1403# define YARP_COMPILER_CXX_DIGIT_SEPARATORS 1
1404# else
1405# define YARP_COMPILER_CXX_DIGIT_SEPARATORS 0
1406# endif
1407
1408# if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L
1409# define YARP_COMPILER_CXX_GENERIC_LAMBDAS 1
1410# else
1411# define YARP_COMPILER_CXX_GENERIC_LAMBDAS 0
1412# endif
1413
1414# if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L
1415# define YARP_COMPILER_CXX_LAMBDA_INIT_CAPTURES 1
1416# else
1417# define YARP_COMPILER_CXX_LAMBDA_INIT_CAPTURES 0
1418# endif
1419
1420# if (__GNUC__ * 100 + __GNUC_MINOR__) >= 500 && __cplusplus >= 201402L
1421# define YARP_COMPILER_CXX_RELAXED_CONSTEXPR 1
1422# else
1423# define YARP_COMPILER_CXX_RELAXED_CONSTEXPR 0
1424# endif
1425
1426# if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L
1427# define YARP_COMPILER_CXX_RETURN_TYPE_DEDUCTION 1
1428# else
1429# define YARP_COMPILER_CXX_RETURN_TYPE_DEDUCTION 0
1430# endif
1431
1432# if (__GNUC__ * 100 + __GNUC_MINOR__) >= 500 && __cplusplus >= 201402L
1433# define YARP_COMPILER_CXX_VARIABLE_TEMPLATES 1
1434# else
1435# define YARP_COMPILER_CXX_VARIABLE_TEMPLATES 0
1436# endif
1437
1438# elif YARP_COMPILER_IS_Clang
1439
1440# if !(((__clang_major__ * 100) + __clang_minor__) >= 301)
1441# error Unsupported compiler version
1442# endif
1443
1444# define YARP_COMPILER_VERSION_MAJOR (__clang_major__)
1445# define YARP_COMPILER_VERSION_MINOR (__clang_minor__)
1446# define YARP_COMPILER_VERSION_PATCH (__clang_patchlevel__)
1447# if defined(_MSC_VER)
1448 /* _MSC_VER = VVRR */
1449# define YARP_SIMULATE_VERSION_MAJOR (_MSC_VER / 100)
1450# define YARP_SIMULATE_VERSION_MINOR (_MSC_VER % 100)
1451# endif
1452
1453# if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 199711L
1454# define YARP_COMPILER_CXX_TEMPLATE_TEMPLATE_PARAMETERS 1
1455# else
1456# define YARP_COMPILER_CXX_TEMPLATE_TEMPLATE_PARAMETERS 0
1457# endif
1458
1459# if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_alias_templates)
1460# define YARP_COMPILER_CXX_ALIAS_TEMPLATES 1
1461# else
1462# define YARP_COMPILER_CXX_ALIAS_TEMPLATES 0
1463# endif
1464
1465# if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_alignas)
1466# define YARP_COMPILER_CXX_ALIGNAS 1
1467# else
1468# define YARP_COMPILER_CXX_ALIGNAS 0
1469# endif
1470
1471# if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_alignas)
1472# define YARP_COMPILER_CXX_ALIGNOF 1
1473# else
1474# define YARP_COMPILER_CXX_ALIGNOF 0
1475# endif
1476
1477# if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_attributes)
1478# define YARP_COMPILER_CXX_ATTRIBUTES 1
1479# else
1480# define YARP_COMPILER_CXX_ATTRIBUTES 0
1481# endif
1482
1483# if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_auto_type)
1484# define YARP_COMPILER_CXX_AUTO_TYPE 1
1485# else
1486# define YARP_COMPILER_CXX_AUTO_TYPE 0
1487# endif
1488
1489# if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_constexpr)
1490# define YARP_COMPILER_CXX_CONSTEXPR 1
1491# else
1492# define YARP_COMPILER_CXX_CONSTEXPR 0
1493# endif
1494
1495# if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_decltype)
1496# define YARP_COMPILER_CXX_DECLTYPE 1
1497# else
1498# define YARP_COMPILER_CXX_DECLTYPE 0
1499# endif
1500
1501# if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_decltype_incomplete_return_types)
1502# define YARP_COMPILER_CXX_DECLTYPE_INCOMPLETE_RETURN_TYPES 1
1503# else
1504# define YARP_COMPILER_CXX_DECLTYPE_INCOMPLETE_RETURN_TYPES 0
1505# endif
1506
1507# if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_default_function_template_args)
1508# define YARP_COMPILER_CXX_DEFAULT_FUNCTION_TEMPLATE_ARGS 1
1509# else
1510# define YARP_COMPILER_CXX_DEFAULT_FUNCTION_TEMPLATE_ARGS 0
1511# endif
1512
1513# if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_defaulted_functions)
1514# define YARP_COMPILER_CXX_DEFAULTED_FUNCTIONS 1
1515# else
1516# define YARP_COMPILER_CXX_DEFAULTED_FUNCTIONS 0
1517# endif
1518
1519# if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_defaulted_functions)
1520# define YARP_COMPILER_CXX_DEFAULTED_MOVE_INITIALIZERS 1
1521# else
1522# define YARP_COMPILER_CXX_DEFAULTED_MOVE_INITIALIZERS 0
1523# endif
1524
1525# if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_delegating_constructors)
1526# define YARP_COMPILER_CXX_DELEGATING_CONSTRUCTORS 1
1527# else
1528# define YARP_COMPILER_CXX_DELEGATING_CONSTRUCTORS 0
1529# endif
1530
1531# if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_deleted_functions)
1532# define YARP_COMPILER_CXX_DELETED_FUNCTIONS 1
1533# else
1534# define YARP_COMPILER_CXX_DELETED_FUNCTIONS 0
1535# endif
1536
1537# if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L
1538# define YARP_COMPILER_CXX_ENUM_FORWARD_DECLARATIONS 1
1539# else
1540# define YARP_COMPILER_CXX_ENUM_FORWARD_DECLARATIONS 0
1541# endif
1542
1543# if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_explicit_conversions)
1544# define YARP_COMPILER_CXX_EXPLICIT_CONVERSIONS 1
1545# else
1546# define YARP_COMPILER_CXX_EXPLICIT_CONVERSIONS 0
1547# endif
1548
1549# if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L
1550# define YARP_COMPILER_CXX_EXTENDED_FRIEND_DECLARATIONS 1
1551# else
1552# define YARP_COMPILER_CXX_EXTENDED_FRIEND_DECLARATIONS 0
1553# endif
1554
1555# if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L
1556# define YARP_COMPILER_CXX_EXTERN_TEMPLATES 1
1557# else
1558# define YARP_COMPILER_CXX_EXTERN_TEMPLATES 0
1559# endif
1560
1561# if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_override_control)
1562# define YARP_COMPILER_CXX_FINAL 1
1563# else
1564# define YARP_COMPILER_CXX_FINAL 0
1565# endif
1566
1567# if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L
1568# define YARP_COMPILER_CXX_FUNC_IDENTIFIER 1
1569# else
1570# define YARP_COMPILER_CXX_FUNC_IDENTIFIER 0
1571# endif
1572
1573# if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_generalized_initializers)
1574# define YARP_COMPILER_CXX_GENERALIZED_INITIALIZERS 1
1575# else
1576# define YARP_COMPILER_CXX_GENERALIZED_INITIALIZERS 0
1577# endif
1578
1579# if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_inheriting_constructors)
1580# define YARP_COMPILER_CXX_INHERITING_CONSTRUCTORS 1
1581# else
1582# define YARP_COMPILER_CXX_INHERITING_CONSTRUCTORS 0
1583# endif
1584
1585# if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L
1586# define YARP_COMPILER_CXX_INLINE_NAMESPACES 1
1587# else
1588# define YARP_COMPILER_CXX_INLINE_NAMESPACES 0
1589# endif
1590
1591# if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_lambdas)
1592# define YARP_COMPILER_CXX_LAMBDAS 1
1593# else
1594# define YARP_COMPILER_CXX_LAMBDAS 0
1595# endif
1596
1597# if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_local_type_template_args)
1598# define YARP_COMPILER_CXX_LOCAL_TYPE_TEMPLATE_ARGS 1
1599# else
1600# define YARP_COMPILER_CXX_LOCAL_TYPE_TEMPLATE_ARGS 0
1601# endif
1602
1603# if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L
1604# define YARP_COMPILER_CXX_LONG_LONG_TYPE 1
1605# else
1606# define YARP_COMPILER_CXX_LONG_LONG_TYPE 0
1607# endif
1608
1609# if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_noexcept)
1610# define YARP_COMPILER_CXX_NOEXCEPT 1
1611# else
1612# define YARP_COMPILER_CXX_NOEXCEPT 0
1613# endif
1614
1615# if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_nonstatic_member_init)
1616# define YARP_COMPILER_CXX_NONSTATIC_MEMBER_INIT 1
1617# else
1618# define YARP_COMPILER_CXX_NONSTATIC_MEMBER_INIT 0
1619# endif
1620
1621# if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_nullptr)
1622# define YARP_COMPILER_CXX_NULLPTR 1
1623# else
1624# define YARP_COMPILER_CXX_NULLPTR 0
1625# endif
1626
1627# if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_override_control)
1628# define YARP_COMPILER_CXX_OVERRIDE 1
1629# else
1630# define YARP_COMPILER_CXX_OVERRIDE 0
1631# endif
1632
1633# if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_range_for)
1634# define YARP_COMPILER_CXX_RANGE_FOR 1
1635# else
1636# define YARP_COMPILER_CXX_RANGE_FOR 0
1637# endif
1638
1639# if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_raw_string_literals)
1640# define YARP_COMPILER_CXX_RAW_STRING_LITERALS 1
1641# else
1642# define YARP_COMPILER_CXX_RAW_STRING_LITERALS 0
1643# endif
1644
1645# if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_reference_qualified_functions)
1646# define YARP_COMPILER_CXX_REFERENCE_QUALIFIED_FUNCTIONS 1
1647# else
1648# define YARP_COMPILER_CXX_REFERENCE_QUALIFIED_FUNCTIONS 0
1649# endif
1650
1651# if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L
1652# define YARP_COMPILER_CXX_RIGHT_ANGLE_BRACKETS 1
1653# else
1654# define YARP_COMPILER_CXX_RIGHT_ANGLE_BRACKETS 0
1655# endif
1656
1657# if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_rvalue_references)
1658# define YARP_COMPILER_CXX_RVALUE_REFERENCES 1
1659# else
1660# define YARP_COMPILER_CXX_RVALUE_REFERENCES 0
1661# endif
1662
1663# if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L
1664# define YARP_COMPILER_CXX_SIZEOF_MEMBER 1
1665# else
1666# define YARP_COMPILER_CXX_SIZEOF_MEMBER 0
1667# endif
1668
1669# if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_static_assert)
1670# define YARP_COMPILER_CXX_STATIC_ASSERT 1
1671# else
1672# define YARP_COMPILER_CXX_STATIC_ASSERT 0
1673# endif
1674
1675# if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_strong_enums)
1676# define YARP_COMPILER_CXX_STRONG_ENUMS 1
1677# else
1678# define YARP_COMPILER_CXX_STRONG_ENUMS 0
1679# endif
1680
1681# if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_thread_local)
1682# define YARP_COMPILER_CXX_THREAD_LOCAL 1
1683# else
1684# define YARP_COMPILER_CXX_THREAD_LOCAL 0
1685# endif
1686
1687# if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_trailing_return)
1688# define YARP_COMPILER_CXX_TRAILING_RETURN_TYPES 1
1689# else
1690# define YARP_COMPILER_CXX_TRAILING_RETURN_TYPES 0
1691# endif
1692
1693# if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_unicode_literals)
1694# define YARP_COMPILER_CXX_UNICODE_LITERALS 1
1695# else
1696# define YARP_COMPILER_CXX_UNICODE_LITERALS 0
1697# endif
1698
1699# if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_generalized_initializers)
1700# define YARP_COMPILER_CXX_UNIFORM_INITIALIZATION 1
1701# else
1702# define YARP_COMPILER_CXX_UNIFORM_INITIALIZATION 0
1703# endif
1704
1705# if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_unrestricted_unions)
1706# define YARP_COMPILER_CXX_UNRESTRICTED_UNIONS 1
1707# else
1708# define YARP_COMPILER_CXX_UNRESTRICTED_UNIONS 0
1709# endif
1710
1711# if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_user_literals)
1712# define YARP_COMPILER_CXX_USER_LITERALS 1
1713# else
1714# define YARP_COMPILER_CXX_USER_LITERALS 0
1715# endif
1716
1717# if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L
1718# define YARP_COMPILER_CXX_VARIADIC_MACROS 1
1719# else
1720# define YARP_COMPILER_CXX_VARIADIC_MACROS 0
1721# endif
1722
1723# if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_variadic_templates)
1724# define YARP_COMPILER_CXX_VARIADIC_TEMPLATES 1
1725# else
1726# define YARP_COMPILER_CXX_VARIADIC_TEMPLATES 0
1727# endif
1728
1729# if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_aggregate_nsdmi)
1730# define YARP_COMPILER_CXX_AGGREGATE_DEFAULT_INITIALIZERS 1
1731# else
1732# define YARP_COMPILER_CXX_AGGREGATE_DEFAULT_INITIALIZERS 0
1733# endif
1734
1735# if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus > 201103L
1736# define YARP_COMPILER_CXX_ATTRIBUTE_DEPRECATED 1
1737# else
1738# define YARP_COMPILER_CXX_ATTRIBUTE_DEPRECATED 0
1739# endif
1740
1741# if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_binary_literals)
1742# define YARP_COMPILER_CXX_BINARY_LITERALS 1
1743# else
1744# define YARP_COMPILER_CXX_BINARY_LITERALS 0
1745# endif
1746
1747# if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_contextual_conversions)
1748# define YARP_COMPILER_CXX_CONTEXTUAL_CONVERSIONS 1
1749# else
1750# define YARP_COMPILER_CXX_CONTEXTUAL_CONVERSIONS 0
1751# endif
1752
1753# if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus > 201103L
1754# define YARP_COMPILER_CXX_DECLTYPE_AUTO 1
1755# else
1756# define YARP_COMPILER_CXX_DECLTYPE_AUTO 0
1757# endif
1758
1759# if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus > 201103L
1760# define YARP_COMPILER_CXX_DIGIT_SEPARATORS 1
1761# else
1762# define YARP_COMPILER_CXX_DIGIT_SEPARATORS 0
1763# endif
1764
1765# if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus > 201103L
1766# define YARP_COMPILER_CXX_GENERIC_LAMBDAS 1
1767# else
1768# define YARP_COMPILER_CXX_GENERIC_LAMBDAS 0
1769# endif
1770
1771# if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_init_captures)
1772# define YARP_COMPILER_CXX_LAMBDA_INIT_CAPTURES 1
1773# else
1774# define YARP_COMPILER_CXX_LAMBDA_INIT_CAPTURES 0
1775# endif
1776
1777# if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_relaxed_constexpr)
1778# define YARP_COMPILER_CXX_RELAXED_CONSTEXPR 1
1779# else
1780# define YARP_COMPILER_CXX_RELAXED_CONSTEXPR 0
1781# endif
1782
1783# if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_return_type_deduction)
1784# define YARP_COMPILER_CXX_RETURN_TYPE_DEDUCTION 1
1785# else
1786# define YARP_COMPILER_CXX_RETURN_TYPE_DEDUCTION 0
1787# endif
1788
1789# if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_variable_templates)
1790# define YARP_COMPILER_CXX_VARIABLE_TEMPLATES 1
1791# else
1792# define YARP_COMPILER_CXX_VARIABLE_TEMPLATES 0
1793# endif
1794
1795# elif YARP_COMPILER_IS_AppleClang
1796
1797# if !(((__clang_major__ * 100) + __clang_minor__) >= 400)
1798# error Unsupported compiler version
1799# endif
1800
1801# define YARP_COMPILER_VERSION_MAJOR (__clang_major__)
1802# define YARP_COMPILER_VERSION_MINOR (__clang_minor__)
1803# define YARP_COMPILER_VERSION_PATCH (__clang_patchlevel__)
1804# if defined(_MSC_VER)
1805 /* _MSC_VER = VVRR */
1806# define YARP_SIMULATE_VERSION_MAJOR (_MSC_VER / 100)
1807# define YARP_SIMULATE_VERSION_MINOR (_MSC_VER % 100)
1808# endif
1809# define YARP_COMPILER_VERSION_TWEAK (__apple_build_version__)
1810
1811# if ((__clang_major__ * 100) + __clang_minor__) >= 400 && __cplusplus >= 199711L
1812# define YARP_COMPILER_CXX_TEMPLATE_TEMPLATE_PARAMETERS 1
1813# else
1814# define YARP_COMPILER_CXX_TEMPLATE_TEMPLATE_PARAMETERS 0
1815# endif
1816
1817# if ((__clang_major__ * 100) + __clang_minor__) >= 400 && __has_feature(cxx_alias_templates)
1818# define YARP_COMPILER_CXX_ALIAS_TEMPLATES 1
1819# else
1820# define YARP_COMPILER_CXX_ALIAS_TEMPLATES 0
1821# endif
1822
1823# if ((__clang_major__ * 100) + __clang_minor__) >= 400 && __has_feature(cxx_alignas)
1824# define YARP_COMPILER_CXX_ALIGNAS 1
1825# else
1826# define YARP_COMPILER_CXX_ALIGNAS 0
1827# endif
1828
1829# if ((__clang_major__ * 100) + __clang_minor__) >= 400 && __has_feature(cxx_alignas)
1830# define YARP_COMPILER_CXX_ALIGNOF 1
1831# else
1832# define YARP_COMPILER_CXX_ALIGNOF 0
1833# endif
1834
1835# if ((__clang_major__ * 100) + __clang_minor__) >= 400 && __has_feature(cxx_attributes)
1836# define YARP_COMPILER_CXX_ATTRIBUTES 1
1837# else
1838# define YARP_COMPILER_CXX_ATTRIBUTES 0
1839# endif
1840
1841# if ((__clang_major__ * 100) + __clang_minor__) >= 400 && __has_feature(cxx_auto_type)
1842# define YARP_COMPILER_CXX_AUTO_TYPE 1
1843# else
1844# define YARP_COMPILER_CXX_AUTO_TYPE 0
1845# endif
1846
1847# if ((__clang_major__ * 100) + __clang_minor__) >= 400 && __has_feature(cxx_constexpr)
1848# define YARP_COMPILER_CXX_CONSTEXPR 1
1849# else
1850# define YARP_COMPILER_CXX_CONSTEXPR 0
1851# endif
1852
1853# if ((__clang_major__ * 100) + __clang_minor__) >= 400 && __has_feature(cxx_decltype)
1854# define YARP_COMPILER_CXX_DECLTYPE 1
1855# else
1856# define YARP_COMPILER_CXX_DECLTYPE 0
1857# endif
1858
1859# if ((__clang_major__ * 100) + __clang_minor__) >= 400 && __has_feature(cxx_decltype_incomplete_return_types)
1860# define YARP_COMPILER_CXX_DECLTYPE_INCOMPLETE_RETURN_TYPES 1
1861# else
1862# define YARP_COMPILER_CXX_DECLTYPE_INCOMPLETE_RETURN_TYPES 0
1863# endif
1864
1865# if ((__clang_major__ * 100) + __clang_minor__) >= 400 && __has_feature(cxx_default_function_template_args)
1866# define YARP_COMPILER_CXX_DEFAULT_FUNCTION_TEMPLATE_ARGS 1
1867# else
1868# define YARP_COMPILER_CXX_DEFAULT_FUNCTION_TEMPLATE_ARGS 0
1869# endif
1870
1871# if ((__clang_major__ * 100) + __clang_minor__) >= 400 && __has_feature(cxx_defaulted_functions)
1872# define YARP_COMPILER_CXX_DEFAULTED_FUNCTIONS 1
1873# else
1874# define YARP_COMPILER_CXX_DEFAULTED_FUNCTIONS 0
1875# endif
1876
1877# if ((__clang_major__ * 100) + __clang_minor__) >= 400 && __has_feature(cxx_defaulted_functions)
1878# define YARP_COMPILER_CXX_DEFAULTED_MOVE_INITIALIZERS 1
1879# else
1880# define YARP_COMPILER_CXX_DEFAULTED_MOVE_INITIALIZERS 0
1881# endif
1882
1883# if ((__clang_major__ * 100) + __clang_minor__) >= 400 && __has_feature(cxx_delegating_constructors)
1884# define YARP_COMPILER_CXX_DELEGATING_CONSTRUCTORS 1
1885# else
1886# define YARP_COMPILER_CXX_DELEGATING_CONSTRUCTORS 0
1887# endif
1888
1889# if ((__clang_major__ * 100) + __clang_minor__) >= 400 && __has_feature(cxx_deleted_functions)
1890# define YARP_COMPILER_CXX_DELETED_FUNCTIONS 1
1891# else
1892# define YARP_COMPILER_CXX_DELETED_FUNCTIONS 0
1893# endif
1894
1895# if ((__clang_major__ * 100) + __clang_minor__) >= 400 && __cplusplus >= 201103L
1896# define YARP_COMPILER_CXX_ENUM_FORWARD_DECLARATIONS 1
1897# else
1898# define YARP_COMPILER_CXX_ENUM_FORWARD_DECLARATIONS 0
1899# endif
1900
1901# if ((__clang_major__ * 100) + __clang_minor__) >= 400 && __has_feature(cxx_explicit_conversions)
1902# define YARP_COMPILER_CXX_EXPLICIT_CONVERSIONS 1
1903# else
1904# define YARP_COMPILER_CXX_EXPLICIT_CONVERSIONS 0
1905# endif
1906
1907# if ((__clang_major__ * 100) + __clang_minor__) >= 400 && __cplusplus >= 201103L
1908# define YARP_COMPILER_CXX_EXTENDED_FRIEND_DECLARATIONS 1
1909# else
1910# define YARP_COMPILER_CXX_EXTENDED_FRIEND_DECLARATIONS 0
1911# endif
1912
1913# if ((__clang_major__ * 100) + __clang_minor__) >= 400 && __cplusplus >= 201103L
1914# define YARP_COMPILER_CXX_EXTERN_TEMPLATES 1
1915# else
1916# define YARP_COMPILER_CXX_EXTERN_TEMPLATES 0
1917# endif
1918
1919# if ((__clang_major__ * 100) + __clang_minor__) >= 400 && __has_feature(cxx_override_control)
1920# define YARP_COMPILER_CXX_FINAL 1
1921# else
1922# define YARP_COMPILER_CXX_FINAL 0
1923# endif
1924
1925# if ((__clang_major__ * 100) + __clang_minor__) >= 400 && __cplusplus >= 201103L
1926# define YARP_COMPILER_CXX_FUNC_IDENTIFIER 1
1927# else
1928# define YARP_COMPILER_CXX_FUNC_IDENTIFIER 0
1929# endif
1930
1931# if ((__clang_major__ * 100) + __clang_minor__) >= 400 && __has_feature(cxx_generalized_initializers)
1932# define YARP_COMPILER_CXX_GENERALIZED_INITIALIZERS 1
1933# else
1934# define YARP_COMPILER_CXX_GENERALIZED_INITIALIZERS 0
1935# endif
1936
1937# if ((__clang_major__ * 100) + __clang_minor__) >= 400 && __has_feature(cxx_inheriting_constructors)
1938# define YARP_COMPILER_CXX_INHERITING_CONSTRUCTORS 1
1939# else
1940# define YARP_COMPILER_CXX_INHERITING_CONSTRUCTORS 0
1941# endif
1942
1943# if ((__clang_major__ * 100) + __clang_minor__) >= 400 && __cplusplus >= 201103L
1944# define YARP_COMPILER_CXX_INLINE_NAMESPACES 1
1945# else
1946# define YARP_COMPILER_CXX_INLINE_NAMESPACES 0
1947# endif
1948
1949# if ((__clang_major__ * 100) + __clang_minor__) >= 400 && __has_feature(cxx_lambdas)
1950# define YARP_COMPILER_CXX_LAMBDAS 1
1951# else
1952# define YARP_COMPILER_CXX_LAMBDAS 0
1953# endif
1954
1955# if ((__clang_major__ * 100) + __clang_minor__) >= 400 && __has_feature(cxx_local_type_template_args)
1956# define YARP_COMPILER_CXX_LOCAL_TYPE_TEMPLATE_ARGS 1
1957# else
1958# define YARP_COMPILER_CXX_LOCAL_TYPE_TEMPLATE_ARGS 0
1959# endif
1960
1961# if ((__clang_major__ * 100) + __clang_minor__) >= 400 && __cplusplus >= 201103L
1962# define YARP_COMPILER_CXX_LONG_LONG_TYPE 1
1963# else
1964# define YARP_COMPILER_CXX_LONG_LONG_TYPE 0
1965# endif
1966
1967# if ((__clang_major__ * 100) + __clang_minor__) >= 400 && __has_feature(cxx_noexcept)
1968# define YARP_COMPILER_CXX_NOEXCEPT 1
1969# else
1970# define YARP_COMPILER_CXX_NOEXCEPT 0
1971# endif
1972
1973# if ((__clang_major__ * 100) + __clang_minor__) >= 400 && __has_feature(cxx_nonstatic_member_init)
1974# define YARP_COMPILER_CXX_NONSTATIC_MEMBER_INIT 1
1975# else
1976# define YARP_COMPILER_CXX_NONSTATIC_MEMBER_INIT 0
1977# endif
1978
1979# if ((__clang_major__ * 100) + __clang_minor__) >= 400 && __has_feature(cxx_nullptr)
1980# define YARP_COMPILER_CXX_NULLPTR 1
1981# else
1982# define YARP_COMPILER_CXX_NULLPTR 0
1983# endif
1984
1985# if ((__clang_major__ * 100) + __clang_minor__) >= 400 && __has_feature(cxx_override_control)
1986# define YARP_COMPILER_CXX_OVERRIDE 1
1987# else
1988# define YARP_COMPILER_CXX_OVERRIDE 0
1989# endif
1990
1991# if ((__clang_major__ * 100) + __clang_minor__) >= 400 && __has_feature(cxx_range_for)
1992# define YARP_COMPILER_CXX_RANGE_FOR 1
1993# else
1994# define YARP_COMPILER_CXX_RANGE_FOR 0
1995# endif
1996
1997# if ((__clang_major__ * 100) + __clang_minor__) >= 400 && __has_feature(cxx_raw_string_literals)
1998# define YARP_COMPILER_CXX_RAW_STRING_LITERALS 1
1999# else
2000# define YARP_COMPILER_CXX_RAW_STRING_LITERALS 0
2001# endif
2002
2003# if ((__clang_major__ * 100) + __clang_minor__) >= 400 && __has_feature(cxx_reference_qualified_functions)
2004# define YARP_COMPILER_CXX_REFERENCE_QUALIFIED_FUNCTIONS 1
2005# else
2006# define YARP_COMPILER_CXX_REFERENCE_QUALIFIED_FUNCTIONS 0
2007# endif
2008
2009# if ((__clang_major__ * 100) + __clang_minor__) >= 400 && __cplusplus >= 201103L
2010# define YARP_COMPILER_CXX_RIGHT_ANGLE_BRACKETS 1
2011# else
2012# define YARP_COMPILER_CXX_RIGHT_ANGLE_BRACKETS 0
2013# endif
2014
2015# if ((__clang_major__ * 100) + __clang_minor__) >= 400 && __has_feature(cxx_rvalue_references)
2016# define YARP_COMPILER_CXX_RVALUE_REFERENCES 1
2017# else
2018# define YARP_COMPILER_CXX_RVALUE_REFERENCES 0
2019# endif
2020
2021# if ((__clang_major__ * 100) + __clang_minor__) >= 400 && __cplusplus >= 201103L
2022# define YARP_COMPILER_CXX_SIZEOF_MEMBER 1
2023# else
2024# define YARP_COMPILER_CXX_SIZEOF_MEMBER 0
2025# endif
2026
2027# if ((__clang_major__ * 100) + __clang_minor__) >= 400 && __has_feature(cxx_static_assert)
2028# define YARP_COMPILER_CXX_STATIC_ASSERT 1
2029# else
2030# define YARP_COMPILER_CXX_STATIC_ASSERT 0
2031# endif
2032
2033# if ((__clang_major__ * 100) + __clang_minor__) >= 400 && __has_feature(cxx_strong_enums)
2034# define YARP_COMPILER_CXX_STRONG_ENUMS 1
2035# else
2036# define YARP_COMPILER_CXX_STRONG_ENUMS 0
2037# endif
2038
2039# if ((__clang_major__ * 100) + __clang_minor__) >= 400 && __has_feature(cxx_thread_local)
2040# define YARP_COMPILER_CXX_THREAD_LOCAL 1
2041# else
2042# define YARP_COMPILER_CXX_THREAD_LOCAL 0
2043# endif
2044
2045# if ((__clang_major__ * 100) + __clang_minor__) >= 400 && __has_feature(cxx_trailing_return)
2046# define YARP_COMPILER_CXX_TRAILING_RETURN_TYPES 1
2047# else
2048# define YARP_COMPILER_CXX_TRAILING_RETURN_TYPES 0
2049# endif
2050
2051# if ((__clang_major__ * 100) + __clang_minor__) >= 400 && __has_feature(cxx_unicode_literals)
2052# define YARP_COMPILER_CXX_UNICODE_LITERALS 1
2053# else
2054# define YARP_COMPILER_CXX_UNICODE_LITERALS 0
2055# endif
2056
2057# if ((__clang_major__ * 100) + __clang_minor__) >= 400 && __has_feature(cxx_generalized_initializers)
2058# define YARP_COMPILER_CXX_UNIFORM_INITIALIZATION 1
2059# else
2060# define YARP_COMPILER_CXX_UNIFORM_INITIALIZATION 0
2061# endif
2062
2063# if ((__clang_major__ * 100) + __clang_minor__) >= 400 && __has_feature(cxx_unrestricted_unions)
2064# define YARP_COMPILER_CXX_UNRESTRICTED_UNIONS 1
2065# else
2066# define YARP_COMPILER_CXX_UNRESTRICTED_UNIONS 0
2067# endif
2068
2069# if ((__clang_major__ * 100) + __clang_minor__) >= 400 && __has_feature(cxx_user_literals)
2070# define YARP_COMPILER_CXX_USER_LITERALS 1
2071# else
2072# define YARP_COMPILER_CXX_USER_LITERALS 0
2073# endif
2074
2075# if ((__clang_major__ * 100) + __clang_minor__) >= 400 && __cplusplus >= 201103L
2076# define YARP_COMPILER_CXX_VARIADIC_MACROS 1
2077# else
2078# define YARP_COMPILER_CXX_VARIADIC_MACROS 0
2079# endif
2080
2081# if ((__clang_major__ * 100) + __clang_minor__) >= 400 && __has_feature(cxx_variadic_templates)
2082# define YARP_COMPILER_CXX_VARIADIC_TEMPLATES 1
2083# else
2084# define YARP_COMPILER_CXX_VARIADIC_TEMPLATES 0
2085# endif
2086
2087# if ((__clang_major__ * 100) + __clang_minor__) >= 400 && __has_feature(cxx_aggregate_nsdmi)
2088# define YARP_COMPILER_CXX_AGGREGATE_DEFAULT_INITIALIZERS 1
2089# else
2090# define YARP_COMPILER_CXX_AGGREGATE_DEFAULT_INITIALIZERS 0
2091# endif
2092
2093# if ((__clang_major__ * 100) + __clang_minor__) >= 501 && __cplusplus > 201103L
2094# define YARP_COMPILER_CXX_ATTRIBUTE_DEPRECATED 1
2095# else
2096# define YARP_COMPILER_CXX_ATTRIBUTE_DEPRECATED 0
2097# endif
2098
2099# if ((__clang_major__ * 100) + __clang_minor__) >= 400 && __has_feature(cxx_binary_literals)
2100# define YARP_COMPILER_CXX_BINARY_LITERALS 1
2101# else
2102# define YARP_COMPILER_CXX_BINARY_LITERALS 0
2103# endif
2104
2105# if ((__clang_major__ * 100) + __clang_minor__) >= 400 && __has_feature(cxx_contextual_conversions)
2106# define YARP_COMPILER_CXX_CONTEXTUAL_CONVERSIONS 1
2107# else
2108# define YARP_COMPILER_CXX_CONTEXTUAL_CONVERSIONS 0
2109# endif
2110
2111# if ((__clang_major__ * 100) + __clang_minor__) >= 501 && __cplusplus > 201103L
2112# define YARP_COMPILER_CXX_DECLTYPE_AUTO 1
2113# else
2114# define YARP_COMPILER_CXX_DECLTYPE_AUTO 0
2115# endif
2116
2117# if ((__clang_major__ * 100) + __clang_minor__) >= 501 && __cplusplus > 201103L
2118# define YARP_COMPILER_CXX_DIGIT_SEPARATORS 1
2119# else
2120# define YARP_COMPILER_CXX_DIGIT_SEPARATORS 0
2121# endif
2122
2123# if ((__clang_major__ * 100) + __clang_minor__) >= 501 && __cplusplus > 201103L
2124# define YARP_COMPILER_CXX_GENERIC_LAMBDAS 1
2125# else
2126# define YARP_COMPILER_CXX_GENERIC_LAMBDAS 0
2127# endif
2128
2129# if ((__clang_major__ * 100) + __clang_minor__) >= 400 && __has_feature(cxx_init_captures)
2130# define YARP_COMPILER_CXX_LAMBDA_INIT_CAPTURES 1
2131# else
2132# define YARP_COMPILER_CXX_LAMBDA_INIT_CAPTURES 0
2133# endif
2134
2135# if ((__clang_major__ * 100) + __clang_minor__) >= 400 && __has_feature(cxx_relaxed_constexpr)
2136# define YARP_COMPILER_CXX_RELAXED_CONSTEXPR 1
2137# else
2138# define YARP_COMPILER_CXX_RELAXED_CONSTEXPR 0
2139# endif
2140
2141# if ((__clang_major__ * 100) + __clang_minor__) >= 400 && __has_feature(cxx_return_type_deduction)
2142# define YARP_COMPILER_CXX_RETURN_TYPE_DEDUCTION 1
2143# else
2144# define YARP_COMPILER_CXX_RETURN_TYPE_DEDUCTION 0
2145# endif
2146
2147# if ((__clang_major__ * 100) + __clang_minor__) >= 400 && __has_feature(cxx_variable_templates)
2148# define YARP_COMPILER_CXX_VARIABLE_TEMPLATES 1
2149# else
2150# define YARP_COMPILER_CXX_VARIABLE_TEMPLATES 0
2151# endif
2152
2153# elif YARP_COMPILER_IS_MSVC
2154
2155# if !(_MSC_VER >= 1600)
2156# error Unsupported compiler version
2157# endif
2158
2159 /* _MSC_VER = VVRR */
2160# define YARP_COMPILER_VERSION_MAJOR (_MSC_VER / 100)
2161# define YARP_COMPILER_VERSION_MINOR (_MSC_VER % 100)
2162# if defined(_MSC_FULL_VER)
2163# if _MSC_VER >= 1400
2164 /* _MSC_FULL_VER = VVRRPPPPP */
2165# define YARP_COMPILER_VERSION_PATCH (_MSC_FULL_VER % 100000)
2166# else
2167 /* _MSC_FULL_VER = VVRRPPPP */
2168# define YARP_COMPILER_VERSION_PATCH (_MSC_FULL_VER % 10000)
2169# endif
2170# endif
2171# if defined(_MSC_BUILD)
2172# define YARP_COMPILER_VERSION_TWEAK (_MSC_BUILD)
2173# endif
2174
2175# if _MSC_VER >= 1600
2176# define YARP_COMPILER_CXX_TEMPLATE_TEMPLATE_PARAMETERS 1
2177# else
2178# define YARP_COMPILER_CXX_TEMPLATE_TEMPLATE_PARAMETERS 0
2179# endif
2180
2181# if _MSC_VER >= 1800
2182# define YARP_COMPILER_CXX_ALIAS_TEMPLATES 1
2183# else
2184# define YARP_COMPILER_CXX_ALIAS_TEMPLATES 0
2185# endif
2186
2187# if _MSC_VER >= 1900
2188# define YARP_COMPILER_CXX_ALIGNAS 1
2189# else
2190# define YARP_COMPILER_CXX_ALIGNAS 0
2191# endif
2192
2193# if _MSC_VER >= 1900
2194# define YARP_COMPILER_CXX_ALIGNOF 1
2195# else
2196# define YARP_COMPILER_CXX_ALIGNOF 0
2197# endif
2198
2199# if _MSC_VER >= 1900
2200# define YARP_COMPILER_CXX_ATTRIBUTES 1
2201# else
2202# define YARP_COMPILER_CXX_ATTRIBUTES 0
2203# endif
2204
2205# if _MSC_VER >= 1600
2206# define YARP_COMPILER_CXX_AUTO_TYPE 1
2207# else
2208# define YARP_COMPILER_CXX_AUTO_TYPE 0
2209# endif
2210
2211# if _MSC_VER >= 1900
2212# define YARP_COMPILER_CXX_CONSTEXPR 1
2213# else
2214# define YARP_COMPILER_CXX_CONSTEXPR 0
2215# endif
2216
2217# if _MSC_VER >= 1600
2218# define YARP_COMPILER_CXX_DECLTYPE 1
2219# else
2220# define YARP_COMPILER_CXX_DECLTYPE 0
2221# endif
2222
2223# if _MSC_VER >= 1911
2224# define YARP_COMPILER_CXX_DECLTYPE_INCOMPLETE_RETURN_TYPES 1
2225# else
2226# define YARP_COMPILER_CXX_DECLTYPE_INCOMPLETE_RETURN_TYPES 0
2227# endif
2228
2229# if _MSC_VER >= 1800
2230# define YARP_COMPILER_CXX_DEFAULT_FUNCTION_TEMPLATE_ARGS 1
2231# else
2232# define YARP_COMPILER_CXX_DEFAULT_FUNCTION_TEMPLATE_ARGS 0
2233# endif
2234
2235# if _MSC_VER >= 1800
2236# define YARP_COMPILER_CXX_DEFAULTED_FUNCTIONS 1
2237# else
2238# define YARP_COMPILER_CXX_DEFAULTED_FUNCTIONS 0
2239# endif
2240
2241# if _MSC_VER >= 1900
2242# define YARP_COMPILER_CXX_DEFAULTED_MOVE_INITIALIZERS 1
2243# else
2244# define YARP_COMPILER_CXX_DEFAULTED_MOVE_INITIALIZERS 0
2245# endif
2246
2247# if _MSC_VER >= 1800
2248# define YARP_COMPILER_CXX_DELEGATING_CONSTRUCTORS 1
2249# else
2250# define YARP_COMPILER_CXX_DELEGATING_CONSTRUCTORS 0
2251# endif
2252
2253# if _MSC_VER >= 1900
2254# define YARP_COMPILER_CXX_DELETED_FUNCTIONS 1
2255# else
2256# define YARP_COMPILER_CXX_DELETED_FUNCTIONS 0
2257# endif
2258
2259# if _MSC_VER >= 1700
2260# define YARP_COMPILER_CXX_ENUM_FORWARD_DECLARATIONS 1
2261# else
2262# define YARP_COMPILER_CXX_ENUM_FORWARD_DECLARATIONS 0
2263# endif
2264
2265# if _MSC_VER >= 1800
2266# define YARP_COMPILER_CXX_EXPLICIT_CONVERSIONS 1
2267# else
2268# define YARP_COMPILER_CXX_EXPLICIT_CONVERSIONS 0
2269# endif
2270
2271# if _MSC_VER >= 1600
2272# define YARP_COMPILER_CXX_EXTENDED_FRIEND_DECLARATIONS 1
2273# else
2274# define YARP_COMPILER_CXX_EXTENDED_FRIEND_DECLARATIONS 0
2275# endif
2276
2277# if _MSC_VER >= 1600
2278# define YARP_COMPILER_CXX_EXTERN_TEMPLATES 1
2279# else
2280# define YARP_COMPILER_CXX_EXTERN_TEMPLATES 0
2281# endif
2282
2283# if _MSC_VER >= 1700
2284# define YARP_COMPILER_CXX_FINAL 1
2285# else
2286# define YARP_COMPILER_CXX_FINAL 0
2287# endif
2288
2289# if _MSC_VER >= 1900
2290# define YARP_COMPILER_CXX_FUNC_IDENTIFIER 1
2291# else
2292# define YARP_COMPILER_CXX_FUNC_IDENTIFIER 0
2293# endif
2294
2295# if _MSC_FULL_VER >= 180030723
2296# define YARP_COMPILER_CXX_GENERALIZED_INITIALIZERS 1
2297# else
2298# define YARP_COMPILER_CXX_GENERALIZED_INITIALIZERS 0
2299# endif
2300
2301# if _MSC_VER >= 1900
2302# define YARP_COMPILER_CXX_INHERITING_CONSTRUCTORS 1
2303# else
2304# define YARP_COMPILER_CXX_INHERITING_CONSTRUCTORS 0
2305# endif
2306
2307# if _MSC_VER >= 1900
2308# define YARP_COMPILER_CXX_INLINE_NAMESPACES 1
2309# else
2310# define YARP_COMPILER_CXX_INLINE_NAMESPACES 0
2311# endif
2312
2313# if _MSC_VER >= 1600
2314# define YARP_COMPILER_CXX_LAMBDAS 1
2315# else
2316# define YARP_COMPILER_CXX_LAMBDAS 0
2317# endif
2318
2319# if _MSC_VER >= 1600
2320# define YARP_COMPILER_CXX_LOCAL_TYPE_TEMPLATE_ARGS 1
2321# else
2322# define YARP_COMPILER_CXX_LOCAL_TYPE_TEMPLATE_ARGS 0
2323# endif
2324
2325# if _MSC_VER >= 1600
2326# define YARP_COMPILER_CXX_LONG_LONG_TYPE 1
2327# else
2328# define YARP_COMPILER_CXX_LONG_LONG_TYPE 0
2329# endif
2330
2331# if _MSC_VER >= 1900
2332# define YARP_COMPILER_CXX_NOEXCEPT 1
2333# else
2334# define YARP_COMPILER_CXX_NOEXCEPT 0
2335# endif
2336
2337# if _MSC_VER >= 1900
2338# define YARP_COMPILER_CXX_NONSTATIC_MEMBER_INIT 1
2339# else
2340# define YARP_COMPILER_CXX_NONSTATIC_MEMBER_INIT 0
2341# endif
2342
2343# if _MSC_VER >= 1600
2344# define YARP_COMPILER_CXX_NULLPTR 1
2345# else
2346# define YARP_COMPILER_CXX_NULLPTR 0
2347# endif
2348
2349# if _MSC_VER >= 1600
2350# define YARP_COMPILER_CXX_OVERRIDE 1
2351# else
2352# define YARP_COMPILER_CXX_OVERRIDE 0
2353# endif
2354
2355# if _MSC_VER >= 1700
2356# define YARP_COMPILER_CXX_RANGE_FOR 1
2357# else
2358# define YARP_COMPILER_CXX_RANGE_FOR 0
2359# endif
2360
2361# if _MSC_VER >= 1800
2362# define YARP_COMPILER_CXX_RAW_STRING_LITERALS 1
2363# else
2364# define YARP_COMPILER_CXX_RAW_STRING_LITERALS 0
2365# endif
2366
2367# if _MSC_VER >= 1900
2368# define YARP_COMPILER_CXX_REFERENCE_QUALIFIED_FUNCTIONS 1
2369# else
2370# define YARP_COMPILER_CXX_REFERENCE_QUALIFIED_FUNCTIONS 0
2371# endif
2372
2373# if _MSC_VER >= 1600
2374# define YARP_COMPILER_CXX_RIGHT_ANGLE_BRACKETS 1
2375# else
2376# define YARP_COMPILER_CXX_RIGHT_ANGLE_BRACKETS 0
2377# endif
2378
2379# if _MSC_VER >= 1600
2380# define YARP_COMPILER_CXX_RVALUE_REFERENCES 1
2381# else
2382# define YARP_COMPILER_CXX_RVALUE_REFERENCES 0
2383# endif
2384
2385# if _MSC_VER >= 1900
2386# define YARP_COMPILER_CXX_SIZEOF_MEMBER 1
2387# else
2388# define YARP_COMPILER_CXX_SIZEOF_MEMBER 0
2389# endif
2390
2391# if _MSC_VER >= 1600
2392# define YARP_COMPILER_CXX_STATIC_ASSERT 1
2393# else
2394# define YARP_COMPILER_CXX_STATIC_ASSERT 0
2395# endif
2396
2397# if _MSC_VER >= 1700
2398# define YARP_COMPILER_CXX_STRONG_ENUMS 1
2399# else
2400# define YARP_COMPILER_CXX_STRONG_ENUMS 0
2401# endif
2402
2403# if _MSC_VER >= 1900
2404# define YARP_COMPILER_CXX_THREAD_LOCAL 1
2405# else
2406# define YARP_COMPILER_CXX_THREAD_LOCAL 0
2407# endif
2408
2409# if _MSC_VER >= 1600
2410# define YARP_COMPILER_CXX_TRAILING_RETURN_TYPES 1
2411# else
2412# define YARP_COMPILER_CXX_TRAILING_RETURN_TYPES 0
2413# endif
2414
2415# if _MSC_VER >= 1900
2416# define YARP_COMPILER_CXX_UNICODE_LITERALS 1
2417# else
2418# define YARP_COMPILER_CXX_UNICODE_LITERALS 0
2419# endif
2420
2421# if _MSC_VER >= 1800
2422# define YARP_COMPILER_CXX_UNIFORM_INITIALIZATION 1
2423# else
2424# define YARP_COMPILER_CXX_UNIFORM_INITIALIZATION 0
2425# endif
2426
2427# if _MSC_VER >= 1900
2428# define YARP_COMPILER_CXX_UNRESTRICTED_UNIONS 1
2429# else
2430# define YARP_COMPILER_CXX_UNRESTRICTED_UNIONS 0
2431# endif
2432
2433# if _MSC_VER >= 1900
2434# define YARP_COMPILER_CXX_USER_LITERALS 1
2435# else
2436# define YARP_COMPILER_CXX_USER_LITERALS 0
2437# endif
2438
2439# if _MSC_VER >= 1600
2440# define YARP_COMPILER_CXX_VARIADIC_MACROS 1
2441# else
2442# define YARP_COMPILER_CXX_VARIADIC_MACROS 0
2443# endif
2444
2445# if _MSC_VER >= 1800
2446# define YARP_COMPILER_CXX_VARIADIC_TEMPLATES 1
2447# else
2448# define YARP_COMPILER_CXX_VARIADIC_TEMPLATES 0
2449# endif
2450
2451# if _MSC_FULL_VER >= 190024406
2452# define YARP_COMPILER_CXX_AGGREGATE_DEFAULT_INITIALIZERS 1
2453# else
2454# define YARP_COMPILER_CXX_AGGREGATE_DEFAULT_INITIALIZERS 0
2455# endif
2456
2457# if _MSC_VER >= 1900
2458# define YARP_COMPILER_CXX_ATTRIBUTE_DEPRECATED 1
2459# else
2460# define YARP_COMPILER_CXX_ATTRIBUTE_DEPRECATED 0
2461# endif
2462
2463# if _MSC_VER >= 1900
2464# define YARP_COMPILER_CXX_BINARY_LITERALS 1
2465# else
2466# define YARP_COMPILER_CXX_BINARY_LITERALS 0
2467# endif
2468
2469# if _MSC_VER >= 1800
2470# define YARP_COMPILER_CXX_CONTEXTUAL_CONVERSIONS 1
2471# else
2472# define YARP_COMPILER_CXX_CONTEXTUAL_CONVERSIONS 0
2473# endif
2474
2475# if _MSC_VER >= 1900
2476# define YARP_COMPILER_CXX_DECLTYPE_AUTO 1
2477# else
2478# define YARP_COMPILER_CXX_DECLTYPE_AUTO 0
2479# endif
2480
2481# if _MSC_VER >= 1900
2482# define YARP_COMPILER_CXX_DIGIT_SEPARATORS 1
2483# else
2484# define YARP_COMPILER_CXX_DIGIT_SEPARATORS 0
2485# endif
2486
2487# if _MSC_VER >= 1900
2488# define YARP_COMPILER_CXX_GENERIC_LAMBDAS 1
2489# else
2490# define YARP_COMPILER_CXX_GENERIC_LAMBDAS 0
2491# endif
2492
2493# if _MSC_VER >= 1900
2494# define YARP_COMPILER_CXX_LAMBDA_INIT_CAPTURES 1
2495# else
2496# define YARP_COMPILER_CXX_LAMBDA_INIT_CAPTURES 0
2497# endif
2498
2499# if _MSC_VER >= 1911
2500# define YARP_COMPILER_CXX_RELAXED_CONSTEXPR 1
2501# else
2502# define YARP_COMPILER_CXX_RELAXED_CONSTEXPR 0
2503# endif
2504
2505# if _MSC_VER >= 1900
2506# define YARP_COMPILER_CXX_RETURN_TYPE_DEDUCTION 1
2507# else
2508# define YARP_COMPILER_CXX_RETURN_TYPE_DEDUCTION 0
2509# endif
2510
2511# if _MSC_FULL_VER >= 190023918
2512# define YARP_COMPILER_CXX_VARIABLE_TEMPLATES 1
2513# else
2514# define YARP_COMPILER_CXX_VARIABLE_TEMPLATES 0
2515# endif
2516
2517# else
2518# error Unsupported compiler
2519# endif
2520
2521# if defined(YARP_COMPILER_CXX_ALIGNAS) && YARP_COMPILER_CXX_ALIGNAS
2522# define YARP_ALIGNAS(X) alignas(X)
2523# elif YARP_COMPILER_IS_GNU || YARP_COMPILER_IS_Clang || YARP_COMPILER_IS_AppleClang
2524# define YARP_ALIGNAS(X) __attribute__ ((__aligned__(X)))
2525# elif YARP_COMPILER_IS_MSVC
2526# define YARP_ALIGNAS(X) __declspec(align(X))
2527# else
2528# define YARP_ALIGNAS(X)
2529# endif
2530
2531
2532# if defined(YARP_COMPILER_CXX_ALIGNOF) && YARP_COMPILER_CXX_ALIGNOF
2533# define YARP_ALIGNOF(X) alignof(X)
2534# elif YARP_COMPILER_IS_GNU || YARP_COMPILER_IS_Clang || YARP_COMPILER_IS_AppleClang
2535# define YARP_ALIGNOF(X) __alignof__(X)
2536# elif YARP_COMPILER_IS_MSVC
2537# define YARP_ALIGNOF(X) __alignof(X)
2538# endif
2539
2540
2541# if defined(YARP_COMPILER_CXX_CONSTEXPR) && YARP_COMPILER_CXX_CONSTEXPR
2542# define YARP_CONSTEXPR constexpr
2543# else
2544# define YARP_CONSTEXPR
2545# endif
2546
2547
2548# if defined(YARP_COMPILER_CXX_DELETED_FUNCTIONS) && YARP_COMPILER_CXX_DELETED_FUNCTIONS
2549# define YARP_DELETED_FUNCTION = delete
2550# else
2551# define YARP_DELETED_FUNCTION
2552# endif
2553
2554
2555# if defined(YARP_COMPILER_CXX_EXTERN_TEMPLATES) && YARP_COMPILER_CXX_EXTERN_TEMPLATES
2556# define YARP_EXTERN_TEMPLATE extern
2557# else
2558# define YARP_EXTERN_TEMPLATE
2559# endif
2560
2561
2562# if defined(YARP_COMPILER_CXX_FINAL) && YARP_COMPILER_CXX_FINAL
2563# define YARP_FINAL final
2564# else
2565# define YARP_FINAL
2566# endif
2567
2568
2569# if defined(YARP_COMPILER_CXX_NOEXCEPT) && YARP_COMPILER_CXX_NOEXCEPT
2570# define YARP_NOEXCEPT noexcept
2571# define YARP_NOEXCEPT_EXPR(X) noexcept(X)
2572# else
2573# define YARP_NOEXCEPT
2574# define YARP_NOEXCEPT_EXPR(X)
2575# endif
2576
2577
2578# if defined(YARP_COMPILER_CXX_NULLPTR) && YARP_COMPILER_CXX_NULLPTR
2579# define YARP_NULLPTR nullptr
2580# elif YARP_COMPILER_IS_GNU
2581# define YARP_NULLPTR __null
2582# else
2583# define YARP_NULLPTR 0
2584# endif
2585
2586
2587# if defined(YARP_COMPILER_CXX_OVERRIDE) && YARP_COMPILER_CXX_OVERRIDE
2588# define YARP_OVERRIDE override
2589# else
2590# define YARP_OVERRIDE
2591# endif
2592
2593# if defined(YARP_COMPILER_CXX_STATIC_ASSERT) && YARP_COMPILER_CXX_STATIC_ASSERT
2594# define YARP_STATIC_ASSERT(X) static_assert(X, #X)
2595# define YARP_STATIC_ASSERT_MSG(X, MSG) static_assert(X, MSG)
2596# else
2597# define YARP_STATIC_ASSERT_JOIN(X, Y) YARP_STATIC_ASSERT_JOIN_IMPL(X, Y)
2598# define YARP_STATIC_ASSERT_JOIN_IMPL(X, Y) X##Y
2599template<bool> struct YARPStaticAssert;
2600template<> struct YARPStaticAssert<true>{};
2601# define YARP_STATIC_ASSERT(X) enum { YARP_STATIC_ASSERT_JOIN(YARPStaticAssertEnum, __LINE__) = sizeof(YARPStaticAssert<X>) }
2602# define YARP_STATIC_ASSERT_MSG(X, MSG) enum { YARP_STATIC_ASSERT_JOIN(YARPStaticAssertEnum, __LINE__) = sizeof(YARPStaticAssert<X>) }
2603# endif
2604
2605
2606# if defined(YARP_COMPILER_CXX_THREAD_LOCAL) && YARP_COMPILER_CXX_THREAD_LOCAL
2607# define YARP_THREAD_LOCAL thread_local
2608# elif YARP_COMPILER_IS_GNU || YARP_COMPILER_IS_Clang || YARP_COMPILER_IS_AppleClang
2609# define YARP_THREAD_LOCAL __thread
2610# elif YARP_COMPILER_IS_MSVC
2611# define YARP_THREAD_LOCAL __declspec(thread)
2612# else
2613// YARP_THREAD_LOCAL not defined for this configuration.
2614# endif
2615
2616
2617# ifndef YARP_DEPRECATED
2618# if defined(YARP_COMPILER_CXX_ATTRIBUTE_DEPRECATED) && YARP_COMPILER_CXX_ATTRIBUTE_DEPRECATED
2619# define YARP_DEPRECATED [[deprecated]]
2620# define YARP_DEPRECATED_MSG(MSG) [[deprecated(MSG)]]
2621# elif YARP_COMPILER_IS_GNU || YARP_COMPILER_IS_Clang
2622# define YARP_DEPRECATED __attribute__((__deprecated__))
2623# define YARP_DEPRECATED_MSG(MSG) __attribute__((__deprecated__(MSG)))
2624# elif YARP_COMPILER_IS_MSVC
2625# define YARP_DEPRECATED __declspec(deprecated)
2626# define YARP_DEPRECATED_MSG(MSG) __declspec(deprecated(MSG))
2627# else
2628# define YARP_DEPRECATED
2629# define YARP_DEPRECATED_MSG(MSG)
2630# endif
2631# endif
2632
2633#endif
2634
2635// END <content generated by write_compiler_detection_header>
2636
2637// BEGIN compiler.epilog.swig.in
2638
2639#elif defined(SWIG)
2640
2641# ifdef __cplusplus
2642# define YARP_COMPILER_IS_Comeau 0
2643# define YARP_COMPILER_IS_Intel 0
2644# define YARP_COMPILER_IS_PathScale 0
2645# define YARP_COMPILER_IS_Embarcadero 0
2646# define YARP_COMPILER_IS_Borland 0
2647# define YARP_COMPILER_IS_Watcom 0
2648# define YARP_COMPILER_IS_OpenWatcom 0
2649# define YARP_COMPILER_IS_SunPro 0
2650# define YARP_COMPILER_IS_HP 0
2651# define YARP_COMPILER_IS_Compaq 0
2652# define YARP_COMPILER_IS_zOS 0
2653# define YARP_COMPILER_IS_XL 0
2654# define YARP_COMPILER_IS_VisualAge 0
2655# define YARP_COMPILER_IS_PGI 0
2656# define YARP_COMPILER_IS_Cray 0
2657# define YARP_COMPILER_IS_TI 0
2658# define YARP_COMPILER_IS_Fujitsu 0
2659# define YARP_COMPILER_IS_SCO 0
2660# define YARP_COMPILER_IS_AppleClang 0
2661# define YARP_COMPILER_IS_Clang 0
2662# define YARP_COMPILER_IS_GNU 0
2663# define YARP_COMPILER_IS_MSVC 0
2664# define YARP_COMPILER_IS_ADSP 0
2665# define YARP_COMPILER_IS_IAR 0
2666# define YARP_COMPILER_IS_ARMCC 0
2667# define YARP_COMPILER_IS_MIPSpro 0
2668# define YARP_COMPILER_IS_Doxygen 0
2669# define YARP_COMPILER_IS_Swig 1
2670
2671# if !(SWIG_VERSION >= 0x030000)
2672# error Unsupported compiler version
2673# endif
2674
2675// Swig defines the VERSION in a very peculiar way.
2676// See also http://www.swig.org/Doc3.0/Preprocessor.html
2677# define YARP_COMPILER_VERSION_MAJOR ((((SWIG_VERSION & 0xF00000) >> 20) * 10) + ((SWIG_VERSION & 0x0F0000) >> 16))
2678# define YARP_COMPILER_VERSION_MINOR ((((SWIG_VERSION & 0x00F000) >> 12) * 10) + ((SWIG_VERSION & 0x000F00) >> 8))
2679# define YARP_COMPILER_VERSION_PATCH ((((SWIG_VERSION & 0x0000F0) >> 4) * 10) + (SWIG_VERSION & 0x00000F))
2680
2681// Swig 3 should support most C++ features, with the exception of attributes.
2682// See also http://www.swig.org/Doc3.0/CPlusPlus11.html
2683// Note: This list was not fully tested.
2684# define YARP_COMPILER_CXX_AGGREGATE_DEFAULT_INITIALIZERS 0
2685# define YARP_COMPILER_CXX_ALIAS_TEMPLATES 1
2686# define YARP_COMPILER_CXX_ALIGNAS 1
2687# define YARP_COMPILER_CXX_ALIGNOF 1
2688# define YARP_COMPILER_CXX_ATTRIBUTES 0
2689# define YARP_COMPILER_CXX_ATTRIBUTE_DEPRECATED 0
2690# define YARP_COMPILER_CXX_AUTO_TYPE 1
2691# define YARP_COMPILER_CXX_BINARY_LITERALS 1
2692# define YARP_COMPILER_CXX_CONSTEXPR 1
2693# define YARP_COMPILER_CXX_CONTEXTUAL_CONVERSIONS 1
2694# define YARP_COMPILER_CXX_DECLTYPE 1
2695# define YARP_COMPILER_CXX_DECLTYPE_AUTO 1
2696# define YARP_COMPILER_CXX_DECLTYPE_INCOMPLETE_RETURN_TYPES 1
2697# define YARP_COMPILER_CXX_DEFAULT_FUNCTION_TEMPLATE_ARGS 1
2698# define YARP_COMPILER_CXX_DEFAULTED_FUNCTIONS 1
2699# define YARP_COMPILER_CXX_DEFAULTED_MOVE_INITIALIZERS 1
2700# define YARP_COMPILER_CXX_DELEGATING_CONSTRUCTORS 1
2701# define YARP_COMPILER_CXX_DELETED_FUNCTIONS 1
2702# define YARP_COMPILER_CXX_DIGIT_SEPARATORS 1
2703# define YARP_COMPILER_CXX_ENUM_FORWARD_DECLARATIONS 1
2704# define YARP_COMPILER_CXX_EXPLICIT_CONVERSIONS 1
2705# define YARP_COMPILER_CXX_EXTENDED_FRIEND_DECLARATIONS 1
2706# define YARP_COMPILER_CXX_EXTERN_TEMPLATES 1
2707# define YARP_COMPILER_CXX_FINAL 1
2708# define YARP_COMPILER_CXX_FUNC_IDENTIFIER 1
2709# define YARP_COMPILER_CXX_GENERALIZED_INITIALIZERS 1
2710# define YARP_COMPILER_CXX_GENERIC_LAMBDAS 1
2711# define YARP_COMPILER_CXX_INHERITING_CONSTRUCTORS 1
2712# define YARP_COMPILER_CXX_INLINE_NAMESPACES 1
2713# define YARP_COMPILER_CXX_LAMBDAS 1
2714# define YARP_COMPILER_CXX_LAMBDA_INIT_CAPTURES 1
2715# define YARP_COMPILER_CXX_LOCAL_TYPE_TEMPLATE_ARGS 1
2716# define YARP_COMPILER_CXX_LONG_LONG_TYPE 1
2717# define YARP_COMPILER_CXX_NOEXCEPT 1
2718# define YARP_COMPILER_CXX_NONSTATIC_MEMBER_INIT 1
2719# define YARP_COMPILER_CXX_NULLPTR 1
2720# define YARP_COMPILER_CXX_OVERRIDE 1
2721# define YARP_COMPILER_CXX_RANGE_FOR 1
2722# define YARP_COMPILER_CXX_RAW_STRING_LITERALS 1
2723# define YARP_COMPILER_CXX_REFERENCE_QUALIFIED_FUNCTIONS 1
2724# define YARP_COMPILER_CXX_RELAXED_CONSTEXPR 0
2725# define YARP_COMPILER_CXX_RETURN_TYPE_DEDUCTION 1
2726# define YARP_COMPILER_CXX_RIGHT_ANGLE_BRACKETS 1
2727# define YARP_COMPILER_CXX_RVALUE_REFERENCES 1
2728# define YARP_COMPILER_CXX_SIZEOF_MEMBER 1
2729# define YARP_COMPILER_CXX_STATIC_ASSERT 1
2730# define YARP_COMPILER_CXX_STRONG_ENUMS 1
2731# define YARP_COMPILER_CXX_TEMPLATE_TEMPLATE_PARAMETERS 1
2732# define YARP_COMPILER_CXX_THREAD_LOCAL 1
2733# define YARP_COMPILER_CXX_TRAILING_RETURN_TYPES 1
2734# define YARP_COMPILER_CXX_UNICODE_LITERALS 1
2735# define YARP_COMPILER_CXX_UNIFORM_INITIALIZATION 1
2736# define YARP_COMPILER_CXX_UNRESTRICTED_UNIONS 1
2737# define YARP_COMPILER_CXX_USER_LITERALS 1
2738# define YARP_COMPILER_CXX_VARIABLE_TEMPLATES 0
2739# define YARP_COMPILER_CXX_VARIADIC_MACROS 1
2740# define YARP_COMPILER_CXX_VARIADIC_TEMPLATES 1
2741
2742# endif // __cplusplus
2743
2744// END compiler.epilog.swig.in
2745
2746// BEGIN compiler.epilog.doxygen.in
2747
2748#elif defined(DOXYGEN)
2749
2750# ifdef __cplusplus
2751# define YARP_COMPILER_IS_Comeau 0
2752# define YARP_COMPILER_IS_Intel 0
2753# define YARP_COMPILER_IS_PathScale 0
2754# define YARP_COMPILER_IS_Embarcadero 0
2755# define YARP_COMPILER_IS_Borland 0
2756# define YARP_COMPILER_IS_Watcom 0
2757# define YARP_COMPILER_IS_OpenWatcom 0
2758# define YARP_COMPILER_IS_SunPro 0
2759# define YARP_COMPILER_IS_HP 0
2760# define YARP_COMPILER_IS_Compaq 0
2761# define YARP_COMPILER_IS_zOS 0
2762# define YARP_COMPILER_IS_XL 0
2763# define YARP_COMPILER_IS_VisualAge 0
2764# define YARP_COMPILER_IS_PGI 0
2765# define YARP_COMPILER_IS_Cray 0
2766# define YARP_COMPILER_IS_TI 0
2767# define YARP_COMPILER_IS_Fujitsu 0
2768# define YARP_COMPILER_IS_SCO 0
2769# define YARP_COMPILER_IS_AppleClang 0
2770# define YARP_COMPILER_IS_Clang 0
2771# define YARP_COMPILER_IS_GNU 0
2772# define YARP_COMPILER_IS_MSVC 0
2773# define YARP_COMPILER_IS_ADSP 0
2774# define YARP_COMPILER_IS_IAR 0
2775# define YARP_COMPILER_IS_ARMCC 0
2776# define YARP_COMPILER_IS_MIPSpro 0
2777# define YARP_COMPILER_IS_Doxygen 1
2778# define YARP_COMPILER_IS_Swig 0
2779
2780# define YARP_COMPILER_VERSION_MAJOR DOXYGEN_MAJOR_VERSION
2781# define YARP_COMPILER_VERSION_MINOR DOXYGEN_MINOR_VERSION
2782# define YARP_COMPILER_VERSION_PATCH DOXYGEN_PATCH_VERSION
2783
2784// Doxygen 1.8.12 supports most C++ features.
2785// Previous versions will probably not support all of them.
2786// Note: This list was not fully tested.
2787# define YARP_COMPILER_CXX_AGGREGATE_DEFAULT_INITIALIZERS 1
2788# define YARP_COMPILER_CXX_ALIAS_TEMPLATES 1
2789# define YARP_COMPILER_CXX_ALIGNAS 1
2790# define YARP_COMPILER_CXX_ALIGNOF 1
2791# define YARP_COMPILER_CXX_ATTRIBUTES 1
2792# define YARP_COMPILER_CXX_ATTRIBUTE_DEPRECATED 1
2793# define YARP_COMPILER_CXX_AUTO_TYPE 1
2794# define YARP_COMPILER_CXX_BINARY_LITERALS 1
2795# define YARP_COMPILER_CXX_CONSTEXPR 1
2796# define YARP_COMPILER_CXX_CONTEXTUAL_CONVERSIONS 1
2797# define YARP_COMPILER_CXX_DECLTYPE 1
2798# define YARP_COMPILER_CXX_DECLTYPE_AUTO 1
2799# define YARP_COMPILER_CXX_DECLTYPE_INCOMPLETE_RETURN_TYPES 1
2800# define YARP_COMPILER_CXX_DEFAULT_FUNCTION_TEMPLATE_ARGS 1
2801# define YARP_COMPILER_CXX_DEFAULTED_FUNCTIONS 1
2802# define YARP_COMPILER_CXX_DEFAULTED_MOVE_INITIALIZERS 1
2803# define YARP_COMPILER_CXX_DELEGATING_CONSTRUCTORS 1
2804# define YARP_COMPILER_CXX_DELETED_FUNCTIONS 1
2805# define YARP_COMPILER_CXX_DIGIT_SEPARATORS 1
2806# define YARP_COMPILER_CXX_ENUM_FORWARD_DECLARATIONS 1
2807# define YARP_COMPILER_CXX_EXPLICIT_CONVERSIONS 1
2808# define YARP_COMPILER_CXX_EXTENDED_FRIEND_DECLARATIONS 1
2809# define YARP_COMPILER_CXX_EXTERN_TEMPLATES 1
2810# define YARP_COMPILER_CXX_FINAL 1
2811# define YARP_COMPILER_CXX_FUNC_IDENTIFIER 1
2812# define YARP_COMPILER_CXX_GENERALIZED_INITIALIZERS 1
2813# define YARP_COMPILER_CXX_GENERIC_LAMBDAS 1
2814# define YARP_COMPILER_CXX_INHERITING_CONSTRUCTORS 1
2815# define YARP_COMPILER_CXX_INLINE_NAMESPACES 1
2816# define YARP_COMPILER_CXX_LAMBDAS 1
2817# define YARP_COMPILER_CXX_LAMBDA_INIT_CAPTURES 1
2818# define YARP_COMPILER_CXX_LOCAL_TYPE_TEMPLATE_ARGS 1
2819# define YARP_COMPILER_CXX_LONG_LONG_TYPE 1
2820# define YARP_COMPILER_CXX_NOEXCEPT 1
2821# define YARP_COMPILER_CXX_NONSTATIC_MEMBER_INIT 1
2822# define YARP_COMPILER_CXX_NULLPTR 1
2823# define YARP_COMPILER_CXX_OVERRIDE 1
2824# define YARP_COMPILER_CXX_RANGE_FOR 1
2825# define YARP_COMPILER_CXX_RAW_STRING_LITERALS 1
2826# define YARP_COMPILER_CXX_REFERENCE_QUALIFIED_FUNCTIONS 1
2827# define YARP_COMPILER_CXX_RELAXED_CONSTEXPR 1
2828# define YARP_COMPILER_CXX_RETURN_TYPE_DEDUCTION 1
2829# define YARP_COMPILER_CXX_RIGHT_ANGLE_BRACKETS 1
2830# define YARP_COMPILER_CXX_RVALUE_REFERENCES 1
2831# define YARP_COMPILER_CXX_SIZEOF_MEMBER 1
2832# define YARP_COMPILER_CXX_STATIC_ASSERT 1
2833# define YARP_COMPILER_CXX_STRONG_ENUMS 1
2834# define YARP_COMPILER_CXX_TEMPLATE_TEMPLATE_PARAMETERS 1
2835# define YARP_COMPILER_CXX_THREAD_LOCAL 1
2836# define YARP_COMPILER_CXX_TRAILING_RETURN_TYPES 1
2837# define YARP_COMPILER_CXX_UNICODE_LITERALS 1
2838# define YARP_COMPILER_CXX_UNIFORM_INITIALIZATION 1
2839# define YARP_COMPILER_CXX_UNRESTRICTED_UNIONS 1
2840# define YARP_COMPILER_CXX_USER_LITERALS 1
2841# define YARP_COMPILER_CXX_VARIABLE_TEMPLATES 1
2842# define YARP_COMPILER_CXX_VARIADIC_MACROS 1
2843# define YARP_COMPILER_CXX_VARIADIC_TEMPLATES 1
2844
2845# endif // __cplusplus
2846
2847// END compiler.epilog.doxygen.in
2848
2849// BEGIN compiler.epilog.in
2850
2851#else
2852# error Unsupported compiler
2853#endif
2854
2855
2856// Due to the "#error Unsupported compiler" in the generated file, it is
2857// impossible to enter the section where these defines are actually defined,
2858// therefore this part is copied and pasted here.
2859#if defined(SWIG) || defined(DOXYGEN)
2860# ifdef __cplusplus
2861
2862# if defined(YARP_COMPILER_CXX_ALIGNAS) && YARP_COMPILER_CXX_ALIGNAS
2863# define YARP_ALIGNAS(X) alignas(X)
2864# elif YARP_COMPILER_IS_GNU || YARP_COMPILER_IS_Clang || YARP_COMPILER_IS_AppleClang
2865# define YARP_ALIGNAS(X) __attribute__ ((__aligned__(X)))
2866# elif YARP_COMPILER_IS_MSVC
2867# define YARP_ALIGNAS(X) __declspec(align(X))
2868# else
2869# define YARP_ALIGNAS(X)
2870# endif
2871
2872
2873# if defined(YARP_COMPILER_CXX_ALIGNOF) && YARP_COMPILER_CXX_ALIGNOF
2874# define YARP_ALIGNOF(X) alignof(X)
2875# elif YARP_COMPILER_IS_GNU || YARP_COMPILER_IS_Clang || YARP_COMPILER_IS_AppleClang
2876# define YARP_ALIGNOF(X) __alignof__(X)
2877# elif YARP_COMPILER_IS_MSVC
2878# define YARP_ALIGNOF(X) __alignof(X)
2879# endif
2880
2881
2882# ifndef YARP_DEPRECATED
2883# if defined(YARP_COMPILER_CXX_ATTRIBUTE_DEPRECATED) && YARP_COMPILER_CXX_ATTRIBUTE_DEPRECATED
2884# define YARP_DEPRECATED [[deprecated]]
2885# define YARP_DEPRECATED_MSG(MSG) [[deprecated(MSG)]]
2886# elif YARP_COMPILER_IS_GNU || YARP_COMPILER_IS_Clang
2887# define YARP_DEPRECATED __attribute__((__deprecated__))
2888# define YARP_DEPRECATED_MSG(MSG) __attribute__((__deprecated__(MSG)))
2889# elif YARP_COMPILER_IS_MSVC
2890# define YARP_DEPRECATED __declspec(deprecated)
2891# define YARP_DEPRECATED_MSG(MSG) __declspec(deprecated(MSG))
2892# else
2893# define YARP_DEPRECATED
2894# define YARP_DEPRECATED_MSG(MSG)
2895# endif
2896# endif
2897
2898
2899# if defined(YARP_COMPILER_CXX_CONSTEXPR) && YARP_COMPILER_CXX_CONSTEXPR
2900# define YARP_CONSTEXPR constexpr
2901# else
2902# define YARP_CONSTEXPR
2903# endif
2904
2905
2906# if defined(YARP_COMPILER_CXX_DELETED_FUNCTIONS) && YARP_COMPILER_CXX_DELETED_FUNCTIONS
2907# define YARP_DELETED_FUNCTION = delete
2908# else
2909# define YARP_DELETED_FUNCTION
2910# endif
2911
2912
2913# if defined(YARP_COMPILER_CXX_EXTERN_TEMPLATES) && YARP_COMPILER_CXX_EXTERN_TEMPLATES
2914# define YARP_EXTERN_TEMPLATE extern
2915# else
2916# define YARP_EXTERN_TEMPLATE
2917# endif
2918
2919
2920# if defined(YARP_COMPILER_CXX_FINAL) && YARP_COMPILER_CXX_FINAL
2921# define YARP_FINAL final
2922# else
2923# define YARP_FINAL
2924# endif
2925
2926
2927# if defined(YARP_COMPILER_CXX_NOEXCEPT) && YARP_COMPILER_CXX_NOEXCEPT
2928# define YARP_NOEXCEPT noexcept
2929# define YARP_NOEXCEPT_EXPR(X) noexcept(X)
2930# else
2931# define YARP_NOEXCEPT
2932# define YARP_NOEXCEPT_EXPR(X)
2933# endif
2934
2935
2936# if defined(YARP_COMPILER_CXX_NULLPTR) && YARP_COMPILER_CXX_NULLPTR
2937# define YARP_NULLPTR nullptr
2938# else
2939# define YARP_NULLPTR 0
2940# endif
2941
2942
2943# if defined(YARP_COMPILER_CXX_OVERRIDE) && YARP_COMPILER_CXX_OVERRIDE
2944# define YARP_OVERRIDE override
2945# else
2946# define YARP_OVERRIDE
2947# endif
2948
2949# if defined(YARP_COMPILER_CXX_STATIC_ASSERT) && YARP_COMPILER_CXX_STATIC_ASSERT
2950# define YARP_STATIC_ASSERT(X) static_assert(X, #X)
2951# define YARP_STATIC_ASSERT_MSG(X, MSG) static_assert(X, MSG)
2952# else
2953# define YARP_STATIC_ASSERT_JOIN(X, Y) YARP_STATIC_ASSERT_JOIN_IMPL(X, Y)
2954# define YARP_STATIC_ASSERT_JOIN_IMPL(X, Y) X##Y
2955template<bool> struct YARPStaticAssert;
2956template<> struct YARPStaticAssert<true>{};
2957# define YARP_STATIC_ASSERT(X) enum { YARP_STATIC_ASSERT_JOIN(YARPStaticAssertEnum, __LINE__) = sizeof(YARPStaticAssert<X>) }
2958# define YARP_STATIC_ASSERT_MSG(X, MSG) enum { YARP_STATIC_ASSERT_JOIN(YARPStaticAssertEnum, __LINE__) = sizeof(YARPStaticAssert<X>) }
2959# endif
2960
2961
2962# if defined(YARP_COMPILER_CXX_THREAD_LOCAL) && YARP_COMPILER_CXX_THREAD_LOCAL
2963# define YARP_THREAD_LOCAL thread_local
2964# elif YARP_COMPILER_IS_GNU || YARP_COMPILER_IS_Clang || YARP_COMPILER_IS_AppleClang
2965# define YARP_THREAD_LOCAL __thread
2966# elif YARP_COMPILER_IS_MSVC
2967# define YARP_THREAD_LOCAL __declspec(thread)
2968# else
2969// YARP_THREAD_LOCAL not defined for this configuration.
2970# endif
2971
2972# endif //__cplusplus
2973#endif // defined(SWIG) || defined(DOXYGEN)
2974
2975// END compiler.epilog.in
2976
2977
2978#endif