about summary refs log tree commit diff
path: root/third_party/immer/immer/experimental/dvektor.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/immer/immer/experimental/dvektor.hpp')
-rw-r--r--third_party/immer/immer/experimental/dvektor.hpp69
1 files changed, 0 insertions, 69 deletions
diff --git a/third_party/immer/immer/experimental/dvektor.hpp b/third_party/immer/immer/experimental/dvektor.hpp
deleted file mode 100644
index e809e749d5..0000000000
--- a/third_party/immer/immer/experimental/dvektor.hpp
+++ /dev/null
@@ -1,69 +0,0 @@
-//
-// immer: immutable data structures for C++
-// Copyright (C) 2016, 2017, 2018 Juan Pedro Bolivar Puente
-//
-// This software is distributed under the Boost Software License, Version 1.0.
-// See accompanying file LICENSE or copy at http://boost.org/LICENSE_1_0.txt
-//
-
-#pragma once
-
-#include <immer/experimental/detail/dvektor_impl.hpp>
-
-#include <immer/memory_policy.hpp>
-
-namespace immer {
-
-template <typename T, int B = 5, typename MemoryPolicy = default_memory_policy>
-class dvektor
-{
-    using impl_t = detail::dvektor::impl<T, B, MemoryPolicy>;
-
-public:
-    using value_type      = T;
-    using reference       = const T&;
-    using size_type       = std::size_t;
-    using difference_type = std::ptrdiff_t;
-    using const_reference = const T&;
-
-    using iterator         = detail::dvektor::iterator<T, B, MemoryPolicy>;
-    using const_iterator   = iterator;
-    using reverse_iterator = std::reverse_iterator<iterator>;
-
-    dvektor() = default;
-
-    iterator begin() const { return {impl_}; }
-    iterator end() const { return {impl_, typename iterator::end_t{}}; }
-
-    reverse_iterator rbegin() const { return reverse_iterator{end()}; }
-    reverse_iterator rend() const { return reverse_iterator{begin()}; }
-
-    std::size_t size() const { return impl_.size; }
-    bool empty() const { return impl_.size == 0; }
-
-    reference operator[](size_type index) const { return impl_.get(index); }
-
-    dvektor push_back(value_type value) const
-    {
-        return {impl_.push_back(std::move(value))};
-    }
-
-    dvektor assoc(std::size_t idx, value_type value) const
-    {
-        return {impl_.assoc(idx, std::move(value))};
-    }
-
-    template <typename FnT>
-    dvektor update(std::size_t idx, FnT&& fn) const
-    {
-        return {impl_.update(idx, std::forward<FnT>(fn))};
-    }
-
-private:
-    dvektor(impl_t impl)
-        : impl_(std::move(impl))
-    {}
-    impl_t impl_ = detail::dvektor::empty<T, B, MemoryPolicy>;
-};
-
-} // namespace immer