Mam zamiar napisać duży projekt w języku C++ 11.Biblioteka refleksyjna C++ 11
Poszukuję dobrej biblioteki C++ 11/C++ i znalazłem kilka różnych bibliotek, ale większość z nich po prostu nie jest aktualizowana przez ostatnie kilka lat lub ich funkcjonalność jest bardzo ograniczona.
Czy możesz mi powiedzieć, czy istnieje naprawdę dobra biblioteka dla C++ 1/C++ do refleksji? (Chcę mieć odbicie statyczne i dynamiczne, znać jak najwięcej informacji o metodach, klasach itp., Można dynamicznie dodawać i uzyskiwać dostęp do metod itd.).
A może C++ 11 zapewnia dodatkowe funkcje, które pomogą do lepszego projektowania bibliotek refleksyjnych i czy powinienem napisać to sam? (Nie znalazłem jednak informacji na ten temat).
Wygląda na to, że Twój projekt nie pasuje do Twojego wyboru języka. – ybungalobill
To jest [podobne pytanie] (http://stackoverflow.com/questions/41453/how-can-i-add-reflection-to-a-c-application). Szukałem też i znalazłem [CAMP] (https://github.com/tegesoft/camp). Mam [fork] (https://github.com/billyquith/camp), który usuwa zależność Boost i używa C++ 11 zamiast tego. – Nick
Nie jestem pewien, jak bardzo zmieniło się to przez lata, ale możesz być w stanie osiągnąć niektóre cechy refleksji dzięki starannemu projektowaniu. Na przykład: wzór dekoratora, aby dodać/zmodyfikować zachowanie w CT lub RT (https://en.wikipedia.org/wiki/Decorator_pattern); SFINAE wykrywa funkcję w CT https://stackoverflow.com/a/29319078/1043529; dep. inwersja (https: //en.wikipedia.org/wiki/Dependency_inversion_principle), aby wyszukać określone metody (CRTP i static_cast dla CT, dynamic_cast dla RT) i więcej. Pełna refleksja dla prawdziwie arbitralnych typów? Wybierz swoje bitwy, ten jest pod górkę. –