相关疑难解决方法(0)

const、span 和迭代器问题

我尝试编写一个迭代器,通过索引迭代容器。AIt和 aconst It都允许更改容器的内容。AConst_it和 aconst Const_it都禁止更改容器的内容。

之后,我尝试span<T>在容器上写一个。对于一个类型T不是常量,这两个const span<T>span<T>允许改变所述容器的内容物。双方const span<const T>span<const T>禁止改变容器的内容。

代码无法编译,因为:

    // *this is const within a const method
    // But It<self_type> requires a non-const *this here.
    // So the code does not compile
    It<self_type> begin() const { return It<self_type>(*this, 0); }
Run Code Online (Sandbox Code Playgroud)

如果我让构造函数It接受一个const容器,它看起来不对,因为迭代器可以修改容器的内容。

如果我去掉方法的const,那么对于非const 类型T,aconst span<T>不能修改容器。

It从继承Const_it到允许隐式转换ItConst_it模板实例化时。 …

c++ constants c++11

6
推荐指数
1
解决办法
1109
查看次数

标签 统计

c++ ×1

c++11 ×1

constants ×1