#include <stdio.h>
#include <cstddef>
class Test
{
public:
Test()
{
throw 1;
}
void * operator new( std::size_t, void *mem )
{
puts( "op new called" );
return mem;
}
void operator delete( void *mem, std::size_t size )
{
puts( "op delete called" );
}
};
int main()
{
char buf[0xffff];
try
{
const Test *p = new (buf) Test;
}
catch(...)
{
}
return 0;
}