Remove Dos-And-Dont's guidance on preferring structs over pairs/tuples.
This is now effectively the guidance of the public Google C++ styleguide, and thus unnecessary. Bug: none Change-Id: I5896ec95822cc586d8f30427083108c34ac1206c Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1785747 Auto-Submit: Peter Kasting <pkasting@chromium.org> Commit-Queue: danakj <danakj@chromium.org> Reviewed-by: danakj <danakj@chromium.org> Cr-Commit-Position: refs/heads/master@{#693729}
This commit is contained in:

committed by
Commit Bot

parent
81d399b4b0
commit
99728616ce
@ -125,38 +125,6 @@ Note that it's possible to call functions or pass `this` and other expressions
|
|||||||
in initializers, so even some complex initializations can be done in the
|
in initializers, so even some complex initializations can be done in the
|
||||||
declaration.
|
declaration.
|
||||||
|
|
||||||
## Prefer structs over pairs/tuples when used repeatedly
|
|
||||||
|
|
||||||
The Google style guide
|
|
||||||
[recommends using return values over outparams](http://google.github.io/styleguide/cppguide.html#Output_Parameters).
|
|
||||||
For functions which return multiple values, a convenient way to do this is to
|
|
||||||
return a pair or tuple:
|
|
||||||
|
|
||||||
```cpp
|
|
||||||
std::pair<int, int> GetPaddingValues() {
|
|
||||||
...
|
|
||||||
return {1, 2}; // Shorter and more readable than std::make_pair(), works with tuples also.
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
However, this return type can be cumbersome, opaque, and error-prone. An
|
|
||||||
alternative is to define a struct with named fields:
|
|
||||||
|
|
||||||
```cpp
|
|
||||||
struct PaddingValues {
|
|
||||||
int header;
|
|
||||||
int footer;
|
|
||||||
};
|
|
||||||
PaddingValues GetPaddingValues() {
|
|
||||||
...
|
|
||||||
return {1, 2}; // This abbreviated syntax still works!
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
A good rule of thumb for when to prefer a struct is whenever you'd find
|
|
||||||
declaring a type alias for the pair or tuple beneficial, which is usually
|
|
||||||
whenever it's used more than just as a local one-off.
|
|
||||||
|
|
||||||
## Use `std::make_unique` and `base::MakeRefCounted` instead of bare `new`
|
## Use `std::make_unique` and `base::MakeRefCounted` instead of bare `new`
|
||||||
|
|
||||||
When possible, avoid bare `new` by using
|
When possible, avoid bare `new` by using
|
||||||
|
Reference in New Issue
Block a user