// PR c++/48450 // { dg-options -std=c++0x } 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