我有一个模板函数无法推断出模板参数为“常量” ......从int
template<typename It>
void Foo(It first, It second)
{
It third = first;
Bar(first, second, third);
}
当我打电话Foo
与代码调用另一个模板函数
template<typename It>
void Bar(It first,It second,It third)
{
for(It j= first + 2; j < second; j++)
{
third++;
}
}
std::list<int> l{ 3, 8, 2, 5, 1, 4, 7, 6 };
Foo(l.begin(), l.end());
我得到几个错误指的是线
for(It j= first + 2; j < second; j++)
在富
。所述第一错误消息是
错误C2784 '的std :: reverse_iterator的< _RanIt>的std ::操作者 +(reverse_iterator的< _RanIt> :: difference_type,常量性病:: reverse_iterator的< _RanIt> &)':不能推断模板参数 为“常量的std :: reverse_iterator的< _RanIt> &”从 “诠释” AlgorithmsTests
我有什么改变,使代码段工作?
[无法重现](http://coliru.stacked-crooked.com/a/70de46a3e4c8353f) – cpplearner
你正在做点什么。到目前为止,您发布的任何内容都不会带入图片逆向迭代器。实际上你正在做其他事情。它是什么? – AnT
请提供一个[mcve] – kennytm