summaryrefslogtreecommitdiff
path: root/include/unique_array.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'include/unique_array.hpp')
-rw-r--r--include/unique_array.hpp68
1 files changed, 0 insertions, 68 deletions
diff --git a/include/unique_array.hpp b/include/unique_array.hpp
deleted file mode 100644
index a7e0731..0000000
--- a/include/unique_array.hpp
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- * libfud
- * Copyright 2024 Dominick Allen
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef FUD_UNIQUE_ARRAY_HPP
-#define FUD_UNIQUE_ARRAY_HPP
-
-#include "array.hpp"
-#include "fud_type_traits.hpp"
-
-#include <cstdlib>
-#include <utility>
-
-namespace fud {
-
-template <class T, T... Vs>
-class UniqueArray { // NOLINT(cppcoreguidelines-special-member-functions)
- public:
- // NOLINTBEGIN(cppcoreguidelines-avoid-const-or-ref-data-members)
- const Array<T, sizeof...(Vs)> m_values{};
- // NOLINTEND(cppcoreguidelines-avoid-const-or-ref-data-members)
-
- ~UniqueArray() = default;
-
- constexpr UniqueArray() : m_values{{Vs...}}
- {
- static_assert(sizeof...(Vs) < 2 || !hasDuplicates<T, Vs...>());
- }
-
- constexpr UniqueArray(const UniqueArray& rhs) : m_values(rhs.m_values)
- {
- static_assert(sizeof...(Vs) < 2 || !hasDuplicates<T, Vs...>());
- }
-
- constexpr UniqueArray(UniqueArray&& rhs) noexcept : m_values(std::move(rhs).m_values)
- {
- static_assert(sizeof...(Vs) < 2 || !hasDuplicates<T, Vs...>());
- }
-
- [[nodiscard]] constexpr size_t size() const
- {
- return sizeof...(Vs);
- }
-};
-
-template <typename T=size_t, T... Is>
-constexpr UniqueArray<T, Is...> makeStaticIndexSet(std::integer_sequence<T, Is...> /*unused*/)
-{
- static_assert(sizeof...(Is) > 0);
- return UniqueArray<T, Is...>{};
-}
-
-} // namespace fud
-
-#endif