You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository has been archived by the owner on Mar 21, 2024. It is now read-only.
The entry points for the async algorithms currently use C++11 return type deduction syntax with a trailing -> decltype(expr). This is problematic because decltype(expr) is a SFINAE context, and nvcc gives unclear diagnostics when these functions are called with bad arguments because the overloads are removed via SFINAE.
Since the thrust::async algorithms are new and aren't yet widely used, they will be moved from C++11-only to C++14-only. This will allow us to use C++14 return type deduction, which eliminates the need for the trailing -> decltype(expr) SFINAE context and gives better diagnostics from nvcc.
This will be finished before adding new async algorithms.
The text was updated successfully, but these errors were encountered:
To summarize discussion with @brycelelbach and @griwes at today's meeting:
The entry points for the async algorithms currently use C++11 return type deduction syntax with a trailing
-> decltype(expr)
. This is problematic becausedecltype(expr)
is a SFINAE context, and nvcc gives unclear diagnostics when these functions are called with bad arguments because the overloads are removed via SFINAE.Since the
thrust::async
algorithms are new and aren't yet widely used, they will be moved from C++11-only to C++14-only. This will allow us to use C++14 return type deduction, which eliminates the need for the trailing-> decltype(expr)
SFINAE context and gives better diagnostics from nvcc.This will be finished before adding new async algorithms.
The text was updated successfully, but these errors were encountered: