Changeset 159:0f18ce923b96 in rrlib_util


Ignore:
Timestamp:
29.11.2016 19:35:36 (3 years ago)
Author:
Tobias Föhst <tobias.foehst@…>
Branch:
14.08
Phase:
public
Rebase:
61326666646330323065343530303864333832666238643364646135363035306432346639363630
Message:

Adds convenience functions to reset and check flags in tEnumBasedFlags

File:
1 edited

Legend:

Unmodified
Added
Removed
  • tEnumBasedFlags.h

    r149 r159  
    122122  bool Get(TFlag flag) const 
    123123  { 
    124     return wrapped & (1 << static_cast<TStorage>(flag)); 
     124    return this->wrapped & (1 << static_cast<TStorage>(flag)); 
    125125  } 
    126126 
     
    130130  constexpr TStorage Raw() const 
    131131  { 
    132     return wrapped; 
     132    return this->wrapped; 
    133133  } 
    134134 
     
    139139   * \param value Set flag? (false will remove it) 
    140140   */ 
    141   inline void Set(TFlag flag, bool value = true) 
     141  inline tEnumBasedFlags &Set(TFlag flag, bool value = true) 
    142142  { 
    143143    if (value) 
    144144    { 
    145       wrapped |= (1 << static_cast<TStorage>(flag)); 
     145      this->wrapped |= (1 << static_cast<TStorage>(flag)); 
    146146    } 
    147147    else 
    148148    { 
    149       wrapped &= (~(1 << static_cast<TStorage>(flag))); 
     149      this->wrapped &= (~(1 << static_cast<TStorage>(flag))); 
    150150    } 
    151   } 
    152  
     151    return *this; 
     152  } 
     153 
     154  /*! Reset all flags 
     155   * 
     156   */ 
     157  inline tEnumBasedFlags &Reset() 
     158  { 
     159    this->wrapped = TStorage(); 
     160    return *this; 
     161  } 
     162 
     163  /*! Reset given flag to false 
     164   * 
     165   * \param flag   The Flag to reset 
     166   */ 
     167  inline tEnumBasedFlags &Reset(TFlag flag) 
     168  { 
     169    return this->Set(flag, false); 
     170  } 
    153171 
    154172  tEnumBasedFlags& operator |= (const tEnumBasedFlags& other) 
    155173  { 
    156     wrapped |= other.wrapped; 
     174    this->wrapped |= other.wrapped; 
    157175    return *this; 
     176  } 
     177 
     178  /*! Checks if any flag is set 
     179   * 
     180   * \return True if at least one flag is set 
     181   */ 
     182  inline bool Any() const 
     183  { 
     184    return this->wrapped; 
     185  } 
     186 
     187  /*! Checks if no flag is set to true 
     188   * 
     189   * \return True if no flag is set 
     190   */ 
     191  inline bool None() const 
     192  { 
     193    return !this->Any(); 
    158194  } 
    159195 
Note: See TracChangeset for help on using the changeset viewer.