diff options
author | danakj <danakj@chromium.org> | 2014-09-26 13:03:04 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2014-09-26 20:03:21 +0000 |
commit | d9a02e76127634286ff0c760f87db260b367492a (patch) | |
tree | a7ccdf1477eebf18fceb685d3c7298b322828b3a | |
parent | d9b040ba4ff2ff78f183816b9d0e34c5f450160c (diff) | |
download | chromium_src-d9a02e76127634286ff0c760f87db260b367492a.zip chromium_src-d9a02e76127634286ff0c760f87db260b367492a.tar.gz chromium_src-d9a02e76127634286ff0c760f87db260b367492a.tar.bz2 |
styleguide: Move Rvalue References to the Blacklist with Exceptions.
The discussion around Rvalue references has been that we should ban
their use for now, but come back to it later. So that is what this
does.
One exceptional case that was agreed upon without dissent was to allow
move semantics in scoped_ptr to allow use of scoped_ptr cleaner
throughout the codebase, without leaking the requirement to understand
Rvalue references outside of the scoped_ptr implementation.
R=jamesr@chromium.org, thakis@chromium.org
Review URL: https://codereview.chromium.org/607773002
Cr-Commit-Position: refs/heads/master@{#297016}
-rw-r--r-- | styleguide/c++/c++11.html | 30 |
1 files changed, 22 insertions, 8 deletions
diff --git a/styleguide/c++/c++11.html b/styleguide/c++/c++11.html index 9659c9b..45559dd8 100644 --- a/styleguide/c++/c++11.html +++ b/styleguide/c++/c++11.html @@ -163,6 +163,28 @@ Are Variadic macros nonstandard?</a></td> <p>This section lists features that are not allowed to be used yet. +<table id="banned_list" class="unlined striped"> +<tbody> + +<tr> +<th style='width:240px;'>Feature or Library</th> +<th style='width:240px;'>Snippet</th> +<th style='width:240px;'>Description</th> +<th style='width:240px;'>Documentation Link</th> +<th style='width:240px;'>Notes</th> +</tr> + +<tr> +<td>Rvalue References (and Move Semantics)</td> +<td><code>T(T&& t)</code> and <code>T& operator=(T&& t)</code></td> +<td>Reference that only binds to a temporary object</td> +<td>TODO: documentation link</td> +<td>To be revisited in the future. Allowed in exceptional cases where approved by the OWNERS of src/styleguide/c++/.</td> +</tr> + +</tbody> +</table> + <h3 id="blacklist_banned">C++11 Banned Features</h3> <p>This section will list C++11 features that are not allowed in the Chromium @@ -414,14 +436,6 @@ sequences, easing parsing in regex expressions, for example</td> </tr> <tr> -<td>Rvalue References (and Move Semantics)</td> -<td><code>T(T&& t)</code> and <code>T& operator=(T&& t)</code></td> -<td>Reference that only binds to a temporary object</td> -<td>TODO: documentation link</td> -<td></td> -</tr> - -<tr> <td>Union Class Members</td> <td><code>union <i>name</i> { <i>class</i> <i>var</i>}</code></td> <td>Allows class type members</td> |