为什么std :: pair的const引用和Forwarding引用参数都有两个不同的构造函数?

问题描述

根据ISO标准(精确来说是N4860)std::pair简介:

constexpr explicit(see below) pair(const T1& x,const T2& y); // first constructor

template<class U1,class U2>
constexpr explicit(see below) pair(U1&& x,U2&& y); // second constructor

我似乎找不到任何理由将第一个构造函数与完善的转发构造函数一起定义。完美的转发构造函数不足以同时处理复制和移动案例吗?在哪种情况下,第一个构造函数会赢得重载解析?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)