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

建网站的软件优帮云中企动力云邮箱登录

建网站的软件优帮云,中企动力云邮箱登录,wordpress 加载图片,外贸推广网站公司文章目录 由来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/936912/

相关文章:

  • 甘肃省住房与城乡建设厅网站wordpress首页加载慢
  • 网站链接用处深圳制作网站专业
  • 中国建设银行企业信息门户网站好的网站建设价格
  • 100个免费推广网站做钓鱼网站获利3万
  • 网站哪家公司做得好wordpress 结构解析
  • qq空间实名认证网站网站流量监控
  • 徐州市鼓楼区建设局网站wordpress自定义seo标题
  • 商城网站服务器租用听完米课做的网站
  • 丹东网站seo免费好用的网站管理系统
  • 大连网站设计案例微博分享的网站怎么做
  • qq空间网站是多少广东网站建设怎么选
  • 潍坊网站制作公司北京注册公司代理机构
  • php网站开发参考文献wordpress 改成动态
  • 东莞微信网站建设代理软件开发流程图绘制
  • 网站竞价推广都有哪些服务器可以做几个网站吗
  • 北京网站改版价格无锡企业网站改版
  • 个人网站建设 免费plc编程软件
  • 建设诚信网站网页制作培训班厦门
  • 搭建视频播放网站一个服务器可以备案几个网站吗
  • 温州网站链接怎么做2024年个体工商户年报
  • 山东省建设项目备案证明网站优酷网站模板下载
  • iis发布网站乱码天河区网站建设
  • 超值的扬中网站建设湖南手机版建站系统哪个好
  • 高质量营销型网站定做价格wordpress 标签云页面
  • 商城网站开发那家好vs网站开发教程
  • 网站建设的主要流程必应站长平台
  • 大连六兄弟网站建设网络商城图片
  • 网站外链是什么意思为什么上不了建设银行个人网站
  • 宏大建设集团有限公司网站可以注册公司的地址
  • 优化网站速度的要点建设网上购物网站