Commit Graph

1979 Commits

Author SHA1 Message Date
Herb Sutter
64ab13b3d0 Closes #1748 2021-02-18 11:20:09 -08:00
Herb Sutter
a97be2d528 Addresses #1732 2021-02-11 11:57:50 -08:00
Sergey Zubkov
3e61563a0c make hunspell happy 2021-01-28 22:16:03 -05:00
Herb Sutter
75cc9a102f Improves I.24 rule wording, closes #1733 2021-01-28 11:53:10 -08:00
Herb Sutter
caab79d1e9 Improving the wording of I.25 per #1734 2021-01-28 11:46:27 -08:00
Herb Sutter
f46ce437e0 Slightly improved F.20 to highlight the note about const return values 2021-01-28 11:36:40 -08:00
syntroniks
a5a4d0b4a2
update Enum.7 note with consistent capitalization (#1739) 2021-01-28 13:57:07 -05:00
Sergey Zubkov
f6f1a49a41 typo 2021-01-24 22:32:35 -05:00
Herb Sutter
3c1991b87b Updated T.68 example 2021-01-21 11:46:01 -08:00
Herb Sutter
520ac9c695 Updated the new ES.3
Added xref, massaged summary.
2021-01-21 11:43:50 -08:00
shaneasd
627ed66ce6
Update reference to SF.7 to match text (#1735) 2021-01-21 11:39:04 -08:00
Florian Behrens
c142bc9d7e
Improve example in CP.4 to not contradict F.53. (#1724)
Changed the example so that objects are not passed by reference to other thread contexts (though threads are properly synchronized).
2021-01-21 11:38:19 -08:00
peno2
b5412f5922
Add new rule ES.3 Don't repeat yourself (#1715)
* Add new rule ES.3 Don't repeat yourself

* Replace function example with more inclusive/neutral language

Add a reference to topic on libraries.
2021-01-21 11:13:45 -08:00
Sergey Zubkov
2c95a33fef travis CI fixes 2020-12-16 23:14:07 -05:00
David Leal
cef2f6bb77
Replace Travis CI with GitHub Actions (#1688) 2020-12-16 23:06:38 -05:00
Niels Dekker
e2c0f23ce1
F.60: Remove C-style cast (T&) from example of invalid C++ (#1711) 2020-11-16 11:07:56 -05:00
Herb Sutter
a6eb40c5a2 Improved F.7 lifetime note; closes #1698 2020-10-29 11:57:25 -07:00
Herb Sutter
5fdddf821d Added a justification message option for gsl::suppress
Closes #1703
2020-10-29 11:37:08 -07:00
Herb Sutter
53aaebb074 Updated Mozilla link and Google style guide C++ version note
Closes #1705
2020-10-29 11:21:25 -07:00
Fernando J. Iglesias García
525d8f225e
Update C.83 with swap for resource mgmt. (#1694)
* Update C.83 with swap for resource mgmt.

The swap is useful to implement assignments idiomatically (e.g. copy-swap idiom).

With the current enforcement, to non-virtual classes, very simple classes (e.g. `trivially_copyable`, a struct encapsulating an stl container) are suggested to have a swap. This suggestion can be argued wrong since for very simple classes copy-swap idiom is not efficient (the creation of a third object on assignment is not needed, which copy-swap does).

* Rework C.83 according to PR comments.
2020-10-29 11:12:40 -07:00
Sergey Zubkov
840fa592ac
merge C.150 in R.23, leaving a redirect behind (#1676) 2020-10-05 15:09:08 -04:00
hsutter
dd98129f40 Fixes example in ES.105, closes #1678 2020-10-01 11:48:22 -07:00
hsutter
6ad29ce609 Fixes ES.50 example and closes #1682
Also removes the only use of `decltype` in the Guidelines, FTW.
2020-10-01 11:30:30 -07:00
Herb Sutter
55bea2089b
Remove string_span, recommend using std::string_view, std:::span,<char> or gsl::span<char> instead (#1680) 2020-10-01 11:23:58 -07:00
Herb Sutter
146864fe89
Cleaned up casting guidance (#1685)
The various guidelines now have consistent Enforcements.
All C-style casts are now consistently banned, including to `(void)`.
Cast to `(void`)` should be `std::ignore =` instead.
All functional-style casts are now consistently banned,  instead of
`T(x)` use `T{x}`.
2020-10-01 11:18:38 -07:00
Sergey Zubkov
86102531dc
merge C.151 into R.22, leaving a redirect behind (#1675) 2020-10-01 11:10:13 -07:00
Sergey Zubkov
30b41c32e3
merge R.30 and F.7, closes #1671 (#1674) 2020-10-01 11:09:24 -07:00
hsutter
c86be249f3 Revert "Revert "Revert "Removed gsl::string_span, recommend using std::string_view, std::span<char>, or gsl::span<char> instead"""
This reverts commit 8241609450.
2020-09-23 15:41:22 -07:00
hsutter
8241609450 Revert "Revert "Removed gsl::string_span, recommend using std::string_view, std::span<char>, or gsl::span<char> instead""
This reverts commit f15ee43ad6.
2020-09-23 15:40:44 -07:00
hsutter
f15ee43ad6 Revert "Removed gsl::string_span, recommend using std::string_view, std::span<char>, or gsl::span<char> instead"
This reverts commit 5257915dee.
2020-09-23 15:40:17 -07:00
hsutter
5257915dee Removed gsl::string_span, recommend using std::string_view, std::span<char>, or gsl::span<char> instead 2020-09-23 15:39:43 -07:00
Gabriel Dos Reis
ab34c8b6b0
Merge pull request #1679 from N-Dekker/E.30-Remove-suggestion-to-use-throw()
E.30: Remove suggestion to use `throw()`
2020-09-21 19:54:11 -07:00
Niels Dekker
0d46b2006c E.30: Remove suggestion to use throw()
Removed the suggestion to use `throw()` from E.30 ("Don't use exception specifications"), as it was deprecated by C++11, and is rejected by C++20.
2020-09-21 19:16:05 +02:00
hsutter
2e3f983971 Restored whitespace after "might"
Fixing previous commit where we ate the whitespace after "may" in four
places (yay regex search `might[^\s]`)
2020-09-03 16:34:34 -07:00
hsutter
75406a2db8 Remove "may" except for the month name -- closes #1542
In English, the word "may" is overloaded and ambiguous. This commit
changes it to "might" wherever possible, otherwise more specific
meanings like "can," "could," or especially "must" ("may not" -> "must
not" when that is intended).
2020-09-03 12:57:06 -07:00
David B
fae4ed3768
ES.103 examples updated, addresses Issue #1656 (#1659)
* ES.103 examples updated, addresses Issue #1656

* Fix cpplint report: Res-overflow0.cpp:18:  Missing spaces around <=  [whitespace/operators] [3]
2020-09-03 11:17:11 -07:00
rjhcnf
bdccf49849
added minor clarification. (#1672)
* added minor clarification.

* Update CppCoreGuidelines.md

Updated comment.

* Update CppCoreGuidelines.md
2020-09-03 11:11:30 -07:00
Gabriel Dos Reis
739dc98dff
Merge pull request #1664 from johnmcfarlane/patch-1
Add clarifying example to SF.12
2020-08-16 08:35:09 -07:00
John McFarlane
c5a771832a
Add clarifying example to SF.12
The examples in SF.12 are likely to encourage readers to always use the `""` form of `'#include` when including headers from the same project ([discussion](https://github.com/isocpp/CppCoreGuidelines/pull/1596#issuecomment-673266275)). However, in larger projects this may not always be appropriate; `<>` should be used for includes located via a header search path.

This proposed solution adds an example of the later, i.e. where `<>` is used to include a header from the same project.
2020-08-14 06:58:35 +02:00
David B
bd7085e53e
Change [C++CS] refs to [SuttAlex05] Issue #1660 (#1662) 2020-08-12 13:37:57 -04:00
Sergey Zubkov
2449d5d60f E.27: make example compile, closes #1622 2020-08-03 16:48:37 -04:00
hsutter
0439326363 Closes #1579 2020-07-30 12:13:07 -07:00
hsutter
945b34d40e Closes #1574
- Add a cross-reference to C.139 and note that it doesn't matter whether
a function is declared with override or final if the whole class is
already final.
- Fix C.139 to make it clearer that it's about `final` on classes.
2020-07-30 11:32:36 -07:00
hsutter
63e2cd0ecd Closes #1585 2020-07-30 11:22:00 -07:00
Sergey Zubkov
01fa6a9bcf R.31 mark Example as Example, bad (closes #1651) 2020-07-29 12:37:42 -04:00
LE GARREC Vincent
6d17d10604
T.5: Add an example for Type erasure (#1625)
Based on :
https://www.modernescpp.com/index.php/c-core-guidelines-type-erasure-with-templates

Co-authored-by: Vincent Legarrec <vincent.legarrec@csdental.com>
2020-07-29 12:37:01 -04:00
cadenzasong
d4e2281a09
removed extra space in an example in CP.2 (#1654) 2020-07-26 14:23:33 -04:00
Gabriel Dos Reis
6f50150e94
Merge pull request #1596 from apenn-msft/patch-1
SF.12: Prefer the quoted form of `#include` for files relative to the…
2020-07-25 15:00:05 -07:00
apenn-msft
94d6123c9a
relative path should be from within the same component
... files that exist at a relative path to the file containing the `#include` statement (from within the same component or project)
2020-07-23 17:24:42 -07:00
apenn-msft
f458adae1f
Update CppCoreGuidelines.md
explicitly note that "file" refers to as it exists in the location of it being authored/modified.
this is to address any confusion about #including "bar.h" from foo.h based on whether bar.h is relative to foo.h at the time and location foo.h is being modified (e.g. under mylib/foo.h) versus at the time/location from which foo.h is installed to the system and included by the user (e.g. from /usr/include).
2020-07-23 14:41:33 -07:00