非类型参数的模板参数必须是表达式

2024-03-03

为什么下面的代码是错误的?

template <typename T, int N>
struct Vector {
    T data[N];
};

struct Dynamic {
};

template <typename T>
struct Vector<T, Dynamic> {
    T* data;
};

我尝试用实例化代码Vector<int, Dynamic> obj;但没用

错误:非类型模板参数的模板参数必须是表达式

为什么?我正在传递一个类型,我认为这是一个有效的模板专业化。

如何使用两个模板,其中一个请求 N,另一个不请求 N(如果标记为)Dynamic ?


template <typename T, int N>
struct Vector {
    T data[N];
};

在您的主要模板类中,T必须是一个type http://en.cppreference.com/w/cpp/language/template_parameters#Type_template_parameter, (int, short, class-type, etc)... N is a non-type http://en.cppreference.com/w/cpp/language/template_parameters#Non-type_template_parameter,并且必须是一个计算结果为int键入(一个数字)。

struct Dynamic {
};

template <typename T>
struct Vector<T, Dynamic> {
    T* data;
};

Dynamic是一种类型。不是一个int按照您的主模板中的指定


根据您的主模板类,您只能专门化第二个模板参数Vectorint. Eg.

template <typename T>
struct Vector<T, 1> {
    T* data;
};

template <typename T>
struct Vector<T, 35> {
    T* data;
};

template <typename T>
struct Vector<T, constExpressionThatReturnsAnInt> {
    T* data;
};

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

