Поделиться через


Операторы пространства имен concurrency

В пространстве имен доступны следующие операторы:

Оператор

Создает задачу, которая завершается успешно, если любая из задач, предоставленных в качестве аргументов, завершается успешно.

template<typename ReturnType>
task<ReturnType> operator||(
    const task<ReturnType>& lhs,
    const task<ReturnType>& rhs);

template<typename ReturnType>
task<std::vector<ReturnType>> operator||(
    const task<std::vector<ReturnType>>& lhs,
    const task<ReturnType>& rhs);

template<typename ReturnType>
task<std::vector<ReturnType>> operator||(
    const task<ReturnType>& lhs,
    const task<std::vector<ReturnType>>& rhs);

inline task<void> operator||(
    const task<void>& lhs,
    const task<void>& rhs);

Параметры

ReturnType
Тип возвращаемой задачи.

lhs
Первая задача, которую нужно объединить с итоговой задачей.

rhs
Вторая задача, которую необходимо объединить с результирующей задачей.

Возвращаемое значение

Задача, которая успешно завершается при успешном выполнении любой из входных задач. Если входные задачи относятся к типу , выводом этой функции будет . Если входные задачи относятся к типу , выходная задача также будет .

Замечания

Если обе задачи отменяются или выбрасывают исключения, возвращенная задача завершится в отмененном состоянии, и одно из исключений, если оно было встречено, будет выброшено при вызове или для этой задачи.

Оператор

Создает задачу, которая успешно завершится, когда обе задачи, предоставленные в качестве аргументов, успешно завершены.

template<typename ReturnType>
task<std::vector<ReturnType>>  operator&&(
    const task<ReturnType>& lhs,
    const task<ReturnType>& rhs);

template<typename ReturnType>
task<std::vector<ReturnType>>  operator&&(
    const task<std::vector<ReturnType>>& lhs,
    const task<ReturnType>& rhs);

template<typename ReturnType>
task<std::vector<ReturnType>>  operator&&(
    const task<ReturnType>& lhs,
    const task<std::vector<ReturnType>>& rhs);

template<typename ReturnType>
task<std::vector<ReturnType>>  operator&&(
    const task<std::vector<ReturnType>>& lhs,
    const task<std::vector<ReturnType>>& rhs);

inline task<void>  operator&&(
    const task<void>& lhs,
    const task<void>& rhs);

Параметры

ReturnType
Тип возвращаемой задачи.

lhs
Первая задача, которую нужно объединить с итоговой задачей.

rhs
Вторая задача, которую необходимо объединить с результирующей задачей.

Возвращаемое значение

Задача, которая завершается успешно, если обе входные задачи завершены успешно. Если входные задачи относятся к типу , выводом этой функции будет . Если входные задачи относятся к типу , выходная задача также будет .

Замечания

Если одна из задач отменена или вызывает исключение, возвращаемая задача завершится досрочно в состоянии отмены. Исключение, если таковое возникнет, будет выброшено при вызове или на этой задаче.

оператор== оператор==

Проверяет равенство объекта слева от оператора объекту справа от оператора.

template<typename T, class A1, class A2>
inline bool operator== (
    const concurrent_vector<T, A1>& _A,
    const concurrent_vector<T, A2>& _B);

Параметры

T
Тип данных элементов, хранящихся в параллельных векторах.

A1
Тип распределителя первого объекта.

A2
Тип распределителя второго объекта.

_A
Объект типа .

_B
Объект типа .

Возвращаемое значение

Значение, если конкурентный вектор слева от оператора равен конкурентному вектору справа от оператора; в противном случае .

Замечания

Два параллельных вектора равны, если они имеют одинаковое количество элементов, а соответствующие элементы имеют одинаковые значения. В противном случае они не равны.

Этот метод не является безопасным для параллелизма в отношении других методов, которые могут изменять один из параллельных векторов или .

оператор!= Оператор

Проверяет, не равен ли объект слева от оператора объекту справа от оператора.

