gpt4 book ai didi

c++ - 什么是 "identifier associated by name lookup"?

转载 作者:搜寻专家 更新时间:2023-10-31 02:17:39 24 4
gpt4 key购买 nike

所以我正在阅读 C++ 标准中的这一段

14.6.2.2 [temp.dep.expr]/3

An id-expression is type-dependent if it contains

  • an identifier associated by name lookup with one or more declarations declared with a dependent type,
  • ...

谁能解释一下“通过名称查找关联的标识符”这个术语的确切含义? , 是在说 ADL 还是什么?

最佳答案

这意味着一个标识符,在执行名称查找之后,现在与该名称的一个或多个声明相关联。将其视为名称到它可能引用的一组声明的一对多映射。当存在多个关联声明(例如函数重载)时,仅在执行名称查找(和关联)后才执行重载解析。

现在,至于你引用的内容。依赖类型是指依赖于当前 模板实例化的类型。所以,例如,如果我们有

template<class T> struct A {
A<T> a1; // A<T> is a dependent type
A<T*> a2; // A<T*> is not a dependent type
};

在上面的例子中,原因A<T> 依赖是因为它指的是模板类的当前实例化。但是A<T*>指的是一个不同的实例——一个完全不同的类。

所以您的引述基本上是说,如果您的模板代码中有一个标识符与使用依赖类型的某些声明相关联,那么包含它的 id-expression 本身就是类型依赖的。也就是说,它指的是引用当前实例化的类型。

关于c++ - 什么是 "identifier associated by name lookup"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35571083/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com