| Feature | Macro | Value | Compiles | Status |
| 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 |
❌ |
macro_lies |
src/cpp14__sized_deallocation.cpp:8:10: fatal error: cstddef: No such file or directory
#include
^~~~~~~~~ |
| variable_templates |
__cpp_variable_templates |
201304 |
✅ |
supported |
| library |
| chrono_udls |
__cpp_lib_chrono_udls |
— |
❌ |
unsupported |
src/cpp14__chrono_udls.cpp:8:10: fatal error: chrono: No such file or directory
#include
^~~~~~~~ |
| complex_udls |
__cpp_lib_complex_udls |
— |
❌ |
unsupported |
src/cpp14__complex_udls.cpp:9:10: fatal error: complex: No such file or directory
#include
^~~~~~~~~ |
| exchange_function |
__cpp_lib_exchange_function |
— |
❌ |
unsupported |
src/cpp14__exchange_function.cpp:8:10: fatal error: utility: No such file or directory
#include
^~~~~~~~~ |
| generic_associative_lookup |
__cpp_lib_generic_associative_lookup |
— |
❌ |
unsupported |
src/cpp14__generic_associative_lookup.cpp:8:10: fatal error: map: No such file or directory
#include |
| integer_sequence |
__cpp_lib_integer_sequence |
— |
❌ |
unsupported |
src/cpp14__integer_sequence.cpp:8:10: fatal error: utility: No such file or directory
#include
^~~~~~~~~ |
| integral_constant_callable |
__cpp_lib_integral_constant_callable |
— |
❌ |
unsupported |
src/cpp14__integral_constant_callable.cpp:8:10: fatal error: type_traits: No such file or directory
#include
^~~~~~~~~~~~~ |
| is_final |
__cpp_lib_is_final |
— |
❌ |
unsupported |
src/cpp14__is_final.cpp:8:10: fatal error: type_traits: No such file or directory
#include
^~~~~~~~~~~~~ |
| is_null_pointer |
__cpp_lib_is_null_pointer |
— |
❌ |
unsupported |
src/cpp14__is_null_pointer.cpp:8:10: fatal error: type_traits: No such file or directory
#include
^~~~~~~~~~~~~ |
| make_reverse_iterator |
__cpp_lib_make_reverse_iterator |
— |
❌ |
unsupported |
src/cpp14__make_reverse_iterator.cpp:8:10: fatal error: iterator: No such file or directory
#include
^~~~~~~~~~ |
| make_unique |
__cpp_lib_make_unique |
— |
❌ |
unsupported |
src/cpp14__make_unique.cpp:8:10: fatal error: memory: No such file or directory
#include
^~~~~~~~ |
| null_iterators |
__cpp_lib_null_iterators |
— |
❌ |
unsupported |
src/cpp14__null_iterators.cpp:8:10: fatal error: iterator: No such file or directory
#include
^~~~~~~~~~ |
| quoted_string_io |
__cpp_lib_quoted_string_io |
— |
❌ |
unsupported |
src/cpp14__quoted_string_io.cpp:8:10: fatal error: iomanip: No such file or directory
#include
^~~~~~~~~ |
| result_of_sfinae |
__cpp_lib_result_of_sfinae |
— |
❌ |
unsupported |
src/cpp14__result_of_sfinae.cpp:8:10: fatal error: type_traits: No such file or directory
#include
^~~~~~~~~~~~~ |
| robust_nonmodifying_seq_ops |
__cpp_lib_robust_nonmodifying_seq_ops |
— |
❌ |
unsupported |
src/cpp14__robust_nonmodifying_seq_ops.cpp:8:10: fatal error: algorithm: No such file or directory
#include
^~~~~~~~~~~ |
| shared_timed_mutex |
__cpp_lib_shared_timed_mutex |
— |
❌ |
unsupported |
src/cpp14__shared_timed_mutex.cpp:8:10: fatal error: shared_mutex: No such file or directory
#include
^~~~~~~~~~~~~~ |
| string_udls |
__cpp_lib_string_udls |
— |
❌ |
unsupported |
src/cpp14__string_udls.cpp:8:10: fatal error: string: No such file or directory
#include
^~~~~~~~ |
| 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 |
— |
❌ |
unsupported |
src/cpp14__transformation_trait_aliases.cpp:8:10: fatal error: type_traits: No such file or directory
#include
^~~~~~~~~~~~~ |
| transparent_operators |
__cpp_lib_transparent_operators |
— |
❌ |
unsupported |
src/cpp14__transparent_operators.cpp:8:10: fatal error: functional: No such file or directory
#include
^~~~~~~~~~~~ |
| tuple_element_t |
__cpp_lib_tuple_element_t |
— |
❌ |
unsupported |
src/cpp14__tuple_element_t.cpp:8:10: fatal error: tuple: No such file or directory
#include
^~~~~~~ |
| tuples_by_type |
__cpp_lib_tuples_by_type |
— |
❌ |
unsupported |
src/cpp14__tuples_by_type.cpp:8:10: fatal error: tuple: No such file or directory
#include
^~~~~~~ |
| Feature | Macro | Value | Compiles | Status |
| 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 |
— |
❌ |
unsupported |
src/cpp17__aligned_new.cpp:8:10: fatal error: new: No such file or directory
#include
^~~~~ |
| capture_star_this |
__cpp_capture_star_this |
— |
✅ |
unreported |
| deduction_guides |
__cpp_deduction_guides |
— |
❌ |
unsupported |
src/cpp17__deduction_guides.cpp:8:10: fatal error: utility: No such file or directory
#include
^~~~~~~~~ |
| 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:8:10: fatal error: type_traits: No such file or directory
#include
^~~~~~~~~~~~~ |
| 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:9:10: fatal error: vector: No such file or directory
#include
^~~~~~~~ |
| variadic_using |
__cpp_variadic_using |
— |
✅ |
unreported |
| library |
| addressof_constexpr |
__cpp_lib_addressof_constexpr |
— |
❌ |
unsupported |
src/cpp17__addressof_constexpr.cpp:8:10: fatal error: memory: No such file or directory
#include
^~~~~~~~ |
| any |
__cpp_lib_any |
— |
❌ |
unsupported |
src/cpp17__any.cpp:8:10: fatal error: any: No such file or directory
#include
^~~~~ |
| apply |
__cpp_lib_apply |
— |
❌ |
unsupported |
src/cpp17__apply.cpp:8:10: fatal error: tuple: No such file or directory
#include
^~~~~~~ |
| array_constexpr |
__cpp_lib_array_constexpr |
— |
❌ |
unsupported |
src/cpp17__array_constexpr.cpp:8:10: fatal error: array: No such file or directory
#include
^~~~~~~ |
| as_const |
__cpp_lib_as_const |
— |
❌ |
unsupported |
src/cpp17__as_const.cpp:8:10: fatal error: utility: No such file or directory
#include
^~~~~~~~~ |
| atomic_is_always_lock_free |
__cpp_lib_atomic_is_always_lock_free |
— |
❌ |
unsupported |
src/cpp17__atomic_is_always_lock_free.cpp:8:10: fatal error: atomic: No such file or directory
#include
^~~~~~~~ |
| bool_constant |
__cpp_lib_bool_constant |
— |
❌ |
unsupported |
src/cpp17__bool_constant.cpp:7:10: fatal error: type_traits: No such file or directory
#include
^~~~~~~~~~~~~ |
| boyer_moore_searcher |
__cpp_lib_boyer_moore_searcher |
— |
❌ |
unsupported |
src/cpp17__boyer_moore_searcher.cpp:8:10: fatal error: functional: No such file or directory
#include
^~~~~~~~~~~~ |
| byte |
__cpp_lib_byte |
— |
❌ |
unsupported |
src/cpp17__byte.cpp:8:10: fatal error: cstddef: No such file or directory
#include
^~~~~~~~~ |
| chrono |
__cpp_lib_chrono |
— |
❌ |
unsupported |
src/cpp17__chrono.cpp:8:10: fatal error: chrono: No such file or directory
#include
^~~~~~~~ |
| clamp |
__cpp_lib_clamp |
— |
❌ |
unsupported |
src/cpp17__clamp.cpp:8:10: fatal error: algorithm: No such file or directory
#include
^~~~~~~~~~~ |
| enable_shared_from_this |
__cpp_lib_enable_shared_from_this |
— |
❌ |
unsupported |
src/cpp17__enable_shared_from_this.cpp:8:10: fatal error: memory: No such file or directory
#include
^~~~~~~~ |
| 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:8:10: fatal error: numeric: No such file or directory
#include
^~~~~~~~~ |
| hardware_interference_size |
__cpp_lib_hardware_interference_size |
— |
❌ |
unsupported |
src/cpp17__hardware_interference_size.cpp:8:10: fatal error: new: No such file or directory
#include
^~~~~ |
| has_unique_object_representations |
__cpp_lib_has_unique_object_representations |
— |
❌ |
unsupported |
src/cpp17__has_unique_object_representations.cpp:8:10: fatal error: type_traits: No such file or directory
#include
^~~~~~~~~~~~~ |
| hypot |
__cpp_lib_hypot |
— |
❌ |
unsupported |
src/cpp17__hypot.cpp:8:10: fatal error: cmath: No such file or directory
#include
^~~~~~~ |
| incomplete_container_elements |
__cpp_lib_incomplete_container_elements |
— |
❌ |
unsupported |
src/cpp17__incomplete_container_elements.cpp:8:10: fatal error: vector: No such file or directory
#include
^~~~~~~~ |
| invoke |
__cpp_lib_invoke |
— |
❌ |
unsupported |
src/cpp17__invoke.cpp:8:10: fatal error: functional: No such file or directory
#include
^~~~~~~~~~~~ |
| is_aggregate |
__cpp_lib_is_aggregate |
— |
❌ |
unsupported |
src/cpp17__is_aggregate.cpp:8:10: fatal error: type_traits: No such file or directory
#include
^~~~~~~~~~~~~ |
| is_invocable |
__cpp_lib_is_invocable |
— |
❌ |
unsupported |
src/cpp17__is_invocable.cpp:8:10: fatal error: type_traits: No such file or directory
#include
^~~~~~~~~~~~~ |
| is_swappable |
__cpp_lib_is_swappable |
— |
❌ |
unsupported |
src/cpp17__is_swappable.cpp:8:10: fatal error: type_traits: No such file or directory
#include
^~~~~~~~~~~~~ |
| launder |
__cpp_lib_launder |
— |
❌ |
unsupported |
src/cpp17__launder.cpp:8:10: fatal error: new: No such file or directory
#include
^~~~~ |
| logical_traits |
__cpp_lib_logical_traits |
— |
❌ |
unsupported |
src/cpp17__logical_traits.cpp:8:10: fatal error: type_traits: No such file or directory
#include
^~~~~~~~~~~~~ |
| make_from_tuple |
__cpp_lib_make_from_tuple |
— |
❌ |
unsupported |
src/cpp17__make_from_tuple.cpp:8:10: fatal error: tuple: No such file or directory
#include
^~~~~~~ |
| map_try_emplace |
__cpp_lib_map_try_emplace |
— |
❌ |
unsupported |
src/cpp17__map_try_emplace.cpp:7:10: fatal error: map: No such file or directory
#include |
| math_special_functions |
__cpp_lib_math_special_functions |
— |
❌ |
unsupported |
src/cpp17__math_special_functions.cpp:8:10: fatal error: cmath: No such file or directory
#include
^~~~~~~ |
| 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:8:10: fatal error: map: No such file or directory
#include |
| nonmember_container_access |
__cpp_lib_nonmember_container_access |
— |
❌ |
unsupported |
src/cpp17__nonmember_container_access.cpp:8:10: fatal error: iterator: No such file or directory
#include
^~~~~~~~~~ |
| not_fn |
__cpp_lib_not_fn |
— |
❌ |
unsupported |
src/cpp17__not_fn.cpp:7:10: fatal error: functional: No such file or directory
#include
^~~~~~~~~~~~ |
| optional |
__cpp_lib_optional |
— |
❌ |
unsupported |
src/cpp17__optional.cpp:8:10: fatal error: optional: No such file or directory
#include
^~~~~~~~~~ |
| 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:8:10: fatal error: memory: No such file or directory
#include
^~~~~~~~ |
| sample |
__cpp_lib_sample |
— |
❌ |
unsupported |
src/cpp17__sample.cpp:8:10: fatal error: algorithm: No such file or directory
#include
^~~~~~~~~~~ |
| scoped_lock |
__cpp_lib_scoped_lock |
— |
❌ |
unsupported |
src/cpp17__scoped_lock.cpp:7:10: fatal error: mutex: No such file or directory
#include
^~~~~~~ |
| shared_mutex |
__cpp_lib_shared_mutex |
— |
❌ |
unsupported |
src/cpp17__shared_mutex.cpp:8:10: fatal error: shared_mutex: No such file or directory
#include
^~~~~~~~~~~~~~ |
| shared_ptr_arrays |
__cpp_lib_shared_ptr_arrays |
— |
❌ |
unsupported |
src/cpp17__shared_ptr_arrays.cpp:7:10: fatal error: memory: No such file or directory
#include
^~~~~~~~ |
| shared_ptr_weak_type |
__cpp_lib_shared_ptr_weak_type |
— |
❌ |
unsupported |
src/cpp17__shared_ptr_weak_type.cpp:8:10: fatal error: memory: No such file or directory
#include
^~~~~~~~ |
| string_view |
__cpp_lib_string_view |
— |
❌ |
unsupported |
src/cpp17__string_view.cpp:8:10: fatal error: string_view: No such file or directory
#include
^~~~~~~~~~~~~ |
| type_trait_variable_templates |
__cpp_lib_type_trait_variable_templates |
— |
❌ |
unsupported |
src/cpp17__type_trait_variable_templates.cpp:7:10: fatal error: type_traits: No such file or directory
#include
^~~~~~~~~~~~~ |
| uncaught_exceptions |
__cpp_lib_uncaught_exceptions |
— |
❌ |
unsupported |
src/cpp17__uncaught_exceptions.cpp:8:10: fatal error: exception: No such file or directory
#include
^~~~~~~~~~~ |
| unordered_map_try_emplace |
__cpp_lib_unordered_map_try_emplace |
— |
❌ |
unsupported |
src/cpp17__unordered_map_try_emplace.cpp:8:10: fatal error: unordered_map: No such file or directory
#include
^~~~~~~~~~~~~~~ |
| variant |
__cpp_lib_variant |
— |
❌ |
unsupported |
src/cpp17__variant.cpp:8:10: fatal error: variant: No such file or directory
#include
^~~~~~~~~ |
| void_t |
__cpp_lib_void_t |
— |
❌ |
unsupported |
src/cpp17__void_t.cpp:7:10: fatal error: type_traits: No such file or directory
#include
^~~~~~~~~~~~~ |