
sorry, i forgot to delete the quotes. and btw, i'd like to give a simple example of my delegate implementation. example.cc #include <stdio.h> #include "delegate.h" const char* bar = "##########################################"; void native_func(int value) { printf("%s\n", bar); printf("native function, value = %d\n", value); } class Object { public: static void static_member_func(int value) { printf("%s\n", bar); printf("static member function, value = %d\n", value); } void non_const_member_func(int value) { printf("%s\n", bar); printf("non-const member function, value = %d\n", value); } void const_member_func(int value) const { printf("%s\n", bar); printf("const member function, value = %d\n", value); } }; class Functor { public: void operator()(int value) { printf("%s\n", bar); printf("non-const functor, value = %d\n", value); } }; class ConstFunctor { public: void operator()(int value) const { printf("%s\n", bar); printf("const functor, value = %d\n", value); } }; int main() { typedef wan::delegate<void(int)> MyDelegate; Object obj; Functor functor; ConstFunctor constFunctor; MyDelegate dele; dele.add(&native_func); dele.add(&Object::static_member_func); dele.add(&obj, &Object::non_const_member_func); dele.add(&obj, &Object::const_member_func); dele.add(&functor); dele.add(&constFunctor); dele(111); printf("%s\n", bar); printf("\n\nafter remove operations\n\n"); dele.remove(&native_func); dele.remove(&obj, &Object::non_const_member_func); dele(222); printf("%s\n", bar); printf("\n\nadd delegate object to delegate object\n\n"); MyDelegate temp; temp.add(&native_func); temp.add(&obj, &Object::non_const_member_func); dele.add(&temp); dele(333); printf("%s\n", bar); } $ g++ example.cc -o test $ ./test ########################################## native function, value = 111 ########################################## static member function, value = 111 ########################################## non-const member function, value = 111 ########################################## const member function, value = 111 ########################################## non-const functor, value = 111 ########################################## const functor, value = 111 ########################################## after remove operations ########################################## static member function, value = 222 ########################################## const member function, value = 222 ########################################## non-const functor, value = 222 ########################################## const functor, value = 222 ########################################## add delegate object to delegate object ########################################## static member function, value = 333 ########################################## const member function, value = 333 ########################################## non-const functor, value = 333 ########################################## const functor, value = 333 ########################################## native function, value = 333 ########################################## non-const member function, value = 333 ########################################## $ thanks, Kevin On 2/11/06, Martin Wille <mw8329@yahoo.com.au> wrote:
Kevin Wan wrote:
[lots of quoted text]
Please don't overquote and don't put quotes at the bottom of your message. See http://boost.org/more/discussion_policy.htm#effective
Regards, m Send instant messages to your online friends http://au.messenger.yahoo.com _______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
-- Things don't just happen, you have to make them happen.