Dynamization of C++ static libraries


Revision as of 18:07, 9 January 2018 by Bot (talk | contribs) (Created page with "{{CSIReport | authors = Nicolas Pouillard, Damien Thivolle | title = Dynamization of C++ static libraries | year = 2006 | number = 0602 | lrdeprojects = Olena | lrdepaper = ht...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)


Static C++ allows designers to develop efficient and generic libraries, but for the end user such libraries are very restricting. Indeed compilation cycles are so long that it forbids prototyping. To overcome this shortcomingwrappers generators such as SWIG allow to pre-instantiate static classes and functions and then make them available in a higher-level language. In our opinion, such approaches have drawbacks. They force the end user to learn a new language to use a C++ library and they can not use classes or functions if they are not available yet. From users feedback, what is really needed is a way to use static C++ from within a C++ dynamic environment and without facing deadly compilation times. To respond to that need, we developed a C++ environment that allows static C++ functions and classes manipulation. We use just in time compilation with a cache system to compile classes and functions on demand. Using advanced C++ programming techniques, we manage to rend the usage of our environment very handy for the end user, thus allowing fast and efficient prototyping.