blob: ce020a604991e590be249f4dc912e5d0705b7104 [file] [log] [blame]
#pragma once
#include <concepts>
#include <type_traits>
namespace stdplus
{
template <typename T, typename U>
concept WeaklyEqualityComparableWith = requires(
const std::remove_reference_t<T>& t, const std::remove_reference_t<U>& u) {
{
t == u
} -> std::convertible_to<bool>;
{
t != u
} -> std::convertible_to<bool>;
{
u == t
} -> std::convertible_to<bool>;
{
u != t
} -> std::convertible_to<bool>;
};
template <typename T>
concept TriviallyCopyable = std::is_trivially_copyable_v<T>;
} // namespace stdplus