Tôi hiện đang viết dự án lớn trong C++ 11.Thư viện phản chiếu C++ 11
Tôi đang tìm kiếm một thư viện phản xạ C++ 11/C++ và tôi đã tìm thấy một số thư viện khác nhau, nhưng hầu hết trong số chúng không được cập nhật trong vài năm qua hoặc chức năng của chúng rất hạn chế.
Bạn có thể cho tôi biết nếu có thư viện thực sự tốt cho C++ 1/C++ để phản ánh không? (Tôi muốn có phản xạ tĩnh và động, biết nhiều thông tin nhất có thể về phương pháp, lớp học, vv, có thể tự động thêm và truy cập các phương pháp, v.v.)
Hoặc có thể C++ 11 cung cấp một số chức năng bổ sung để thiết kế thư viện phản chiếu tốt hơn và tôi có nên tự viết nó không? (Tuy nhiên, tôi chưa tìm thấy thông tin về nó.)
Dường như thiết kế của bạn không khớp với lựa chọn ngôn ngữ của bạn. – ybungalobill
Đây là [câu hỏi tương tự] (http://stackoverflow.com/questions/41453/how-can-i-add-reflection-to-a-c-application). Tôi cũng tìm kiếm và tìm thấy [CAMP] (https://github.com/tegesoft/camp). Tôi có một [ngã ba] (https://github.com/billyquith/camp) sẽ loại bỏ sự phụ thuộc Tăng và sử dụng C++ 11 để thay thế. – Nick
Tôi không chắc chắn điều này đã thay đổi như thế nào qua nhiều năm, nhưng bạn có thể hoàn thành một số tính năng phản chiếu thông qua thiết kế cẩn thận. Ví dụ: mẫu trang trí để thêm/sửa đổi hành vi tại CT hoặc RT (https://en.wikipedia.org/wiki/Decorator_pattern); SFINAE để phát hiện một chức năng tại CT https://stackoverflow.com/a/29319078/1043529; dep. đảo ngược (https: //en.wikipedia.org/wiki/Dependency_inversion_principle) để tìm các phương thức cụ thể (CRTP và static_cast cho CT, dynamic_cast cho RT) và hơn thế nữa. Phản ánh đầy đủ cho các loại thực sự tùy ý? Chọn trận chiến của bạn, điều này là một trong những khó khăn. –