Euphoria
Main Page
Related Pages
Topics
Namespaces
Concepts
Classes
Files
File List
File Members
libs
base
src
eu
base
cpp.h
Go to the documentation of this file.
1
#pragma once
2
3
namespace
eu
4
{
5
6
// ------------------------------------------------------------------------------------------------
7
// std utils
8
9
// convert an enum class to it's underlying (int) type
10
// src: https://twitter.com/idoccor/status/1314664849276899328
11
template
<
typename
E>
12
constexpr
typename
std::underlying_type_t<E>
base_cast
(E e)
noexcept
13
{
14
return
static_cast<
typename std::underlying_type_t<E>
>
(e);
15
}
16
17
template
<
typename
E>
18
constexpr
bool
is_flag_set
(E var, E flag)
19
{
20
return
(
base_cast
(var) &
base_cast
(flag)) > 0;
21
}
22
23
}
// namespace eu
eu
Definition
assert.h:118
eu::is_flag_set
constexpr bool is_flag_set(E var, E flag)
Definition
cpp.h:18
eu::base_cast
constexpr std::underlying_type_t< E > base_cast(E e) noexcept
Definition
cpp.h:12
Generated by
1.9.8