CERT Standard Compliance

CERT is a secure coding standard that supports C and C++ programming languages. These standards are reliable, safe, and secure for the software systems used.

CERT TagDescription
CERT-FLP30-CDo not use floating-point variables as loop counters
CERT-DCL03-CUse a static assertion to test the value of a constant expression
CERT-DCL16-CUse "L," not "l," to indicate a long value
CERT-ENV33-CDo not call system()
CERT-ERR34-CDetect errors when converting a string to a number.
CERT-FIO38-CDo not copy a FILE object
CERT-FLP30-CDo not use floating-point variables as loop counters
CERT-MSC30-CDo not use the rand() function for generating pseudorandom numbers
CERT-MSC32-CEnsure your random number generator is properly seeded
CERT-MEM-35-CAllocate sufficient memory for an object
CERT-FLP30-CPPDo not use floating-point variables as loop counters
CERT-DCL21-CPPOverloaded postfix increment and decrement operators should return a const object.
CERTDCL50-CPPDo not define a C-style variadic function
CERT-DCL54-CPPOverload allocation and deallocation functions as a pair in the same scope
CERT-DCL58-CPPDo not modify the standard namespaces
Skip to end of metadata.
CERT-DCL59-CPPDo not define an unnamed namespace in a header file.
CERT-ERR09-CPPCatch exceptions by lvalue reference
CERT-ERR52-CPPDo not use setjmp() or longjmp().
CERT-ERR58-CPPHandle all exceptions thrown before main() begins executing
CERT-ERR60-CPPException objects must be nothrow copy constructible
CERT-ERR61-CPPCatch exceptions by lvalue reference
CERT-MSC50-CPPDo not use std::rand() for generating pseudorandom numbers
CERT-MSC51-CPPEnsure your random number generator is properly seeded
CERT-OOP11-CPPDo not copy-initialize members or base classes from a move constructor.
CERT-OOP54-CPPGracefully handle a self-copy assignment