0

我正在尝试设置一个原子向量,例如

struct Vector
{
    double data[3];
};

我希望它在 TBB 中原子地工作。所以我用

tbb::atomic<Vector> atomic_vec;

但是,它无法工作,因为编译器声明tbb::internal::atomic_impl<T>::my_storage的类型不完整。我检查了 tbb/atomic.h 发现相关的tbb::internal::aligned_storage<Vector, sizeof(Vector)=24ul>不是专业的。有没有办法避免这种情况?

4

1 回答 1

1

tbb::atomic可以使用不超过 64 位的类型进行实例化,tbb::atomic旨在使用“非阻塞”硬件原语。这是 TBB 旨在运行的绝大多数硬件的限制。

于 2013-07-15T08:17:16.090 回答