■
俺は断乎として、しーぷるぷるを遂行する。職場で孤立したとしても(孤立してるんだが)、これだけは譲れない。だけど、これくらいのコードは解してくれたっていいじゃない?
#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;
}