什么时候这个'在命名成员函数重载决策期间不在范围内?

时间:2018-04-27 13:54:05

标签: c++ c++14 overloading overload-resolution

来自cppreference

  

调用命名函数

     

< ...>如果表达式E是主表达式,则按照函数调用的正常规则(可能涉及ADL)查找名称。此查找找到的函数声明(由于查找的工作方式):< ...>

     

b)某些类T的所有成员函数,在这种情况下,如果它在范围内并且引用T,则*将其用作隐含对象参数。否则(如果它不在范围内或者不指向T),则使用类型为T的伪对象作为隐含对象参数,如果重载决策随后选择非静态成员函数,则程序格式错误。

似乎第二种情况是关于func(arg)内部方法的调用。什么时候this不在这种情况的范围内?

或者它不仅仅是在谈论func(arg) - 类似于方法中的东西吗?

1 个答案:

答案 0 :(得分:6)

  

var obj = offices.Select(p => new {Id = p.Id, Employess = p.Employess}).ToList(); 何时不在此类案件的范围内?

静态成员函数。