Skip to content

strata::NoAlias

Part of Evaluation and assignment.

template <typename E>
class strata::NoAlias;

An expression, and the promise that it reads no element of the destination but where that element is written.

Made by noalias: view = noalias(x + y). Written without the aliasing check and without the buffer that check may lead to. The promise is still checked where preconditions are, in constant evaluation and without NDEBUG; a false one then fails the precondition (see contract), and where it is not checked the result is undefined. It is no expression itself, so that it can end an assignment and nothing else: nothing can be piped on from it.

Template parameters

Name Description
E The expression the promise is about.

Members

NoAlias

explicit constexpr NoAlias(E expression)

Wraps expression together with the promise.

expression

constexpr const E & expression() const noexcept

The expression the promise is about.