int main(int, char**) { test_sfinae(); { std::unique_ptr<B> bptr(new B); std::unique_ptr<A> aptr(new A); testAssign(aptr, bptr); } assert(A::count == 0); assert(B::count == 0); { Deleter<B> del(42); std::unique_ptr<B, Deleter<B> > bptr(new B, std::move(del)); std::unique_ptr<A, Deleter<A> > aptr(new A); testAssign(aptr, bptr); checkDeleter(aptr, bptr, 42, 0); } assert(A::count == 0); assert(B::count == 0); { CDeleter<A> adel(6); CDeleter<B> bdel(42); std::unique_ptr<B, CDeleter<B>&> bptr(new B, bdel); std::unique_ptr<A, CDeleter<A>&> aptr(new A, adel); testAssign(aptr, bptr); checkDeleter(aptr, bptr, 42, 42); } assert(A::count == 0); assert(B::count == 0); return 0; }
int main() { test_sfinae(); }
int main() { test_sfinae(); // FIXME: add tests }