http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57139
--- Comment #1 from Jonathan Wakely <redi at gcc dot gnu.org> 2013-05-01 21:52:19 UTC --- That's what the Requires: clause says, but see also: Remark: This constructor shall not participate in overload resolution unless const Ui& is implicitly convertible to Ti for all i. is_constructible does not enforce implicit convertibility, we need an additional check, which is why we use is_convertible. The SFINAE constraint is there to implement the Remark, not the Requires clause (which is the user's responsibility to meet not the implementation's.) Also note that it only requires move constructibility, not necessarily copy constructibility. I thought the code was wrong too and changed those constraints with http://gcc.gnu.org/ml/libstdc++/2011-05/msg00126.html and then reverted it with http://gcc.gnu.org/ml/libstdc++/2011-05/msg00129.html I think there will be a paper in the next WG21 mailing addressing this topic.