• Clemens Hammacher's avatar
    [base] Sync Optional implementation to chromium · da339e60
    Clemens Hammacher authored
    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: 's avatarGeorg Neis <neis@chromium.org>
    Reviewed-by: 's avatarMichael Lippautz <mlippautz@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#56625}
    da339e60
optional.h 30.5 KB