[Bug libstdc++/114147] [11/12/13/14 Regression] tuple allocator-extended constructor requires non-explicit default constructor

redi at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Thu Feb 29 20:38:03 GMT 2024


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114147

Jonathan Wakely <redi at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |ASSIGNED
           Assignee|unassigned at gcc dot gnu.org      |redi at gcc dot gnu.org

--- Comment #6 from Jonathan Wakely <redi at gcc dot gnu.org> ---
For the record, it looks like I broke this in commit r10-908 by adding a
constraint to that constructor (which was good) but not adding another overload
with the explicit constraint (which was bad):

       // Allocator-extended constructors.

-      template<typename _Alloc>
+      template<typename _Alloc,
+              _ImplicitDefaultCtor<is_object<_Alloc>::value> = true>
        tuple(allocator_arg_t __tag, const _Alloc& __a)
        : _Inherited(__tag, __a) { }


More information about the Gcc-bugs mailing list