https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103924
Giuseppe D'Angelo <dangelog at gmail dot com> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |dangelog at gmail dot com
--- Comment #5 from Giuseppe D'Angelo <dangelog at gmail dot com> ---
Here's an even simpler testcase, rejected by GCC but accepted by Clang (with
libstdc++):
https://gcc.godbolt.org/z/63Wss3Ej8
#include <string>
constexpr void f(std::initializer_list<std::string>) {}
constexpr bool test()
{
f({"x"});
return true;
}
static_assert(test());
I've been trying to minimize the testcase by removing clutter from
basic_string: https://gcc.godbolt.org/z/haxvvr1YK
The fun part is that if one deletes the copy constructor (which is actually
never called) the code is accepted by GCC. That's what makes me think this is a
compiler bug.