basedOpinionated utility library |
git clone git://git.dimitrijedobrota.com/based.git |
Log | Files | Refs | README | LICENSE | HACKING | CONTRIBUTING | CODE_OF_CONDUCT | BUILDING |
commit | 9efe4c77766b9826ff56a95e2e655c319c38a503 |
parent | 49d0990b3949208ebb3690f4826e1eaa77186f15 |
author | Dimitrije Dobrota < mail@dimitrijedobrota.com > |
date | Tue, 17 Jun 2025 20:25:14 +0200 |
Enum and ScopedEnum concepts
A | include/based/concepts/is/enum.hpp | | | +++++++++++++++++++++++++++ |
1 files changed, 27 insertions(+), 0 deletions(-)
diff --git a/ include/based/concepts/is/enum.hpp b/ include/based/concepts/is/enum.hpp
@@ -0,0 +1,27 @@
#pragma once
#include "based/trait/is/enum.hpp"
namespace based
{
namespace detail
{
void test_conversion(...); // selected when E is complete and scoped
void test_conversion(int) = delete; // selected when E is complete and unscoped
} // namespace detail
template<class T>
concept IsEnum = is_enum_v<T>;
template<class T>
concept IsScopedEnum = requires {
requires(IsEnum<T>);
{
detail::test_conversion(T {})
};
};
} // namespace based