为什么使用无效概念被视为格式错误

2024-04-21

新公布的草案中提到[expr.prim.req]/6 https://eel.is/c++draft/expr.prim.req#6.sentence-6:

如果将模板参数替换为要求会 总是导致替换失败,程序格式错误;不 需要诊断。 [Example:

template<typename T> concept C =
requires {
  new int[-(int)sizeof(T)];     // ill-formed, no diagnostic required
};

— 结束示例 ]

但为什么我们不能保证诊断总是失败,而不是跳过诊断呢?


需求表达式几乎可以做任何事情。它们可以引发进一步的模板替换,通过任意数量的代码向外级联。并记住模板替换构成图灵完备语言 https://stackoverflow.com/questions/7284/what-is-turing-complete.

因此,您要求编译器在给定图灵完整程序的情况下证明是否存在某些输入导致该程序格式良好。这只是对停止问题的重述。就像停止问题一样,在一些简单的情况下,程序显然会停止/不停止。但是当您处理图灵完备的语言时,它可能会变得任意复杂。

该标准不会强迫编译器解决停止问题。

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

为什么使用无效概念被视为格式错误 的相关文章

  • 使用 #pragma Once 和 #ifndef 时出现 VS 2010 C++ LNK2005 错误

    1 gt Deck obj error LNK2005 class Card card card 3VCard A already defined in Card obj 1 gt PokerTester obj error LNK2005
  • 什么定义了类型的大小?

    ISO C 标准规定 sizeof char lt sizeof short lt sizeof int lt sizeof long 我在 BIT Linux mint 19 1 上使用 GCC 8 大小为long int is 8 我正
  • Visual Studios 2015 中的“恢复 NuGet 包”没有执行任何操作

    我将解决方案从 SVN 拉入 Visual Studios 2015 代码中的一些 使用 引用出现错误 因此我尝试在右键单击 解决方案 中的解决方案时运行 恢复 NuGet 包 选项探索者 这没有任何作用 我必须手动进入 nuget 管理器
  • Qt/c++ 随机字符串生成[重复]

    这个问题在这里已经有答案了 我正在创建一个应用程序 需要生成多个随机字符串 几乎就像一个由一定长度的 ASCII 字符组成的唯一 ID 这些字符混合有大写 小写 数字字符 有没有 Qt 库可以实现这一点 如果没有 在纯 C 中生成多个随机字
  • C++ 指针和对象实例化

    这有效 MyObject o o new MyObject 而这并不 MyObject o new MyObject Why 关键词new 返回一个指针 http msdn microsoft com en us library kewsb
  • 如何从不同的线程访问控件?

    如何从创建控件的线程以外的线程访问控件 避免跨线程错误 这是我的示例代码 private void Form1 Load object sender EventArgs e Thread t new Thread foo t Start p
  • 无法将参数从 `const char *` 转换为 `char *`

    鉴于此代码 void group build int size std string ips Build the LL after receiving the member list from bootstrap head new memb
  • asp.net core http 如果没有内容类型标头,则删除 `FromBody` 忽略

    我在 http 中使用 bodyDELETE要求 我知道目前删除主体是非标准的 但是允许的 使用时出现问题HttpClient它不允许删除请求的正文 我知道我可以使用SendAsync 但我宁愿让我的 API 更加灵活 我希望这个机构是可选
  • 检查两个函数或成员函数指针的签名是否相等

    我编写了一些代码来检查自由函数的签名是否等于成员函数的签名等 它比较提取的返回类型和函数参数 include
  • ASP.NET MVC 动作过滤器

    有谁知道即使在 CATCH 块中 ActionFilterAttribute 类的 OnResultExecuted 方法是否也会执行 ie CookiesActions public ActionResult Login Usuarios
  • 如何在 C++ 运行时更改 QML 对象的属性?

    我想在运行时更改 QML 对象的文本 我尝试如下 但文本仍然为空 这是后端类 class BackEnd public QObject Q OBJECT Q PROPERTY QString userFieldText READ userF
  • 查找方法不适用于 EF6.1 模拟

    我已经使用这些 msdn 指南设置了模拟 使用模拟框架进行测试 EF6 及以上 http msdn microsoft com en us data dn314429 var bsAc db BusAcnts FirstOrDefault
  • 从 C# 调用时无法识别 Powershell 命令

    这是这个的延续Question https stackoverflow com questions 66280000 powershell object returns null 66280138 noredirect 1 comment1
  • 使用 cmake 将两种解决方案合二为一

    我有两个单独的 Visual Studio 2013 解决方案 我想将它们迁移到一个解决方案中 因为第一个解决方案 使用 Qt 充当第二个解决方案的 GUI 最后 我希望有一个结构如下的单一解决方案 Solution All Build P
  • 从具有相同属性的另一个对象创建对象

    我有一个 C 对象 可以说有 20 个属性 它是数据契约的一部分 我还有另一个具有类似属性的业务实体 我想从响应对象中填充该实体 除了将一个对象的每个属性分配给另一个对象的相应属性之外 还有其他方法可以做到这一点吗 是的 看看自动映射器 h
  • 如果仅使用第一个元素,是否必须为整个结构分配内存?

    我有一个结构 其中第一个元素被测试 并且根据其值 结构的其余部分将被读取或不会被读取 在第一个元素的值指示结构的其余部分不会被读取的情况下 我是否必须为整个结构或仅第一个元素分配足够的内存 struct element int x int
  • 'iter' 的名称查找已更改为新的 ISO 'for' 范围

    我正在尝试编译下面的两个文件 但从编译器收到错误消息 gcc 4 3 3 Linux 错误位于带有以下符号的行 LINE WITH ERROR 我做错了什么 我该怎么改变 路易斯 g c b h b cpp b cpp In functio
  • 为什么 C++ 标准没有将 sizeof(bool) 定义为 1?

    Size of char signed char and unsigned char由 C 标准本身定义为 1 个字节 我想知道为什么它没有定义sizeof bool also C 03 标准 5 3 3 1 说 sizeof char s
  • Unity - 在生成时获取随机颜色

    我有一个小问题 我想在我的场景中生成四边形 它们都应该有红色或绿色作为材质 但 Random Range 函数只能是 int 我该如何解决它 void SpawningSquadsRnd rndColor 0 Color red rndCo
  • 强制函数调用的顺序?

    假设我有一个抽象基类 并且我想要一个必须由派生类实现的纯虚方法 但我想确保派生方法以特定顺序调用函数 我可以做什么来强制执行它 I E base class virtual void doABC 0 virtual void A 0 vir

