#include <iostream>
#include <list>

class Whine {
public:
    Whine() {
        std::cout << this << ": Whine constructed." << std::endl;
    }

    ~Whine() {
        std::cout << this << ": Whine destroyed." << std::endl;
    }
};

int main()
{
    std::list<Whine *> wl;

    wl.push_back(new Whine);
    wl.push_back(new Whine);
    wl.push_back(new Whine);

    for (std::list<Whine *>::const_iterator it = wl.begin(); it != wl.end(); ++it)
        delete *it;

    wl.clear();
}