https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101722
Jonathan Wakely <redi at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|ASSIGNED |RESOLVED Resolution|--- |INVALID --- Comment #2 from Jonathan Wakely <redi at gcc dot gnu.org> --- Boost 1.76.0 is totally broken, it does this in the middle of namespace boost::math::tools::meta_programming: template<typename L, typename Q> using mp_remove_if_q = mp_remove_if<L, Q::template fn>; // Index sequence // Use C++14 index sequence if available #if defined(__cpp_lib_integer_sequence) && (__cpp_lib_integer_sequence >= 201304) #include <utility> template<std::size_t... I> using index_sequence = std::index_sequence<I...>; template<std::size_t N> using make_index_sequence = std::make_index_sequence<N>; template<typename... T> using index_sequence_for = std::index_sequence_for<T...>; #else If <utility> has already been included earlier, it happens to work (because that #include is a no-op due to the header guard) but because my changes mean that <utility> is included less often, that is the first time it's seen. And it defines the contents of <utility> inside the boost namespace. I'll report it to boost (and make sure we patch boost in Fedora).