У меня есть 2 перегруженные функции скажем - func1 и func2 -
Func1 is -
template<typename T1, typename T2> bool AreIdentical(const std::pair<T1, T2>
&lhs, const std::pair<T1, T2> &rhs)
{
//some code
}
Func2 is -
template<typename T> bool AreIdentical(typename std::map<int,
std::vector<T>>::iterator itOrig,
typename std::map<int, std::vector<T>>::iterator itNew)
{
//some code
}
Я пытаюсь вызвать функцию AreIdentical следующим образом -
int main()
{
std::map<int, std::vector<int>> orgitem;
std::map<int, std::vector<int>> newitem;
newitem[0];
orgitem[0];
AreIdentical(*orgitem.begin(), *newitem.begin());
return 0;
}
Интересно, что мои origitem и newitem имеют тип map , но всегда Func1 вызывается, что принимает параметр пара тип вместо Func2 .
Кто-нибудь знает, почему так происходит?