Pimpl to źródło tablicy w wielu kodach C++. Wygląda na to, że kombinacja makr, szablonów i może trochę pomocy z zewnątrz może rozwiązać problem, ale nie jestem pewien, jaki byłby najłatwiejszy sposób. I've seen templates, które pomagają trochę podnieść, ale nie za wiele - wciąż musisz napisać funkcje przekazywania dla każdej metody klasy, którą próbujesz zawijać. Czy istnieje prostszy sposób?Zautomatyzuj pimpl'ing klas C++ - czy istnieje prosty sposób?
Wyobrażam sobie narzędzie używane jako część procesu tworzenia. Chcesz, aby twoje nagłówki publiczne były klasami pimpl'd, więc musisz podać plik wejściowy, na przykład pimpl.in, który zawiera listę klas (zaimplementowanych un-pimpl'd), które chcesz zawijać, następnie plik jest badany, klasy pimpl są generowane i tylko ich nagłówki (nie oryginalne nagłówki klasy) są instalowane podczas "make install". Problem polega na tym, że nie widzę sposobu, aby to zrobić bez pełnego parsera C++, coś, czego nawet dostawcy kompilatorów nie mogą uzyskać. Być może klasy mogłyby być napisane w jakiś sposób, co czyni pracę narzędzia zewnętrznego łatwiejszym, ale jestem pewny, że w efekcie skończyłoby się brakować różnego rodzaju przypadków narożnych (na przykład szablonowych klas i/lub szablonowych funkcji składowych).
Wszelkie pomysły? Czy ktoś jeszcze ma rozwiązanie tego problemu?
Lazy C++ robi coś podobnego – Amnon