If you only ever have one slot connected to a signal, or if you only care about the return value of the last registered one, it's quite straightforward:
sigc::signal<int> somesignal; int a_return_value; a_return_value = somesignal.emit();
If you care about every return value things are a little more complicated. See the section on Marshallers for more info.