www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.learn - Array initialisation from const array;

reply Spacen Jasset <spacen yahoo.co.uk> writes:
The following code prints 0. Why is this?

import std.stdio;

struct S1
{
	const float[10] i = [0,0,0,0,0,0,0,0,0,0];
	float a[10] = i;
	int y=5;
}


void main()
{
	S1	s;
	writefln(s.y);
}

DMD linux:

Digital Mars D Compiler v1.028
Copyright (c) 1999-2008 by Digital Mars written by Walter Bright
Documentation: http://www.digitalmars.com/d/1.0/index.html

And the same for 1.026 on Windows.
Mar 12 2008
parent reply Spacen Jasset <spacen yahoo.co.uk> writes:
Spacen Jasset wrote:
 The following code prints 0. Why is this?
 
 import std.stdio;
 
 struct S1
 {
     const float[10] i = [0,0,0,0,0,0,0,0,0,0];
     float a[10] = i;
     int y=5;
 }
 
 
 void main()
 {
     S1    s;
     writefln(s.y);
 }
 
 DMD linux:
 
 Digital Mars D Compiler v1.028
 Copyright (c) 1999-2008 by Digital Mars written by Walter Bright
 Documentation: http://www.digitalmars.com/d/1.0/index.html
 
 And the same for 1.026 on Windows.

I have filed bug #1914 on this. This cannot be right.
Mar 12 2008
parent Tower Ty <towerty msn.com.au> writes:
Spacen Jasset Wrote:

 Spacen Jasset wrote:
 The following code prints 0. Why is this?
 
 import std.stdio;
 
 struct S1
 {
     const float[10] i = [0,0,0,0,0,0,0,0,0,0];
     float a[10] = i;
     int y=5;
 }
 
 
 void main()
 {
     S1    s;
     writefln(s.y);
 }
 
 DMD linux:
 
 Digital Mars D Compiler v1.028
 Copyright (c) 1999-2008 by Digital Mars written by Walter Bright
 Documentation: http://www.digitalmars.com/d/1.0/index.html
 
 And the same for 1.026 on Windows.

I have filed bug #1914 on this. This cannot be right.

Did you get an answeron ths ? Same result in Tango /dmd1.028/linux
Apr 01 2008