Commit Graph

1559 Commits (d4e2281a09258ef69a7b91e1a9c9d148b72afde2)

Author SHA1 Message Date
Amir Livneh e3da8a1fd9 Add example for E.28 (#1385) 7 years ago
Dave Smith c2a5785d7e Remove elements that don't add value in ES.84 (#1390) 7 years ago
Dave Smith 8301421762 Tighten up the intro to CP (#1391) 7 years ago
Amir Livneh a8c7b7c5a8 Fix grammar in T.41 (#1389) 7 years ago
Amir Livneh bd3f3d5d25 Fix grammar in Con.2 (#1388) 7 years ago
Amir Livneh 422a190f57 Fix typo in T.22 (#1387) 7 years ago
Amir Livneh aa25be7d6b Make sentence in T.41 complete (#1386) 7 years ago
Amir Livneh ba2dbc5edf Fix calls to malloc() with 2 arguments (#1377)
* Fix calls to malloc() with 2 arguments
7 years ago
Amir Livneh f67e91d295 Use `memoizes` instead of `mnemonizes` in the context of caching (#1383)
* Use `memoizes` instead of `mnemonizes` in the context of caching

While apparently, 'mnemonizes' is a word, I don't think it's the best choice here.

* Update isocpp.dic
7 years ago
Amir Livneh c1beff1941 Fix grammar in T.11 (#1380) 7 years ago
Amir Livneh 43f4390185 Fix grammar in T.13 (#1379) 7 years ago
Amir Livneh 8ff099d2d2 Fix grammar (#1378) 7 years ago
Amir Livneh 7d092e37aa Remove extra parenthesis (#1375) 7 years ago
Amir Livneh 7511b40996 Use 'an' instead of 'a' where appropriate (#1374) 7 years ago
Amir Livneh 571ab494a8 Use consistent tense and remove repetition in E introduction (#1372) 7 years ago
Amir Livneh e93462e1d7 Fix capitalization in CP.200 (#1373) 7 years ago
Amir Livneh 6d94ce30dd Fix grammar in E.4 note (#1371) 7 years ago
Sergey Zubkov 1c0ddef508 fix travis CI, update date 7 years ago
hsutter 5d2c09aa48 Closes #1355 7 years ago
hsutter fcba85fb48 Closes #1332 7 years ago
hsutter 5276dc55c8 Closes #1330 7 years ago
Martín Knoblauch Revuelta 4d0a2a2aef Fix union example taken from TC++PL4 (#1357)
The code fails to set the type when a number value is assigned to a (formerly) string value. As a result, later access to the value or destruction of the object cause undefined behaviour (access to arbitrary memory address and/or heap corruption). The string field of the union is accessed, but its the number what is there…

It's also wrong in the book!

The fact that this bug has survived so long pretty much proves the point that code with unions is hard to get right ;-)

Oh, by the way, in order to test this, I had to add a constructor. Though, I'm not including it in the change. I suppose this just stuff we take for granted in the "// …" comment.
7 years ago
Amir Livneh f5689ada23 Remove unused parameter in ES.62 example (#1353) 7 years ago
hsutter 48cdedb31e Changed to sentence 7 years ago
Amir Livneh 7674f9c649 Fix capitalization in ES.56 note (#1349)
* Fix capitalization in ES.56 note

* Make proper sentence
7 years ago
Amir Livneh 9a703fa02b Don't reuse variable name in ES.50 example (#1348)
Reusing the name 'i' violates ES.12 and distracts from the point of the example.
7 years ago
Amir Livneh 8a1780e841 Fix punctuation in CP.1 (#1366) 7 years ago
Amir Livneh a2f5f77b1c Fix spacing in CP.4 example (#1365) 7 years ago
Amir Livneh 002d8b8301 Fix typos (#1364) 7 years ago
Amir Livneh b933b03329 Fix punctuation in ES.77 (#1363) 7 years ago
Amir Livneh 5750f1ee86 Fix typo in ES.86 example (#1362) 7 years ago
Amir Livneh 35db3bf123 Fix typo in ES.87 (#1361) 7 years ago
Martín Knoblauch Revuelta 4f97d37239 Fix args. of == and != operators in C.100 (#1359)
Obviously, the comparisons are intended to compare `Sorted_vector`s, not `T` values
7 years ago
Amir Livneh 5190ea51a3 Fix capitalization in ES.61 enforcement (#1350)
* Fix capitalization in ES.61 enforcement

* Fix grammar
7 years ago
Amir Livneh 2056a14da7 Fix grammar in ES.50 (#1352) 7 years ago
Amir Livneh a10668dc1d Fix spacing in ES.63 example (#1351) 7 years ago
Amir Livneh d6a6e7092a Remove superfluous word in ES.42 enforcement (#1347) 7 years ago
Amir Livneh 882e9539fa Fix grammar in ES.42 (#1346) 7 years ago
Amir Livneh c83acbc347 Fix comment grammar in ES.40 example (#1345) 7 years ago
Amir Livneh 9f0e9fe0a3 Fix grammar (#1344) 7 years ago
Amir Livneh edac03725a Remove unnecessary hyphenation (#1343) 7 years ago
Amir Livneh a95daa781e Fix comment stating incorrect assigned variable (#1342) 7 years ago
Amir Livneh 8c141fcfa5 Fix typo (#1341) 7 years ago
Amir Livneh feae4d6c15 Fix grammar (#1340) 7 years ago
Amir Livneh abad343557 Fix indentation in example (#1339) 7 years ago
Sergey Zubkov 358bef703e closes #1337 7 years ago
Matthew Dews 65aa7232e8 Fix typo (#1338) 7 years ago
Amir Livneh f2b517eac2 Fix grammar (#1336) 7 years ago
Amir Livneh ff8934c39b Fix grammar (#1335) 7 years ago
Amir Livneh e0830c7c3b Remove redundant word (#1334) 7 years ago
Amir Livneh 94eadbb7eb Fix grammar (#1333) 7 years ago
Amir Livneh 4797c26d4b Fix grammar (#1331) 7 years ago
Amir Livneh 1fd6ce78c2 Fix typo and grammar (#1329) 7 years ago
Amir Livneh c9f1066756 Fix grammar (#1327) 7 years ago
hsutter 684635eecd Closes #1322
Add an Enforcement rule for prefix inc/dec functions. Try to phrase it
to reduce noisiness.
7 years ago
Franz Hollerer f7ef39f0d6 issue #1236 - there is no reason to use the Hungarian notation in C (#1326) 7 years ago
hsutter fb1d4c9189 Closes #1319 7 years ago
mpherg cbbe6071ce Standardize example and note headers (minor) (#1318)
* Standardize example headings

Some example headings used "Example, [good,bad]" and others used
"Example; [good,bad]" (note the comma verses semicolon). The vast
majority of the headings used the comma version, so this commit
normalizes all example headings to use a comma instead of a semicolon.

* Standardize note heading level

Two of the "Note" headings were set to level four, but the rest are at
level 5. Fix the level fours to make them level fives.
7 years ago
hsutter b38d065e45 Cleaned up a code example comment 7 years ago
hsutter 373765b827 Closes #1317
Fixed section heading to match item
7 years ago
hsutter 4ed280b080 Closes #1315 7 years ago
Dave Smith 1805589141 Pro.bounds: Correct impact wording (minor) (#1316) 7 years ago
hsutter fd9c725549 Update for #1306 7 years ago
hsutter 88a9ba0640 Closes #1311 7 years ago
beinhaerter 4e8ab7ae86 F.21 wording changed to current status of the standard (#1313) 7 years ago
Mark Abraham e58bce6f6a Fix typo in ES.102 (#1312)
The value -2 is signed, so the word "unsigned" is clearly wrong.  The
text notes that negative subscripts are a source of surprises and
bugs, so the correction to "negative" seems to reflect Bjarne's
original intent.
7 years ago
Honggyu Kim 526f14f56a Prefer bullet points to a long sentence in SL section (#1310)
It'd be better to have bullet points than writing the points in a long
sentence even with description in parenthesis.
7 years ago
Max Bozzi dd8fc629d7 Remove claims that "constexpr functions are pure" (#1307)
F.4 and F.8 made this erroneous claim as parts of notes which are
entirely removed.
7 years ago
hsutter 714bec5010 Updated date 7 years ago
Marzo Sette Torres Junior f971ad2f17 Fixing tagged union example (#1301)
It did not compile previously due to missing type specifier on placement new.
7 years ago
Jonathan Wakely d822f80d5d Fix whitespace errors in code, to make Travis CI pass 7 years ago
Andriy Berestovskyy a7fc6f6d4e Fix a typo (#1300) 7 years ago
hsutter 0fe73c966d Fixed typo
Thanks @dalg24!
7 years ago
hsutter d6d7d749c3 Minor rewording 7 years ago
hsutter 334c902a13 Adding suggestion in #1283 comment thread
Thanks, Mike!
7 years ago
Sergey Zubkov 41b10255c4 date update 7 years ago
Herb Sutter 6e3d2d2c22 Closes #1297 7 years ago
Herb Sutter 4fa9d4019f Minor edits to #1291 7 years ago
Chris Guzak 407fcc0eac update to I.4: Make interfaces precisely and strongly typed (#1291)
* updates to I.4: Make interfaces precisely and strongly typed

* Update enforcement list

* address PR feedback from blakehawkins
7 years ago
Kyle 0181ab40a7 Fix example in C.51 (#1294)
The example looks like it previously used i to represent date, but now the variable is called d. I updated the use and related parameters to match.
7 years ago
Sergey Zubkov 50b9cefe39 travis CI and typo fixes 7 years ago
Bjarne Stroustrup dd67c99f1f made C.con a bit less incomplate
More will eventually come
7 years ago
Bjarne Stroustrup 1103509895 A philosophical rule/caution 7 years ago
Bjarne Stroustrup 0f61a4be4e typos 7 years ago
Bjarne Stroustrup 417d512fea clarifications for #1267
references to resource handles
7 years ago
Bjarne Stroustrup 11f58787b8 minor clarifications
for #1268 and #1267
7 years ago
Bjarne Stroustrup 2cfcd878c4 fiexed C.49
remover contradiction to C.45 (#1092) ) and mention string_view
7 years ago
Bjarne Stroustrup 8825798df6 clarify rules for {} initialization
in response to #1279
7 years ago
hsutter 61cdce115e Improved description of F.3 example
The example in F.3 is not really long, but it is complex
7 years ago
hsutter 3fbc0b35a4 Closes #1265, make the chaining exception more visible 7 years ago
Alexander Knorre 7733c326b2 No double deletion (#1278) 7 years ago
Martin 0b275097b6 Fixed a typo within ES.23 7 years ago
tcorbat e81d770bdc Fix broken link to Lifetime paper (#1274) 7 years ago
Sergey Zubkov 30a0e1bef7 closes #1239 7 years ago
Sergey Zubkov 8915f05950 travis CI fixes 7 years ago
hsutter fa7b1fe41f Fixed Lifetime.pdf link 7 years ago
hsutter f02b24a71a Update Lifetime profile to 1.0 7 years ago
hsutter ecfd61c8d8 Clarify C.128
Improved readability of primary paragraph.
Added Discussion section of the classes of errors being addressed.
7 years ago
hsutter 104cd63a37 Closes #1257
Fixed example
7 years ago
hsutter 60e19d76a4 Closes #1254 7 years ago
beinhaerter 5b372a99d8 Fixes Issue #1253: wrong link in SS-bounds to Res-simple (#1255)
Replaced Res-simple with Res-ptr.
7 years ago
Sergey Zubkov 1e12aba7af missing a return *this in a copy-assignment 7 years ago
Sergey Zubkov faad9d8b56 one more typo 7 years ago
Sergey Zubkov 73057d3b0b travis CI fixes and typos 7 years ago
Sergey Zubkov b16eb424e9 typo: funct1_tau -> func1_tau 7 years ago
Bjarne Stroustrup e75a7056c4 Resolving #1146
explaining SCARY and referencing the SCARY paper
7 years ago
Bjarne Stroustrup a0bc2d71ca resolving #1137
clarification
7 years ago
Bjarne Stroustrup 647aa80f0d applying #1139
more references to C++17
7 years ago
Bjarne Stroustrup 79a5b08ad9 resolve #1175
I added a note
7 years ago
Bjarne Stroustrup 5cabda84d7 resolve #1185
implicit operator functions
7 years ago
Bjarne Stroustrup d3c3e3aa98 resolve #1209, #814, and #167
noexcept and destructors
7 years ago
Bjarne Stroustrup f3e7dbac6e Resolution of #1228
explicitly discouraging the use of # and ##
7 years ago
Bjarne Stroustrup c11001f0a6 resolving #1238 about style
The caveat is added only to the subset of rules where it appears to be
relevant
7 years ago
Bjarne Stroustrup dd4cae0260 Resolve #1241 about returning T&& 7 years ago
hsutter e31a85dc2d Closes #1251 8 years ago
Neil MacIntosh 0c7a349342 Fix example for ES.70 (#1252)
As per #574, fixes the example in ES.70 to emphasize good use of a switch over a sequence of if-else-if statements.
8 years ago
hsutter d1def3290c Tweaked PR 1249 post-merge to cover copy assignment too 8 years ago
Andrzej Krzemieński 08f67de9fb Updated C.67 and C.130 (#1249)
* Updated C.67 and C.130

This addresses https://github.com/isocpp/CppCoreGuidelines/issues/1246.

* fixed typeos

* updated dictionary
8 years ago
Jonathan Wakely 42f8fa5f84 Use H3 heading for C.140 instead of H2
Fixes #1250
8 years ago
martysama0134 513a5fd624 Fix example good in ES.42, count to a.size() (#1245)
* Fix example good in ES.42, count to a.size()

* Fix typos in ES.64 and Con.1

* Fix Example bad in T.3, no value in subscript
8 years ago
jeffreylindsey 6dd14321c1 GSL grammar fix, added missing plurality in full name (#1243)
* Renamed all appropriate instances of "guideline support library" to "guidelines support library".

* Renamed additional instances of "guideline support library" to "guidelines support library" in remaining files.
8 years ago
jeffreyai 04b2fabb9b Change 'lifetime profile' to 'lifetime safety profile' and fix the bad/broken links (#1240)
'lifetime profile' is only used twice with bad/broken links. 'lifetime safety' and 'lifetime safety profile' are used more frequently, and make more sense.
8 years ago
Sergey Zubkov cb08aa24a4
s/more that two/more than two 8 years ago
hsutter e0ecfc83b7 Closes 1220 8 years ago
hsutter a488f1d8b5 Added F.48, closes #1219 8 years ago
hsutter c0a2efdfe8 Closes #1218 8 years ago
hsutter 1283da9afa Closes #1216 8 years ago
hsutter 28e9f02550 Let's =default to avoid an out of line definition question 8 years ago
hsutter aa645b0372 Closes #1214
Added virtual dtor to make the example standalone
8 years ago
Richard Evans 0d0026e61e Correct Dewhurst link to reference found in discussion for C.47 8 years ago
kugelrund dea3b94f12
Clarify result of lower_bound
The previous formulation made it sound like the return value is always `last` if `val` is not in the range, which might lead to confusion.
8 years ago
Jonathan Wakely 4af8321e91 Fix "an reasonable" typo
Fixes #1211
8 years ago
Gabriel Dos Reis 599fb02d12
Merge pull request #1208 from mabuchner/1207-cp-31-memory-corruption-from-example
Pass parameter as reference in CP.31 example
8 years ago
Sergey Zubkov a866b000d3
it's deletion -> its deletion 8 years ago
Sergey Zubkov 4e58fb87f7
typo: "nothing to do with sync" -> "nothing to do with stdasync" 8 years ago
mbuchner 7261f5d2fb Pass parameter as reference in CP.31 example
Fixes #1207.
8 years ago
Gabriel Dos Reis 20d9f42674
Merge pull request #1198 from ianhattendorf/SL-str-12-cpp-14
SL.str.12: s suffix is available in C++14
8 years ago
Gabriel Dos Reis 046b2a0833
Merge pull request #1201 from mabuchner/1200-es-102-odd-loop-condition-in-second-example
Fix ES.102 odd loop condition in example
8 years ago
Gabriel Dos Reis 46ecdd6830
Merge pull request #1202 from gumb0/patch-1
Remove unnecessary comments from C.42 examples
8 years ago
Andrei Maiboroda ff4a3069a1
Fix comments in C.42 examples 8 years ago
Andrei Maiboroda 2ee3fff631
Fix typo in C.44 8 years ago
Ian Hattendorf d49c720e98 Fix typo in error handling intro 8 years ago
Ian Hattendorf 69d48f76c7 E.14 an->a is->are fixes 8 years ago
Ian Hattendorf 2cedd99f32 Remove whitespace at the end of lines 8 years ago
mbuchner 53c0bd2bd1 Fix ES.102 odd loop condition in example 8 years ago
Ian Hattendorf ee64b7ec17
SL.str.12: s suffix is available in C++14
std::literals::string_literals::operator""s is available since C++14
while std::pair class template argument deduction is available since
C++17
8 years ago
hsutter 1e4dba2c0b Renamed NL.10 to "prefer underscore_style names" 8 years ago
hsutter 93ac723f6b Fixed rest of T.12 example following up #1189 8 years ago
Alexander “weej” Jones 15008e8432 Fix T.12's incorrect usage of vector::begin() (#1189) 8 years ago
hsutter a5e28d4a61 Updated intro wording 8 years ago
Andrew Pardoe b21b125d42 Capitalization error 8 years ago
hsutter b3d2f853f7 Changed "method" to "function" in three places for consistency 8 years ago
hsutter cea965f610 Reworded "consume" to "will-move-from" parameters
To improve clarity since the wording was causing confusion
8 years ago
Gabriel Dos Reis 99b997b6f0
Merge pull request #1179 from jwakely/issue-1177
Fix comment to match code
8 years ago
Chris Guzak e5f28e4095 SF.11, Header files should be self-contained (#1181)
* SF.11 Header files should be self-sufficient added

* PR feedback addressed

* explain more

* update reason baed on PR feedback

* add VS code dir to .gitignore

* more PR feedback
8 years ago
Gabriel Dos Reis 85db0de16c
Merge pull request #1183 from beinhaerter/formatting
Formatting in C.46
8 years ago
Werner Henze 0cb724fe20 Fixed link for "avoid conversion operators" 8 years ago
Werner Henze b724f71473 Formatting "explicit" as code 8 years ago
Jason Mercer c0264f3831 fixed scale factor for millimeters (#1182) 8 years ago
Jonathan Wakely e721ee53cb Fix comment to match code
Also fix missing references and add cross-reference to F.22.

Fixes #1177
8 years ago
Jonathan Wakely dbe8bf0207 Fix typo
Fixes #1176
8 years ago
Andrew Pardoe 9ac22abe0a Adding note suggested by @jwakely in #1165 8 years ago
Andrew Pardoe b9fe28cc2a update date 8 years ago
Jonathan Wakely ba25a26294 Rephrase C.21 to talk about declaring not defining (#1152)
* Rephrase C.21 to talk about declaring not defining

Add examples.

Fixes #870.

* Define special functions, clarify default constructor effects
8 years ago
fekir ab5f9c18bd catch by reference in all samples (#1154) 8 years ago
Stephan Weller 2c3d9921b6 Replace erroneous public keyword by private in C.129. (#1166) 8 years ago
beinhaerter edf13aabc0 Note that C.46 does not apply for copy/move ctors (#1169)
* Note that C.46 does not apply for copy/move ctors

* moved Note section before Enforcement section
8 years ago
Gabriel Dos Reis 644e0f5b5e
Merge pull request #1164 from ChrisGuzak/ChrisGuzak-sizeof-not_max
use sizeof(buffer) instead of MAX
8 years ago
echeij 6ed138076d Fixed get_string example in F.21 (#1160)
In the 'all values as return value' example in F.21, the passed istream was not used in the function.
8 years ago
Chris Guzak 373f4c4808
use sizeof(buffer) instead of MAX 8 years ago
nnaka 09035eb1e4 Align comment block (#1162) 8 years ago
nnaka 9c4d4247b1 P.5 example read int array size mismatch (#1161)
Expand comment to clarify problem.
8 years ago
Andrew Pardoe b487f9790a subject-verb agreement in NL.2 8 years ago
hsutter 8d5d5e4aeb To address #1147
Changed `.length()` to `.size()` for `span` examples to track
standardization changes.
8 years ago
Andrew Pardoe beed3e97c0 update date 8 years ago
Ari Hietanen 6c55d4eaaf Bug fix C4 class Foobar (#1143)
* Fixed bug in example code of C4 Expecptions. In C4, the class function void Foobar::foo(double x) is supposed to call the overloaded void Foobar::foo(int x), but in the call foo(std::round(x)), std::round returns a double. Hence, it will get stuck in an infinite recursive loop. Added static_cast<int>(..) to enforce the call to right overload. Added also keyword public to be more consistent.

* Changed static_cast<int> to narrow_cast<int> following ES.46.

* Modified C4 Foobar class, s.t, std::lround(x) is now called in
void foo(double) and the overload is changed to void foo(long) from (int). Now there is
no need for conversions.
8 years ago
Tobias Mende da3b6b98bc Do Not Check For nullptr Explicitely In Examples (closes #1142) (#1144) 8 years ago
beinhaerter 9c98f9679c Copy-Paste-Typo in Comment for ES.87 sample (==0/!=0) (#1145) 8 years ago
hsutter 10c0a8b156 Closes #1119
Make C.43 crisper -- the guideline is that default construction is
required for copyable types. A lot of the existing examples then just
fall out, without having to be presented as special cases. This was the
original intent and I think this new text helps make that clearer.
8 years ago
Andrew Pardoe d9f3149e11 Update references to C++17, also typo 8 years ago
Dipl.-Ing. Raoul Rubien, BSc 73dad7909d title page/In.sec: reordered and updated titles (#1135)
* title page: updated titles and unified titles' camel case to sentence case

* In.sec: reordered bullets to match document's workflow, updated titles

* updated several links and link names, modified names to title case

* redirected broken link to new anchor Rf-value-return at 'value return sematic rules' block

* updated links

* reverted unindended broken artistic prose

* updated links, modified "see also's" formatting to comply with the majority

* modified "see also's" formatting to comply with the majority

* fix spellcheck: 'Componentization -> Compartmentalization'

* updated link name
8 years ago
Bernardo Sulzbach eb534411a7 Should say repository instead of depository (#1138) 8 years ago
Dipl.-Ing. Raoul Rubien, BSc 888067d6ff fixed spellcheck/lint issues on running make in ./scripts/ (#1134) 8 years ago
Sergey Zubkov 25d9d12e15 travis CI fixes 8 years ago
hsutter f8f396ef3b Typo fix to NL.5 8 years ago
hsutter c5f67599d1 Added another example to NL.5 8 years ago
hsutter c10e5503e9 Closes #1104 8 years ago
Sergey Zubkov e3f753ed14 the copy ctor typo and comment fixes from #1125 8 years ago
Andrew Pardoe 15ca9d220c Fixing typo per #1130 & updating date 8 years ago
Herb Sutter c1e3cd01cd Add gsl::index, closes #1098 (#1115)
* Add gsl::index, closes #1098

And update examples throughout to use `index` as appropriate

* Actually adding `index` to the GSL.util section

* Added `sizeof` to whitelisted signed/unsigned comparisons

Same reason as container `.size()` -- better backward compatibility with
the existing standard
8 years ago
Oleg Artenii b677b69014 Removed useless "Currently (July 2016)" (#1123)
* Removed useless "Currently (July 2016)"

* replaced `GCC 6.1` with `GCC 6.1 or later`

* Correct usage of `and/or` in `GCC 6.1 _ later`
8 years ago
rknuus 2bdd1ae705 add example for R.24 (#1127)
* add example for R.24

taken from https://cpppatterns.com/patterns/weak-reference.html, where
it's published under CC0 Public Domain Dedication

* improve example for R.24
8 years ago
Jonathan Wakely 5c3006b60f Change "untended" to "unintended" in C.9 8 years ago
Sergey Zubkov 59eb77027e travis CI fixes 8 years ago
Bjarne Stroustrup 8f87a03588 ES.87
#1032 comment and example added.
To consider: should integer comparison be broken out as its own rule?
8 years ago
Bjarne Stroustrup 72b9b40a7c Some examples in Per.11
In response to #936 I added some text to Per.11. More would be welcome
8 years ago
Bjarne Stroustrup edbfc3b8ec Clarifying (I hope) text and example added
addressing #980 and #9777
8 years ago
Bjarne Stroustrup 0df2c26e9a C.129
#1052 added Jonathan's example
8 years ago
Bjarne Stroustrup ff42e7bbaf closing #547
(now?) we have CP.3 and CP.31. Also CP.mess.
Yes we need more work on CP.mess
8 years ago
Bjarne Stroustrup ecabc369bb simplifying ES.20
#488
8 years ago