随笔分类 - C++特性
C++11、14、17、20特性
摘要:C++20新特性 新增关键字(keywords) concept requires constinit consteval co_await co_return co_yield char8_t 模块(Modules) 优点: 1)没有头文件; 2)声明实现仍然可分离, 但非必要; 3)可以显式指定
阅读全文
摘要:C++17新特性 C++17新特性 前言 If Statements with Initializer Constexpr if inline 变量 嵌套命名空间 属性说明符 [[fallthrough]] 标准属性 [[maybe_unused]] 标准属性 [[nodiscard]] 标准属性
阅读全文
摘要:简介 智能指针就是对指针进行封装,使其提供特有的功能。 unique_ptr:封装了原始指针使其只能在同一时刻被同一对象拥有,并且在离开作用域时会自动销毁。 shared_ptr: 封装了原始指针,利用引用技术技术,实现多个对象同时共享一个指针,并且在所有对象都离开作用域时释放内存. weak_pt
阅读全文
摘要:C++11 Memory Order 为什么需要Memory Order 多线程下可能影响程序执行结果的行为: 原子操作(简单语句,C++也不保证是原子操作) 指令执行顺序(编译器可能优化代码使代码顺序发生变化,CPU可能会调整指令执行顺序) CPU可见性(再CPU cache的影响下,可能存在一个
阅读全文
摘要:一、 什么是左值、右值 首先不考虑引用以减少干扰,可以从2个角度判断: 左值可以取地址、位于等号左边; 而右值没法取地址,位于等号右边。 比如: int num = 3; num可以通过 & 取地址,位于等号左边,所以num是左值。 3位于等号右边,3没法通过 & 取地址,所以3是个右值。 再者:
阅读全文
摘要:C++11中的几种存储 序号类型存储器及链接方式备注 1 auto 自动存储期 该关键字用于两种情况:1. 声明变量时: 根据初始化表达式自动推断变量类型。2. 声明函数作为函数返回值的占位符。 2 static 静态或线程存储期,同时提示是内部链接 static变量只初始化一次,除此之外它还有可见
阅读全文