https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102270
--- Comment #2 from 康桓瑋 <hewillk at gmail dot com> --- In addition, the uses-allocator construction version also missing constexpr specifier, but I don't know if this is intentional. #include <tuple> #include <memory> struct O { using allocator_type = std::allocator<int>; O() = default; constexpr O(const allocator_type&) {} }; constexpr std::allocator<int> a; constexpr std::tuple<O> t(std::allocator_arg, a); https://godbolt.org/z/ba61nWhYx