delegates icon indicating copy to clipboard operation
delegates copied to clipboard

New system requires class as part of the type

Open Gerharddc opened this issue 9 years ago • 7 comments

I am not sure if this was intentional but the new implementation requires that the type of the class be part of the template type for member functions. This was not the case with the previous implementation. In other words, the type of a delegate now restricts it for use on a certain type.

I would assume that this is not part of the plan because if this is allowable then the concept of this delegate system does not make it any more useful than standard C++ member function pointers. Or am I missing something?

Gerharddc avatar Aug 22 '15 18:08 Gerharddc

I have to agree with this, the fact that the type of the caller appears in the type of the delegate seems to defeat the whole purpose of the delegate...

If I say, for example

void set_delegate(delegate<void (*) (int, int)>) {
//...store the delegate somewhere
}

then

set_delegate(make_delegate(&MyClass::foo, myClassInstance));

does not compile.

timoalho avatar Jun 11 '16 12:06 timoalho

+1, bitten with this. You should at least change the examples on the front page because they give hope that the delegate is able to do this.

jcelerier avatar Jul 22 '16 19:07 jcelerier

@marcmo Wouldn't C++17's template argument deduction help overcome this ?

jcelerier avatar Nov 22 '16 10:11 jcelerier

you are of course right guys...I overlooked this in my enthusiasm to get rid of some template syntax by using macros... will probably switch back to using the more verbose but working syntax. @jcelerier C++17 might help but then again this library was meant to be used in scenarios where you cannot expect more then C++98 => highly portable but still really good performance.

marcmo avatar Nov 23 '16 07:11 marcmo

just noticed this as well, any plans on maybe providing a working branch or tag a certain commit in which it was working as described in this issue?

koemeet avatar Dec 31 '17 19:12 koemeet

Hi @koemeet, I will provide an updated version soon. totally forgot about it.

marcmo avatar Jan 02 '18 19:01 marcmo

Hi @marcmo! Was this issue dropped or do you still have plans to update the class?

hparracho avatar Mar 30 '18 22:03 hparracho