CppCon 2016: Channels - An alternative to callbacks and futures--John Bandela

Have you registered for CppCon 2017 in September? Don’t delay – Registration is open now.

While we wait for this year’s event, we’re featuring videos of some of the 100+ talks from CppCon 2016 for you to enjoy. Here is today’s feature:

Channels - An alternative to callbacks and futures

by John Bandela

(watch on YouTube)

Summary of the talk:

Currently in the C++ Networking TS and Concurrency TS, callbacks and futures are the means for communicating an asynchronous value. However, there are disadvantages with both. Callbacks are low overhead, but hard to compose. Futures are easy to compose, but have increased overhead. In this talk we will consider channels as a third alternatives that can have lower overhead than futures while still being easy to compose

CppCon 2016: Rich Code for Tiny Computers: A Simple Commodore 64 Game in C++17--Jason Turner

Have you registered for CppCon 2017 in September? Don’t delay – Registration is open now.

While we wait for this year’s event, we’re featuring videos of some of the 100+ talks from CppCon 2016 for you to enjoy. Here is today’s feature:

Rich Code for Tiny Computers: A Simple Commodore 64 Game in C++17

by Jason Turner

(watch on YouTube) (watch on Channel 9)

Summary of the talk:

The Commodore 64 was released in 1982 and is the best selling computer model of all time. At 34 years old, even the most simple embedded processor today outperforms it. Join me on an exploration of how C++17 techniques can be utilized to write expressive, high performance, high level code for simple computers. Together we will create a game for this aging system.

You'll leave the talk with a better understanding of what your compiler is capable of and be able to apply these ideas to create better code on modern systems.

CppCast Episode 102: Boost Outcome with Niall Douglas

Episode 102 of CppCast the only podcast for C++ developers by C++ developers. In this episode Rob and Jason are joined by Niall Douglas to talk about Google Summer of Code, Boost and his proposed Outcome library.

CppCast Episode 102: Boost Outcome with Niall Douglas

by Rob Irving and Jason Turner

About the interviewee:

Niall Douglas is a consultant for hire, is one of the authors of the proposed Boost.AFIO v2 and Boost Outcome, he is also currently the primary Google Summer of Code administrator for Boost.

C++ Online Compilers--Arne Mertz

Did you ever use them?

C++ Online Compilers

by Arne Mertz

From the article:

Online compilers can be useful tools to quickly compile a snippet of code without having to install a proper compiler on our computer. They can be especially useful to play with the newest language features, to share code snippets online or to compare different compilers...

corsl - Coroutine support library--Alexander Bessonov

Interesting library

corsl - Coroutine support library

by Alexander Bessonov

From the article:

corsl stands for "Coroutine Support Library" and consists of a number of utility classes and functions that simplify asynchronous programming in Windows. It is inspired by an amazing cppwinrt library, developed by Microsoft.

cppwinrt was created as a language projection for Windows Runtime, which is supported by Windows 8 or later operating systems. It is impossible to use in prior Windows versions.

One of the goals of corsl library was being able to use it under Windows Vista or later operating system...

A self-contained Pool in C++14--Jens Weller

How to do a pool?

A self-contained Pool in C++14

by Jens Weller

From the article:

During C++Now I started writing a small application, that plays around with dlibs face recognition features. More on this later, the program uses the QThreadPool, and some researched showed that calling dlib::get_frontal_face_detector() is a very expensive operation. So I decided to write a thread safe pool to share the face detection object between threads, only loading as many as needed. The main thread owns the pool which owns the detection objects...

Accelerating your C++ on GPU with SYCL -- Simon Brand

A post on writing GPGPU code in C++ using the SYCL standard from the Khronos group.

Accelerating your C++ on GPU with SYCL

By Simon Brand

From the article:

Leveraging the power of graphics cards for compute applications is all the rage right now in fields such as machine learning, computer vision and high-performance computing. Technologies like OpenCL expose this power through a hardware-independent programming model, allowing you to write code which abstracts over different architecture capabilities. The dream of this is “write once, run anywhere”, be it an Intel CPU, AMD discrete GPU, DSP, etc. Unfortunately, for everyday programmers, OpenCL has something of a steep learning curve; a simple Hello World program can be a hundred or so lines of pretty ugly-looking code. However, to ease this pain, the Khronos group have developed a new standard called SYCL, which is a C++ abstraction layer on top of OpenCL. Using SYCL, you can develop these general-purpose GPU (GPGPU) applications in clean, modern C++ without most of the faff associated with OpenCL.

CppChat[22] C++Now 2017 [2017-05-19]

CppChat:

cpp_now.jpeg

CppChat[22]: C++Now 2017

with Alex Zaitsev, Anastasia Kazakova, Jason Turner, Jens Weller, Jonathan Müller, Kjell Hedstrom, Malte Skarupke, Matt Calabrese, Morris Hafner, Odin Holms, Peter Bindels, Robin Kuzmin, Vittorio Romeo, and Jon Kalb.

 

From the chat:

This episode was recorded at C++Now. Conference attendees talk about their C++Now experiences and favorite sessions. Guests include some of the speakers, volunteers, sponsors, and staff.

Better C++ / Chicago July 12-14, 2017

Join us for a 3 day training event in Chicago, IL, USA July 12-14, 2017

Better C++ / Chicago

by Jason Turner

About the training:

Through this training you will gain a better understanding of how to write clean, maintainable, and well performing C++ code.

The topics covered apply to all types of C++ development: embedded, system or application development.

Jason's classes are highly interactive and have a limited class size to ensure that everyone has sufficient opportunity to participat

A la carte tickets are available for those wishing to attend only part of the training.

Wednesday: Demystifying C++11 and Beyond

C++11, 14, and 17 added many new features to C++ that have made many question the overhead of using these new features and the complexity they add to the language. We will make an in depth examination of these features to give you confidence in using and deploying modern C++ techniques in your organization.

Thursday: Understanding Object Lifetime in C++

C++ has what very few other languages have: a well defined object life cycle. Understanding this key aspect of the language is critical for writing high quality C++.
We will describe the lifecycle of an object in C++ and work through increasingly complex examples. There will be something for C++ developers of all skill levels to learn.

Friday: C++ Best Practices

On the final day of the course we will cover a series of tangible best practice rules for how to write C++ code that is maintainable and efficient by default.
We will wrap up with a discussion of how to use the tools available to maintain code quality.

Frozen - An header-only, constexpr alternative to gperf for C++14 users--Serge Guelton

Check this out!

Frozen - An header-only, constexpr alternative to gperf for C++14 users

by Serge Guelton

From the article:

An open source, header-only library that provides fast, immutable, constexpr-compatible implementation of std::set, std::map, std::unordered_map and std::unordered_set to C++14 users. It can be used as an alternative to gperf...