SAMD21 Arduino Zero

SAMD21 Cortex-M0+ · arm-cortex-m0plus · Version 8.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 unreported

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 unreported
generic_associative_lookup __cpp_lib_generic_associative_lookup unreported
integer_sequence __cpp_lib_integer_sequence unreported
integral_constant_callable __cpp_lib_integral_constant_callable unreported
is_final __cpp_lib_is_final unreported
is_null_pointer __cpp_lib_is_null_pointer unreported
make_reverse_iterator __cpp_lib_make_reverse_iterator unreported
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 unreported
robust_nonmodifying_seq_ops __cpp_lib_robust_nonmodifying_seq_ops unreported
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 unreported
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 unreported
transparent_operators __cpp_lib_transparent_operators unreported
tuple_element_t __cpp_lib_tuple_element_t unreported
tuples_by_type __cpp_lib_tuples_by_type unreported

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-arduino-samd/cores/arduino/api/Interrupts.h:8:0,
                 from /home/runner/.platformio/packages/framework-arduino-samd/cores/arduino/api/ArduinoAPI.h:29,
                 from /home/runner/.platformio/packages/framework-arduino-samd/cores/arduino/Arduino.h:23,
                 from src/cpp17__byte.cpp:1:
src/cpp17__byt
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/math.h:36:0,
                 from /home/runner/.platformio/packages/framework-arduino-samd/co
incomplete_container_elements __cpp_lib_incomplete_container_elements unreported
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 unreported
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; }
                                                                                         ^~~~~~~
In file included from /home/runner/.platformio/packages/toolchain-gccarmnoneeabi@1.70201.0/arm-none-eabi/include/c++/7.2.1/optional:33:0,
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;
    ~~~~~~~^~~~~~~
                 from src/cpp17__shared_ptr_arrays.cpp:7:
/home/runner/.platformio/packages/toolchain-gccarmnoneeabi@1.70201.0/arm-none-e
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 \
  ^~~~~
src/cpp17__string_view.cpp:11:10: error: 'string_view' is not a member of 'std
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 unreported
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 unreported