// PR c++/44908 // { dg-options "-std=c++0x" } #include struct A { }; struct B : public virtual A { }; template class mini_is_convertible { typedef char one; typedef struct { char arr[2]; } two; template static void test_aux(To1); template static decltype(test_aux(std::declval()), one()) test(int); template static two test(...); public: static const bool value = sizeof(test(0)) == 1; }; template const bool mini_is_convertible::value; static_assert (!mini_is_convertible::value, ""); static_assert (!mini_is_convertible::value, ""); static_assert (!mini_is_convertible::value, ""); static_assert (!mini_is_convertible::value, "");