@@ -6699,7 +6699,7 @@ auto when_all(_Iterator _Begin, _Iterator _End, const task_options& _TaskOptions
6699
6699
// / <seealso cref="Task Parallelism (Concurrency Runtime)"/>
6700
6700
/* */
6701
6701
template <typename _ReturnType>
6702
- auto operator &&(const task<_ReturnType> & _Lhs, const task<_ReturnType> & _Rhs)
6702
+ auto operator &&(const task<_ReturnType> & _Lhs, const task<_ReturnType> & _Rhs) -> decltype(when_all(&_Lhs, &_Lhs))
6703
6703
{
6704
6704
task<_ReturnType> _PTasks[2 ] = {_Lhs, _Rhs};
6705
6705
return when_all (_PTasks, _PTasks+2 );
@@ -6731,7 +6731,7 @@ auto operator&&(const task<_ReturnType> & _Lhs, const task<_ReturnType> & _Rhs)
6731
6731
// / <seealso cref="Task Parallelism (Concurrency Runtime)"/>
6732
6732
/* */
6733
6733
template <typename _ReturnType>
6734
- auto operator &&(const task<std::vector<_ReturnType>> & _Lhs, const task<_ReturnType> & _Rhs)
6734
+ auto operator &&(const task<std::vector<_ReturnType>> & _Lhs, const task<_ReturnType> & _Rhs) -> decltype (details::_WhenAllVectorAndValue(_Lhs, _Rhs, true ))
6735
6735
{
6736
6736
return details::_WhenAllVectorAndValue (_Lhs, _Rhs, true );
6737
6737
}
@@ -6762,7 +6762,7 @@ auto operator&&(const task<std::vector<_ReturnType>> & _Lhs, const task<_ReturnT
6762
6762
// / <seealso cref="Task Parallelism (Concurrency Runtime)"/>
6763
6763
/* */
6764
6764
template <typename _ReturnType>
6765
- auto operator &&(const task<_ReturnType> & _Lhs, const task<std::vector<_ReturnType>> & _Rhs)
6765
+ auto operator &&(const task<_ReturnType> & _Lhs, const task<std::vector<_ReturnType>> & _Rhs) -> decltype (details::_WhenAllVectorAndValue(_Rhs, _Lhs, false ))
6766
6766
{
6767
6767
return details::_WhenAllVectorAndValue (_Rhs, _Lhs, false );
6768
6768
}
@@ -6793,7 +6793,7 @@ auto operator&&(const task<_ReturnType> & _Lhs, const task<std::vector<_ReturnTy
6793
6793
// / <seealso cref="Task Parallelism (Concurrency Runtime)"/>
6794
6794
/* */
6795
6795
template <typename _ReturnType>
6796
- auto operator &&(const task<std::vector<_ReturnType>> & _Lhs, const task<std::vector<_ReturnType>> & _Rhs)
6796
+ auto operator &&(const task<std::vector<_ReturnType>> & _Lhs, const task<std::vector<_ReturnType>> & _Rhs) -> decltype (when_all(&_Lhs, &_Lhs))
6797
6797
{
6798
6798
task<std::vector<_ReturnType>> _PTasks[2 ] = {_Lhs, _Rhs};
6799
6799
return when_all (_PTasks, _PTasks+2 );
@@ -7084,7 +7084,7 @@ auto when_any(_Iterator _Begin, _Iterator _End, cancellation_token _Cancellation
7084
7084
// / <seealso cref="Task Parallelism (Concurrency Runtime)"/>
7085
7085
/* */
7086
7086
template <typename _ReturnType>
7087
- auto operator ||(const task<_ReturnType> & _Lhs, const task<_ReturnType> & _Rhs)
7087
+ task<_ReturnType> operator ||(const task<_ReturnType> & _Lhs, const task<_ReturnType> & _Rhs)
7088
7088
{
7089
7089
auto _PParam = new details::_RunAnyParam<std::pair<_ReturnType, size_t >>();
7090
7090
@@ -7145,7 +7145,7 @@ auto operator||(const task<_ReturnType> & _Lhs, const task<_ReturnType> & _Rhs)
7145
7145
// / <seealso cref="Task Parallelism (Concurrency Runtime)"/>
7146
7146
/* */
7147
7147
template <typename _ReturnType>
7148
- auto operator ||(const task<std::vector<_ReturnType>> & _Lhs, const task<_ReturnType> & _Rhs)
7148
+ task<std::vector<_ReturnType>> operator ||(const task<std::vector<_ReturnType>> & _Lhs, const task<_ReturnType> & _Rhs)
7149
7149
{
7150
7150
auto _PParam = new details::_RunAnyParam<std::pair<std::vector<_ReturnType>, details::_CancellationTokenState *>>();
7151
7151
@@ -7219,7 +7219,7 @@ auto operator||(const task<std::vector<_ReturnType>> & _Lhs, const task<_ReturnT
7219
7219
// / <seealso cref="Task Parallelism (Concurrency Runtime)"/>
7220
7220
/* */
7221
7221
template <typename _ReturnType>
7222
- auto operator ||(const task<_ReturnType> & _Lhs, const task<std::vector<_ReturnType>> & _Rhs)
7222
+ auto operator ||(const task<_ReturnType> & _Lhs, const task<std::vector<_ReturnType>> & _Rhs) -> decltype (_Rhs || _Lhs)
7223
7223
{
7224
7224
return _Rhs || _Lhs;
7225
7225
}
0 commit comments