https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95606
Bug ID: 95606 Summary: [10/11 regression] <any> conflicts with std::is_constructible Product: gcc Version: 11.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: kuzniar95 at o2 dot pl Target Milestone: --- Created attachment 48713 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=48713&action=edit main.ii + verbose gcc invoke command Hi! I'm coming from nlohmann/json project on GitHub where we detected a possible regression in GCC 10 and later. Please follow this link for details: https://github.com/nlohmann/json/issues/2129 You will find minimal code example there with some detailed analysis of "compilation path" but I need your help whether it actually is a regression or not. For example, I'm not sure if the compiler should jump from decltype(swap(std::declval<_Tp&>(), std::declval<_Tp&>())) with some implicit conversions to std::any constructor (maybe it should be inaccessible) as clang seems to dismiss std::any which I discovered by poisoning std::any constructor. I'm also attaching some files as requested by "bug reporting instructions". Even if you think GCC works fine, maybe it could be improved so it gives better error messages in the future in such convoluted scenarios. Please let me know what you think. P.S. I've taken a while to bisect and build GCC compilers and I discovered this was the first broken commit: https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=608a080c3f6e5a8338ff99658b27e226cbba7a67