native 0.0.1
Vectors, masks and wide register packs for C++26
Loading...
Searching...
No Matches
Purity
Collaboration diagram for Purity:

Macros

#define native_const
 [[const]] is not const
#define native_pure
 [[pure]]

Detailed Description

Macro Definition Documentation

◆ native_const

#define native_const

[[const]] is not const

Indicates the result is entirely determined by the arguments and does not access main memory in any way, including accessing members of this

This allows the compiler to easily elide/duplicate calls, because it doesn't need to consider aliasing at all when moving this function's body around.

WHEN IN DOUBT USE native_pure, which is a much safer way to annotate pure functional code

Definition at line 108 of file attributes.h.

◆ native_pure

#define native_pure

[[pure]]

No side-effects other than return value, may inspect globals

Allows the compiler to easily elide/duplicate calls. This can freely commute past other operations that can be shown not to affect the memory locations read.

Definition at line 126 of file attributes.h.