From: Andrew Krieger Date: Sun, 12 Nov 2017 22:31:02 +0000 (-0800) Subject: Fix an ICE in MSVC from functional/Invoke.h X-Git-Tag: v2017.11.13.00^0 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=5273dbe92d8b21c75573f9c1c9e8a80f2883a116;p=folly.git Fix an ICE in MSVC from functional/Invoke.h Summary: Similar to https://github.com/facebook/folly/commit/29ffcc50981fd50dd2ab1a69f8a262c4b7c27ad4, (D6254219), this was manifesting as random ICEs that repro consistently in a given file on a given machine, but in different files for different machines and sometimes not at all. Reviewed By: Orvid, yfeldblum Differential Revision: D6303186 fbshipit-source-id: d91ad633352fc5c28640e71fd1539f6a4ba8f70f --- diff --git a/folly/functional/Invoke.h b/folly/functional/Invoke.h index 71eabb5e..6dce01c0 100644 --- a/folly/functional/Invoke.h +++ b/folly/functional/Invoke.h @@ -86,9 +86,10 @@ using invoke_result_ = decltype(invoke(std::declval(), std::declval()...)); template -using invoke_nothrow_ = std::integral_constant< - bool, - noexcept(invoke(std::declval(), std::declval()...))>; +struct invoke_nothrow_ + : std::integral_constant< + bool, + noexcept(invoke(std::declval(), std::declval()...))> {}; // from: http://en.cppreference.com/w/cpp/types/result_of, CC-BY-SA