2015-01-10 13 views
5

Trong mã của tôi, có một số cuộc gọi assert để đảm bảo rằng các chức năng của tôi hoạt động bình thường và thực hiện một số kiểm tra bất biến cho các cơ sở dữ liệu.Có thể bỏ qua `khẳng định` trong các biểu đồ tham chiếu doxygen tạo không?

Thỉnh thoảng tôi sử dụng các hàm trong đối số assert và các hàm này sau đó nằm trong đường dẫn cuộc gọi Doxygens của hàm đó. Đối với một số biến thể lớn hơn, điều này thực sự làm biến dạng biểu đồ…

Làm cách nào để tránh điều đó xảy ra trong biểu đồ cuộc gọi?

int list_isElem (List l, Element e) { 
    assert(list_isSorted(l)); 
    { 
    if (list_isEmpty(l)) { return 0; } 
    switch (compare(e, list_getValue(l))) { 
    case -1: return 0; 
    case 0: return 1; 
    case 1: return list_isElem (list_getTail(l), e); 
    default: exit(ERR_UNKNOWN); 
    } 
    } 
} 

Tôi đã cố gắng đặt PREDEFINED = NDEBUG trong Doxyfile, nhưng điều đó không hiệu quả.

Trả lời

1

chỉ cần bỏ qua xác nhận?

thấy http://www.stack.nl/~dimitri/doxygen/manual/faq.html

"Các phương pháp mới và đơn giản nhất là thêm một khối bình luận với một lệnh \ cond lúc bắt đầu và một bình luận khối với một \ endcond"

tự động hóa nó với một vĩ mô:

#define DAssert(x) /** \cond */ assert(x) /** \endcond */ 
+1

Tôi thích nếu tác phẩm này không có nhiều công việc thủ công. Tôi hy vọng rằng Doxygen có thể xử lý việc này một cách tự động hoặc ít nhất một người nào đó có thể chỉ cho tôi một bộ lọc đã tồn tại. – NobbZ

+1

Xác định macro kết thúc cuộc gọi 'assert()' với lệnh '\ cond' và' \ endcond'. –

+0

@NobbZ đã thêm macro sẽ hoạt động –

Các vấn đề liên quan