Arduino Uno R4 Minima

Renesas RA4M1 · arm-cortex-m4 · Version 1.1.0
Click failed rows to see compiler output.

c++11

20/21 features (95%)
FeatureMacroValueCompilesStatus
language
alias_templates __cpp_alias_templates 200704 supported
attributes __cpp_attributes 200809 supported
constexpr __cpp_constexpr 201304 supported
decltype __cpp_decltype 200707 supported
delegating_constructors __cpp_delegating_constructors 200604 supported
exceptions __cpp_exceptions unsupported
src/cpp11__exceptions.cpp:8:53: error: exception handling disabled, use -fexceptions to enable
 auto _test_cpp11__exceptions() -> int { try { throw 42; } catch (int e) { return e - 42; } return 1; }
                                                     ^~
src/cpp11__exceptions.cpp:8:82: error: 'e' was not declared in this scope
 auto _test_cpp11__exceptions() -> int { try { throw 42; } catch (int e) { return e - 42; } return 1; }
                                                                   
inheriting_constructors __cpp_inheriting_constructors 201511 supported
initializer_lists __cpp_initializer_lists 200806 supported
lambdas __cpp_lambdas 200907 supported
nsdmi __cpp_nsdmi 200809 supported
range_based_for __cpp_range_based_for 200907 supported
raw_strings __cpp_raw_strings 200710 supported
ref_qualifiers __cpp_ref_qualifiers 200710 supported
rvalue_references __cpp_rvalue_references 200610 supported
static_assert_ __cpp_static_assert 200410 supported
threadsafe_static_init __cpp_threadsafe_static_init unreported
unicode_characters __cpp_unicode_characters 200704 supported
unicode_literals __cpp_unicode_literals 200710 supported
user_defined_literals __cpp_user_defined_literals 200809 supported
variadic_templates __cpp_variadic_templates 200704 supported
library
allocator_traits_is_always_equal __cpp_lib_allocator_traits_is_always_equal 201411 supported

c++14

26/29 features (90%)
FeatureMacroValueCompilesStatus
language
aggregate_nsdmi __cpp_aggregate_nsdmi 201304 supported
binary_literals __cpp_binary_literals 201304 supported
decltype_auto __cpp_decltype_auto 201304 supported
generic_lambdas __cpp_generic_lambdas 201304 supported
init_captures __cpp_init_captures 201304 supported
return_type_deduction __cpp_return_type_deduction 201304 supported
sized_deallocation __cpp_sized_deallocation 201309 supported
variable_templates __cpp_variable_templates 201304 supported
library
chrono_udls __cpp_lib_chrono_udls unreported
complex_udls __cpp_lib_complex_udls unsupported
src/cpp14__complex_udls.cpp:11:67: error: request for member 'imag' in 'c', which is of non-class type '__complex__ double'
 auto _test_cpp14__complex_udls() -> int { auto c = 1.0i; return c.imag() == 1.0 ? 0 : 1; }
                                                                   ^~~~
exchange_function __cpp_lib_exchange_function 201304 supported
generic_associative_lookup __cpp_lib_generic_associative_lookup unreported
integer_sequence __cpp_lib_integer_sequence 201304 supported
integral_constant_callable __cpp_lib_integral_constant_callable 201304 supported
is_final __cpp_lib_is_final 201402 supported
is_null_pointer __cpp_lib_is_null_pointer 201309 supported
make_reverse_iterator __cpp_lib_make_reverse_iterator 201402 supported
make_unique __cpp_lib_make_unique unreported
null_iterators __cpp_lib_null_iterators unreported
quoted_string_io __cpp_lib_quoted_string_io unreported
result_of_sfinae __cpp_lib_result_of_sfinae 201210 supported
robust_nonmodifying_seq_ops __cpp_lib_robust_nonmodifying_seq_ops 201304 supported
shared_timed_mutex __cpp_lib_shared_timed_mutex unsupported
src/cpp14__shared_timed_mutex.cpp:9:54: error: 'shared_timed_mutex' is not a member of 'std'
 auto _test_cpp14__shared_timed_mutex() -> int { std::shared_timed_mutex m; return 0; }
                                                      ^~~~~~~~~~~~~~~~~~
string_udls __cpp_lib_string_udls 201304 supported
to_chars __cpp_lib_to_chars unsupported
src/cpp14__to_chars.cpp:8:10: fatal error: charconv: No such file or directory
 #include 
          ^~~~~~~~~~
transformation_trait_aliases __cpp_lib_transformation_trait_aliases 201304 supported
transparent_operators __cpp_lib_transparent_operators 201510 supported
tuple_element_t __cpp_lib_tuple_element_t 201402 supported
tuples_by_type __cpp_lib_tuples_by_type 201304 supported

c++17

19/67 features (28%)

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

FeatureStatusCoverage
Structured bindings complete required 1/1
if constexpr complete required 1/1
Fold expressions complete required 1/1
Class template argument deduction unsupported __cpp_deduction_guides not supported
std::optional unsupported __cpp_lib_optional not supported
std::variant unsupported __cpp_lib_variant not supported
std::string_view unsupported __cpp_lib_string_view not supported
std::filesystem unsupported __cpp_lib_filesystem not supported
FeatureMacroValueCompilesStatus
attribute
fallthrough __has_cpp_attribute(fallthrough) 201603 supported
maybe_unused __has_cpp_attribute(maybe_unused) 201603 supported
language
aggregate_bases __cpp_aggregate_bases unsupported
src/cpp17__aggregate_bases.cpp:10:62: error: no matching function for call to 'Derived::Derived()'
 auto _test_cpp17__aggregate_bases() -> int { Derived d{{1}, 2}; return d.x + d.y - 3; }
                                                              ^
 struct Derived : Base { int y; };
        ^~~~~~~
aligned_new __cpp_aligned_new unreported
capture_star_this __cpp_capture_star_this unreported
deduction_guides __cpp_deduction_guides unsupported
src/cpp17__deduction_guides.cpp:9:65: error: missing template arguments before '(' token
 auto _test_cpp17__deduction_guides() -> int { auto p = std::pair(1, 2.0); return p.first - 1; }
                                                                 ^
deleted_function __cpp_deleted_function unreported
enumerator_attributes __cpp_enumerator_attributes unreported
fold_expressions __cpp_fold_expressions unreported
guaranteed_copy_elision __cpp_guaranteed_copy_elision unsupported
src/cpp17__guaranteed_copy_elision.cpp:9:31: error: use of deleted function 'NoCopy::NoCopy(NoCopy&&)'
 NoCopy make() { return NoCopy{}; }
                               ^
 struct NoCopy { NoCopy() = default; NoCopy(const NoCopy&) = delete; NoCopy(NoCopy&&) = delete; };
                                                                     ^~~~~~
src/cpp17__guaranteed_copy_elision.cpp:10:70: error: use of deleted function 'NoCopy::NoCopy(NoCopy&&)'
 auto _test_cpp17__guaranteed_copy_elision() -> i
