我有一個模板函數無法推斷出模板參數爲「常量」 ......從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