https://gcc.gnu.org/bugzilla/show_bug.cgi?id=57139
Ville Voutilainen <ville.voutilainen at gmail dot com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED CC| |ville.voutilainen at gmail dot com Resolution|--- |FIXED --- Comment #4 from Ville Voutilainen <ville.voutilainen at gmail dot com> --- This has been fixed by the implementation of Daniel's paper, http://open-std.org/JTC1/SC22/WG21/docs/papers/2015/n4387.html. The constructor has two overloads, one explicit and one non-explicit, and the explicit one is chosen when is_convertible is false. Thus tuple<B> is constructible from tuple<A>, but tuple<A> is not convertible to tuple<B>. gcc/libstdc++ and clang/libc++ agree on the results.