Bug 1310067 - VS2017 doesn't require JS_DEPENDENT_TEMPLATE_HINT workaround. r=jonco

MozReview-Commit-ID: DuDDyP6tpc8
This commit is contained in:
Makoto Kato 2016-11-21 11:14:44 +09:00
Родитель defb095265
Коммит 48a2c42b58
1 изменённых файлов: 4 добавлений и 4 удалений

Просмотреть файл

@ -164,12 +164,12 @@ template <> struct MapTypeToRootKind<JSFunction*> : public MapTypeToRootKind<JSO
// type designated by |traceKind| as the functor's template argument. The // type designated by |traceKind| as the functor's template argument. The
// |thing| parameter is optional; without it, we simply pass through |... args|. // |thing| parameter is optional; without it, we simply pass through |... args|.
// GCC and Clang require an explicit template declaration in front of the // VS2017+, GCC and Clang require an explicit template declaration in front of
// specialization of operator() because it is a dependent template. MSVC, on // the specialization of operator() because it is a dependent template. VS2015,
// the other hand, gets very confused if we have a |template| token there. // on the other hand, gets very confused if we have a |template| token there.
// The clang-cl front end defines _MSC_VER, but still requires the explicit // The clang-cl front end defines _MSC_VER, but still requires the explicit
// template declaration, so we must test for __clang__ here as well. // template declaration, so we must test for __clang__ here as well.
#if defined(_MSC_VER) && !defined(__clang__) #if (defined(_MSC_VER) && _MSC_VER < 1910) && !defined(__clang__)
# define JS_DEPENDENT_TEMPLATE_HINT # define JS_DEPENDENT_TEMPLATE_HINT
#else #else
# define JS_DEPENDENT_TEMPLATE_HINT template # define JS_DEPENDENT_TEMPLATE_HINT template