簡體   English   中英

Ranges-v3訪問游標內部

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM