Library composition and adaptation using c++ concepts

Jaakko Järvi, Matthew A. Marcus, Jacob N. Smith
2007 Proceedings of the 6th international conference on Generative programming and component engineering - GPCE '07  
Large scale software is composed of libraries produced by different entities. Non-intrusive and efficient mechanisms for adapting data structures from one library to conform to APIs of another are essential for the success of large software projects. Concepts and concept maps, planned features for the next version of C++, have been designed to support adaptation, promising generic, non-intrusive, efficient, and identity preserving adapters. This paper analyses the use of concept maps for
more » ... composition and adaptation, comparing and contrasting concept maps to other common adaptation mechanisms. We report on two cases of data structure adaptation between different libraries, indicating best practices and idioms along the way. First, we adapt GUI controls from several frameworks for use with a generic layout engine, extending the application of concepts to run-time polymorphism. Second, we develop a transparent adaptation layer between an image processing library and a graph algorithm library, enabling the efficient application of graph algorithms to the image processing domain.
doi:10.1145/1289971.1289984 dblp:conf/gpce/JarviMS07 fatcat:icwyeaxx2ng23e2hhwooo44fge