Added Either concept also moved Hashing.hpp to Concept.hpp
This commit is contained in:
@@ -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
|
||||||
Reference in New Issue
Block a user