Remus

Namespace rswhite4 at googlemail.com
Tue Dec 4 14:00:34 PST 2012


Last pull today. Romulus is ready to use/test. A website and 
documentation coming soon and then I need some help to write it 
in english. But first I hope that some of you could test it.

Here a brief overview:
  - not null references. Syntax: Object& obj
  - final variables. mutable access, but not rebindable. Syntax: 
final Object obj
  - readonly variables, even called "lazy const". constant 
variable, not rebindable but value must not assign by 
declaration. Syntax: readonly int i;
  - Elvis operator. Short ternary operator.
Syntax:
Object o;
// ...
o = o ?: new Object();

  - Not null safe invocation. Syntax: a?.b?.c will be converted to:
if (a && a.b) a.b.c. (works only with identifiers).

- Scoped arrays. scoped and static/stack array with the ability, 
that their size could be a runtime value. You can resize them, 
but if you do and if the capacity is fully used, it is 
reallocated on the heap. After leaving scope the memory is 
automatically destroyed, even if you have reallocated memory on 
the heap.
Syntax:
scope byte[4] arr1;
int i = 4;
scope byte[i] arr2;


More information about the Digitalmars-d-announce mailing list