hex_float __cpp_hex_float 201603 supported
if_constexpr __cpp_if_constexpr unreported
inline_variables __cpp_inline_variables unreported
namespace_attributes __cpp_namespace_attributes unreported
noexcept_function_type __cpp_noexcept_function_type unsupported
src/cpp17__noexcept_function_type.cpp:9:65: error: 'is_same_v' is not a member of 'std'
 auto _test_cpp17__noexcept_function_type() -> int { return std::is_same_v ? 1 : 0; }
                                                                 ^~~~~~~~~
 auto _test_cpp17__noexcept_function_type() -> int { return std::is_same_v ? 1 : 0; }
                                                                 ^~~~~~~~~
                                        
nontype_template_args __cpp_nontype_template_args unsupported
src/cpp17__nontype_template_args.cpp:9:12: error: 'struct S' is not a valid type for a template non-type parameter
 template constexpr int get() { return s.v; }
            ^
src/cpp17__nontype_template_args.cpp:10:70: error: no matching function for call to 'get()'
 auto _test_cpp17__nontype_template_args() -> int { return get() - 42; }
                                                                      ^
 template constexpr int get() { return s.v; }
                  
nontype_template_parameter_auto __cpp_nontype_template_parameter_auto unsupported
src/cpp17__nontype_template_parameter_auto.cpp:8:15: error: 'auto' parameter not permitted in this context
 template constexpr auto value = N;
               ^
 auto _test_cpp17__nontype_template_parameter_auto() -> int { return value<42> - 42; }
                                                                     ^~~~~~~~~
structured_bindings __cpp_structured_bindings unreported
template_template_args __cpp_template_template_args unsupported
src/cpp17__template_template_args.cpp:10:74: error: type/value mismatch at argument 1 in template parameter list for 'template class C, class T> struct Wrap'
 auto _test_cpp17__template_template_args() -> int { Wrap w; w.c.push_back(42); return w.c[0] - 42; }
                                                                          ^
src/cpp17__template_template_args.cpp:10:81: error: request for member 'c' in 'w', which is of non-class type 'int'
 auto _test_cp
variadic_using __cpp_variadic_using unreported
library
addressof_constexpr __cpp_lib_addressof_constexpr unsupported
src/cpp17__addressof_constexpr.cpp:10:40: error: call to non-constexpr function '_Tp* std::addressof(_Tp&) [with _Tp = const int]'
 constexpr const int* p = std::addressof(x);
                          ~~~~~~~~~~~~~~^~~
any __cpp_lib_any unsupported
                 from src/cpp17__any.cpp:8:
/home/runner/.platformio/packages/toolchain-gccarmnoneeabi@1.70201.0/arm-none-eabi/include/c++/7.2.1/bits/c++17_warning.h:32:2: error: #error This file requires compiler and library support for the ISO C++ 2017 standard. This support must be enabled with the -std=c++17 or -std=gnu++17 compiler options.
 #error This file requires compiler and library support \
  ^~~~~
src/cpp17__any.cpp:11:10: error: 'any' is not a member of 'std'
     std::any a = 42;
apply __cpp_lib_apply unsupported
src/cpp17__apply.cpp:14:17: error: 'apply' is not a member of 'std'
     return std::apply(add, args) - 5;
                 ^~~~~
array_constexpr __cpp_lib_array_constexpr unreported
as_const __cpp_lib_as_const unsupported
src/cpp17__as_const.cpp:13:71: error: 'as_const' is not a member of 'std'
     static_assert(std::is_const>::value, "");
                                                                       ^~~~~~~~
     static_assert(std::is_const>::value, "");
                                                                       ^~~~~~~~
                                                                    
atomic_is_always_lock_free __cpp_lib_atomic_is_always_lock_free unsupported
src/cpp17__atomic_is_always_lock_free.cpp:9:81: error: 'is_always_lock_free' is not a member of 'std::atomic'
 auto _test_cpp17__atomic_is_always_lock_free() -> int { (void)std::atomic::is_always_lock_free; return 0; }
                                                                                 ^~~~~~~~~~~~~~~~~~~
bool_constant __cpp_lib_bool_constant unsupported
src/cpp17__bool_constant.cpp:9:20: error: 'bool_constant' in namespace 'std' does not name a template type
     using t = std::bool_constant;
                    ^~~~~~~~~~~~~
src/cpp17__bool_constant.cpp:10:12: error: 't' has not been declared
     return t::value ? 0 : 1;
            ^
boyer_moore_searcher __cpp_lib_boyer_moore_searcher unsupported
src/cpp17__boyer_moore_searcher.cpp:11:180: error: 'boyer_moore_searcher' is not a member of 'std'
 auto _test_cpp17__boyer_moore_searcher() -> int { std::string haystack = "hello world"; std::string needle = "world"; auto it = std::search(haystack.begin(), haystack.end(), std::boyer_moore_searcher(needle.begin(), needle.end())); return it != haystack.end() ? 0 : 1; }
                                                                                                                                 
byte __cpp_lib_byte unsupported
src/cpp17__byte.cpp:11:10: error: 'byte' is not a member of 'std'
     std::byte b{0x42};
          ^~~~
In file included from /home/runner/.platformio/packages/framework-arduinorenesas-uno/cores/arduino/api/Interrupts.h:27:0,
                 from /home/runner/.platformio/packages/framework-arduinorenesas-uno/cores/arduino/api/ArduinoAPI.h:29,
                 from /home/runner/.platformio/packages/framework-arduinorenesas-uno/cores/arduino/Arduino.h:4,
                 from src/cpp17__byte.cpp
chrono __cpp_lib_chrono unsupported
src/cpp17__chrono.cpp:9:101: error: 'floor' is not a member of 'std::chrono'
 auto _test_cpp17__chrono() -> int { auto d = std::chrono::milliseconds(1500); auto s = std::chrono::floor(d); return s.count() == 1 ? 0 : 1; }
                                                                                                     ^~~~~
In file included from /home/runner/.platformio/packages/toolchain-gccarmnoneeabi@1.70201.0/arm-none-eabi/include/c++/7.2.1/math.h:36:0,
              
clamp __cpp_lib_clamp unsupported
src/cpp17__clamp.cpp:11:20: error: 'clamp' is not a member of 'std'
     int val = std::clamp(150, 0, 100);
                    ^~~~~
enable_shared_from_this __cpp_lib_enable_shared_from_this unreported
execution __cpp_lib_execution unsupported
src/cpp17__execution.cpp:8:10: fatal error: execution: No such file or directory
 #include 
          ^~~~~~~~~~~
filesystem __cpp_lib_filesystem unsupported
src/cpp17__filesystem.cpp:7:10: fatal error: filesystem: No such file or directory
 #include 
          ^~~~~~~~~~~~
freestanding_charconv __cpp_lib_freestanding_charconv unsupported
src/cpp17__freestanding_charconv.cpp:8:10: fatal error: charconv: No such file or directory
 #include 
          ^~~~~~~~~~
gcd_lcm __cpp_lib_gcd_lcm unsupported
src/cpp17__gcd_lcm.cpp:11:17: error: 'gcd' is not a member of 'std'
     return std::gcd(12, 8) - 4;
                 ^~~
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'
 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 unsupported
src/cpp17__has_unique_object_representations.cpp:9:76: error: 'has_unique_object_representations_v' is not a member of 'std'
 auto _test_cpp17__has_unique_object_representations() -> int { return std::has_unique_object_representations_v ? 0 : 1; }
                                                                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/cpp17__has_unique_object_representations.cpp:9:112: error: expected primary-expression before 'int'
 auto _test_cpp17__has_unique_o
