Re: Error C2665: 'new' : none of the 5 overl. can convert par. 1 from
type 'char [37]'
On 1 Okt., 16:53, "Giovanni Dicanio"
<giovanniDOTdica...@REMOVEMEgmail.com> wrote:
".rhavin grobert" <cl...@yahoo.de> ha scritto nel messaggionews:624c8116-ced9-455a-b6bc-d8b76e36a750@f36g2000hsa.googlegroups.com...
the following code snipped....
______________________________
#undef malloc
void* DebugMalloc(UINT s, LPCSTR lpszFileName, int nLine)
{
return operator new(s, lpszFileName, nLine);
}
#define malloc(s) DebugMalloc(s, THIS_FILE, __LINE__)
______________________________
...gives this error:
Error C2665: 'new' : none of the 5 overloads can convert parameter 1
from type 'char [37]'
...can anyone explain?
Could you please post the offending code?
that IS the offending code. ;-/
Maybe you should define operator new[] (with [ and ], for arrays) ?
it called like this:
void* pFifteenBytes = MALLOC(15);
the 'five overloads' are:
________ FROM CRTDBG.H ______________________
inline void* __cdecl operator new(unsigned int s, int, const char *,
int)
{ return ::operator new(s); }
inline void __cdecl operator delete(void * _P, int, const char *, int)
{ ::operator delete(_P); }
inline void* __cdecl operator new(unsigned int s)
{ return ::operator new(s, _NORMAL_BLOCK, __FILE__,
__LINE__); }
________ FROM NEW ______________________
void *__cdecl operator new(size_t) _THROW1(std::bad_alloc);
void *__cdecl operator new(size_t, const std::nothrow_t&)
_THROW0();
inline void *__cdecl operator new(size_t, void *_P)
{return (_P); }