SAMD51 Adafruit Feather M4

SAMD51 Cortex-M4F · arm-cortex-m4f · 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
    8 | 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
    8 | 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

28/29 features (97%)
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 201304 supported
complex_udls __cpp_lib_complex_udls 201309 supported
exchange_function __cpp_lib_exchange_function 201304 supported
generic_associative_lookup __cpp_lib_generic_associative_lookup 201304 supported
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 201304 supported
null_iterators __cpp_lib_null_iterators 201304 supported
quoted_string_io __cpp_lib_quoted_string_io 201304 supported
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'
    9 | auto _test_cpp14__shared_timed_mutex() -> int { std::shared_timed_mutex m; return 0; }
      |                                                      ^~~~~~~~~~~~~~~~~~
    8 | #include 
  +++ |+#include 
    9 | 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 unreported
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

21/67 features (31%)

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()'
   10 | auto _test_cpp17__aggregate_bases() -> int { Derived d{{1}, 2}; return d.x + d.y - 3; }
      |                                                              ^
    9 | 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
    9 | 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&&)'
    9 | NoCopy make() { return NoCopy{}; }
      |                               ^
    8 | 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&&)'
   10 | auto _test_cp
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'; did you mean 'is_same'?
    9 | auto _test_cpp17__noexcept_function_type() -> int { return std::is_same_v ? 1 : 0; }
      |                                                                 ^~~~~~~~~
      |                                                                 is_same
src/cpp17__noexcept_function_type.cpp:9:81: error: expected ';' before 'noexcept'
    9 | auto _test_cpp17_
nontype_template_args __cpp_nontype_template_args unsupported
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 unsupported
src/cpp17__nontype_template_parameter_auto.cpp:8:15: error: 'auto' parameter not permitted in this context
    8 | template constexpr auto value = N;
      |               ^
    9 | 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'
   10 | 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'
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]'
   10 | constexpr const int* p = std::addressof(x);
      |                          ~~~~~~~~~~~~~~^~~
any __cpp_lib_any unsupported
src/cpp17__any.cpp:11:10: error: 'any' is not a member of 'std'
   11 |     std::any a = 42;
      |          ^~~
src/cpp17__any.cpp:12:17: error: 'any_cast' is not a member of 'std'
   12 |     return std::any_cast(a) - 42;
      |                 ^~~~~~~~
src/cpp17__any.cpp:12:26: error: expected primary-expression before 'int'
   12 |     return std::any_cast(a) - 42;
      |                          ^~~
src/cpp17__any.cpp:12:26: error: expected ';' before 'int'
   12 |     return s
apply __cpp_lib_apply unsupported
src/cpp17__apply.cpp:14:17: error: 'apply' is not a member of 'std'
   14 |     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'; did you mean 'is_const'?
   13 |     static_assert(std::is_const>::value, "");
      |                                                                       ^~~~~~~~
      |                                                                       is_const
src/cpp17__as_const.cpp:13:71: error: 'as_const' is not a member of 'std'; did you mean 'is_const'?
   13 |     static_a
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'
    9 | 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
    9 |     using t = std::bool_constant;
      |                    ^~~~~~~~~~~~~
src/cpp17__bool_constant.cpp:10:12: error: 't' has not been declared
   10 |     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'
   11 | 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'; did you mean 'byte'?
   11 |     std::byte b{0x42};
      |          ^~~~
In file included from src/cpp17__byte.cpp:1:
src/cpp17__byte.cpp:12:17: error: 'to_integer' is not a member of 'std'
   12 |     return std::to_integer(b) - 0x42;
      |                 ^~~~~~~~~~
src/cpp17__byte.cpp:12:28: error: expected primary-expression before 'int'
   12 |     return std::to_integer(b) - 0x42;
      |                       
chrono __cpp_lib_chrono unsupported
src/cpp17__chrono.cpp:9:101: error: 'floor' is not a member of 'std::chrono'
    9 | 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/arm-none-eabi/include/c++/9.3.1/math.h:36,
            
clamp __cpp_lib_clamp unsupported
src/cpp17__clamp.cpp:11:20: error: 'clamp' is not a member of 'std'
   11 |     int val = std::clamp(150, 0, 100);
      |                    ^~~~~
enable_shared_from_this __cpp_lib_enable_shared_from_this 201603 supported
execution __cpp_lib_execution unsupported
src/cpp17__execution.cpp:11:85: error: 'std::execution' has not been declared
   11 | auto _test_cpp17__execution() -> int { std::vector v = {3,1,2}; std::sort(std::execution::seq, v.begin(), v.end()); return v[0] == 1 ? 0 : 1; }
      |                                                                                     ^~~~~~~~~
filesystem __cpp_lib_filesystem unsupported
src/cpp17__filesystem.cpp:9:10: error: 'std::filesystem' has not been declared
    9 |     std::filesystem::path p("/tmp");
      |          ^~~~~~~~~~
src/cpp17__filesystem.cpp:10:12: error: 'p' was not declared in this scope
   10 |     return p.empty() ? 1 : 0;
      |            ^
freestanding_charconv __cpp_lib_freestanding_charconv unreported
gcd_lcm __cpp_lib_gcd_lcm unsupported
src/cpp17__gcd_lcm.cpp:11:17: error: 'gcd' is not a member of 'std'
   11 |     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'
    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 unsupported
