使用成员运算符而不是独立运算符
作者: mikomikotaishi创建于 2026年2月17日更新于 2026年4月22日
标签feature
· 先决条件核对表
这里描述您的特性请求
在C++模块提案(# 3467)中,我似乎遇到了与ADL有关的问题,为sf:IpAddress'找到操作者'。 似乎它没有正确找到operator == (IpAddress, IpAddress)' (当我使用import sfml;'),但如果使用 # 包含 <SFML/Network/IpAddress.hpp> 。 (然而,通过将这些操作员纳入 " 使用 " 的全球范围也解决了这一问题。 )
虽然我理解 C++ 模块还不是官方支持的功能, 但讨论将 SFML 4 移动到 C++20 (# 3143) 使得讨论模块成为一个有价值的问题, 这就是为什么我认为应该考虑将独立运营商移动成为会员运营商的建议。
使用大小写
这使我们能够避免使用ADL,而只是使用一个成员操作员,并避免 " 朋友操作员 " 的需要。 对于sf:IpAddress'等课程,不需要左手,因为它们只是比较IpAddress'。 从维护的角度来看,这将是封装的改进,因为更清楚的是,类"拥有"操作员.
API 示例
相反: 翻译: 类 IpAddress { 公开 : //.
[不丢弃]] SFML NETWORK API bool 运营商 == (其他版本);
[不丢弃]] SFML NETWORK API bool 运算符!=(其他用户);
//.
- ;
内容来源: SFML/SFML