是否可以将别名模板标记为好友?

2024-02-16

想象一下我们有这样的代码:

template <class, class>
class Element
{};

template <class T>
class Util
{
public:
   template <class U>
   using BeFriend = Element<T, U>;
};

是否可以标记BeFriend作为一个朋友 ? (的Util,或任何其他类)。

 Edit

尝试了“明显的”语法,但在 Clang 3.6 中都失败了。

template <class> friend class BeFriend;
template <class> friend BeFriend;

我不知道第二种语法,但是在这个答案中找到了 https://stackoverflow.com/a/14623763/1027706。它似乎适用于(并且是必需的)non-template 别名,但在别名模板化的情况下没有帮助。

(Note:正如有些人可以从最小的示例中推断出的那样,我正在寻找一种方法来解决 C++ 不允许部分模板专业化的限制)


我认为你不能这样做,因为部分专业化不能声明为朋友。

从标准来看,[临时朋友]/7 http://eel.is/c++draft/temp.friend#7

友元声明不得声明部分特化。 [ 例子:

template<class T> class A { };
class X {
  template<class T> friend class A<T*>; // error
};

—结束示例]

您必须指定更通用的版本,例如:

template <class, class> friend class Element;

或完整指定版本,例如:

using BeFriend = Element<T, int>;
friend BeFriend;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

是否可以将别名模板标记为好友? 的相关文章

  • 调用 McAfee 病毒扫描引擎

    我收到客户的请求 要求使用他们服务器上的 McAfee 病毒扫描将病毒扫描集成到应用程序中 我做了一些调查 发现 McScan32 dll 是主要的扫描引擎 它导出各种看起来有用的函数 我还发现提到了 McAfee Scan Engine
  • 在 xaml 中编写嵌套类型时出现设计时错误

    我创建了一个用户控件 它接受枚举类型并将该枚举的值分配给该用户控件中的 ComboBox 控件 很简单 我在数据模板中使用此用户控件 当出现嵌套类型时 问题就来了 我使用这个符号来指定 EnumType x Type myNamespace
  • 没有特殊字符的密码验证器

    我是 RegEx 的新手 已经进行了大量搜索 但没有找到任何具体内容 我正在编写一个验证密码字符串的正则表达式 可接受的字符串必须至少具有 4 种字符类型中的 3 种 数字 小写字母 大写字母 特殊字符 我对包含有一个想法 也就是说 如果这
  • 在一个数据访问层中处理多个连接字符串

    我有一个有趣的困境 我目前有一个数据访问层 它必须与多个域一起使用 并且每个域都有多个数据库存储库 具体取决于所调用的存储过程 目前 我只需使用 SWITCH 语句来确定应用程序正在运行的计算机 并从 Web config 返回适当的连接字
  • 通过引用传递 [C++]、[Qt]

    我写了这样的东西 class Storage public Storage QString key const int value const void add item QString int private QMap
  • 机器Epsilon精度差异

    我正在尝试计算 C 中双精度数和浮点数的机器 epsilon 值 作为学校作业的一部分 我在 Windows 7 64 位中使用 Cygwin 代码如下 include
  • 如何从 Visual Studio 将视图导航到其控制器?

    问题是解决方案资源管理器上有 29 个项目 而且项目同时具有 ASP NET MVC 和 ASP NET Web 表单结构 在MVC部分中 Controller文件夹中有大约100个子文件夹 每个文件夹至少有3 4个控制器 视图完全位于不同
  • -webkit-box-shadow 与 QtWebKit 模糊?

    当时有什么方法可以实现 webkit box shadow 的工作模糊吗 看完这篇评论错误报告 https bugs webkit org show bug cgi id 23291 我认识到这仍然是一个问题 尽管错误报告被标记为RESOL
  • 如何连接重叠的圆圈?

    我想在视觉上连接两个重叠的圆圈 以便 becomes 我已经有部分圆的方法 但现在我需要知道每个圆的重叠角度有多大 但我不知道该怎么做 有人有主意吗 Phi ArcTan Sqrt 4 R 2 d 2 d HTH Edit 对于两个不同的半
  • C++ 多行字符串原始文字[重复]

    这个问题在这里已经有答案了 我们可以像这样定义一个多行字符串 const char text1 part 1 part 2 part 3 part 4 const char text2 part 1 part 2 part 3 part 4
  • 需要帮助优化算法 - 两百万以下所有素数的总和

    我正在尝试做一个欧拉计划 http projecteuler net问题 我正在寻找 2 000 000 以下所有素数的总和 这就是我所拥有的 int main int argc char argv unsigned long int su
  • C# 列表通用扩展方法与非通用扩展方法

    这是一个简单的问题 我希望 集合类中有通用和非通用方法 例如List
  • C# - 当代表执行异步任务时,我仍然需要 System.Threading 吗?

    由于我可以使用委托执行异步操作 我怀疑在我的应用程序中使用 System Threading 的机会很小 是否存在我无法避免 System Threading 的基本情况 只是我正处于学习阶段 例子 class Program public
  • 实例化类时重写虚拟方法

    我有一个带有一些虚函数的类 让我们假设这是其中之一 public class AClassWhatever protected virtual string DoAThingToAString string inputString retu
  • LINQ:使用 INNER JOIN、Group 和 SUM

    我正在尝试使用 LINQ 执行以下 SQL 最接近的是执行交叉联接和总和计算 我知道必须有更好的方法来编写它 所以我向堆栈团队寻求帮助 SELECT T1 Column1 T1 Column2 SUM T3 Column1 AS Amoun
  • 如何在 Linq to SQL 中使用distinct 和 group by

    我正在尝试将以下 sql 转换为 Linq 2 SQL select groupId count distinct userId from processroundissueinstance group by groupId 这是我的代码
  • 在 WPF 中使用 ReactiveUI 提供长时间运行命令反馈的正确方法

    我有一个 C WPF NET 4 5 应用程序 用户将用它来打开某些文件 然后 应用程序将经历很多动作 读取文件 通过许多插件和解析器传递它 这些文件可能相当大 gt 100MB 因此这可能需要一段时间 我想让用户了解 UI 中发生的情况
  • C# 中的 IPC 机制 - 用法和最佳实践

    不久前我在 Win32 代码中使用了 IPC 临界区 事件和信号量 NET环境下场景如何 是否有任何教程解释所有可用选项以及何时使用以及为什么 微软最近在IPC方面的东西是Windows 通信基础 http en wikipedia org
  • C# 中最小化字符串长度

    我想减少字符串的长度 喜欢 这串 string foo Lorem ipsum dolor sit amet consectetur adipiscing elit Aenean in vehicula nulla Phasellus li
  • C# 使用“?” if else 语句设置值这叫什么

    嘿 我刚刚看到以下声明 return name null name NA 我只是想知道这在 NET 中叫什么 是吗 代表即然后执行此操作 这是一个俗称的 条件运算符 三元运算符 http en wikipedia org wiki Tern

