pragma
作用是设定编译器的状态或者是指示编译器完成一些特定的动作
#pragma once
只要在头文件的最开始加入这条指令就能够保证头文件被编译一次
gflags
- DEFINE_STRING(name, default value, “explaination”)
- DECLARE_STRING
constexpr
- https://www.codenong.com/cs109806752/
- const 和 constexpr 的区别
- const 只读,constexpr 指的是变量
- 在 C++11 以后,建议凡是 「常量」 语义的场景都使用 constexpr,只对 「只读」 语义使用 const。
enum class 强类型枚举
- 枚举类型时安全的,枚举值也不会被隐式转换为整数,无法和整数数值比较
noexcept
- 关键字告诉编译器,函数中不会发生异常,这有利于编译器对程序做更多的优化
- https://www.cnblogs.com/sword03/p/10020344.html
final
override
share_ptr 和 unique_ptr
std::atomic<>
- 原子类型是封装了一个值的类型,它的访问保证不会导致数据的竞争,并且可以用于在不同的线程之间同步内存访问