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]>
