[libcxx] r300411 - Workaround Clang bug regarding template template parameters

Eric Fiselier via cfe-commits cfe-commits at lists.llvm.org
Sat Apr 15 19:47:46 PDT 2017


Author: ericwf
Date: Sat Apr 15 21:47:46 2017
New Revision: 300411

URL: http://llvm.org/viewvc/llvm-project?rev=300411&view=rev
Log:
Workaround Clang bug regarding template template parameters

Modified:
    libcxx/trunk/test/std/utilities/smartptr/unique.ptr/unique.ptr.class/unique.ptr.asgn/move_convert.pass.cpp

Modified: libcxx/trunk/test/std/utilities/smartptr/unique.ptr/unique.ptr.class/unique.ptr.asgn/move_convert.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/smartptr/unique.ptr/unique.ptr.class/unique.ptr.asgn/move_convert.pass.cpp?rev=300411&r1=300410&r2=300411&view=diff
==============================================================================
--- libcxx/trunk/test/std/utilities/smartptr/unique.ptr/unique.ptr.class/unique.ptr.asgn/move_convert.pass.cpp (original)
+++ libcxx/trunk/test/std/utilities/smartptr/unique.ptr/unique.ptr.class/unique.ptr.asgn/move_convert.pass.cpp Sat Apr 15 21:47:46 2017
@@ -46,17 +46,23 @@ using EnableIfNotSame = typename std::en
     !std::is_same<typename std::decay<T>::type, typename std::decay<U>::type>::value
 >::type;
 
-template <template <int> class Templ, class Other>
-struct is_specialization : std::false_type {};
+template <class Templ, class Other>
+struct is_specialization;
 
-template <template <int> class Templ, int ID>
-struct is_specialization<Templ, Templ<ID> > : std::true_type {};
+template <template <int> class Templ, int ID1, class Other>
+struct is_specialization<Templ<ID1>, Other> : std::false_type {};
 
-template <template <int> class Templ, class Other>
+template <template <int> class Templ, int ID1, int ID2>
+struct is_specialization<Templ<ID1>, Templ<ID2> > : std::true_type {};
+
+template <class Templ, class Other>
 using EnableIfSpecialization = typename std::enable_if<
     is_specialization<Templ, typename std::decay<Other>::type >::value
   >::type;
 
+template <int ID> struct TrackingDeleter;
+template <int ID> struct ConstTrackingDeleter;
+
 template <int ID>
 struct TrackingDeleter {
   TrackingDeleter() : arg_type(&makeArgumentID<>()) {}




More information about the cfe-commits mailing list