随机推荐

  • 如何从没有上下文的类中调用 getResources() ?

    在我的申请中 我有很多课程和活动 Droid 是一个没有上下文的类 Mygame 是一个扩展 SurfaceView 并实现 SurfaceHolder Callback 的类 我正在 mygame 类中创建一个 Droid 对象 并为其设
  • Android Spinner 上的多个 AsyncTasks 问题

    我收到一些错误 我知道问题是什么 但我不知道如何解决 我有4个旋转器 每个微调器都关联一个异步任务 简而言之 当我在 spinner1 上选择一项时 执行填充 spinner2 的第二个 asynctask 所选项目作为参数添加到第二个 a
  • C# 找不到网络路径

    我在通过网络将文件写入远程目录时遇到问题 当我尝试检查目录是否存在时 以下代码失败 if Directory Exists processingPath Directory CreateDirectory processingPath 处理
  • docker 在应该使用 v2 时却使用了 v1 注册表 api

    我正在尝试使用自托管 docker 注册表 v2 我应该能够推送 docker 映像 该映像在运行registry v2 容器的主机服务器 coreos 上本地工作 但是 在另一台机器 也是 coreos 相同版本 上 当我尝试推送到注册表
  • 使用 C# 中的静态类通过事件通知其他订阅者的简单状态机

    我一直在尝试为我的应用程序编写一个简单的静态类状态机 以便在系统状态更改时通知其他控件和代码 我想我几乎已经解决了 但我遇到了一个小问题 我不知道如何解决 这是代码 An enum denoting the 3 States public
  • 使用 Peewee 库批量更新

    我正在尝试使用更新表内的许多记录Peewee图书馆 里面一个for循环 我获取一条记录 然后更新它 但这在性能方面听起来很糟糕 所以我需要批量更新 当前代码如下所示 usernames to update get target userna
  • Android Firebase:设置值不起作用

    我正在尝试通过以下代码向 Firebase 数据库添加测试值 FirebaseDatabase database FirebaseDatabase getInstance DatabaseReference ref FirebaseData
  • 函数式 JavaScript:避免参数突变的良好实践?

    这是一个相当普遍的问题 函数式编程提倡这样的想法 程序是通过函数转换数据 并且应该避免突变 函数内可能除外 函数内被视为抽象的基本单元 但在这个程序中 function foo bar bar k1 bananas return bar v
  • 如何导入子目录中的模块,从而导入同一子目录中的另一个模块?

    在我导入的模块中 我尝试导入位于同一目录中的另一个模块 我的文件看起来像这样 project main py app foo py bar py main py import app foo as Foo foo py import bar
  • UnityWebRequest 在 iOS 中不工作

    给出的例子https docs unity3d com Manual UnityWebRequest html https docs unity3d com Manual UnityWebRequest html正如预期的那样 可以在 Wi
  • 为什么我们在使用Ajax控件时总是需要脚本管理器?

    为什么我们在使用Ajax控件时总是需要脚本管理器 脚本管理器控件是将脚本发送到客户端的控件 该控件是所有 AJAX 相关功能的核心 它管理启用 Ajax 的页面中的所有控件 它还确保部分页面更新按预期发生 http msdn microso
  • 如何从任何 Docker 存储库中提取单个映像?

    docker 存储库包含多个镜像 是否可以从存储库中提取特定图像 当我使用时 docker pull ubuntu 它会下载大约 8 10 个不同版本的 ubuntu 如果有标记的特定图像 您可以使用 tag 或 t 运算符来提取您要查找的
  • Android 加速度计过滤?

    我看到了许多关于过滤加速度计值以抵消重力 高通滤波器 的示例 但其中大多数都是一阶一阶 据说很简单 但是滞后 而且不是最好的 尽管我对滤波器或 DSP 一无所知 这里有人说有更好的解决方案用于DSP来感知运动 遗憾的是 我什至无法想象它会是
  • 无法将 JSON 对象插入 Firebase 实时数据库

    我正在尝试将用户数据存储在我的 Firebase 数据库中 这是我处理 onClick 并将数据发送到数据库的代码 public void onClickStore final View view String name binding g
  • 停止观察reactjs中的文件夹变化

    我正在开发一个反应项目 用户可以在其中上传文件 我面临的问题是当我将文件上传到服务器并将该文件保存到位于公共文件夹中的名为 uploads 的文件夹中时 然后当此过程完成页面刷新 这是因为应用程序正在监视任何更改并刷新页面 我知道我可以通过
  • 尽管安装并加载了 reshape2,但仍找不到功能“cast”

    跟随哈德利 威克姆 Hadley Wickham 探索数据和模型的实用工具 http had co nz thesis 2 4 节中的示例 铸造熔融数据我越来越Error could not find function cast 我已经安装
  • 一键运行 Javascript 2 个函数

    我使用从网上下载的 HTML 和 JS 代码来录制音频 但有一个问题 因为页面加载到屏幕上后立即出现允许麦克风的消息 正是因为window onload function init 在源代码record js中 但我想在单击按钮后显示消息
  • 在控制台应用程序中捕获 ctrl+c 事件(多线程)

    我有一个控制台应用程序的主线程 它以这种方式运行很少的外部进程 private static MyExternalProcess p1 private static MyExternalProcess p2 private static M
  • 304 未修改问题

    抱歉 标题可能有误 我正在编写一些代码来处理 If Modified Since 和 If None Match 请求作为缓存的一部分 除了 PHP 在标头后面返回一些内容 空行 之外 一切都很完美 页面内容应该为空 我正在使用的代码是
  • 是否可以将别名模板标记为好友?

    想象一下我们有这样的代码 template