Получение статического размера класса в операторе NEW

Как получить у класса в перегруженном операторе NEW размер самого класса ( по сути равный параметру size_t в new) но статического/константного типа (для шаблона).

Наивный пример:

template <size_t SIZE>
thread_local Bank bank(SIZE);

struct BASE {
    void* operator new ( size_t ) {
        bank< sizeof( *this ) >.Alloc(); // Да только "sizeof( *this )" в операторе new не допускается...
        ...
    };
};

struct A : BASE { 
    int a;
    //BASE::operator new; // Не требуется, так как наследуется от BASE само
};
void abc() { A* a = new A; }
...

Ответы (0 шт):