https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116440
Richard Biener <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Ever confirmed|0 |1
Status|UNCONFIRMED |NEW
Last reconfirmed| |2025-01-24
--- Comment #5 from Richard Biener <rguenth at gcc dot gnu.org> ---
I can confirm the following is accepted with -std=c++20 by GCC 13 but not GCC
14 or trunk. I have no idea whether this is valid C++20 code of course.
#include <any>
#include <tuple>
#include <type_traits>
template <typename T>
using TupleTuple = std::tuple<std::tuple<T>>;
struct EmbedAnyWithZeroSizeArray {
void* pad[0];
std::any content;
};
static_assert(std::is_copy_constructible<TupleTuple<EmbedAnyWithZeroSizeArray>>::value);
struct EmbedAny {
std::any content;
};
static_assert(std::is_copy_constructible<TupleTuple<EmbedAny>>::value);
static_assert(std::is_copy_constructible<TupleTuple<std::any>>::value);