diff options
author | davidben <davidben@chromium.org> | 2016-01-21 17:41:41 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-01-22 01:43:27 +0000 |
commit | 411d3f7a3a18335713a46d9022ce25e018a19e47 (patch) | |
tree | 72cd74ea04f27cc8b01f7153f43e24ae8d48b512 /styleguide | |
parent | 58be7eea6963f63c4395e97a8a8099916f738a61 (diff) | |
download | chromium_src-411d3f7a3a18335713a46d9022ce25e018a19e47.zip chromium_src-411d3f7a3a18335713a46d9022ce25e018a19e47.tar.gz chromium_src-411d3f7a3a18335713a46d9022ce25e018a19e47.tar.bz2 |
Allow std::unordered_*.
This is a reland of https://codereview.chromium.org/1502373009 with some fixes
for components/metrics/leak_detector allocator type mismatches.
Original issue's description:
> Allow std::unordered_*.
>
> base::hash_* is, as a transition step, implemented in terms of
> std::unordered_*. Later commits will convert existing uses.
>
> Also fix a host of IWYU problems that arose from this CL.
>
> (NOPRESUBMIT because the wstring presubmit check is overzealous
> and complains about the reference to wstring in the comment.)
>
> Committed: https://crrev.com/3f37f7f1459e7b5a452c0e433493e0a6e9649ca7
> Cr-Commit-Position: refs/heads/master@{#370553}
BUG=576864
TBR=derat@chromium.org,danakj@chromium.org,dalecurtis@chromium.org,jbauman@chromium.org,blundell@chromium.org
NOPRESUBMIT=true
CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel
Review URL: https://codereview.chromium.org/1615713003
Cr-Commit-Position: refs/heads/master@{#370867}
Diffstat (limited to 'styleguide')
-rw-r--r-- | styleguide/c++/c++11.html | 44 |
1 files changed, 22 insertions, 22 deletions
diff --git a/styleguide/c++/c++11.html b/styleguide/c++/c++11.html index 2776be9..8c3cbc0 100644 --- a/styleguide/c++/c++11.html +++ b/styleguide/c++/c++11.html @@ -363,6 +363,17 @@ std::end</a></td> </tr> <tr> +<td>Forwarding references</td> +<td><code>std::forward()</code></td> +<td>Perfectly forwards arguments (including rvalues)</td> +<td><a href="http://en.cppreference.com/w/cpp/utility/forward"><code>std::forward</code></a></td> +<td> + Allowed, though usage should be rare (primarily for forwarding constructor arguments, or in carefully reviewed library code). + <a href="https://groups.google.com/a/chromium.org/d/topic/cxx/-O7euklhSxs/discussion">Discussion thread</a> +</td> +</tr> + +<tr> <td>Lexicographical struct comparison</td> <td><code>tie(a, b, c) <<br> tie(rhs.a, rhs.b, rhs.c)</code></td> <td>Idiom for <code>operator<</code> implementation</td> @@ -395,17 +406,6 @@ std::end</a></td> </tr> <tr> -<td>Forwarding references</td> -<td><code>std::forward()</code></td> -<td>Perfectly forwards arguments (including rvalues)</td> -<td><a href="http://en.cppreference.com/w/cpp/utility/forward"><code>std::forward</code></a></td> -<td> - Allowed, though usage should be rare (primarily for forwarding constructor arguments, or in carefully reviewed library code). - <a href="https://groups.google.com/a/chromium.org/d/topic/cxx/-O7euklhSxs/discussion">Discussion thread</a> -</td> -</tr> - -<tr> <td>Type Traits</td> <td>Class templates within <code><type_traits></code></td> <td>Allows compile-time inspection of the properties of types</td> @@ -422,6 +422,17 @@ Standard library header <type_traits></a></td> <td>Anything in <code><cmath></code> is allowed. <a href="https://groups.google.com/a/chromium.org/forum/#!topic/cxx/P-1bFBXMeUk">Discussion thread</a></td> </tr> +<tr> +<td>Unordered Associative Containers</td> +<td><code>std::unordered_set</code>, <code>std::unordered_map</code>, +<code>std::unordered_multiset</code>, and <code>std::unordered_multimap</code></td> +<td>Allows efficient containers of key/value pairs</td> +<td><a href="http://en.cppreference.com/w/cpp/container/unordered_map">std::unordered_map</a> +and <a href="http://en.cppreference.com/w/cpp/container/unordered_set">std::unordered_set</a> +</td> +<td>Per the <a href="https://google.github.io/styleguide/cppguide.html#std_hash">Google style guide</a>, specify custom hashers instead of specializing <code>std::hash</code> for custom types. <a href="https://groups.google.com/a/chromium.org/forum/#!topic/cxx/nCdjQqnouO4">Discussion thread</a>.</td> +</tr> + </tbody> </table> @@ -1058,17 +1069,6 @@ Ownership and Smart Pointers</a></td> </tr> <tr> -<td>Unordered Associative Containers</td> -<td><code>std::unordered_set</code>, <code>std::unordered_map</code>, -<code>std::unordered_multiset</code>, and <code>std::unordered_multimap</code></td> -<td>Allows efficient containers of key/value pairs</td> -<td><a href="http://en.cppreference.com/w/cpp/container/unordered_map">std::unordered_map</a> -and <a href="http://en.cppreference.com/w/cpp/container/unordered_set">std::unordered_set</a> -</td> -<td></td> -</tr> - -<tr> <td>Variadic Copy Macro</td> <td><code>va_copy(va_list <i>dest</i>, va_list <i>src</i>)</code></td> <td>Makes a copy of the variadic function arguments</td> |