CLASS TEMPLATE (3)

NAME
boost::date_time::int_adapter - Adapter to create integer types with +-infinity, and not a value.

SYNOPSIS

// In header: <boost/date_time/int_adapter.hpp>
template<typename int_type_>
class int_adapter {
public:
  // types
  typedef int_type_ int_type;
  // construct/copy/destruct
  int_adapter(int_type);
  // public member functions
  bool is_infinity() const;
  bool is_pos_infinity() const;
  bool is_neg_infinity() const;
  bool is_nan() const;
  bool is_special() const;
  bool operator==(const int_adapter &) const;
  bool operator==(const int &) const;
  bool operator!=(const int_adapter &) const;
  bool operator!=(const int &) const;
  bool operator<(const int_adapter &) const;
  bool operator<(const int &) const;
  bool operator>(const int_adapter &) const;
  int_type as_number() const;
  special_values as_special() const;
  template<typename rhs_type>
    int_adapter operator+(const int_adapter< rhs_type > &) const;
  int_adapter operator+(const int_type) const;
  template<typename rhs_type>
    int_adapter operator-(const int_adapter< rhs_type > &) const;
  int_adapter operator-(const int_type) const;
  int_adapter operator*(const int_adapter &) const;
  int_adapter operator*(const int) const;
  int_adapter operator/(const int_adapter &) const;
  int_adapter operator/(const int) const;
  int_adapter operator%(const int_adapter &) const;
  int_adapter operator%(const int) const;
  // public static functions
  static bool has_infinity();
  static const int_adapter pos_infinity();
  static const int_adapter neg_infinity();
  static const int_adapter not_a_number();
  static int_adapter max BOOST_PREVENT_MACRO_SUBSTITUTION();
  static int_adapter min BOOST_PREVENT_MACRO_SUBSTITUTION();
  static int_adapter from_special(special_values);
  static bool is_inf(int_type);
  static bool is_neg_inf(int_type);
  static bool is_pos_inf(int_type);
  static bool is_not_a_number(int_type);
  static special_values to_special(int_type);
  static int_type maxcount();
  // private member functions
  int compare(const int_adapter &) const;
  int_adapter mult_div_specials(const int_adapter &) const;
  int_adapter mult_div_specials(const int &) const;
};

DESCRIPTION

This class is used internally in counted date/time representations. It adds the floating point like features of infinities and not a number. It also provides mathmatical operations with consideration to special values following these rules:

      +infinity  -  infinity  == Not A Number (NAN)
       infinity  *  non-zero  == infinity
       infinity  *  zero      == NAN
      +infinity  * -integer   == -infinity
       infinity  /  infinity  == NAN
       infinity  *  infinity  == infinity
     *

  int_adapter public construct/copy/destruct

    1.

    int_adapter(int_type v);

  int_adapter public member functions

    1.

    bool is_infinity() const;

    2.

    bool is_pos_infinity() const;

    3.

    bool is_neg_infinity() const;

    4.

    bool is_nan() const;

    5.

    bool is_special() const;

    6.

    bool operator==(const int_adapter & rhs) const;

    7.

    bool operator==(const int & rhs) const;

    8.

    bool operator!=(const int_adapter & rhs) const;

    9.

    bool operator!=(const int & rhs) const;

    10.

    bool operator<(const int_adapter & rhs) const;

    11.

    bool operator<(const int & rhs) const;

    12.

    bool operator>(const int_adapter & rhs) const;

    13.

    int_type as_number() const;

    14.

    special_values as_special() const;
    Returns either special value type or is_not_special. .RE

        15.

        template<typename rhs_type>
          int_adapter operator+(const int_adapter< rhs_type > & rhs) const;

        Operator allows for adding dissimilar int_adapter types. The return type will match that of the the calling object's type

        16.

        int_adapter operator+(const int_type rhs) const;

        17.

        template<typename rhs_type>
          int_adapter operator-(const int_adapter< rhs_type > & rhs) const;

        Operator allows for subtracting dissimilar int_adapter types. The return type will match that of the the calling object's type

        18.

        int_adapter operator-(const int_type rhs) const;

        19.

        int_adapter operator*(const int_adapter & rhs) const;

        20.

        int_adapter operator*(const int rhs) const;

        Provided for cases when automatic conversion from 'int' to 'int_adapter' causes incorrect results.

        21.

        int_adapter operator/(const int_adapter & rhs) const;

        22.

        int_adapter operator/(const int rhs) const;

        Provided for cases when automatic conversion from 'int' to 'int_adapter' causes incorrect results.

        23.

        int_adapter operator%(const int_adapter & rhs) const;

        24.

        int_adapter operator%(const int rhs) const;

        Provided for cases when automatic conversion from 'int' to 'int_adapter' causes incorrect results.

  int_adapter public static functions

    1.

    static bool has_infinity();

    2.

    static const int_adapter pos_infinity();

    3.

    static const int_adapter neg_infinity();

    4.

    static const int_adapter not_a_number();

    5.

    static int_adapter max BOOST_PREVENT_MACRO_SUBSTITUTION();

    6.

    static int_adapter min BOOST_PREVENT_MACRO_SUBSTITUTION();

    7.

    static int_adapter from_special(special_values sv);

    8.

    static bool is_inf(int_type v);

    9.

    static bool is_neg_inf(int_type v);

    10.

    static bool is_pos_inf(int_type v);

    11.

    static bool is_not_a_number(int_type v);

    12.

    static special_values to_special(int_type v);
    Returns either special value type or is_not_special. .RE

        13.

        static int_type maxcount();

  int_adapter private member functions

    1.

    int compare(const int_adapter & rhs) const;
    returns -1, 0, 1, or 2 if 'this' is <, ==, >, or 'nan comparison' rhs .RE

        2.

        int_adapter mult_div_specials(const int_adapter & rhs) const;
        Assumes at least 'this' or 'rhs' is a special value. .RE

            3.

            int_adapter mult_div_specials(const int & rhs) const;
            Assumes 'this' is a special value. .RE