C++Now 2014 has ended
Please visit the C++Now website.
Back To Schedule
Thursday, May 15 • 2:30pm - 4:00pm
CppComponents: A Modern Portable C++11 Component System

Log in to save this to your schedule, view media, leave feedback and see who's attending!

One of the major things holding C++ back is the lack of a good component system. Other languages have the ability to easily incorporate prebuilt libraries into your project. With C++, you are often stuck rebuilding (or trying to rebuild) code, since C++ code built with a different compiler, with a different version of the same compiler, or as debug and release builds with the same compiler is ABI incompatible. With a good component system, it is easier to both package and consume libraries. This presentation introduces you to CppComponents, a component system for C++ that allows you to easily use binary components created with one compiler in a project compiled with another compiler and/or standard library. You can do this while still using your favorites from the Standard Library — such as string, vector, tuple, chrono, etc. — as function parameters and return values, as well as using exceptions. In addition, CppComponent provides cross ABI compatible function objects, futures, promises, executors, and channels. All of these are available in a header-only library that only depends on the C++11 standard library.

In this talk we will look at the techniques that underlie this library, provide examples of how to easily consume and create binary components that can be used from many compilers, and look at some example components that make multithreading and network programming much simpler. We will also look at some advanced uses of the library such as easy dependency injection and dynamic, name-based method calling. We will wrap up the talk looking at future directions, including how this library can enable a "C++ PyPI", and a C++ component renaissance that will make C++ easier to use in a wide variety of domains. The target audience for this talk is intermediate and advanced C++ programmers, though beginners will also find this talk to be helpful.

avatar for John Bandela

John Bandela

Software Engineer, Google
I first started programming in C++ at age 14 in 1994 when I cajoled my parents into buying me Visual C++ 1.0 for my birthday. It took a while, but as I learned the language, I decided I really liked C++. I attended the University of Florida and obtained my undergraduate degree in... Read More →

Thursday May 15, 2014 2:30pm - 4:00pm MDT

Attendees (0)