#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;
}