Commit Graph

1914 Commits

Author SHA1 Message Date
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
Hugh Macdonald
d996c97809
Fix typo in SL.str.1 (#1648)
Part of SL.str.1 references replacing “const string*” with “string_view”, but the example code above shows “const string&” instead.
This changes the comment to the reference rather than pointer.
2020-07-14 11:41:23 -04:00
hsutter
12f29f2ea9 Closes #1647 2020-07-09 12:00:47 -07:00
Sergey Zubkov
895d709546 NR.5: note that example is incomplete (closes #1643) 2020-07-09 14:24:22 -04:00
al-mission-2016
c6262ea1a8
+= structured bindings mentioning; -= '\n' (#1646)
It worth to mention the *structured bindings* right in the *Reason* section.
2020-07-09 11:04:17 -07:00
Sergey Zubkov
72fba35f33 travis CI fix 2020-07-09 13:08:55 -04:00
hsutter
43bbde7fc9 Committing PR #1640 to main branch 2020-07-03 17:43:13 -07:00
Sergey Zubkov
ac7079b012 travis CI fix 2020-07-02 15:15:05 -04:00
Arthur O'Dwyer
567331ab4e
Const-qualify operator()s. NFC. (#1638)
As a general rule, `operator()` should be const-qualified.
The exceptions are few and far between.

I was actually looking for a Guideline on that subject;
I grepped for `operator()` and found that not only is there
no such Guideline yet, the doc actually contained these
places that (needlessly) violated the general rule.
2020-07-02 11:08:50 -07:00
Arthur O'Dwyer
c379d3f6ea
Remove a broken example, and copyedit. (#1637)
Using `this` in a free function makes the program ill-formed;
it doesn't magically give you a `std::thread*`.
2020-07-02 11:07:46 -07:00
Sergey Zubkov
45ad5c4628 C.49: fix typo in example (closes #1642) 2020-06-29 14:17:02 -04:00
Manlio Morini
2477f275dc
Fixed broken link (Res-nonnegative) (#1641) 2020-06-22 13:49:20 -04:00
Sergey Zubkov
8b94f6ee58 I.9: update outdated note that talks of 2018 as the future, closes #1525 2020-06-11 14:39:28 -04:00
Sergey Zubkov
62be4c856d ES.28: drop broken and unnecessary example, closes #1590 2020-06-11 14:35:31 -04:00
Anthony Cassidy
9efcaf07f7
Removed anti-CamelCase comments. (#1632)
The comments were:
// ???Must we suffer CaMelcAse???
and
// ugly CaMeLcAsEvArIaBlE
2020-06-04 11:19:47 -07:00
xtofl
4867a5c2d3
Use '<thing> template' i.s.o. 'template <thing>' (#1631)
* Use '<thing> template' i.s.o. 'template <thing>'

The word 'template' is often wrongly used as an adjective to the 'thing'
it becomes when instantiated.

* Expand succinct formulation for readability

Co-authored-by: Kristoffel Pirard <kristoffel.pirard@vanhool.com>
2020-06-04 11:18:37 -07:00