Image

Imagetpuctah wrote in Imageru_cpp

Макрос ACE_NEW_RETURN

Наткнулся в библиотеке ACE на вот такой код. Просто в тупике. Зачем тут 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)

ace\OS_Memory.h line 188 платформа Windows