Commit Graph

1159 Commits

Author SHA1 Message Date
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
Gabriel Dos Reis
c040dfab55 Merge pull request #822 from johelegp/gsl_fixes
GSL: Grammar, spacing and markdown fixes
2017-01-02 12:49:05 -08:00
Johel Ernesto Guerrero Peña
2b3e249cff I: Grammar, spacing and typo fixes 2016-12-31 20:58:30 -04:00
Johel Ernesto Guerrero Peña
5f95cb2734 I: Enforcement fixes/completion 2016-12-31 20:56:49 -04:00
Johel Ernesto Guerrero Peña
3bb9192d66 GSL: Grammar, spacing and markdown fixes 2016-12-30 18:20:04 -04:00
Johel Ernesto Guerrero Peña
bb4202ed92 GSL.concept: Dead link fix
Described in #407, 4a9e41d7 added the section but didn't fix the links.
2016-12-30 17:28:21 -04:00
Johel Ernesto Guerrero Peña
d30134b150 P: Grammar, correction and typo fixes 2016-12-30 00:21:51 -04:00
Sergey Zubkov
a968af59d0 C.138 initial content 2016-12-18 14:46:11 -05:00
Andrew Pardoe
9cfa3eafd7 Updating date 2016-12-12 11:39:59 -08:00
Andrew Pardoe
4f2a64b920 Per our discussion, C.42 enforcement belongs to C.41 2016-12-12 11:27:40 -08:00
hsutter
882d88ebe5 Closed #809. 2016-12-05 14:20:37 -08:00
Severin Meyer
bcd9904ae2 Fix remaining typos mentioned in issue #556
ES.23: Correct the Fibonacci series
ES.71: Fix bug in example code
T.61: Use the correct type for the class member
Appendix C: Use an example string that is not identical to a C++ keyword and clarify comment
2016-11-22 23:08:27 +01:00
Gabriel Dos Reis
7fb5621495 Merge pull request #799 from severinmeyer/NL-Typos-squashed
Fix typos in section NL: Naming and layout
2016-11-22 07:54:48 -08:00
Gabriel Dos Reis
32368d99c6 Merge pull request #800 from severinmeyer/CP-Typos-squashed
Fix typos in section CP: Concurrency
2016-11-22 07:53:52 -08:00
Gabriel Dos Reis
1b259959f6 Merge pull request #801 from severinmeyer/ES-Typos-squashed
Fix typos in section ES: Expressions and statements
2016-11-22 07:53:00 -08:00
Gabriel Dos Reis
783ab6c6ca Merge pull request #802 from severinmeyer/E-Typos-squashed
Fix typos in section E: Error handling
2016-11-22 07:52:01 -08:00
Severin Meyer
6fb7ad6bb5 Fix a few more typos
F.22: Fix typos
C.128: Update the title in the ToC, to match the new title from commit f0e29f0
Con.1: Fix typo
T.84: Fix typo
NR.2: Remove duplicated word from title (single single)
2016-11-22 16:10:31 +01:00
Severin Meyer
185f70781d Fix typos in section E: Error handling
E.25: Fix several typos
E.25: Add missing comma
E.2: Add missing verb
2016-11-22 15:53:13 +01:00
Severin Meyer
63f1948962 Fix typos in section NL: Naming and layout
NL.1: Add missing period to title in ToC
NL.5: Fix typo
NL.8: Fix several typos
NL.9: Add missing period in title
NL.9: Fix typo
NL.19: Fix typo
2016-11-22 13:56:52 +01:00
Severin Meyer
efdd83bf9a Fix typos in section ES: Expressions and statements
ES.dcl: Fix typo
ES.25: Use the singular form for the title, to correct it and to match it with the entry in the ToC
ES.30: Fix several typos
ES.40: Fix typo in code comments
ES.61: Capitalize first word of title
ES.63: Fix typo
ES.70: Fix typo and capitalization
ES.74: Fix typo in title
ES.102: Fix typo and add missing comma
2016-11-22 13:43:07 +01:00
Severin Meyer
c1ed09786d Fix typos in section CP: Concurrency
CP.8: Add missing colon to title
CP.30: In title, close inline code block with backtick
CP.101: Correct saying, Icarus flew to close to the sun, not the wind
2016-11-22 13:32:38 +01:00
Andrew Pardoe
9987d835b9 Updating date 2016-11-21 08:38:55 -08:00
Andrew Pardoe
7741b8689e Merge pull request #796 from severinmeyer/C-Typos
Fix typos in section C: Classes and class hierarchies
2016-11-21 08:33:22 -08:00
Severin Meyer
353f8ffc4c C.140: Fix typo in text 2016-11-17 14:56:45 +01:00
Severin Meyer
26953e0bf9 C.139: Fix typo in text 2016-11-17 14:55:54 +01:00
Severin Meyer
fc0999c56e C.129: Fix typo in text 2016-11-17 14:54:52 +01:00
Severin Meyer
434f995679 C.128: Fix typo in text 2016-11-17 14:53:58 +01:00
Severin Meyer
66c0348d19 C.80: Fix typo in text 2016-11-17 14:51:08 +01:00
Severin Meyer
7070ffa839 C.41: Add missing comma 2016-11-17 14:49:54 +01:00
Severin Meyer
efb284388f C.defop: Fix typo in introductory text 2016-11-17 14:48:43 +01:00
Severin Meyer
db8273d068 C.concrete: Fix typo in introductory text 2016-11-17 14:47:44 +01:00
Severin Meyer
0d02b7e8bf C.9: Capitalize first word of title 2016-11-17 14:45:50 +01:00
Severin Meyer
edb59eea86 C.8: Fix typo in text 2016-11-17 14:43:03 +01:00
Severin Meyer
b516c49efc C.8: Fix typo in title and capitalize first word 2016-11-17 14:41:18 +01:00
Severin Meyer
c6071b8add CP.41: Fix typo in code example 2016-11-17 13:28:15 +01:00
Gabriel Dos Reis
09d76d93fc Merge pull request #791 from severinmeyer/P.9-Typo
P.9: Fix typo in code example
2016-11-15 07:57:54 -08:00
Severin Meyer
c3ee965a28 P.9: Fix typo in code example 2016-11-15 16:00:56 +01:00
Stéphane Magnenat
17c7ba9b8b Fixed missing ` 2016-11-15 10:25:34 +01:00
Titus Winters
3768e82fc3 Fix spelling / expand dictionary. 2016-11-10 13:35:22 -05:00
Titus Winters
e8ecae3171 Added some example tooling discussion. 2016-11-03 12:09:26 -04:00
Mustafa Serdar Sanli
53bc78fd49 Fix broken anchor link 2016-10-31 20:00:14 +00:00
Jan Nils Ferner
d86a82f1eb Fix typo (#782) 2016-10-20 10:48:31 +01:00
Frank Zingsheim
84b1d80c61 T.84 Correction of Example: Change type of suc and pre to Link_base 2016-10-18 22:35:18 +02:00
Sergey Zubkov
bc41bd6e9f dropping NVI from proto-rules due to no consensus on #768 2016-10-17 17:41:56 -04:00
Jonathan Wakely
98f1e46602 C.146 Compare pb2->id() instead of pb2
Fixes #504
2016-10-17 19:15:04 +01:00
Doan Tran Cong Danh
db85ec865d ES.7 Fix typo, "i" -> "current_element_index" 2016-10-07 17:58:08 +07:00
Jonathan Wakely
aab97d9e48 C.32 Fix typo, "aide" -> "aid" 2016-10-05 13:00:48 +01:00
Eliyahu Ravuna
5f66e004d8 Exception of CP.100 refined to include the "sequentially consistent memory model" only
Atomic variables are safe with the sequentially consistent memory model (memory_order_seq_cst) only. Weakly ordered atomics cannot be considered safe for mainstream use. The exception clause of CP.100 refined to include the "sequentially consistent memory model" only.

cst added to dictionary

For std::memory_order_seq_cst, which is defined in <atomic>.
2016-10-04 20:36:09 +03:00
Gabriel Dos Reis
6767413118 Merge pull request #760 from derekxgl/patch-1
P.11 call vector reserve(100) instead of vector(100)
2016-10-04 07:25:52 -07:00
Malcolm Parsons
38772fc251 Correct spelling of nullptr 2016-10-04 15:12:56 +01:00
Derek Li
6c29e226d8 P.11 call vector reserve(100) instead of vector(100) 2016-10-04 12:55:52 +01:00
Gabriel Dos Reis
7b4a1903ec Merge pull request #745 from kks32/master
Fixes wrong order of type and function name in naming scheme - master branch
2016-10-03 16:41:53 -07:00
Gabriel Dos Reis
804964d653 Merge pull request #758 from Eliyahu-Ravuna/patch-22
Short string optimization example for C.180
2016-10-03 16:41:07 -07:00
Eliyahu Ravuna
52c4376433 Short string optimization example for C.180
Extra blank lines removed

strcpy replaced with strcpy_s to get rid of Travis CI warnings

Note: strcpy_s  is defined in the Annex K of the C++11 standard.

Gabriel's comments incorporated

- No need for braces for a single statement.
- Comment to explain why buffer_size is 16.

Bracing style made consistent with the rest of the examples

Bracing style made consistent with the rest of the examples

braces made consistent with the rest of the examples
2016-10-04 02:37:25 +03:00
Andrew Pardoe
f6dd6159f8 Fix issue #747 2016-10-03 15:40:56 -07:00
Andrew Pardoe
f66d9aea46 Fix 798177568e 2016-10-03 15:37:56 -07:00
Andrew Pardoe
798177568e Merge pull request #754 from Eliyahu-Ravuna/patch-21
CP.110 & CP.111: Double-checked locking
2016-10-03 11:17:25 -07:00
Andrew Pardoe
b149a50faf Merge pull request #756 from pepsiman/patch-1
P.5 Correct case of Int alias
2016-10-03 11:10:59 -07:00
Andrew Pardoe
4d45c6bb1d Merge pull request #755 from pepsiman/executionpolicy
P.3 Split execution policy and container
2016-10-03 11:09:51 -07:00
Eliyahu Ravuna
ec2f23781d CP.110 renamed as "Do not write your own double-checked locking"
CP.110 renamed as "Do not write your own double-checked locking".
Explanation and two examples added.

Added exception

Double-checked locking may be legitimately used in lock-free programming. However, see the rule [CP.100: Don't use lock-free programming unless you absolutely have to](#Rconc-lockfree).

Title made clearer and a conventional pattern has been added

* Title made clearer
* A correct example of double-checked locking has been added

Casing fixed

Casing fixed

Extra whitespace deleted

CP.110 and CP.111 separated

- CP.110: Do not write your own double-checked locking for initialization
- CP.111: Use a conventional pattern if you really need double-checked locking

Whitespace removed

Example simplified

Whitespace issue fixed.

punctuation fixed.
2016-10-03 10:21:04 +03:00
Malcolm Parsons
71df1537b3 P.5 Correct case of Int alias
Revert d9562f683d and part of 9590bb94b1
2016-10-02 19:58:34 +01:00
Malcolm Parsons
e66f5bb28e P.3 Split execution policy and container 2016-10-02 16:28:24 +01:00
Johel Ernesto Guerrero Peña
2a000ac21a In: Grammar and correction fixes
We use letters to identify the first part of a rule "number", not just one letter.
The rest are grammar fixes.
2016-10-01 19:18:50 -04:00
Oleksandr Senkovych
e0abec4259 Remove mode string from ifstream constructor in R.12 2016-09-28 11:23:18 +02:00
Krishna Kumar
7f872a9d50 Fixes wrong order of type and function name in naming scheme 2016-09-27 15:43:04 -07:00
Johel Ernesto Guerrero Peña
8aaf6e1b76 Correct glossary entry order 2016-09-27 13:42:22 -04:00
Johel Ernesto Guerrero Peña
138da22db4 Fix glossary definitions and grammar
A class isn't abstract for having a protected constructor, but for only having protected constructors.
2016-09-27 02:00:24 -04:00
Rian Quinn
8be1869663 Update C.128 to remove override from destructors
Clang Tidy has a a check called (modernize-use-override) that explicitly verifies that `override` be placed on destructors of derived classes whose base class is `virtual` as seen [here](https://github.com/Microsoft/clang-tools-extra/blob/master/test/clang-tidy/modernize-use-override.cpp#L48). This issue was brought up by @jaredgrubb in the following [ticket](https://github.com/isocpp/CppCoreGuidelines/issues/721#issuecomment-246627077) and was also seen [here](https://github.com/Bareflank/hypervisor/issues/208) as well. @gdr-at-ms closed the ticket stating that the C++ Core Guideline Editors have decided that `override` should not be placed on destructors, but the documentation makes no mention of this decision. The following PR addresses this issue. With the documentation updated, an issue ticket can be generated for Clang Tidy to have the destructor check modified to reflect the C++ Core Guidance.
2016-09-13 07:05:52 -06:00
Gabriel Dos Reis
3f33bd9c89 Merge pull request #730 from olafdietsche/spelling
Minor spelling fixes
2016-09-12 11:48:55 -07:00
Gabriel Dos Reis
729c515a2b Merge pull request #703 from amdn/master
T.44: Added `s` suffix to string literal
2016-09-12 11:13:04 -07:00
Andrew Pardoe
c4a19c99b2 Merge pull request #706 from tkruse/fix-examples2
Fix examples2
2016-09-12 11:11:16 -07:00
Andrew Pardoe
97503abeaa Merge pull request #700 from tkruse/fix-examples
fix code examples
2016-09-12 11:08:13 -07:00
Akim Demaille
2b80bc92a5 T.65: fix code examples 2016-09-12 18:41:54 +02:00
Olaf Dietsche
bb2e744c3f Minor spelling fixes 2016-09-11 17:19:52 +02:00
Thibault Kruse
1c0e2b7d11 fix invalid code 2016-09-10 22:56:15 +09:00
Thibault Kruse
25e3ec4652 improve code example, use() function makes little sense with void results of f() and g() 2016-09-10 22:56:15 +09:00
Thibault Kruse
7c991f0e7e fix varname 2016-09-10 22:56:15 +09:00
Thibault Kruse
a361c37f5e unique funIds 2016-09-10 22:56:15 +09:00
Thibault Kruse
9590bb94b1 fix code examples 2016-09-10 22:56:14 +09:00
Thibault Kruse
2db47928df fix unnecessary block 2016-09-10 22:56:11 +09:00
Thibault Kruse
6a39a88bf8 Fix initializer list example 2016-09-10 22:56:11 +09:00
Gabriel Dos Reis
3acba2ebae Merge pull request #726 from tkruse/fix-typos
Fix typos
2016-09-09 19:23:25 -07:00
Olaf Dietsche
bceec9e494 CP.3: Fix example: function declarations 2016-09-09 18:44:19 +02:00
Thibault Kruse
a11f1f7f53 fix typos 2016-09-07 18:17:59 +09:00
Felix Morgner
8078b0a1f8 Move whitespace to right place 2016-09-06 15:43:55 +02:00
Thibault Kruse
1e4b13bfb0 fix whitespace after comma 2016-09-06 18:32:23 +09:00
Thibault Kruse
9c148afad3 Fix transition of *Excption* to #### Exception in 4d7b1d 2016-09-06 18:31:47 +09:00
Thibault Kruse
254c123c14 fix internal link 2016-09-05 22:22:08 +09:00
Thibault Kruse
13419aa5dd fix code style 2016-09-05 22:17:03 +09:00
Thibault Kruse
603a1b4286 Fix whitespace inconsistencies, remove tabs 2016-09-05 22:08:04 +09:00
Thibault Kruse
27b585ad71 style issues 2016-09-05 22:08:04 +09:00
Bjarne Stroustrup
0aea7d997b Added Per.7
Design to enable optimization
2016-09-04 11:08:54 -04:00
Jeroen Habraken
bf0d7e415f Fixes the NL.26 link. 2016-08-31 16:32:34 -07:00
Neil MacIntosh
b5d5d3f547 Fix order of declarations inside example
Fixes #668.
2016-08-30 14:31:16 -07:00
Neil MacIntosh
d1f22ae88d Fix order of declarations inside example
As per #668, fixing order of declarations in example to match NL.16.
2016-08-30 14:22:40 -07:00
Bjarne Stroustrup
3ca23f1575 fix Enum.4 2016-08-29 15:50:47 -04:00
Bjarne Stroustrup
3ec8cfc5cc Issue 660
Note added
2016-08-28 14:49:47 -04:00
Bjarne Stroustrup
4d7b1d7b63 minor formatting changes 2016-08-28 14:39:49 -04:00
Bjarne Stroustrup
56b4efd430 fixing some bugs in examples
#697
2016-08-28 12:31:11 -04:00
Thibault Kruse
4d97aea4c9 fix typos 2016-08-28 11:58:16 +09:00
Bjarne Stroustrup
d7725aa37c ES.100
new example
2016-08-27 21:14:16 -04:00
Bjarne Stroustrup
1d53754694 Union section fleshed out
#692 #570
2016-08-27 14:49:57 -04:00
Bjarne Stroustrup
cbad9769de ES.102 fleshed out
response to issue #675
2016-08-26 16:30:20 -04:00
Bjarne Stroustrup
34e719bb36 ES.12: Do not reuse names in nested scopes
new rule, and a few minor fixes
2016-08-26 11:48:09 -04:00
Gabriel Dos Reis
ca798a640b Merge pull request #709 from tkruse/fix-typos
Fix typos
2016-08-25 20:02:23 -07:00
Thibault Kruse
83f60b4415 Fix typos 2016-08-26 04:59:00 +02:00
Thibault Kruse
5aea4a1fef style: fix code indentation 2016-08-26 04:03:20 +02:00
Bjarne Stroustrup
67191255fa Updates to NR section 2016-08-25 16:18:48 -04:00
Arturo Martín-de-Nicolás
d01675876f Added s suffix to string literal
As written, the type for "Hamlet" without the `s` suffix will be deduced to `const char*` instead of the intended `std::string`, see example earlier for auto deduced `std::string` for "Ophelia"s with the `s` suffix.
2016-08-24 16:01:48 -05:00
Bjarne Stroustrup
1ddd9cdb7a typo fix
P.11 issue #670
2016-08-24 11:18:58 -04:00
Andrew Pardoe
3f0aa7c379 Merge pull request #694 from tkruse/merge-leftovers
Bad Merge leftovers
2016-08-22 18:00:04 -07:00
Thibault Kruse
1931fdcff5 Google styleguide now lives on github 2016-08-23 00:15:42 +02:00
Thibault Kruse
a1c248b26f unique variable names in example 2016-08-22 23:21:14 +02:00
Thibault Kruse
c0bff45961 style fixes 2016-08-22 23:21:14 +02:00
Andrew Pardoe
9cf040ebec Merge branch 'fix-style-classname' of https://github.com/tkruse/CppCoreGuidelines into tkruse-fix-style-classname 2016-08-22 12:00:11 -07:00
Andrew Pardoe
fbe6aac021 Merge pull request #618 from tlanc007/CP.2_617
CP.2_617: Changed variable s to a tigher form of span.
2016-08-22 11:43:39 -07:00
Gabriel Dos Reis
6760960e7a Merge pull request #613 from tlanc007/C.33_610
C.33_610: changed owner<T>* to owner<T*> per issue 610
2016-08-22 11:39:31 -07:00
Gabriel Dos Reis
4efa0fb291 Merge pull request #666 from tkruse/dodgy-code
Minor dodgy code issues
2016-08-22 11:33:01 -07:00
Andrew Pardoe
7cbdb3d356 Merge branch 'fix-unique-anchors' of https://github.com/tkruse/CppCoreGuidelines into tkruse-fix-unique-anchors 2016-08-22 11:27:12 -07:00
Gabriel Dos Reis
7e34d8880c Merge pull request #681 from tkruse/rebased-typo-fixes
Rebased typo fixes
2016-08-22 11:25:56 -07:00
Andrew Pardoe
bfcffb8561 Merge branch 'master' of https://github.com/0x8000-0000/CppCoreGuidelines into 0x8000-0000-master 2016-08-22 11:16:42 -07:00
Andrew Pardoe
3f3d80d7ec Reapplying one fix from 680 after a slightly bad merge 2016-08-22 11:11:10 -07:00
Andrew Pardoe
6ba822f535 Merge branch 'upgrade-checkers' of https://github.com/tkruse/CppCoreGuidelines into tkruse-upgrade-checkers 2016-08-22 11:09:01 -07:00
Andrew Pardoe
7f510892e5 Merge pull request #680 from tkruse/fix-style
style fixes
2016-08-22 11:05:40 -07:00
Andrew Pardoe
9a9e958955 Manually fixed PR #657 2016-08-22 10:49:29 -07:00
Andreas Scherer
25044afca0 Correct a few typos.
A quick inspection with 'aspell -l en_US'.
2016-08-21 12:26:42 +02:00
Thibault Kruse
be304fedd6 R.1 example: change names according to NL.8 2016-08-18 02:00:36 +02:00
Thibault Kruse
0af83def79 Style: Rename classes with underscore as separator 2016-08-18 01:49:26 +02:00
Thibault Kruse
2bfb860cfe separate names with underscores 2016-08-18 01:47:12 +02:00
Thibault Kruse
0701c4df62 Style: Consistently name custom classes with initial capital and underscore notation 2016-08-18 01:33:29 +02:00
Thibault Kruse
00cf8d08ff Fix bad reference 2016-08-17 22:25:49 +02:00
Sam Bristow
9f2d2645ff Remove rogue comma from example 2016-08-17 18:29:08 +02:00
Passw
04cd9a5d73 fix typo 2016-08-17 18:28:24 +02:00
Robin Degen
d084dcef31 Fixed typo shuld -> should, fixed missing words 2016-08-17 18:26:59 +02:00
Thibault Kruse
70d056f087 Fix duplicate/wrong anchors. Fix Makefile uniq check for anchors, must sort 2016-08-17 18:05:33 +02:00
Thibault Kruse
4cbbf55bd3 style fixes 2016-08-17 18:01:58 +02:00
Thibault Kruse
6e1599f6f9 style fixes 2016-08-17 17:55:51 +02:00
Thibault Kruse
0120560f13 update to pypi cpplint 1.3.0, fix linter errors 2016-08-17 17:53:57 +02:00
Thibault Kruse
ced78ffad1 typo 2016-08-17 17:53:44 +02:00
Thibault Kruse
6867d13363 type error 2016-08-17 17:53:43 +02:00
Thibault Kruse
9160dbb818 invalid enums 2016-08-17 17:53:43 +02:00
Thibault Kruse
b14fe453a4 avoid keyword name 2016-08-17 17:53:43 +02:00
Thibault Kruse
9d4fc0b5cb bad type 2016-08-17 17:53:43 +02:00
Thibault Kruse
d6ffbfdcc2 missing semicolon 2016-08-17 17:53:43 +02:00
Thibault Kruse
3e1519beb3 bad parens within name 2016-08-17 17:53:43 +02:00
Thibault Kruse
bcca1488e8 unique var names in example 2016-08-17 17:53:43 +02:00
Thibault Kruse
46a26976ba typo in method invocation 2016-08-17 17:53:43 +02:00
Thibault Kruse
4e46bd9a8b fix indent 2016-08-17 17:53:43 +02:00
Thibault Kruse
12bdb63b06 fix parens 2016-08-17 17:53:42 +02:00
Thibault Kruse
6a8728a054 qualified access 2016-08-17 17:53:42 +02:00
Thibault Kruse
04345df6d0 remove duplicate constructor 2016-08-17 17:53:42 +02:00