// PR c++/95066 - explicit malfunction with dependent expression. | |
// { dg-do compile { target c++20 } } | |
template <typename T> | |
struct Foo { | |
template <typename U> | |
explicit(static_cast<U>(true)) operator Foo<U>(); | |
}; | |
template <typename T> | |
template <typename U> | |
Foo<T>::operator Foo<U>() { | |
return {}; | |
} | |
int | |
main () | |
{ | |
Foo<float> a; | |
Foo<int> b = a; // { dg-error "conversion" } | |
} |