]> git.lyx.org Git - lyx.git/blobdiff - src/support/RandomAccessList.h
Remove non-copyable idioms
[lyx.git] / src / support / RandomAccessList.h
index 5014378c440101c1596ceade7a392c55474a017a..2565d62513158ecc57e0f306ef471c9b477ab264 100644 (file)
@@ -248,13 +248,19 @@ public:
 
        void swap(size_t i, size_t j)
        {
-               size_t const p = max(i, j);
-               size_t const q = min(i, j);
+               size_t const p = std::max(i, j);
+               size_t const q = std::min(i, j);
                container_.splice(iterCont_[p], container_, iterCont_[q]);
                container_.splice(iterCont_[q], container_, iterCont_[p]);
                recreateVector();
        }
 
+       void splice(iterator where, iterator first, iterator last)
+       {
+               container_.splice(where, container_, first, last);
+               recreateVector();
+       }
+
        void swap(RandomAccessList & x)
        {
                std::swap(container_, x.container_);
@@ -267,6 +273,32 @@ public:
                iterCont_.clear();
        }
 
+       size_t position(iterator it) const
+       {
+               size_t const s = iterCont_.size();
+               for (size_t i = 0; it != s; ++i) {
+                       if (iterCont_[i] == it)
+                               return i;
+               }
+               return s;
+       }
+
+       size_t position(const_iterator it) const
+       {
+               size_t const s = iterCont_.size();
+               for (size_t i = 0; i != s; ++i) {
+                       if (iterCont_[i] == it)
+                               return i;
+               }
+               return s;
+       }
+
+
+       const_iterator constIterator(size_t i) const
+       {
+               return iterCont_[i];
+       }
+
 private:
        void recreateVector()
        {