template<typename T, class A1, class A2>
inline bool operator!= (
    const concurrent_vector<T, A1>& _A,
    const concurrent_vector<T, A2>& _B);

Параметры

T
Тип данных элементов, хранящихся в параллельных векторах.

A1
Тип распределителя первого объекта.

A2
Тип распределителя второго объекта.

_A
Объект типа .

_B
Объект типа .

Возвращаемое значение

если одновременные векторы не равны; если одновременные векторы равны.

Замечания

Два параллельных вектора равны, если они имеют одинаковое количество элементов, а соответствующие элементы имеют одинаковые значения. В противном случае они не равны.

Этот метод не является безопасным для параллелизма в отношении других методов, которые могут изменять один из параллельных векторов или .

Оператор

Проверяет, меньше ли объект слева от оператора, чем объект справа от оператора.

template<typename T, class A1, class A2>
inline bool operator<(
    const concurrent_vector<T, A1>& _A,
    const concurrent_vector<T, A2>& _B);

Параметры

T
Тип данных элементов, хранящихся в параллельных векторах.

A1
Тип распределителя первого объекта.

A2
Тип распределителя второго объекта.

_A
Объект типа .

_B
Объект типа .

Возвращаемое значение

если конкурентный вектор с левой стороны оператора меньше, чем конкурентный вектор с правой стороны оператора; в противном случае .

Замечания

Поведение этого оператора идентично эквиваленту для класса в пространстве имен.

Этот метод не является безопасным для параллелизма в отношении других методов, которые могут изменять один из параллельных векторов или .

Оператор

Проверяет, меньше ли объект слева от оператора, чем объект справа от оператора, или равен ему.

template<typename T, class A1, class A2>
inline bool operator<= (
    const concurrent_vector<T, A1>& _A,
    const concurrent_vector<T, A2>& _B);

Параметры

T
Тип данных элементов, хранящихся в параллельных векторах.

A1
Тип распределителя первого объекта.

A2
Тип распределителя второго объекта.

_A
Объект типа .

_B
Объект типа .

Возвращаемое значение

Значение, если одновременный вектор слева от оператора меньше или равен одновременному вектору справа от оператора; в противном случае .

Замечания

Поведение этого оператора идентично эквиваленту для класса в пространстве имен.

Этот метод не является безопасным для параллелизма в отношении других методов, которые могут изменять один из параллельных векторов или .

Оператор

Проверяет больше ли объект слева от оператора, чем объект справа от оператора.

template<typename T, class A1, class A2>
inline bool operator>(
    const concurrent_vector<T, A1>& _A,
    const concurrent_vector<T, A2>& _B);

Параметры

T
Тип данных элементов, хранящихся в параллельных векторах.

A1
Тип распределителя первого объекта.

A2
Тип распределителя второго объекта.

_A
Объект типа .

_B
Объект типа .

Возвращаемое значение

Значение, если совпадающий вектор слева от оператора больше, чем совпадающий вектор справа от оператора; в противном случае .

Замечания

Поведение этого оператора идентично эквиваленту для класса в пространстве имен.

Этот метод не является безопасным для параллелизма в отношении других методов, которые могут изменять один из параллельных векторов или .

Оператор

Проверяет, является ли объект , расположенный слева от оператора, больше или равен объекту , находящемуся справа.

template<typename T, class A1, class A2>
inline bool operator>= (
    const concurrent_vector<T, A1>& _A,
    const concurrent_vector<T, A2>& _B);

Параметры

T
Тип данных элементов, хранящихся в параллельных векторах.

A1
Тип распределителя первого объекта.

A2
Тип распределителя второго объекта.

_A
Объект типа .

_B
Объект типа .

Возвращаемое значение

Значение, если одновременный вектор на левой стороне оператора больше или равен одновременному вектору на правой стороне оператора; в противном случае .

Замечания

Поведение этого оператора идентично эквиваленту для класса в пространстве имен.

Этот метод не является безопасным для параллелизма в отношении других методов, которые могут изменять один из параллельных векторов или .

См. также

Пространство имен параллелизм