codepad
[
create a new paste
]
login
|
about
Language:
C
C++
D
Haskell
Lua
OCaml
PHP
Perl
Plain Text
Python
Ruby
Scheme
Tcl
#include <boost/foreach.hpp> #include <boost/ptr_container/ptr_set.hpp> #include <iostream> struct listener { virtual ~listener() {} virtual void activate() = 0; bool operator<(listener const & l) const { return this < &l; } }; template <typename Range> void listen_all(Range & listeners) { BOOST_FOREACH(listener & l, listeners) l.activate(); } struct foo_listener : listener { explicit foo_listener(std::string const & s) : name(s) {} virtual void activate() { std::cout << "Whoopee, says " << name << std::endl; } private: std::string name; }; int main() { boost::ptr_set<listener> listeners; listeners.insert(new foo_listener("first")); listeners.insert(new foo_listener("second")); listen_all(listeners); }
Private
[
?
]
Run code
Submit