我一直在 C++ 应用程序生活中寻找线程安全的唯一 id 生成,所以我创建了以下静态类。
class Utils {
public :
static int getUid();
};
int Utils::getUid() {
static std::atomic<std::uint32_t> uid;
uid = 0;
return ++uid;
}
Run Code Online (Sandbox Code Playgroud)
任何建议,这是正确的方法吗?
这样修复它:
class Utils {
public :
static int getUid();
};
int Utils::getUid() {
static std::atomic<std::uint32_t> uid { 0 }; // <<== initialised
// uid = 0; <<== removed
return ++uid;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3843 次 |
| 最近记录: |