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

--- Comment #4 from GCC Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Jonathan Wakely <r...@gcc.gnu.org>:

https://gcc.gnu.org/g:bbc0e70b610f19320339e4a311591b42bd436e9b

commit r16-3435-gbbc0e70b610f19320339e4a311591b42bd436e9b
Author: Jonathan Wakely <jwak...@redhat.com>
Date:   Sat Jul 12 13:09:03 2025 +0100

    libstdc++: Constrain bitset(const CharT*) constructor [PR121046]

    Asking std::is_constructible_v<std::bitset<1>, NonTrivial*> gives an
    error, rather than answering the query. The problem is that the
    constructor for std::bitset("010101") is not constrained to only accept
    pointers to char-like types, and for the second parameter (which has a
    default argument) std::basic_string_view<CharT> gets instantiated. If
    the type is not char-like then that has undefined behaviour, and might
    trigger a static_assert to fail in the body of std::basic_string_view.

    We can fix it by constraining that constructor using the requirements
    for char-like types from [strings.general] p1.  I've submitted LWG 4294
    and proposed making this change in the standard.

    libstdc++-v3/ChangeLog:

            PR libstdc++/121046
            * include/std/bitset (bitset(const CharT*, ...)): Add
            constraints on CharT type.
            * testsuite/23_containers/bitset/lwg4294.cc: New test.
  • [Bug libstdc++/121046] Asking i... cvs-commit at gcc dot gnu.org via Gcc-bugs

Reply via email to