Support executing function on return values of slots in a signal
Support executing function on return values of slots in a signal

That means that the following is possible:

  sigs::Signal<int()> s;
  s.connect([] { return 1; });
  s.connect([] { return 2; });
  s.connect([] { return 3; });

This executes the lambda with the three returned values above: 1, 2, and 3.

  s([](int retVal) { std::cout << "Return value: " << retVal << "\n"; });

It prints:
Return value: 1
Return value: 2
Return value: 3

If signal type has void return type, and a function is specified then it triggers a statis
assertion.

netromdk/sigs,netromdk/sigs,netromdk/sigs