lundi 2 juillet 2018

Is is safe to modify elements of std::valarray

If I've understood correctly, since C++11 it has been safe to call const member functions of a container concurrently and modify the elements of a container as long as the container itself is not modified as part of the operation (as seen from e.g. the table concerning thread safety in cppreference.com). Since std::valarray is not listed in the containers section of the (draft) standard, I'm unsure if thread safety also applies to it. In other words,

  • Is it safe to read from a std::valarray concurrently (in particular by using operator[] with slices)?
  • Is it safe to modify the elements of std::valarray<T> concurrently if the operation on T is safe?

I would like to use std::valarray for a multidimensional array of numbers that would be filled using multiple threads.

Aucun commentaire:

Enregistrer un commentaire