nothrow

nothrow是在C++标准头文件<new>中定义的一个nothrow_t类的对象。nothrow_t类是这样定义的:  
   
  struct   nothrow_t   {   };  
   
  可见它只是一个什么都不做的空类。new仅仅使用这个空类对象达到一种标识作用,而不是利用这个类对象的功能。通常称这样的类对象为占位符。  
   
  C++标准规定   new   在分配内存失败的时候会抛出异常,因此在C++程序中应该通过捕捉异常来处理内存失败的情况。与之不同,传统的C语言中的malloc()函数分配内存失败时返回NULL指针。为了提供与malloc()函数一致的行为,即在内存分配失败时返回一个NULL指针,而不是抛出异常,C++还提供了   nothrow(不抛出异常)   版本的   new,即   new(nothrow)。利用   new(nothrow),可以通过判断其返回的指针值是否为NULL从而判断内存分配是否成功。

你可能感兴趣的:(nothrow)