diff --git a/src/Magnum/Animation/Player.h b/src/Magnum/Animation/Player.h index 51b9235cc..0835e7204 100644 --- a/src/Magnum/Animation/Player.h +++ b/src/Magnum/Animation/Player.h @@ -386,13 +386,15 @@ template Player& add(const Track& track, R& destination) { return add(TrackView{track}, destination); } #else /* MSVC 2015 and 2017 is clueless when it comes to trying to deduce the template parameters (C2893: Failed to specialize function template). + MSVC 2019 works with /permissive-, but I can neither detect presence + of the flag nor force it onto users, so I'm treating it the same. It works when calling add explicitly, but that makes the API hard to use and inconsistent between platforms. The only possible workaround is to make add() take *anything*, casting it to proper @@ -439,7 +441,7 @@ template Player& addWithCallback(const Track& track, void(*callback)(K, const R&, void*), void* userData = nullptr); - #elif !defined(CORRADE_MSVC2017_COMPATIBILITY) /* See above why */ + #elif !defined(CORRADE_MSVC2019_COMPATIBILITY) /* See above why */ template Player& addWithCallback(const Track& track, Callback callback, void* userData = nullptr) { return addWithCallback(TrackView{track}, callback, userData); } @@ -472,7 +474,7 @@ template Player& addWithCallback(const Track& track, void(*callback)(K, const R&, U&), U& userData); - #elif !defined(CORRADE_MSVC2017_COMPATIBILITY) /* See above why */ + #elif !defined(CORRADE_MSVC2019_COMPATIBILITY) /* See above why */ template Player& addWithCallback(const Track& track, Callback callback, U& userData) { return addWithCallback(TrackView{track}, callback, userData); } @@ -511,7 +513,7 @@ template Player& addWithCallbackOnChange(const Track& track, void(*callback)(K, const R&, void*), R& destination, void* userData = nullptr); - #elif !defined(CORRADE_MSVC2017_COMPATIBILITY) /* See above why */ + #elif !defined(CORRADE_MSVC2019_COMPATIBILITY) /* See above why */ template Player& addWithCallbackOnChange(const Track& track, Callback callback, R& destination, void* userData = nullptr) { return addWithCallbackOnChange(TrackView{track}, callback, destination, userData); } @@ -544,7 +546,7 @@ template Player& addWithCallbackOnChange(const Track& track, void(*callback)(K, const R&, void*), R& destination, U& userData); - #elif !defined(CORRADE_MSVC2017_COMPATIBILITY) /* See above why */ + #elif !defined(CORRADE_MSVC2019_COMPATIBILITY) /* See above why */ template Player& addWithCallbackOnChange(const Track& track, Callback callback, R& destination, U& userData) { return addWithCallbackOnChange(TrackView{track}, callback, destination, userData); } @@ -590,7 +592,7 @@ template Player& addRawCallback(const Track& track, void(*callback)(const TrackViewStorage&, K, std::size_t&, void*, void(*)(), void*), void* destination, void(*userCallback)(), void* userData); - #elif !defined(CORRADE_MSVC2017_COMPATIBILITY) /* See above why */ + #elif !defined(CORRADE_MSVC2019_COMPATIBILITY) /* See above why */ template Player& addRawCallback(const Track& track, Callback callback, void* destination, void(*userCallback)(), void* userData) { return addRawCallback(TrackView{track}, callback, destination, userCallback, userData); }