On Sunday, 29 April 2012 at 01:06:54 UTC, bearophile wrote:
* I hate C style struct initializers and would really like to see them go, but for reasons that I don't understand, people actually use them rather than using a proper constructor call,

For single structs I prefer D-style initialization.
But take a look at this code, if you replace those C-style initializers with D-style, even using aliases to shorten the code to single letters, that data section becomes more noisy:
http://rosettacode.org/wiki/Ray-casting_algorithm#D

I have one source file called staticdata.d; Here immutable global data is stored. It's literally pages and pages of data and i only using static this() when building an AA.

//excerpt: /NP and VT aliases.
immutable SubRecordParts subParts[] = [
        {"AADT", "", 16, [          //alchemy (apparatus)
                NP(VT.ranged_32, "Apparatus"),
                NP(VT.float_32, "Quality"),
                NP(VT.float_32, "Weight"),
                NP(VT.i_32, "uses")]},                
        {"AODT", "", 24, [          //armor
                NP(VT.ranged_32, "Armor Body Type"),
                NP(VT.float_32, "Weight"),
                NP(VT.i_32, "Value"),
                NP(VT.i_32, "Health"),
                NP(VT.i_32, "Enchant Points"),
                NP(VT.i_32, "Armour")]},      
        {"BKDT", "", 20, [          //book
                NP(VT.float_32, "Weight"),
                NP(VT.i_32, "Value"),
                NP(VT.i_32, "isScroll"),
                NP(VT.ranged_32, "Skill ID"),
                NP(VT.i_32, "Enchantment points")]}];

Would you really force me to use fully named and qualified for every element? More verbose but helps not at all.

immutable SubRecordParts subParts[] = [
        SubRecordParts("AADT", "", 16, [            //alchemy (apparatus)
                NotePart(ValueType.ranged_32, "Apparatus"),
                NotePart(ValueType.float_32, "Quality"),
                NotePart(ValueType.float_32, "Weight"),
                NotePart(ValueType.i_32, "uses")]),           
        SubRecordParts("AODT", "", 24, [            //armor
                NotePart(ValueType.ranged_32, "Armor Body Type"),
                NotePart(ValueType.float_32, "Weight"),
                NotePart(ValueType.i_32, "Value"),
                NotePart(ValueType.i_32, "Health"),
                NotePart(ValueType.i_32, "Enchant Points"),
                NotePart(ValueType.i_32, "Armour")]), 
        SubRecordParts("BKDT", "", 20, [            //book
                NotePart(ValueType.float_32, "Weight"),
                NotePart(ValueType.i_32, "Value"),
                NotePart(ValueType.i_32, "isScroll"),
                NotePart(ValueType.ranged_32, "Skill ID"),
                NotePart(ValueType.i_32, "Enchantment points")])
        ];

Reply via email to