work around erroneous "undefined in device code" error in basic_any
#3614
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
this PR addresses an issue in `basic_any` that was causing nvcc to erroneously think that certain host-only entities were needed in device code, leading to an error.
the code was using the value of a host-only member function pointer in a host-only
constexpr
function. something about how this function was getting used in some code i was working on made nvcc think the member function was also needed on device. i have not been able to isolate the source of the problem, so i can't provide a test case for it, unfortunately.this PR changes the
constexpr
function to a type computation, with the member function pointer as a NTTP. that seems to mollify nvcc.