Talks at the Meeting C++ 2013 Conference

Containers in Boost

The Boost libraries provide many useful containers which nicely extend the available containers in the C++ standard library. In this session we will have a look at containers in Boost. Depending on time and interest we cover Boost.Multiindex, Boost.Bimap, Boost.CircularBuffer, Boost.PropertyTree, Boost.

Boosting MPL with Haskell elements

The similarities of Haskell and C++ template metaprogramming is known [1,2], but a number of Haskell language elements have not been introduced into C++ template metaprogramming.

Haskell, like many other functional languages uses let expressions to support the programmer in writing more readable code.

Debugging and Profiling C++ Template Metaprograms

C++ Template Metaprogramming is a well known technique in which clever definitions of templates can force the C++ compiler to execute algorithms at compilation time. Among the application areas of template metaprograms are the expression templates, static interface checking, code optimization with adaption, domain specific language embedding and active libraries.

Scaling with C++11

As the number of cores per processor increases, software need to be able to execute multiple tasks in parallel in order to benefit from Moore’s law. This is not only a question of writing parallel algorithms, but also a matter of designing the application properly to reduce inter-thread dependencies.

Simpler C++ Code through C++11

With the release of the new ISO C++11 standard there are several areas where new syntax and library components will make writing C++ code simpler. For example, many textbooks and teachers refrain from introducing STL algorithms early on, because explaining functors or function pointers and dealing with the sometimes monstrous compiler error messages they believe is too hard for students.

C++1y: "Concepts-Lite" - how a future template parameter type system might look like

The standardization of C++0x lead to the drop of the language feature called "concepts" due to the complexity of its specification and implementation. Now the protagonists of a type system for template parameters propose a new approach to get constraints on template parameters into the language standard.

"Real life" Template Meta-Programming

Everybody has heard of Template Meta-Programming in C++, has seen the easy  examples of calculating fibunacci or a factorial. Who has ever needed this? It seems, that tmp is only for advanced C++ Experts in extreme use cases.

This talk focuses on some easy examples for tmp usage in areas interesting for C++ programmers.

Generic Programming for the rest of us

The paradigm of Generic Programming (GP) is well known to most C++ programmers
since the introduction of the STL. GP is a might design principle for constructing maximally reusable components and libraries far beyond the scope of the STL. However, although the STL and boost components are routinely used in current C++ development projects, developing their own generic components is something many programmers shy away from, perhaps partly because GP is often confused with black template magic.

UI prototyping and development for multiple devices in C++

Using C++ for multiple device user interface (and application) development. Since, the C++ language and library standard does not specify a user interface library, there are many choices with many pros and cons. Even more challenging is the new world of mobile devices and the myriad form factor, layouts, and resolution that an application developer has to deal with.

C++, XAML and DirectX: Better together

With Windows 8, Microsoft introduced a new, native UI framework for Application developers. This framework, named XAML, also offers good integration support with the core DirectX graphics technologies.
This presentation is about the various ways to integrate XAML and DirectX using C++ and build differentiated application experiences.

Embedded Programming with C++11

Embedded programming is one of the key domains of C++. With C++11 this feature has been improved, as C++11 "makes C++ even better for embedded systems programming and high-performance computation" (Bjarne Stroustrup). But what are the features to make C++11 such a great language in the embedded world to aim the goals of safety-, realtime-, resource- and hardware-critical systems? Be suprised what C++11 will offer you in this special domain constexpr, std::array, generalized PODs, alignment support und userdefined literals to name only a few of the C++11 features.

Modern CMake for C++

CMake is an advanced buildsystem generator supporting multiple languages,
platforms, IDEs and build tools. Although CMake has already had over 10 years
of use, it continues to get new features to make modern buildsystems easier to
write. Much of the development focus currently is on the needs of users such
as boost and Qt 5 need from CMake.

Productive Scientific Programming with MTL4

The Matrix Template Library v4 (MTL4) has been proven to provide high
performance on different platforms while -- maybe even more
importantly -- allowing for high productivity in the development
process. The intuitive notation provides an easy entry level and quick
programming progress while scientists do not need to waste their time
with deep technical details.

Qt5 and its Multimedia Framework

This talk starts with a short overview over Qt5, and focuses on the new Multimedia Framework for recording and playback in Qt5. Qt5 was released in late 2012, and brings some new things, unfortunately too much to put all in one talk. With last years recordings, I was forced to look for a different solution for recording videos.

From 0 to BlackBerry 10

The fun starts at HelloWorld but doesn't stop there! In this practical hands on session we will start from an empty page, go through the best practice of building a mobile native app using the new application framework Cascades and finally package and deploy the application on the real device.
We will talk about quirks, security and much more around C++/Qt and Cascades development.

Asynchronous programming using the Boost Meta State Machine library

We'll use the Boost Meta State Machine library to write a small Qt application (a CD player simulation).
The asynchronous part will be given to us by Qt's event loop, which will forward events to a state machine serving as central dispatcher. This state machine will manage the whole application.


The new C++ Standard (C++11) changed the language and the (C++-) standard library. After concentrating on the language changes, it is time to take a closer look at the library changes.

Many of the language changes are library-driven (e.g. R-Value References). A good understanding of the changes in the libraries helps to understand the changes in the language.

Modern C++ Network Programming

This talk will first give a short overview of the current state of network programming in C++, in particular showing what is considered useful to standardise. Then, it will present a roadmap that the ISO study group on networking will attempt to follow as it progresses. Finally, concrete examples will be presented of the more mature existing library proposals.

C++ AMP (GPGPU Computing)

Meet C++ AMP (Accelerated Massive Parallelism), an abstraction layer on top of accelerators such as GPUs. In its current version it allows you to run code on any DX11 GPU, independent of the vendor, and it will even distribute workload across GPUs of different vendors simultaneously. C++ AMP was originally designed by Microsoft but is now an open standard.

Developing cross-platform apps and games in C++

Marmalade is a software development tool that allows developers to deploy to multiple operating systems from a single C++ codebase.  Marmalade’s flexible approach to development gives creators the chance to focus on programming rather than device compatibility.

In this talk our Senior Developer, Nick Smith, will take an under-the-hood look at Qubit, a game built with Marmalade by our sister studio, Marmalade Game Studio, and currently on iOS, Android, BlackBerry 10 and shortly Windows Phone 8 and selected smart TVs.

Efficient Team Development for C++ Projects

Developing Software in Teams is a challenge. It’s about communication to stakeholders and Team members. Communicating Code changes via Code review, the graphically results of your Debugging Session to a college, the Product Backlog or simply chatting with your peer. Communication is important and can cause Freedom or Hell.

Keynote: C++11 and No-Compromise Library Design

If you're writing reusable code and you're not taking full advantage of C++11's new features, stop what you're doing! The rules have changed, from the bottom -- like parameter-passing -- to the top -- like library versioning. Code written with C++11 can be more modular and composable than ever, with easier and safer-to-use interfaces, with better template error messages, and with less boilerplate.

Keynote: Aesthetics. UI. C++.

Description Haiku:

smile the senses
expose functionality
what are these symbols