12 #ifndef ZYPP_BASE_DEFAULTINTEGRAL_H
13 #define ZYPP_BASE_DEFAULTINTEGRAL_H
16 #include <boost/static_assert.hpp>
17 #include <boost/type_traits/is_integral.hpp>
40 template<
class Tp, Tp TInitial>
49 { BOOST_STATIC_ASSERT(boost::is_integral<Tp>::value); }
53 Tp &
get() {
return _val; }
54 Tp
get()
const {
return _val; }
56 operator Tp &() {
return get(); }
57 operator Tp ()
const {
return get(); }
61 constexpr Tp
initial()
const {
return TInitial; }
94 template<
typename TIntegral>
97 template<
class Tp, Tp TInitial>
104 #endif // ZYPP_BASE_DEFAULTINTEGRAL_H
Tp & get()
Conversion to Tp.
DefaultIntegral & operator=(Tp rhs)
DefaultIntegral operator--(int)
DefaultIntegral< bool, false > FalseBool
std::string asString(const DefaultIntegral< Tp, TInitial > &obj)
DefaultIntegral & operator*=(Tp rhs)
DefaultIntegral & reset()
Reset to the defined initial value.
DefaultIntegral< bool, true > TrueBool
DefaultIntegral operator++(int)
DefaultIntegral & operator-=(Tp rhs)
Integral type with defined initial value when default constructed.
constexpr Tp initial() const
The initial value.
DefaultIntegral & operator--()
DefaultIntegral & operator/=(Tp rhs)
DefaultIntegral & operator++()
DefaultIntegral & operator+=(Tp rhs)
DefaultIntegral(Tp val_r=TInitial)