非类型参数的模板参数必须是表达式 的相关文章

  • 如何将包含 5000 条记录的 Excel 文件插入到 documentDB 中?

    我有一个 Excel 文件 最初约有 200 行 我能够将 Excel 文件转换为数据表 并且所有内容都正确插入到 documentdb 中 Excel 文件现在有 5000 行 在插入 30 40 条记录后不会插入 其余所有行不会插入到
  • 起订量要求?违背了目的?

    是否需要虚拟化您想要模拟的所有属性访问器就违背了模拟的目的 我的意思是 如果我必须修改我的对象并虚拟化我想要模拟的每个访问器 我难道不能继承我的类并自己模拟它吗 你的问题非常有效 但如果你仔细想想 没有其他方法可以模拟课程 如果你采用一个接
  • Accept() 是线程安全的吗?

    我目前正在用 C 语言为我正在做的课程编写一个简单的网络服务器 我们的一项要求是实现一个线程池来使用 pthread 处理连接 我知道我将如何粗略地执行此操作 在主线程中调用accept并将文件描述符传递给freee线程 但是我的朋友建议了
  • 为什么 VB.NET 和 C# 中针对值检查 null 存在差异?

    In VB NET http en wikipedia org wiki Visual Basic NET有时候是这样的 Dim x As System Nullable Of Decimal Nothing Dim y As System
  • 将图像文件从网址复制到本地文件夹?

    我有该图像的网址 例如 http testsite com web abc jpg http testsite com web abc jpg 我想将该 URL 复制到 c images 中的本地文件夹中 而且当我将该文件复制到文件夹中时
  • 使用 OpenGL 着色器进行数学计算 (C++)

    我有一个矩阵 例如 100x100 尺寸 我需要对每个元素进行计算 matrix i j tt 8 5例如 我有一个巨大的矩阵 我想使用 OpenGL 着色器来实现该算法 我想使用着色器 例如 uniform float val unifo
  • C# 中四舍五入到偶数

    我没有看到 Math Round 的预期结果 return Math Round 99 96535789 2 MidpointRounding ToEven returning 99 97 据我了解 MidpointRounding ToE
  • 如何在不实例化一个类的情况下检查它是否继承了另一个类? [复制]

    这个问题在这里已经有答案了 假设我有一个如下所示的类 class Derived some inheritance stuff here 我想在我的代码中检查类似的内容 Derived is SomeType 但看起来像is运算符需要 De
  • 从 future 中检索值时的 SIGABRT

    我在使用 C 11 future 时遇到问题 当我打电话时wait or get 关于返回的未来std async 程序接收从mutex标头 可能是什么问题呢 如何修复它 我在 Linux 上使用 g 4 6 将以下代码粘贴到 ideone
  • 导出类时编译器错误

    我正在使用 Visual Studio 2013 但遇到了一个奇怪的问题 当我导出一个类时 它会抛出 尝试引用已删除的函数 错误 但是 当该类未导出时 它的行为会正确 让我举个例子 class Foo note the export cla
  • 存储过程上的 OdbcCommand - 输出参数上出现“未提供参数”错误

    我正在尝试执行存储过程 通过 ODBC 驱动程序针对 SQL Server 2005 但收到以下错误 过程或函数 GetNodeID 需要参数 ID 但未提供该参数 ID 是我的过程的 OUTPUT 参数 在存储过程中指定了一个输入 mac
  • C# datagridview 列转入数组

    我正在用 C 构建一个程序 并在其中包含一个 datagridview 组件 datagridview 有固定数量的列 2 我想将其保存到两个单独的数组中 但行数确实发生了变化 我怎么能这样做呢 假设一个名为 dataGridView1 的
  • 指向字节数组的指针

    由于 Misra C 的要求 我的一位同事想要使用指针声明 但我遇到了一些问题 Misra 安全关键指南 不会让我们纯粹的程序员使用指针 但会让我们对数组字节进行操作 他打算获取一个指向字节数组的指针 因此我们不会在堆栈上传递实际的数组 T
  • 编译器错误“错误:在文件范围内可变地修改了‘字符串’”

    考虑 include
  • 更改 IdentityServer4 实体框架表名称

    我正在尝试更改由 IdentityServer4 的 PersistedGrantDb 和 ConfigurationDb 创建的默认表名称 并让实体框架生成正确的 SQL 例如 而不是使用实体IdentityServer4 EntityF
  • 特征密集稀疏矩阵乘积是线程化的吗?

    我知道稀疏密集产品是根据文档进行线程化的 https eigen tuxfamily org dox TopicMultiThreading html https eigen tuxfamily org dox TopicMultiThre
  • dropdownlist DataTextField 由属性组成?

    有没有一种方法可以通过 C 使 asp net 中的下拉列表的 datatextfield 属性由对象的多个属性组成 public class MyObject public int Id get set public string Nam
  • 使用 AdHocWorkspace 会导致“不支持语言‘C#’”。

    在VS2015中使用Microsoft CodeAnalysis CSharp Workspaces的RC2 这段代码会抛出异常 var tree CSharpSyntaxTree ParseText var workspace new A
  • ASP.NET Core Razor Page 多路径路由

    我正在使用 ASP NET Core 2 0 Razor Pages 不是 MVC 构建系统 但在为页面添加多个路由时遇到问题 例如 所有页面都应该能够通过 abc com language 访问segment shop mypage 或
  • 在 C++ 和 Windows 中使用 XmlRpc

    我需要在 Windows 平台上使用 C 中的 XmlRpc 尽管我的朋友向我保证 XmlRpc 是一种 广泛可用的标准技术 但可用的库并不多 事实上 我只找到一个库可以在 Windows 上执行此操作 另外一个库声称 您必须做很多工作才能

