Incomplete pages in For more items on the TODO list, please see C++ use their own incomplete-cpp tag.
I've looked at some of the C rules and recommendations, and here are my
recommendations for copying them across to C++.
DCL05-A - OK more-or-less as is.
DCL06-A - OK more-or-less as is.
DCL07-A - needs rethinking for C++.
DCL09-A - not appropriate for C++ because of ERR00-A.
DCL10-A - needs some reworking for C++ (note that ISO/IEC 14882-2003
does not use the term "variadic function").
DCL11-A - ditto.
DCL12-A - perhaps needs reworking for C++.
DCL30-C - needs reworking for C++.
DCL32-C - what are the C++ requirements on identifier length?
DCL33-C - not applicable?
DCL34-C - OK more-or-less as is.
DCL35-C - OK more-or-less as is, but need to change printf's in CS.
DCL36-C - needs reworking for C++.
EXP00-A - OK more-or-less as is.
EXP01-A - needs different examples.
EXP03-A - needs different examples.
EXP04-A - OK more-or-less as is.
EXP07-A - needs rethinking for C++.
EXP08-A - perhaps already covered by OBJ30-C.
EXP09-A - OK more-or-less as is.
EXP34-C - perhaps covered by DAN34-C.
EXP35-C - this appears to require some rethinking anyway.
EXP36-C - needs some thought for C++.
INT00-A - needs reworking for C++.
INT07-A - needs reworking for C++.
INT30-C - needs reworking for C++.
INT35-C - needs reworking for C++.
INT37-C - needs reworking for C++.
That's as far as I got.
By "OK more-or-less as is" I mean that it can be copied over as it is
but the references to C and the C Standard clearly must be changed to
C++.
When you copy this rule over to the C++ side:
FIO34-C. Use int to capture the return value of character IO functions
Coding Standard Development Guidelines.
These rules need professional editing:
Content by Label | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
|
These rules should be preserved:
Content by Label | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
|
These rules should be updated:
Content by Label | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
|
These rules should be deleted:
Content by Label | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
|
These rules are covered by C and do not require a C++ rule:
Content by Label | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
|
These rules have notes associated with them:
Content by Label | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Incomplete pages in C++ use the incomplete tag. Pages with hidden notes in them use the notes tag.
But C++ rules that were copied from C and not updated are marked with the incomplete-cpp tag.
C++ rules that are accurate, but need their sample code updated (from C) are tagged with the update-code tag.
...
Update references to C (eg C99) to references to C++
...
Pages should have tags to indicate the status of their corresponding checker in Compass Rose:
Tag | Meaning |
---|---|
ROSE catches all violations | |
ROSE catches some violations | |
ROSE could catch some or all violations, but doesn't yet. | |
ROSE doesn't catch violations, but will soon, | |
These rules can't be checked automatically. | |
These rules could be checked automatically in theory, but not by ROSE. | |
ROSE could check these rules if it recognized macro usage. | |
ROSE could check these rules if it recognized derived types in expressions, such as | |
ROSE could check these rules if it operated on multiple files at once. | |
ROSE could enforce this rule, but could not avoid catching some false positives. |
At this point, all rules should have one of these tags. That is, they should be completely or partially checked by ROSE, or they should be marked 'rose-possible', in that we will try to check them with ROSE, or they should have one of the nonapplicable tags indicating we don't think they can be checked with ROSE.
...
There are some rules in other standards that might make good C++ rules. They are tagged exportable-c++. Port to C++ those rules that are truly applicable.
...
review -> review + review-one -> review + review-two -> No tags
significant changes -> review or incompleteBe sure to add something about istream::get() which return int values, not char values.
...