xu****wei wrote:
> Allowing to override the DEFAULT operator new/delete means the DEFAULT
> operator new/delete are special operators. When we have more than one
> implementations of an operator, the compiler/linker will re****t a
> redefining error. However, it allows there are two implementations of
> the DEFAULT operator new/delete (one of them is implemented as
> default). It sounds good. But, This gives a hint that there may have
> many implementations of the DEFAULT operator new/delete. When this
> happens, the compiler/linker doesn't know what should it do, and it
> re****ts a defining error. The C++ programmers have to solve such
> accidents, especially when they use 3rdparty codes You know, there
> are many libraries overriding the DEFAULT operator new/delete. But
> unfortunately, they take a risk of conflict with each other.
It is the same problem as name cla****ng (in the global namespace for
example). It is useful in several contexts, if used alot it has a high
chance of name colision (for example if you want to add sup****t to print
std::vector<T> you can write a template overload for operator<< and
std::ostream& in the global or std:: namespace but clearly that has the
potential of conflict with other such overloads from other code so better
not).
I don't think the feature should be removed just because you personally
don't find it useful (many people don't find operator overloading useful,
yet they won't ever be removed, hopefully).
--
Dizzy
[ See http://www.gotw.ca/resources/clcm.htm
for info about ]
[ comp.lang.c++.moderated. First time posters: Do this! ]


|