随机推荐

  • 在 docker 容器中导入 keycloak 的领域配置时出错

    我通过以下命令在 docker 上部署了 keycloak docker run e KEYCLOAK ADMIN admin e KEYCLOAK ADMIN PASSWORD admin p 8080 8080 quay io keyc
  • ReferenceError:Rx 未定义

    我刚刚开始学习 Angular2 我正在尝试使用 Angular2 做 RxJ 示例 如果有人帮助我 我将不胜感激 RxJs 代码 var obs Rx Observable interval 500 take 5 do i gt cons
  • Linq 到对象

    我有两个来自不同服务器的数据库 我无法链接数据库 从数据库中检索数据如下 DB1 Client ID Engagement ID 启用说明 600 10 真实公司1 600 20 虚假公司2 700 10 真实公司3 DB2 Client
  • Fortran 95 数组中具有一维变量的二维数组

    我想在代码中将一些内容存储在二维数组中 然后想扫描该数组 有N 1 行 第一个索引的数量 比如说i 在数组中 然而 对于给定值i 数量j尽管我知道最大可能值 但值不是固定的j 说它是N 2 我当然可以创建大小的数组 N 1 N 2 来存储我
  • IIS会回收asp.net core进程吗?

    我需要在我的 asp net core 应用程序中运行长时间运行的后台任务 我了解 Azure Webjobs 和其他进程外技术 但我宁愿保持解决方案简单并直接在 asp net core 进程中运行这些任务 我使用 Kestrel 该应用
  • 使 VSCodium 的 python 代码突出显示等于 VSCode

    因为 微软不好 而从 VSCode 迁移到 VSCodium 发展python应用程序似乎缺少一些代码颜色 例如 Dark 主题中绿松石色的模块或浅蓝色的局部变量 在下面的比较中可见 Left VSCodium Right VSCode 正
  • 如何在Android中读取彩信数据?

    我想读取彩信数据 我已经在中看到了零件表mmssms db彩信条目的存储位置 我正在使用光标 我想知道合适的URI 我正在使用 content mms sms conversations 并且列名称图像的 地址 发送至 文本 或 主题 和
  • 在 C# 中比较两个结构体的值

    我不是在寻找返回 bool 的两个结构的比较 我想知道是否有一种方法可以获取两个结构的哪些字段 相同的结构 但可能不同的值 是不同的 基本上我想要一种更简单的方法来执行以下操作 public class Diff public String
  • 如何将命令行参数从 pytest 传递到代码

    我正在尝试将参数从 pytest 测试用例传递到正在测试的模块 例如 使用 main pyPython 样板 https www python boilerplate com py3 argparse pytest 我可以从命令行运行它 p
  • 音频元素源的 HTML5 本地存储 - 可能吗?

    我最近一直在尝试 html5 的音频和本地存储功能 但遇到了一些让我困惑的事情 我希望能够在本地缓存或存储音频元素的源 以实现更快的离线播放 问题是我看不出当前的实现如何可能实现这一点 我使用 WebKit 尝试过以下操作 创建一个清单文件
  • Azure DocumentDB 十进制截断

    我目前正在使用 Azure DocumentDB 来存储带有价格的产品数据 几乎一切都工作得很好 但现在我遇到了一个问题 即从 DocumentDB 读取时我的小数 System Decimal 被截断 比如这个价格 Input Price
  • 如何使用带有StanfordCoreNLP prop 'ner'的序列化CRFClassifier

    我正在使用StanfordCoreNLP API 接口以编程方式执行一些基本的NLP 我需要在自己的语料库上训练模型 但我想使用StanfordCoreNLP界面来做到这一点 因为它在幕后处理许多干的机制 我在那里不需要太多的专业知识 我已
  • PHP中两个日期相减

    我在 php 中有两个日期 date1 May 3 2012 10 38 22 GMT date2 06 Apr 2012 07 22 21 GMT 然后我将它们都减去 date2 date1 并得到 Result 6 为什么结果是 6 而
  • R dplyr:在列中查找特定值,然后用该值替换右侧后续列中的相邻单元格

    我正在尝试创建一个地点和事件时间的矩阵 就我而言 一旦事件发生 1 它就是永久性的并且不能返回到 0 一旦列中的单元格为 1 我将尝试用 1 填充右侧后续列中的相邻单元格 请参见下面的示例 site lt c A B C D E F G s
  • 用于生成 HTML 标签的 PHP 库 [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我是 PHP 新手 抱歉 如果这是常见问题解答 假设我有这个 HTML 表 table width 10
  • 在 Javascript 或 jQuery 中,如何仅删除第一个和最后一个标签?

    给定以下字符串 var htmlStr p class red 349dsa01 This is p p class blue saf9vsaz a test p 如何删除该字符串的第一个和最后一个标签 这将是结果 var htmlStr
  • 有关角度谷歌地图聚类选项的任何文档吗?

    您好 我正在使用此处提供的 Angular Google 地图库https github com nlaplante angular google maps https github com nlaplante angular google
  • Facebook:自动刷新长期访问令牌

    我正在为我的应用程序的用户存储长期访问令牌 这些用户已将其 Facebook 帐户与其关联 自灭亡以来离线访问代币 这些长期存在的代币的有效期为 大约 60 天 但是 当用户与 Facebook 交互时 它们可以自行刷新 根据文档 http
  • 如何在终端中创建换行符?

    我在最新的 Mac OSX 终端上使用 Python 当我按 Enter 时 它会处理我输入的代码 并且我无法弄清楚如何添加额外的代码行 例如对于基本循环 在 python shell 中 如果您正在键入允许继续的代码 则按一次 Enter
  • 非类型参数的模板参数必须是表达式

    为什么下面的代码是错误的 template