C++查漏补缺(2)

记录一些知识点

mutable

const修饰的成员函数,保护了成员不被修改;使用mutable可以突破const限制,常用于lambda函数

1
2
3
4
5
6
7
8
9
10
class A { 
mutable int a_;
int b_;
public:
void setData(int a) const
{
a_ = a; // pass
// b_ = a; // error
}
};

const修饰的成员函数相当于修饰了this指针,所以也可以使用类型转换修改

1
2
A* const pA = const_cast<A* const>(this);
pA->b_ = a; // 你得知道自己在干什么!

std::atomic

C++原子性和内存模型 (rxsi.github.io)

C++内存泄漏及解决方法 - 知乎 (zhihu.com)

C++ 中的原子性操作_c++中的原子性_Rain-晴天的博客-CSDN博客

C++11中的std::atomic保证的原子性是什么_c++ atomic如何保证原子性_AlbertS的博客-CSDN博客

linux下C++多线程并发之原子操作与无锁编程 - 知乎 (zhihu.com)对int变量赋值的操作是原子的吗? - 知乎 (zhihu.com)

作者

tty

发布于

2023-04-17

更新于

2023-07-18

许可协议