commit | 888874f761fdd69bb9448b3905627289b5fd66dd | [log] [tgz] |
---|---|---|
author | floppymaster <floppymaster@gmail.com> | Fri Jan 20 04:20:45 2017 |
committer | Commit bot <commit-bot@chromium.org> | Fri Jan 20 04:20:45 2017 |
tree | 3e17ccf24137d9ed0ec7842b4589fdde432864f0 | |
parent | 8944ab3fec59dbc7c281cf919c6aea1befe2c94a [diff] |
Allow GCC 4.9 to compile Chromium In order to implicit cast an lvalue to an rvalue when returning from a function, the return type and type of variable in the return statement previously had to be exactly the same. When this was not the case, std::move was required. For instance, when returning a std::unique_ptr<Derived> variable in a function with a std::unique_ptr<Base> return type, std::move is required. DR 1579 changed this, and allows for implicitly converting to the return type, if the return type has a constructor(T&&), where T is the type of the local variable being returned. DR 1579 was implemented in GCC 5, but not in GCC 4.9 and below. By explicitly qualifying the local variable with std::move, we allow for compiling with GCC 4.9 and incur no performance penalty. The code is still absolutely correct to the word of C++11. BUG=chromium:682965 See also: * https://bugs.gentoo.org/show_bug.cgi?id=600288 * https://stackoverflow.com/questions/22018115/converting-stdunique-ptrderived-to-stdunique-ptrbase#comment33375875_22018521 * http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n3833.html#1579 Review-Url: https://codereview.webrtc.org/2642053003 Cr-Commit-Position: refs/heads/master@{#16175}
WebRTC is a free, open software project that provides browsers and mobile applications with Real-Time Communications (RTC) capabilities via simple APIs. The WebRTC components have been optimized to best serve this purpose.
Our mission: To enable rich, high-quality RTC applications to be developed for the browser, mobile platforms, and IoT devices, and allow them all to communicate via a common set of protocols.
The WebRTC initiative is a project supported by Google, Mozilla and Opera, amongst others. This page is maintained by the Google Chrome team.
See http://www.webrtc.org/native-code/development for instructions on how to get started developing with the native code.