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