Enable bug workaround also for MSVC 2017.4
authorArkady Shapkin <arkady.shapkin@gmail.com>
Thu, 19 Oct 2017 02:35:00 +0000 (19:35 -0700)
committerFacebook Github Bot <facebook-github-bot@users.noreply.github.com>
Thu, 19 Oct 2017 02:59:23 +0000 (19:59 -0700)
Summary:
Workaround a bug in template instantiation in MSVC 2017 U3/4 with /permissive-

https://developercommunity.visualstudio.com/content/problem/81223/incorrect-error-c5037-with-permissive.html

/cc Orvid
Closes https://github.com/facebook/folly/pull/691

Reviewed By: yfeldblum

Differential Revision: D6085652

Pulled By: Orvid

fbshipit-source-id: f068dc3f8e474163815fc497b05410fe76834a52

folly/stats/Histogram.h

index 06db3d0..1f34d0e 100644 (file)
@@ -480,12 +480,13 @@ class Histogram {
 
 } // namespace folly
 
-// MSVC 2017 Update 3 has an issue with explicitly instantiating templated
+// MSVC 2017 Update 3/4 has an issue with explicitly instantiating templated
 // functions with default arguments inside templated classes when compiled
 // with /permissive- (the default for the CMake build), so we directly include
 // the -defs as if it were -inl, and don't provide the explicit instantiations.
 // https://developercommunity.visualstudio.com/content/problem/81223/incorrect-error-c5037-with-permissive.html
-#if defined(_MSC_VER) && _MSC_FULL_VER >= 191125506 && _MSC_FULL_VER < 191125542
+#if defined(_MSC_VER) && _MSC_FULL_VER >= 191125506 && \
+    _MSC_FULL_VER <= 191125547
 #define FOLLY_MSVC_USE_WORKAROUND_FOR_C5037 1
 #else
 #define FOLLY_MSVC_USE_WORKAROUND_FOR_C5037 0