我一直負責獲取一些舊代碼的工作。它的日期從2006年開始,我相信它是用visual studio編寫的。我用g ++ 4.5.2在windows機器上使用ming32編譯時遇到這個錯誤,並且在unix機器上得到與g ++ 4.1.2編譯相同的錯誤(不知道是什麼味道)_Dist_type未在此範圍內聲明
「_Dist_type沒有在此聲明範圍」
#include <algorithm>
#include <vector>
template<class ReturnType, class RandomIterator, class _Ty> inline
ReturnType interpolate(RandomIterator _F, RandomIterator _L, const _Ty& _V, RandomIterator _F2)
{
return _Dist_type(_F);
}
class Interpolator
{
public:
double interp(const std::vector<double>& xValues, const std::vector<double>& yValues,
const double x0) const
{
//1-D interpolation
return interpolate<double>(xValues.begin(), xValues.end(), x0, yValues.begin());
}
};
我試過google搜索_dist_Type,但似乎並沒有得到很多的信息在那裏。我確實找到了一個來源,但我不確定它可以提供多少幫助。 http://en.allexperts.com/q/C-1040/STL-Iterator.htm
我的理解是_Dist_type是STL庫的一個非舊版本的一部分,它們都不是構建機器的一部分。我怎麼能解決這個問題?我甚至不知道這個功能是幹什麼的。
任何幫助,非常感謝。
這當然很難想象,它沒有考慮到它拋棄了4個參數中的3個,所以任何有用的... – ildjarn
我將這個例子剔除到產生錯誤所需的最小值。 – Spencer