April 2015

CppCon 2014 Embind and Emscripten: Blending C++11, JavaScript, and the Web Browser--Chad Austin

While we wait for CppCon 2015 in September, we’re featuring videos of some of the 100+ talks from CppCon 2014. Here is today’s feature:

Embind and Emscripten: Blending C++11, JavaScript, and the Web Browser

by Chad Austin

(watch on YouTube) (watch on Channel 9)

Summary of the talk:

Emscripten compiles C or C++ source code into JavaScript so it can run in a web browser. Emscripten is commonly used to port games to the web with no download or plugin required.

Embind is a C++11 binding library that makes it easy to expose libraries written in C++ to JavaScript. This allows JavaScript applications to take advantage of existing bodies of C++ code. In addition, C++ compiled into the asm.js subset of JavaScript is often faster than hand-written JavaScript, so Embind makes it convenient to accelerate JavaScript applications by writing high-performance functionality in C++.

With several motivating examples, this lecture will cover the design of embind, how variadic templates and constexpr facilitate interesting optimizations, and how embind minimizes its impact on the size of the generated JavaScript.

CppCast Episode 7: Quick Game Development with Vittorio Romeo -- Rob Irving

Episode 7 of CppCast the only podcast by C++ developers for C++ developers. In this episode Vittorio Romeo joins Rob Irving to talk about making simple games with C++ using libraries like SFML, SDL and Cinder.

CppCast Episode 7: Quick Game Development with Vittorio Romeo

by Rob Irving

About the interviewee:

Vittorio Romeo is an undergraduate Computer Science student at "Università degli Studi di Messina". Since childhood he has always been interested in programming, and learned to develop applications and games as an autodidact. After discovering C++ a few years ago, Vittorio became extremely passionate about its evolution and its community. He currently works on open-source general-purpose C++14 libraries and develops free open-source games. Vittorio also loves teaching: he manages a well-received C++11/C++14 video tutorial series and he talked about game development in C++ at CppCon 2014. When he's not in front of a computer, Vittorio enjoys fitness activities (weightlifting, swimming, running) and reading.

JetBrains - ReSharper C++ 1.0 released

JetBrains just released their ReSharper for C++ in version 1.0, after a year of an open beta program.

ReSharper for C++

From the website:

ReSharper C++ makes Microsoft Visual Studio a much better IDE with refactorings, navigation, code inspections, quick-fixes, code generation and more productivity features for C++ development.

ReSharper C++ extends Visual Studio with over 60 C++ code inspections that are displayed instantly, as you type.
For many of these inspections, ReSharper C++ provides quick-fixes (light bulbs) to improve code in one way or another.

 

CppCon opens Call for Submissions -- Jon Kalb

CppCon has announced its call for submission for 2015. The deadline for submissions is May 22nd and the conference will start September 20th.

Call for Submission

From the invitation:

CppCon is the annual, week-long face-to-face gathering for the entire C++ community. The conference is organized by the C++ community for the community and so we invite you to present.

CppCon 2014 Introduction to C++ AMP (GPGPU Computing)--Marc Gregoire

While we wait for CppCon 2015 in September, we’re featuring videos of some of the 100+ talks from CppCon 2014. Here is today’s feature:

Introduction to C++ AMP (GPGPU Computing)

by Marc Gregoire

(watch on YouTube) (watch on Channel 9)

Summary of the talk:

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. C++ AMP can deliver orders of magnitude performance increase with certain algorithms by utilizing the GPU to perform mathematical calculations. This talk will give a high level overview of what C++ AMP is and what it can do for you. It is time to start taking advantage of the computing power of GPUs!

C++ User Group Meetings in April

The monthly overview on upcoming user group meetings at Meeting C++:

C++ User Group Meetings in April 2015

by Jens Weller

From the article:

The List:

    9.4 C++ UG Dublin - C/C++ two great talks\, quiz with prizes\, pizza\, ...
    9.4 C++ UG Amsterdam - New data structures in C++11 and Boost
    9.4 C++ UG Dresden - Go all binary!
    11.4 C++ UG Pune, India - More C++ Concurrency
    13.4 C++ UG Denver - Denver Tech Center C++ Developers
    14.4 C++ UG Luzern - C++ Pub Quiz
    15.4 C++ UG Düsseldorf - Encryption & C++
    15.4 C++ UG Hamburg - Operators
    15.4 C++ UG Northwest/Seattle - Pushing the boundaries of C++ Codegeneration
    16.4 C++ UG Rhein-Neckar - Modern C++ Allocators (C++03 to C++17)
    16.4 C++ UG Ruhrgebiet - April fools!
    20.4 C++ UG Austin - North Austin Monthly C/C++ Pub Social
    21.4 C++ UG Berlin - Rationales behind C++ atomics
    22.4 C++ UG San Francisco/ Bay area - Workshop and Discussion Group
    23.4 C++ UG Munich - TBA
    23.4 C++ UG New York - Introduction to C++ Casting
    28.4 C++ UG Chicago - Modern Template Metaprogramming
    29.4 C++ UG London - monthly meetup
    29.4 C++ UG Bremen - C++11/14/1x und Biicode

Overload 126 is now available

ACCU's Overload journal of April 2015 is out. It contains C++ related articles.

Overload 126

From the journal:

Alternatives to Singletons and Global Variables: Global variables and Singletons are usually considered bad. Bob Schmidt summarises some alternatives. by Bob Schmidt

Resource Management with Explicit Template Specializations: RAII is a useful idiom. Pavel Frolov presents a powerful extension using explicit template specialization. by Pavel Frolov

Variadic and Variable Templates: C++11 and 14 offer new features for Variadic and Variable templates. Peter Sommerlad showcases the compile-time possibilities they offer. by Peter Sommerlad

iterator_pair – A Simple and Useful Iterator Adapter: Can you form a new contain from two others? Vladimir Grigoriev reminds us how to write an iterator. by Vladimir Grigoriev

Benchmarking in C++

A writeup of one approach to implement helpers for...

... Benchmarking in C++

by Nick Athanasiou

From the article:

We’ll be creating a framework that attempts to provide a generic, cross platform (standard compliant), non dependent to third party libraries solution to the benchmarking problem and explore the facilities C++ has to offer on the topic. 

The end product will have the following use pattern :

benchmark<time_type, clock_type> bm;

bm. run(
    "Experiment Name"
    , sampleSize
    , { /* code to time */ }
    , "factor name"
    , factors. begin(), factors. end() );

bm. serialize(
    "benchmark name" , "output file name" , mode);