Say I want to implement a signal system based on ordered slots and I would also be able to block the connection toward a function. To be more clear:
Case Full Connection: mysignal("string","string") this connects to both functions.
Case Selected: mysignal("string","string") sends only to func1_receiver
Case None: mysignal("string","string") blocked
So my code is something like this:
/*declaring mysignal with two string arguments*/
boost::signals2::signal<void (string,string)> mysignal;
/*declaring connections*/
boost::signals2::connection to_func_1 = mysignal.connect (0,&func1_receiver);
boost::signals2::connection to_func_2 = mysignal.connect (1,&func2_receiver);
Now if I would like to block a slot I should write:
boost::signals2::shared_connection_block block(to_func_2);
All this works fine.
If I want to block also the second slot I should cast a:
boost::signals2::shared_connection_block block(to_func_1);
Here I get an error: "redeclaration of 'boost::signals2::shared_connection_block block'"
I supposed I could block/unblock connections at will, but I'm misunderstood something.
Could someone help me ?