1
8
将静态类变量视为仅在类的命名空间中的全局变量。用它递增或做其他事情不会对其他代码产生任何副作用,也就是说,您的构造函数和其他运算符的行为将与以前完全一样。 也就是说,您是对的:只需增加所有构造函数,减少析构函数。
当然,正如乔治指出的那样,如果你想让它多线程安全,你需要在访问你的计数器变量(例如一些互斥体)的过程中添加一些多线程安全代码。或者如Steven所指出的,您也可以使用原子增量/减量指令(但使用情况将取决于平台)。那会快很多。但是,您必须小心,因为在某些情况下,在多处理器环境中无法工作。你可以使用Boost
|
2
9
实现这一点的一种常见方法是使用从中继承的类模板。
所以要使用这个,我会写:
下面是线程安全版本。它使用boost中的类来确保增量、减量和读取操作在支持的平台上是原子操作。
|
rookie · 检查函数模板的所有参数包参数是否属于int 1 年前 |
ivaigult · -W转换和隐式字符串到布尔类型转换 1 年前 |
rainer · 后台插入程序的初始化 1 年前 |
Community wiki · 以理智、安全和高效的方式复制文件 1 年前 |
Shefali Kanaujia · 对C中向量的向量进行排序++ 1 年前 |
Ma Joonyoung · 粗粒度和细粒度链表的时间比较 1 年前 |