Toolbox
snapshot
The Reactive C++ Toolbox
Loading...
Searching...
No Matches
toolbox
util
Enum.hpp
Go to the documentation of this file.
1
// The Reactive C++ Toolbox.
2
// Copyright (C) 2013-2019 Swirly Cloud Limited
3
// Copyright (C) 2022 Reactive Markets Limited
4
//
5
// Licensed under the Apache License, Version 2.0 (the "License");
6
// you may not use this file except in compliance with the License.
7
// You may obtain a copy of the License at
8
//
9
// http://www.apache.org/licenses/LICENSE-2.0
10
//
11
// Unless required by applicable law or agreed to in writing, software
12
// distributed under the License is distributed on an "AS IS" BASIS,
13
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
// See the License for the specific language governing permissions and
15
// limitations under the License.
16
17
#ifndef TOOLBOX_UTIL_ENUM_HPP
18
#define TOOLBOX_UTIL_ENUM_HPP
19
20
#include <
toolbox/util/Concepts.hpp
>
21
22
namespace
toolbox
{
23
inline
namespace
util {
24
25
template
<
typename
EnumT>
26
requires
Enum<EnumT>
27
constexpr
EnumT
box
(
typename
std::underlying_type_t<EnumT>
val
)
noexcept
28
{
29
return
static_cast<
EnumT
>
(
val
);
30
}
31
32
template
<
typename
EnumT>
33
requires
Enum<EnumT>
34
constexpr
std::underlying_type_t<EnumT>
unbox
(
EnumT
val
)
noexcept
35
{
36
return
static_cast<
std::underlying_type_t<EnumT>
>
(
val
);
37
}
38
39
}
// namespace util
40
}
// namespace toolbox
41
42
#endif
// TOOLBOX_UTIL_ENUM_HPP
Concepts.hpp
toolbox::util::unbox
constexpr std::underlying_type_t< EnumT > unbox(EnumT val) noexcept
Definition
Enum.hpp:34
toolbox::util::box
constexpr EnumT box(typename std::underlying_type_t< EnumT > val) noexcept
Definition
Enum.hpp:27
toolbox::util::bind
constexpr auto bind() noexcept
Definition
Slot.hpp:92
toolbox
Definition
Benchmark.cpp:26
Generated by
1.9.8