C++17 中已弃用 std::is_literal_type

2024-02-13

根据参考参数 http://en.cppreference.com/w/cpp, 特质std::is_literal_type http://en.cppreference.com/w/cpp/types/is_literal_type在 C++17 中已弃用。问题是why and 首选替代品是什么以便将来检查类型是否是文字类型 http://en.cppreference.com/w/cpp/concept/LiteralType.


如 P0174 中所述 http://wg21.link/P0174:

The is_literal类型特征为泛型代码提供的价值可以忽略不计,因为真正需要的是知道特定构造将产生常量初始化的能力。的核心术语是文字类型至少有一个 constexpr 构造函数太弱,无法有意义地使用。

基本上,它的意思是没有任何代码可以用来保护is_literal_type_v并足以确保您的代码实际上是 constexpr。这还不够好:

template<typename T>
std::enable_if_t<std::is_literal_type_v<T>, void> SomeFunc()
{
  constexpr T t{};
}

无法保证这是合法的。即使你用它来守护它is_default_constructible<T>这并不意味着它是常量表达式默认可构造。

你需要的是一个is_constexpr_constructible特征。目前尚不存在。

但是,(已实现的)特征不会造成任何损害,并且允许编译时自省给定模板参数可能满足哪些核心语言类型类别。在核心工作组废除文字类型的概念之前,应保留相应的库特征。

删除(弃用后)的下一步是撰写一篇论文,建议从核心语言中删除该术语,同时弃用/删除类型特征。

因此,计划最终是摆脱“文字类型”的整个定义,代之以更细粒度的东西。

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

