我正在使用 MoSync IDE 为移动平台构建我的 C++ 代码。最初,C++ 代码是由 Visual Studio 2010 单独构建的,没有任何问题。但是当我使用 MoSync IDE 重建 C++ 代码时,它会产生一些错误消息。我的 C++ 代码使用 STL 库,例如 std::pair 和 std::vector 类。下面是在 MoSync IDE 中编译为错误的代码。MoSync 使用 GCC 3.4.6。所以我认为这是由 GCC 编译器引起的。
template<typename T>
vector< pair<T, int> > histogram(const vector<T>& x, int numBins)
{
T maxVal, minVal, range, delta, leftEdge, rightEdge;
int i, dummyIdx;
vector<T>::iterator pt;
vector< pair<T, int> > counts(numBins, make_pair(T(), 0));
vector<T> y(x);
//other code ...
}
错误信息是:
错误:预期 `;' 在“pt”之前(第 6 行)
该模板函数在给定输入向量 x 和 numBins 的情况下计算直方图,并将“counts”作为 (bins, counts) 对返回。最初我在 Visual Studio 2010 中编译了这个 C++ 代码,没有任何错误。但是 MoSync IDE 中的 GCC 给了我这个错误信息。所以这让我很困惑,为什么它不能在 GCC 中构建。