+ typedef void CleanupFunc(int);
+
+ int slot;
+ CleanupFunc *cleanup;
+
+public:
+ template<typename T>
+ Bind(T *o) { init(o); }
+
+ template<typename T>
+ Bind(const T *o) { init(o); }
+
+ template<typename T>
+ Bind(const T &o) { init(&o); }
+
+ template<typename T, typename S>
+ Bind(T *o, S s) { init(o, s); }
+
+ template<typename T, typename S>
+ Bind(const T *o, S s) { init(o, s); }
+
+ template<typename T, typename S>
+ Bind(const T &o, S s) { init(&o, s); }