Ale Contenti: C++ Component Extensions for WinRT
Channel: CppNow
Date: 2012-06-25

Ale's talk from C++Now! 2012

C++ is leveraged in platforms that also apply other programming languages and technologies (i.e. Objective C in iOS, Java in Android, .NET in Windows). One of the challenges posed by heterogeneous programming projects is the need to bind C++ to a foreign object model. Existing attempts like CORBA, COM achieved success but at the expense of some complexity to be paid by developers.

This talk details two approaches taken at Microsoft to deal with this issue. The first approach employs a C++ abstraction layer to deal with the complexities of mixing C++ and non-C++ components (foreign object models) in the same application. In our particular implementation, this abstraction layer (i.e. the WRL library, which heavily uses modern C++ techniques well known to Boost users and developers) simplifies the implementation of COM components, but the general idea behind this solution could be extended to any heterogeneous environment. The second approach pushes the boundaries of C++ itself by adding some extensions to its syntax in order to enable the declaration and definition of components intended to interact with peers coded in different languages.

This talk explains both approaches, including pros and cons, benefits and caveats of  each solution. Finally, the talk addresses how each design could potentially influence the evolution of the language.
---

*--*

---