Вы видите неприятный побочный эффект using namespace std;
. Есть функция с именем std::distance
; поскольку вы использовали using namespace std;
, он имеет приоритет над вашей собственной distance
функцией.
Решение состоит в том, чтобы не использовать using namespace std;
, а вместо этого ссылаться на std::cout
, std::setprecision
и т. Д. По отдельности. Вы также можете импортировать определенные идентификаторы из std
:
using std::cout;
using std::setprecision;
using std::fixed;
using std::showpoint;
using std::cin;
using std::endl;
Или вы можете продолжить использовать using namespace std;
, но явно запросить свой собственный distance
с помощью ::distance
- это запрашивает расстояние от пустого пространства имен специально (не рекомендуется; если что-то добавляется в std
, это может снова сломаться) .
Кроме того, distancValue
является опечаткой.