Commit Graph

1109 Commits

Author SHA1 Message Date
Bjarne Stroustrup
9620ea8d43 I.30: Encapsulate rule violations
Fiexed #893 by moving the bad example from ES.28 to a new rule: I.30:
Encapsulate rule violations.

I may inadvertenly have invented a new suppression syntax
2017-05-16 14:59:55 -04:00
Bjarne Stroustrup
17ccab5836 Fix C.139 2017-05-16 13:28:23 -04:00
hsutter
b10ffdf55f Reversed order of Lifetime.1 and .2 2017-05-11 19:09:56 -07:00
hsutter
ff9bce8035 Add Lifetime.1-3 rules so tools can refer to them 2017-05-11 17:56:25 -07:00
Zachary Henkel
f1b348e0db Additional guidance around casts:
- Warn on unnecessary casts
- Avoid casts on arithmetic types
- Add specializations of the rules for Pro-type-reinterpretcast
2017-05-09 16:17:45 -07:00
Sergey Zubkov
17715010a2 travis CI fixes and grammar fix from #920 2017-05-08 22:34:18 -04:00
Andrew Pardoe
b09b9ad8b9 Updating date & typos 2017-05-08 12:05:23 -07:00
Andrew Pardoe
bec67d690a Merge pull request #914 from AndrewPardoe/issue911
Clarify I.11 with regards to recommending smart pointers/owner<T>.
2017-05-08 11:09:19 -07:00
Andrew Pardoe
52eca9a174 Merge pull request #917 from scraimer/master
C.148 adding Reason and Example
2017-05-08 11:08:12 -07:00
Andrew Pardoe
2e1d9c34d4 Merge pull request #920 from cubbimew/issue899
CP.111 more precise motivation and examples
2017-05-08 11:05:28 -07:00
Andrew Pardoe
d5ea1fcc4f Merge pull request #922 from AndrewPardoe/issue-918
Fix anchors in C.147/148
2017-05-08 11:04:21 -07:00
Gabriel Dos Reis
52aa9ba997 Fix #903. 2017-05-08 10:50:03 -07:00
Andrew Pardoe
e354279e0e Fix anchors in C.147/148 2017-05-08 10:21:01 -07:00
Bjarne Stroustrup
ad6f863152 Added not about notation to Con.2
in response to #902
2017-05-07 15:59:55 -04:00
Sergey Zubkov
f41d36ff25 CP.111 more precise motivation and examples 2017-05-07 14:17:21 -04:00
Bledson Kivy
7c90bdba50 Intended heading level?
Following the heading levels throughout the doc, it seems these are typos.
2017-05-05 16:47:41 -03:00
Shalom Craimer
12f0954f66 Fixed the errors detected by Travis CI and @jwakely 2017-05-05 01:20:16 +03:00
Shalom Craimer
cdf2e7e5ea Fixed the errors detected by Travis CI and @jwakely 2017-05-05 00:56:29 +03:00
Jonathan Wakely
bdb5d27a10 Remove spaces before ptr-declarators in examples 2017-05-04 09:48:19 +01:00
Shalom Craimer
1c53b29a3a C.148 - Fixing Travis-reported errors discovered so far in the code example 2017-05-04 11:19:31 +03:00
Shalom Craimer
b6132db539 C.148 adding Reason and Example 2017-05-04 10:13:22 +03:00
Andrew Pardoe
343f40792a Clarify I.11 with regards to recommending smart pointers/owner<T>. 2017-05-01 15:32:28 -07:00
Sergey Zubkov
f0239407ad travis fixes 2017-05-01 15:51:44 -04:00
Andrew Pardoe
03c2b4699d Updating date 2017-05-01 12:03:31 -07:00
Jonathan Wakely
32d6313607 Improve example for ES.45
Fixes #895
2017-05-01 19:57:39 +01:00
Andrew Pardoe
a96fed9c99 Merge pull request #896 from tlanc007/master
ES.45/ES.46 renamed and reordered to match anchors found later in file
2017-05-01 11:10:57 -07:00
Gabriel Dos Reis
0ff5518dca Merge pull request #905 from ewoudvc/es24_toc_rule_correction
ES.24: have TOC rule match body rule
2017-05-01 11:07:32 -07:00
Andrew Pardoe
b41bea68c1 Merge pull request #909 from tvaneerd/patch-2
Note -> Not, are -> is
2017-05-01 11:07:16 -07:00
Gabriel Dos Reis
f9f3422ac5 Fix C.183. 2017-05-01 11:05:32 -07:00
Gabriel Dos Reis
918a5695c7 Address C.128: say 'avoid'. 2017-05-01 10:45:36 -07:00
Tony Van Eerd
481996c849 Note -> Not, are -> is 2017-04-30 22:32:46 -04:00
Bjarne Stroustrup
e0de4df83b added clarifying note for C.139 2017-04-30 13:33:35 -04:00
Bjarne Stroustrup
b3584cfa5f added reference to C.137 2017-04-30 12:18:42 -04:00
Bjarne Stroustrup
a6a087dfc5 regular added to glossary 2017-04-30 12:06:28 -04:00
Bjarne Stroustrup
64622d5cca testing
and fixing one "thinko"
2017-04-30 10:57:58 -04:00
ewoudvc
caa86ae38b GSL.assert: replace is by are (#908) 2017-04-28 16:34:25 +01:00
Jonathan Wakely
e3fe0c5b5e Fix indentation of NR.1 example 2017-04-28 13:31:20 +01:00
Ewoud Van Craeynest
10805fb7a1 ES.24: have TOC rule match body rule 2017-04-27 21:44:51 +02:00
Sergey Zubkov
94a7a3fd46 travis CI fixes, one more time 2017-04-26 22:08:13 -04:00
Bjarne Stroustrup
046d62c51e minor improvements to SL.io 2017-04-25 15:07:41 -04:00
Sergey Zubkov
c99a366bba travis CI fixes 2017-04-24 22:49:02 -04:00
Bjarne Stroustrup
4f9a6c89be banning exception specifications
a bit more abut exceptions; the beginnings of I/O
2017-04-24 17:41:18 -04:00
Bjarne Stroustrup
1e38eb8ae7 ban longjmp 2017-04-22 18:10:58 -04:00
Bjarne Stroustrup
5397c9c5fe very minor typo
testing
2017-04-21 15:18:21 -04:00
Bjarne Stroustrup
1b7d217cd1 nothing 2017-04-20 20:46:17 -04:00
Tal Lancaster
5306795214 ES.45/ES.46: renamed and reordered to match jump tags
The anchors later in the file were using 46 for narrowing and 45 for
magic.  Renamed and reordered the tags in the TOC to match.
2017-04-20 11:35:25 -06:00
Sergey Zubkov
2a098a2b39 travis CI fixes 2017-04-20 10:54:50 -04:00
Bjarne Stroustrup
df8a441dcf fix bug in C.9 example
a real-world example would be an improvement
2017-04-20 08:28:30 -04:00
Bjarne Stroustrup
d1ff56d07e date 2017-04-19 20:53:12 -04:00
Bjarne Stroustrup
cfa2fec1f2 C.137 2017-04-18 21:27:30 -04:00
Bjarne Stroustrup
6987bfd2f0 C.9 and C.133 2017-04-18 20:35:46 -04:00
Bjarne Stroustrup
05118054f6 NL.11 literals 2017-04-18 18:11:30 -04:00
Bjarne Stroustrup
e30bb60320 more xrefs 2017-04-18 17:51:49 -04:00
Louis Brandy
540c393501 Merge pull request #892 from lbrandy/master
Example of an inheritance hierarchy for C.120.
2017-04-18 12:05:29 -07:00
Sergey Zubkov
04537cdb11 travis CI fixes 2017-04-17 23:37:21 -04:00
Sergey Zubkov
74ab713700 travis CI and some typo fixes
had to drop runtime/printf from the checks because it bans strcpy
2017-04-17 23:07:21 -04:00
Bjarne Stroustrup
54f57d8d1b more language feature xrefs
These xrefs are menat part as teasers to get language-feature obsessed
programmers to look at the guidelines and partly to cover topics that
appears in several places. They are not meant to be complete
2017-04-17 21:01:51 -04:00
Bjarne Stroustrup
6fa4cb32cd more language feature xrefs 2017-04-17 17:05:07 -04:00
Bjarne Stroustrup
e144bd4f9b minor 2017-04-17 16:00:18 -04:00
Louis Brandy
29fdd0d30c Attempt to add an example (that is as non-controversial as possible) of an inheritance hierarchy to C.120 2017-04-17 12:23:22 -07:00
Andrew Pardoe
f1d3846300 updating date 2017-04-17 12:00:18 -07:00
hsutter
0ff543fe19 Addresses #568 2017-04-17 11:51:20 -07:00
hsutter
323912e609 A pass at improving F.52. Closes #884 2017-04-17 11:42:08 -07:00
Bjarne Stroustrup
6d01cfd99b more language term examples 2017-04-17 12:37:42 -04:00
Bjarne Stroustrup
c46bebc58f idea for language feature xref 2017-04-17 12:24:28 -04:00
Bjarne Stroustrup
1b5f6d0c97 change "concepts lite" to "concepts" 2017-04-17 11:12:41 -04:00
Bjarne Stroustrup
098dd3ee90 add example to NR.1 2017-04-16 21:50:52 -04:00
Bjarne Stroustrup
13ee61a3cb start of impact statements for profiles 2017-04-16 15:55:13 -04:00
Bjarne Stroustrup
fc5222ca26 Added a first cut of string guidelines 2017-04-16 14:50:07 -04:00
Bjarne Stroustrup
6bcfaa4fbe Clarify that finally() is a last resort
E.6 and E.19
2017-04-15 21:32:57 -04:00
Andrew Pardoe
a8572ad328 Update link to iso.org per #888 2017-04-15 09:23:47 -07:00
Sergey Zubkov
d71d95a4b6 travis CI fixes 2017-04-12 22:56:23 -04:00
Bjarne Stroustrup
0b58d04fde ES.84 2017-04-10 15:57:38 -04:00
Bjarne Stroustrup
6a3d61fd8d a few more fix-ups in ES.* 2017-04-09 15:15:48 -04:00
Bjarne Stroustrup
26d56a2f54 More changes to ES.*
break and continue
goto
fallthrough
when to use "default"
order of evaluation (C++17)
2017-04-09 12:16:58 -04:00
Bjarne Stroustrup
1f948653bb Cleanup of ES.7*
also ES.10: structured binding
and ES.28: eliminating an owning reference
2017-04-09 10:52:48 -04:00
Andrew Pardoe
960f6dad1c updating date 2017-04-04 16:38:57 -07:00
Andrew Pardoe
0aa9994e54 whitespace for formatting 2017-04-03 12:15:05 -07:00
Andrew Pardoe
5b1043104c Resolving issue #662 2017-04-03 12:07:43 -07:00
Bjarne Stroustrup
fbeff91d05 typos 2017-04-02 20:42:58 -04:00
Bjarne Stroustrup
cbb3de625e add example to F.21 2017-04-02 20:42:58 -04:00
Neil MacIntosh
b0cd06aa2e Updated note in C.131 to add clarity. 2017-04-02 12:50:48 -07:00
Bjarne Stroustrup
45e11be0ad added example to C.136 2017-04-02 14:36:21 -04:00
Bjarne Stroustrup
13d6eff946 improving SF.6
In respose to  #725
2017-04-02 14:13:37 -04:00
Bjarne Stroustrup
5080166d3c fix ES.10 2017-04-02 13:36:09 -04:00
Sergey Zubkov
83566ba7d1 travis fixes 2017-03-31 21:01:48 -04:00
Jonathan Wakely
65aa60fe10 Clarify that synchronized_value is not standardised yet 2017-03-27 20:06:29 +01:00
Jonathan Wakely
85543a94e9 Replace invalid uses of defer_lock in C.21 with adopt_lock 2017-03-27 20:06:29 +01:00
Anthony Williams
1b51c917d0 Expanded CP.50 to reference synchronized_value<T> 2017-03-27 20:06:29 +01:00
Anthony Williams
f15d001ba0 Added note about detached threads racing with global destructors 2017-03-27 20:06:29 +01:00
Anthony Williams
ce93de647a Added reference to variadic scoped_lock to CP.21 2017-03-27 20:06:29 +01:00
Andrew Pardoe
795efa71f7 missed one space 2017-03-27 12:05:48 -07:00
Andrew Pardoe
f9f35c78bc adding space after includes per #769 2017-03-27 12:02:06 -07:00
Andrew Pardoe
49abfa6509 Merge pull request #780 from zingsheim/T.84.Link_base
T.84 Correction of Example: Change type of suc and pre to Link_base
2017-03-26 10:13:20 -07:00
Neil MacIntosh
907de2aa4c Corrected mistake in enforcement for R.3. 2017-03-21 14:19:31 -07:00
Neil MacIntosh
deb47c0c47 Corrected obsolete syntax in span examples. 2017-03-20 19:54:30 -07:00
Andrew Pardoe
8caa0fe007 updating date 2017-03-20 12:02:59 -07:00
Andrew Pardoe
de099e2b57 adding punctuation 2017-03-20 11:50:15 -07:00
Andrew Pardoe
cc284d260f Merge remote-tracking branch 'refs/remotes/origin/master' 2017-03-20 11:47:49 -07:00
Andrew Pardoe
e19aed0ef3 Update glossary per issue 820 2017-03-20 11:47:26 -07:00
Neil MacIntosh
33098ab31e Updated guidance on noexcept on destructors (#814) 2017-03-20 11:44:13 -07:00
hsutter
38a6acc1c0 Closes #827
Stated the main two reasons why functions with lots of parameters exist:
Because they're missing an abstraction, or because the function is
trying to do more than one job.
Added explicit coverage of those reasons and another example
illustrating that.
2017-03-20 11:35:33 -07:00
Andrew Pardoe
b8b178e98a Merge pull request #867 from tkruse/fix-warnings
Fix travis warnings, includes other PRS
2017-03-20 11:10:01 -07:00
Neil MacIntosh
c6f8afc931 Updated example of enforcement suppression. 2017-03-20 08:34:02 -07:00
Jacob Langley
2c8b34653d Add a line to help remark identify code block inside bullet list 2017-03-20 11:19:35 +09:00
Jacob Langley
a2dba2e78b Fix cpplint issues
Rconc-create0.cpp:20:  Line ends in whitespace.  Consider deleting these extra spaces.  [whitespace/end_of_line] [4]
Res-always5.cpp:15:  Missing space after ,  [whitespace/comma] [3]
Rp-lib0.cpp:15:  Missing space after ,  [whitespace/comma] [3]
Rs-using-directive0.cpp:25:  Extra space after ( in function call  [whitespace/parens] [4]
Rs-using-directive0.cpp:25:  Extra space before )  [whitespace/parens] [2]
2017-03-20 11:19:35 +09:00
Jacob Langley
48b40df328 Fix markdown lint errors
11979:3          warning  Incorrect indentation before bullet: remove 1 space  list-item-bullet-indent
19412:1-19462:23   warning  Missing blank line before block node                 no-missing-blank-lines
2017-03-20 11:19:34 +09:00
Jacob Langley
04fd2a5807 Fix spellcheck errors
Line 1037: analyser -> analyses
Line 2399: yu -> yew
Line 3745: funtions -> functions
Line 3748: multimethods -> multi methods
Line 6652: mixins -> mixing
Line 11991: unittests -> unittest
2017-03-20 11:19:34 +09:00
Kevin Kennedy
b9a1ed62e9 Change Unicode EN SPACE (U+2002) characters to SPACE (U+0020) so that Pandoc-generated LaTeX can compile without Error 2017-03-19 10:07:40 -04:00
Andrew Pardoe
5408dd3e75 updating date 2017-03-17 15:48:41 -07:00
hsutter
ba3c4b5692 Updated example for Con.1
The original example was good, but it used a reference where the point
of Con.1 is about declaring objects themselves const
2017-03-17 15:39:49 -07:00
hsutter
dfb2a5b1fe Minor consistency cleanup
- Fixed an inconsistent title (section ToC and actual guideline title
differed)
- Can't reseat a reference, so changed it to pointer
- Removed what I think is a stray/outdated rule against passing
move-only types (unique_ptr) by &&
- Reordered a three-line example for logical flow
2017-03-16 08:54:26 -07:00
hsutter
55780020c1 Added lifetime profile placeholder 2017-03-15 11:14:29 -07:00
hsutter
398d3a7400 Added Bounds.* section index 2017-03-15 11:05:22 -07:00
hsutter
e436db0a0e Type.5.1 actually belongs after Type.4
So making it Type.4.1 for now
2017-03-15 10:59:19 -07:00
hsutter
901b301b1f Updated refresh date 2017-03-15 10:47:31 -07:00
hsutter
42da80ef76 Fixed numbering in Type section
There were two Type.7's. Renumbered one of them to .5.1 for now, and
fixed the section table of contents.
2017-03-15 10:42:56 -07:00
hsutter
0af5e31eb2 Closes #836 2017-03-13 12:05:51 -07:00
hsutter
33adf1eede Elaborated on #835.
Incorporating @cubbimew's comments. Thanks!
2017-03-13 11:48:22 -07:00
hsutter
3b3148d99c Closes #835
We do not encourage `owner<T&>`.
2017-03-13 11:44:40 -07:00
hsutter
0bb2de37a0 Closed 856 and 857
Added C++17-specific text in ES.6 for `if` and `switch` initializers.

Note that the Guidelines assume C++14, so the "Enforcement" clauses for
C++17-specific rules will be separate until we assume people have broad
access to C++17 features in their compilers. Once that happens we can
roll the C++17-specific parts into the main text.
2017-03-13 11:32:41 -07:00
Jonathan Wakely
c7c5614a42 Fix spelling typos 2017-02-13 20:20:05 +00:00
Jonathan Wakely
464870c7d3 Fix some markdown warnings seen in the Travis CI checks 2017-02-13 20:14:47 +00:00
Andrew Pardoe
52ad087bb3 Merge pull request #845 from jacobl-at-ms/jacobl.macbuild
Enable building directly on a mac
2017-02-13 11:45:27 -08:00
Herb Sutter
3f2e675f7d Merge pull request #763 from Eliyahu-Ravuna/patch-1
Exception of CP.100 refined to include the "sequentially consistent memory model" only
2017-02-13 14:38:07 -05:00
Gabriel Dos Reis
2b6d208d58 Merge pull request #777 from cubbimew/nvi
dropping NVI from proto-rules due to no consensus on #768
2017-02-13 11:35:46 -08:00
Bjarne Stroustrup
bd5f0c34db Merge branch 'master' into bs-local-1 2017-02-11 13:02:30 -05:00
Bjarne Stroustrup
c5cecf1e88 new rule F.9; unused parameters
Issue #808
2017-02-11 12:25:05 -05:00
Bjarne Stroustrup
631bbbbaf8 typos MI and membership 2017-02-09 17:32:01 -05:00
Jacob Langley
eb4be01970 Fix spelling errors 2017-02-08 10:04:05 -08:00
Bjarne Stroustrup
87bb531080 tools and library rules
in philosophy
2017-02-07 18:05:54 -05:00
Andrew Pardoe
47e5764e6e Update date 2017-02-06 11:55:23 -08:00
Andrew Pardoe
9ddb9e1648 Merge parts of PR #787 2017-02-06 11:51:03 -08:00
Andrew Pardoe
20403c8d6d Merge branch 'thread-tooling' of https://github.com/tituswinters/CppCoreGuidelines into tituswinters-thread-tooling 2017-02-06 11:36:22 -08:00
Andrew Pardoe
11e5e00f23 Merge pull request #818 from cubbimew/c138
C.138 initial content
2017-02-06 11:23:59 -08:00
Bjarne Stroustrup
f2dfcfc438 minor cleanup 2017-02-01 17:05:22 -05:00
Jonathan Wakely
14f67ae8dd Fix typos from commit 9858685786 2017-01-31 12:13:10 +00:00
hsutter
8f2ecf0665 Closed #557
Added example from the issue
2017-01-30 11:52:11 -08:00
hsutter
51b4cddbca Closed #810
Added an example to SF.7
Clarified SF.6 and SF.7 that "using-directive" means "using namespace"
2017-01-30 11:40:47 -08:00
Andrew Pardoe
9858685786 Clarifying title per issue 793 2017-01-30 11:36:57 -08:00
teassy000
8a9bb3bc61 fix c.127 example issue. (#789)
auto will deduce as unique_ptr<D> and the correct destructor will call. Anyway, this should be a bad example.
2017-01-30 19:32:41 +00:00
Sergey Zubkov
4d86abfdb4 When the title of ES.56 was changed, its entry in the ES ToC wasn't (#831) 2017-01-30 19:27:13 +00:00
Sergey Zubkov
0b4b815d0b uncross links to the self-assignment rules (#830) 2017-01-30 19:26:56 +00:00
Andrew Pardoe
51191c13d2 Merge pull request #825 from johelegp/interfaces_non_trivial_fixes
I: Enforcement fixes/completion
2017-01-30 11:19:55 -08:00
Gabriel Dos Reis
dd7275623d Merge pull request #834 from cubbimew/c131-constify
C.131: getters should be const member functions
2017-01-30 06:59:27 -08:00
Sergey Zubkov
bee5e87e90 C.131: getters should be const member functions 2017-01-30 06:47:00 -05:00
Sergey Zubkov
808d304687 C.127 should not claim that there is a defined behavior 2017-01-30 06:24:16 -05:00
mancoast
63582c929e Rework of English Language style 2017-01-18 07:45:47 -05:00
Gabriel Dos Reis
655bbcafa8 Merge pull request #824 from johelegp/interfaces_fixes
I: Grammar, spacing and typo fixes
2017-01-02 12:51:18 -08:00
Gabriel Dos Reis
94fdad103d Merge pull request #823 from johelegp/gsl_concept_dead_link_fix
GSL.concept: Dead link fix
2017-01-02 12:50:02 -08:00