9dd6f0d089
MSVC 2015 and 2017 implement std::is_trivially_copyable, but not correctly. Hence, reimplement it using more low-level primitives. For stdlibc++ versions below 5.0, we already have a workaround for the missing support of std::is_trivially_copyable, but this is an unsound approximation, because it is ignoring move constructor, move assignment and copy assignment. Therefore, do not use this approximation for asserting trivial copyability of a type. Finally, add unittests for the new is_trivially_copyable implementations. R=mstarzinger@chromium.org CC=loorongjie@gmail.com Change-Id: I9ee56a65882e8c94b72c9a2d484edd27963a5d89 Reviewed-on: https://chromium-review.googlesource.com/941521 Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#51651} |
||
---|---|---|
.. | ||
platform | ||
utils | ||
atomic-utils-unittest.cc | ||
bits-unittest.cc | ||
cpu-unittest.cc | ||
division-by-constant-unittest.cc | ||
flags-unittest.cc | ||
functional-unittest.cc | ||
ieee754-unittest.cc | ||
iterator-unittest.cc | ||
logging-unittest.cc | ||
macros-unittest.cc | ||
ostreams-unittest.cc | ||
sys-info-unittest.cc | ||
template-utils-unittest.cc |