leapmotion / autowiring

A C++ Inversion of Control Framework
http://autowiring.io/
Apache License 2.0
148 stars 17 forks source link

C++20 removed std::result_of #1069

Open QuellaZhang opened 4 years ago

QuellaZhang commented 4 years ago

std::result_of was deprecated in C++17 and removed in C++20. In /std:c++17 mode, this triggers a deprecation warning in recent versions of MSVC. In /std:c++latest mode, now that microsoft/STL#380 has been merged, this will trigger an error in VS 2019 16.6 Preview 2.

The next release msvc toolset will emit the following error: F:\gitP\leapmotion\autowiring\src\autowiring\Parallel.h(148): error C2039: 'result_of': is not a member of 'std' F:\gitP\leapmotion\autowiring\src\autowiring\Parallel.h(148): error C2653: 'result_of': is not a class or namespace name F:\gitP\leapmotion\autowiring\src\autowiring\Parallel.h(148): error C2146: syntax error: missing '>' before identifier 'type' F:\gitP\leapmotion\autowiring\src\autowiring\Parallel.h(148): error C2062: type 'unknown-type' unexpected F:\gitP\leapmotion\autowiring\src\autowiring\Parallel.h(148): error C2039: 'value': is not a member of '`global namespace''

F:\gitP\leapmotion\autowiring\src\autowiring\Parallel.h(149): error C2062: type 'unknown-type' unexpected F:\gitP\leapmotion\autowiring\src\autowiring\Parallel.h(149): error C2039: 'type': is not a member of '`global namespace'' F:\gitP\leapmotion\autowiring\src\autowiring\Parallel.h(150): error C2334: unexpected token(s) preceding '{'; skipping apparent function body