LibreOffice Module o3tl (master) 1
Classes | Namespaces | Functions
typed_flags_set.hxx File Reference
#include <sal/config.h>
#include <cassert>
#include <type_traits>
#include <o3tl/underlyingenumvalue.hxx>
Include dependency graph for typed_flags_set.hxx:

Go to the source code of this file.

Classes

struct  o3tl::typed_flags< T >
 
struct  o3tl::is_typed_flags< E, M >
 Mark a (scoped) enumeration as a set of bit flags, with accompanying operations. More...
 
class  o3tl::is_typed_flags< E, M >::Wrap
 

Namespaces

namespace  o3tl
 
namespace  o3tl::detail
 

Functions

template<typename T >
constexpr std::enable_if< std::is_signed< T >::value, bool >::type o3tl::detail::isNonNegative (T value)
 
template<typename T >
constexpr std::enable_if< std::is_unsigned< T >::value, bool >::type o3tl::detail::isNonNegative (T)
 
template<typename E >
constexpr o3tl::typed_flags< E >::Wrap operator~ (E rhs)
 
template<typename E >
constexpr o3tl::typed_flags< E >::Wrap operator~ (typename o3tl::typed_flags< E >::Wrap rhs)
 
template<typename E >
constexpr o3tl::typed_flags< E >::Wrap operator^ (E lhs, E rhs)
 
template<typename E >
constexpr o3tl::typed_flags< E >::Wrap operator^ (E lhs, typename o3tl::typed_flags< E >::Wrap rhs)
 
template<typename E >
constexpr o3tl::typed_flags< E >::Wrap operator^ (typename o3tl::typed_flags< E >::Wrap lhs, E rhs)
 
template<typename W >
constexpr o3tl::typed_flags< typenameW::Unwrapped::Self >::Wrap operator^ (W lhs, W rhs)
 
template<typename E >
constexpr o3tl::typed_flags< E >::Wrap operator& (E lhs, E rhs)
 
template<typename E >
constexpr o3tl::typed_flags< E >::Wrap operator& (E lhs, typename o3tl::typed_flags< E >::Wrap rhs)
 
template<typename E >
constexpr o3tl::typed_flags< E >::Wrap operator& (typename o3tl::typed_flags< E >::Wrap lhs, E rhs)
 
template<typename W >
constexpr o3tl::typed_flags< typenameW::Unwrapped::Self >::Wrap operator& (W lhs, W rhs)
 
template<typename E >
constexpr o3tl::typed_flags< E >::Wrap operator| (E lhs, E rhs)
 
template<typename E >
constexpr o3tl::typed_flags< E >::Wrap operator| (E lhs, typename o3tl::typed_flags< E >::Wrap rhs)
 
template<typename E >
constexpr o3tl::typed_flags< E >::Wrap operator| (typename o3tl::typed_flags< E >::Wrap lhs, E rhs)
 
template<typename W >
constexpr o3tl::typed_flags< typenameW::Unwrapped::Self >::Wrap operator| (W lhs, W rhs)
 
template<typename E >
o3tl::typed_flags< E >::Self operator&= (E &lhs, E rhs)
 
template<typename E >
o3tl::typed_flags< E >::Self operator&= (E &lhs, typename o3tl::typed_flags< E >::Wrap rhs)
 
template<typename E >
o3tl::typed_flags< E >::Self operator|= (E &lhs, E rhs)
 
template<typename E >
o3tl::typed_flags< E >::Self operator|= (E &lhs, typename o3tl::typed_flags< E >::Wrap rhs)
 
template<typename E >
o3tl::typed_flags< E >::Self operator^= (E &lhs, E rhs)
 
template<typename E >
o3tl::typed_flags< E >::Self operator^= (E &lhs, typename o3tl::typed_flags< E >::Wrap rhs)
 

Function Documentation

◆ operator&() [1/4]

template<typename E >
constexpr o3tl::typed_flags< E >::Wrap operator& ( lhs,
rhs 
)
constexpr

Definition at line 167 of file typed_flags_set.hxx.

References o3tl::detail::isNonNegative(), and o3tl::to_underlying().

◆ operator&() [2/4]

template<typename E >
constexpr o3tl::typed_flags< E >::Wrap operator& ( lhs,
typename o3tl::typed_flags< E >::Wrap  rhs 
)
constexpr

Definition at line 179 of file typed_flags_set.hxx.

References o3tl::detail::isNonNegative(), and o3tl::to_underlying().

◆ operator&() [3/4]

template<typename E >
constexpr o3tl::typed_flags< E >::Wrap operator& ( typename o3tl::typed_flags< E >::Wrap  lhs,
rhs 
)
constexpr

Definition at line 190 of file typed_flags_set.hxx.

References o3tl::detail::isNonNegative(), and o3tl::to_underlying().

◆ operator&() [4/4]

template<typename W >
constexpr o3tl::typed_flags< typenameW::Unwrapped::Self >::Wrap operator& ( lhs,
rhs 
)
constexpr

