Hello,

What should the expected output be for:

   void bar(void) { }

   sigc::slot<void> foo = sigc::ptr_fun(&bar);
   foo = sigc::slot<void>();

   std::cout << bool(foo) << std::endl;

?

I get "1" (using MSVC 2008 with libsigc++ 2.2.4.2), which surprised me.  
sigc::slot_base::empty() also returns true in this case.  Is this subtle 
distinction intentional?  The documentation for operator bool says:

   "Tests whether a slot is null, because the default constructor was used."

On one hand, I didn't initialize the slot with the default constructor 
(although I did assign over it with a default-constructed slot).  On the other 
hand, I think it qualifies as a "null slot".

Thanks,

- James
_______________________________________________
libsigc-list mailing list
libsigc-list@gnome.org
http://mail.gnome.org/mailman/listinfo/libsigc-list

Reply via email to