35. safe_addr macro¶
The safe_addr module implements safe_addr pattern, which returns temporary address of local expression.
All functions and symbols are in “safe_addr” module, use require to get access to it.
require daslib/safe_addr
35.1. Function annotations¶
-
SafeAddrMacro
¶
This macro reports an error if safe_addr is attempted on the object, which is not local to the scope. I.e. if the object can expire while in scope, with delete, garbage collection, or on the C++ side.
This macro reports an error if shared_addr is attempted on anything other that shared global variables. I.e. only global variables are safe to use with shared_addr.
35.2. Safe temporary address¶
-
safe_addr
(x: auto(T)& ==const)¶
safe_addr returns T?#
argument |
argument type |
---|---|
x |
auto(T)&! |
returns temporary pointer to the given expressio
-
safe_addr
(x: auto(T) const& ==const)
safe_addr returns T? const#
argument |
argument type |
---|---|
x |
auto(T) const&! |
returns temporary pointer to the given expressio
shared_addr returns auto
argument |
argument type |
---|---|
tab |
table<auto(KEY);auto(VAL)> const |
k |
KEY const |
returns address of the given shared variable. it’s safe because shared variables never go out of scope
-
shared_addr
(val: auto(VALUE) const&)
shared_addr returns auto
argument |
argument type |
---|---|
val |
auto(VALUE) const& |
returns address of the given shared variable. it’s safe because shared variables never go out of scope
35.3. Temporary pointers¶
-
temp_ptr
(x: auto(T)? const implicit ==const)¶
temp_ptr returns T? const#
argument |
argument type |
---|---|
x |
auto(T)? const implicit! |
returns temporary pointer from a given pointer
-
temp_ptr
(x: auto(T)? implicit ==const)
temp_ptr returns T?#
argument |
argument type |
---|---|
x |
auto(T)? implicit! |
returns temporary pointer from a given pointer