2013-07-17 45 views
8

Nhìn qua C and C++ domains của Nhân sư, nó dường như không có hỗ trợ gốc cho tài liệu enums (và ít enums ẩn danh nhiều hơn). Hiện tại, tôi sử dụng cpp:type:: cho loại enum và sau đó là danh sách tất cả các giá trị có thể có và mô tả của chúng, nhưng dường như không phải là cách lý tưởng để giải quyết nó, đặc biệt là Tôi chỉ tham chiếu đến loại hoặc thêm một điểm đánh dấu ở phía trước giá trị).Nhân sư: Cách chính xác để lập tài liệu về enum?

Có cách nào tốt hơn để thực hiện việc này không? Và làm thế nào tôi sẽ đi về xử lý enums nặc danh?

Trả lời

0

Xin chào Có thể bạn nên xem xét sử dụng doxygen cho tài liệu vì tài liệu này có nhiều hỗ trợ gốc hơn cho c/C++. nếu bạn muốn giữ lại đầu ra nhân sư của tài liệu của bạn, bạn có thể xuất ra từ doxygen dưới dạng xml, sau đó sử dụng Breathe nó sẽ lấy xml và cung cấp cho bạn đầu ra nhân sư giống như bạn đã từng có.

Dưới đây là ví dụ về việc ghi lại một enum trong định dạng doxygen từ trang web hít thở.

//! Our toolset 
/*! The various tools we can opt to use to crack this particular nut */ 
enum Tool 
{ 
    kHammer = 0,   //!< What? It does the job 
    kNutCrackers,   //!< Boring 
    kNinjaThrowingStars //!< Stealthy 
}; 

hy vọng điều này sẽ hữu ích.

+0

Tôi thích Sphinx hơn Doxygen vì dễ tùy chỉnh hơn và cách Breathe hoạt động không thực sự tương thích với cách viết tài liệu của chúng tôi (ngoài ra, nhìn vào đầu ra, chúng dường như có vấn đề tương tự khi trình bày enums) .Breathe và Doxygen không phải là lựa chọn khả thi đối với chúng tôi, xin lỗi. – JustSid

3

Một dự án trên Github, spdylay, dường như có cách tiếp cận. Một trong các tập tin tiêu đề ở https://github.com/tatsuhiro-t/spdylay/blob/master/lib/includes/spdylay/spdylay.h có mã như thế này:

/** 
* @enum 
* Error codes used in the Spdylay library. 
*/ 
typedef enum { 
    /** 
    * Invalid argument passed. 
    */ 
    SPDYLAY_ERR_INVALID_ARGUMENT = -501, 
    /** 
    * Zlib error. 
    */ 
    SPDYLAY_ERR_ZLIB = -502, 
} spdylay_error; 

Có một số mô tả về cách họ đang làm nó ở https://github.com/tatsuhiro-t/spdylay/tree/master/doc, trong đó bao gồm sử dụng một máy phát điện API gọi mkapiref.py, có sẵn tại https://github.com/tatsuhiro-t/spdylay/blob/master/doc/mkapiref.py

RST tạo ra cho ví dụ này là

.. type:: spdylay_error 

    Error codes used in the Spdylay library. 

    .. macro:: SPDYLAY_ERR_INVALID_ARGUMENT 

     (``-501``) 
     Invalid argument passed. 
    .. macro:: SPDYLAY_ERR_ZLIB 

     (``-502``) 
     Zlib error. 

Bạn có thể xem và xem chúng tôi có eful cho bạn.

+0

Cảm ơn đề xuất Alex - Tôi cũng cần một ví dụ về điều này! Tôi đã tự do chỉnh sửa đánh dấu Sphinx nó tạo ra cho ví dụ vào câu trả lời của bạn. – Blair