hypot __cpp_lib_hypot unsupported
src/cpp17__hypot.cpp:9:71: error: no matching function for call to 'hypot(double, double, double)'
 auto _test_cpp17__hypot() -> int { double h = std::hypot(1.0, 2.0, 2.0); return h > 2.9 && h < 3.1 ? 0 : 1; }
                                                                       ^
In file included from /home/runner/.platformio/packages/toolchain-gccarmnoneeabi@1.70201.0/arm-none-eabi/include/c++/7.2.1/cmath:45:0,
                 from /home/runner/.platformio/packages/toolchain-gccarmnoneeabi@1
incomplete_container_elements __cpp_lib_incomplete_container_elements 201505 supported
invoke __cpp_lib_invoke unsupported
src/cpp17__invoke.cpp:13:17: error: 'invoke' is not a member of 'std'
     return std::invoke(add, 2, 3) - 5;
                 ^~~~~~
     return std::invoke(add, 2, 3) - 5;
                 ^~~~~~
                 __invoke
is_aggregate __cpp_lib_is_aggregate unsupported
src/cpp17__is_aggregate.cpp:11:55: error: 'is_aggregate_v' is not a member of 'std'
 auto _test_cpp17__is_aggregate() -> int { return std::is_aggregate_v && !std::is_aggregate_v ? 0 : 1; }
                                                       ^~~~~~~~~~~~~~
 auto _test_cpp17__is_aggregate() -> int { return std::is_aggregate_v && !std::is_aggregate_v ? 0 : 1; }
                                                       ^~~~~~~~~~~~~~
                                        
is_invocable __cpp_lib_is_invocable unsupported
src/cpp17__is_invocable.cpp:10:55: error: 'is_invocable_v' is not a member of 'std'
 auto _test_cpp17__is_invocable() -> int { return std::is_invocable_v ? 0 : 1; }
                                                       ^~~~~~~~~~~~~~
 auto _test_cpp17__is_invocable() -> int { return std::is_invocable_v ? 0 : 1; }
                                                       ^~~~~~~~~~~~~~
                                                       __is_invo
is_swappable __cpp_lib_is_swappable 201603 supported
launder __cpp_lib_launder unsupported
src/cpp17__launder.cpp:9:65: error: 'launder' is not a member of 'std'
 auto _test_cpp17__launder() -> int { int x = 42; auto* p = std::launder(&x); return *p - 42; }
                                                                 ^~~~~~~
logical_traits __cpp_lib_logical_traits unsupported
src/cpp17__logical_traits.cpp:9:57: error: 'conjunction_v' is not a member of 'std'
 auto _test_cpp17__logical_traits() -> int { return std::conjunction_v ? 0 : 1; }
                                                         ^~~~~~~~~~~~~
 auto _test_cpp17__logical_traits() -> int { return std::conjunction_v ? 0 : 1; }
                                                         ^~~~~~~~~~~~~
                                              
make_from_tuple __cpp_lib_make_from_tuple unsupported
src/cpp17__make_from_tuple.cpp:10:60: error: 'make_from_tuple' is not a member of 'std'
 auto _test_cpp17__make_from_tuple() -> int { auto s = std::make_from_tuple(std::make_tuple(1, 2)); return s.x + s.y - 3; }
                                                            ^~~~~~~~~~~~~~~
 auto _test_cpp17__make_from_tuple() -> int { auto s = std::make_from_tuple(std::make_tuple(1, 2)); return s.x + s.y - 3; }
                                                            ^~~~~~~~~~~~~~~
      
map_try_emplace __cpp_lib_map_try_emplace unsupported
src/cpp17__map_try_emplace.cpp:11:7: error: 'class std::map' has no member named 'try_emplace'; did you mean 'emplace'?
     m.try_emplace(1, 42);
       ^~~~~~~~~~~
       emplace
math_special_functions __cpp_lib_math_special_functions unsupported
src/cpp17__math_special_functions.cpp:9:69: error: 'riemann_zeta' is not a member of 'std'
 auto _test_cpp17__math_special_functions() -> int { double v = std::riemann_zeta(2.0); return v > 1.6 && v < 1.7 ? 0 : 1; }
                                                                     ^~~~~~~~~~~~
 auto _test_cpp17__math_special_functions() -> int { double v = std::riemann_zeta(2.0); return v > 1.6 && v < 1.7 ? 0 : 1; }
                                                                     ^~~~~~~~
memory_resource __cpp_lib_memory_resource unsupported
src/cpp17__memory_resource.cpp:8:10: fatal error: memory_resource: No such file or directory
 #include 
          ^~~~~~~~~~~~~~~~~
node_extract __cpp_lib_node_extract unsupported
src/cpp17__node_extract.cpp:9:89: error: 'class std::map' has no member named 'extract'
 auto _test_cpp17__node_extract() -> int { std::map a = {{1,2}}, b; auto nh = a.extract(1); b.insert(std::move(nh)); return b[1] - 2; }
                                                                                         ^~~~~~~
nonmember_container_access __cpp_lib_nonmember_container_access unsupported
src/cpp17__nonmember_container_access.cpp:9:88: error: 'size' is not a member of 'std'
 auto _test_cpp17__nonmember_container_access() -> int { int a[] = {1,2,3}; return std::size(a) == 3 ? 0 : 1; }
                                                                                        ^~~~
 auto _test_cpp17__nonmember_container_access() -> int { int a[] = {1,2,3}; return std::size(a) == 3 ? 0 : 1; }
                                                                                        ^~~~
   
not_fn __cpp_lib_not_fn unsupported
src/cpp17__not_fn.cpp:10:24: error: 'not_fn' is not a member of 'std'
     auto is_odd = std::not_fn(is_even);
                        ^~~~~~
     auto is_odd = std::not_fn(is_even);
                        ^~~~~~
                        _Not_fn
optional __cpp_lib_optional unsupported
                 from src/cpp17__optional.cpp:8:
/home/runner/.platformio/packages/toolchain-gccarmnoneeabi@1.70201.0/arm-none-eabi/include/c++/7.2.1/bits/c++17_warning.h:32:2: error: #error This file requires compiler and library support for the ISO C++ 2017 standard. This support must be enabled with the -std=c++17 or -std=gnu++17 compiler options.
 #error This file requires compiler and library support \
  ^~~~~
src/cpp17__optional.cpp:11:10: error: 'optional' is not a member of 'std'
     st
parallel_algorithm __cpp_lib_parallel_algorithm unsupported
src/cpp17__parallel_algorithm.cpp:8:10: fatal error: execution: No such file or directory
 #include 
          ^~~~~~~~~~~
raw_memory_algorithms __cpp_lib_raw_memory_algorithms unsupported
src/cpp17__raw_memory_algorithms.cpp:9:240: error: 'destroy' is not a member of 'std'
 auto _test_cpp17__raw_memory_algorithms() -> int { int src[] = {1,2,3}; alignas(int) unsigned char buf[sizeof(src)]; auto* dst = reinterpret_cast(buf); std::uninitialized_copy(src, src+3, dst); int v = dst[0] + dst[1] + dst[2]; std::destroy(dst, dst+3); return v - 6; }
                                                                                                                                         
