Заголовок <boost/checked_delete> определяет два шаблона функций, checked_delete и checked_delete и два шаблона классов, checked_deleter и checked_array_deleter.
C++ Стандарт позволяет в пункте 5.3.5/5 удалять указатели неполных типов классов с помощью выражения удаления. Когда класс имеет нетривиальный деструктор, или оператор класса удаляет, поведение не определено. Некоторые компиляторы выдают предупреждение при удалении неполного типа, но, к сожалению, не все это делают, и программисты иногда игнорируют или отключают предупреждения.
Особенно неприятный случай, когда деструктор умного указателя, такой как boost::scoped_ptr<T>:::~scoped_ptr, инстанцирован с неполным типом. Это часто может привести к молчанию, трудно отслеживать неудачи.
Поставляемые шаблоны функций и классов могут использоваться для предотвращения этих проблем, поскольку они требуют полного типа и вызывают ошибку компиляции в противном случае.
 
Шаблоны функций checked_delete и checked_array_delete изначально были частью <boost/utility.hpp>, и документация признала Бемана Доуса, Дэйва Абрахамса, Владимира Пруса, Райнера Дейка, Джона Мэддока и других в качестве авторов.