[tab:optional.assign.move] (original) (raw)

22 General utilities library [utilities]

22.5 Optional objects [optional]

22.5.3 Class template optional [optional.optional]

22.5.3.4 Assignment [optional.assign]

Table 66 — optional​::​operator=(optional&&) effects [tab:optional.assign.move]

🔗 *this contains a value *this does not contain a value
🔗rhs contains a value assigns std​::​move(*rhs) to the contained value direct-non-list-initializes the contained value with std​::​move(*rhs)
🔗rhs does not contain a value destroys the contained value by calling val->T​::​~T() no effect