◆ optionally_owned_ptr() [1/6]
◆ optionally_owned_ptr() [2/6]
44540 : ptr(ptr_p) {
44541 }
◆ optionally_owned_ptr() [3/6]
44542 : ptr(&ref) {
44543 }
◆ optionally_owned_ptr() [4/6]
44545 : owned(std::move(owned_p)), ptr(owned) {
44546 }
◆ optionally_owned_ptr() [5/6]
44548 : owned_shared(std::move(owned_p)), ptr(*owned_shared) {
44549 }
◆ optionally_owned_ptr() [6/6]
44552 : owned(std::move(other.owned)), owned_shared(std::move(other.owned_shared)), ptr(other.ptr) {
44553 other.ptr = nullptr;
44554 }
◆ operator bool()
44558 {
44559 return ptr;
44560 }
◆ operator*() [1/2]
44561 {
44562 return *ptr;
44563 }
◆ operator*() [2/2]
44564 {
44565 return *ptr;
44566 }
◆ operator->() [1/2]
44567 {
44568 return ptr.get();
44569 }
◆ operator->() [2/2]
44570 {
44571 return ptr.get();
44572 }
◆ get() [1/2]
44573 {
44574 return ptr.get();
44575 }
◆ get() [2/2]
44576 {
44577 return ptr.get();
44578 }
◆ is_owned()
44579 {
44580 return owned != nullptr || owned_shared != nullptr;
44581 }
◆ get_owned_unique()
44582 {
44583 return owned;
44584 }
◆ get_owned_shared()
44585 {
44586 return owned_shared;
44587 }
◆ get_mutable()
44589 {
44590 return ptr.get();
44591 }
◆ operator=() [1/2]
44593 {
44594 owned = nullptr;
44595 owned_shared = nullptr;
44596 ptr = optional_ptr<T>(ref);
44597 return *this;
44598 }
◆ operator=() [2/2]
44599 {
44600 owned = nullptr;
44601 owned_shared = nullptr;
44602 ptr = optional_ptr<T>(ref);
44603 return *this;
44604 }
◆ operator==()
44606 {
44607 if (owned != rhs.owned) {
44608 return false;
44609 }
44610 if (owned_shared != rhs.owned_shared) {
44611 return false;
44612 }
44613 return ptr == rhs.ptr;
44614 }
◆ operator!=()
44616 {
44617 return !(*this == rhs);
44618 }
The documentation for this class was generated from the following file: