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