https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100992
Bug ID: 100992 Summary: Wrong result for is_constructible for const ref of tuple of tuples Product: gcc Version: 11.1.1 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: kirshamir at gmail dot com CC: kirshamir at gmail dot com Target Milestone: --- The second static_assert below fails, should pass: #include <tuple> struct F { F() { } F(const std::tuple<F>& foo) {} }; static_assert(std::is_constructible_v<F, const std::tuple<F>&>); static_assert(std::is_constructible_v<F, const std::tuple<std::tuple<F>>&>); // fails, unjustifiably int main() { F f1{std::tuple{F{}}}; auto tup = std::tuple{std::tuple{f1}}; F f2{tup}; // constructible } https://godbolt.org/z/3KfbxfhWE