On Thursday, 14 December 2017 at 04:12:33 UTC, rikki cattermole wrote:
On 14/12/2017 3:57 AM, IM wrote:

snip

    - Is this the idiomatic way to define a singleton in D?: https://gitlab.com/3d_immortal/libdtasks/blob/master/src/tasks/TaskSystem.d#L24.

You say singleton I think wrong.

Use free-functions and globals instead.

Singletons are always a code smell that OOP based languages like to say are a 'good thing'.

e.g.

module taskmgr;
import task;

private __gshared {
        Task[] tasks;
}

Task[] getTasks() {
        return tasks;
}

void clearTasks() {
        tasks = null;
}

void addTask(Task t) {
        tasks ~= t;
}

Sure, that works too, Thanks. However, we could leave the debate about the pros and cons of singletons for another day. That's not what my question was about though.

Reply via email to