Compartilhar via


Operadores no namespace de concorrência

Os seguintes operadores estão disponíveis no namespace:

Operador

Cria uma tarefa que será concluída com êxito quando qualquer 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

TipoDeRetorno
O tipo da tarefa retornada.

lhs
A primeira tarefa a ser combinada na tarefa resultante.

rhs
A segunda tarefa a integrar 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 , a saída dessa função será um . Se as tarefas de entrada forem do tipo , a tarefa de saída também será um .

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 ou nessa tarefa.

Operador

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

TipoDeRetorno
O tipo da tarefa retornada.

lhs
A primeira tarefa a ser combinada na tarefa resultante.

rhs
A segunda tarefa a integrar 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 , a saída dessa função será um . Se as tarefas de entrada forem do tipo , a tarefa de saída também será um .

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, caso ocorra uma, será gerada se você chamar ou nessa tarefa.

operador== Operador

Testa se o objeto à esquerda do operador é igual ao objeto à 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 .

R2
O tipo de alocador do segundo objeto .

_A
Um objeto do tipo .

_B
Um objeto do tipo .

Valor de retorno

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

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 desiguais.

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

operador!= Operador

Testa se o objeto à esquerda do operador é diferente do objeto à 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 .

R2
O tipo de alocador do segundo objeto .

_A
Um objeto do tipo .

_B
Um objeto do tipo .

Valor de retorno

se os vetores concorrentes não forem iguais, 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 desiguais.

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

Operador

Testa se o objeto à esquerda do operador é menor do que o objeto à 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 .

R2
O tipo de alocador do segundo objeto .

_A
Um objeto do tipo .

_B
Um objeto do tipo .

Valor de retorno

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

Comentários

O comportamento deste operador é idêntico ao operador equivalente para a classe no namespace .

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

Operador

Testa se o objeto à esquerda do operador é menor que ou igual ao objeto à 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 .

R2
O tipo de alocador do segundo objeto .

_A
Um objeto do tipo .

_B
Um objeto do tipo .

Valor de retorno

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

Comentários

O comportamento deste operador é idêntico ao operador equivalente para a classe no namespace .

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

Operador

Testa se o objeto à esquerda do operador é maior do que o objeto à 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 .

R2
O tipo de alocador do segundo objeto .

_A
Um objeto do tipo .

_B
Um objeto do tipo .

Valor de retorno

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

Comentários

O comportamento deste operador é idêntico ao operador equivalente para a classe no namespace .

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

Operador

Testa se o objeto à esquerda do operador é maior que ou igual ao objeto à 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 .

R2
O tipo de alocador do segundo objeto .

_A
Um objeto do tipo .

_B
Um objeto do tipo .

Valor de retorno

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

Comentários

O comportamento deste operador é idêntico ao operador equivalente para a classe no namespace .

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

Confira também

Namespace de concorrência