diff --git a/include/etl/parameter_pack.h b/include/etl/parameter_pack.h index 6883cdbb..a5e5ee7f 100644 --- a/include/etl/parameter_pack.h +++ b/include/etl/parameter_pack.h @@ -134,7 +134,7 @@ namespace etl inline constexpr size_t parameter_pack_v = etl::parameter_pack::template index_of_type::value; #endif -#if ETL_USING_CPP14 +#if ETL_USING_CPP17 && (!ETL_USING_GCC_COMPILER || (__GNUC__ > 7)) //*********************************** template template diff --git a/include/etl/profiles/determine_compiler_language_support.h b/include/etl/profiles/determine_compiler_language_support.h index 9345ed9b..e8a00441 100644 --- a/include/etl/profiles/determine_compiler_language_support.h +++ b/include/etl/profiles/determine_compiler_language_support.h @@ -179,22 +179,24 @@ SOFTWARE. #endif // Language standard -#if ETL_USING_CPP23 - #define ETL_LANGUAGE_STANDARD 23 -#elif ETL_USING_CPP20 - #define ETL_LANGUAGE_STANDARD 20 -#elif ETL_USING_CPP17 - #define ETL_LANGUAGE_STANDARD 17 -#elif ETL_USING_CPP14 - #define ETL_LANGUAGE_STANDARD 14 -#elif ETL_USING_CPP11 - #define ETL_LANGUAGE_STANDARD 11 -#else - #define ETL_LANGUAGE_STANDARD 3 +#if !defined(ETL_LANGUAGE_STANDARD) + #if ETL_USING_CPP23 + #define ETL_LANGUAGE_STANDARD 23 + #elif ETL_USING_CPP20 + #define ETL_LANGUAGE_STANDARD 20 + #elif ETL_USING_CPP17 + #define ETL_LANGUAGE_STANDARD 17 + #elif ETL_USING_CPP14 + #define ETL_LANGUAGE_STANDARD 14 + #elif ETL_USING_CPP11 + #define ETL_LANGUAGE_STANDARD 11 + #else + #define ETL_LANGUAGE_STANDARD 3 + #endif #endif // NAN not defined or Rowley CrossWorks -#if !defined(NAN) || defined(__CROSSWORKS_ARM) || defined(ETL_COMPILER_ARM5) || defined(ARDUINO) +#if !defined(ETL_NO_CPP_NAN_SUPPORT) && (!defined(NAN) || defined(__CROSSWORKS_ARM) || defined(ETL_COMPILER_ARM5) || defined(ARDUINO)) #define ETL_NO_CPP_NAN_SUPPORT #endif