#include <iostream>
struct Deleter {
template <class T> Deleter & operator , (T *p) {
delete p;
return *this;
}
operator void *() {
return 0;
}
} d;
struct Test {
Test() { std::cout << "Test::Test()" << std::endl; }
~Test() { std::cout << "Test::~Test()" << std::endl; }
};
int main() {
Test &t1 = *new Test();
Test &t2 = *new Test();
delete (d, &t1, &t2);
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKc3RydWN0IERlbGV0ZXIgewogICAgdGVtcGxhdGUgPGNsYXNzIFQ+IERlbGV0ZXIgJiBvcGVyYXRvciAsIChUICpwKSB7CiAgICAgICAgZGVsZXRlIHA7CiAgICAgICAgcmV0dXJuICp0aGlzOwogICAgfQogICAgb3BlcmF0b3Igdm9pZCAqKCkgewogICAgICAgIHJldHVybiAwOwogICAgfQp9IGQ7CgpzdHJ1Y3QgVGVzdCB7CiAgICBUZXN0KCkgeyBzdGQ6OmNvdXQgPDwgIlRlc3Q6OlRlc3QoKSIgPDwgc3RkOjplbmRsOyB9CiAgICB+VGVzdCgpIHsgc3RkOjpjb3V0IDw8ICJUZXN0Ojp+VGVzdCgpIiA8PCBzdGQ6OmVuZGw7IH0KfTsKCmludCBtYWluKCkgewogICAgVGVzdCAmdDEgPSAqbmV3IFRlc3QoKTsKICAgIFRlc3QgJnQyID0gKm5ldyBUZXN0KCk7CiAgICBkZWxldGUgKGQsICZ0MSwgJnQyKTsKICAgIHJldHVybiAwOwp9