C++ 入门第 5 版模板从属和非从属名称

C++ primer 5th ed templates dependent and non-dependent names

提问人:Maestro 提问时间:10/25/2020 更新时间:10/25/2020 访问量:44

问:

在 C++ 入门第 5 版第 16 章关于模板的内容中:

“由模板的提供者来确保在使用模板时,所有不依赖于模板参数的名称都是可见的。此外,模板提供程序必须确保模板的定义(包括类模板成员的定义)在实例化模板时可见。

但我认为这是一个错误:模板参数上的 AFAIK 非依赖名称在定义模板时必须可见,而不是在“使用”时可见。

我说得对吗?

这是我的例子:

template <typename T>
void foo(const T& )
{
    bar(); // non-dependent name
    void do_it(T); // dependent name
}

int main(){}

因此,尽管我没有实例化,但代码应该无法编译,但只要是依赖名称,就不会抱怨声明。foodo_it

那么这是书中的错别字吗?

C++ 模板 dependent-name

评论


答: 暂无答案