U++ framework
Do not panic. Ask here before giving up.

Home » U++ Library support » U++ Callbacks and Timers » [REQUEST]: Allow callback() template to work also with non-void and non-bool return types.
[REQUEST]: Allow callback() template to work also with non-void and non-bool return types. [message #48764] Tue, 12 September 2017 00:49 Go to next message
Oblivion is currently offline  Oblivion
Messages: 1264
Registered: August 2007
Senior Contributor
Hello,

It seems that callback() template function isn't working with return types other than bool or void.
Is this intentional? Or is it possible to replace it with a more flexible one?

If so, maybe the below template function can do the job (IF I am not missing something here).

template<typename Res, typename... ArgTypes>
Function<Res(ArgTypes...)> callback(Res (*fn)(ArgTypes...))
{
	return [=](ArgTypes... args) { return (*fn)(args...); };
}



Best regards,
Oblivion


[Updated on: Tue, 12 September 2017 01:01]

Report message to a moderator

Re: [REQUEST]: Allow callback() template to work also with non-void and non-bool return types. [message #48775 is a reply to message #48764] Wed, 13 September 2017 19:15 Go to previous message
mirek is currently offline  mirek
Messages: 14290
Registered: November 2005
Ultimate Member
Oblivion wrote on Tue, 12 September 2017 00:49
Hello,

It seems that callback() template function isn't working with return types other than bool or void.
Is this intentional? Or is it possible to replace it with a more flexible one?

If so, maybe the below template function can do the job (IF I am not missing something here).

template<typename Res, typename... ArgTypes>
Function<Res(ArgTypes...)> callback(Res (*fn)(ArgTypes...))
{
	return [=](ArgTypes... args) { return (*fn)(args...); };
}


Best regards,
Oblivion


Callback is deprecated. Use Function.

[Updated on: Wed, 13 September 2017 19:15]

Report message to a moderator

Previous Topic: THISBACK and inheritance
Next Topic: How to properly set a timer
Goto Forum:
  


Current Time: Sat Apr 25 17:14:30 GMT+2 2026

Total time taken to generate the page: 0.00542 seconds