Iros
 
Loading...
Searching...
No Matches
bit_flag.h
Go to the documentation of this file.
1#pragma once
2
4
5namespace di::bit {
6template<size_t index>
7struct BitFlag {
8 using Value = bool;
9
10 template<size_t bit_size>
11 constexpr static void value_into_bits(BitSet<bit_size>& bit_set, bool value) {
12 bit_set[index] = value;
13 }
14 template<size_t bit_size>
15 constexpr static auto bits_into_value(BitSet<bit_size> const& bit_set) -> bool {
16 return bit_set[index];
17 }
18
19 constexpr BitFlag(bool value) : m_value(value) {}
20 constexpr auto get() const -> bool { return m_value; }
21
22private:
23 bool m_value;
24};
25}
26
27namespace di {
28using bit::BitFlag;
29}
Definition bit_set.h:11
Definition bit_proxy_reference.h:5
Definition zstring_parser.h:9
bool Value
Definition bit_flag.h:8
constexpr BitFlag(bool value)
Definition bit_flag.h:19
static constexpr void value_into_bits(BitSet< bit_size > &bit_set, bool value)
Definition bit_flag.h:11
static constexpr auto bits_into_value(BitSet< bit_size > const &bit_set) -> bool
Definition bit_flag.h:15
constexpr auto get() const -> bool
Definition bit_flag.h:20