// PR c++/89622 | |
// { dg-do compile { target c++11 } } | |
// { dg-options "-Wno-system-headers -w" } | |
// { dg-bogus "says that these are ambiguous" "" { target *-*-* } 0 } | |
// { dg-bogus "candidate 1" "" { target *-*-* } 0 } | |
// { dg-bogus "candidate 2" "" { target *-*-* } 0 } | |
# 3 "pr89622.h" 3 | |
template<typename T> | |
struct X | |
{ | |
X() { } | |
template<typename U> X(int, U&&) { } | |
template<typename U> X(char, const X<U>&) { } | |
}; | |
template<typename T> | |
X<T> wrap_X(X<T> x) | |
{ | |
return X<T>('a', x); | |
} | |
int main() | |
{ | |
X<void> x; | |
wrap_X(x); | |
} |