template <typename T, bool = (is_nullable<T>::value && std::is_constructible_v<T, T&&> &&
                              std::is_assignable_v<T&, T&&>)>

class nullable

Defined at line 67 of file ../../sdk/lib/fit/include/lib/fit/internal/../nullable.h

Holds a value or nullptr.

This class is similar to |std::optional

<T

>| except that it uses less

storage when the value type can be initialized, assigned, and compared

with nullptr.

For example:

- sizeof(fit::nullable

<void

*>) == sizeof(void*)

- sizeof(std::optional

<void

*>) == sizeof(struct { bool; void*; })

- sizeof(fit::nullable

<int

>) == sizeof(struct { bool; int; })

- sizeof(std::optional

<int

>) == sizeof(struct { bool; int; })

TODO(https://fxbug.dev/42123486): fit::nullable does not precisely mirror

std::optional. This should be corrected to avoid surprises when switching

between the types.

Public Methods

void ~nullable<T, value-parameter-0-1> ()

Defined at line 71 of file ../../sdk/lib/fit/include/lib/fit/internal/../nullable.h

void nullable<T, value-parameter-0-1> ()

Defined at line 72 of file ../../sdk/lib/fit/include/lib/fit/internal/../nullable.h

void nullable<T, value-parameter-0-1> (decltype(nullptr) )

Defined at line 74 of file ../../sdk/lib/fit/include/lib/fit/internal/../nullable.h

void nullable<T, value-parameter-0-1> (T value)

Defined at line 75 of file ../../sdk/lib/fit/include/lib/fit/internal/../nullable.h

void nullable<T, value-parameter-0-1> (const nullable<T, value-parameter-0-1> & other)

Defined at line 77 of file ../../sdk/lib/fit/include/lib/fit/internal/../nullable.h

nullable<T, value-parameter-0-1> & operator= (const nullable<T, value-parameter-0-1> & other)

Defined at line 78 of file ../../sdk/lib/fit/include/lib/fit/internal/../nullable.h

void nullable<T, value-parameter-0-1> (nullable<T, value-parameter-0-1> && other)

Defined at line 80 of file ../../sdk/lib/fit/include/lib/fit/internal/../nullable.h

nullable<T, value-parameter-0-1> & operator= (nullable<T, value-parameter-0-1> && other)

Defined at line 81 of file ../../sdk/lib/fit/include/lib/fit/internal/../nullable.h

T & value ()

Defined at line 83 of file ../../sdk/lib/fit/include/lib/fit/internal/../nullable.h

const T & value ()

Defined at line 84 of file ../../sdk/lib/fit/include/lib/fit/internal/../nullable.h

T && value ()

Defined at line 85 of file ../../sdk/lib/fit/include/lib/fit/internal/../nullable.h

const T && value ()

Defined at line 86 of file ../../sdk/lib/fit/include/lib/fit/internal/../nullable.h

template <typename U = T>
T value_or (U && default_value)

Defined at line 89 of file ../../sdk/lib/fit/include/lib/fit/internal/../nullable.h

T * operator-> ()

Defined at line 93 of file ../../sdk/lib/fit/include/lib/fit/internal/../nullable.h

const T * operator-> ()

Defined at line 94 of file ../../sdk/lib/fit/include/lib/fit/internal/../nullable.h

T & operator* ()

Defined at line 95 of file ../../sdk/lib/fit/include/lib/fit/internal/../nullable.h

const T & operator* ()

Defined at line 96 of file ../../sdk/lib/fit/include/lib/fit/internal/../nullable.h

bool has_value ()

Defined at line 98 of file ../../sdk/lib/fit/include/lib/fit/internal/../nullable.h

bool operator bool ()

Defined at line 99 of file ../../sdk/lib/fit/include/lib/fit/internal/../nullable.h

nullable<T, value-parameter-0-1> & operator= (decltype(nullptr) )

Defined at line 101 of file ../../sdk/lib/fit/include/lib/fit/internal/../nullable.h

nullable<T, value-parameter-0-1> & operator= (T value)

Defined at line 106 of file ../../sdk/lib/fit/include/lib/fit/internal/../nullable.h

void reset ()

Defined at line 111 of file ../../sdk/lib/fit/include/lib/fit/internal/../nullable.h

void swap (nullable<T, value-parameter-0-1> & other)

Defined at line 113 of file ../../sdk/lib/fit/include/lib/fit/internal/../nullable.h