DMD 1.035 and 2.019 releases

Max Samukha samukha at voliacable.com.removethis
Wed Sep 3 00:32:37 PDT 2008


On Tue, 02 Sep 2008 22:42:06 -0700, Walter Bright
<newshound1 at digitalmars.com> wrote:

>Struct constructors!
>
>http://www.digitalmars.com/d/1.0/changelog.html
>http://ftp.digitalmars.com/dmd.1.035.zip
>
>http://www.digitalmars.com/d/2.0/changelog.html
>http://ftp.digitalmars.com/dmd.2.019.zip

Thanks! Two questions about the struct constructors:

1. Why is there the limitation that the constructor list may not be
empty? One problem with that rule is incorrect handling of a single
parameter with a default value:

    struct S
    {
        this(int x = 1)
        {
            writefln("Ctor");
        }
    }

    S s = S();

The constructor is not called. Is such a parameter list considered
empty or non-empty?


2. How do constructiors affect static opCalls?

struct S
{
	this(int x)
	{
	}

	static void opCall(int x, int y)
	{
	}
}

S s;
s(1, 2); 

Error: constructor Test.main.S.this (int x) does not match parameter
types (int,int)


dmd seems to ignore static opCalls completely, if there is a
constructor. Is it intended behavior?


More information about the Digitalmars-d-announce mailing list