// PR c++/48450 // { dg-do compile { target c++11 } } namespace std { template T&& declval(); } template(std::declval())) > char f(int); template char (&f(...))[2]; struct A { virtual ~A() = 0; }; struct B {}; struct D : B {}; static_assert(sizeof(f(0)) != 1, "Error"); // a static_assert(sizeof(f(0)) != 1, "Error"); // b static_assert(sizeof(f(0)) != 1, "Error"); // c static_assert(sizeof(f(0)) != 1, "Error"); // d static_assert(sizeof(f(0)) != 1, "Error"); // e