Если я правильно понял, начиная с C ++ 11 было безопасно вызывать константные функции-члены контейнера одновременно и изменять элементы контейнера, пока сам контейнер не изменяется как часть операции ( как видно из таблицы, касающейся безопасности потоков в cppreference.com ). Поскольку std :: valarray не указан в разделе «контейнеры» (черновика) стандарта, я не уверен, применима ли к нему безопасность потоков. Другими словами,
- Безопасно ли читать из std :: valarray одновременно (в частности, используя оператор [] со слайсами)?
- Безопасно ли изменять элементы std :: valarray одновременно, если операция над T безопасна?
Я хотел бы использовать std :: valarray для многомерного массива чисел, который будет заполнен несколькими потоками.