コンカレンシー名前空間演算子

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
結果のタスクにまとめられる 2 番目のタスク。

戻り値

入力したタスクのいずれかが正常に完了したときに正常に完了するタスク。 入力したタスクの種類が T である場合、この関数の出力は task<std::vector<T> になります。 入力したタスクの種類が void である場合、出力のタスクも task<void> になります。

解説

両方のタスクが取り消された場合、または例外をスローした場合、返されたタスクは取り消された状態で完了し、例外が発生した場合は、そのタスクで get() または wait() を呼び出す際に、例外の 1 つがスローされます。

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
結果のタスクにまとめられる 2 番目のタスク。

戻り値

入力した両方のタスクが正常に完了したときに正常に完了するタスク。 入力したタスクの種類が T である場合、この関数の出力は task<std::vector<T>> になります。 入力したタスクの種類が void である場合、出力のタスクも task<void> になります。

解説

タスクのいずれかがキャンセルされた場合、または例外がスローされた場合、返されるタスクは早期に完了し、キャンセルされた状態になります。また、例外が発生するとすれば、そのタスクに対して get() または wait() を呼び出した場合に、その例外がスローされます。

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
2 番目の concurrent_vector オブジェクトのアロケーター型。

_A
concurrent_vector 型オブジェクト。

_B
concurrent_vector 型オブジェクト。

戻り値

演算子の左辺の同時実行ベクターが演算子の右辺の同時実行ベクターと等しい場合は true、それ以外の場合は false

解説

2 つの同時実行ベクターは、同じ数の要素を持ち、各要素の値が同じである場合に等しくなります。 それ以外の場合は等しくありません。

このメソッドは、同時実行ベクター _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
2 番目の concurrent_vector オブジェクトのアロケーター型。

_A
concurrent_vector 型オブジェクト。

_B
concurrent_vector 型オブジェクト。

戻り値

同時実行ベクターが等しくない場合は true、同時実行ベクターが等しい場合は false

解説

2 つの同時実行ベクターは、同じ数の要素を持ち、各要素の値が同じである場合に等しくなります。 それ以外の場合は等しくありません。

このメソッドは、同時実行ベクター _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
2 番目の concurrent_vector オブジェクトのアロケーター型。

_A
concurrent_vector 型オブジェクト。

_B
concurrent_vector 型オブジェクト。

戻り値

演算子の左辺の同時実行ベクターが演算子の右辺の同時実行ベクター未満の場合は true、それ以外の場合は false

解説

この演算子の動作は、std 名前空間の vector クラスの同等の演算子と同じです。

このメソッドは、同時実行ベクター _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
2 番目の concurrent_vector オブジェクトのアロケーター型。

_A
concurrent_vector 型オブジェクト。

_B
concurrent_vector 型オブジェクト。

戻り値

演算子の左辺の同時実行ベクターが演算子の右辺の同時実行ベクター以下の場合は true、それ以外の場合は false

解説

この演算子の動作は、std 名前空間の vector クラスの同等の演算子と同じです。

このメソッドは、同時実行ベクター _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
2 番目の concurrent_vector オブジェクトのアロケーター型。

_A
concurrent_vector 型オブジェクト。

_B
concurrent_vector 型オブジェクト。

戻り値

演算子の左辺の同時実行ベクターが演算子の右辺の同時実行ベクターより大きい場合は true、それ以外の場合は false

解説

この演算子の動作は、std 名前空間の vector クラスの同等の演算子と同じです。

このメソッドは、同時実行ベクター _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
2 番目の concurrent_vector オブジェクトのアロケーター型。

_A
concurrent_vector 型オブジェクト。

_B
concurrent_vector 型オブジェクト。

戻り値

演算子の左辺の同時実行ベクターが演算子の右辺の同時実行ベクター以上の場合は true、それ以外の場合は false

解説

この演算子の動作は、std 名前空間の vector クラスの同等の演算子と同じです。

このメソッドは、同時実行ベクター _A または _B のいずれかを変更できる他のメソッドに関して、コンカレンシー セーフではありません。

関連項目

コンカレンシー名前空間