[Bug libstdc++/119721] tuple<> cannot be compared with array<T, 0>

cvs-commit at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Wed Oct 29 16:12:18 GMT 2025


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

--- Comment #3 from GCC Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Tomasz Kaminski <tkaminsk@gcc.gnu.org>:

https://gcc.gnu.org/g:52e300124d2eaad0f19ccc0a49f95fd605a1de69

commit r16-4710-g52e300124d2eaad0f19ccc0a49f95fd605a1de69
Author: Osama Abdelkader <osama.abdelkader@gmail.com>
Date:   Sat Oct 25 20:25:42 2025 +0300

    libstdc++: Add constructors and assignments for tuple<> with tuple-like
types [PR119721]

    This patch adds support for constructing and assigning tuple<> from
    other empty tuple-like types (e.g., array<T, 0>), completing the C++23
    tuple-like interface for the zero-element tuple specialization.

    The implementation includes:
    - Constructor from forwarding reference to tuple-like types
    - Allocator-aware constructor from tuple-like types
    - Assignment operator from tuple-like types
    - Const assignment operator from tuple-like types

            PR libstdc++/119721

    libstdc++-v3/ChangeLog:

            * include/std/tuple (tuple<>::tuple(const tuple&))
            (tuple<>::operator=(const tuple&)): Define as defaulted.
            (tuple<>::swap): Moved the defintion after assignments.
            (tuple<>::tuple(_UTuple&&))
            (tuple<>::tuple(allocator_arg_t, const _Alloc&, _UTuple&&))
            (tuple<>::operator=(_UTuple&&)) [__cpp_lib_tuple_like]: Define.
            (tuple<>::operator==, tuple<>::opeator<=>): Parenthesize
            constrains individually.
            * testsuite/23_containers/tuple/cons/119721.cc: New test for
            constructors and assignments with empty tuple-like types.
            * testsuite/20_util/tuple/requirements/empty_trivial.cc:
            New test verifying tuple<> remains trivially copyable.

    Reviewed-by: Jonathan Wakely <jwakely@redhat.com>
    Co-authored-by: Tomasz KamiÅski <tkaminsk@redhat.com>
    Signed-off-by: Osama Abdelkader <osama.abdelkader@gmail.com>
    Signed-off-by: Tomasz KamiÅski <tkaminsk@redhat.com>


More information about the Gcc-bugs mailing list