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