ESP8266 NodeMCU

ESP8266 Xtensa LX106 · xtensa-lx106 · Version 4.2.1
Click failed rows to see compiler output.

c++17

63/67 features (94%)

Tentpole features — 5 complete, 0 good, 3 partial, 0 unsupported

FeatureStatusCoverage
Structured bindings complete required 1/1
if constexpr complete required 1/1
Fold expressions complete required 1/1
Class template argument deduction complete required 1/1
std::optional partial required 1/1, extensions 0/2
std::variant partial required 1/1, extensions 0/1
std::string_view partial required 1/1, extensions 0/2
std::filesystem complete required 1/1
FeatureMacroValueCompilesStatus
attribute
fallthrough __has_cpp_attribute(fallthrough) 201603 supported
maybe_unused __has_cpp_attribute(maybe_unused) 201603 supported
language
aggregate_bases __cpp_aggregate_bases unreported
aligned_new __cpp_aligned_new 201606 supported
capture_star_this __cpp_capture_star_this 201603 supported
deduction_guides __cpp_deduction_guides 201703 supported
deleted_function __cpp_deleted_function unreported
enumerator_attributes __cpp_enumerator_attributes 201411 supported
fold_expressions __cpp_fold_expressions 201603 supported
guaranteed_copy_elision __cpp_guaranteed_copy_elision 201606 supported
hex_float __cpp_hex_float 201603 supported
if_constexpr __cpp_if_constexpr 201606 supported
inline_variables __cpp_inline_variables 201606 supported
namespace_attributes __cpp_namespace_attributes 201411 supported
noexcept_function_type __cpp_noexcept_function_type 201510 supported
nontype_template_args __cpp_nontype_template_args 201411 macro_lies
src/cpp17__nontype_template_args.cpp:9:12: error: non-type template parameters of class type only available with '-std=c++2a' or '-std=gnu++2a'
    9 | template constexpr int get() { return s.v; }
      |            ^
src/cpp17__nontype_template_args.cpp:10:70: error: no matching function for call to 'get()'
   10 | auto _test_cpp17__nontype_template_args() -> int { return get() - 42; }
      |                                                                      ^
    9 | temp
nontype_template_parameter_auto __cpp_nontype_template_parameter_auto 201606 supported
structured_bindings __cpp_structured_bindings 201606 supported
template_template_args __cpp_template_template_args 201611 supported
variadic_using __cpp_variadic_using 201611 supported
library
addressof_constexpr __cpp_lib_addressof_constexpr 201603 supported
any __cpp_lib_any 201606 supported
apply __cpp_lib_apply 201603 supported
array_constexpr __cpp_lib_array_constexpr 201803 supported
as_const __cpp_lib_as_const 201510 supported
atomic_is_always_lock_free __cpp_lib_atomic_is_always_lock_free 201603 supported
bool_constant __cpp_lib_bool_constant 201505 supported
boyer_moore_searcher __cpp_lib_boyer_moore_searcher 201603 supported
byte __cpp_lib_byte 201603 supported
chrono __cpp_lib_chrono 201611 supported
clamp __cpp_lib_clamp 201603 supported
enable_shared_from_this __cpp_lib_enable_shared_from_this 201603 supported
execution __cpp_lib_execution 201902 supported
filesystem __cpp_lib_filesystem 201703 supported
freestanding_charconv __cpp_lib_freestanding_charconv unreported
gcd_lcm __cpp_lib_gcd_lcm 201606 supported
hardware_interference_size __cpp_lib_hardware_interference_size unsupported
src/cpp17__hardware_interference_size.cpp:9:69: error: 'hardware_destructive_interference_size' is not a member of 'std'
    9 | auto _test_cpp17__hardware_interference_size() -> int { return std::hardware_destructive_interference_size > 0 ? 0 : 1; }
      |                                                                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
has_unique_object_representations __cpp_lib_has_unique_object_representations 201606 supported
hypot __cpp_lib_hypot 201603 supported
incomplete_container_elements __cpp_lib_incomplete_container_elements 201505 supported
invoke __cpp_lib_invoke 201411 supported
is_aggregate __cpp_lib_is_aggregate 201703 supported
is_invocable __cpp_lib_is_invocable 201703 supported
is_swappable __cpp_lib_is_swappable 201603 supported
launder __cpp_lib_launder 201606 supported
logical_traits __cpp_lib_logical_traits 201510 supported
make_from_tuple __cpp_lib_make_from_tuple 201606 supported
map_try_emplace __cpp_lib_map_try_emplace 201411 supported
math_special_functions __cpp_lib_math_special_functions 201603 supported
memory_resource __cpp_lib_memory_resource 1 supported
node_extract __cpp_lib_node_extract 201606 supported
nonmember_container_access __cpp_lib_nonmember_container_access 201411 supported
not_fn __cpp_lib_not_fn 201603 supported
optional __cpp_lib_optional 201606 supported
parallel_algorithm __cpp_lib_parallel_algorithm 201603 supported
raw_memory_algorithms __cpp_lib_raw_memory_algorithms 201606 supported
sample __cpp_lib_sample 201603 supported
scoped_lock __cpp_lib_scoped_lock unsupported
src/cpp17__scoped_lock.cpp:9:10: error: 'mutex' is not a member of 'std'
    9 |     std::mutex m;
      |          ^~~~~
    7 | #include 
  +++ |+#include 
    8 | auto _test_cpp17__scoped_lock() -> int {
src/cpp17__scoped_lock.cpp:10:27: error: 'm' was not declared in this scope; did you mean 'tm'?
   10 |     std::scoped_lock lock(m);
      |                           ^
      |                           tm
shared_mutex __cpp_lib_shared_mutex unsupported
src/cpp17__shared_mutex.cpp:9:48: error: 'shared_mutex' is not a member of 'std'
    9 | auto _test_cpp17__shared_mutex() -> int { std::shared_mutex m; return 0; }
      |                                                ^~~~~~~~~~~~
    8 | #include 
  +++ |+#include 
    9 | auto _test_cpp17__shared_mutex() -> int { std::shared_mutex m; return 0; }
shared_ptr_arrays __cpp_lib_shared_ptr_arrays 201611 supported
shared_ptr_weak_type __cpp_lib_shared_ptr_weak_type 201606 supported
string_view __cpp_lib_string_view 201803 supported
type_trait_variable_templates __cpp_lib_type_trait_variable_templates 201510 supported
uncaught_exceptions __cpp_lib_uncaught_exceptions 201411 supported
unordered_map_try_emplace __cpp_lib_unordered_map_try_emplace 201411 supported
variant __cpp_lib_variant 201606 supported
void_t __cpp_lib_void_t 201411 supported