
This works on gcc3.3 and gcc4.0 (OSX) but doesn't compile on vc8.0 I'm wondering whether it should and I've just messed up somewhere installing boost 1.33 or vc8 (VS 2005). I noted that the regression test does not perform this form of disconnect, is that the manual telling me this isn't supported? I get a very similar error if I try a functor (using bind) rather than example below ~ "can't convert to 'const int'". There's some comments in signal_template.hpp that indicate vc 6.0 and 7.0 have problems with this, maybe that #ifdef needs to include vc8? cheers, - James. #include <iostream> #include <boost/signals.hpp> void rfun() { std::cerr << "Hello World\n"; } int _tmain(int argc, char* argv[]) { boost::signal<void()> sig; sig.connect(&rfun); sig.disconnect(&rfun); return 0; } 1>------ Build started: Project: testsignals, Configuration: Debug Win32 ------ 1>Compiling... 1>testsignals.cpp 1>i:\testsignals\testsignals.cpp(19) : error C2664: 'boost::signal0<R,Combiner,Group,GroupCompare,SlotFunction>::disconnect' : cannot convert parameter 1 from 'void (__cdecl *)(void)' to 'const int &' 1> with 1> [ 1> R=void, 1> Combiner=boost::last_value<void>, 1> Group=int, 1> GroupCompare=std::less<int>, 1> SlotFunction=boost::function<void (void)> 1> ] 1> Reason: cannot convert from 'void (__cdecl *)(void)' to 'const int' 1> There is no context in which this conversion is possible

James Burgess wrote:
This works on gcc3.3 and gcc4.0 (OSX) but doesn't compile on vc8.0 I'm wondering whether it should and I've just messed up somewhere installing boost 1.33 or vc8 (VS 2005). I noted that the regression test does not perform this form of disconnect, is that the manual telling me this isn't supported? I get a very similar error if I try a functor (using bind) rather than example below ~ "can't convert to 'const int'". There's some comments in signal_template.hpp that indicate vc 6.0 and 7.0 have problems with this, maybe that #ifdef needs to include vc8?
The version check in signal_template.hpp is wrong, it says 0x1700 when it actually seems to mean 1300. VC8 is 1400, so disconnects of this form are disabled on it. This appears to be a bug and I already reported it on the developer list.
participants (2)
-
James Burgess
-
Peter Dimov