std::distance "找不到匹配的重载函数"

问题描述

我正在尝试实现一个基于序列的构造函数,它获得 2 个定义范围 [first,last) 的前向迭代器,并用它们做一些事情。 问题是我需要它们之间的距离,出于某种原因,我收到了这个错误'std::distance': no matching overloaded function found

template<class Itr>
SmartStack(Itr first,Itr last)
{
    auto range = std::distance<Itr>(first,last);
    ...
}

编辑: 显然这个构造函数在我的 main 中调用 SmartStack<int> s(2,0); 时发生冲突:

一个构造函数是:

SmartStack(size_t size,const T& v) : SmartStack()
{
    ...
}

我能做些什么来防止它?我只想在输入是迭代器时调用一个 ctr..

谢谢!

解决方法

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

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

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