今天我查看了头文件的源代码,boost::asio::ip::address
发现了以下几行:
class address
{
// I removed some irrelevant lines here...
public:
/// Compare addresses for ordering.
friend bool operator>=(const address& a1, const address& a2)
{
return !(a1 < a2);
}
};
现在我知道什么friend
是 for 但我从未见过它后面跟着一个定义,在类定义中。
所以我的问题是,这个friend
声明有什么作用?在我看来,这operator>=
不是一种方法,但是也没有static
关键字。
在这种特殊情况下是否friend
替换?static