【发布时间】:2016-09-17 06:14:01
【问题描述】:
我想允许对我编写的容器类进行常量或非常量迭代。我的容器将元素存储在非const 引用的std::vector 中(称为elements)。我正在使用 Boost 的 transform iterator 来执行此操作,例如:
auto begin() const
{
return boost::make_transform_iterator
( elements.begin()
, to_const<std::reference_wrapper<ElementType>>
);
}
这里我使用我编写的一个简单的函数模板将T 类型的对象转换为const T:
template <typename T>
std::add_const<T>::type to_const(T value) { return value; }
我知道编写起来很简单,但我只是想知道是否已经有一个 STL 或 Boost 函数模板来执行此操作,类似于 std::add_const 但作为一个实际函数。 (或者,如果有人知道将可变向量延迟转换为常量向量的更好方法,那就更好了。)
【问题讨论】:
标签: c++ boost vector stl constants