Make base::Optional trivially destructible when possible.

* Implement base::is_trivially_destructible.
* Add value_type to Optional.
* Make Optional<T> trivially destructible when T is trivially destructible.
* Add some more tests on Optional.

BUG=521269, 554293

Review-Url: https://codereview.chromium.org/2000043002
Cr-Commit-Position: refs/heads/master@{#396423}


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