<functional>
: Constrain functions used by std::bind
#3577
Merged
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.
Fixes #952.
The issue is probably because of that some functions used by
bind
are not well constrained._Invoker_ret<_Rx>::_Call
("backportedinvoke_r
") is not constrained at all._Select_fixer<...>::_Fix
/_Apply
rely onstd::get
fortuple
, which is not constrained.Driven-by changes: use direct
if constexpr
andinvoke
in the internal functions used byfunction
andmove_only_function
(similar to the use ininvoke_r
), which may slightly improve compiler throughput.