based

Opinionated 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

Diffstat:
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