【发布时间】:2012-07-15 07:23:00
【问题描述】:
template <typename CONTAINER_TYPE, typename CONTAINER_VALUE_TYPE>
bool FindAndErase(CONTAINER_TYPE& cont, const CONTAINER_VALUE_TYPE& value)
{
CONTAINER_TYPE::iterator it = eastl::find(cont.begin(), cont.end(), value);
if (it != cont.end())
{
cont.erase(it);
return true;
}
return false;
}
此代码在 Visual C++ 2005 上编译良好,但使用 ARM 编译器(“ARM C/C++ 编译器,RVCT4.0”)和 iOS gcc(“arm-apple-darwin9-gcc (GCC) 4.2.1 ") 返回错误:
错误:#65:应为“;” 错误:#20:标识符“it”未定义
分别在第 4 行和第 5 行。
这段代码有什么问题?
【问题讨论】:
标签: c++ templates stl iterator