diff options
| author | Eric Fiselier <eric@efcs.ca> | 2017-04-16 02:47:46 +0000 |
|---|---|---|
| committer | Eric Fiselier <eric@efcs.ca> | 2017-04-16 02:47:46 +0000 |
| commit | b7576b892b4385d944ba975a9ffa971c26263801 (patch) | |
| tree | 017f81970ac02bd688e53469edb50f101ed33011 | |
| parent | 843d910103c3165fa018a487cc3143e7ffc8c802 (diff) | |
| download | bcm5719-llvm-b7576b892b4385d944ba975a9ffa971c26263801.tar.gz bcm5719-llvm-b7576b892b4385d944ba975a9ffa971c26263801.zip | |
Workaround Clang bug regarding template template parameters
llvm-svn: 300411
| -rw-r--r-- | libcxx/test/std/utilities/smartptr/unique.ptr/unique.ptr.class/unique.ptr.asgn/move_convert.pass.cpp | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/libcxx/test/std/utilities/smartptr/unique.ptr/unique.ptr.class/unique.ptr.asgn/move_convert.pass.cpp b/libcxx/test/std/utilities/smartptr/unique.ptr/unique.ptr.class/unique.ptr.asgn/move_convert.pass.cpp index 185b1849b8a..8d83c3c8888 100644 --- a/libcxx/test/std/utilities/smartptr/unique.ptr/unique.ptr.class/unique.ptr.asgn/move_convert.pass.cpp +++ b/libcxx/test/std/utilities/smartptr/unique.ptr/unique.ptr.class/unique.ptr.asgn/move_convert.pass.cpp @@ -46,17 +46,23 @@ using EnableIfNotSame = typename std::enable_if< !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<>()) {} |

