ACE_NEW开头的宏定义

来源:互联网 发布:买哪个星空软件 编辑:程序博客网 时间:2024/04/26 07:04
#  if defined (ACE_HAS_NEW_NOTHROW)#    define ACE_NEW_RETURN(POINTER,CONSTRUCTOR,RET_VAL) \   do { POINTER = new (ACE_nothrow) CONSTRUCTOR; \     if (POINTER == 0) { errno = ENOMEM; return RET_VAL; } \   } while (0)#    define ACE_NEW(POINTER,CONSTRUCTOR) \   do { POINTER = new(ACE_nothrow) CONSTRUCTOR; \     if (POINTER == 0) { errno = ENOMEM; return; } \   } while (0)#    define ACE_NEW_NORETURN(POINTER,CONSTRUCTOR) \   do { POINTER = new(ACE_nothrow) CONSTRUCTOR; \     if (POINTER == 0) { errno = ENOMEM; } \   } while (0)#  else#    define ACE_NEW_RETURN(POINTER,CONSTRUCTOR,RET_VAL) \   do { try { POINTER = new CONSTRUCTOR; } \     catch (ACE_bad_alloc) { ACE_del_bad_alloc errno = ENOMEM; POINTER = 0; return RET_VAL; } \   } while (0)#    define ACE_NEW(POINTER,CONSTRUCTOR) \   do { try { POINTER = new CONSTRUCTOR; } \     catch (ACE_bad_alloc) { ACE_del_bad_alloc errno = ENOMEM; POINTER = 0; return; } \   } while (0)#    define ACE_NEW_NORETURN(POINTER,CONSTRUCTOR) \   do { try { POINTER = new CONSTRUCTOR; } \     catch (ACE_bad_alloc) { ACE_del_bad_alloc errno = ENOMEM; POINTER = 0; } \   } while (0)#  endif /* ACE_HAS_NEW_NOTHROW */#else /* ACE_NEW_THROWS_EXCEPTIONS */# define ACE_NEW_RETURN(POINTER,CONSTRUCTOR,RET_VAL) \   do { POINTER = new CONSTRUCTOR; \     if (POINTER == 0) { errno = ENOMEM; return RET_VAL; } \   } while (0)# define ACE_NEW(POINTER,CONSTRUCTOR) \   do { POINTER = new CONSTRUCTOR; \     if (POINTER == 0) { errno = ENOMEM; return; } \   } while (0)# define ACE_NEW_NORETURN(POINTER,CONSTRUCTOR) \   do { POINTER = new CONSTRUCTOR; \     if (POINTER == 0) { errno = ENOMEM; } \   } while (0)


0 0
原创粉丝点击