experimental

Interactive Metaprogramming Shell based on Clang

A new video from Meeting C++ 2014:

Interactive Metaprogramming Shell based on Clang

by Ábel Sinkovics

From the talk description:

Developing metaprograms is hard and painful. Templight (http://plc.inf.elte.hu/templight/) supports the development and debugging of template metaprograms, but the code has to be recompiled after every minor change and tricks are needed to retrieve useful information about the result...

Expression Templates Revisited

A new video from Meeting C++ 2014!

Expression Templates Revisited

by Klaus Iglberger

From the talk description:

Since their invention in 1995, Expression Templates (ETs) have proven to be a valuable tool for many C++ template libraries. Especially numerics libraries quickly embraced them as salvation for the performance deficiencies of standard C++. This reputation as performance optimization...

C++ SIMD parallelism with Intel Cilk Plus and OpenMP 4.0

A new video from Meeting C++ 2014

C++ SIMD parallelism with Intel Cilk Plus and OpenMP 4.0

by Georg Zitzlsberger

From the talk description:

Performance is one of the most important aspects that comes to mind if deciding for a programming language. Utilizing performance of modern processors is not as straight forward as it has been decades ago. Modern processors only rarely improve serial execution of applications by increasing their frequency or adding more execution units.

Generic Parallel Programming

A new video from Meeting C++ 2014:

Generic parallel programming for scientific and technical applications

by Guntram Berti

From the talk description:

Technical and scientific applications dealing with a high computational load today face the challenge to match the increasingly parallel nature of current and future hardware. The talk shows how the increased complexity of software can be controlled by using generic programming technologies. The process and its advantages are introduced using many concrete examples...

Pruning Error Messages From C++ Template Code

A new video from Meeting C++ 2014 is uploaded:

Pruning Error Messages From C++ Template Code

by Roland Bock

From the talk description:

Many template libraries are regarded with ambivalent feelings by developers: On the one hand, such libraries can offer wonderful functionality. On the other hand, they are dreaded for the sheer amount of error messages spilled out...

Generating OpenCL/CUDA source code from C++ expressions in VexCL

A solution to generate code for CUDA and OpenCL with C++:

Generating OpenCL/CUDA source code from C++ expressions in VexCL

by Denis Demidov

From the talk description:

VexCL is an opensource C++ vector expression template library for OpenCL/CUDA. It has been created for ease of GPGPU development with C++ and provides convenient and intuitive notation for linear algebra operations, vector arithmetic and various parallel primitives.

Await, coroutines, what could that bring for game development

[This article is interesting not only because it's about work being proposed for consideration in the Concurrency TS, but also because it's interesting that we seem to be seeing a trend of articles being published on GitHub instead of on a blog... --Ed.]

 

Await, coroutines, what could that bring for game development

This article shows how we can use await in way not related to threading, tasks, or asynchronous I/O, but in the context of a game, to write game logic-related code spanning accross many frames in a sequencial way, without introducing any threads with little to no performance penalty.

Monads in Chains - Ivan Cukic @meetingcpp 2014

Ivan Cukic gave a very good talk on monads at Meeting C++ 2014:

Monads in Chains

by Ivan Cukic

From the talk description:

Monads are scary, and monads are evil. But they are still useful.

In the recent years, the abuse of multi-threading has become apparent and more and more systems started being developed in the reactive, or event-processing style. It allows lowering the number of threads to match the system cores instead of items that are being processed by using non-blocking asynchronous APIs.