#ifndef WEAPON_HPP #define WEAPON_HPP #include #include class Foo { public: virtual ~Foo(); }; class Weapon: public Foo { public: Weapon(int i) { dummy=i; } virtual void fire() = 0; virtual ~Weapon() {} int dummy; }; namespace boost { namespace plugin { template<> struct virtual_constructors { typedef mpl::list< mpl::list, mpl::list, mpl::list > type; }; }} #endif