vc6中,new函数在已有内存基础上构造类有有关问题

vc6中,new函数在已有内存基础上构造类有问题?
下面的代码在vc2010中执行通过,但是在vc6中执行失败,说语句:
new (&p[i])hopew(i);有错. error C2661: 'new' : no overloaded function takes 2 parameters
之前有记得在vc6中见到过这样使用的,vc6应该支持这样才对的,难道是我写错了? 还是我记错了? 谢谢,帮看看哈.

typedef unsigned char uchar;

class hopew
{
public:
hopew(int i)
:data(i)
{
printf("Construct 0x%p, data = %d\n", this, data);
}

~hopew()
{
printf("Deconstruct 0x%p, data = %d\n", this, data);
}

int data;
};

int main(int argc, char* argv[])
{
uchar* pBuffer = new uchar[sizeof(hopew) * 10];
hopew* p = (hopew*)pBuffer;
for (int i = 0; i < 10; ++i)
new (&p[i])hopew(i);

for (int j = 0; int j < 10; ++j)
p[j].~hopew();

delete pBuffer;

return 0;
}
vc

------解决方案--------------------
少了 #include<new> 吧