TICS Coding Standard Viewer 
TIOBE Software Quality Framework
Print-friendly version
©TIOBE Software www.tiobe.com
 
C++ Coding Standard
Search

Change History

6.11 — 2017-06-24
Description Paul Jansen (TIOBE):
- RTC 47077: Improved synopsis and description of rule CFL#014.

6.10 — 2017-06-24
Description Paul Jansen (TIOBE):
- RTC 29011: Replaced the term "include file" by "header file".

6.9 — 2017-05-15
Description Paul Jansen (TIOBE):
- RTC 81703: Added exception to rule NAM#008.
- RTC 82228: Improved synopsis of rule CFL#020.

6.8 — 2017-05-13
Description Paul Jansen (TIOBE):
- RTC 109536: Improved rule ERR#012.

6.7 — 2017-05-04
Description Paul Jansen (TIOBE):
- RTC 66575: Improved rule INT#021.

6.6 — 2017-03-29
Description Paul Jansen (TIOBE):
- RTC 47083: Removed rule ERR#002.
- RTC 63275: Added exception to rule CFL#002.
- RTC 66579: Improved description of rule OOP#001.
- RTC 66582: Improved description of rule STY#020.
- RTC 84425: Removed rule POR#035.
- RTC 95342: Added rule OAL#015.

6.5 — 2017-03-21
Description Paul Jansen (TIOBE):
- RTC 82229: Changed synopsis of rule CON#008.

6.4 — 2017-02-20
Description Paul Jansen (TIOBE):
- RTC 88854: Extended rule INT#027.

6.3 — 2017-01-26
Description Paul Jansen (TIOBE):
- RTC 91090: Removed rule STY#018.

6.2 — 2016-12-24
Description Paul Jansen (TIOBE):
- RTC 94331: Changed all occurrences of NULL by nullptr.

6.1 — 2016-02-10
Description Paul Jansen (TIOBE)
- RTC 72958: Resurrected rule CFL#024.

6.0 — 2015-08-27
Description Paul Jansen (TIOBE)
- RTC 45178: Added rules OAL#011, OAL#012, OAL#013.
- RTC 45178: Improved rule OAL#008 to conform to RAII.
- RTC 47076: Extended rule INT#027 with keyword override.
- RTC 47081: Added exception of smart pointers to CFL#011 and CON#007.
- RTC 47085: Revised rule ERR#006 to conform to C++11.
- RTC 47087: Removed rule ERR#010.
- RTC 49185: Introduced the swap idiom for rule OLC#002.
- RTC 50551: Improved rule CFL#018 to use the C++11 range-based for loop.
- RTC 50555: Changed rule POR#032 to use the C++11 nullptr keyword.
- RTC 50557: Improved rule OAL#004 to be compliant with C++11.
- RTC 50558: Changed rule OLC#001 to conform to C++11.
- RTC 50559: Removed rule OOP#006.
- RTC 50560: Changed rule STY#020 to conform to C++11.
- RTC 50562: Introduced rule PCA#016.

5.8 — 2015-03-22
Description Paul Jansen (TIOBE)
- RTC-51109: improved description of rule OLC#004.

5.7 — 2015-01-05
Description Paul Jansen (TIOBE)
- RTC-46173: removed rule OAL#006 and extended rule OAL#007.

5.6 — 2014-11-10
Description Paul Jansen (TIOBE)
- Made rule INT#006 checkable.

5.5 — 2014-10-05
Description Paul Jansen (TIOBE)
- Fixed typos in description of rule CON#004.

5.4 — 2014-09-24
Description Paul Jansen (TIOBE)
- RTC-42457: added rule ORG#012.

5.3 — 2014-03-30
Description Paul Jansen (TIOBE)
- RTC-30209: removed rule INT#020.

5.2 — 2013-11-17
Description Paul Jansen (TIOBE)
- Made rule CFL#019 checkable.

5.1 — 2013-11-12
Description Paul Jansen (TIOBE)
- RTC-11329: made rule CON#007 checkable.
- RTC-19317: allowed UK English as well for rule COM#003.

5.0 (Authorized) — 2013-01-22
Description Paul Jansen (TIOBE)
- Processed review comments.
- RTC-2529: added rule CON#008.
- RTC-11836: removed functions from rule PRE#001 and changed severity level.

4.1 — 2012-11-01
Description Paul Jansen (TIOBE)
- RTC-1424: changed rule CFL#016 to use cyclomatic complexity.
- RTC-6472: added a rationale to rule POR#025.
- RTC-6982: added an exception for "stdafx.h" to rule ORG#005.
- RTC-6983: removed rule PCA#012.
- RTC-6985: added a rationale to rule CON#006.
- RTC-8478: introduced new rule POR#038.
- RTC-9098: added built-in type conversions to rule CON#004 and improved its description.
- RTC-10095: removed the following rules as discussed by the C++ coding standards refresh team: CFL#003, CFL#008, CFL#010, CFL#012, CFL#015, CFL#021, CFL#023, CFL#024, COM#001, COM#004, COM#007, CON#003, CON#005, ERR#004, ERR#007, ERR#008, ERR#009, ERR#013, GEN#001, GEN#003, INT#003, INT#004, INT#005, INT#007, INT#009, INT#012, INT#013, INT#016, INT#017, INT#018, INT#019, INT#024, INT#025, NAM#001, NAM#004, NAM#006, NAM#007, NAM#009, NAM#010, NAM#011, NAM#012, NAM#015, OAL#001, OAL#010, OLC#007, OLC#011, OLC#013, OLC#014, OOP#010, OOP#012, OOP#014, OOP#015, OOP#016, OPT#003, ORG#008, PCA#004, PCA#014, PCA#015, POR#023, POR#024, POR#026, POR#027, POR#034, STA#003, STY#001, STY#003, STY#005, STY#007, STY#008, STY#009, STY#010, STY#011, STY#012, STY#013, STY#014, STY#015, STY#016, STY#019, STY#021, STY#023, STY#026, STY#027, STY#030, STY#031.
- RTC-10095: Adapted the following rules as discussed by the C++ coding standards refresh team: CFL#014, CFL#016, CFL#018, COM#002, CON#006, INT#006, INT#008, INT#014, OLC#009, OLC#010, OLC#012, OLC#019, OOP#002, OOP#005, OOP#006, OOP#007, ORG#007, PCA#009, POR#035.

