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

开发网站公司排行榜精品资源共享课网站建设 碧辉腾乐

开发网站公司排行榜,精品资源共享课网站建设 碧辉腾乐,靖江做网站哪家好,网站专题建设方案文章目录 由来constinit 常量初始化常量初始化 ! 初始化常量初始化声明静态存储对象非初始化声明thread_local END 由来 在C多文件编译中会出现一个常见的问题,叫做静态初始化顺序问题。Static Initialization Order Fiasco。 比如现在有两个文件,其中…

文章目录

  • 由来
  • constinit 常量初始化
    • 常量初始化 != 初始化常量
    • 初始化声明静态存储对象
    • 非初始化声明thread_local
  • END

由来

在C++多文件编译中会出现一个常见的问题,叫做静态初始化顺序问题。Static Initialization Order Fiasco

比如现在有两个文件,其中都有一个全局变量。

// file1.cpp
int x = 10;// file2.cpp
int y = 20;

由于多文件编译顺序等一些列问题,可能又有第三个或者更多对象对这两个有了依赖,就会出现一些列意想不到的问题。

通常解决方案是使用函数内部的局部静态变量Locia Static,来解决该问题,因为C++保证了局部静态变量只有在第一次调用到的时候才初始化,这也是著名设计模式,单例模式中最常用的一个技巧。

而要正面应对这个问题就需要C++20中的constinit

constinit 常量初始化

constinit 说明符 (C++20 起) - cppreference.com

常量初始化 != 初始化常量

请务必理解下面的区别

// 这是`初始化一个常量`
constexpr int x = 10;// 这是`常量初始化`
constinit int y = 20;int main() {// 不能修改一个常量// error: assignment of read-only variable 'x'// x = 100;// oky = 200;
}

就是说常量初始化是在编译期间确定初始值。而对象本身的读写性质不受影响。

初始化声明静态存储对象

constinit 可以针对具有静态存储方式的对象的声明上。

// 全局函数
constinit int x = 10;int main() {// 局部静态函数constinit static int y = 20;
}

非初始化声明thread_local

下面是cpppref原话和code

constinit 也能用于非初始化声明,以告知编译器 thread_local 变量已被初始化,以减少隐藏的防卫变量所致的开销。

extern thread_local constinit int x;
int f() { return x; } // 无需检查防卫变量



END

http://www.yayakq.cn/news/382372/

相关文章:

  • 福州企业建设网站伦敦做网站
  • 广州建设网站哪家好2017做网站怎么赚钱
  • 医疗机构网站备案莱芜招聘信息最新招聘2022
  • 郑州专业手机网站制作开发小程序怎么赚钱
  • 网站建设的费用入账福州网络公司有哪些
  • 佳木斯建设工程交易中心网站wordpress原生app
  • 域名和网站定制公司网站建设
  • 网站建设 职责广州手机端网站制作
  • 网站开发 群html动漫网页设计论文
  • 深圳网站建设哪家好360建筑网已经发布的信息在哪里看
  • 网站后台打开很慢个人网页设计作品赏析
  • 网站建设建站经验网页设计公司取名
  • 网站建设的多少钱投票链接制作哪家服务好
  • html网站可以做访问统计吗建设项目从哪个网站可以查
  • 主题网站设计实验步骤wordpress前台英文
  • wordpress怎么上传网页seo优化有哪些
  • 本地服务器域名解析网站建设动漫网页设计版式
  • 林州网站制作站长网站seo查询
  • 快速开发企业网站合肥室内设计公司有哪些
  • 怎么做网站网站赚钱网站运营推广选择乐云seo
  • 网站后台帐号密码破解有没有专门做教程的网站
  • 网站关键词google优化怎么做黑客攻击的网站
  • discuz 修改网站标题网站cms建设
  • 山东德铭工程建设公司网站沈阳城市建设学院官网网站
  • 自己的网站就可以做appwordpress 后台美化
  • 在哪里找工厂采购信息广东网络seo推广
  • 辽宁营商建设局网站仿别人的网站违法嘛
  • 企业为什么要做网站运营中国工商注册网官网网址
  • 手袋东莞网站建设电商会学着做网站呢
  • 如何用普通电脑做网站服务器网络营销工资一般多少