c++ - 如何使用friend访问STL私有(private)成员

标签 c++ class templates typeid

当我这样做时...

auto t = typeid(float);

...我得到:

错误 C2248“type_info::type_info”:无法访问类“type_info”中声明的私有(private)成员

当然,我知道我能做到...

auto t = typeid(float).name();

但如果我想使用第一个表达式,我将如何篡改 type_info 类并使用 friend 来实现我的目标?有什么建议吗?

最佳答案

你不能让你的类(class)成为标准类(class)的 friend

typeid 表达式是一个左值,因此您可以简单地将引用绑定(bind)到它:

auto& t = typeid(float);

关于c++ - 如何使用friend访问STL私有(private)成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33349359/

相关文章:

c++ - 检测与子弹的碰撞

c++ - 替换子对象的存储期限

php - 是否可以动态扩展一个类?

C++ - 模板嵌套类的引用初始化无效

.net - 片段和模板有什么区别?

c++ - 使用 Poco 在 C++ 中的 HTTPS 请求

Python 错误 : PyThreadState_Get: no current thread after compiling an extension

java - Java 中的未知代码

c++ - 我在这里做错了什么?使用指向函数 typedef 的指针定义类。

c++ - 带有基类的 CRTP 试图获取派生类成员的返回类型 : invalid use of incomplete type