随机推荐

  • 如何在 Ubuntu 20.04 中安装 Python2.7 的 pip

    有什么方法可以为 Python2 7 安装 pip 吗 我可以通过安装 python2 7 sudo apt install python2 minimal 我尝试为此安装 pip sudo apt install python pip p
  • 为什么我的 JQuery .ajax 请求没有并行发出?

    我正在尝试使用 jQuery 并行发出两个 ajax 请求 如下所示 var sources source1 source2 sources each function var source this ajax async true typ
  • 是否可以使用 np 数组作为 h5py 数据集中的索引?

    我需要将多个数据集 每个数据集包含在一个单独的文件中 合并到属于最终文件的另一个数据集中 当部分数据集中的数据被复制到最终数据集中时 它们的顺序不会保留 部分数据集中的数据通过索引 映射 到最终数据集中 我创建了两个列表 final ind
  • 如何检测我的任何活动是否位于最前面并且对用户可见?

    我想在我的任何活动可见时启动一个意图 否则我会将其作为通知发布 并将由用户触发 为了决定这一点 我需要知道我的任何活动是否是最重要的 我该怎么做 我不知道有一种方法可以获取当前显示的活动 但是您可以结合使用活动生命周期 http devel
  • 使用迭代器从“查找”或“删除”中删除

    我想知道在 C 中从向量中删除元素的最佳实践是什么 我多次看到人们使用 std remove 查找并删除元素 然后使用擦除从向量中删除元素 但为什么它比使用 find 获取要删除的元素的迭代器然后使用该迭代器的擦除更好呢 Thanks st
  • Android核心库错误

    当我包含 jaxp jar 时 出现以下错误 trouble processing javax xml XMLConstants class 2009 05 08 16 53 18 TestProject Attempt to includ
  • bash:找不到 nodemon 命令 Windows 10

    I spent a lot of time looking for a solution but didn t find anything with my case So I checked global packages npm list
  • 我想检查android中的声音响度

    我正在开发一个应用程序 我必须检测语音的响度 意味着手机上有一些喊叫 它会在屏幕上显示响度级别 哪个 API 可以用于此目的 Look at http developer android com reference android medi
  • Android 流量统计数据报告的内容比我下载的内容还要多

    您好 我正在运行一个简单的下载测试 看看我的连接速度有多快 我记录了trafficStats rx值 然后下载了一个5MB的文件 记录了rx值 然后计算了差异 我知道这个文件正好是 5MB 这是代码 URL url new URL urlS
  • 如何在 sed 命令中使用变量

    我有一个名为 text file1 txt 的文件 文件中的内容是 主题 C US O AAA OU QA OU 12345 OU TESTAPP 现在我想要实现的是如下内容 主题 C US O AAA QA 12345 TESTAPP 当
  • 洪水填充算法是否考虑了 alpha 且不会在抗锯齿线周围留下边缘?

    我已经实现了一个典型的洪水填充算法 当使用纯色时 它按预期工作 其中我使用 ARGB 分量之间的欧几里德距离来比较颜色 我的问题是 如果您在透明背景上绘制类似抗锯齿红线的内容 我的洪水填充算法将不会填充大多数半透明像素 从而在对象周围留下条
  • Google Assistant 更改表面不起作用

    嗨 大家好 我目前正在尝试使用 Dialogflow 为 Google Assistant 构建一个应用程序 在特定意图期间 我想将用户重定向到他的手机 使用扬声器时 因为该意图需要精确的键盘输入 正如文档中所说 我正在打电话askForN
  • 1&1 Windows 托管服务器 web.config URL 重写问题

    我面临与 1 1 托管的 Windows 服务器中的 URL 重写相关的问题 我正在尝试使用 web config 文件重写 url 但它根本不起作用 给我错误或 500 19 错误总结 HTTP 错误 500 19 内部服务器错误 无法访
  • C# Excel 文本到列问题

    您好 我在 C 中调用了文本到列函数 但结果并不像我想要的那样 我的工作表的第一个单元格中有这些数据 Guest 0 12 10 2010 03 46 34 PM 66082 如果我从 Excel 手动运行 文本到列 我就明白了 Guest
  • 如何查看两个 Hg 存储库之间不同的所有文件的列表?

    我有一个包含大量工作代码的存储库 我团队中的另一位开发人员有一段时间没有任何更新 然后提交了大约 5 个变更集 所以 现在我们有两个相隔近两周的头 该提示不起作用 但我的变更集可以 我想看看两个存储库之间有什么区别 而不必合并它们 因为我不
  • OCLinEcore 和 Regex 创建有效的 IPv4 字符串

    我有一个 Ecore 模型 我试图在其中添加一些 OCL 约束 当我尝试创建有效 IPv4 形式的属性 字符串 时 我的问题就出现了 我想我应该使用正则表达式 但我根本不知道如何在 OCLinEcore 上使用正则表达式 从 Eclipse
  • 按类别划分的直方图颜色

    我有一个 pandas 数据框 其中包含 2 列 height 和 class class 是一个包含 3 个值 1 2 和 5 的列 现在我想按类别制作高度数据和颜色的直方图 plot19 s vegetation height plot
  • ReSharper 混淆了我的视觉工作室 - 将视觉工作室重置为默认值

    我使用 ReSharper 来执行一些任务 然后卸载了它 因为它让我感到困惑 所有亮点和快速链接 我更喜欢 Visual Studio 的默认行为 卸载后 以前用红线下划线的编译错误现在根本没有下划线了 如何使用默认行为重置 Visual
  • 当计数为 1 时,有条件地将 T 从 Rc 移出

    有没有办法将物体从Rc
  • 为什么使用无效概念被视为格式错误

    新公布的草案中提到 expr prim req 6 https eel is c draft expr prim req 6 sentence 6 如果将模板参数替换为要求会 总是导致替换失败 程序格式错误 不 需要诊断 Example t