///////////////////////////////////////////////////////////////////
//
- // CLASS NAME : DefaultIntegral<Tp,TInitial>
+ // CLASS NAME : DefaultIntegral<_Tp,_Initial>
//
/** Integral type with defined initial value when default constructed.
*
* \endcode
*
* \todo maybe specialize for bool, add logical and bit operators
- * \todo let TInitial default to 0 then remove base/Counter.h
+ * \todo let _Initial default to 0 then remove base/Counter.h
*/
- template<class Tp, Tp TInitial>
+ template<class _Tp, _Tp _Initial>
class DefaultIntegral
{
public:
- typedef Tp value_type;
+ typedef _Tp value_type;
public:
- DefaultIntegral( Tp val_r = TInitial )
+ DefaultIntegral( _Tp val_r = _Initial )
: _val( val_r )
- { BOOST_STATIC_ASSERT(boost::is_integral<Tp>::value); }
+ { BOOST_STATIC_ASSERT(boost::is_integral<_Tp>::value); }
- /** Conversion to Tp. */
+ /** Conversion to _Tp. */
//@{
- Tp & get() { return _val; }
- Tp get() const { return _val; }
+ _Tp & get() { return _val; }
+ _Tp get() const { return _val; }
- operator Tp &() { return get(); }
- operator Tp () const { return get(); }
+ operator _Tp &() { return get(); }
+ operator _Tp () const { return get(); }
//@}
- /** The initial value. */
- constexpr Tp initial() const { return TInitial; }
-
/** Reset to the defined initial value. */
- DefaultIntegral & reset() { _val = TInitial; return *this; }
+ DefaultIntegral & reset() { _val = _Initial; return *this; }
/** \name Arithmetic operations.
- * \c + \c - \c * \c / are provided via conversion to Tp.
+ * \c + \c - \c * \c / are provided via conversion to _Tp.
*/
//@{
- DefaultIntegral & operator=( Tp rhs ) { _val = rhs; return *this; }
- DefaultIntegral & operator+=( Tp rhs ) { _val += rhs; return *this; }
- DefaultIntegral & operator-=( Tp rhs ) { _val -= rhs; return *this; }
- DefaultIntegral & operator*=( Tp rhs ) { _val *= rhs; return *this; }
- DefaultIntegral & operator/=( Tp rhs ) { _val /= rhs; return *this; }
+ DefaultIntegral & operator=( _Tp rhs ) { _val = rhs; return *this; }
+ DefaultIntegral & operator+=( _Tp rhs ) { _val += rhs; return *this; }
+ DefaultIntegral & operator-=( _Tp rhs ) { _val -= rhs; return *this; }
+ DefaultIntegral & operator*=( _Tp rhs ) { _val *= rhs; return *this; }
+ DefaultIntegral & operator/=( _Tp rhs ) { _val /= rhs; return *this; }
DefaultIntegral & operator++(/*prefix*/) { ++_val; return *this; }
DefaultIntegral & operator--(/*prefix*/) { --_val; return *this; }
//@}
private:
- Tp _val;
+ _Tp _val;
};
/** \relates DefaultIntegral \c true initialized \c bool */
template<typename TIntegral>
using ZeroInit = DefaultIntegral<TIntegral,TIntegral(0)>;
- template<class Tp, Tp TInitial>
- std::string asString( const DefaultIntegral<Tp,TInitial> & obj )
- { return asString( obj.get() ); }
-
/////////////////////////////////////////////////////////////////
} // namespace zypp
///////////////////////////////////////////////////////////////////