[英]ranges-v3 access cursor internals
在c ++ range-v3庫中。
是否可以訪問游標的內部數據(從view_facade)?
class range_t : public ranges::view_facade<range_t>
{
friend ranges::range_access;
struct cursor {
cursor() = default;
cursor(FlatMultiMap& self, std::size_t index)
: self(&self)
, index(index)
{}
// other implementation stuff
private:
// I want to get this data from outside cursor class
FlatMultiMap* self;
std::size_t index;
};
cursor begin_cursor() const
{
return { *self, index };
}
cursor end_cursor() const
{
return { *self, end_index };
}
FlatMultiMap* self;
std::size_t index;
std::size_t end_index;
public:
range_t() = default;
range_t(FlatMultiMap& self, std::size_t index, std::size_t end_index)
: self(&self)
, index(index)
, end_index(end_index)
{}
template<class I, class S>
range_t(I iterator, S sentinel)
{
// how to do this?
iterator.self // Error
}
};
如果不是-range-v3是否提供類似https://www.boost.org/doc/libs/1_68_0/libs/iterator/doc/iterator_facade.html的內容 ?
要訪問/公開游標內部數據,需要使用游標的mixin。
現在在“創建自定義迭代器”部分記錄了https://ericniebler.github.io/range-v3/ 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.