zoukankan      html  css  js  c++  java
  • ACE_NEW_RETURN意思

    ACE_NEW_RETURN的出处,有三个定义,都在OS_Memory.h中定义,可能是用于适应不同的平台而作的吧。下面的这个是最容易看懂的,用了try-catch语句。

     
    #    define ACE_NEW_RETURN(POINTER,CONSTRUCTOR,RET_VAL) /
       do { try { POINTER = new CONSTRUCTOR; } /
            catch (ACE_bad_alloc) { errno = ENOMEM; POINTER = 0; return RET_VAL; } /
       } while (0)
     
    ACE_NEW_RETURN的定义是:
    ACE_NEW_RETURN(POINTER,CONSTRUCTOR,RET_VAL)
    ACE_NEW_RETURN对应翻译是:
    try
    {
          POINTER=new CONSTRUCTOR;
    }
    catch(ACE_bad_alloc)
    {
           errno=ENOMEM;
           POINTER=0;
           return RET_VAL;
    }
    意思就是用new动态生成一个参数2类型的空间,并将空间的首地址副给第一个参数。如果有错误产生则将第一个参数的值设为空,并返回值RET_VAL。不过不知道为什么Doung为什么喜欢在副值之前用do-while语句,莫非这样做有什么好处?
    另两个定义是
    #    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_RETURN(POINTER,CONSTRUCTOR,RET_VAL) /
       do { POINTER = new CONSTRUCTOR; /
         if (POINTER == 0) { errno = ENOMEM; return RET_VAL; } /
       } while (0)


    本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/cheng168520/archive/2009/08/13/4443886.aspx

  • 相关阅读:
    linux 查看端口占用情况
    linux下python脚本的运行
    js 事件冒泡
    linux下设置path
    查看和修改Linux的时间
    逗号分割的字符串存储到临时表中
    Centos下搭建Web服务器
    如何让input和img水平对齐
    操作系统方面书籍推荐
    Linus的十大名言
  • 原文地址:https://www.cnblogs.com/kex1n/p/2286490.html
Copyright © 2011-2022 走看看