2016-03-09 31 views
5

Có thể dạy Doxygen nhận ra một thành viên thuộc loại std::shared_ptr<T> là một tập hợp không? Tôi nghĩ rằng nó làm cho con trỏ bình thường, mặc dù tôi đã thêm BUILTIN_STL_SUPPORT=YES.Doxygen có thể nhận diện std :: shared_ptr hoặc std :: map

Câu hỏi cũng mở rộng đến std::unique_ptr mà phải là một thành phần, và tôi nghĩ rằng std::map<K,V>, std::vector<V> vv có thể được ghi lại như thành phần với đa 1 ... N, mặc dù tôi khá chắc chắn tôi không muốn điều này trong mọi trường hợp .

Nếu điều này là không thể với Doxygen, tôi sẽ quan tâm đến các hệ thống tài liệu thay thế cho C++.

Trả lời

2

Kể từ phiên bản 1.8.14, Doxygen không thêm std::shared_ptr<T> vào danh sách nội bộ của các lớp std khi BUILTIN_STL_SUPPORT được bật.

Nhưng tương đối dễ dàng để thêm nó bằng cách sửa đổi các nguồn Doxygen. Trong src/doxygen.cpp có một biến toàn cầu g_stlinfo chứa định nghĩa của các lớp tiêu chuẩn. Ngoài ra, hàm addSTLClasses() trong cùng một lớp có một nhánh cho các lớp con trỏ thông minh.

Tham khảo this changeset để thay đổi tối thiểu để bật hỗ trợ shared_ptr.

Rất tiếc, tôi chưa thể trả lời phần còn lại của câu hỏi của bạn.

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