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

2017-04-16 Thread Eric Fiselier via cfe-commits
One better, it has already been fixed.

On Apr 16, 2017 12:48 PM, "Nico Weber"  wrote:

> Is that bug filed?
>
> On Sat, Apr 15, 2017 at 10:47 PM, Eric Fiselier via cfe-commits <
> cfe-commits@lists.llvm.org> wrote:
>
>> 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/ut
>> ilities/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::type, typename
>> std::decay::type>::value
>>  >::type;
>>
>> -template  class Templ, class Other>
>> -struct is_specialization : std::false_type {};
>> +template 
>> +struct is_specialization;
>>
>> -template  class Templ, int ID>
>> -struct is_specialization > : std::true_type {};
>> +template  class Templ, int ID1, class Other>
>> +struct is_specialization, Other> : std::false_type {};
>>
>> -template  class Templ, class Other>
>> +template  class Templ, int ID1, int ID2>
>> +struct is_specialization, Templ > : std::true_type {};
>> +
>> +template 
>>  using EnableIfSpecialization = typename std::enable_if<
>>  is_specialization::type >::value
>>>::type;
>>
>> +template  struct TrackingDeleter;
>> +template  struct ConstTrackingDeleter;
>> +
>>  template 
>>  struct TrackingDeleter {
>>TrackingDeleter() : arg_type(&makeArgumentID<>()) {}
>>
>>
>> ___
>> cfe-commits mailing list
>> cfe-commits@lists.llvm.org
>> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
>>
>
>
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


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

2017-04-16 Thread Nico Weber via cfe-commits
Is that bug filed?

On Sat, Apr 15, 2017 at 10:47 PM, Eric Fiselier via cfe-commits <
cfe-commits@lists.llvm.org> wrote:

> 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::type, typename
> std::decay::type>::value
>  >::type;
>
> -template  class Templ, class Other>
> -struct is_specialization : std::false_type {};
> +template 
> +struct is_specialization;
>
> -template  class Templ, int ID>
> -struct is_specialization > : std::true_type {};
> +template  class Templ, int ID1, class Other>
> +struct is_specialization, Other> : std::false_type {};
>
> -template  class Templ, class Other>
> +template  class Templ, int ID1, int ID2>
> +struct is_specialization, Templ > : std::true_type {};
> +
> +template 
>  using EnableIfSpecialization = typename std::enable_if<
>  is_specialization::type >::value
>>::type;
>
> +template  struct TrackingDeleter;
> +template  struct ConstTrackingDeleter;
> +
>  template 
>  struct TrackingDeleter {
>TrackingDeleter() : arg_type(&makeArgumentID<>()) {}
>
>
> ___
> cfe-commits mailing list
> cfe-commits@lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
>
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


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

2017-04-15 Thread Eric Fiselier via cfe-commits
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::type, typename 
std::decay::type>::value
 >::type;
 
-template  class Templ, class Other>
-struct is_specialization : std::false_type {};
+template 
+struct is_specialization;
 
-template  class Templ, int ID>
-struct is_specialization > : std::true_type {};
+template  class Templ, int ID1, class Other>
+struct is_specialization, Other> : std::false_type {};
 
-template  class Templ, class Other>
+template  class Templ, int ID1, int ID2>
+struct is_specialization, Templ > : std::true_type {};
+
+template 
 using EnableIfSpecialization = typename std::enable_if<
 is_specialization::type >::value
   >::type;
 
+template  struct TrackingDeleter;
+template  struct ConstTrackingDeleter;
+
 template 
 struct TrackingDeleter {
   TrackingDeleter() : arg_type(&makeArgumentID<>()) {}


___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits