我注意到有些情况下std :: pair会隐式转换为其他类型的std :: pair,而不会发出警告,但是我不知道为什么。我已经看过std :: pair的构造函数了,无法弄清楚。有人可以向我解释吗?
例子:
std::pair<int,int> a = std::pair<int64_t, int64_t>(1,2);
使用clang -Wall -Wythingthing不给出任何警告。
构造函数
template<class U, class V> pair(const pair<U, V>& p);
允许从任何对复制,前提是的第一个元素p
可以转换为正在构造的对的第一个元素,对于第二个元素则相同。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句