В идеале, вы могли бы использовать новое с шаблонами. Но стандарт C ++ не обеспечивает никакого разумного способа. Поэтому мне все равно, какой C + + стандарт.
я хочу получить тип в новом операторе;
как это можно сделать (включая использование любого взлома компилятора)?
inline void* operator new(size_t size)
{
//get what the type are calling new at here
return some pointer;
}
inline void* operator new[](size_t size)
{
//get what the type are calling new [] at here
return some pointer;
}
Любая версия (msv c или clang) может быть использованы.
Почему: я хочу сделать некоторую предварительную обработку, такую как отражение через информацию о типе. Я хочу получить информацию о типе до того, как G C выделит память. Если это невозможно в новом операторе, тогда я могу использовать только более уродливый способ. Например: как определить хорошую / совершенную функцию New для инициализации любого класса / структуры в C ++?