[base] Sync Optional implementation to chromium
There were a lot of tweaks and optimizations to chromium's {base::Optional} implementation. This CL brings us back in sync with that. Some changes were needed to make this compatible with C++11 and with GCC 4.8: 1) Types like std::decay_t and std::enable_if_t were rewritten to use std::decay and std::enable_if. 2) Some conditional no_except declarations were removed. 3) std::is_trivially_copy_constructible and std::is_trivially_move_constructible are assumed to be false on gcc 4 because it's unimplemented there. R=neis@chromium.org Bug: v8:8238 Change-Id: Ia0542c0d4d2fd43a2454f639ec5201ad8d8201cd Reviewed-on: https://chromium-review.googlesource.com/c/1275824 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by: Georg Neis <neis@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#56625}
Showing
Please
register
or
sign in
to comment