Definition at line 202 of file typed_flags_set.hxx.

◆ operator&=() [1/2]

template<typename E >
o3tl::typed_flags< E >::Self operator&= ( E &  lhs,
rhs 
)
inline

Definition at line 255 of file typed_flags_set.hxx.

References o3tl::detail::isNonNegative(), and o3tl::to_underlying().

◆ operator&=() [2/2]

template<typename E >
o3tl::typed_flags< E >::Self operator&= ( E &  lhs,
typename o3tl::typed_flags< E >::Wrap  rhs 
)
inline

Definition at line 267 of file typed_flags_set.hxx.

References o3tl::detail::isNonNegative(), and o3tl::to_underlying().

◆ operator^() [1/4]

template<typename E >
constexpr o3tl::typed_flags< E >::Wrap operator^ ( lhs,
rhs 
)
constexpr

Definition at line 121 of file typed_flags_set.hxx.

References o3tl::detail::isNonNegative(), and o3tl::to_underlying().

◆ operator^() [2/4]

template<typename E >
constexpr o3tl::typed_flags< E >::Wrap operator^ ( lhs,
typename o3tl::typed_flags< E >::Wrap  rhs 
)
constexpr

Definition at line 135 of file typed_flags_set.hxx.

References o3tl::detail::isNonNegative(), and o3tl::to_underlying().

◆ operator^() [3/4]

template<typename E >
constexpr o3tl::typed_flags< E >::Wrap operator^ ( typename o3tl::typed_flags< E >::Wrap  lhs,
rhs 
)
constexpr

Definition at line 146 of file typed_flags_set.hxx.

References o3tl::detail::isNonNegative(), and o3tl::to_underlying().

◆ operator^() [4/4]

template<typename W >
constexpr o3tl::typed_flags< typenameW::Unwrapped::Self >::Wrap operator^ ( lhs,
rhs 
)
constexpr

Definition at line 158 of file typed_flags_set.hxx.

◆ operator^=() [1/2]

template<typename E >
o3tl::typed_flags< E >::Self operator^= ( E &  lhs,
rhs 
)
inline

Definition at line 301 of file typed_flags_set.hxx.

References o3tl::detail::isNonNegative(), and o3tl::to_underlying().

◆ operator^=() [2/2]

template<typename E >
o3tl::typed_flags< E >::Self operator^= ( E &  lhs,
typename o3tl::typed_flags< E >::Wrap  rhs 
)
inline

Definition at line 313 of file typed_flags_set.hxx.

References o3tl::detail::isNonNegative(), and o3tl::to_underlying().

◆ operator|() [1/4]

template<typename E >
constexpr o3tl::typed_flags< E >::Wrap operator| ( lhs,
rhs 
)
constexpr

Definition at line 211 of file typed_flags_set.hxx.

References o3tl::detail::isNonNegative(), and o3tl::to_underlying().

◆ operator|() [2/4]

template<typename E >
constexpr o3tl::typed_flags< E >::Wrap operator| ( lhs,
typename o3tl::typed_flags< E >::Wrap  rhs 
)
constexpr

Definition at line 223 of file typed_flags_set.hxx.

References o3tl::detail::isNonNegative(), and o3tl::to_underlying().

◆ operator|() [3/4]

template<typename E >
constexpr o3tl::typed_flags< E >::Wrap operator| ( typename o3tl::typed_flags< E >::Wrap  lhs,
rhs 
)
constexpr

Definition at line 234 of file typed_flags_set.hxx.

References o3tl::detail::isNonNegative(), and o3tl::to_underlying().

◆ operator|() [4/4]

template<typename W >
constexpr o3tl::typed_flags< typenameW::Unwrapped::Self >::Wrap operator| ( lhs,
rhs 
)
constexpr

Definition at line 246 of file typed_flags_set.hxx.

◆ operator|=() [1/2]

template<typename E >
o3tl::typed_flags< E >::Self operator|= ( E &  lhs,
rhs 
)
inline

Definition at line 278 of file typed_flags_set.hxx.

References o3tl::detail::isNonNegative(), and o3tl::to_underlying().

◆ operator|=() [2/2]

template<typename E >
o3tl::typed_flags< E >::Self operator|= ( E &  lhs,
typename o3tl::typed_flags< E >::Wrap  rhs 
)
inline

Definition at line 290 of file typed_flags_set.hxx.

References o3tl::detail::isNonNegative(), and o3tl::to_underlying().

◆ operator~() [1/2]

template<typename E >
constexpr o3tl::typed_flags< E >::Wrap operator~ ( rhs)
constexpr

Definition at line 104 of file typed_flags_set.hxx.

References o3tl::detail::isNonNegative(), and o3tl::to_underlying().

◆ operator~() [2/2]

template<typename E >
constexpr o3tl::typed_flags< E >::Wrap operator~ ( typename o3tl::typed_flags< E >::Wrap  rhs)
constexpr

Definition at line 113 of file typed_flags_set.hxx.