| // PR c++/106784 | |
| // { dg-do compile { target c++11 } } | |
| #define SA(X) static_assert((X),#X) | |
| struct A { }; | |
| struct B { }; | |
| struct M { | |
| operator A(); | |
| operator B() noexcept; | |
| M(const A&); | |
| M(const B&) noexcept; | |
| }; | |
| SA(!__is_nothrow_convertible(A, M)); | |
| SA(!__is_nothrow_convertible(M, A)); | |
| SA(__is_nothrow_convertible(B, M)); | |
| SA(__is_nothrow_convertible(M, B)); |