// PR c++/81952
// { dg-do run { target c++11 } }
template <class T>
struct opt {
    opt() { }
    opt(opt const& ) { __builtin_abort (); }
    opt(opt&& ) { __builtin_abort (); }
    template <class U>
    opt(U&& ) { }
};
struct foo 
{
    explicit operator opt<int>() { __builtin_abort (); return {}; }
};
int main()
{
    opt<int> o(foo{});
}