diff --git a/re2/re2.h b/re2/re2.h index 3e800b663..15ef0b3f7 100644 --- a/re2/re2.h +++ b/re2/re2.h @@ -827,7 +827,7 @@ class RE2::Arg { re2_internal::Parse4ary::value, int>::type; -#if !defined(__clang__) && defined(_MSC_VER) +#if !defined(_MSC_VER) template using CanParseFrom = typename std::enable_if< std::is_member_function_pointer = 0> Arg(T* ptr) : arg_(ptr), parser_(DoParse4ary) {} -#if !defined(__clang__) && defined(_MSC_VER) +#if !defined(_MSC_VER) template = 0> Arg(T* ptr) : arg_(ptr), parser_(DoParseFrom) {} #endif @@ -874,7 +874,7 @@ class RE2::Arg { return re2_internal::Parse(str, n, reinterpret_cast(dest), 10); } -#if !defined(__clang__) && defined(_MSC_VER) +#if !defined(_MSC_VER) template static bool DoParseFrom(const char* str, size_t n, void* dest) { if (dest == NULL) return true; diff --git a/re2/testing/re2_arg_test.cc b/re2/testing/re2_arg_test.cc index 5d64201e1..f62e17cf4 100644 --- a/re2/testing/re2_arg_test.cc +++ b/re2/testing/re2_arg_test.cc @@ -134,7 +134,7 @@ TEST(RE2ArgTest, Uint64Test) { } TEST(RE2ArgTest, ParseFromTest) { -#if !defined(__clang__) && defined(_MSC_VER) +#if !defined(_MSC_VER) struct { bool ParseFrom(const char* str, size_t n) { LOG(INFO) << "str = " << str << ", n = " << n;