gpt4 book ai didi

c++ - 为什么我不能成为模板参数的 friend ?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:36:19 26 4
gpt4 key购买 nike

在研究问题的答案时(基于 this answer )我尝试执行以下操作:

template <class T>
class friendly {
friend class T;
};

friendly<string> howdy;

编译失败,出现以下错误:

error: template parameter "T" may not be used in an elaborated type specifier friend class T;

据我从我的好 friend 谷歌那里了解到,这是为了我不会不小心尝试实例化 friendly<int>但是为什么编译模板时会出现错误呢?用无效类型实例化模板时不应该出错吗(比如我写了 int f() { return T::foo(); } )

最佳答案

标准的第 7.1.5.3 节明确将此描述为格式不正确的详细类型说明符的示例。

可以找到有关该主题的讨论 here .

关于c++ - 为什么我不能成为模板参数的 friend ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1007054/

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