CLASS TEMPLATE(3)

NAME
boost::date_time::wrapping_int2 - A wrapping integer used to wrap around at the top (WARNING: only instantiate with a signed type)

SYNOPSIS

// In header: <boost/date_time/wrapping_int.hpp>
template<typename int_type_, int_type_ wrap_min, int_type_ wrap_max>
class wrapping_int2 {
public:
  // types
  typedef int_type_ int_type;
  // construct/copy/destruct
  wrapping_int2(int_type);
  // public static functions
  static int_type wrap_value();
  static int_type min_value();
  // public member functions
  int_type as_int() const;
  operator int_type() const;
  template<typename IntT> IntT add(IntT);
  template<typename IntT> IntT subtract(IntT);
  // private member functions
  template<typename IntT> IntT calculate_wrap(IntT);
};

DESCRIPTION

Bad name, quick impl to fix a bug -- fix later!! This allows the wrap to restart at a value other than 0.

  wrapping_int2 public construct/copy/destruct

    1.

    wrapping_int2(int_type v);

    If initializing value is out of range of [wrap_min, wrap_max], value will be initialized to closest of min or max

  wrapping_int2 public static functions

    1.

    static int_type wrap_value();

    2.

    static int_type min_value();

  wrapping_int2 public member functions

    1.

    int_type as_int() const;
    Explicit converion method. .RE

        2.

        operator int_type() const;

        3.

        template<typename IntT> IntT add(IntT v);

        Add, return number of wraps performed. The sign of the returned value will indicate which direction the wraps went. Ex: add a negative number and wrapping under could occur, this would be indicated by a negative return value. If wrapping over took place, a positive value would be returned

        4.

        template<typename IntT> IntT subtract(IntT v);

        Subtract will return '-d' if wrapping under took place ('d' is the number of wraps) The sign of the returned value will indicate which direction the wraps went. Ex: subtract a negative number and wrapping over could occur, this would be indicated by a positive return value. If wrapping under took place, a negative value would be returned

  wrapping_int2 private member functions

    1.

    template<typename IntT> IntT calculate_wrap(IntT wrap);