casado.txt

来自「用C++编的小程序」· 文本 代码 · 共 50 行

TXT
50
字号
Static Packet Construction with C++ Templates        
by Martin Casado    

Listing 1:

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
 

Listing 2:

ipaddr& addr("10.0.0.1");
ipaddr& mask("255.255.255.0");
cout << "Subnet:" <<  (addr & mask).toString() << endl;
cout << "Broadcast:" <<  (addr | (~ mask)).toString() << endl;
// -- loop over class C and print out each address
for ( ipaddr temp = (addr & mask) ; temp <=  (addr | (~mask)) ; temp++ )
{ cout << temp.toString() << endl; }





1


⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?