![]()  | 
  
    MySQL 8.0.44
    
   Source Code Documentation 
   | 
 
a type-safe flags type. More...
#include <flags.h>
Public Types | |
| using | enum_type = std::decay_t< E > | 
| underlying integer type of the enum_type.  More... | |
| using | underlying_type = std::underlying_type_t< enum_type > | 
| implementation type of the underlying type.  More... | |
| using | impl_type = std::make_unsigned_t< underlying_type > | 
| using | size_type = std::size_t | 
Public Member Functions | |
| constexpr | flags ()=default | 
| default constructor.  More... | |
| constexpr | flags (const flags &other)=default | 
| copy constructor.  More... | |
| constexpr | flags (flags &&other)=default | 
| move constructor  More... | |
| constexpr flags & | operator= (const flags &other)=default | 
| copy assignment  More... | |
| constexpr flags & | operator= (flags &&other)=default | 
| move assignment  More... | |
| constexpr | flags (enum_type v) | 
| converting constructor from enum_type.  More... | |
| constexpr | operator bool () const noexcept | 
| check if any bit is set.  More... | |
| constexpr bool | operator! () const noexcept | 
| check if no bit is set.  More... | |
| constexpr flags | operator~ () const noexcept | 
| negation of all bits.  More... | |
| constexpr flags & | operator|= (const flags &other) noexcept | 
| bit-or.  More... | |
| constexpr flags & | operator&= (const flags &other) noexcept | 
| bit-and.  More... | |
| constexpr flags & | operator^= (const flags &other) noexcept | 
| bit-xor.  More... | |
| constexpr void | underlying_value (underlying_type v) noexcept | 
| set underlying value.  More... | |
| constexpr underlying_type | underlying_value () const noexcept | 
| get underlying value.  More... | |
| constexpr size_type | count () const noexcept | 
| count bits set to true.  More... | |
| constexpr size_type | size () const noexcept | 
| returns number of bits the flag-type can hold.  More... | |
| constexpr void | reset () | 
| reset all flags to 0.  More... | |
Private Member Functions | |
| constexpr | flags (impl_type v) noexcept | 
Private Attributes | |
| impl_type | v_ {} | 
Friends | |
| constexpr friend flags | operator& (flags a, flags b) noexcept | 
| bit-and.  More... | |
| constexpr friend flags | operator| (flags a, flags b) noexcept | 
| bit-or.  More... | |
| constexpr friend flags | operator^ (flags a, flags b) noexcept | 
| bit-xor.  More... | |
a type-safe flags type.
Using flags in the in C++ isn't very ergonimic:
For ease of use it should be possible to have a flags-type which allows the type-safe operations:
| E | a scoped enum that is tagged with stdx::is_flags. | 
| using stdx::flags< E >::enum_type = std::decay_t<E> | 
underlying integer type of the enum_type.
| using stdx::flags< E >::impl_type = std::make_unsigned_t<underlying_type> | 
| using stdx::flags< E >::size_type = std::size_t | 
| using stdx::flags< E >::underlying_type = std::underlying_type_t<enum_type> | 
implementation type of the underlying type.
      
  | 
  constexprdefault | 
default constructor.
initializes underlying_value to 0 (no-bits-set).
      
  | 
  constexprdefault | 
copy constructor.
      
  | 
  constexprdefault | 
move constructor
      
  | 
  inlineconstexpr | 
converting constructor from enum_type.
      
  | 
  inlineexplicitconstexprprivatenoexcept | 
      
  | 
  inlineconstexprnoexcept | 
count bits set to true.
      
  | 
  inlineconstexprnoexcept | 
check if any bit is set.
| true | at least one bit is set. | 
| false | no bit is set. | 
      
  | 
  inlineconstexprnoexcept | 
check if no bit is set.
| true | no bit is set. | 
| false | at least one bit is set. | 
      
  | 
  inlineconstexprnoexcept | 
bit-and.
flags &= flags.
      
  | 
  constexprdefault | 
copy assignment
      
  | 
  constexprdefault | 
move assignment
      
  | 
  inlineconstexprnoexcept | 
bit-xor.
flag ^= flag
      
  | 
  inlineconstexprnoexcept | 
bit-or.
flags |= flags.
      
  | 
  inlineconstexprnoexcept | 
negation of all bits.
~flags -> flags.
      
  | 
  inlineconstexpr | 
reset all flags to 0.
      
  | 
  inlineconstexprnoexcept | 
returns number of bits the flag-type can hold.
      
  | 
  inlineconstexprnoexcept | 
get underlying value.
      
  | 
  inlineconstexprnoexcept | 
set underlying value.
| v | underlying value to set. | 
bit-and.
flags & flags -> flags
bit-xor.
flags ^ flags -> flags
bit-or.
flags | flags -> flags
      
  | 
  private |