Замена удаления в C++, дезинформация

Я пытаюсь (и решил )проблему с выравниванием 16 байтов в классе, содержащем оптимизированные для SSE элементы. Но что меня беспокоит, так это то, что большая часть примеров, которые я нашел в Интернете, содержат строку кода, которая кажется мне совершенно избыточной, но повторяется во многих местах.

public:
void* operator new (size_t size)throw (std::bad_alloc)
{
    void * p = _aligned_malloc(size, 16);
    if (p == 0)  throw std::bad_alloc();
    return p; 
}

void operator delete (void *p)
{
    Camera* pC = static_cast<Camera*>(p);
    _aligned_free(p);
}

Речь идет о строке

Camera* pC = static_cast<Camera*>(p);

Поскольку pC никогда не упоминается и выходит за рамки в конце функции, какой смысл это делать? Я попытался удалить строку, и, похоже, это не имеет никакого значения, но эта линия появляется во многих примерах! Я упустил что-то действительно очевидное или аномальная строка кода была скопирована из примера в пример вслепую и стала распространенной во многих «учебниках»?

9
задан Brian Tompsett - 汤莱恩 23 August 2015 в 11:19
поделиться