https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103448
--- Comment #5 from Andrew Pinski <pinskia at gcc dot gnu.org> --- (In reply to Andrew Pinski from comment #3) > Yes it is called the copy (or move) constructor :). That is: auto t = std::tuple(std::tuple(1,2)); std::cout << type_name<decltype(t)>() << std::endl; Will produce the same result.