今天说一下额外 () 产生不同意义的情况。 多数情况下,额外的()是不影响语义的,但在以下 5 种情况,有无 () 则意义不同,此时 () 就有了特殊的作用。 禁止 ADL。 在「洞悉 C++ 函数重载决议」提到过,使用额外的 () 可以防止 ADL。 namespace N { struct S { }; void f(S); } void g() { N::S s; f(s); // OK: calls N::f (f)(s); // error: N::f not considered; parentheses // prevent argument-dependent lookup }… Continue Reading T230428 Extra Parentheses, Different Meaning