Re: [libcxx] r300411 - Workaround Clang bug regarding template template parameters
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
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
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