如果我理解正确的话,从 C++11 开始,只要容器本身不作为操作的一部分进行修改,就可以安全地同时调用容器的 const 成员函数并修改容器的元素(从例如cppreference.com中有关线程安全的表)。由于 std::valarray 未列在(草案)标准的容器部分中,我不确定线程安全是否也适用于它。换句话说,
- 同时从 std::valarray 读取是否安全(特别是通过将 operator[] 与切片一起使用)?
- 如果对 T 的操作是安全的,那么同时修改 std::valarray<T> 的元素是否安全?
我想将 std::valarray 用于将使用多个线程填充的多维数字数组。