template <typename T>

struct WireOptional

Defined at line 26 of file ../../sdk/lib/fidl/cpp/wire/include/lib/fidl/cpp/wire/optional.h

|fidl::WireOptional

<T

>| wraps a wire union type |T| and represents the optional

version of that union. Conceptually it is similar to an |std::optional|, but

it is optimized to have the same memory layout as |T|, using the fact that

FIDL unions are naturally optional (an absent union consists of all zeros).

TODO(https://fxbug.dev/42061094): Consider using |fidl::WireOptional| to represent optional

vectors and optional strings.

Public Methods

void WireOptional<T> ()

Constructs an absent optional union.

Defined at line 29 of file ../../sdk/lib/fidl/cpp/wire/include/lib/fidl/cpp/wire/optional.h

void WireOptional<T> (const WireOptional<T> & other)

Defined at line 31 of file ../../sdk/lib/fidl/cpp/wire/include/lib/fidl/cpp/wire/optional.h

void WireOptional<T> (WireOptional<T> && other)

Defined at line 32 of file ../../sdk/lib/fidl/cpp/wire/include/lib/fidl/cpp/wire/optional.h

WireOptional<T> & operator= (const WireOptional<T> & other)

Defined at line 33 of file ../../sdk/lib/fidl/cpp/wire/include/lib/fidl/cpp/wire/optional.h

WireOptional<T> & operator= (WireOptional<T> && other)

Defined at line 34 of file ../../sdk/lib/fidl/cpp/wire/include/lib/fidl/cpp/wire/optional.h

void ~WireOptional<T> ()

Defined at line 35 of file ../../sdk/lib/fidl/cpp/wire/include/lib/fidl/cpp/wire/optional.h

void WireOptional<T> (const T & t)

Intentional implicit constructor to go from |T| to an |WireOptional

<T

>|

NOLINTNEXTLINE(google-explicit-constructor)

Defined at line 39 of file ../../sdk/lib/fidl/cpp/wire/include/lib/fidl/cpp/wire/optional.h

void WireOptional<T> (T && t)

Intentional implicit constructor to go from |T| to an |WireOptional

<T

>|

NOLINTNEXTLINE(google-explicit-constructor)

Defined at line 43 of file ../../sdk/lib/fidl/cpp/wire/include/lib/fidl/cpp/wire/optional.h

WireOptional<T> & operator= (const T & other)

Defined at line 45 of file ../../sdk/lib/fidl/cpp/wire/include/lib/fidl/cpp/wire/optional.h

WireOptional<T> & operator= (T && other)

Defined at line 49 of file ../../sdk/lib/fidl/cpp/wire/include/lib/fidl/cpp/wire/optional.h

bool has_value ()

Returns whether the union is present.

Defined at line 55 of file ../../sdk/lib/fidl/cpp/wire/include/lib/fidl/cpp/wire/optional.h

T & value ()

Accesses the union.

Defined at line 58 of file ../../sdk/lib/fidl/cpp/wire/include/lib/fidl/cpp/wire/optional.h

const T & value ()

Accesses the union.

Defined at line 64 of file ../../sdk/lib/fidl/cpp/wire/include/lib/fidl/cpp/wire/optional.h

T * operator-> ()

Defined at line 69 of file ../../sdk/lib/fidl/cpp/wire/include/lib/fidl/cpp/wire/optional.h

const T * operator-> ()

Defined at line 70 of file ../../sdk/lib/fidl/cpp/wire/include/lib/fidl/cpp/wire/optional.h

T & operator* ()

Defined at line 72 of file ../../sdk/lib/fidl/cpp/wire/include/lib/fidl/cpp/wire/optional.h

const T & operator* ()

Defined at line 73 of file ../../sdk/lib/fidl/cpp/wire/include/lib/fidl/cpp/wire/optional.h

Friends

template <typename Utypename Constraintbool IsRecursiveclass Enable>
class WireCodingTraits