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


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

Оператор operator||

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

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
Вторая задача для объединения в результирующую задачу.

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

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

Замечания

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

Оператор operator&&

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

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
Вторая задача для объединения в результирующую задачу.

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

Задача, которая завершается успешно, если обе входные задачи завершены успешно. Если входные задачи относятся к типу T, выводом этой функции будет task<std::vector<T>>. Если входные задачи относятся к типу void, выходная задача также будет task<void>.

Замечания

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

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

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

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

Параметры

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

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

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

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

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

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

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

Замечания

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

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

оператор!=

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

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

Параметры

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

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

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

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

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

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

true Значение , если параллельные векторы не равны; false Значение

Замечания

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

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

Оператор operator<

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

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

Параметры

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

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

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

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

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

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

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

Замечания

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

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

Оператор operator<=

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

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

Параметры

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

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

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

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

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

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

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

Замечания

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

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

Оператор operator>

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

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

Параметры

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

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

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

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

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

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

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

Замечания

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

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

Оператор operator>=

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

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

Параметры

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

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

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

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

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

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

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

Замечания

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

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

См. также

Пространство имен concurrency