我正在编写C ++代码,其中编译器版本支持std :: next()命令,但是我正在迁移此代码以在编译器不支持C ++的系统上工作11,我需要迁移使用std :: next的部分代码,对此最好的选择是什么?
我需要迁移的代码是:
uint32_t getUint32(uint32_t position, vector<uint8_t> data)
{
auto it = next(data.cbegin(), position);
...
}
答案 0 :(得分:1)
您可以使用std::advance
(名称空间为Repo.insert(changeset)
}:
{:ok, struct}
答案 1 :(得分:1)
根据评论中的建议,您可以通过模仿possible implementation实现自己的next
功能:*
template<class T>
T mynext(T it, typename std::iterator_traits<T>::difference_type n = 1) {
std::advance(it, n);
return it;
}
* 此代码中的所有内容均符合C ++ 03标准。如果您使用此实现,则应properly attribute cppreference source。