Thread overview | ||||||
---|---|---|---|---|---|---|
|
March 27, 2005 Initializers | ||||
---|---|---|---|---|
| ||||
Hello, I would like to accomplish the following: float[3][4] vertices = [ [1.0, 1.0, 0.0], [-1.0, 1.0, 0.0], [-1.0, -1.0, 0.0], [1.0, -1.0, 0.0] ]; This does not work, errors about static initializers with nonstatic types. Great, so vathix tells me to do: const float[3][4] _vertices_init = [ [1.0, 1.0, 0.0], [-1.0, 1.0, 0.0], [-1.0, -1.0, 0.0], [1.0, -1.0, 0.0] ]; float[3][4] vertices = _vertices_init; This does not work. Setting it to .dup does not work, slicing it does not work. The errors are cannot convert float[3][4] to float. This is silly, why can't we use an initializer with a non-static types?! |
March 27, 2005 Re: Initializers | ||||
---|---|---|---|---|
| ||||
Posted in reply to Sha Chancellor | On Sun, 27 Mar 2005 22:36:23 +0000 (UTC), Sha Chancellor wrote: > const float[3][4] _vertices_init = [ [1.0, 1.0, 0.0], [-1.0, 1.0, 0.0], [-1.0, > -1.0, 0.0], [1.0, -1.0, 0.0] ]; > float[3][4] vertices = _vertices_init; Does this help? ... import std.stdio; const float[3][4] _vertices_init = [ [1.0, 1.0, 0.0], [-1.0, 1.0, 0.0], [-1.0,-1.0, 0.0], [1.0, -1.0, 0.0] ]; void main() { float[3][] vertices = _vertices_init; foreach(int i, float[3] x; vertices) foreach(int j, float y; x) writefln("[%d, %d] = %f", i,j,y); } -- Derek Parnell Melbourne, Australia 28/03/2005 8:47:10 AM |
March 27, 2005 Re: Initializers | ||||
---|---|---|---|---|
| ||||
Posted in reply to Derek Parnell | Thanks, and my second question: Why areinitializers for non-static variables disallowed? They work in C... In article <l37tprk1d2m.1tckucfcgfzs$.dlg@40tude.net>, Derek Parnell says... > >On Sun, 27 Mar 2005 22:36:23 +0000 (UTC), Sha Chancellor wrote: > >> const float[3][4] _vertices_init = [ [1.0, 1.0, 0.0], [-1.0, 1.0, 0.0], [-1.0, >> -1.0, 0.0], [1.0, -1.0, 0.0] ]; >> float[3][4] vertices = _vertices_init; > >Does this help? ... > >import std.stdio; >const float[3][4] _vertices_init = [ [1.0, 1.0, 0.0], [-1.0, 1.0, 0.0], > [-1.0,-1.0, 0.0], [1.0, -1.0, 0.0] ]; >void main() >{ > float[3][] vertices = _vertices_init; > > foreach(int i, float[3] x; vertices) > foreach(int j, float y; x) > writefln("[%d, %d] = %f", i,j,y); >} > > >-- >Derek Parnell >Melbourne, Australia >28/03/2005 8:47:10 AM |
March 28, 2005 Re: Initializers | ||||
---|---|---|---|---|
| ||||
Posted in reply to Sha Chancellor | On Sun, 27 Mar 2005 23:20:25 +0000 (UTC), Sha Chancellor <Sha_member@pathlink.com> wrote: > Thanks, and my second question: Why areinitializers for non-static variables > disallowed? They work in C... IIRC they will be allowed, Walter just hasn't implemented them yet. Regan > In article <l37tprk1d2m.1tckucfcgfzs$.dlg@40tude.net>, Derek Parnell says... >> >> On Sun, 27 Mar 2005 22:36:23 +0000 (UTC), Sha Chancellor wrote: >> >>> const float[3][4] _vertices_init = [ [1.0, 1.0, 0.0], [-1.0, 1.0, 0.0], [-1.0, >>> -1.0, 0.0], [1.0, -1.0, 0.0] ]; >>> float[3][4] vertices = _vertices_init; >> >> Does this help? ... >> >> import std.stdio; >> const float[3][4] _vertices_init = [ [1.0, 1.0, 0.0], [-1.0, 1.0, 0.0], >> [-1.0,-1.0, 0.0], [1.0, -1.0, 0.0] ]; >> void main() >> { >> float[3][] vertices = _vertices_init; >> >> foreach(int i, float[3] x; vertices) >> foreach(int j, float y; x) >> writefln("[%d, %d] = %f", i,j,y); >> } >> >> >> -- >> Derek Parnell >> Melbourne, Australia >> 28/03/2005 8:47:10 AM > > |
Copyright © 1999-2021 by the D Language Foundation