September 13, 2003 Automatic initialization | ||||
---|---|---|---|---|
| ||||
Automatic initialization of variables can prevent some bugs, but it leads to slower code if the compiler isn't smart enough to understand where it is not necessary. IMO there should be a way to tell the compiler not to initialize a specific variable. For example: noinit int a; // declares an int and prevent it to be initialized to int.init noinit struct S { int a, b; } S s; // s won't be automatically initialized // (there can be a method Struct.init() that initializes it // with constant and/or not-constant values.) |
September 14, 2003 Re: Automatic initialization | ||||
---|---|---|---|---|
| ||||
Posted in reply to Dario | "Dario" <Dario_member@pathlink.com> wrote in message news:bjvj92$1j17$1@digitaldaemon.com... > Automatic initialization of variables can prevent some bugs, but it leads to slower code if the compiler isn't smart enough to understand where it is not necessary. > > IMO there should be a way to tell the compiler not to initialize a specific variable. For example: > > noinit int a; > // declares an int and prevent it to be initialized to int.init > > noinit struct S > { int a, b; } > S s; > // s won't be automatically initialized > // (there can be a method Struct.init() that initializes it > // with constant and/or not-constant values.) I understand your concern, but the compiler can nearly always remove any redundant initializations, and the cases it can't do it on are uncommon and not worth worrying about. Those sorts of optimizations are called "dead assignment elimination". |
Copyright © 1999-2021 by the D Language Foundation