first actual parameter for based form of 'operator delete' must be '__segment'
The first formal parameter for an overridden based operator delete must be of type __segment.
The following are the prototypes for the based forms of the operator delete:
void operator delete( __segment, void __based( void ) * );
operator delete( __segment, void __based( void ) *, unsigned int);