【发布时间】:2013-11-17 15:40:13
【问题描述】:
我发现 boost 中的代码类似于:
class A
{
stats stat;
public:
int min() const{ return (stat.min)(); }
};
...
int stats::min()
{
...
}
为什么这里有括号?我知道它可以用于“最烦人的解析”并禁止 ADL。但也许还有别的?提前致谢!
【问题讨论】:
-
您的意思是
return (stat.min)();语句中的(stat.min)?绝对不需要它们,除非原始编码器不信任运算符优先级来做正确的事情(确实如此)。 -
它什么也没做。他们可能习惯于将函数名称包装在括号中以避免 ADL,他们最终也在这里使用了它们。
标签: c++