Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Checker

Guideline

C++0014 DCL52-CPP. Never qualify a reference type with const or volatile
C++1067 DCL60-CPP. Obey the one-definition rule
C++1109 DCL53-CPP. Do not write syntactically ambiguous declarations
C++1509 DCL60-CPP. Obey the one-definition rule
C++1510 DCL60-CPP. Obey the one-definition rule
C++1552 DCL56-CPP. Avoid cycles during initialization of static objects
C++1554 DCL56-CPP. Avoid cycles during initialization of static objects
C++1704 DCL56-CPP. Avoid cycles during initialization of static objects
C++1772 CON53-CPP. Avoid deadlock by locking in a predefined order
C++1773 CON53-CPP. Avoid deadlock by locking in a predefined order
C++1774 CON52-CPP. Prevent data races when accessing bit-fields from multiple threads
C++1775 CON52-CPP. Prevent data races when accessing bit-fields from multiple threads
C++1778 CON55-CPP. Preserve thread safety and liveness when using condition variables
C++1779 CON55-CPP. Preserve thread safety and liveness when using condition variables
C++2012 DCL50-CPP. Do not define a C-style variadic function
C++2045 DCL57-CPP. Do not let exceptions escape from destructors or deallocation functions
C++2047 DCL57-CPP. Do not let exceptions escape from destructors or deallocation functions
C++2110 MEM51-CPP. Properly deallocate dynamically allocated resources
C++2111 MEM51-CPP. Properly deallocate dynamically allocated resources
C++2112 MEM51-CPP. Properly deallocate dynamically allocated resources
C++2113 MEM51-CPP. Properly deallocate dynamically allocated resources
C++2118 MEM51-CPP. Properly deallocate dynamically allocated resources
C++2160 DCL54-CPP. Overload allocation and deallocation functions as a pair in the same scope
C++2510 DCL53-CPP. Do not write syntactically ambiguous declarations
C++2518 DCL59-CPP. Do not define an unnamed namespace in a header file
C++2625 DCL50-CPP. Do not define a C-style variadic function
C++2668 2888 CTR54 MSC54-CPP. Do not subtract iterators that do not refer to the same container A signal handler must be a plain old function
C++2726 3013 EXP53 INT50-CPP. Do not read uninitialized memory cast to an out-of-range enumeration value
C++2727 3033 EXP53 EXP56-CPP. Do not read uninitialized memory call a function with a mismatched language linkage
C++2728 3038 EXP53 EXP56-CPP. Do not read uninitialized memory call a function with a mismatched language linkage
C++2761 3066 CTR54 EXP55-CPP. Do not subtract iterators that do not refer to the same container access a cv-qualified object through a cv-unqualified type
C++2762 3072 CTR54 OOP51-CPP. Do not subtract iterators that do not refer to the same container slice derived objects
C++2763 3073 CTR54 CTR56-CPP. Do not subtract iterators that do not refer to the same container use pointer arithmetic on polymorphic objects
C++2766 3112 CTR54 EXP57-CPP. Do not subtract iterators that do not refer to the same container cast or delete pointers to incomplete classes
C++2767 3119 CTR54 MEM54-CPP. Do not subtract iterators that do not refer to the same container Provide placement new with properly aligned pointers to sufficient storage capacity
C++2768 3128 CTR54 MEM54-CPP. Do not subtract iterators that do not refer to the same container Provide placement new with properly aligned pointers to sufficient storage capacity
C++2810 3129 OOP55 MEM57-CPP. Do not use pointer-to-member operators to access nonexistent members Avoid using default operator new for over-aligned types
C++2811 3139 OOP55 CTR50-CPP. Do not use pointer-to-member operators to access nonexistent members Guarantee that container indices and iterators are within the valid range
C++2812 3140 EXP54 CTR50-CPP. Do not access an object outside of its lifetime Guarantee that container indices and iterators are within the valid range
C++2812 3161 OOP55 ERR62-CPP. Do not use pointer-to-member operators to access nonexistent members Detect errors when converting a string to a number
C++2813 3162 EXP54 STR53-CPP. Do not access an object outside of its lifetime Range check element access
C++2813 3163 OOP55 STR53-CPP. Do not use pointer-to-member operators to access nonexistent members Range check element access
C++2814 3164 EXP54 STR53-CPP. Do not access an object outside of its lifetime Range check element access
C++3165 STR53-CPP. Range check element access
C++2814 3166 OOP55 EXP51-CPP. Do not use pointer-to-member operators to access nonexistent members delete an array through a pointer of the incorrect type
C++2835 3180 STR50 DCL58-CPP. Guarantee that storage for strings has sufficient space for character data and the null terminator Do not modify the standard namespaces
C++2836 3181 STR50 DCL58-CPP. Guarantee that storage for strings has sufficient space for character data and the null terminator Do not modify the standard namespaces
C++2839 3182 STR50 DCL58-CPP. Guarantee that storage for strings has sufficient space for character data and the null terminator Do not modify the standard namespaces
C++2886 3220 MSC53 EXP50-CPP. Do not return from a function declared [[noreturn]] depend on the order of evaluation for side effects
C++2888 3221 MSC52 EXP50-CPP. Value-returning functions must return a value from all exit paths Do not depend on the order of evaluation for side effects
C++2888 3222 MSC54 EXP50-CPP. A signal handler must be a plain old function Do not depend on the order of evaluation for side effects
C++2891 3223 CTR50 EXP50-CPP. Guarantee that container indices and iterators are within the valid range Do not depend on the order of evaluation for side effects
C++2930 3225 EXP54 CTR58-CPP. Do not access an object outside of its lifetime Predicate function objects should not be mutable
C++2931 3225 EXP54 MEM52-CPP. Do not access an object outside of its lifetime Detect and handle memory allocation errors
C++2932 3226 EXP54 CTR58-CPP. Do not access an object outside of its lifetime Predicate function objects should not be mutable
C++2933 3226 EXP54 MEM52-CPP. Do not access an object outside of its lifetime Detect and handle memory allocation errors
C++2934 3227 EXP54 CTR58-CPP. Do not access an object outside of its lifetime Predicate function objects should not be mutable
C++2961 3227 EXP53 MEM52-CPP. Do not read uninitialized memory Detect and handle memory allocation errors
C++2962 3228 EXP53 EXP50-CPP. Do not read uninitialized memory depend on the order of evaluation for side effects
C++2963 3228 EXP53 CTR58-CPP. Do not read uninitialized memory Predicate function objects should not be mutable
C++2966 3228 EXP53 MEM52-CPP. Do not read uninitialized memory Detect and handle memory allocation errors
C++2967 3229 EXP53 CTR58-CPP. Do not read uninitialized memory Predicate function objects should not be mutable
C++2968 3229 EXP53 MEM52-CPP. Do not read uninitialized memory Detect and handle memory allocation errors
C++2971 3230 EXP53 CTR58-CPP. Do not read uninitialized memory Predicate function objects should not be mutable
C++2972 3231 EXP53 CTR58-CPP. Do not read uninitialized memory Predicate function objects should not be mutable
C++2973 3232 EXP53 CTR58-CPP. Do not read uninitialized memory Predicate function objects should not be mutable
C++2976 3233 EXP53 CTR58-CPP. Do not read uninitialized memory Predicate function objects should not be mutable
C++2977 3234 EXP53 CTR58-CPP. Do not read uninitialized memory Predicate function objects should not be mutable
C++2978 3240 EXP53 EXP52-CPP. Do not read uninitialized memory rely on side effects in unevaluated operands
C++3013 3241 INT50 EXP52-CPP. Do not cast to an out-of-range enumeration value rely on side effects in unevaluated operands
C++3033 3293 EXP56 CTR57-CPP. Do not call a function with a mismatched language linkage Provide a valid ordering predicate
C++3038 3337 EXP56 MEM51-CPP. Do not call a function with a mismatched language linkage Properly deallocate dynamically allocated resources
C++3066 3339 EXP55 MEM51-CPP. Do not access a cv-qualified object through a cv-unqualified type Properly deallocate dynamically allocated resources
C++3072 3402 OOP51 OOP52-CPP. Do not slice derived objects delete a polymorphic object without a virtual destructor
C++3073 3403 CTR56 OOP52-CPP. Do not use pointer arithmetic on polymorphic objects delete a polymorphic object without a virtual destructor
C++3112 3404 EXP57 OOP52-CPP. Do not cast or delete pointers to incomplete classes delete a polymorphic object without a virtual destructor
C++3119 3508 MEM54 ERR60-CPP. Provide placement new with properly aligned pointers to sufficient storage capacity Exception objects must be nothrow copy constructible
C++3128 3510 MEM54 ERR53-CPP. Provide placement new with properly aligned pointers to sufficient storage capacity Do not reference base classes or class data members in a constructor or destructor function-try-block handler
C++3129 3802 MEM57 CTR53-CPP. Avoid using default operator new for over-aligned types Use valid iterator ranges
C++3139 3809 CTR50 ERR59-CPP. Guarantee that container indices and iterators are within the valid range Do not throw an exception across execution boundaries
C++3140 3810 CTR50 ERR59-CPP. Guarantee that container indices and iterators are within the valid range Do not throw an exception across execution boundaries
C++3161 3852 ERR62 EXP58-CPP. Detect errors when converting a string to a number Pass an object of the correct type to va_start
C++3162 3853 STR53 EXP58-CPP. Range check element access Pass an object of the correct type to va_start
C++3163 3915 STR53 EXP59-CPP. Range check element access Use offsetof() on valid types and members
C++3164 3916 STR53 EXP59-CPP. Range check element access Use offsetof() on valid types and members
C++3165 4003 STR53 EXP54-CPP. Range check element access Do not access an object outside of its lifetime
C++3166 4026 EXP51 EXP54-CPP. Do not delete an array through a pointer of the incorrect type access an object outside of its lifetime
C++3180 4030 DCL58 ERR54-CPP. Do not modify the standard namespaces Catch handlers should order their parameter types from most derived to least derived
C++3181 4031 DCL58 ERR61-CPP. Do not modify the standard namespaces Catch exceptions by lvalue reference
C++3182 4032 DCL58 DCL57-CPP. Do not modify the standard namespaces let exceptions escape from destructors or deallocation functions
C++3220 4035 EXP50 ERR51-CPP. Do not depend on the order of evaluation for side effects Handle all exceptions
C++3221 4035 EXP50 ERR55-CPP. Do not depend on the order of evaluation for side effects C++3222 Honor exception specifications
C++4036 ERR51-CPP. Handle all exceptions EXP50-CPP. Do not depend on the order of evaluation for side effects
C++3223 4036 EXP50 ERR55-CPP. Do not depend on the order of evaluation for side effects Honor exception specifications
C++3225 4037 CTR58 ERR51-CPP. Predicate function objects should not be mutable Handle all exceptions
C++3225 4053 MEM52 OOP53-CPP. Detect and handle memory allocation errors Write constructor member initializers in the canonical order
C++3226 4072 CTR58 OOP54-CPP. Predicate function objects should not be mutable Gracefully handle self-copy assignment
C++3226 4073 MEM52 OOP54-CPP. Detect and handle memory allocation errors Gracefully handle self-copy assignment
C++3227 4075 CTR58 ERR56-CPP. Predicate function objects should not be mutable Guarantee exception safety
C++3227 4075 MEM52 OOP54-CPP. Detect and handle memory allocation errors Gracefully handle self-copy assignment
C++3228 4075 EXP50 OOP58-CPP. Do not depend on the order of evaluation for side effects Copy operations must not mutate the source object
C++3228 4076 CTR58 ERR56-CPP. Predicate function objects should not be mutable Guarantee exception safety
C++3228 4076 MEM52 OOP54-CPP. Detect and handle memory allocation errors Gracefully handle self-copy assignment
C++3229 4260 CTR58 OOP50-CPP. Predicate function objects should not be mutable Do not invoke virtual functions from constructors or destructors
C++3229 4261 MEM52 OOP50-CPP. Detect and handle memory allocation errors Do not invoke virtual functions from constructors or destructors
C++3230 4262 CTR58 MEM51-CPP. Predicate function objects should not be mutable Properly deallocate dynamically allocated resources
C++3231 4263 CTR58 MEM51-CPP. Predicate function objects should not be mutable Properly deallocate dynamically allocated resources
C++3232 4264 CTR58 MEM51-CPP. Predicate function objects should not be mutable Properly deallocate dynamically allocated resources
C++3233 4273 CTR58 OOP50-CPP. Predicate function objects should not be mutable Do not invoke virtual functions from constructors or destructors
C++3234 4274 CTR58 OOP50-CPP. Predicate function objects should not be mutable Do not invoke virtual functions from constructors or destructors
C++3240 4275 EXP52 OOP50-CPP. Do not rely on side effects in unevaluated operands invoke virtual functions from constructors or destructors
C++3241 4276 EXP52 OOP50-CPP. Do not rely on side effects in unevaluated operands invoke virtual functions from constructors or destructors
C++3293 4277 CTR57 OOP50-CPP. Provide a valid ordering predicate Do not invoke virtual functions from constructors or destructors
C++3337 4278 MEM51 OOP50-CPP. Properly deallocate dynamically allocated resources Do not invoke virtual functions from constructors or destructors
C++3339 4279 MEM51 OOP50-CPP. Properly deallocate dynamically allocated resources Do not invoke virtual functions from constructors or destructors
C++3402 4280 OOP52 OOP50-CPP. Do not delete a polymorphic object without a virtual destructor invoke virtual functions from constructors or destructors
C++3403 4281 OOP52 OOP50-CPP. Do not delete a polymorphic object without a virtual destructor invoke virtual functions from constructors or destructors
C++3404 4282 OOP52 OOP50-CPP. Do not delete a polymorphic object without a virtual destructor invoke virtual functions from constructors or destructors
C++3508 4303 ERR60 MEM50-CPP. Exception objects must be nothrow copy constructible Do not access freed memory
C++3510 4304 ERR53 MEM50-CPP. Do not reference base classes or class data members in a constructor or destructor function-try-block handler access freed memory
C++3520 4631 MEM54 DCL57-CPP. Provide placement new with properly aligned pointers to sufficient storage capacity Do not let exceptions escape from destructors or deallocation functions
C++3521 4632 MEM54 MEM52-CPP. Provide placement new with properly aligned pointers to sufficient storage capacity Detect and handle memory allocation errors
C++3522 4632 MEM54 ERR55-CPP. Provide placement new with properly aligned pointers to sufficient storage capacity Honor exception specifications
C++3523 4634 MEM54 ERR58-CPP. Provide placement new with properly aligned pointers to sufficient storage capacity Handle all exceptions thrown before main() begins executing
C++3526 4636 CTR52 ERR58-CPP. Guarantee that library functions do not overflow Handle all exceptions thrown before main() begins executing
C++3526 4637 CTR55 ERR58-CPP. Do not use an additive operator on an iterator if the result would overflow Handle all exceptions thrown before main() begins executing
C++3527 4639 CTR52 ERR54-CPP. Guarantee that library functions do not overflow Catch handlers should order their parameter types from most derived to least derived
C++3527 4639 CTR55 ERR58-CPP. Do not use an additive operator on an iterator if the result would overflow Handle all exceptions thrown before main() begins executing
C++3528 4671 CTR52 EXP55-CPP. Guarantee that library functions do not overflow C++3528 CTR55-CPP. Do not use an additive operator on an iterator if the result would overflow Do not access a cv-qualified object through a cv-unqualified type
C++3529 4986 CTR52 CON56-CPP. Guarantee that library functions do not overflow Do not speculatively lock a non-recursive mutex that is already owned by the calling thread
C++3529 4987 CTR55 CON56-CPP. Do not use an additive operator on an iterator if the result would overflow speculatively lock a non-recursive mutex that is already owned by the calling thread
C++3530 5003 CTR52 DCL51-CPP. Guarantee that library functions do not overflow Do not declare or define a reserved identifier
C++3530 5014 CTR55 ERR50-CPP. Do not use an additive operator on an iterator if the result would overflow abruptly terminate the program
C++3531 5015 CTR52 ERR52-CPP. Guarantee that library functions do not overflow Do not use setjmp() or longjmp()
C++3531 5017 CTR55 OOP57-CPP. Prefer special member functions and overloaded operators to C Standard Library functions
C++5018 CON51-CPP. Ensure actively held locks are released on exceptional conditions Do not use an additive operator on an iterator if the result would overflow
C++3532 5019 CTR52 CON54-CPP. Guarantee that library functions do not overflow Wrap functions that can spuriously wake up in a loop
C++3532 5028 CTR55 MSC50-CPP. Do not use an additive operator on an iterator if the result would overflow std::rand() for generating pseudorandom numbers
C++3533 5038 CTR52 OOP57-CPP. Guarantee that library functions do not overflow Prefer special member functions and overloaded operators to C Standard Library functions
C++3533 5041 CTR55 MSC51-CPP. Do not use an additive operator on an iterator if the result would overflow Ensure your random number generator is properly seeded
C++3534 5216 CTR52 STR50-CPP. Guarantee that library functions do not overflow storage for strings has sufficient space for character data and the null terminator
DF726 EXP53 C++3534 CTR55-CPP. Do not use an additive operator on an iterator if the result would overflow
C++3802 CTR53-CPP. Use valid iterator ranges
read uninitialized memory
DF961 CON50-CPP. Do not destroy a mutex while it is locked
DF978 EXP53 C++3809 ERR59-CPP. Do not throw an exception across execution boundaries C++3810 read uninitialized memory
DF2668 CTR54 ERR59-CPP. Do not throw an exception across execution boundaries
C++3852 EXP58-CPP. Pass an object of the correct type to va_start
C++3853 EXP58-CPP. Pass an object of the correct type to va_start
C++3915 EXP59-CPP. Use offsetof() on valid types and members
C++3916 EXP59-CPP. Use offsetof() on valid types and members
C++4003 EXP54-CPP. Do not access an object outside of its lifetime
C++4026 EXP54-CPP. Do not access an object outside of its lifetime
C++4030 ERR54-CPP. Catch handlers should order their parameter types from most derived to least derived
C++4031 ERR61-CPP. Catch exceptions by lvalue reference
C++4032 DCL57-CPP. Do not let exceptions escape from destructors or deallocation functions
C++4035 ERR51-CPP. Handle all exceptions
C++4035 ERR55-CPP. Honor exception specifications
C++4036 ERR51-CPP. Handle all exceptions
C++4036 ERR55-CPP. Honor exception specifications
C++4037 ERR51-CPP. Handle all exceptions
C++4053 OOP53-CPP. Write constructor member initializers in the canonical order
C++4072 OOP54-CPP. Gracefully handle self-copy assignment
C++4073 OOP54-CPP. Gracefully handle self-copy assignment
C++4075 ERR56-CPP. Guarantee exception safety
C++4075 OOP54-CPP. Gracefully handle self-copy assignment
C++4075 OOP58-CPP. Copy operations must not mutate the source object
C++4076 ERR56-CPP. Guarantee exception safety
C++4076 OOP54-CPP. Gracefully handle self-copy assignment
C++4260 OOP50-CPP. Do not invoke virtual functions from constructors or destructors
C++4261 OOP50-CPP. Do not invoke virtual functions from constructors or destructors
C++4262 MEM51-CPP. Properly deallocate dynamically allocated resources
C++4263 MEM51-CPP. Properly deallocate dynamically allocated resources
C++4264 MEM51-CPP. Properly deallocate dynamically allocated resources
C++4273 OOP50-CPP. Do not invoke virtual functions from constructors or destructors
C++4274 OOP50-CPP. Do not invoke virtual functions from constructors or destructors
C++4275 OOP50-CPP. Do not invoke virtual functions from constructors or destructors
C++4276 OOP50-CPP. Do not invoke virtual functions from constructors or destructors
C++4277 OOP50-CPP. Do not invoke virtual functions from constructors or destructors
C++4278 OOP50-CPP. Do not invoke virtual functions from constructors or destructors
C++4279 OOP50-CPP. Do not invoke virtual functions from constructors or destructors
C++4280 OOP50-CPP. Do not invoke virtual functions from constructors or destructors
C++4281 OOP50-CPP. Do not invoke virtual functions from constructors or destructors
C++4282 OOP50-CPP. Do not invoke virtual functions from constructors or destructors
C++4303 MEM50-CPP. Do not access freed memory
C++4304 MEM50-CPP. Do not access freed memory
C++4631 DCL57-CPP. Do not let exceptions escape from destructors or deallocation functions
C++4632 MEM52-CPP. Detect and handle memory allocation errors
C++4632 ERR55-CPP. Honor exception specifications
C++4634 ERR58-CPP. Handle all exceptions thrown before main() begins executing
C++4636 ERR58-CPP. Handle all exceptions thrown before main() begins executing
C++4637 ERR58-CPP. Handle all exceptions thrown before main() begins executing
C++4639 ERR54-CPP. Catch handlers should order their parameter types from most derived to least derived
C++4639 ERR58-CPP. Handle all exceptions thrown before main() begins executing
C++4671 EXP55-CPP. Do not access a cv-qualified object through a cv-unqualified type
C++4701 EXP63-CPP. Do not rely on the value of a moved-from object
C++4702 EXP63-CPP. Do not rely on the value of a moved-from object
C++4703 EXP63-CPP. Do not rely on the value of a moved-from object
C++4706 EXP61-CPP. A lambda object must not outlive any of its reference captured objects
C++4707 EXP61-CPP. A lambda object must not outlive any of its reference captured objects
C++4708 EXP61-CPP. A lambda object must not outlive any of its reference captured objects
C++4711 FIO50-CPP. Do not alternately input and output from a file stream without an intervening positioning call
C++4712 FIO50-CPP. Do not alternately input and output from a file stream without an intervening positioning call
C++4713 FIO50-CPP. Do not alternately input and output from a file stream without an intervening positioning call
C++4721 MEM56-CPP. Do not store an already-owned pointer value in an unrelated smart pointer
C++4722 MEM56-CPP. Do not store an already-owned pointer value in an unrelated smart pointer
C++4723 MEM56-CPP. Do not store an already-owned pointer value in an unrelated smart pointer
C++4726 EXP62-CPP. Do not access the bits of an object representation that are not part of the object's value representation
C++4727 EXP62-CPP. Do not access the bits of an object representation that are not part of the object's value representation
C++4728 EXP62-CPP. Do not access the bits of an object representation that are not part of the object's value representation
C++4729 EXP62-CPP. Do not access the bits of an object representation that are not part of the object's value representation
C++4731 EXP62-CPP. Do not access the bits of an object representation that are not part of the object's value representation
C++4732 EXP62-CPP. Do not access the bits of an object representation that are not part of the object's value representation
C++4733 EXP62-CPP. Do not access the bits of an object representation that are not part of the object's value representation
C++4734 EXP62-CPP. Do not access the bits of an object representation that are not part of the object's value representation
C++4736 MEM55-CPP. Honor replacement dynamic storage management requirements
C++4737 MEM55-CPP. Honor replacement dynamic storage management requirements
C++4738 MEM55-CPP. Honor replacement dynamic storage management requirements
C++4739 MEM55-CPP. Honor replacement dynamic storage management requirements
C++4741 EXP60-CPP. Do not pass a nonstandard-layout type object across execution boundaries
C++4742 EXP60-CPP. Do not pass a nonstandard-layout type object across execution boundaries
C++4743 EXP60-CPP. Do not pass a nonstandard-layout type object across execution boundaries
C++4746 CTR51-CPP. Use valid references, pointers, and iterators to reference elements of a container
C++4746 STR52-CPP. Use valid references, pointers, and iterators to reference elements of a basic_string
C++4747 CTR51-CPP. Use valid references, pointers, and iterators to reference elements of a container
C++4747 STR52-CPP. Use valid references, pointers, and iterators to reference elements of a basic_string
C++4748 CTR51-CPP. Use valid references, pointers, and iterators to reference elements of a container
C++4748 STR52-CPP. Use valid references, pointers, and iterators to reference elements of a basic_string
C++4749 CTR51-CPP. Use valid references, pointers, and iterators to reference elements of a container
C++4749 STR52-CPP. Use valid references, pointers, and iterators to reference elements of a basic_string
C++4756 ERR57-CPP. Do not leak resources when handling exceptions
C++4757 ERR57-CPP. Do not leak resources when handling exceptions
C++4758 ERR57-CPP. Do not leak resources when handling exceptions
C++4761 MEM53-CPP. Explicitly construct and destruct objects when manually managing object lifetime
C++4762 MEM53-CPP. Explicitly construct and destruct objects when manually managing object lifetime
C++4766 MEM53-CPP. Explicitly construct and destruct objects when manually managing object lifetime
C++4767 MEM53-CPP. Explicitly construct and destruct objects when manually managing object lifetime
C++4770 STR51-CPP. Do not attempt to create a std::string from a null pointer
C++4771 STR51-CPP. Do not attempt to create a std::string from a null pointer
C++4772 STR51-CPP. Do not attempt to create a std::string from a null pointer
C++4773 STR51-CPP. Do not attempt to create a std::string from a null pointer
C++4774 STR51-CPP. Do not attempt to create a std::string from a null pointer
C++4776 OOP56-CPP. Honor replacement handler requirements
C++4777 OOP56-CPP. Honor replacement handler requirements
C++4778 OOP56-CPP. Honor replacement handler requirements
C++4779 OOP56-CPP. Honor replacement handler requirements
C++4786 FIO51-CPP. Close files when they are no longer needed
C++4787 FIO51-CPP. Close files when they are no longer needed
C++4788 FIO51-CPP. Close files when they are no longer needed
C++4941 DCL55-CPP. Avoid information leakage when passing a class object across a trust boundary
C++4942 DCL55-CPP. Avoid information leakage when passing a class object across a trust boundary
C++4943 DCL55-CPP. Avoid information leakage when passing a class object across a trust boundary
C++4961 CON50-CPP. Do not destroy a mutex while it is locked
C++4962 CON50-CPP. Do not destroy a mutex while it is locked
C++4986 CON56-CPP. Do not speculatively lock a non-recursive mutex that is already owned by the calling thread
C++4987 CON56-CPP. Do not speculatively lock a non-recursive mutex that is already owned by the calling thread
C++5003 DCL51-CPP. Do not declare or define a reserved identifier
C++5014 ERR50-CPP. Do not abruptly terminate the program
C++5015 ERR52-CPP. Do not use setjmp() or longjmp()
C++5017 OOP57-CPP. Prefer special member functions and overloaded operators to C Standard Library functions
C++5018 CON51-CPP. Ensure actively held locks are released on exceptional conditions
C++5019 CON54-CPP. Wrap functions that can spuriously wake up in a loop
C++5028 MSC50-CPP. Do not use std::rand() for generating pseudorandom numbers
C++5038 OOP57-CPP. Prefer special member functions and overloaded operators to C Standard Library functions
C++5041 MSC51-CPP. Ensure your random number generator is properly seeded
not subtract iterators that do not refer to the same container
DF2727 EXP53-CPP. Do not read uninitialized memory
DF2728 EXP53-CPP. Do not read uninitialized memory
DF2761 CTR54-CPP. Do not subtract iterators that do not refer to the same container
DF2762 CTR54-CPP. Do not subtract iterators that do not refer to the same container
DF2763 CTR54-CPP. Do not subtract iterators that do not refer to the same container
DF2766 CTR54-CPP. Do not subtract iterators that do not refer to the same container
DF2767 CTR54-CPP. Do not subtract iterators that do not refer to the same container
DF2768 CTR54-CPP. Do not subtract iterators that do not refer to the same container
DF2810 OOP55-CPP. Do not use pointer-to-member operators to access nonexistent members
DF2811 OOP55-CPP. Do not use pointer-to-member operators to access nonexistent members
DF2812 EXP54-CPP. Do not access an object outside of its lifetime
DF2812 OOP55-CPP. Do not use pointer-to-member operators to access nonexistent members
DF2813 EXP54-CPP. Do not access an object outside of its lifetime
DF2813 OOP55-CPP. Do not use pointer-to-member operators to access nonexistent members
DF2814 EXP54-CPP. Do not access an object outside of its lifetime
DF2814 OOP55-CPP. Do not use pointer-to-member operators to access nonexistent members
DF2835 STR50-CPP. Guarantee that storage for strings has sufficient space for character data and the null terminator
DF2836 STR50-CPP. Guarantee that storage for strings has sufficient space for character data and the null terminator
DF2839 STR50-CPP. Guarantee that storage for strings has sufficient space for character data and the null terminator
DF2886 MSC53-CPP. Do not return from a function declared [[noreturn]]
DF2888 MSC52-CPP. Value-returning functions must return a value from all exit paths
DF2891 CTR50-CPP. Guarantee that container indices and iterators are within the valid range
DF2930 EXP54-CPP. Do not access an object outside of its lifetime
DF2931 EXP54-CPP. Do not access an object outside of its lifetime
DF2932 EXP54-CPP. Do not access an object outside of its lifetime
DF2933 EXP54-CPP. Do not access an object outside of its lifetime
DF2934 EXP54-CPP. Do not access an object outside of its lifetime
DF2961 EXP53-CPP. Do not read uninitialized memory
DF2962 EXP53-CPP. Do not read uninitialized memory
DF2963 EXP53-CPP. Do not read uninitialized memory
DF2966 EXP53-CPP. Do not read uninitialized memory
DF2967 EXP53-CPP. Do not read uninitialized memory
DF2968 EXP53-CPP. Do not read uninitialized memory
DF2971 EXP53-CPP. Do not read uninitialized memory
DF2972 EXP53-CPP. Do not read uninitialized memory
DF2973 EXP53-CPP. Do not read uninitialized memory
DF2976 EXP53-CPP. Do not read uninitialized memory
DF2977 EXP53-CPP. Do not read uninitialized memory
DF3520 MEM54-CPP. Provide placement new with properly aligned pointers to sufficient storage capacity
DF3521 MEM54-CPP. Provide placement new with properly aligned pointers to sufficient storage capacity
DF3522 MEM54-CPP. Provide placement new with properly aligned pointers to sufficient storage capacity
DF3523 MEM54-CPP. Provide placement new with properly aligned pointers to sufficient storage capacity
DF3526 CTR52-CPP. Guarantee that library functions do not overflow
DF3526 CTR55-CPP. Do not use an additive operator on an iterator if the result would overflow
DF3527 CTR52-CPP. Guarantee that library functions do not overflow
DF3527 CTR55-CPP. Do not use an additive operator on an iterator if the result would overflow
DF3528 CTR52-CPP. Guarantee that library functions do not overflow
DF3528 CTR55-CPP. Do not use an additive operator on an iterator if the result would overflow
DF3529 CTR52-CPP. Guarantee that library functions do not overflow
DF3529 CTR55-CPP. Do not use an additive operator on an iterator if the result would overflow
DF3530 CTR52-CPP. Guarantee that library functions do not overflow
DF3530 CTR55-CPP. Do not use an additive operator on an iterator if the result would overflow
DF3531 CTR52-CPP. Guarantee that library functions do not overflow
DF3531 CTR55-CPP. Do not use an additive operator on an iterator if the result would overflow
DF3532 CTR52-CPP. Guarantee that library functions do not overflow
DF3532 CTR55-CPP. Do not use an additive operator on an iterator if the result would overflow
DF3533 CTR52-CPP. Guarantee that library functions do not overflow
DF3533 CTR55-CPP. Do not use an additive operator on an iterator if the result would overflow
DF3534 CTR52-CPP. Guarantee that library functions do not overflow
DF3534 CTR55-CPP. Do not use an additive operator on an iterator if the result would overflow
DF4701 EXP63-CPP. Do not rely on the value of a moved-from object
DF4702 EXP63-CPP. Do not rely on the value of a moved-from object
DF4703 EXP63-CPP. Do not rely on the value of a moved-from object
DF4706 EXP61-CPP. A lambda object must not outlive any of its reference captured objects
DF4707 EXP61-CPP. A lambda object must not outlive any of its reference captured objects
DF4708 EXP61-CPP. A lambda object must not outlive any of its reference captured objects
DF4711 FIO50-CPP. Do not alternately input and output from a file stream without an intervening positioning call
DF4712 FIO50-CPP. Do not alternately input and output from a file stream without an intervening positioning call
DF4713 FIO50-CPP. Do not alternately input and output from a file stream without an intervening positioning call
DF4721 MEM56-CPP. Do not store an already-owned pointer value in an unrelated smart pointer
DF4722 MEM56-CPP. Do not store an already-owned pointer value in an unrelated smart pointer
DF4723 MEM56-CPP. Do not store an already-owned pointer value in an unrelated smart pointer
DF4726 EXP62-CPP. Do not access the bits of an object representation that are not part of the object's value representation
DF4727 EXP62-CPP. Do not access the bits of an object representation that are not part of the object's value representation
DF4728 EXP62-CPP. Do not access the bits of an object representation that are not part of the object's value representation
DF4729 EXP62-CPP. Do not access the bits of an object representation that are not part of the object's value representation
DF4731 EXP62-CPP. Do not access the bits of an object representation that are not part of the object's value representation
DF4732 EXP62-CPP. Do not access the bits of an object representation that are not part of the object's value representation
DF4733 EXP62-CPP. Do not access the bits of an object representation that are not part of the object's value representation
DF4734 EXP62-CPP. Do not access the bits of an object representation that are not part of the object's value representation
DF4736 MEM55-CPP. Honor replacement dynamic storage management requirements
DF4737 MEM55-CPP. Honor replacement dynamic storage management requirements
DF4738 MEM55-CPP. Honor replacement dynamic storage management requirements
DF4739 MEM55-CPP. Honor replacement dynamic storage management requirements
DF4741 EXP60-CPP. Do not pass a nonstandard-layout type object across execution boundaries
DF4742 EXP60-CPP. Do not pass a nonstandard-layout type object across execution boundaries
DF4743 EXP60-CPP. Do not pass a nonstandard-layout type object across execution boundaries
DF4746 CTR51-CPP. Use valid references, pointers, and iterators to reference elements of a container
DF4746 STR52-CPP. Use valid references, pointers, and iterators to reference elements of a basic_string
DF4747 CTR51-CPP. Use valid references, pointers, and iterators to reference elements of a container
DF4747 STR52-CPP. Use valid references, pointers, and iterators to reference elements of a basic_string
DF4748 CTR51-CPP. Use valid references, pointers, and iterators to reference elements of a container
DF4748 STR52-CPP. Use valid references, pointers, and iterators to reference elements of a basic_string
DF4749 CTR51-CPP. Use valid references, pointers, and iterators to reference elements of a container
DF4749 STR52-CPP. Use valid references, pointers, and iterators to reference elements of a basic_string
DF4756 ERR57-CPP. Do not leak resources when handling exceptions
DF4757 ERR57-CPP. Do not leak resources when handling exceptions
DF4758 ERR57-CPP. Do not leak resources when handling exceptions
DF4761 MEM53-CPP. Explicitly construct and destruct objects when manually managing object lifetime
DF4762 MEM53-CPP. Explicitly construct and destruct objects when manually managing object lifetime
DF4766 MEM53-CPP. Explicitly construct and destruct objects when manually managing object lifetime
DF4767 MEM53-CPP. Explicitly construct and destruct objects when manually managing object lifetime
DF4770 STR51-CPP. Do not attempt to create a std::string from a null pointer
DF4771 STR51-CPP. Do not attempt to create a std::string from a null pointer
DF4772 STR51-CPP. Do not attempt to create a std::string from a null pointer
DF4773 STR51-CPP. Do not attempt to create a std::string from a null pointer
DF4774 STR51-CPP. Do not attempt to create a std::string from a null pointer
DF4776 OOP56-CPP. Honor replacement handler requirements
DF4777 OOP56-CPP. Honor replacement handler requirements
DF4778 OOP56-CPP. Honor replacement handler requirements
DF4779 OOP56-CPP. Honor replacement handler requirements
DF4786 FIO51-CPP. Close files when they are no longer needed
DF4787 FIO51-CPP. Close files when they are no longer needed
DF4788 FIO51-CPP. Close files when they are no longer needed
DF4941 DCL55-CPP. Avoid information leakage when passing a class object across a trust boundary
DF4942 DCL55-CPP. Avoid information leakage when passing a class object across a trust boundary
DF4943 DCL55-CPP. Avoid information leakage when passing a class object across a trust boundary
DF4962 CON50-CPP. Do not destroy a mutex while it is locked C++5216 STR50-CPP. Guarantee that storage for strings has sufficient space for character data and the null terminator