Replace std::result_of with decltype #2212
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.
std::result_of is deprecated in C++17 and removed in C++20, breaking downstream projects that use C++20 with MSVC
This could be replaced by a wrapper type trait that dispatches to std::invoke_result_t for C++17 and later or to std::result_of for
earlier versions but since it is only used in one place for nullary functors, decltype will be simpler.
The vendored version of boost::asio uses std::result_of so this PR will not allow Cinder to be built in C++20 mode yet, but since asio is only used internally and not in Cinder's interface it should allow downstream project to use C++20.
Fixes #2206