我想看一个例子,其中在整个后缀表达式的上下文中查找conversion-type-id

时间:2015-04-11 22:20:48

标签: c++ language-lawyer lookup c++14

在[basic.lookup.classref] / 7(C ++ 14)中我们有(重点是我的):

  

如果 id-expression conversion-function-id ,   首先在对象表达式的类中查找 conversion-type-id ,并使用名称(如果找到)。 否则它会被抬起来   在整个 postfix-expression 的上下文中。在每一个   查找,只有表示其类型或模板的名称   专业是类型被考虑。

我不明白上面否则的必要性。因此,我想看一个示例,其中在整个后缀表达式的上下文中查找 conversion-type-id

1 个答案:

答案 0 :(得分:5)

某事like this

struct C {
    operator int() { return 42; }
};

typedef int X;

int main() {
  C c;
  c.operator X();  // calls c.operator int();
}

显然,在X类中找不到名称C,但可以在使用它的表达式的上下文中找到它。