Pimpl es una fuente de repetición en muchos códigos C++. Parecen el tipo de cosas que una combinación de macros, plantillas y quizás una pequeña herramienta externa podrían ayudar a resolver, pero no estoy seguro de cuál sería la forma más fácil. I've seen templates que ayudan a levantar algo, pero no mucho; aún así, necesitas escribir funciones de reenvío para cada método de la clase que estás tratando de envolver. hay una manera mas facil?Automatice pimpl'ing de las clases de C++, ¿hay alguna manera fácil?
Estoy imaginando una herramienta utilizada como parte del proceso de fabricación. Usted quiere que sus encabezados públicos sean clases con pimpin, por lo que proporciona un archivo de entrada, digamos pimpl.in, que enumera las clases (implementadas sin chulo) que le gustaría envolver, luego ese archivo es examinado, las clases pimpl se generan y solo sus encabezados (no los encabezados de la clase original) se instalan durante una 'make install'. El problema es que no veo ninguna manera de hacer esto sin un analizador de C++ completo, algo que incluso los proveedores de compiladores no pueden hacer bien. Tal vez las clases se podrían escribir de alguna manera que facilita el trabajo de una herramienta externa, pero estoy seguro de que terminaría perdiendo todo tipo de casos de esquina (por ejemplo, clases con plantilla y/o funciones de miembro con plantilla).
¿Alguna idea? ¿Alguien más ya tiene una solución para este problema?
Lazy C++ hace algo similar – Amnon