C++17 中已弃用 std::is_literal_type 的相关文章

  • boost::multi_index_container 复合键中的 equal_range 与比较运算符

    我正在尝试从多索引容器查询结果 其中值类型是三个元素的结构 第一个值已给出 但第二个和第三个值必须大于或小于查询参数 经过搜索后 我发现必须实现自定义密钥提取器 并且这里的一些链接建议相同 但我无法实现它 boost multi index
  • Func 方法参数的首选命名约定是什么?

    我承认这个问题是主观的 但我对社区的观点感兴趣 我有一个缓存类 它采用类型的缓存加载器函数Func
  • 在 Xamarin Android 中将图像从 URL 异步加载到 ImageView 中

    我有一个包含多个项目的 ListView 列表中的每个项目都应该有一个与之关联的图像 我创建了一个数组适配器来保存每个列表项并具有我希望加载的图像的 url 我正在尝试使用 Web 请求异步加载图像 并设置图像并在加载后在视图中更新它 但视
  • 如何在C++中实现模板类协变?

    是否可以以这样一种方式实现类模板 如果模板参数相关 一个对象可以转换为另一个对象 这是一个展示这个想法的例子 当然它不会编译 struct Base struct Derived Base template
  • SSH 主机密钥指纹与模式 C# WinSCP 不匹配

    我尝试通过 WinSCP 使用 C 连接到 FTPS 服务器 但收到此错误 SSH 主机密钥指纹 与模式不匹配 经过大量研究 我相信这与密钥的长度有关 当使用 服务器和协议信息 下的界面进行连接时 我从 WinSCP 获得的密钥是xx xx
  • Cygwin 下使用 CMake 编译库

    我一直在尝试使用 CMake 来编译 TinyXML 作为一种迷你项目 尝试学习 CMake 作为补充 我试图将其编译成动态库并自行安装 以便它可以工作 到目前为止 我已经设法编译和安装它 但它编译成 dll 和 dll a 让它工作的唯一
  • 为什么 POSIX 允许在只读模式下超出现有文件结尾 (fseek) 进行搜索

    为什么寻找文件结尾很有用 为什么 POSIX 让我们像示例中那样在以只读方式打开的文件中进行查找 c http en cppreference com w c io fseek http en cppreference com w c io
  • 使用 C# 在 WinRT 中获取可用磁盘空间

    DllImport kernel32 dll SetLastError true static extern bool GetDiskFreeSpaceEx string lpDirectoryName out ulong lpFreeBy
  • 写入和读取文本文件 - C# Windows 通用平台应用程序 Windows 10

    有用 但在显示任何内容之前 您必须在文本框中输入内容 我想那是因为我使用了 TextChanged 事件处理程序 如果我希望它在没有用户交互的情况下显示文本文件的内容 我应该使用哪个事件处理程序 因此 我想在按下按钮时将一些数据写入 C W
  • 使用 Google Analytics API 在 C# 中显示信息

    我一整天都在寻找一个好的解决方案 但谷歌发展得太快了 我找不到有效的解决方案 我想做的是 我有一个 Web 应用程序 它有一个管理部分 用户需要登录才能查看信息 在本节中 我想显示来自 GA 的一些数据 例如某些特定网址的综合浏览量 因为我
  • HttpClient 像浏览器一样请求

    当我通过 HttpClient 类调用网站 www livescore com 时 我总是收到错误 500 可能服务器阻止了来自 HttpClient 的请求 1 还有其他方法可以从网页获取html吗 2 如何设置标题来获取html内容 当
  • .Net Core / 控制台应用程序 / 配置 / XML

    我第一次尝试使用新的 ConfigurationBuilder 和选项模式进入 Net Core 库 这里有很多很好的例子 https docs asp net en latest fundamentals configuration ht
  • 为什么模板不能位于外部“C”块内?

    这是一个后续问题一个答案 https stackoverflow com questions 4866433 is it possible to typedef a pointer to extern c function type wit
  • 我的 strlcpy 版本

    海湾合作委员会 4 4 4 c89 我的程序做了很多字符串处理 我不想使用 strncpy 因为它不会终止 我不能使用 strlcpy 因为它不可移植 只是几个问题 我怎样才能让我的函数正常运行 以确保它完全安全稳定 单元测试 这对于生产来
  • 用 C 实现 Unix shell:检查文件是否可执行

    我正在努力用 C 语言实现 Unix shell 目前正在处理相对路径的问题 特别是在输入命令时 现在 我每次都必须输入可执行文件的完整路径 而我宁愿简单地输入 ls 或 cat 我已经设法获取 PATH 环境变量 我的想法是在 字符处拆分
  • EPPlus Excel 更改单元格颜色

    我正在尝试将给定单元格的颜色设置为另一个单元格的颜色 该单元格已在模板中着色 但worksheet Cells row col Style Fill BackgroundColor似乎没有get财产 是否可以做到这一点 或者我是否必须在互联
  • Bing 地图运行时错误 Windows 8.1

    当我运行带有 Bing Map 集成的 Windows 8 1 应用程序时 出现以下错误 Windows UI Xaml Markup XamlParseException 类型的异常 发生在 DistanceApp exe 中 但未在用户
  • 窗体最大化时自动缩放子控件

    有没有办法在最大化屏幕或更改分辨率时使 Windows 窗体上的所有内容自动缩放 我发现手动缩放它是正确的 但是当切换分辨率时我每次都必须更改它 this AutoScaleDimensions new System Drawing Siz
  • C++ 成员函数中的“if (!this)”有多糟糕?

    如果我遇到旧代码if this return 在应用程序中 这种风险有多严重 它是一个危险的定时炸弹 需要立即在应用程序范围内进行搜索和销毁工作 还是更像是一种可以悄悄留在原处的代码气味 我不打算writing当然 执行此操作的代码 相反
  • 如何将字符串“07:35”(HH:MM) 转换为 TimeSpan

    我想知道是否有办法将 24 小时时间格式的字符串转换为 TimeSpan 现在我有一种 旧时尚风格 string stringTime 07 35 string values stringTime Split TimeSpan ts new

