libzypp  14.48.5
zypp::base::Flags< _Enum > Class Template Reference

A type-safe way of storing OR-combinations of enum values (like QTs QFlags). More...

#include <Flags.h>

Public Types

typedef _Enum Enum
 The underlying enum type. More...
 
typedef std::underlying_type
< Enum >::type 
Integral
 The underlying integral type. More...
 

Public Member Functions

constexpr Flags ()
 
constexpr Flags (Enum flag_r)
 
constexpr Flags (Integral flag_r)
 
Flagsoperator&= (Flags rhs)
 
Flagsoperator&= (Enum rhs)
 
Flagsoperator|= (Flags rhs)
 
Flagsoperator|= (Enum rhs)
 
Flagsoperator^= (Flags rhs)
 
Flagsoperator^= (Enum rhs)
 
constexpr operator Integral () const
 
constexpr Flags operator& (Flags rhs) const
 
constexpr Flags operator& (Enum rhs) const
 
constexpr Flags operator| (Flags rhs) const
 
constexpr Flags operator| (Enum rhs) const
 
constexpr Flags operator^ (Flags rhs) const
 
constexpr Flags operator^ (Enum rhs) const
 
constexpr Flags operator~ () const
 
FlagssetFlag (Flags flag_r, bool newval_r)
 
FlagssetFlag (Enum flag_r, bool newval_r)
 
FlagssetFlag (Flags flag_r)
 
FlagssetFlag (Enum flag_r)
 
FlagsunsetFlag (Flags flag_r)
 
FlagsunsetFlag (Enum flag_r)
 
bool testFlag (Flags flag_r) const
 
bool testFlag (Enum flag_r) const
 

Private Attributes

Integral _val
 

Detailed Description

template<typename _Enum>
class zypp::base::Flags< _Enum >

A type-safe way of storing OR-combinations of enum values (like QTs QFlags).

See Also
QFlags Class Reference
class RpmDb
{
public:
enum DbStateInfoBits {
DbSI_NO_INIT = 0x0000,
DbSI_HAVE_V4 = 0x0001,
DbSI_MADE_V4 = 0x0002,
DbSI_MODIFIED_V4 = 0x0004,
DbSI_HAVE_V3 = 0x0008,
DbSI_HAVE_V3TOV4 = 0x0010,
DbSI_MADE_V3TOV4 = 0x0020
};
ZYPP_DECLARE_FLAGS(DbStateInfo,DbStateInfoBits);
};
...
enum Other { OTHERVAL = 13 };
{
XRpmDb::DbStateInfo s;
s = XRpmDb::DbSI_MODIFIED_V4|XRpmDb::DbSI_HAVE_V4;
// s |= OTHERVAL; // As desired: it does not compile
}

Definition at line 58 of file Flags.h.

Member Typedef Documentation

template<typename _Enum >
typedef _Enum zypp::base::Flags< _Enum >::Enum

The underlying enum type.

Definition at line 61 of file Flags.h.

template<typename _Enum >
typedef std::underlying_type<Enum>::type zypp::base::Flags< _Enum >::Integral

The underlying integral type.

Definition at line 62 of file Flags.h.

Constructor & Destructor Documentation

template<typename _Enum >
constexpr zypp::base::Flags< _Enum >::Flags ( )
inline

Definition at line 65 of file Flags.h.

template<typename _Enum >
constexpr zypp::base::Flags< _Enum >::Flags ( Enum  flag_r)
inline

Definition at line 66 of file Flags.h.

template<typename _Enum >
constexpr zypp::base::Flags< _Enum >::Flags ( Integral  flag_r)
inlineexplicit

Definition at line 67 of file Flags.h.

Member Function Documentation

template<typename _Enum >
Flags& zypp::base::Flags< _Enum >::operator&= ( Flags< _Enum >  rhs)
inline

Definition at line 69 of file Flags.h.

