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