"Andrej Mitrovic" <[email protected]> wrote in message news:[email protected]... >I ran into this simple C declaration: > > float float_x, float_y, float_xb, float_yb; > > These need to be explicitly initialized in D, otherwise you either get > crashes or you won't get anything but a blank screen (with regards to > rendering with OpenGL). > > Almost instinctively I went for: > > float float_x, float_y, float_xb, float_yb = 0.0; > > But that's incorrect, only float_yb is zero-initialized, the others > are initialized to NaN (well I predicted that but I was kinda hoping D > would be cool and use a common initializer). > > What I'm asking is, are partial initializers useful for people? I'm > not suggesting any changes, but just starting a discussion. It does > look like this could maybe introduce bugs. I think someone might have > mentioned this topic before, but I don't recall. > > Here's to a healthy discussion..
It's an interesting point. I find that I rarely declare more than one variable in a single statement. But if I were to do so, then most likely they would be such similar variables that I likely would want them inited to the same value. Can't think of a good syntax for it though. "float a, b, c = 0.0;" definitely makes it look like you're only trying init 'c'. But this is an interesting inconsistency between assignments and initializations. I mean, it's trivial to *assign* multiple variables to the same value: a = b = c = 0.0; *Normally* the only syntactical difference between assignment and initialization is whether or not "x=y;" is preceeded by a type. But with multiple assignments as above, there's no initialization equivalent to that. Crazy, nutty, wacky idea... float (a, b, c) = 0.0; ...?
