Thread overview
Class member function with a Callback funtion parameter
Jan 27, 2020
Herbert
Jan 27, 2020
Adam D. Ruppe
Jan 27, 2020
Herbert
Jan 27, 2020
H. S. Teoh
Jan 27, 2020
Herbert
January 27, 2020
My project does not allow dynamic memory. So I can't use delegates.

How can I declare a class member function with a callback function pointer?



January 27, 2020
On Monday, 27 January 2020 at 21:21:55 UTC, Herbert wrote:
> My project does not allow dynamic memory. So I can't use delegates.

delegates do not require dynamic memory.

&obj.member doesn't allocate any new memory (it just points to the existing object) yet yields a delegate.
January 27, 2020
On Monday, 27 January 2020 at 21:51:35 UTC, Adam D. Ruppe wrote:
> On Monday, 27 January 2020 at 21:21:55 UTC, Herbert wrote:
>> My project does not allow dynamic memory. So I can't use delegates.
>
> delegates do not require dynamic memory.
>
> &obj.member doesn't allocate any new memory (it just points to the existing object) yet yields a delegate.

As I understand the D language documentation says: delegates sometimes use dynamic memory.


January 27, 2020
On Mon, Jan 27, 2020 at 10:13:47PM +0000, Herbert via Digitalmars-d-learn wrote:
> On Monday, 27 January 2020 at 21:51:35 UTC, Adam D. Ruppe wrote:
> > On Monday, 27 January 2020 at 21:21:55 UTC, Herbert wrote:
> > > My project does not allow dynamic memory. So I can't use delegates.
> > 
> > delegates do not require dynamic memory.
> > 
> > &obj.member doesn't allocate any new memory (it just points to the existing object) yet yields a delegate.
> 
> As I understand the D language documentation says: delegates sometimes use dynamic memory.

Only if you're using a lambda or a delegate that captures local variables.


T

-- 
Fact is stranger than fiction.
January 27, 2020
On Monday, 27 January 2020 at 22:20:42 UTC, H. S. Teoh wrote:
> On Mon, Jan 27, 2020 at 10:13:47PM +0000, Herbert via Digitalmars-d-learn wrote:
>> On Monday, 27 January 2020 at 21:51:35 UTC, Adam D. Ruppe wrote:
>> > On Monday, 27 January 2020 at 21:21:55 UTC, Herbert wrote:
>> > > My project does not allow dynamic memory. So I can't use delegates.
>> > 
>> > delegates do not require dynamic memory.
>> > 
>> > &obj.member doesn't allocate any new memory (it just points to the existing object) yet yields a delegate.
>> 
>> As I understand the D language documentation says: delegates sometimes use dynamic memory.
>
> Only if you're using a lambda or a delegate that captures local variables.
>
>
> T

Chapter "Memory Management":

"D has built-in types that may be difficult to use without the GC: exceptions, strings, dynamic arrays, associative arrays, and delegate closures."

I would like to do something like this:

interface Timer
{
    void delegate pCallbackFunction(void);

    this();
    void Start(ushort milliseconds, pCallbackFunction);
    void Halt();
    void Restart();
}