概念评估是否可以取决于评估地点?

2023-12-27

[温度概念]/5 http://eel.is/c++draft/temp.concept#5.sentence-1 says:

概念未实例化([temp.spec])。 [ 注:表示概念专门化的 id 表达式被计算为表达式 ([expr.prim.id])。 [...]]

这是否意味着这条规则如下([温度点]/8 http://eel.is/c++draft/temp.res#temp.point-8.sentence-4) 不适用?

如果根据单一定义规则,两个不同的实例化点赋予模板专门化不同的含义,则该程序是格式错误的,无需诊断。


例如,如果此规则不适用,则以下代码格式良好:

template<class T>
concept Complete = sizeof(T)==sizeof(T);

struct A;

constexpr inline bool b1 = Complete<A>; //Complete<A>==false;

struct A{};

constexpr inline bool b2 = Complete<A>; //Complete<A>==true;

This question is followed by this one https://stackoverflow.com/q/53263299/5632316


概念评估是否可以取决于评估地点?

No.

过去的情况是这样的(正如我在这次编辑之前的回答所述),但事实证明,这严重抑制了编译器的吞吐量(因为您无法缓存概念检查的结果)以及开始它的动机与相当弱。这是一个非常晚的变化,作为P2104 http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p2104r0.html在 2020 年布拉格会议上,在 [temp.constr.atomic] 中添加了以下句子:

如果在程序的不同点,对于相同的原子约束和模板参数,满足结果不同,则该程序是格式错误的,不需要诊断。

结果是:

template<class T>
concept Complete = sizeof(T) == sizeof(T);

struct A;
static_assert(!Complete<A>);
struct A {};
static_assert(Complete<A>);   

格式不正确,NDR(实际上,Complete<A>仍将是false after A就完成了)。换句话说,我们“记忆”概念的方式与“记忆”模板实例化的方式相同。

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

概念评估是否可以取决于评估地点? 的相关文章

  • 通过 VLA 数组跳转到 goto 时出现分段错误

    以下示例演示了该问题 include
  • C++ Singleton 类 getInstance (作为 java)[重复]

    这个问题在这里已经有答案了 可能的重复 谁能给我提供一份 C 中的 Singleton 示例吗 https stackoverflow com questions 270947 can any one provide me a sample
  • HttpResponseMessage 的内容为 JSON

    我有一个 ASP NET MVC WEB API 由于多种原因 由于没有授权而重定向 我不能只使用一个简单的对象并在我的控制器方法中返回它 因此我需要 HttpResponseMessage 类来允许我重定向 目前我正在这样做 var re
  • 静态成员函数与C语言绑定?

    以下 C 代码可使用 Visual C 和 g 进行编译 struct S static void foo extern C void S foo struct T static void foo extern C void T foo a
  • 使用 QTextCursor 选择一段文本

    使用 Qt 框架选择文本片段时遇到问题 例如 如果我有这个文件 没有时间休息 我想选择 ime for r 并从文档中删除这段文本 我应该如何使用 QTextCursor 来做到这一点 这是我的代码 QTextCursor cursor n
  • ObservableCollection 上的“Cascade”绑定,包含其他 ObservableCollection

    我有一个项目需要显示合同列表 Class Affaire 每个合约都有一个阶段列表 类别阶段 我使用绑定在 2 个不同的 ListView 中显示它们中的每一个 问题是当我从 ListView 中删除一个 Phase 时 显示 Phases
  • 设置外部应用程序焦点

    在 VB NET 中 您可以使用以下命令将焦点设置到外部应用程序 AppActivate Windows Name or AppActivate processID As Integer 现在 如果您这样做 则效果很好 Dim intNot
  • ResourceDictionary 源中的 Uri 语法(通用 Windows 平台)

    我正在迁移我的Windows 8 1项目到Windows 10 通用 Windows 平台 这时我被拦住了ResourceDictionary改变在UWP 为了简单起见 我有包含 2 个项目的 Windows 8 1 解决方案 App pr
  • 了解 MVC-5 身份

    我创建了一个新的ASP NET MVC 5申请与Individual User Accounts然后更新了所有的Nuget packages在解决方案中 现在我尝试遵循一些教程中显示的一些指南 但遇到了一些问题 第一个是一个名为Applic
  • “volatile void function( ... )” 做了什么?

    我见过从语法角度来看 C 函数中 volatile 关键字有多少种用法 https stackoverflow com questions 7643528 how many usage does volatile keyword have
  • 为什么Boost在“程序选项”中使用全局函数覆盖来实现自定义验证器

    这个例子 http www boost org doc libs 1 55 0 doc html program options howto html idp163429032显示一个名为validate在全局范围内定义重载函数boost
  • 锁定文件的一个块

    我有一个大小为 192k 的文件 我想锁定文件的中间部分 例如 我想用 c 锁定文件的 64k 128k 知道如何锁定文件的那部分吗 你需要使用锁定文件Ex http msdn microsoft com en us library win
  • 复杂的 C 声明

    我刚刚在互联网上浏览了一些代码 发现了这个 float foo SIZE SIZE 我如何阅读这份声明 是否有一套特定的规则来阅读如此复杂的声明 我有一段时间没做这个了 从 开始foo然后向右走 float foo SIZE SIZE fo
  • 一些涉及类析构函数和删除运算符的内存管理问题?

    在阅读了一些教程后 我仍然不清楚 C 中内存管理的一些观点 1 当使用 new 运算符声明的类超出范围时 是否会调用其析构函数并释放内存 是否有必要调用删除运算符来释放类的内存并调用其析构函数 class Test void newTest
  • C语言:如何获取使用strtok()一次后剩余的字符串

    我的字符串是 A B C D E 分隔符是 如何获取执行 strtok 一次后剩余的字符串 即 B C D E char a A B C D E char separator char b strtok a separator printf
  • 一个对大文件有效的轻量级 XML 解析器?

    我需要解析潜在的巨大 XML 文件 所以我猜这排除了 DOM 解析器 是否有任何优秀的 C 轻量级 SAX 解析器 在占用空间上可与 TinyXML 相媲美 XML的结构非常简单 不需要诸如命名空间和DTD之类的高级东西 只是元素 属性和
  • C语言中如何将整数转换为字符? [复制]

    这个问题在这里已经有答案了 C语言中如何将整数转换为字符 C 中的字符已经是数字 字符的 ASCII 代码 无需转换 如果要将数字转换为相应的字符 只需添加 0 即可 c i 0 0 是 ASCii 表中的一个字符
  • 使用std::begin()、std::end()将ArrayXd转换为stl向量,

    在我看来我应该能够使用std begin and std end 转换ArrayXd to std vector
  • C# 记录类型:记录子类之间的相等比较

    给定父记录类型 public record Foo string Value 和两个记录子类Bar and Bee我想知道是否可以实施Equals在基类中 因此 Foo Bar 或 Bee 的实例都被考虑equal基于Value 两者都与E
  • 字符串常量之前应有非限定 ID

    我目前正在编写一个 C 应用程序 它与 math h 结合实现了振荡器 我拥有的代码应该可以很好地用于该应用程序 尝试编译目标文件 但是我遇到编译器错误 很可能与语法 等有关 我认为这与命名空间有关 错误 终端输出 User Name Ma

随机推荐

  • 如何通过注释在 spring mvc 3 中设置标头无缓存

    如何通过注释在 spring mvc 3 中设置标头无缓存 不是 response setHeader Pragma No cache response setHeader Cache Control no cache response s
  • 扩展 2 个 PHP 类

    我有 3 个课程 3 个文件 a class php b class php c class php 我想在类c 文件3 中扩展类a和b 我怎么能这么做呢 我想在我的新类 C 中使用 a b 的两个类函数 你正在要求多重继承 http en
  • argocd部署后如何运行应用程序E2E测试?

    我想知道在使用 ArgoCD 成功部署任何微服务后 如何运行应用程序 E2E UI 或 API 测试 当前设置 我使用 github actions 设置了 CI 管道 完成任何微服务的 CI 构建后 它会更新位于 github 存储库之一
  • 在移动应用程序中安全地硬编码密码

    我有一个网络服务器 它创建一个二维码 该二维码是 用户名 用户名 密码 的md5哈希值 其中 用户名 是当时登录的用户 其中 password 是我设置的系统密码 对于网络服务器和应用程序来说是通用的 我的 Android iPhone B
  • Android - 用于调试和发布模式的应用程序图标

    如果我们在清单中设置 android debuggable true 并且像在 iOS 中那样设置 android debuggable false 是否可以为应用程序设置单独的图标 我参加聚会有点晚了 但无论如何 目前我在 16 年发布此
  • 如何将十六进制转换为字节数组?

    我从 sql server 中复制并粘贴了这个二进制数据 但目前无法查询 0xBAC893CAB8B7FE03C927417A2A3F6A60BD30FF35E250011CB25507EBFCD5223B 在 C 中如何将其转换回字节数组
  • Firefox 3.6 中的本机拖放文件上传

    最近 一位同事告诉我 Firefox 3 6 支持本机拖放文件上传 从操作系统调整图像大小 无需任何扩展或插件 任何人都可以发布代码片段或提供演示此新功能的链接 因为我在 Google 搜索中找不到太多内容 它相当重要 对于 HTML 因此
  • 在 Tornado 的线程中运行长阻塞函数时出现问题

    我对龙卷风很陌生 只是看看如何处理龙卷风中阻塞的请求 我在单独的线程中运行阻塞代码 然而 主线程仍然阻塞 直到线程函数完成 我在这里没有使用 gen coroutine 但已经尝试过 结果是相同的 counter 0 def run asy
  • 使用水豚复制粘贴?

    我想做这样的事情 div find some div copy to clipboard div input find my input paste from clipboard input 我不想用这个来模拟send keys并使用 Ct
  • RStudio 闪亮错误 mysqlNewConnection 最多 16 个连接

    我有一个正在运行的闪亮服务器 它连接到 MySQL 数据库 到目前为止工作正常的页面现在给我这个错误 Error in mysqlNewConnection drv RS DBI driver cannot allocate a new c
  • 如何检查android webview中的所有元素

    When i inspect an website with Chrome i can to see some iframe data like this Example Chrome inspect https i stack imgur
  • ASP.NET MVC 中的 DropdownList - 值未发布

    我在 ASP MVC Razor 中有一个表单 在这个表单中我有一个文本框 和一个
  • ASP.Net Core 2.1 中的身份< - 自定义 AccountController

    我已经安装了ASP NET Core 2 1但即使我创建了一个新的ASP NET Core Web Application using ASP NET Core 2 1 with Individual User Accounts Store
  • 无法在 .NET Core 项目中使用 T4 模板

    我有一个 NET Core 类库项目 我想使用设计时 T4 模板 模板编译正确 但是当我尝试使用反射时 它会引发错误 Running transformation System IO FileNotFoundException Could
  • 什么时候不应该重构?

    我们都知道重构很好 我和下一个人一样喜欢它 但是你有真实的案例吗 not重构 像时间关键的东西或同步之类的东西 技术或人为原因同样受欢迎 真实案例场景和经验优先 Edit 从迄今为止的答案来看 不重构的唯一原因似乎是金钱 我的问题主要与这样
  • MS SQL Server 与 Rails 4

    我想在 Rails 4 上创建一个使用现有 MS SQL 数据库的应用程序 该应用程序可以从使用 Rails 4 及其所有新功能中受益匪浅 但似乎每个人都推荐使用 gem activerecord sqlserver adapter 不支持
  • AJAX 和自签名证书

    我正在尝试将 AJAX 请求发送到使用自签名证书的 REST API 网站 问题是 当我第一次访问该网站时 它抱怨此证书问题 当我执行 AJAX 请求 没有先接受此证书 时 它会默默失败 问题是这种情况下该怎么办 我应该要求用户访问该网站并
  • 在 cbind 或 rbind 之后丢失表的暗名称

    After cbind or rbind ing 一个表对象 例如 添加总和的余量或类似的东西 暗名称的名称会丢失 请参阅y 我找到了这个 解决方法 但想知道是否有一个现成的解决方案 看起来不那么老套 也许可以即时完成一些事情 我想保留班级
  • 404 Not Found:Angular 2 无法与 Spring Rest API 对话

    我按照 Angular 2 的 Tour of Hero 教程使用内存数据库进行操作 然后我创建了一个 Spring 后端来提供数据 并希望将 Angular2 与 Spring 的 Rest API 集成 在英雄之旅中我只改变了hero
  • 概念评估是否可以取决于评估地点?

    温度概念 5 http eel is c draft temp concept 5 sentence 1 says 概念未实例化 temp spec 注 表示概念专门化的 id 表达式被计算为表达式 expr prim id 这是否意味着这