当前位置: 首页 > wzjs >正文

绵阳市网站建设推广平台网站有哪些

绵阳市网站建设,推广平台网站有哪些,vs做网站开发吗,站点推广是什么意思文章目录 1. std::aligned_storage 与 std::aligned_union1.1 特性介绍1.2 被弃用的原因1.3 替代方案 2. std::numeric_limits::has_denorm2.1 特性介绍2.2 被弃用的原因 3. 总结 C23 已弃用特性包括:std::aligned_storage、std::aligned_union 与 std::numeric_lim…

文章目录

    • 1. `std::aligned_storage` 与 `std::aligned_union`
      • 1.1 特性介绍
      • 1.2 被弃用的原因
      • 1.3 替代方案
    • 2. `std::numeric_limits::has_denorm`
      • 2.1 特性介绍
      • 2.2 被弃用的原因
    • 3. 总结

C++23 已弃用特性包括:std::aligned_storage、std::aligned_union 与 std::numeric_limits::has_denorm

在C++的发展历程中,标准库不断演进,一些特性会随着时间推移而被弃用。C++23 中,std::aligned_storagestd::aligned_union(提案 P1413R3)以及 std::numeric_limits::has_denorm(提案 P2614R2)就被列入了弃用名单。下面我们来详细了解这些特性以及它们被弃用的原因。

1. std::aligned_storagestd::aligned_union

1.1 特性介绍

std::aligned_storage 是 C++11 引入的一个模板结构,定义在 <type_traits> 头文件中,用于创建具有特定大小和对齐要求的未初始化存储空间。它主要用于需要手动管理内存对齐的场景,确保在使用某些类型时不会出现对齐问题。其语法如下:

  template <std::size_t Len, std::size_t Align = alignof(std::max_align_t)>struct aligned_storage;

其中,Len 表示所要分配的存储空间的大小(以字节为单位),Align 表示存储空间的对齐要求(以字节为单位),默认值为 std::max_align_t,即该值将会满足所有数据类型的对齐要求,该值由编译器和系统共同决定。例如,在 x86 - 64 平台上,最大对齐值通常是 16 个字节,因为 long double 类型的对齐值是 16 个字节;在 ARM 平台上,最大对齐值可能会是 8 个字节,因为 double 类型的对齐值是 8 个字节。

使用如下语句可以得到一个类型:

  std::aligned_storage<20,4>::type  // 定义了一个20字节为大小,4字节对齐(地址为4的倍数)的内存块类型

上述语句定义了一个 20 字节为大小,4 字节对齐(地址为 4 的倍数)的内存块类型,使用该类型可以在堆空间或栈空间上分配该内存块。

std::aligned_unionstd::aligned_storage 类似,也用于创建具有特定对齐要求的存储,不过它更侧重于联合类型的存储。

1.2 被弃用的原因

std::aligned_storagestd::aligned_union 被弃用的主要原因是它们不能很好地满足实际使用需求。例如,aligned_storage 不能保证准确适应存储需求,其规格说明简单,只保证成员类型 type 是一个简单的标准布局类型,适合用作任何大小至多为 Len 且对齐方式是对齐的除数的对象的未初始化存储,但不能保证它能够准确地适应。也就是说,保证 aligned_storage<16>::type 至少为 16 个字节,但是一个符合标准的实现可以轻松地为您提供 32 个字节或 4K 字节。这就可能导致意外使用,给开发者带来困扰。

1.3 替代方案

可以使用类似 libstdc++__aligned_membuf 来替代,示例代码如下:

  template <typename T>struct storage_for {alignas(T) std::byte data[sizeof(T)];// 可以添加一些有用的构造函数和方法,可能还会有一个返回 T* 或 T const* 的获取器};

2. std::numeric_limits::has_denorm

2.1 特性介绍

std::numeric_limits 是 C++ 标准库中的一个模板类,定义在 <limits> 头文件中,它提供了查询各种算术类型属性的标准化方式。例如,std::numeric_limits<int>::max() 可以获取 int 类型的最大可能值。

std::numeric_limits::has_denormstd::numeric_limits 类的一个静态成员常量,用于鉴别浮点类型所用的非正规风格。其值可以是以下几种情况:

  • std::denorm_absent:表示该类型不支持非正规值。
  • std::denorm_present:表示该类型支持非正规值。

标准特化中,对于大多数整数类型,has_denorm 的值为 std::denorm_absent;对于 floatdoublelong double 类型,通常为 std::denorm_present

2.2 被弃用的原因

目前尚未找到明确的官方文档说明 std::numeric_limits::has_denorm 被弃用的原因,但推测可能是随着浮点运算标准的发展和完善,这个特性的实用性逐渐降低,或者有更好的替代方式来处理相关的浮点类型属性查询。

3. 总结

C++ 标准库的不断更新和弃用一些特性是为了让语言更加简洁、安全和高效。虽然 std::aligned_storagestd::aligned_unionstd::numeric_limits::has_denorm 被弃用了,但我们可以通过了解它们被弃用的原因,学习到如何更好地使用 C++ 进行编程,避免使用这些可能带来问题的特性,并采用更合适的替代方案。

http://www.dtcms.com/wzjs/476794.html

相关文章:

  • 网站建设兼容性谷歌广告
  • 如何看一个站点是不是有wordpress微信营销的案例
  • 和平手机网站建设app推广引流方法
  • 网站建设衡水网站如何让百度收录
  • 做网站还有开发文档吗策划方案网站
  • wap免费网站中国舆情网
  • 小视频网站开发百度官网电话
  • 银川网站设计建设上海seo优化
  • wordpress建产品目录沧州网站建设优化公司
  • 网页设计最重要的是什么山东济南seo整站优化公司
  • 企业网站优化案例seo权重是什么意思
  • 网站设置仅某浏览器seo排名赚app下载
  • 渭南免费做网站公司网络服务提供商是指
  • 医疗类网站哪家做的好谈谈你对seo概念的理解
  • 如何做花店网站社交媒体营销
  • 有哪些做平面设计好素材网站有哪些纹绣培训班一般价格多少
  • 济南网站建设大标网络百度浏览器入口
  • 怎么指导电脑有么有安装wordpress广州宣布5条优化措施
  • 做网站要备案吗 要几天百度热榜
  • 营销网站做推广公司山东网络推广优化排名
  • 网站程序源码下载深圳百度快照优化
  • 网站首页制作公司手机注册网站
  • 商务网站内容建设包括bt磁力搜索器
  • 建企业网站要多少钱一元友情链接平台
  • ui外包网站广州seo排名收费
  • 网站建设需要域名吗成都百度seo优化公司
  • 个人网站建设方案实施seo优化方案模板
  • 做网站的参考书香蕉和忘忧草对焦虑的影响
  • 软件网站怎么做hyein seo
  • 俄罗斯视频网站开发友情链接怎么弄