4.0 (Authorized) — 2012-04-25
Description Issam Tlili
Reworked version after review of version 3.1

3.1 — 2012-02-14
Description Issam Tlili
WI-952: adapted description of OLC#012.
WI-953: in OLC#016 aligned the C++ implementation with the C# implementation.
WI-970: new C++ rule STY#031.
WI-984: exclude namespaces from rule STY#009.
WI-988: relax the allowed extension for include files.
WI-992: in POR#003 changed severity level to level 4.
WI-993: adapted the description in CON#001, in CON#003 removed the second part of the description, it is already mentioned in CON#001.
WI-1002: added exception for const array definition in OLC#009.
WI-1040: adapted ERR#005 and CON#004.
WI-1057: adapted STY#012 and STY#013.
WI-1058: adapted rule for ternary operators.
WI-1003: added description for OLC#018.
WI-954: new rule INT#030.
WI-1079: adapted description of OAL#005, and removed reference to OLC#013.
WI-1086: adapted INT#013.
WI-1415: adapted OLC#019.
WI-1091: removed OLC#015, in CFL#023 removed reference to OLC#015.
WI-1239: new rule NAM#015, removed NAM#003, NAM#005, NAM#014 and STY#022.

3.0.1 — 2011-11-22
Description Issam Tlili
Draft, preparations for 3.1

3.0 (Authorized) — 2010-08-27
Description Issam Tlili
Reworked version after review of version 2.4

2.4 — 2010-07-08
Description Issam Tlili
Reworked version after review of version 2.2
Set rule CFL#024 to the right Category (CFL).

2.3 — 2010-07-08
Description Issam Tlili
Reworked version after review of version 2.2
Rule STY#031 moved to CFL#24

2.2 — 2010-05-17
Description Issam Tlili
IM-TA00006832: Adapt STY#024 for include naming.
IM-TA00006738: Clarified description in POR#003.
IM-TA00006714: New rule STY#030 for useless statements.
IM-TA00006103: New rule OLC#020; don't pass member variables to the base class in the constructor.
IM-TA00005056: Rule moved from POR#013 to GEN#003, and adapted synopsis.
IM-TA00004284: POR#018; severity changed to level 1.
IM-TA00002758: New rule OOP#018 for overriding const member function.
IM-TA00002632: New rule INT#029; Use built-in boolean type where possible.
IM-TA00002631 and IM-TA00002630: New rule CON#007; Do not convert implicitly from a boolean type to a non-boolean type.

2.1 — 2010-05-17
Description Issam Tlili
IM-TA00006832: Adapt STY#024 for include naming
IM-TA00006738: Clarified description in POR#003
IM-TA00006714: Add rule for useless statements

2.0 (Authorized) — 2009-04-15
Description Vic Henderikx
Reworked version after review of version 1.7

1.7 — 2009-03-18
Description Vic Henderikx
IM-TA00004418: PCA#001: also forbid functions using old C-style allocation
IM-TA00004585: NAM#005: allow m_PascalCase for member variables
IM-TA00004654: removed NAM#013; added ORG#011: always namespaces
IM-TA00005570: Added OAL#010: don't overload new or delete
IM-TA00005054: CON#004 now level 1; added CON#006 reinterpret_cast; updated CON#001 (removed reinterpret_cast)
IM_TA00004313: OLC#017 also for pointers to all types
IM_TA00004589: ERR#017 added: catch_all must rethrow
IM_TA00004789: ORG#001: also allow #pragma once
IM_TA00004884: STY#010: remove part about repeating "virtual" or "static" in comment
IM_TA00004891: CFL#021: non-simple types iso user defined types
IM-TA00005040: OOP#008: "in a class" -->  "in a class or in a namespace"
IM-TA00004398: INT#020: use * or & for class-typed arguments; now also for structs
IM-TA00005407: new rule POR#036: don't use parenthesis when declaring a class variable using default constructor
IM-TA00004890: removed OLC#013 about not giving values to simple types in destructors

1.6.1 — 2008-11-26
Description 

Vic Henderikx

PCA#001: also avoid functions using C-style allocators


1.6 — 2008-05-22
Description Vic Henderikx Added PCA#013 (avoid trigraphs) POR#010 is not checked by TICS (decision CCB)

1.5 — 2008-05-21
Description Changed PMS to Philips Healthcare for rule GEN#002

1.4 — 2008-04-25
Description Daan van der Munnik
changed PMS to Philips Healthcare

1.3 — 2008-04-25
Description Vic Henderikx
IM-TA00003860 (CON#002 set from level 1 to level 2)
IM-TA00004003 (Removed STY#028)
IM-TA00003640 (Rephrased OLC#015)
IM-TA00004004 (INT#002: Removed paragraph about naming of members)
IM-TA00004005 (Removed INT#016)

1.2 — 2008-04-25
Description Update Philips Logo

1.1 — 2008-04-25
Description Initial Import from firebird to oracle