curimit / SugarCpp

SugarCpp is a language which can compile to C++11.
135 stars 13 forks source link

C++11 Initializer Lists #36

Open ozra opened 9 years ago

ozra commented 9 years ago

I humbly propose two alternative syntaxes:

Alternative 1:

class SomeClass
    SomeClass(int a, int b)
        : a {a}
        : b {(a + b) / 2}

        if a > 9
            d.seed(47)
        elif a > 3
            d.seed(23)
        else
            d.seed(13)

        c = d.rnd()

    a : real
    b : real32
    c : real
    d : SomeRandomizer

Alternative 2:

class SomeClass
    SomeClass(int a, int b)
        [init]
        a {a}
        b {(a + b) / 2}

        [construct]
        if a > 9
            d.seed(47)
        elif a > 3
            d.seed(23)
        else
            d.seed(13)

        c = d.rnd()

    a : real
    b : real32
    c : real
    d : SomeRandomizer

I prefer the first one.