Boost双向迭代器不可写的问题
Problem with Boost bidirectionnal iterator not writable
我尝试用Boost迭代器制作双向迭代器。我已经实现了此处文档中建议的一些功能。
我有一个父类,其中要实现的函数被声明为纯虚拟的(我需要多态迭代器(。目前,我有一个继承的类,其中实现了函数。此外,我使用boost::bidirectional_transversal_tag。
dereference((函数在继承的类中实现如下:
template <typename T>
T& ImageIterator_NotPlanar<T>::dereference() const {
return *((T*)buffer);
}
要像下面的例子一样读取值,它可以完美地工作:
for (; !iter.isEndReached(); ++iter)
cout << "ITERATOR INC: " << *iter << endl;
(其中isEndReached((是一个个人函数(。问题是以下代码不起作用:
*iter = 3;
g++返回以下错误:
lvalue required as left operand of assignment
怎么了?
感谢
我们需要准确地查看错误产生的位置。此外,我们必须假设您有合适的非常量版本
你需要吗
template <typename T>
T& ImageIterator_NotPlanar<T>::dereference() {
return *((T*)buffer);
}
template <typename T>
T const& ImageIterator_NotPlanar<T>::dereference() const {
return *((T*)buffer);
}
相关文章:
- ESP8266单片机矢量迭代器的C++问题
- 成员函数中的迭代器出现问题
- 迭代器的指针操作问题
- 为什么在这个C++问题中使用const_iterator而不仅仅是迭代器?
- std::filesystem::directory_迭代器链接器问题(C++17)
- 使用 find() 通过 std::set 的迭代器将不起作用。出了什么问题?
- 无法取消引用超出范围的向量迭代器 - 有什么问题?
- 调用模板函数的问题"No matching function for call"参数:迭代器、对象函数
- 迭代器的问题
- 无法理解迭代器的问题?
- 使用迭代器时遇到问题,每 M 次传递一次擦除一个向量项
- 有关使用矢量迭代器访问对象方法的问题
- 自定义迭代器而不是解释问题
- 基于范围的自定义迭代器:constness问题
- 常量迭代器的问题
- 对于循环迭代器问题 c++
- 如果使用迭代器,如何解决遍历列表的问题
- 字符串迭代器不可用C 问题
- 将MAP与一对用作C 迭代器问题中的键
- 我的自定义迭代器有什么问题