src/cpp17__has_unique_object_representations.cpp:9:76: error: 'has_unique_object_representations_v' is not a member of 'std'
    9 | 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'
    9 | auto _tes
hypot __cpp_lib_hypot unsupported
src/cpp17__hypot.cpp:9:71: error: no matching function for call to 'hypot(double, double, double)'
    9 | 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/arm-none-eabi/include/c++/9.3.1/cmath:45,
                 from /home/runner/.platformio/packages/toolchain-gccarmnoneeabi
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'
   13 |     return std::invoke(add, 2, 3) - 5;
      |                 ^~~~~~
is_aggregate __cpp_lib_is_aggregate unsupported
src/cpp17__is_aggregate.cpp:11:55: error: 'is_aggregate_v' is not a member of 'std'
   11 | auto _test_cpp17__is_aggregate() -> int { return std::is_aggregate_v && !std::is_aggregate_v ? 0 : 1; }
      |                                                       ^~~~~~~~~~~~~~
src/cpp17__is_aggregate.cpp:11:73: error: expected primary-expression before '>' token
   11 | 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'
   10 | auto _test_cpp17__is_invocable() -> int { return std::is_invocable_v ? 0 : 1; }
      |                                                       ^~~~~~~~~~~~~~
src/cpp17__is_invocable.cpp:10:70: error: expected primary-expression before 'decltype'
   10 | auto _test_cpp17__is_invocable() -> int { return std::is_invocable_v ? 0 : 1; }
      |                  
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'
    9 | 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'
    9 | auto _test_cpp17__logical_traits() -> int { return std::conjunction_v ? 0 : 1; }
      |                                                         ^~~~~~~~~~~~~
src/cpp17__logical_traits.cpp:9:85: error: expected primary-expression before ',' token
    9 | 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'; did you mean 'make_tuple'?
   10 | auto _test_cpp17__make_from_tuple() -> int { auto s = std::make_from_tuple(std::make_tuple(1, 2)); return s.x + s.y - 3; }
      |                                                            ^~~~~~~~~~~~~~~
      |                                                            make_tuple
src/cpp17__make_from_tuple.cpp:10:77: error: expected primary-expression before '>' token
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'?
   11 |     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'
    9 | 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:9:61: error: 'std::pmr' has not been declared
    9 | auto _test_cpp17__memory_resource() -> int { auto* r = std::pmr::get_default_resource(); return r != nullptr ? 0 : 1; }
      |                                                             ^~~
node_extract __cpp_lib_node_extract unsupported
src/cpp17__node_extract.cpp:9:89: error: 'class std::map' has no member named 'extract'
    9 | 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'
    9 | 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'
   10 |     auto is_odd = std::not_fn(is_even);
      |                        ^~~~~~
optional __cpp_lib_optional unsupported
src/cpp17__optional.cpp:11:10: error: 'optional' is not a member of 'std'
   11 |     std::optional val = 42;
      |          ^~~~~~~~
src/cpp17__optional.cpp:11:19: error: expected primary-expression before 'int'
   11 |     std::optional val = 42;
      |                   ^~~
src/cpp17__optional.cpp:12:12: error: 'val' was not declared in this scope; did you mean 'Tal'?
   12 |     return val.value() - 42;
      |            ^~~
      |            Tal
parallel_algorithm __cpp_lib_parallel_algorithm unsupported
src/cpp17__parallel_algorithm.cpp:9:68: error: 'std::execution' has not been declared
    9 | auto _test_cpp17__parallel_algorithm() -> int { auto policy = std::execution::seq; (void)policy; return 0; }
      |                                                                    ^~~~~~~~~
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'
    9 | 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:
src/cpp17__sample.cpp:12:98: error: 'sample' is not a member of 'std'
   12 | 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; }
      |                                                                                                  ^~~~~~
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:10: error: 'scoped_lock' is not a member of 'std'
   10 |     std::scoped_lock lock(m);
      |          ^~~~~~~~~~~
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; }
      |                                                ^~~~~~~~~~~~
shared_ptr_arrays __cpp_lib_shared_ptr_arrays 201611 supported
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
    9 | 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
    9 | auto _test_cp
string_view __cpp_lib_string_view unsupported
src/cpp17__string_view.cpp:11:10: error: 'string_view' is not a member of 'std'
   11 |     std::string_view sv = "hello";
      |          ^~~~~~~~~~~
src/cpp17__string_view.cpp:12:29: error: 'sv' was not declared in this scope; did you mean 'sq'?
   12 |     return static_cast(sv.size()) - 5;
      |                             ^~
      |                             sq
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'; did you mean 'is_integral'?
    9 |     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'
    9 |     return std::is_integral_v && !std::is_floating_point_v ? 0 : 1;
      |                    
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'?
   10 | 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
src/cpp17__variant.cpp:11:10: error: 'variant' is not a member of 'std'
   11 |     std::variant v = 42;
      |          ^~~~~~~
src/cpp17__variant.cpp:11:18: error: expected primary-expression before 'int'
   11 |     std::variant v = 42;
      |                  ^~~
src/cpp17__variant.cpp:12:17: error: 'get' is not a member of 'std'
   12 |     return std::get(v) - 42;
      |                 ^~~
src/cpp17__variant.cpp:12:21: error: expected primary-expression bef
void_t __cpp_lib_void_t 201411 supported