Edit

Share via


Compiler Error C2323

'identifier': non-member operator new or delete functions may not be declared static or in a namespace other than the global namespace.

The new and delete overload operators must be non-static, defined in the global namespace or as class members.

The following generates C2323:

// C2323.cpp
// compile with: /c
static void* operator new(size_t);   // C2323 since static
static void operator delete(void*);  // C2323 since static

namespace NS
{
    void* operator new(size_t);   // C2323 since not defined in the global namespace
    void operator delete(void*);  // C2323 since not defined in the global namespace
}

See also

new and delete operators