Макрос ACE_NEW_RETURN
Наткнулся в библиотеке ACE на вот такой код. Просто в тупике. Зачем тут do...while? Помогите разобраться пожалуйста.
# define ACE_NEW_RETURN(POINTER,CONSTRUCTOR,RET_V
do { POINTER = new (ACE_nothrow) CONSTRUCTOR; \
if (POINTER == 0) { errno = ENOMEM; return RET_VAL; } \
} while (0)
ace\OS_Memory.h line 188 платформа Windows
