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