根据文档,其中说[强调我的]:
在标题中定义
模板< class T >
结构原子;
模板< class U >
结构原子;
(自 C++11 起)
在标题中定义
模板< class U >
结构atomicstd::shared_ptr;
模板< class U >
structatomicstd::weak_ptr;
在标题中定义
(C++20 起)
由于
std::shared<T>
的部分特化仅适用于 C++20,那么 std::atomic<std::shared_ptr<Struct Demo>>
可以安全地用于 C++11 吗?
有什么我应该注意的潜在问题吗?
不,
std::atomic<T>
的主要模板要求T
可以简单复制,而std::shared_ptr
则不然。
尝试使用它会编译失败。