我发现 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()
{
...
}
为什么这里有括号?我知道它可以用于“最烦人的解析”并禁止 ADL。但也许还有别的?提前致谢!
之所以这样做,是因为 windows.h(Windows 平台)具有最小值和最大值的#defines。有关更多信息,请参见此处:如何驯服 Windows 标头(有用的定义)?和https://stackoverflow.com/a/13420838/297451