C++ 在循环中实例化模板

2024-02-07

我有一个工厂类,它需要实例化几个带有连续模板参数的模板,这些模板参数是简单的整数。如何在不展开整个循环的情况下实例化此类模板函数?

唯一能想到的就是使用boost预处理器。您能推荐其他不依赖于预处理器的东西吗?

thanks


模板参数必须是编译时常量。目前,没有编译器认为循环计数器变量是常量,即使在展开之后也是如此。这可能是因为在模板实例化期间必须知道常量,这发生在循环展开之前。

但可以构造一个“递归”模板并以专门化作为结束条件。但即便如此,循环边界也需要是编译时间常数。

template<int i>
class loop {
    loop<i-1> x;
}

template<>
class loop<1> {
}

loop<10> l;

将创建从loop到loop的十个模板类。

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

C++ 在循环中实例化模板 的相关文章

随机推荐

  • 不使用 for 循环检索 Pyomo 解决方案

    我正在努力寻找一种有效的方法来检索优化问题的解决方案 该解决方案由大约 200K 个变量组成 我希望将这些变量放在 pandas DataFrame 中 在网上搜索后 我发现访问变量的唯一方法是通过 for 循环 如下所示 instance
  • 核心数据关系未与 RESTkit 映射

    我正在努力使用 RESTkit 0 20 0 pre6 获得核心数据关系的正确映射 我想映射这个 JSON items id 2001 itemAttr1
  • 将集合流合并为一个集合 - Java 8

    所以我有一个Stream
  • 使用 laravel 中自动生成的访问令牌将图像上传到 firebase 存储桶

    我遵循这个link https laravelwithfirebase blogspot com 2020 07 chapter 19 how to upload image to firebase storage from laravel
  • 在部分 CHAR 列上创建索引

    我有一个 CHAR 250 列用作 varchar 24 列的外键 在 MySQL 中 我记得我可以创建一个指定列 24 的索引 以便在最左边的 24 个字符上创建索引 这在 MS SQL Server 上似乎不可能 我的问题是这样的 是否
  • Laravel / 多 TLD 的主机设置

    基本上我已经写了大约五遍了 仍然不知道如何正确提问 所以这里 我想要两个域名示例 net and 示例信息我已经注册了 我希望他们指向我正在构建的一个应用程序 然后希望使用 Laravel 将两个不同的域路由到自己的页面 这是我尝试过的以及
  • Docker:本地 MySQL 卷的权限被拒绝

    我是 Docker 新手 不太了解 Linux 我正在尝试为本地发展构建自己的环境Docker 我在用着docker 撰写公用事业 我想将 MySQL 数据存储在本地卷中 当我跑步时docker compose build and dock
  • 使用 ASP.NET 代码中的凭据从网络位置读取文件

    我想从网络上存在的文件夹中读取文件 当我尝试手动访问此文件夹时 从运行命令给出类似路径 ABCServer 文档 它要求我提供凭据 用户名和密码 提供正确的凭据后 我可以访问 读取文件 当我尝试从 ASP NET 中的 C 代码读取相同的文
  • Python 命名元组的可变默认参数

    我发现了一种让命名元组使用默认参数的巧妙方法here https stackoverflow com a 18348004 2529619 from collections import namedtuple Node namedtuple
  • SKPhysicsContact有什么方法可以确定A和B哪个物体?

    在 SpriteKit 中 我们在 didBeginContact 方法中检测到 但这看起来有点愚蠢做这样的事情 func didBeginContact 联系人 SKPhysicsContact if let contactA conta
  • 在没有图形环境的Linux下运行Matlab?

    我将使用 SSH 在远程 Linux 服务器上运行 Matlab 程序 我想知道如何在Linux中仅使用命令行运行Matlab 这意味着没有图形环境 Thanks 使用以下标志启动 MatLab matlab nodesktop nojvm
  • 自动工具和 -Wl,-whole-archive

    是否可以告诉自动工具使用 Wl whole archive 标志链接库之一 生成文件 am bin PROGRAMS pktanon pktanon SOURCES main cpp pktanon DEPENDENCIES lib LIB
  • JOIN 语句中的 CodeIgniter ActiveRecord 字段名称

    我正在构建一个涉及 JOIN 的查询 这是我第一次使用 Active Record 进行数据库操作 但遇到了一些障碍 我想加入一个名为companies to the users表 这样我就可以获取用户所在的公司名称等 我已经成功地完成了这
  • 如何从xpath表达式获取真实的节点顺序(java)

    如果我有一个使用的 XPath 表达式preceding sibling 我得到NodeList顺序不正确 我怎样才能得到正确的订单 例子
  • 通过 JNI 高效传递大型 C 结构

    我有一个大型 C 结构 大约 40 个成员 int 和 char 我必须将其通过 JNI 传递到 Java 端以进行进一步处理 这种情况反复发生 我已经把GetMethodID 等进入init 函数在 C 端 所以我只需调用它们一次 什么是
  • 带重音符号的 MailMessage 附件文件名

    我正在尝试发送带有附加 Excel 文件名的 HTML 电子邮件 一切都运行良好 直到我需要发送附件名称包含重音字母的邮件 我尝试过的每个解决方法都惨败 原始代码 var attachment new Attachment new Memo
  • Java 浮点除法的显式类型转换

    我不确定选项 4 除法 中的浮点除法是否使用显式类型转换 我需要一些帮助来理解什么是浮点除法 我必须使用整数来存储 2 个操作数 使用双精度数来存储结果 您必须对选项 4 中的浮点除法使用显式类型转换 还可以使用 switch 语句来处理菜
  • 如何从 Asp.Net Core 视图组件返回错误的 HTTP 状态代码

    我试图从 Asp Net Core 中的视图组件返回 HTTP 500 或 BadRequest 结果 但是此返回类型似乎不适用于视图组件 状态代码返回类型是否可用于视图组件 或者我的设计是否错误 我正在通过 ajax 调用我的控制器操作
  • 将 VLOOKUP 结果连接到 Google 表格中的一个字符串中

    我的 Google 电子表格有以下任务 在某个 id 右侧的所有单元格中加入字符串 用不同的方式表述 SELECT A JOIN B GROUP BY A WHERE A myid 如果 JOIN 是一个聚合函数 或者换句话说 JOIN V
  • C++ 在循环中实例化模板

    我有一个工厂类 它需要实例化几个带有连续模板参数的模板 这些模板参数是简单的整数 如何在不展开整个循环的情况下实例化此类模板函数 唯一能想到的就是使用boost预处理器 您能推荐其他不依赖于预处理器的东西吗 thanks 模板参数必须是编译