www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.learn - Reflection: Order of fields guaranteed?

reply Nick Sabalausky <SeeWebsiteToContactMe semitwist.com> writes:
When using reflection to obtain the fields of a class/struct, is there 
any guarantee that the order is the same as the order the fields are 
defined?
Oct 20 2016
parent reply Stefan Koch <uplink.coder googlemail.com> writes:
On Friday, 21 October 2016 at 01:34:44 UTC, Nick Sabalausky wrote:
 When using reflection to obtain the fields of a class/struct, 
 is there any guarantee that the order is the same as the order 
 the fields are defined?
Yes they should always come in lexical order.
Oct 20 2016
parent Michael Coulombe <kirsybuu gmail.com> writes:
On Friday, 21 October 2016 at 01:51:44 UTC, Stefan Koch wrote:
 On Friday, 21 October 2016 at 01:34:44 UTC, Nick Sabalausky 
 wrote:
 When using reflection to obtain the fields of a class/struct, 
 is there any guarantee that the order is the same as the order 
 the fields are defined?
Yes they should always come in lexical order.
For classes, the spec disagrees, even though it might be true using current compilers. https://dlang.org/spec/class.html#fields "The D compiler is free to rearrange the order of fields in a class to optimally pack them in an implementation-defined manner. ... Explicit control of field layout is provided by struct/union types, not classes."
Oct 22 2016