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