Update (non-copy, non-move) assign operators.

Fix perfect-forwarded assign operator to look at condition to
decide whether it should participate in overload resolution.

Add Optional<U> copy- and move-like assign operators.
For that implementation, OptionalBase's copy-/move-assign
operators are slightly refactored.

BUG=784732
TEST=Ran trybot.

Change-Id: I69db9def857a1cce8e7b05f0c6e11922ee8d95db
Reviewed-on: https://chromium-review.googlesource.com/856539
Reviewed-by: danakj <danakj@chromium.org>
Commit-Queue: Hidehiko Abe <hidehiko@chromium.org>
Cr-Commit-Position: refs/heads/master@{#538699}

CrOS-Libchrome-Original-Commit: 40ee4aee34e39b711f266bbe3e03f4c033b9cf71
2 files changed
tree: 509934fe679705426a1e79f8737db463b8423ef0
  1. base/
  2. build/
  3. components/
  4. dbus/
  5. device/
  6. ipc/
  7. mojo/
  8. testing/
  9. third_party/
  10. ui/