https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111273
--- Comment #7 from Simon Marchi <simon.marchi at polymtl dot ca> --- (In reply to Sam James from comment #6) > It'd tell us if it was worked around (perhaps accidentally) by a library > change or not. Ah ok, I see. Preprocessed with 14, compiled with 15: fails with the expected error (same as OP) Preprocessed with 15, compiled with 14: fails with a ton of errors, like: In file included from /opt/gcc/15.2.0/include/c++/15.2.0/bits/cpp_type_traits.h:42, from /opt/gcc/15.2.0/include/c++/15.2.0/bits/stl_algobase.h:61, from /opt/gcc/15.2.0/include/c++/15.2.0/vector:64, from test.cpp:1: /opt/gcc/15.2.0/include/c++/15.2.0/type_traits:554:30: error: there are no arguments to ‘__is_pointer’ that depend on a template parameter, so a declaration of ‘__is_pointer’ must be available [-fpermissive] 554 | : public __bool_constant<__is_pointer(_Tp)> | ^~~~~~~~~~~~ /opt/gcc/15.2.0/include/c++/15.2.0/type_traits:554:30: note: (if you use ‘-fpermissive’, G++ will accept your code, but allowing the use of an undeclared name is deprecated) /opt/gcc/15.2.0/include/c++/15.2.0/type_traits:554:47: error: template argument 1 is invalid 554 | : public __bool_constant<__is_pointer(_Tp)> | ^ /opt/gcc/15.2.0/include/c++/15.2.0/type_traits:860:30: error: there are no arguments to ‘__is_const’ that depend on a template parameter, so a declaration of ‘__is_const’ must be available [-fpermissive] 860 | : public __bool_constant<__is_const(_Tp)> | ^~~~~~~~~~ /opt/gcc/15.2.0/include/c++/15.2.0/type_traits:860:45: error: template argument 1 is invalid 860 | : public __bool_constant<__is_const(_Tp)> | ^ /opt/gcc/15.2.0/include/c++/15.2.0/type_traits:876:30: error: there are no arguments to ‘__is_volatile’ that depend on a template parameter, so a declaration of ‘__is_volatile’ must be available [-fpermissive] 876 | : public __bool_constant<__is_volatile(_Tp)> | ^~~~~~~~~~~~~ /opt/gcc/15.2.0/include/c++/15.2.0/type_traits:876:48: error: template argument 1 is invalid 876 | : public __bool_constant<__is_volatile(_Tp)> | ^ /opt/gcc/15.2.0/include/c++/15.2.0/type_traits:1175:30: error: expected type-specifier before ‘__add_lvalue_reference’ 1175 | using __add_lval_ref_t = __add_lvalue_reference(_Tp); | ^~~~~~~~~~~~~~~~~~~~~~ ...