我在boost中找到了类似以下代码的内容:
class A
{
stats stat;
public:
int min() const{ return (stat.min)(); }
};
...
int stats::min()
{
...
}
为什么这里需要用括号?我知道它可以用于“最恼人的解析”和禁止ADL。但还有其他方面吗?感谢您的帮助!
我在boost中找到了类似以下代码的内容:
class A
{
stats stat;
public:
int min() const{ return (stat.min)(); }
};
...
int stats::min()
{
...
}
这么做是因为 windows.h (Windows 平台) 定义了 min 和 max 的 #define。更多信息请参见此处:如何驯服 Windows 头文件(有用的定义)? 和 https://dev59.com/_mYr5IYBdhLWcg3wxMwk#13420838
return (stat.min)();
语句中的(stat.min)
吗?除非原始编码者不相信运算符优先级会做正确的事情(它确实会),否则完全没有必要使用它们。 - Some programmer dude