如何授予特定模板友谊
How to grant specific template friendship
template<typename T> void fun(const T&); // Lip 657
template<typename T> class Bar {
// grants access to a single specific instance parametrized by char*
friend void fun<char*> (char* const &); // case one
friend void fun<char*> (const char* &); // case two
};
我认为情形一是正确的解决方案。
如果有,为什么不是情况二而不是情况一?
模板类型参数类似于typedef
。修饰符应用于整个类型,它不像字符串替换。
所以你的假设是正确的。T
是一个指针,fun
需要引用一个被视为const
的T
,第一个版本正确地描述了对一个指针const
的引用。
相关文章:
- 函数何时会在c++中包含stack_Unwind_Resume调用
- Python中的for循环与C++有何不同
- 在C++中释放内存期间,迭代器与指针有何不同
- 编写一个函数来删除单链表中的节点(尾部除外),仅授予对该节点的访问权限
- 标准对此指向成员函数类型模板参数有何说明?是我的代码有误,还是 MSVS 16.6 有问题?
- 使用崇高文本 3 进行C++拒绝授予权限?
- 我怎样才能通过友谊正确地履行我的职能?
- 在不授予所有权的情况下公开shared_pointers载体
- 类中的 C++ int 被设置为值,似乎不知从何而来
- -fvisibility-inline-hidden 与 gcc 中的 -fvisibility=hidden 有何不同
- 友谊和操作员+=重载
- PPM 将字符转换为 int 授予负数
- 即使在我为我的应用程序授予管理员后也无法从 Windows 系统复制目录
- 收益率和回报有何不同?
- 覆盖私有功能,它与受保护功能有何不同?
- 擦除删除成语的性能增益从何而来
- 无论代码长度如何,以下代码的内存要求有何不同?
- "virtual"对C++析构函数有何影响?
- 将友谊授予来自不同标头中定义的类的函数
- 如何授予特定模板友谊