Это не размещающий new. Это обычное создание объекта. Коструктор хайлайтера регистрирует себя в родительском объекте и родительский объект ответственен за его удаление, поэтому результат new-expression не используется.
Placement new выглядит как:
new ( <pointer> ) ClassName(...)
Чтобы понять, как работает размещающее new, надо понять отличие new-expression от оператора new. new-expression делает вещи:
- Вызывает оператор new, передавая в него параметры написанные после new и до имени класса. Этот оператор выделяет память и возвращает указатель на выделенную память
- Вызывает конструктор класса, передав параметры написанные после имени класса. Это создаст объект в памяти выделенной в (1)
Размещающий оператор new берёт в качестве параметра указатель на уже выделенную память и просто возвращает его.