GCC Code Coverage Report


./
Coverage:
low: ≥ 0%
medium: ≥ 75.0%
high: ≥ 90.0%
Lines:
0 of 4, 0 excluded
0.0%
Functions:
0 of 2, 0 excluded
0.0%
Branches:
0 of 0, 0 excluded
-%

libs/base/src/eu/base/cpp.h
Line Branch Exec Source
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
24