Thread overview
Blog Post #0105: D-specific Stuff for GUI Programming
Mar 23
drug
March 23
Today starts a new series I'm calling Snippets and it's about various D-specific stuff that may come in handy when building a GUI. You can find it right here: https://gtkdcoding.com/2020/03/23/0105-dlang-ui-snippets-i.html
March 23
On 3/23/20 1:02 PM, Ron Tarrant wrote:
> Today starts a new series I'm calling Snippets and it's about various D-specific stuff that may come in handy when building a GUI. You can find it right here: https://gtkdcoding.com/2020/03/23/0105-dlang-ui-snippets-i.html

Thank you for you efforts!
I'm waiting for your post about Observer.
March 23
On Monday, 23 March 2020 at 10:02:48 UTC, Ron Tarrant wrote:
> Today starts a new series I'm calling Snippets and it's about various D-specific stuff that may come in handy when building a GUI. You can find it right here: https://gtkdcoding.com/2020/03/23/0105-dlang-ui-snippets-i.html

If it's enough with CTFE compatible code in the constructor, the following is a much simpler version:

class DSingleton
{
    private __gshared DSingleton instance = new DSingleton;

    DSingleton get()
    {
        return instance;
    }
}

--
/Jacob Carlborg
March 23
On Monday, 23 March 2020 at 10:26:33 UTC, Jacob Carlborg wrote:

> If it's enough with CTFE compatible code in the constructor, the following is a much simpler version:
>
> class DSingleton
> {
>     private __gshared DSingleton instance = new DSingleton;
>
>     DSingleton get()
>     {
>         return instance;
>     }
> }

Or if an immutable instance work, the getter is not necessary and the instance can be exposed directly.

class DSingleton
{
    immutable DSingleton instance = new DSingleton;
}

--
/Jacob Carlborg
March 23
On Monday, 23 March 2020 at 10:41:43 UTC, Jacob Carlborg wrote:

> class DSingleton
> {
>     immutable DSingleton instance = new DSingleton;
> }

Should of course be `static`:

class DSingleton
{
    static immutable DSingleton instance = new DSingleton;
}

--
/Jacob Carlborg
March 23
On Monday, 23 March 2020 at 10:45:24 UTC, Jacob Carlborg wrote:
> On Monday, 23 March 2020 at 10:41:43 UTC, Jacob Carlborg wrote:
>
>> class DSingleton
>> {
>>     immutable DSingleton instance = new DSingleton;
>> }
>
> Should of course be `static`:
>
> class DSingleton
> {
>     static immutable DSingleton instance = new DSingleton;
> }
>
> --
> /Jacob Carlborg

Cool. Thanks, Jacob.

I can't take credit for the Singleton code, though. I stole it from here: https://wiki.dlang.org/Low-Lock_Singleton_Pattern