Нет, перегрузка std::copy
, которую вы показываете в своем вопросе, вообще не может быть реализована для параллельного выполнения, потому что она указана для последовательного копирования элементов в порядке от первого до последнего. Вероятно, он никогда не реализуется для параллельного выполнения ни при каких обстоятельствах.
Начиная с C ++ 17 существуют параллельные расширения стандартных библиотечных алгоритмов, которые принимают дополнительный первый параметр, определяющий политику выполнения, который может быть параллельным, при условии, что стандартная библиотека реализует его таким образом, например (требуется #include<execution>
):
std::copy(std::execution::par, other_vector().begin(), other_vector().end(), this_vector.begin());
См. cppreference.com для различных вариантов политики выполнения и их конкретные значения c.
Это еще не полностью реализовано во всех компиляторах / стандартных библиотеках, хотя и может потребоваться дополнительные опции компилятора. См. « Стандартизация параллелизма TS » в таблице поддержки компилятора cppreference.com .