std/decls

  Source   Edit

Macros

macro byaddr(sect)

Allows a syntax for l-value references, being an exact analog to auto& a = ex; in C++.

Warning: This makes use of 2 experimental features, namely nullary templates instantiated as symbols and variable macro pragmas. For this reason, its behavior is not stable. The current implementation allows redefinition, but this is not an intended consequence.

Example:

var s = @[10, 11, 12]
var a {.byaddr.} = s[0]
a += 100
assert s == @[110, 11, 12]
assert a is int
var b {.byaddr.}: int = s[0]
assert a.addr == b.addr
  Source   Edit