Namespace et surcharge operator new/delete
Bonjour,
Je cherche a surcharger les operateurs new et delete globaux, mais je veux que cette surcharge ne s'applique que dans un namespace en particulier.
Voici une exemple pour illustrer mes propos
NameSpace.h
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
|
#ifndef __MYNAMESPACE_H__
#define __MYNAMESPACE_H__
namespace MyNameSpace
{
void *operator new ( size_t );
void operator delete ( void * );
void Test();
}
#endif |
NameSpace.cpp
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
|
#include <stdafx.h>
#include <stdlib.h>
#include <stdio.h>
#include <malloc.h>
#include "NameSpace.h"
void *MyNameSpace::operator new(size_t size)
{
return malloc(size);
}
void MyNameSpace::operator delete (void *Ppt_pt)
{
free(Ppt_pt);
}
void MyNameSpace::Test()
{
char *Lsz_val = new char[255];
delete [] Lsz_val;
} |
TestNameSpace.pp
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
|
#include "stdafx.h"
#include "NameSpace.h"
using namespace MyNameSpace;
void main(int argc, char* argv[])
{
char *Lsz_val = new char[255];
delete Lsz_val;
Test();
} |
Le projet compile sans pb avec VC++ 2003 par contre je ne rentre jamais dans mes operateurs new et delete que ca soit dans main ou dans Test ! :?
Des suggestions ????