re PR c++/65133 ([C++11] Result type deduction proceeds even though argument deduction fails)

2015-05-12  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/65133
	* g++.dg/cpp0x/trailing10.C: New.

From-SVN: r223047
This commit is contained in:
Paolo Carlini 2015-05-12 09:03:04 +00:00 committed by Paolo Carlini
parent 731261c334
commit cb2e147086
2 changed files with 38 additions and 0 deletions

View File

@ -1,3 +1,8 @@
2015-05-12 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/65133
* g++.dg/cpp0x/trailing10.C: New.
2015-05-12 Richard Biener <rguenther@suse.de>
* gcc.dg/vect/bb-slp-35.c: New testcase.

View File

@ -0,0 +1,33 @@
// PR c++/65133
// { dg-do compile { target c++11 } }
template<bool, typename Tp = void>
struct enable_if { };
template<typename Tp>
struct enable_if<true, Tp> { typedef Tp type; };
template <int I>
struct count
{
using type = typename count<I-1>::type;
};
template <>
struct count<0>
{
using type = void;
};
template <int I>
auto foo(typename enable_if<(I>=0)>::type *
= nullptr) -> typename count<I>::type { }
template <int I>
void foo(typename enable_if<(I<0)>::type * = nullptr) { }
int main()
{
foo<2>();
foo<-1>();
}