随机推荐

  • IEnumerable 的性能比较和源中每个项目的引发事件?

    我想读取包含数百万条记录的大型二进制文件 并且我想获取一些记录报告 我用BinaryReader读取 我认为在读取器中具有最佳性能 并将读取的字节转换为数据模型 由于记录的数量 将模型传递到报表层是另一个问题 我更喜欢使用IEnumerab
  • 在 WSO2 ESB 中介期间修改配置注册表资源内容

    我有一个场景 我需要在配置注册表中存储简单计数器并在序列流结束时递增它 我们需要存储在配置注册表中的原因是 如果服务器重新启动 我们将保留最后的计数器值 有人可以建议如何增加配置注册表中的计数器吗 您可以在中介中使用示例 javascrip
  • “等待返回”有什么区别吗? [复制]

    这个问题在这里已经有答案了 有什么区别吗 const foo async gt some other code that uses await return await bar and const foo async gt some oth
  • Gradle - 仅执行单一构建类型

    我在 build gradle 中定义了多种构建类型 在变体窗口中 我选择了构建变体 例如 debugAPI23 我预计只会执行一种构建类型中的代码 但在 Gradle Console 中我可以看到所有构建类型的输出 正如您所看到的 我正在
  • 在同一地址多次放置 new 是否定义明确/合法?

    注意 这个问题的动机是试图提出预处理器黑客技术来生成无操作分配来回答另一个问题 接受新对象的宏 https stackoverflow com questions 7522949 c macro that accent new object
  • 路由的处理程序无效 - Wordpress

    我正在尝试使用类在 WordPress 中创建自定义 REST API 端点 我也用传统的方式做了同样的事情 效果很好 但是 使用类时我收到错误The handler for the route is invalid 代码 class CS
  • 谁能解释一下android中未绑定服务和绑定服务之间的区别

    任何人都可以解释一下android中未绑定服务和绑定服务之间的区别 并解释一下意图服务 Thanks 绑定服务 http developer android com guide components bound services html
  • 制作堆叠矩形而不是列的直方图

    使用以下代码 我得到如下的直方图 x lt rnorm 100 hist x col gray 我该怎么做才能将条形显示为堆叠矩形 通过其轮廓可见 而不是填充颜色的变化 而不是统一的列 每个矩形代表一个频率 例如 1 尽管我希望能够通过参数
  • 使用 dropzone.js 发送附加参数

    我正在尝试添加 dropzone js 并且想通过 file 传递另一个参数 因此我将隐藏输入放入 form 中 我可以上传文件并可以在Java部分读取它 但我无法读取type chooser WebKitFormBoundaryZxF6M
  • 我的上网IP是多少

    我的电脑上安装了两张网卡 一个用于互联网连接 另一个用于与客户端计算机共享互联网 我用这段代码获取我的IP IPHostEntry HosyEntry Dns GetHostEntry Dns GetHostName foreach IPA
  • Mustache Templates可以做模板扩展吗?

    我是小胡子的新手 许多模板语言 例如 Django Jinja 会让你像这样扩展 父 模板 基本 html block content endblock 首页 html extends base html block content h1
  • 如何从 mysql 数据库中删除重复的条目?

    我有一个包含一些 id 标题的表 我想让标题列唯一 但它已经有超过 600k 条记录 其中一些是重复的 有时是几十次 如何删除除一个之外的所有重复项 以便我可以在之后的标题列中添加一个 UNIQUE 键 此命令添加唯一键 并删除生成错误 由
  • Quarkus - SmallRye 反应式消息传递 - RabbitMQ:将消息发送到默认交换

    使用远程过程调用 https www rabbitmq com tutorials tutorial six java html模式 我需要将答案发送到回复队列 即我需要将消息发送到默认交换机 并以队列名称作为路由键 我在 Quarkus
  • JACOB 和 jre 1.7 出现 UnsatisfiedLinkError

    我编写了一个使用 JACOB 访问 iTunes 的程序 它在 Eclipse 中工作正常 但是当我导出它并在命令提示符中运行它时 我收到一个不满意的链接错误 告诉我 jacob 1 17 M2 x86 dll 是不在我的 java lib
  • 如何在 Android Wear 设备上运行 Xamarin.Forms 应用程序

    我怎样才能运行Xamarin Forms Platform Android FormsApplicationActivity在 Android Wear 设备上 电话base OnCreate bundle 在 的里面onCreate我的类
  • Xcode Instruments:泄漏 - 应用程序在启动时崩溃

    Xcode Instruments 泄漏 应用程序在启动时崩溃 该应用程序在设备和模拟器中都会崩溃 什么可能导致应用程序在连接仪器时崩溃 而在使用电缆或通过 Fabric 无线安装时正常工作 Update Launching the All
  • 如何在 Servicestack 中隐藏 Swagger UI 的端点?

    我正在使用 ServiceStack 3 9 59 0 的 Swagger 插件 我的 ServiceStack API 中有一些端点 例如 selfchecknode 我不想在 Swagger UI 中显示它们 是否有一种声明性方式 也许
  • 带有居中标签的堆叠条形图

    我试图 稳健地 将数据标签集中在堆积条形图中 下面给出了一个简单的代码示例和结果 正如您所看到的 数据标签并未真正在所有矩形中居中 我缺少什么 import numpy as np import matplotlib pyplot as p
  • 将幻灯片上传到 YouTube

    如何使用 YouTube 的 API 将照片幻灯片上传到 Youtube 我在这里找不到它 https developers google com youtube 2 0 developers guide protocol uploadin
  • C++17 中已弃用 std::is_literal_type

    根据参考参数 http en cppreference com w cpp 特质std is literal type http en cppreference com w cpp types is literal type在 C 17 中