Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
class A {};
 
namespace test {
    void* operator new(size_t size, char* c) throw (std::bad_alloc) { return malloc(size); }
}
 
int main() {
   A* a = test::new ("test") A; //Ne veux pas compiler!
   return 0;
}
Alors que:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
class A {};
 
namespace test {
    void* operator new(size_t size, char* c) throw (std::bad_alloc) { return malloc(size); }
}
 
using namespace test;
 
int main() {
   A* a = new ("test") A; //Compile! Oo
   return 0;
}

La question est: ... pourquoi?