нестандартное поведение препроцессора msvc
От: Аноним  
Дата: 23.01.11 11:49
Оценка:
дано:
#define __drv_out(annotes) __post __$drv_group(##__drv_nop(annotes))
макрос используется например из етого места
   SDK v7.0A winnt.h
   typedef
   __drv_sameIRQL
   __drv_functionClass(EXCEPTION_ROUTINE)
   EXCEPTION_DISPOSITION
   NTAPI
   EXCEPTION_ROUTINE (
       __inout struct _EXCEPTION_RECORD *ExceptionRecord,
        __in PVOID EstablisherFrame,
       __inout struct _CONTEXT *ContextRecord,
       __in PVOID DispatcherContext
       );

вопрос:
что сделает первее pp msvc — раскроет макрос __drv_nop или выполнит склеивание? По стандарту, должно производиться склеивание. Склеивание выдает токен (__drv_nop который является некорректным.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.