V1062. Class defines a custom new or delete operator. The opposite operator must also be defined.

This diagnostic rule is based on the R.15 CppCoreGuidelines rule.

A class defines a custom 'new' or 'delete' operator but does not define the opposite operator.

Example:

class SomeClass
{
  ....
  void* operator new(size_t s);
  ....
};

Objects of this class will be dynamically allocated using the overloaded 'new' operator and deleted using the default 'delete' operator.

For symmetry of allocation/deallocation operations, define the 'delete' operator as well:

class SomeClass
{
  ....
  void* operator new(size_t s);
  void operator delete(void*);
  ....
};

You can also mark operators as deleted ('= delete') if for some reason you need to prevent allocation or deallocation of objects of this class.

The following example prevents objects from getting deallocated:

class SomeClass
{
  ....
  void* operator new(size_t s);
  void operator delete(void*) = delete;
  ....
};


Bugs Found

Checked Projects
409
Collected Errors
14 072
This website uses cookies and other technology to provide you a more personalized experience. By continuing the view of our web-pages you accept the terms of using these files. If you don't want your personal data to be processed, please, leave this site. Learn More →
Accept