[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