summaryrefslogtreecommitdiffstats
path: root/styleguide
diff options
context:
space:
mode:
authordavidben <davidben@chromium.org>2016-01-20 17:08:38 -0800
committerCommit bot <commit-bot@chromium.org>2016-01-21 01:10:07 +0000
commit3f37f7f1459e7b5a452c0e433493e0a6e9649ca7 (patch)
treed37f361db93e0f91fe3dedee38851941f5586020 /styleguide
parent26a2b4883c04424a86abcda3d7333505eb1d032d (diff)
downloadchromium_src-3f37f7f1459e7b5a452c0e433493e0a6e9649ca7.zip
chromium_src-3f37f7f1459e7b5a452c0e433493e0a6e9649ca7.tar.gz
chromium_src-3f37f7f1459e7b5a452c0e433493e0a6e9649ca7.tar.bz2
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.) NOPRESUBMIT=true BUG=576864 TBR=derat@chromium.org,blundell@chromium.org,jbauman@chromium.org,dalecurtis@chromium.org CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel Review URL: https://codereview.chromium.org/1502373009 Cr-Commit-Position: refs/heads/master@{#370553}
Diffstat (limited to 'styleguide')
-rw-r--r--styleguide/c++/c++11.html44
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) &lt;<br>&nbsp; tie(rhs.a, rhs.b, rhs.c)</code></td>
<td>Idiom for <code>operator&lt;</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>&lt;type_traits&gt;</code></td>
<td>Allows compile-time inspection of the properties of types</td>
@@ -422,6 +422,17 @@ Standard library header &lt;type_traits&gt;</a></td>
<td>Anything in <code>&lt;cmath&gt;</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>