From: Christopher Dykes Date: Sat, 8 Apr 2017 04:15:44 +0000 (-0700) Subject: Qualify a couple local constexpr values as 'static' to allow use from within non... X-Git-Tag: v2017.04.10.00~3 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=3e0c28fdd95f7ec7950d220a03d0c0e5d3a23bd0;p=folly.git Qualify a couple local constexpr values as 'static' to allow use from within non-capturing lambdas Summary: MSVC doesn't allow non-static locals to be accessed within a non-capturing lambda, and some were introduced into the json code. Reviewed By: yfeldblum Differential Revision: D4856242 fbshipit-source-id: b2db36ca37a79a41237d39cc7e7b839a5416922f --- diff --git a/folly/json.cpp b/folly/json.cpp index ae2f2937..ee56f0b1 100644 --- a/folly/json.cpp +++ b/folly/json.cpp @@ -615,8 +615,8 @@ std::string serialize(dynamic const& dyn, serialization_opts const& opts) { template size_t firstEscapableInWord(T s) { static_assert(std::is_unsigned::value, "Unsigned integer required"); - constexpr T kOnes = ~T() / 255; // 0x...0101 - constexpr T kMsbs = kOnes * 0x80; // 0x...8080 + static constexpr T kOnes = ~T() / 255; // 0x...0101 + static constexpr T kMsbs = kOnes * 0x80; // 0x...8080 // Sets the MSB of bytes < b. Precondition: b < 128. auto isLess = [](T w, uint8_t b) {