[#absl-StatusOr-operator_assign-08] = xref:absl.adoc[absl]::xref:absl/StatusOr.adoc[StatusOr]::operator= :relfileprefix: ../../ :mrdocs: Converting assignment operator from an `absl::StatusOr<U>`. == Synopsis Declared in `<absl/status/statusor.h>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<typename U> requires internal_statusor::IsStatusOrAssignmentValid< T, const U&, false>::value xref:absl/StatusOr.adoc[StatusOr]& operator=(xref:absl/StatusOr.adoc[StatusOr<U>] const& other); ---- == Description Creates an `absl::StatusOr<T>` through assignment from an `absl::StatusOr<U>` when: * Both `absl::StatusOr<T>` and `absl::StatusOr<U>` are OK by assigning `U` to `T` directly. * `absl::StatusOr<T>` is OK and `absl::StatusOr<U>` contains an error code by destroying `absl::StatusOr<T>`'s value and assigning from `absl::StatusOr<U>' * `absl::StatusOr<T>` contains an error code and `absl::StatusOr<U>` is OK by directly initializing `T` from `U`. * Both `absl::StatusOr<T>` and `absl::StatusOr<U>` contain an error code by assigning the `Status` in `absl::StatusOr<U>` to `absl::StatusOr<T>` These overloads only apply if `absl::StatusOr<T>` is constructible and assignable from `absl::StatusOr<U>` and `StatusOr<T>` cannot be directly assigned from `StatusOr<U>`. == Return Value A reference to `*this`. == Parameters [cols="1,4"] |=== | Name| Description | *other* | The source `StatusOr<U>` to assign from. |=== [.small]#Created with https://www.mrdocs.com[MrDocs]#