[Issue 10843] Combinatorial problem of struct & alias this & null

d-bugmail at puremagic.com d-bugmail at puremagic.com
Sat Aug 17 23:53:50 PDT 2013


http://d.puremagic.com/issues/show_bug.cgi?id=10843


Maxim Fomin <maxim at maxim-fomin.ru> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
                 CC|                            |maxim at maxim-fomin.ru
         Resolution|                            |INVALID


--- Comment #1 from Maxim Fomin <maxim at maxim-fomin.ru> 2013-08-17 23:53:49 PDT ---
This is invalid report in all there cases.

1) is implicit construction for which constructor with respective arguments
should be defined (as provided in second example). 

2) is implicit construction on argument passing for which variardic functions
do exists. Spec is explicit that for such cases ctor is required.

3) same as #2 with difference that now function is a ctor

This is compilable:
unittest
{
    static struct HANDLE
    {
        void* h;
        alias h this;
    }

    //HANDLE a = null;             // NG
    HANDLE a;
    a = null;                      // OK
}

unittest
{
    static struct HANDLE
    {
        void* h;
        alias h this;
        this(void* h) { this.h = h; }
    }
    HANDLE a = null;               // OK
    static void foo(HANDLE h ...){}
    foo(null);                   // OK
}

unittest
{
    static struct HANDLE
    {
        void* h;
        alias h this;
        this(void* h) { this.h = h; }
    }
    static struct WSAEVENT
    {
        HANDLE h;
        alias h this;
        this(HANDLE h ...) { this.h = h; }
    }
    auto a = cast(HANDLE)null;     // OK
    auto b = cast(WSAEVENT)null; // OK
}

void main() {}

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------


More information about the Digitalmars-d-bugs mailing list