Возможно ли перегрузить оператор, чтобы он был функцией constexpr?Примерно так:
constexpr void * operator new( std::size_t count );
Причина, по которой будет выполняться функция constexpr в перегруженном теле оператора, где значение аргумента count будет входными данными ... Поскольку оператор вызывается:
SomeClass * foo = new SomeClass();
Размер типа данных известен во время компиляции, не так ли?(count== sizeof(SomeClass)
) То есть счет можно считать постоянной времени компиляции?
constexpr void * operator new( std::size_t count )
{
if constexpr ( count >= 10 ) { /* do some compile-time business */ }
}
Большое спасибо всем, кто готов помочь!