sample __cpp_lib_sample unsupported
In file included from src/cpp17__sample.cpp:1:0:
src/cpp17__sample.cpp:12:98: error: 'sample' is not a member of 'std'
 auto _test_cpp17__sample() -> int { std::vector v = {1,2,3,4,5}; std::vector out; std::sample(v.begin(), v.end(), std::back_inserter(out), 2, std::mt19937{}); return out.size() == 2 ? 0 : 1; }
                                                                                                  ^~~~~~
 auto _test_cpp17__sample() -> int { std::vector v = {1,2,3,4,5}; s
scoped_lock __cpp_lib_scoped_lock unsupported
src/cpp17__scoped_lock.cpp:9:10: error: 'mutex' is not a member of 'std'
     std::mutex m;
          ^~~~~
src/cpp17__scoped_lock.cpp:10:10: error: 'scoped_lock' is not a member of 'std'
     std::scoped_lock lock(m);
          ^~~~~~~~~~~
     std::scoped_lock lock(m);
          ^~~~~~~~~~~
          adopt_lock
shared_mutex __cpp_lib_shared_mutex unsupported
src/cpp17__shared_mutex.cpp:9:48: error: 'shared_mutex' is not a member of 'std'
 auto _test_cpp17__shared_mutex() -> int { std::shared_mutex m; return 0; }
                                                ^~~~~~~~~~~~
 auto _test_cpp17__shared_mutex() -> int { std::shared_mutex m; return 0; }
                                                ^~~~~~~~~~~~
                                                shared_ptr
shared_ptr_arrays __cpp_lib_shared_ptr_arrays unsupported
                 from src/cpp17__shared_ptr_arrays.cpp:7:
/home/runner/.platformio/packages/toolchain-gccarmnoneeabi@1.70201.0/arm-none-eabi/include/c++/7.2.1/bits/shared_ptr_base.h:1332:11: error: cannot convert 'int (*)[]' to 'std::__shared_ptr::element_type* {aka int*}' in assignment
    _M_ptr = __ptr;
    ~~~~~~~^~~~~~~
In file included from /home/runner/.platformio/packages/toolchain-gccarmnoneeabi@1.70201.0/arm-none-eabi/include/c++/7.2.1/arm-none-eabi/
shared_ptr_weak_type __cpp_lib_shared_ptr_weak_type unsupported
src/cpp17__shared_ptr_weak_type.cpp:9:83: error: 'weak_type' in 'class std::shared_ptr' does not name a type
 auto _test_cpp17__shared_ptr_weak_type() -> int { using W = std::shared_ptr::weak_type; auto sp = std::make_shared(42); W wp = sp; return wp.expired() ? 1 : 0; }
                                                                                   ^~~~~~~~~
src/cpp17__shared_ptr_weak_type.cpp:9:131: error: 'W' was not declared in this scope
 auto _test_cpp17__shared_ptr_weak_
string_view __cpp_lib_string_view unsupported
                 from src/cpp17__string_view.cpp:8:
/home/runner/.platformio/packages/toolchain-gccarmnoneeabi@1.70201.0/arm-none-eabi/include/c++/7.2.1/bits/c++17_warning.h:32:2: error: #error This file requires compiler and library support for the ISO C++ 2017 standard. This support must be enabled with the -std=c++17 or -std=gnu++17 compiler options.
 #error This file requires compiler and library support \
  ^~~~~
In file included from /home/runner/.platformio/packages/toolchain-gccarmnoneea
type_trait_variable_templates __cpp_lib_type_trait_variable_templates unsupported
src/cpp17__type_trait_variable_templates.cpp:9:17: error: 'is_integral_v' is not a member of 'std'
     return std::is_integral_v && !std::is_floating_point_v ? 0 : 1;
                 ^~~~~~~~~~~~~
     return std::is_integral_v && !std::is_floating_point_v ? 0 : 1;
                 ^~~~~~~~~~~~~
                 is_integral
src/cpp17__type_trait_variable_templates.cpp:9:31: error: expected primary-expression before 'int'
     return std::is_integral_v && !std::is_float
uncaught_exceptions __cpp_lib_uncaught_exceptions 201411 supported
unordered_map_try_emplace __cpp_lib_unordered_map_try_emplace unsupported
src/cpp17__unordered_map_try_emplace.cpp:10:98: error: 'class std::unordered_map, int>' has no member named 'try_emplace'; did you mean 'emplace'?
 auto _test_cpp17__unordered_map_try_emplace() -> int { std::unordered_map m; m.try_emplace("key", 42); return m["key"] - 42; }
                                                                                                  ^~~~~~~~~~~
                                                                
variant __cpp_lib_variant unsupported
                 from src/cpp17__variant.cpp:8:
/home/runner/.platformio/packages/toolchain-gccarmnoneeabi@1.70201.0/arm-none-eabi/include/c++/7.2.1/bits/c++17_warning.h:32:2: error: #error This file requires compiler and library support for the ISO C++ 2017 standard. This support must be enabled with the -std=c++17 or -std=gnu++17 compiler options.
 #error This file requires compiler and library support \
  ^~~~~
src/cpp17__variant.cpp:11:10: error: 'variant' is not a member of 'std'
     std::
void_t __cpp_lib_void_t 201411 supported

c++20

10/82 features (12%)

Tentpole features — 0 complete, 0 good, 0 partial, 8 unsupported

FeatureStatusCoverage
Concepts unsupported __cpp_concepts, __cpp_lib_concepts not supported
Ranges unsupported __cpp_lib_ranges, __cpp_concepts not supported
std::format unsupported __cpp_lib_format not supported
Coroutines unsupported __cpp_impl_coroutine, __cpp_lib_coroutine not supported
Modules unsupported __cpp_modules not supported
std::span unsupported __cpp_lib_span not supported
std::jthread unsupported __cpp_lib_jthread not supported
Three-way comparison unsupported __cpp_impl_three_way_comparison, __cpp_lib_three_way_comparison not supported
FeatureMacroValueCompilesStatus
attribute
attr_likely __has_cpp_attribute(likely) unreported
attr_unlikely __has_cpp_attribute(unlikely) unreported
language
aggregate_paren_init __cpp_aggregate_paren_init unsupported
src/cpp20__aggregate_paren_init.cpp:9:59: error: no matching function for call to 'S::S(int, int)'
 auto _test_cpp20__aggregate_paren_init() -> int { S s(1, 2); return s.x + s.y - 3; }
                                                           ^
 struct S { int x; int y; };
        ^
char8_t_lang __cpp_char8_t unsupported
src/cpp20__char8_t_lang.cpp:8:43: error: 'char8_t' was not declared in this scope
 auto _test_cpp20__char8_t_lang() -> int { char8_t c = u8'A'; return c == u8'A' ? 0 : 1; }
                                           ^~~~~~~
 auto _test_cpp20__char8_t_lang() -> int { char8_t c = u8'A'; return c == u8'A' ? 0 : 1; }
                                           ^~~~~~~
                                           char16_t
src/cpp20__char8_t_lang.cpp:8:69: error: 'c' was not declared in this scope
 auto 
concepts __cpp_concepts unsupported
src/cpp20__concepts.cpp:8:10: fatal error: concepts: No such file or directory
 #include 
          ^~~~~~~~~~
conditional_explicit __cpp_conditional_explicit unsupported
src/cpp20__conditional_explicit.cpp:9:42: error: expected unqualified-id before '!' token
 struct S { template explicit(!std::is_same_v) S(T) {} };
                                          ^
src/cpp20__conditional_explicit.cpp:9:42: error: expected ')' before '!' token
src/cpp20__conditional_explicit.cpp:10:57: error: no matching function for call to 'S::S(int)'
 auto _test_cpp20__conditional_explicit() -> int { S s(42); return 0; }
                                          
consteval __cpp_consteval unsupported
src/cpp20__consteval.cpp:8:1: error: 'consteval' does not name a type; did you mean 'constrain'?
 consteval int square(int x) { return x * x; }
 ^~~~~~~~~
 constrain
src/cpp20__consteval.cpp:11:25: error: 'square' was not declared in this scope
     constexpr int val = square(5);
                         ^~~~~~
     constexpr int val = square(5);
                         ^~~~~~
                         sqrt
constexpr_dynamic_alloc __cpp_constexpr_dynamic_alloc unsupported
src/cpp20__constexpr_dynamic_alloc.cpp:8:40: error: call to non-constexpr function 'void* operator new(std::size_t)'
 constexpr int f() { int* p = new int(42); int v = *p; delete p; return v; }
                                        ^
src/cpp20__constexpr_dynamic_alloc.cpp:9:1: error: non-constant condition for static assertion
 static_assert(f() == 42);
 ^~~~~~~~~~~~~
src/cpp20__constexpr_dynamic_alloc.cpp:9:16: error: 'constexpr int f()' called in a constant expression
 static_assert(f() == 4
constexpr_in_decltype __cpp_constexpr_in_decltype unreported
constinit __cpp_constinit unsupported
src/cpp20__constinit.cpp:8:1: error: 'constinit' does not name a type; did you mean 'constrain'?
 constinit int global_val = 42;
 ^~~~~~~~~
 constrain
src/cpp20__constinit.cpp:11:12: error: 'global_val' was not declared in this scope
     return global_val - 42;
            ^~~~~~~~~~
cpp_modules __cpp_modules unsupported
src/cpp20__cpp_modules.cpp:8:10: fatal error: version: No such file or directory
 #include 
          ^~~~~~~~~
designated_initializers __cpp_designated_initializers unreported
impl_coroutine __cpp_impl_coroutine unsupported
src/cpp20__impl_coroutine.cpp:11:10: fatal error: experimental/coroutine: No such file or directory
 #include 
          ^~~~~~~~~~~~~~~~~~~~~~~~
impl_destroying_delete __cpp_impl_destroying_delete unsupported
src/cpp20__impl_destroying_delete.cpp:9:58: error: 'std::destroying_delete_t' has not been declared
 struct S { int v; static void operator delete(S* p, std::destroying_delete_t) { p->~S(); ::operator delete(p); } };
                                                          ^~~~~~~~~~~~~~~~~~~
src/cpp20__impl_destroying_delete.cpp:9:77: error: 'operator delete' takes type 'void*' as first parameter
 struct S { int v; static void operator delete(S* p, std::destroying_delete_t) { p->~S(); ::operat
impl_three_way_comparison __cpp_impl_three_way_comparison unsupported
src/cpp20__impl_three_way_comparison.cpp:8:10: fatal error: compare: No such file or directory
 #include 
          ^~~~~~~~~
using_enum __cpp_using_enum unsupported
src/cpp20__using_enum.cpp:9:47: error: expected nested-name-specifier before 'enum'
 auto _test_cpp20__using_enum() -> int { using enum Color; return static_cast(Green) == 1 ? 0 : 1; }
                                               ^~~~
src/cpp20__using_enum.cpp:9:83: error: 'Green' was not declared in this scope
 auto _test_cpp20__using_enum() -> int { using enum Color; return static_cast(Green) == 1 ? 0 : 1; }
                                                                          
library
algorithm_iterator_requirements __cpp_lib_algorithm_iterator_requirements unreported
assume_aligned __cpp_lib_assume_aligned unsupported
src/cpp20__assume_aligned.cpp:9:91: error: 'assume_aligned' is not a member of 'std'
 auto _test_cpp20__assume_aligned() -> int { alignas(64) int buf[4] = {42}; auto* p = std::assume_aligned<64>(buf); return p[0] - 42; }
                                                                                           ^~~~~~~~~~~~~~
 auto _test_cpp20__assume_aligned() -> int { alignas(64) int buf[4] = {42}; auto* p = std::assume_aligned<64>(buf); return p[0] - 42; }
                                     
atomic_flag_test __cpp_lib_atomic_flag_test unsupported
src/cpp20__atomic_flag_test.cpp:9:95: error: 'struct std::atomic_flag' has no member named 'test'
 auto _test_cpp20__atomic_flag_test() -> int { std::atomic_flag f = ATOMIC_FLAG_INIT; return f.test() ? 1 : 0; }
                                                                                               ^~~~
atomic_float __cpp_lib_atomic_float unreported
atomic_lock_free_type_aliases __cpp_lib_atomic_lock_free_type_aliases unsupported
src/cpp20__atomic_lock_free_type_aliases.cpp:9:65: error: 'atomic_signed_lock_free' is not a member of 'std'
 auto _test_cpp20__atomic_lock_free_type_aliases() -> int { std::atomic_signed_lock_free a{0}; a.store(42); return a.load() - 42; }
                                                                 ^~~~~~~~~~~~~~~~~~~~~~~
 auto _test_cpp20__atomic_lock_free_type_aliases() -> int { std::atomic_signed_lock_free a{0}; a.store(42); return a.load() - 42; }
                                      
atomic_ref __cpp_lib_atomic_ref unsupported
src/cpp20__atomic_ref.cpp:9:57: error: 'atomic_ref' is not a member of 'std'
 auto _test_cpp20__atomic_ref() -> int { int x = 0; std::atomic_ref r(x); r.store(42); return r.load() - 42; }
                                                         ^~~~~~~~~~
 auto _test_cpp20__atomic_ref() -> int { int x = 0; std::atomic_ref r(x); r.store(42); return r.load() - 42; }
                                                         ^~~~~~~~~~
                                                       
atomic_shared_ptr __cpp_lib_atomic_shared_ptr unsupported
In file included from src/cpp20__atomic_shared_ptr.cpp:8:0:
/home/runner/.platformio/packages/toolchain-gccarmnoneeabi@1.70201.0/arm-none-eabi/include/c++/7.2.1/atomic:187:7: error: static assertion failed: std::atomic requires a trivially copyable type
       static_assert(__is_trivially_copyable(_Tp),
       ^~~~~~~~~~~~~
atomic_value_initialization __cpp_lib_atomic_value_initialization unreported
atomic_wait __cpp_lib_atomic_wait unsupported
src/cpp20__atomic_wait.cpp:9:68: error: 'struct std::atomic' has no member named 'wait'
 auto _test_cpp20__atomic_wait() -> int { std::atomic a{42}; a.wait(0); return 0; }
                                                                    ^~~~
barrier __cpp_lib_barrier unsupported
src/cpp20__barrier.cpp:8:10: fatal error: barrier: No such file or directory
 #include 
          ^~~~~~~~~
bind_front __cpp_lib_bind_front unsupported
src/cpp20__bind_front.cpp:13:22: error: 'bind_front' is not a member of 'std'
     auto add5 = std::bind_front(add, 5);
                      ^~~~~~~~~~
     auto add5 = std::bind_front(add, 5);
                      ^~~~~~~~~~
                      binder2nd
bit_cast __cpp_lib_bit_cast unsupported
src/cpp20__bit_cast.cpp:8:10: fatal error: bit: No such file or directory
 #include 
          ^~~~~
bitops __cpp_lib_bitops unsupported
src/cpp20__bitops.cpp:7:10: fatal error: bit: No such file or directory
 #include 
          ^~~~~
bounded_array_traits __cpp_lib_bounded_array_traits unsupported
src/cpp20__bounded_array_traits.cpp:9:63: error: 'is_bounded_array_v' is not a member of 'std'
 auto _test_cpp20__bounded_array_traits() -> int { return std::is_bounded_array_v && !std::is_bounded_array_v ? 0 : 1; }
                                                               ^~~~~~~~~~~~~~~~~~
src/cpp20__bounded_array_traits.cpp:9:82: error: expected primary-expression before 'int'
 auto _test_cpp20__bounded_array_traits() -> int { return std::is_bounded_array_v && !std
char8_t_lib __cpp_lib_char8_t unsupported
src/cpp20__char8_t_lib.cpp:9:47: error: 'u8string' is not a member of 'std'
 auto _test_cpp20__char8_t_lib() -> int { std::u8string s = u8"hello"; return s.size() == 5 ? 0 : 1; }
                                               ^~~~~~~~
 auto _test_cpp20__char8_t_lib() -> int { std::u8string s = u8"hello"; return s.size() == 5 ? 0 : 1; }
                                               ^~~~~~~~
                                               isprint
src/cpp20__char8_t_lib.cpp:9:78: error: 's' was not
common_reference __cpp_lib_common_reference unsupported
src/cpp20__common_reference.cpp:9:62: error: 'common_reference_t' in namespace 'std' does not name a template type
 auto _test_cpp20__common_reference() -> int { using T = std::common_reference_t; return std::is_same_v ? 0 : 1; }
                                                              ^~~~~~~~~~~~~~~~~~
src/cpp20__common_reference.cpp:9:112: error: 'is_same_v' is not a member of 'std'
 auto _test_cpp20__common_reference() -> int { using T = std::common_refe
common_reference_wrapper __cpp_lib_common_reference_wrapper unsupported
src/cpp20__common_reference_wrapper.cpp:10:70: error: 'common_reference_t' in namespace 'std' does not name a template type
 auto _test_cpp20__common_reference_wrapper() -> int { using T = std::common_reference_t>; return std::is_reference_v ? 0 : 1; }
                                                                      ^~~~~~~~~~~~~~~~~~
src/cpp20__common_reference_wrapper.cpp:10:137: error: 'is_reference_v' is not a member of 'std'
 auto _test_cpp20__commo
concepts_lib __cpp_lib_concepts unsupported
src/cpp20__concepts_lib.cpp:8:10: fatal error: concepts: No such file or directory
 #include 
          ^~~~~~~~~~
constexpr_algorithms __cpp_lib_constexpr_algorithms unsupported
src/cpp20__constexpr_algorithms.cpp:10:33: error: missing template arguments before 'a'
 constexpr auto f() { std::array a{3,1,2}; std::sort(a.begin(), a.end()); return a[0]; }
                                 ^
src/cpp20__constexpr_algorithms.cpp:10:53: error: 'a' was not declared in this scope
 constexpr auto f() { std::array a{3,1,2}; std::sort(a.begin(), a.end()); return a[0]; }
                                                     ^
src/cpp20__constexpr_algorithms.cpp:11:19: error: invalid o
constexpr_complex __cpp_lib_constexpr_complex unreported
constexpr_dynamic_alloc_lib __cpp_lib_constexpr_dynamic_alloc unsupported
src/cpp20__constexpr_dynamic_alloc_lib.cpp:9:41: error: variable 'a' of non-literal type 'std::allocator' in 'constexpr' function
 constexpr int f() { std::allocator a; int* p = a.allocate(1); *p = 42; int v = *p; a.deallocate(p, 1); return v; }
                                         ^
In file included from /home/runner/.platformio/packages/toolchain-gccarmnoneeabi@1.70201.0/arm-none-eabi/include/c++/7.2.1/string:41:0,
                 from /home/runner/.platformio/packages/toolchain
constexpr_functional __cpp_lib_constexpr_functional unsupported
src/cpp20__constexpr_functional.cpp:10:20: error: 'invoke' is not a member of 'std'
 static_assert(std::invoke(add, 2, 3) == 5);
                    ^~~~~~
 static_assert(std::invoke(add, 2, 3) == 5);
                    ^~~~~~
                    __invoke
constexpr_iterator __cpp_lib_constexpr_iterator unsupported
src/cpp20__constexpr_iterator.cpp:10:73: error: call to non-constexpr function 'decltype (__cont.begin()) std::begin(_Container&) [with _Container = std::array; decltype (__cont.begin()) = int*]'
 constexpr int f() { std::array a = {1, 2, 3}; return *std::begin(a); }
                                                               ~~~~~~~~~~^~~
src/cpp20__constexpr_iterator.cpp:11:1: error: non-constant condition for static assertion
 static_assert(f() == 1);
 ^~~~~~~~~~~~~
src/cpp
constexpr_memory __cpp_lib_constexpr_memory unsupported
src/cpp20__constexpr_memory.cpp:9:37: error: 'construct_at' is not a member of 'std'
 constexpr int f() { int x = 0; std::construct_at(&x, 42); return x; }
                                     ^~~~~~~~~~~~
 constexpr int f() { int x = 0; std::construct_at(&x, 42); return x; }
                                     ^~~~~~~~~~~~
                                     _Construct
src/cpp20__constexpr_memory.cpp:10:1: error: static assertion failed
 static_assert(f() == 42);
 ^~~~~~~~~~~~~
In file includ
constexpr_numeric __cpp_lib_constexpr_numeric unsupported
src/cpp20__constexpr_numeric.cpp:10:77: error: call to non-constexpr function '_Tp std::accumulate(_InputIterator, _InputIterator, _Tp) [with _InputIterator = int*; _Tp = int]'
 constexpr int f() { std::array a = {1, 2, 3}; return std::accumulate(a.begin(), a.end(), 0); }
                                                              ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
src/cpp20__constexpr_numeric.cpp:11:1: error: non-constant condition for static assertion
 static_assert(f() == 6);
 ^
constexpr_string __cpp_lib_constexpr_string unsupported
src/cpp20__constexpr_string.cpp:9:37: error: variable 's' of non-literal type 'std::__cxx11::string {aka std::__cxx11::basic_string}' in 'constexpr' function
 constexpr int f() { std::string s = "hi"; return s.size(); }
                                     ^~~~
In file included from /home/runner/.platformio/packages/toolchain-gccarmnoneeabi@1.70201.0/arm-none-eabi/include/c++/7.2.1/string:52:0,
                 from /home/runner/.platformio/packages/toolchain-gccarmnoneeabi@1.70201.0/arm-n
constexpr_string_view __cpp_lib_constexpr_string_view unsupported
                 from src/cpp20__constexpr_string_view.cpp:8:
/home/runner/.platformio/packages/toolchain-gccarmnoneeabi@1.70201.0/arm-none-eabi/include/c++/7.2.1/bits/c++17_warning.h:32:2: error: #error This file requires compiler and library support for the ISO C++ 2017 standard. This support must be enabled with the -std=c++17 or -std=gnu++17 compiler options.
 #error This file requires compiler and library support \
  ^~~~~
src/cpp20__constexpr_string_view.cpp:9:16: error: 'string_view' in n
constexpr_tuple __cpp_lib_constexpr_tuple unreported
constexpr_utility __cpp_lib_constexpr_utility unsupported
src/cpp20__constexpr_utility.cpp:9:55: error: call to non-constexpr function '_Tp std::exchange(_Tp&, _Up&&) [with _Tp = int; _Up = int]'
 constexpr int f() { int x = 1; int old = std::exchange(x, 42); return x + old; }
                                          ~~~~~~~~~~~~~^~~~~~~
src/cpp20__constexpr_utility.cpp:10:1: error: non-constant condition for static assertion
 static_assert(f() == 43);
 ^~~~~~~~~~~~~
src/cpp20__constexpr_utility.cpp:10:16: error: 'constexpr int f()' called in a consta
constexpr_vector __cpp_lib_constexpr_vector unsupported
src/cpp20__constexpr_vector.cpp:9:48: error: variable 'v' of non-literal type 'std::vector' in 'constexpr' function
 constexpr int f() { std::vector v = {1,2,3}; return v.size(); }
                                                ^
In file included from /home/runner/.platformio/packages/toolchain-gccarmnoneeabi@1.70201.0/arm-none-eabi/include/c++/7.2.1/vector:64:0,
                 from src/cpp20__constexpr_vector.cpp:8:
src/cpp20__constexpr_vector.cpp:10:1: error: non-constant conditio
constrained_equality __cpp_lib_constrained_equality unsupported
                 from src/cpp20__constrained_equality.cpp:9:
/home/runner/.platformio/packages/toolchain-gccarmnoneeabi@1.70201.0/arm-none-eabi/include/c++/7.2.1/bits/c++17_warning.h:32:2: error: #error This file requires compiler and library support for the ISO C++ 2017 standard. This support must be enabled with the -std=c++17 or -std=gnu++17 compiler options.
 #error This file requires compiler and library support \
  ^~~~~
src/cpp20__constrained_equality.cpp:10:56: error: 'optional' is not a
coroutine __cpp_lib_coroutine unsupported
src/cpp20__coroutine.cpp:8:10: fatal error: coroutine: No such file or directory
 #include 
          ^~~~~~~~~~~
destroying_delete __cpp_lib_destroying_delete unsupported
src/cpp20__destroying_delete.cpp:9:64: error: 'std::destroying_delete_t' has not been declared
 struct Node { int v; static void operator delete(Node* p, std::destroying_delete_t) { p->~Node(); ::operator delete(p); } };
                                                                ^~~~~~~~~~~~~~~~~~~
src/cpp20__destroying_delete.cpp:9:83: error: 'operator delete' takes type 'void*' as first parameter
 struct Node { int v; static void operator delete(Node* p, std::destroying_delete_t) { p->~No
endian __cpp_lib_endian unsupported
src/cpp20__endian.cpp:7:10: fatal error: bit: No such file or directory
 #include 
          ^~~~~
erase_if __cpp_lib_erase_if unsupported
src/cpp20__erase_if.cpp:10:10: error: 'erase_if' is not a member of 'std'
     std::erase_if(v, [](int x) { return x % 2 == 0; });
          ^~~~~~~~
     std::erase_if(v, [](int x) { return x % 2 == 0; });
          ^~~~~~~~
          enable_if
format __cpp_lib_format unsupported
src/cpp20__format.cpp:8:10: fatal error: format: No such file or directory
 #include 
          ^~~~~~~~
format_uchar __cpp_lib_format_uchar unsupported
src/cpp20__format_uchar.cpp:8:10: fatal error: format: No such file or directory
 #include 
          ^~~~~~~~
freestanding_ranges __cpp_lib_freestanding_ranges unsupported
src/cpp20__freestanding_ranges.cpp:8:10: fatal error: ranges: No such file or directory
 #include 
          ^~~~~~~~
generic_unordered_lookup __cpp_lib_generic_unordered_lookup unsupported
src/cpp20__generic_unordered_lookup.cpp:10:67: error: 'std::string_view' has not been declared
 struct Hash { using is_transparent = void; size_t operator()(std::string_view sv) const { return std::hash{}(sv); } };
                                                                   ^~~~~~~~~~~
src/cpp20__generic_unordered_lookup.cpp:10:113: error: 'string_view' is not a member of 'std'
 struct Hash { using is_transparent = void; size_t operator()(std::string_view sv) const { ret
int_pow2 __cpp_lib_int_pow2 unsupported
src/cpp20__int_pow2.cpp:8:10: fatal error: bit: No such file or directory
 #include 
          ^~~~~
integer_comparison_functions __cpp_lib_integer_comparison_functions unsupported
src/cpp20__integer_comparison_functions.cpp:9:71: error: 'cmp_less' is not a member of 'std'
 auto _test_cpp20__integer_comparison_functions() -> int { return std::cmp_less(-1, 1u) ? 0 : 1; }
                                                                       ^~~~~~~~
 auto _test_cpp20__integer_comparison_functions() -> int { return std::cmp_less(-1, 1u) ? 0 : 1; }
                                                                       ^~~~~~~~
                                                 
interpolate __cpp_lib_interpolate unsupported
src/cpp20__interpolate.cpp:9:56: error: 'midpoint' is not a member of 'std'
 auto _test_cpp20__interpolate() -> int { auto m = std::midpoint(1, 3); auto l = std::lerp(0.0, 1.0, 0.5); return (m == 2 && l == 0.5) ? 0 : 1; }
                                                        ^~~~~~~~
 auto _test_cpp20__interpolate() -> int { auto m = std::midpoint(1, 3); auto l = std::lerp(0.0, 1.0, 0.5); return (m == 2 && l == 0.5) ? 0 : 1; }
                                                        ^~~~~~~~
  
is_constant_evaluated __cpp_lib_is_constant_evaluated unsupported
src/cpp20__is_constant_evaluated.cpp:9:30: error: 'is_constant_evaluated' is not a member of 'std'
 constexpr int f() { if (std::is_constant_evaluated()) return 1; return 0; }
                              ^~~~~~~~~~~~~~~~~~~~~
src/cpp20__is_constant_evaluated.cpp:10:71: error: 'constexpr int f()' called in a constant expression
 auto _test_cpp20__is_constant_evaluated() -> int { constexpr int v = f(); return v == 1 ? 0 : 1; }
                                                                     
is_nothrow_convertible __cpp_lib_is_nothrow_convertible unsupported
src/cpp20__is_nothrow_convertible.cpp:9:65: error: 'is_nothrow_convertible_v' is not a member of 'std'
 auto _test_cpp20__is_nothrow_convertible() -> int { return std::is_nothrow_convertible_v ? 0 : 1; }
                                                                 ^~~~~~~~~~~~~~~~~~~~~~~~
 auto _test_cpp20__is_nothrow_convertible() -> int { return std::is_nothrow_convertible_v ? 0 : 1; }
                                                                 ^~~~~~~~~~~~~~
jthread __cpp_lib_jthread unsupported
src/cpp20__jthread.cpp:8:10: fatal error: stop_token: No such file or directory
 #include 
          ^~~~~~~~~~~~
latch __cpp_lib_latch unsupported
src/cpp20__latch.cpp:8:10: fatal error: latch: No such file or directory
 #include 
          ^~~~~~~
list_remove_return_type __cpp_lib_list_remove_return_type unsupported
src/cpp20__list_remove_return_type.cpp:9:92: error: 'void n' has incomplete type
 auto _test_cpp20__list_remove_return_type() -> int { std::list l = {1, 2, 2, 3}; auto n = l.remove(2); return n == 2 ? 0 : 1; }
                                                                                            ^
math_constants __cpp_lib_math_constants unsupported
src/cpp20__math_constants.cpp:7:10: fatal error: numbers: No such file or directory
 #include 
          ^~~~~~~~~
modules_lib __cpp_lib_modules unsupported
src/cpp20__modules_lib.cpp:8:10: fatal error: version: No such file or directory
 #include 
          ^~~~~~~~~
move_iterator_concept __cpp_lib_move_iterator_concept unreported
polymorphic_allocator __cpp_lib_polymorphic_allocator unsupported
src/cpp20__polymorphic_allocator.cpp:8:10: fatal error: memory_resource: No such file or directory
 #include 
          ^~~~~~~~~~~~~~~~~
ranges __cpp_lib_ranges unsupported
src/cpp20__ranges.cpp:8:10: fatal error: ranges: No such file or directory
 #include 
          ^~~~~~~~
remove_cvref __cpp_lib_remove_cvref unsupported
src/cpp20__remove_cvref.cpp:9:55: error: 'is_same_v' is not a member of 'std'
 auto _test_cpp20__remove_cvref() -> int { return std::is_same_v, int> ? 0 : 1; }
                                                       ^~~~~~~~~
 auto _test_cpp20__remove_cvref() -> int { return std::is_same_v, int> ? 0 : 1; }
                                                       ^~~~~~~~~
                                                       is_same
s
semaphore __cpp_lib_semaphore unsupported
src/cpp20__semaphore.cpp:8:10: fatal error: semaphore: No such file or directory
 #include 
          ^~~~~~~~~~~
shift __cpp_lib_shift unsupported
src/cpp20__shift.cpp:10:48: error: missing template arguments before 'v'
 auto _test_cpp20__shift() -> int { std::vector v = {1,2,3,4,5}; std::shift_left(v.begin(), v.end(), 2); return v[0] == 3 ? 0 : 1; }
                                                ^
src/cpp20__shift.cpp:10:70: error: 'shift_left' is not a member of 'std'
 auto _test_cpp20__shift() -> int { std::vector v = {1,2,3,4,5}; std::shift_left(v.begin(), v.end(), 2); return v[0] == 3 ? 0 : 1; }
                                      
smart_ptr_for_overwrite __cpp_lib_smart_ptr_for_overwrite unsupported
src/cpp20__smart_ptr_for_overwrite.cpp:9:68: error: 'make_unique_for_overwrite' is not a member of 'std'
 auto _test_cpp20__smart_ptr_for_overwrite() -> int { auto p = std::make_unique_for_overwrite(); *p = 42; return *p - 42; }
                                                                    ^~~~~~~~~~~~~~~~~~~~~~~~~
src/cpp20__smart_ptr_for_overwrite.cpp:9:94: error: expected primary-expression before 'int'
 auto _test_cpp20__smart_ptr_for_overwrite() -> int { auto p = std::make_unique
source_location __cpp_lib_source_location unsupported
src/cpp20__source_location.cpp:7:10: fatal error: source_location: No such file or directory
 #include 
          ^~~~~~~~~~~~~~~~~
span __cpp_lib_span unsupported
src/cpp20__span.cpp:8:10: fatal error: span: No such file or directory
 #include 
          ^~~~~~
ssize __cpp_lib_ssize unsupported
src/cpp20__ssize.cpp:9:67: error: 'ssize' is not a member of 'std'
 auto _test_cpp20__ssize() -> int { int a[] = {1,2,3}; return std::ssize(a) == 3 ? 0 : 1; }
                                                                   ^~~~~
starts_ends_with __cpp_lib_starts_ends_with unsupported
src/cpp20__starts_ends_with.cpp:10:14: error: 'std::__cxx11::string {aka class std::__cxx11::basic_string}' has no member named 'starts_with'
     return s.starts_with("hello") && s.ends_with("world") ? 0 : 1;
              ^~~~~~~~~~~
src/cpp20__starts_ends_with.cpp:10:40: error: 'std::__cxx11::string {aka class std::__cxx11::basic_string}' has no member named 'ends_with'
     return s.starts_with("hello") && s.ends_with("world") ? 0 : 1;
                                        ^~~~
syncbuf __cpp_lib_syncbuf unsupported
src/cpp20__syncbuf.cpp:8:10: fatal error: syncstream: No such file or directory
 #include 
          ^~~~~~~~~~~~
three_way_comparison_lib __cpp_lib_three_way_comparison unsupported
src/cpp20__three_way_comparison_lib.cpp:8:10: fatal error: compare: No such file or directory
 #include 
          ^~~~~~~~~
to_address __cpp_lib_to_address unsupported
src/cpp20__to_address.cpp:9:79: error: 'to_address' is not a member of 'std'
 auto _test_cpp20__to_address() -> int { int x = 42; int* p = &x; return *std::to_address(p) - 42; }
                                                                               ^~~~~~~~~~
 auto _test_cpp20__to_address() -> int { int x = 42; int* p = &x; return *std::to_address(p) - 42; }
                                                                               ^~~~~~~~~~
                                         
to_array __cpp_lib_to_array unsupported
src/cpp20__to_array.cpp:11:21: error: 'to_array' is not a member of 'std'
     auto arr = std::to_array({1, 2, 3, 4, 5});
                     ^~~~~~~~
     auto arr = std::to_array({1, 2, 3, 4, 5});
                     ^~~~~~~~
                     is_array
type_identity __cpp_lib_type_identity unsupported
src/cpp20__type_identity.cpp:9:37: error: 'std::type_identity_t' has not been declared
 template void f(T, std::type_identity_t) {}
                                     ^~~~~~~~~~~~~~~
src/cpp20__type_identity.cpp:9:52: error: expected ',' or '...' before '<' token
 template void f(T, std::type_identity_t) {}
                                                    ^
unwrap_ref __cpp_lib_unwrap_ref unsupported
src/cpp20__unwrap_ref.cpp:9:69: error: 'ref' is not a member of 'std'
 auto _test_cpp20__unwrap_ref() -> int { int x = 42; auto ref = std::ref(x); using T = std::unwrap_ref_decay_t; return std::is_same_v ? 0 : 1; }
                                                                     ^~~
src/cpp20__unwrap_ref.cpp:9:92: error: 'unwrap_ref_decay_t' in namespace 'std' does not name a template type
 auto _test_cpp20__unwrap_ref() -> int { int x = 42; auto ref = std::ref(x); us