@@ -6699,7 +6699,7 @@ auto when_all(_Iterator _Begin, _Iterator _End, const task_options& _TaskOptions
66996699// / <seealso cref="Task Parallelism (Concurrency Runtime)"/>
67006700/* */
67016701template <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))
67036703{
67046704 task<_ReturnType> _PTasks[2 ] = {_Lhs, _Rhs};
67056705 return when_all (_PTasks, _PTasks+2 );
@@ -6731,7 +6731,7 @@ auto operator&&(const task<_ReturnType> & _Lhs, const task<_ReturnType> & _Rhs)
67316731// / <seealso cref="Task Parallelism (Concurrency Runtime)"/>
67326732/* */
67336733template <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 ))
67356735{
67366736 return details::_WhenAllVectorAndValue (_Lhs, _Rhs, true );
67376737}
@@ -6762,7 +6762,7 @@ auto operator&&(const task<std::vector<_ReturnType>> & _Lhs, const task<_ReturnT
67626762// / <seealso cref="Task Parallelism (Concurrency Runtime)"/>
67636763/* */
67646764template <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 ))
67666766{
67676767 return details::_WhenAllVectorAndValue (_Rhs, _Lhs, false );
67686768}
@@ -6793,7 +6793,7 @@ auto operator&&(const task<_ReturnType> & _Lhs, const task<std::vector<_ReturnTy
67936793// / <seealso cref="Task Parallelism (Concurrency Runtime)"/>
67946794/* */
67956795template <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))
67976797{
67986798 task<std::vector<_ReturnType>> _PTasks[2 ] = {_Lhs, _Rhs};
67996799 return when_all (_PTasks, _PTasks+2 );
@@ -7084,7 +7084,7 @@ auto when_any(_Iterator _Begin, _Iterator _End, cancellation_token _Cancellation
70847084// / <seealso cref="Task Parallelism (Concurrency Runtime)"/>
70857085/* */
70867086template <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)
70887088{
70897089 auto _PParam = new details::_RunAnyParam<std::pair<_ReturnType, size_t >>();
70907090
@@ -7145,7 +7145,7 @@ auto operator||(const task<_ReturnType> & _Lhs, const task<_ReturnType> & _Rhs)
71457145// / <seealso cref="Task Parallelism (Concurrency Runtime)"/>
71467146/* */
71477147template <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)
71497149{
71507150 auto _PParam = new details::_RunAnyParam<std::pair<std::vector<_ReturnType>, details::_CancellationTokenState *>>();
71517151
@@ -7219,7 +7219,7 @@ auto operator||(const task<std::vector<_ReturnType>> & _Lhs, const task<_ReturnT
72197219// / <seealso cref="Task Parallelism (Concurrency Runtime)"/>
72207220/* */
72217221template <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)
72237223{
72247224 return _Rhs || _Lhs;
72257225}
0 commit comments