Macros
- Macros are inlined each time they are called.
- Macros can have untyped parameters.
- Macros are allowed to use
varto infer the type of any variable. - Macros must start with
@when they use expression parameters. - Expression parameters start with a
#and copy the passed expression every time they are used, similar to C macro parameters except the expression must be valid before it is copied.