Ignore:
Timestamp:
Jun 30, 2015, 3:12:47 PM (4 years ago)
Author:
nmedfort
Message:

Temporary check-in for dynamic unicode class compilation.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • icGREP/icgrep-devel/icgrep/UCD/unicode_set.h

    r4622 r4626  
    5555        friend class boost::iterator_core_access;
    5656    protected:
    57         iterator(RunVector::const_iterator runIterator, QuadVector::const_iterator quadIterator)
     57        iterator(RunVector::const_iterator runIterator, QuadVector::const_iterator quadIterator,
     58                 RunVector::const_iterator runEnd, QuadVector::const_iterator quadEnd)
    5859        : mRunIterator(runIterator), mQuadIterator(quadIterator)
    5960        , mMixedRunIndex(0), mQuadOffset(0), mBaseCodePoint(0), mMinCodePoint(0), mMaxCodePoint(0)
     61        , mRunEnd(runEnd), mQuadEnd(quadEnd)
    6062        {
    6163
     
    7779        }
    7880    private:
    79         RunVector::const_iterator   mRunIterator;
    80         QuadVector::const_iterator  mQuadIterator;
    81         unsigned                    mMixedRunIndex;
    82         bitquad_t                   mQuadOffset;       
    83         codepoint_t                 mBaseCodePoint;
    84         codepoint_t                 mMinCodePoint;
    85         codepoint_t                 mMaxCodePoint;
     81        RunVector::const_iterator           mRunIterator;
     82        QuadVector::const_iterator          mQuadIterator;
     83        unsigned                            mMixedRunIndex;
     84        bitquad_t                           mQuadOffset;
     85        codepoint_t                         mBaseCodePoint;
     86        codepoint_t                         mMinCodePoint;
     87        codepoint_t                         mMaxCodePoint;
     88        const RunVector::const_iterator     mRunEnd;
     89        const QuadVector::const_iterator    mQuadEnd;
    8690    };
    8791
    8892    inline iterator begin() const {
    8993        // note: pre-increment is intentional to move the iterator onto the first non-Empty interval.
    90         return ++iterator(mRuns.cbegin(), mQuads.cbegin());
     94        return ++iterator(mRuns.cbegin(), mQuads.cbegin(), mRuns.cend(), mQuads.cend());
    9195    }
    9296
    9397    inline iterator end() const {
    94         return iterator(mRuns.cend(), mQuads.cend());
     98        return iterator(mRuns.cend(), mQuads.cend(), mRuns.cend(), mQuads.cend());
    9599    }
    96100
     
    113117
    114118        inline run_t run() const {
    115             const auto & t = *mRunIterator;
    116             return std::make_pair(std::get<0>(t), std::get<1>(t) - mOffset);
     119            return std::make_pair(std::get<0>(*mRunIterator), std::get<1>(*mRunIterator) - mOffset);
    117120        }
    118121
Note: See TracChangeset for help on using the changeset viewer.