template<typename _Enum >
Flags& zypp::base::Flags< _Enum >::operator&= ( Enum  rhs)
inline

Definition at line 70 of file Flags.h.

template<typename _Enum >
Flags& zypp::base::Flags< _Enum >::operator|= ( Flags< _Enum >  rhs)
inline

Definition at line 72 of file Flags.h.

template<typename _Enum >
Flags& zypp::base::Flags< _Enum >::operator|= ( Enum  rhs)
inline

Definition at line 73 of file Flags.h.

template<typename _Enum >
Flags& zypp::base::Flags< _Enum >::operator^= ( Flags< _Enum >  rhs)
inline

Definition at line 75 of file Flags.h.

template<typename _Enum >
Flags& zypp::base::Flags< _Enum >::operator^= ( Enum  rhs)
inline

Definition at line 76 of file Flags.h.

template<typename _Enum >
constexpr zypp::base::Flags< _Enum >::operator Integral ( ) const
inline

Definition at line 79 of file Flags.h.

template<typename _Enum >
constexpr Flags zypp::base::Flags< _Enum >::operator& ( Flags< _Enum >  rhs) const
inline

Definition at line 81 of file Flags.h.

template<typename _Enum >
constexpr Flags zypp::base::Flags< _Enum >::operator& ( Enum  rhs) const
inline

Definition at line 82 of file Flags.h.

template<typename _Enum >
constexpr Flags zypp::base::Flags< _Enum >::operator| ( Flags< _Enum >  rhs) const
inline

Definition at line 84 of file Flags.h.

template<typename _Enum >
constexpr Flags zypp::base::Flags< _Enum >::operator| ( Enum  rhs) const
inline

Definition at line 85 of file Flags.h.

template<typename _Enum >
constexpr Flags zypp::base::Flags< _Enum >::operator^ ( Flags< _Enum >  rhs) const
inline

Definition at line 87 of file Flags.h.

template<typename _Enum >
constexpr Flags zypp::base::Flags< _Enum >::operator^ ( Enum  rhs) const
inline

Definition at line 88 of file Flags.h.

template<typename _Enum >
constexpr Flags zypp::base::Flags< _Enum >::operator~ ( ) const
inline

Definition at line 90 of file Flags.h.

template<typename _Enum >
Flags& zypp::base::Flags< _Enum >::setFlag ( Flags< _Enum >  flag_r,
bool  newval_r 
)
inline

Definition at line 93 of file Flags.h.

template<typename _Enum >
Flags& zypp::base::Flags< _Enum >::setFlag ( Enum  flag_r,
bool  newval_r 
)
inline

Definition at line 94 of file Flags.h.

template<typename _Enum >
Flags& zypp::base::Flags< _Enum >::setFlag ( Flags< _Enum >  flag_r)
inline

Definition at line 96 of file Flags.h.

template<typename _Enum >
Flags& zypp::base::Flags< _Enum >::setFlag ( Enum  flag_r)
inline

Definition at line 97 of file Flags.h.

template<typename _Enum >
Flags& zypp::base::Flags< _Enum >::unsetFlag ( Flags< _Enum >  flag_r)
inline

Definition at line 99 of file Flags.h.

template<typename _Enum >
Flags& zypp::base::Flags< _Enum >::unsetFlag ( Enum  flag_r)
inline

Definition at line 100 of file Flags.h.

template<typename _Enum >
bool zypp::base::Flags< _Enum >::testFlag ( Flags< _Enum >  flag_r) const
inline

Definition at line 102 of file Flags.h.

template<typename _Enum >
bool zypp::base::Flags< _Enum >::testFlag ( Enum  flag_r) const
inline

Definition at line 103 of file Flags.h.

Member Data Documentation

template<typename _Enum >
Integral zypp::base::Flags< _Enum >::_val
private

Definition at line 106 of file Flags.h.


The documentation for this class was generated from the following file: