RE: Can new operator return NULL ?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



> I am looking how to force that new operator will return NULL instead of
> std::bad_alloc exception when lack of memory.
> I have on the beginning of code  mlockall(MCL_FUTURE); this forces malloc()
> to return NULL if out of nemory,
> but new operator throws exception.
> I know that in Windows Visual C++ throwing new is set by chosing standard
> C++ library and nonthrowing new is from main CRT,
> so in VS I can choose one of these two features.
> Is possible in C++ code compiled with g++ to force new operator to return
> NULL instead of std::bad_alloc ?

You need the functionality of "nothrow new" in the C++ standard.
Syntax is something like the following...

#include <new>

ptr2object = new(std::nothrow) ClassType( ... ) ;

I'm not sure of what g++ provides, and my installation is hosed at the moment 
(so I can't test this), but gcc is pretty compliant and up-to-date.
I'd be surprised if it didn't have nothrow new...

However, I do not know if there is a way to get similar functionality without
modifying code (calls to new).

Hope this helps,
   Michael


[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux