Bạn có thể xem xét ctags, có sẵn trên nhiều nền tảng. Đầu ra có thể dễ dàng phân tích cú pháp và đầy đủ thông tin bạn yêu cầu.
thông tin khác Đối với câu hỏi của bạn, tôi phải xem xét nhiều tùy chọn có sẵn và sau một ít tôi tìm thấy nó. Ví dụ:
ctags -N -x --c-kinds=+p crowd.*
sản xuất sản lượng này
CrowdSim class 44 crowd.h class CrowdSim
CrowdSim function 47 crowd.h CrowdSim(const std::string& contentDir) : _contentDir(contentDir) {}
Particle function 35 crowd.h Particle()
Particle struct 25 crowd.h struct Particle
_contentDir member 56 crowd.h std::string _contentDir;
_crowd_H_ macro 18 crowd.h #define _crowd_H_
_particles member 57 crowd.h std::vector<Particle> _particles;
animTime member 32 crowd.h float animTime;
chooseDestination function 24 crowd.cpp void CrowdSim::chooseDestination(Particle &p)
chooseDestination prototype 53 crowd.h void chooseDestination(Particle &p);
dx member 28 crowd.h float dx, dz; // Destination position
dz member 28 crowd.h float dx, dz; // Destination position
fx member 29 crowd.h float fx, fz; // Force on particle
fz member 29 crowd.h float fx, fz; // Force on particle
init function 35 crowd.cpp void CrowdSim::init()
init prototype 49 crowd.h void init();
node member 31 crowd.h H3DNode node;
ox member 30 crowd.h float ox, oz; // Orientation vector
oz member 30 crowd.h float ox, oz; // Orientation vector
px member 27 crowd.h float px, pz; // Current postition
pz member 27 crowd.h float px, pz; // Current postition
update function 68 crowd.cpp void CrowdSim::update(float fps)
update prototype 50 crowd.h void update(float fps);
(lưu ý: -x chỉ là để kiểm tra người sử dụng dễ dàng)
Tất nhiên luôn có cách gọi mã C++ từ .NET, sử dụng C++/CLI. Một giải pháp di động hơn sẽ là cung cấp một wrapper C đồng bằng xung quanh libclang (nên khá đơn giản). Nhưng giải pháp tốt nhất có thể là để đi cho một phiên bản cũ của Clang, trở lại khi máy in XML đẹp của nó vẫn còn tồn tại. Thật là buồn vì nó đã bị loại khỏi Clang. –
Một tùy chọn khác (một chút gỉ, nhưng vẫn hoạt động đối với hầu hết các trường hợp) là trình phân tích cú pháp của Elsa kết hợp với bộ tiền xử lý gcc. –
Bạn không rõ ràng về cách chính xác câu trả lời bạn muốn. Bạn có thể xây dựng một giải pháp dựa trên các cặp ngoặc đơn có khả năng tạo ra thông tin về phương thức/lớp đơn giản 90% thời gian, với các lỗi ngoạn mục 10% khác. Bạn định làm gì với kết quả? –