https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101710
--- Comment #7 from Andrew Pinski <pinskia at gcc dot gnu.org> --- (In reply to Andrew Pinski from comment #6) > Changing: > if > constexpr(type_info<T>. > has_attribute_helper<can_t_use_default_null_ptr>()&&type_info<T>. > not_has_has_attribute_helper<force_use_default_null_ptr>()) > > to: > if constexpr(type_info<T>.template > has_attribute_helper<can_t_use_default_null_ptr>()&&type_info<T>.template > not_has_has_attribute_helper<force_use_default_null_ptr>()) > > Fixes many of the errors > Note the use of template. This shows up in many places in your files. There was two other errors I noticed: * aligned_alloc is not defined; mingw does not define aligned_alloc I think. * is_pointer<T> should have been std::is_pointer_v<T> as far as I can tell.