📄 casado.txt
字号:
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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -