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

Это диагностическое правило основано на пункте R.15 CppCoreGuidelines.

В классе определен оператор 'new' или 'delete', но при этом не определен обратный оператор.

Пример:

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

Для динамической аллокации объекта такого класса будет использоваться перегруженный оператор 'new', а для удаления – оператор 'delete', определенный по умолчанию.

Для симметрии операций аллокации/деаллокации следует определить также оператор 'delete':

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

Также операторы можно пометить как удаленные ('= delete'), если по какой-то причине необходимо запретить аллокацию или деаллокацию для объектов класса.

Пример с запрещенной деаллокацией:

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


Найденные ошибки

Проверено проектов
409
Собрано ошибок
14 072

А ты совершаешь ошибки в коде?

Проверь с помощью
PVS-Studio

Статический анализ
кода для C, C++, C#
и Java

goto PVS-Studio;
Этот сайт использует куки и другие технологии, чтобы предоставить вам более персонализированный опыт. Продолжая просмотр страниц нашего веб-сайта, вы принимаете условия использования этих файлов. Если вы не хотите, чтобы ваши данные обрабатывались, пожалуйста, покиньте данный сайт. Подробнее →
Принять