22#include <kiwano/core/BitOperator.h> 
   28template <
typename _Ty>
 
   32    static_assert(std::is_arithmetic<_Ty>::value, 
"_Ty must be an arithmetic type");
 
   34    typedef _Ty value_type;
 
   43    inline Flag(_Ty value)
 
   48    inline void Set(_Ty value)
 
   50        bits::Set(this->value, value);
 
   53    inline void Unset(_Ty value)
 
   55        bits::Unset(this->value, value);
 
   58    inline bool Has(_Ty value)
 const 
   60        return bits::Has(this->value, value);
 
   64template <
typename _Ty>
 
   65struct IsFlag : 
public std::false_type
 
   69template <
typename _Ty>