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

--- Comment #1 from GCC Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Jonathan Wakely <[email protected]>:

https://gcc.gnu.org/g:7bafcc36172b572296731df951df4b0caa019b95

commit r16-7495-g7bafcc36172b572296731df951df4b0caa019b95
Author: Jonathan Wakely <[email protected]>
Date:   Wed Feb 11 22:39:52 2026 +0000

    libstdc++: Make CTAD ignore tuple(const Types&...) constructor [PR121771]

    This is similar to the r16-3536-g0bb0d1d2880d56 change for std::pair, so
    that CTAD ignores the tuple(const Types&...) constructor and only uses
    the tuple(Types...) -> tuple<Types...> deduction guide. This ensures
    that the deduced type comes from the decayed argument types.

    libstdc++-v3/ChangeLog:

            PR libstdc++/121771
            * include/std/tuple (tuple::tuple(const Elements&...)): Use
            type_identity_t to prevent constructor being used for CTAD.
            (tuple::tuple(allocator_arg_t, const A&, const Elements&...)):
            Likewise.
            * testsuite/20_util/tuple/cons/121771.cc: New test.

    Reviewed-by: Ville Voutilainen <[email protected]>

Reply via email to