From 7f1001af7f90d44ea97b6ff6095f207cbab6ee13 Mon Sep 17 00:00:00 2001 From: Paolo Carlini Date: Thu, 31 Oct 2013 12:10:20 +0000 Subject: re PR c++/58932 ([C++11] Deleted functions and SFINAE in partial template specializations) /cp 2013-10-31 Paolo Carlini PR c++/58932 Revert: 2013-10-18 Paolo Carlini PR c++/58466 * pt.c (most_specialized_class): Bump processing_template_decl for get_class_bindings. /testsuite 2013-10-31 Paolo Carlini PR c++/58932 Revert: 2013-10-18 Paolo Carlini PR c++/58466 * g++.dg/cpp0x/variadic145.C: New. * g++.dg/cpp0x/sfinae49.C: New. From-SVN: r204252 --- gcc/testsuite/g++.dg/cpp0x/sfinae49.C | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 gcc/testsuite/g++.dg/cpp0x/sfinae49.C diff --git a/gcc/testsuite/g++.dg/cpp0x/sfinae49.C b/gcc/testsuite/g++.dg/cpp0x/sfinae49.C new file mode 100644 index 0000000..59381f3 --- /dev/null +++ b/gcc/testsuite/g++.dg/cpp0x/sfinae49.C @@ -0,0 +1,29 @@ +// PR c++/58932 +// { dg-do compile { target c++11 } } + +using nullptr_t = decltype(nullptr); + +template +struct B { + static float& int_if_addable(); +}; + +template +struct B { + static int& int_if_addable(); +}; + +struct X { }; + +struct Y { }; +Y operator+(Y, Y); + +struct Z { }; +Z operator+(Z, Z) = delete; + +int main() +{ + float& a = B::int_if_addable(); + int& b = B::int_if_addable(); + float& c = B::int_if_addable(); +} -- cgit v1.1