2011-01-28 23 views
7

Tôi có typedef sau:Tư liệu typedefs callback trong Doxygen

typedef void(__cdecl *tCallback)(const char* Message); 

Làm thế nào tôi sẽ ghi nhận rằng một cách chính xác sử dụng Doxygen?

Tôi muốn có tài liệu tCallback và các tham số được mong đợi được ghi lại.

Một ví dụ đơn giản:

/// \typedef test 
typedef test bool 

sản xuất ra đúng trong doxygen

//typedef tCallback 
typedef void(__cdecl *tCallback)(const char* Message); 

sản xuất:

C:/test.cpp:2: warning: Found ';' while parsing initializer list! (doxygen could be confused by a macro call without semicolon) 
C:/test.cpp:1: warning: member with no name found. 

//typedef void(__cdecl *tCallback) 
typedef void(__cdecl *tCallback)(const char* Message); 

sản xuất giống như trên.

+1

có thể trùng lặp của [Doxygen và typedefs] (http://stackoverflow.com/questions/1290406/doxygen-and-typedefs), cho thấy rằng bạn có thể cần phải đủ điều kiện tên typedef của bạn nếu nó nằm trong một không gian tên hoặc lồng nhau trong một loại khác –

+0

Không trùng lặp với câu hỏi đó yêu cầu typedefs đơn giản không phải là kiểu phức tạp như thế này. Câu trả lời không giúp được gì, tôi đã tìm kiếm trước. –

+0

Bất kỳ ai muốn cho tôi biết lý do tại sao các phiếu bầu đóng? Không có bản sao ở đây. Bản sao được chỉ ra ở trên chỉ đơn giản là typedefs trong một không gian tên, không gian tên đã gây ra vấn đề. Câu hỏi này không liên quan. –

Trả lời

4

Thêm dòng sau vào Doxyfile của bạn:

PREDEFINED = __cdecl= 

Điều này sẽ gây Doxygen bỏ qua định danh này cho các mục đích của tài liệu.

+0

tốt hơn là một số trường hợp (trong tôi) là sử dụng 'PREDEFINED = __cdecl: =' để không thể gán lại __cdecl. –

+0

Độ chính xác nhỏ: bạn cần kích hoạt mở rộng macro (MACRO_EXPANSION = YES), hoặc PREDEFINED sẽ không có hiệu lực. –

+0

Tuy nhiên, tài liệu của bạn sau đó sẽ không hiển thị chữ ký gọi lại chính xác, phải không?Các __cdecl sẽ không được hiển thị trong các tài liệu, mà có thể gây ra vấn đề (ít nhất là trình biên dịch) nếu người dùng sao chép chữ ký từ các tài liệu chứ không phải là tiêu đề. Dường như với tôi rằng cần có một cách để các tài liệu hiển thị typedef giống hệt như trong mã. – dlchambers