Added Either concept also moved Hashing.hpp to Concept.hpp

This commit is contained in:
2026-02-23 06:30:37 +02:00
parent 3c2744854b
commit 31b3f2033d

View File

@@ -7,8 +7,8 @@
* obtain one at http://mozilla.org/MPL/2.0/. * obtain one at http://mozilla.org/MPL/2.0/.
*/ */
#ifndef GUARD_TOURMALINE_HASHING_H #ifndef GUARD_TOURMALINE_CONCEPTS_H
#define GUARD_TOURMALINE_HASHING_H #define GUARD_TOURMALINE_CONCEPTS_H
#include <concepts> #include <concepts>
#include <functional> #include <functional>
@@ -17,5 +17,8 @@ template <typename T>
concept Hashable = std::equality_comparable<T> && requires(T x) { concept Hashable = std::equality_comparable<T> && requires(T x) {
{ std::hash<T>{}(x) } -> std::convertible_to<std::size_t>; { std::hash<T>{}(x) } -> std::convertible_to<std::size_t>;
}; };
template <typename Base, typename Type1, typename Type2>
concept Either = std::same_as<Base, Type1> || std::same_as<Base, Type2>;
} // namespace Tourmaline::Containers } // namespace Tourmaline::Containers
#endif #endif