Operator error new []: function does not accept 1 argument

I have code that operator overloads new. The code below works fine under Linux (gcc4x), but not Windows (Visual C ++ 2008 Express Edition)

Code in Visual Studio 2008 Express Edition reports

error C2660: new [] operator: the function does not accept 1 argument

class dummy{};
void* operator new[] (size_t size, dummy gcp)
{
  return ::operator new[](size);   //error
}

int main()
{
    dummy dummyobj;
    dummy* ptr = new (dummyobj) dummy[5];
    return 0;
}
+3
source share
1 answer

You may need to #include <new>.

+11
source

Source: https://habr.com/ru/post/1764126/


All Articles