Операторы пространства имен 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
.