俺は断乎として、しーぷるぷるを遂行する。職場で孤立したとしても(孤立してるんだが)、これだけは譲れない。だけど、これくらいのコードは解してくれたっていいじゃない?

#include <deque>
#include <iostream>
#include <boost/bind.hpp>
#include <boost/checked_delete.hpp>

class Base {
public:
virtual ~Base() {}
virtual void act() =0;
};

class A : public Base {
public:
virtual void act() { std::cout << "A" << std::endl; }
};

class B : public Base {
public:
virtual void act() { std::cout << "B" << std::endl; }
};

class Sequence {
std::deque<Base*> deque_;
public:
~Sequence() {
std::for_each(
deque_.begin(),
deque_.end (),
boost::checked_deleter<Base>());
}

void add_item(Base* base) {
deque_.push_back(base);
}

void act() {
std::for_each(
deque_.begin(),
deque_.end (),
boost::bind(&Base::act, _1));
}
};

int
main(int, char* []) {

Sequence seq;
seq.add_item(new A());
seq.add_item(new A());
seq.add_item(new A());
seq.add_item(new B());
seq.add_item(new B());
seq.add_item(new B());
seq.act();

return 0;
}