Partilhar via


Operadores do namespace de simultaneidade

Operador operator||

Cria uma tarefa que será concluída com êxito quando uma das tarefas fornecidas como argumentos for concluída com êxito.

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);

Parâmetros

ReturnType
O tipo da tarefa retornada.

lhs
A primeira tarefa a combinar na tarefa resultante.

rhs
A segunda tarefa a combinar na tarefa resultante.

Valor de retorno

Uma tarefa que foi concluída com êxito quando uma das tarefas de entrada foi concluída com êxito. Se as tarefas de entrada forem do tipo T, a saída dessa função será um task<std::vector<T>. Se as tarefas de entrada forem do tipo void, a tarefa de saída também será um task<void>.

Comentários

Se ambas as tarefas forem canceladas ou dispararem exceções, a tarefa retornada será concluída no estado cancelado e uma das exceções, se houver alguma, será gerada ao chamar get() ou wait() nessa tarefa.

Operador operator&&

Cria uma tarefa que será concluída com êxito quando ambas as tarefas fornecidas como argumentos forem concluídas com êxito.

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);

Parâmetros

ReturnType
O tipo da tarefa retornada.

lhs
A primeira tarefa a combinar na tarefa resultante.

rhs
A segunda tarefa a combinar na tarefa resultante.

Valor de retorno

Uma tarefa que foi concluída com êxito quando ambas as tarefas de entrada foram concluídas com êxito. Se as tarefas de entrada forem do tipo T, a saída dessa função será um task<std::vector<T>>. Se as tarefas de entrada forem do tipo void, a tarefa de saída também será um task<void>.

Comentários

Se uma das tarefas for cancelada ou gerar uma exceção, a tarefa retornada será concluída antecipadamente, no estado cancelado, e a exceção, se alguma ocorrer, será gerada se você chamar get() ou wait() nessa tarefa.

operador== Operador

Testa se o objeto concurrent_vector à esquerda do operador é igual ao objeto concurrent_vector à direita.

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

Parâmetros

T
O tipo de dados dos elementos armazenados nos vetores simultâneos.

A1
O tipo de alocador do primeiro objeto concurrent_vector.

R2
O tipo de alocador do segundo objeto concurrent_vector.

_A
Um objeto do tipo concurrent_vector.

_B
Um objeto do tipo concurrent_vector.

Valor de retorno

true se o vetor concorrente do lado esquerdo do operador for igual ao vetor concorrente à direita do operador, caso contrário, false.

Comentários

Dois vetores concorrentes serão iguais se tiverem o mesmo número de elementos e seus respectivos elementos tiverem os mesmos valores. Caso contrário, são diferentes.

Esse método não é seguro de simultaneidade em relação a outros métodos que podem modificar qualquer um dos vetores simultâneos _A ou _B.

operador!= Operador

Testa se o objeto concurrent_vector à esquerda do operador é diferente do objeto concurrent_vector à direita.

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

Parâmetros

T
O tipo de dados dos elementos armazenados nos vetores simultâneos.

A1
O tipo de alocador do primeiro objeto concurrent_vector.

R2
O tipo de alocador do segundo objeto concurrent_vector.

_A
Um objeto do tipo concurrent_vector.

_B
Um objeto do tipo concurrent_vector.

Valor de retorno

true se os vetores concorrentes não forem iguais, false se os vetores concorrentes forem iguais.

Comentários

Dois vetores concorrentes serão iguais se tiverem o mesmo número de elementos e seus respectivos elementos tiverem os mesmos valores. Caso contrário, são diferentes.

Esse método não é seguro de simultaneidade em relação a outros métodos que podem modificar qualquer um dos vetores simultâneos _A ou _B.

Operador operator<

Testa se o objeto concurrent_vector à esquerda do operador é menor do que o objeto concurrent_vector à direita.

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

Parâmetros

T
O tipo de dados dos elementos armazenados nos vetores simultâneos.

A1
O tipo de alocador do primeiro objeto concurrent_vector.

R2
O tipo de alocador do segundo objeto concurrent_vector.

_A
Um objeto do tipo concurrent_vector.

_B
Um objeto do tipo concurrent_vector.

Valor de retorno

true se o vetor concorrente do lado esquerdo do operador for menor que o vetor concorrente à direita do operador, caso contrário, false.

Comentários

O comportamento desse operador é idêntico ao operador equivalente para a classe no vectornamespacestd.

Esse método não é seguro de simultaneidade em relação a outros métodos que podem modificar qualquer um dos vetores simultâneos _A ou _B.

Operador operator<=

Testa se o objeto concurrent_vector à esquerda do operador é menor que ou igual ao objeto concurrent_vector à direita.

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

Parâmetros

T
O tipo de dados dos elementos armazenados nos vetores simultâneos.

A1
O tipo de alocador do primeiro objeto concurrent_vector.

R2
O tipo de alocador do segundo objeto concurrent_vector.

_A
Um objeto do tipo concurrent_vector.

_B
Um objeto do tipo concurrent_vector.

Valor de retorno

true se o vetor concorrente do lado esquerdo do operador for menor que ou igual ao vetor concorrente à direita do operador, caso contrário, false.

Comentários

O comportamento desse operador é idêntico ao operador equivalente para a classe no vectornamespacestd.

Esse método não é seguro de simultaneidade em relação a outros métodos que podem modificar qualquer um dos vetores simultâneos _A ou _B.

Operador operator>

Testa se o objeto concurrent_vector à esquerda do operador é maior do que o objeto concurrent_vector à direita.

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

Parâmetros

T
O tipo de dados dos elementos armazenados nos vetores simultâneos.

A1
O tipo de alocador do primeiro objeto concurrent_vector.

R2
O tipo de alocador do segundo objeto concurrent_vector.

_A
Um objeto do tipo concurrent_vector.

_B
Um objeto do tipo concurrent_vector.

Valor de retorno

true se o vetor concorrente á esquerda do operador for maior que o vetor concorrente à direita do operador, caso contrário, false.

Comentários

O comportamento desse operador é idêntico ao operador equivalente para a classe no vectornamespacestd.

Esse método não é seguro de simultaneidade em relação a outros métodos que podem modificar qualquer um dos vetores simultâneos _A ou _B.

Operador operator>=

Testa se o objeto concurrent_vector à esquerda do operador é maior que ou igual ao objeto concurrent_vector à direita.

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

Parâmetros

T
O tipo de dados dos elementos armazenados nos vetores simultâneos.

A1
O tipo de alocador do primeiro objeto concurrent_vector.

R2
O tipo de alocador do segundo objeto concurrent_vector.

_A
Um objeto do tipo concurrent_vector.

_B
Um objeto do tipo concurrent_vector.

Valor de retorno

true se o vetor concorrente do lado esquerdo do operador for maior que ou igual ao vetor concorrente à direita do operador, caso contrário, false.

Comentários

O comportamento desse operador é idêntico ao operador equivalente para a classe no vectornamespacestd.

Esse método não é seguro de simultaneidade em relação a outros métodos que podem modificar qualquer um dos vetores simultâneos _A ou _B.

Confira também

Namespace de simultaneidade