Versions Compared

Key

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

...

Tip

The table below can be re-ordered, by clicking column headers.

...

Include Page
cplusplus:Helix QAC_Vcplusplus:
Helix QAC_V
INT50-CPP. Do not cast to an out-of-range enumeration value

Checker

Guideline

3013 INT50-CPP. Do not cast to an out-of-range enumeration value
C++

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++2502 2510 DCL53-CPP. Do not write syntactically ambiguous declarations
C++2510 2518 DCL53 DCL59-CPP. Do not write syntactically ambiguous declarations C++2518 DCL59-CPP. Do not define an 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++3164 STR53-CPP. Range check element access
C++2814 3165 EXP54 STR53-CPP. Do not access an object outside of its lifetime 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++3226 MEM52-CPP. Detect and handle memory allocation errors C++2933 EXP54-CPP. Do not access an object outside of its lifetime
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++3228 CTR58-CPP. Predicate function objects should not be mutable C++2963 EXP53-CPP. Do not read uninitialized memory
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++3033 3241 EXP56 EXP52-CPP. Do not call a function with a mismatched language linkage rely on side effects in unevaluated operands
C++3038 3293 EXP56 CTR57-CPP. Do not call a function with a mismatched language linkage Provide a valid ordering predicate
C++3066 3337 EXP55 MEM51-CPP. Do not access a cv-qualified object through a cv-unqualified type Properly deallocate dynamically allocated resources
C++3072 3339 OOP51 MEM51-CPP. Do not slice derived objects Properly deallocate dynamically allocated resources
C++3073 3402 CTR56 OOP52-CPP. Do not use pointer arithmetic on polymorphic objects delete a polymorphic object without a virtual destructor
C++3112 3403 EXP57 OOP52-CPP. Do not cast or delete pointers to incomplete classes delete a polymorphic object without a virtual destructor
C++3119 3404 MEM54 OOP52-CPP. Provide placement new with properly aligned pointers to sufficient storage capacity Do not delete a polymorphic object without a virtual destructor
C++3128 3508 MEM54 ERR60-CPP. Provide placement new with properly aligned pointers to sufficient storage capacity Exception objects must be nothrow copy constructible
C++3129 3510 MEM57 ERR53-CPP. Avoid using default operator new for over-aligned types Do not reference base classes or class data members in a constructor or destructor function-try-block handler
C++3139 3802 CTR50 CTR53-CPP. Guarantee that container indices and iterators are within the valid range Use valid iterator ranges
C++3140 3809 CTR50 ERR59-CPP. Guarantee that container indices and iterators are within the valid range Do not throw an exception across execution boundaries
C++3161 3810 ERR62 ERR59-CPP. Detect errors when converting a string to a number Do not throw an exception across execution boundaries
C++3162 3852 STR53 EXP58-CPP. Range check element access Pass an object of the correct type to va_start
C++3163 3853 STR53 EXP58-CPP. Range check element access Pass an object of the correct type to va_start
C++3164 3915 STR53 EXP59-CPP. Range check element access Use offsetof() on valid types and members
C++3165 3916 STR53 EXP59-CPP. Range check element access Use offsetof() on valid types and members
C++3166 4003 EXP51 EXP54-CPP. Do not delete an array through a pointer of the incorrect type access an object outside of its lifetime
C++3220 4026 EXP50 EXP54-CPP. Do not depend on the order of evaluation for side effects access an object outside of its lifetime
C++3221 4030 EXP50 ERR54-CPP. Do not depend on the order of evaluation for side effects Catch handlers should order their parameter types from most derived to least derived
C++3222 4031 EXP50 ERR61-CPP. Do not depend on the order of evaluation for side effects Catch exceptions by lvalue reference
C++3223 4032 EXP50 DCL57-CPP. Do not depend on the order of evaluation for side effects let exceptions escape from destructors or deallocation functions
C++3225 4035 CTR58 ERR51-CPP. Predicate function objects should not be mutable Handle all exceptions
C++3225 4035 MEM52 ERR55-CPP. Detect and handle memory allocation errors Honor exception specifications
C++3226 4036 CTR58 ERR51-CPP. Predicate function objects should not be mutable Handle all exceptions
C++3226 4036 MEM52 ERR55-CPP. Detect and handle memory allocation errors Honor exception specifications
C++3227 4037 CTR58 ERR51-CPP. Predicate function objects should not be mutable Handle all exceptions
C C++3227 4053 MEM52 OOP53-CPP. Detect and handle memory allocation errors Write constructor member initializers in the canonical order
C++3228 4072 EXP50 OOP54-CPP. Do not depend on the order of evaluation for side effects Gracefully handle self-copy assignment
C++3228 4073 CTR58 OOP54-CPP. Predicate function objects should not be mutable Gracefully handle self-copy assignment
C++3228 4075 MEM52 ERR56-CPP. Detect and handle memory allocation errors Guarantee exception safety
C++3229 4075 CTR58 OOP54-CPP. Predicate function objects should not be mutable Gracefully handle self-copy assignment
C++3229 4075 MEM52 OOP58-CPP. Detect and handle memory allocation errors Copy operations must not mutate the source object
C++3230 4076 CTR58 ERR56-CPP. Predicate function objects should not be mutable Guarantee exception safety
C++3231 4076 CTR58 OOP54-CPP. Predicate function objects should not be mutable Gracefully handle self-copy assignment
C++3232 4260 CTR58 OOP50-CPP. Predicate function objects should not be mutable Do not invoke virtual functions from constructors or destructors
C++3233 4261 CTR58 OOP50-CPP. Predicate function objects should not be mutable Do not invoke virtual functions from constructors or destructors
C++3234 4262 CTR58 MEM51-CPP. Predicate function objects should not be mutable Properly deallocate dynamically allocated resources
C++3240 4263 EXP52 MEM51-CPP. Do not rely on side effects in unevaluated operands Properly deallocate dynamically allocated resources
C++3241 EXP52-CPP. Do not rely on side effects in unevaluated operands
C++3293 CTR57-CPP. Provide a valid ordering predicate
C++3337 4264 MEM51-CPP. Properly deallocate dynamically allocated resources
C++3339 4273 MEM51 OOP50-CPP. Properly deallocate dynamically allocated resources Do not invoke virtual functions from constructors or destructors
C++3402 4274 OOP52 OOP50-CPP. Do not delete a polymorphic object without a virtual destructor invoke virtual functions from constructors or destructors
C++3403 4275 OOP52 OOP50-CPP. Do not delete a polymorphic object without a virtual destructor invoke virtual functions from constructors or destructors
C++3404 4276 OOP52 OOP50-CPP. Do not delete a polymorphic object without a virtual destructor invoke virtual functions from constructors or destructors
C++3508 4277 ERR60 OOP50-CPP. Exception objects must be nothrow copy constructible Do not invoke virtual functions from constructors or destructors
C++3510 4278 ERR53 OOP50-CPP. Do not reference base classes or class data members in a constructor or destructor function-try-block handler invoke virtual functions from constructors or destructors
C++3526 4279 CTR52 OOP50-CPP. Guarantee that library functions do not overflow Do not invoke virtual functions from constructors or destructors
C++3526 4280 CTR55 OOP50-CPP. Do not use an additive operator on an iterator if the result would overflow invoke virtual functions from constructors or destructors
C++3527 4281 CTR52 OOP50-CPP. Guarantee that library functions do not overflow Do not invoke virtual functions from constructors or destructors
C++3527 4282 CTR55 OOP50-CPP. Do not use an additive operator on an iterator if the result would overflow invoke virtual functions from constructors or destructors
C++3528 4303 CTR52 MEM50-CPP. Guarantee that library functions do not overflow Do not access freed memory
C++3528 4304 CTR55 MEM50-CPP. Do not use an additive operator on an iterator if the result would overflow access freed memory
C++3529 4631 CTR52 DCL57-CPP. Guarantee that library functions do not overflow Do not let exceptions escape from destructors or deallocation functions
C++3529 4632 CTR55 MEM52-CPP. Do not use an additive operator on an iterator if the result would overflow Detect and handle memory allocation errors
C++3531 4632 CTR52 ERR55-CPP. Guarantee that library functions do not overflow Honor exception specifications
C++3531 4634 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++3532 4636 CTR52 ERR58-CPP. Guarantee that library functions do not overflow Handle all exceptions thrown before main() begins executing
C++3532 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++3533 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++3533 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++3534 4671 CTR52 EXP55-CPP. Guarantee that library functions do not overflow Do not access a cv-qualified object through a cv-unqualified type
C++3534 4986 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++3802 4987 CTR53 CON56-CPP. Use valid iterator ranges Do not speculatively lock a non-recursive mutex that is already owned by the calling thread
C++3809 5003 ERR59 DCL51-CPP. Do not throw an exception across execution boundaries declare or define a reserved identifier
C++3810 5014 ERR59 ERR50-CPP. Do not throw an exception across execution boundaries abruptly terminate the program
C++3852 5015 EXP58 ERR52-CPP. Pass an object of the correct type to va_start Do not use setjmp() or longjmp()
C++3853 5017 EXP58 OOP57-CPP. Pass an object of the correct type to va_start Prefer special member functions and overloaded operators to C Standard Library functions
C++3915 5018 EXP59 CON51-CPP. Use offsetof() on valid types and members Ensure actively held locks are released on exceptional conditions
C++3916 5019 EXP59 CON54-CPP. Use offsetof() on valid types and members Wrap functions that can spuriously wake up in a loop
C++4003 5028 EXP54 MSC50-CPP. Do not access an object outside of its lifetime use std::rand() for generating pseudorandom numbers
C++4026 5038 EXP54 OOP57-CPP. Do not access an object outside of its lifetime Prefer special member functions and overloaded operators to C Standard Library functions
C++5041 MSC51-CPP. Ensure your random number generator is properly seeded C++4030 ERR54-CPP. Catch handlers should order their parameter types from most derived to least derived
C++4031 5216 ERR61 STR50-CPP. Catch exceptions by lvalue reference Guarantee that storage for strings has sufficient space for character data and the null terminator
DF726 EXP53 C++4032 DCL57-CPP. Do not let exceptions escape from destructors or deallocation functions C++4032 read uninitialized memory
DF961 CON50 DCL58-CPP. Do not modify the standard namespaces C++4035 destroy a mutex while it is locked
DF978 EXP53 DCL58-CPP. Do not modify the standard namespaces
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++4631 DCL58-CPP. Do not modify the standard namespaces
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
read uninitialized memory
DF2668 CTR54-CPP. Do 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