C++M is a compiler and operating system independent component architecture which has been designed with an extensive focus on C++11. The basic principles of C++M are similar to those of COM and CORBA, but some key design decisions differ greatly. Some key differences compared to the former are the use of a hierarchical namespace and the use of human readable “fully qualified names” instead of GUIDs, as well as the support for basic metadata that allows the distribution of modules in binary form only, while still allowing extensive reuse.
Component proxies are central to the abstraction of the ABI and allow the C++M model to do automatic marshaling of parameters, automatic lifecycle management (RAII) and to support exception handling across component (and compiler/library) boundaries. These proxies are generated with a special pre-compiler from the “module description language”.
Be the first to post a review of cppm!