+ template<typename T>
+ BindRestore(T *o) { init(o); }
+
+ template<typename T>
+ BindRestore(const T *o) { init(o); }
+
+ template<typename T>
+ BindRestore(const T &o) { init(&o); }
+
+ template<typename T, typename S>
+ BindRestore(T *o, S s) { init(o, s); }
+
+ template<typename T, typename S>
+ BindRestore(const T *o, S s) { init(o, s); }
+
+ template<typename T, typename S>
+ BindRestore(const T &o, S s) { init(&o, s); }