Update smaller parts of Optional to catch up with C++17 spec.

This has several update parts.
- Remove DCHECK from operator->(), as redirected value() has same check.
- rvalue value_or is marked as constexpr.
- emplace now returns T&.
- Adds make_optional(Args&&... args) overloading.
- swap is now conditionally defined.

BUG=784732
TEST=Ran trybot.

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

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