Listing 1: Class declaration for ipaddr.
struct ipaddr { uint32_t addr; // --- Constructors --- ipaddr(); ipaddr(const ipaddr&); ipaddr(const std::string&); // --- String Representation -- char* toString() const; // --- Binary Operators --- ipaddr operator ~ () const; ipaddr operator & (const ipaddr&) const; ipaddr operator | (const ipaddr&) const; // --- Mathematical operators --- ipaddr operator ++ (); ipaddr operator -- (); // --- Assignment Operator --- ipaddr& operator = (const ipaddr&); ipaddr& operator = (const std::string &); // --- Comparison Operators --- bool operator == (const ipaddr&) const; bool operator != (const ipaddr&) const; bool operator < (const ipaddr&) const; bool operator <= (const ipaddr&) const; bool operator > (const ipaddr&) const; bool operator >= (const ipaddr&) const; }; // -- struct ipaddr