Video & On-Demand

CppCast Episode 168: CppCon Preview with Bryce Adelstein Lelbach

Episode 168 of CppCast the only podcast for C++ developers by C++ developers. In this episode Rob and Jason are joined by Bryce Adelstein Lelbach to discuss his work on the upcoming CppCon conference, his thoughts on the graphics proposal and more.

CppCast Episode 168: CppCon Preview with Bryce Adelstein Lelbach

by Rob Irving and Jason Turner

About the interviewee:

Bryce Adelstein Lelbach is a software engineer on the CUDA driver team at NVIDIA. Bryce is passionate about parallel programming. He maintains Thrust, the CUDA C++ core library. He is also one of the initial developers of the HPX C++ runtime system. He spent five years working on HPX while he was at Louisiana State University's Center for ComCppputation and Technology, and three years at Lawrence Berkeley National Laboratory (a US Department of Energy research facility) developing and analyzing new parallel programming models for exascale and post-Moore architectures. He also helped start the LLVMLinux initiative, and has occasionally contributed to the Boost C++ libraries. Bryce is an organizer for the C++Now and CppCon conferences as well as the Bay Area C++ user group, and he is passionate about C++ community development. He is a member of the ISO C++ standard committee. He worked on the C++17 parallel algorithms; today, he works on standardizing better futures, executors, and multi-dimensional arrays.

Deterministic Disappointment—Niall Douglas

All the ways past, present and future that one can disappoint deterministically in C++.

Deterministic Disappointment

by Niall Douglas

Content of the talk:

1. What is disappointment?
2. What is determinism?
3. The direction of C++
4. Future disappointment in C++?
5. Achieving the future today
   a. C++ 11 system_error
   b. C++ 11 P1028 SG14 status_code
   c. C++ 14 (Boost.) Outcome

 

CppCon 2017: Web | C++—Lukas Bergdoll

Have you registered for CppCon 2018 in September? Late registration is open now.

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

Web | C++

by Lukas Bergdoll

(watch on YouTube) (watch on Channel 9)

Summary of the talk:

Have you ever tried writing a web application with C++? Can opening a file and serving it via HTTP be as simple as writing 20 lines of python? With the undeniable importance of web development, C++ can not allow itself to ignore such an important field, especially with the rising competition in the field of system programming languages, coming from Rust, D and Go.

Join us as we explore modern approaches to asynchronous IO, socket communication the advantages and disadvantages of using a unikernel and their respective performance implications.

We'll also take a look at how future iterations of the C++ standard library, could solve some of those problems.

CppCon 2017: Class Template Argument Deduction: A New Abstraction—Zhihao Yuan

Have you registered for CppCon 2018 in September? Late registration is open now.

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

Class Template Argument Deduction: A New Abstraction

by Zhihao Yuan

(watch on YouTube) (watch on Channel 9)

Summary of the talk:

C++17 is often quoted as “just a better C++14”, suggesting that nothing is new, nothing is changing the way we program. This talk presents class template argument deduction as a counterexample, a hidden gem in the new standard.

Saves typing? A replacement for the `make` functions? If that’s your frame, then you should come to this talk. The true power of class template argument deduction is underestimated. It’s a new point of abstraction but requiring creativity, insights, and understanding about the language details to manage.

This talk will start by introducing all matters about this feature to build up sufficient background knowledge, followed by teaching how to write deduction guides by examples, and finally explain how to build abstractions using the whole feature in a top-down approach, with patterns categorized.

CopperSpice: Constexpr Static Const

New video on the CopperSpice YouTube Channel:

Constexpr Static Const

by Barbara Geller and Ansel Sermersheim

About the video:

This presentation covers constexpr and how it differs from const. We also discuss what constexpr means in practice versus what is actually required by the standard, a subject which is often misunderstood. The topic of constexpr vs preprocessor macros is also covered with suggestions for best practices.

Please take a look and remember to subscribe!

CppCon 2017: Fantastic Algorithms and Where To Find Them—Nicholas Ormrod

Have you registered for CppCon 2018 in September? Registration is open now.

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

Fantastic Algorithms and Where To Find Them

by Nicholas Ormrod

(watch on YouTube) (watch on Channel 9)

Summary of the talk:

Come dive into some exciting algorithms — tools rare enough to be novel, but useful enough to be found in practice. Want to learn about "heavy hitters" to prevent DOS attacks? Come to this talk. Want to avoid smashing your stack during tree destruction? Come to this talk. Want to hear war stories about how a new algorithm saved the day? Come to this talk! We'll dive into the finest of algorithms and see them in use — Fantastic Algorithms, and Where To Find Them.

CppCon 2017: Boost Your Program’s Health by Adding Fibers to your Coroutine

Have you registered for CppCon 2018 in September? Registration is open now.

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

Boost Your Program’s Health by Adding Fibers to your Coroutine

by David Sackstein

(watch on YouTube) (watch on Channel 9)

Summary of the talk:

This session is intended to help the advanced programmer to understand what coroutines and fibers are, what problems they solve and how they should be applied in practice.
The session begins with an overview of these concepts, comparing them with threads, and demonstrating how they are exposed by the Boost libraries.
Apart from being clean and succinct as Boost libraries typically are, the authors of these libraries have gone to great lengths to ensure that fibers and coroutines expose a programming model consistent with that of threads. This will make them seem very familiar.
During the session I will demonstrate how fibers and coroutines can be used together with the powerful Boost.Asio library to solve some commonly occurring problems.
To conclude, I will provide some practical tips and guidelines for those who are adding fibers and coroutines to their programming diet.

CppCast Episode 166: CppCon Poster Program and Interface Design with Bob Steagall

Episode 166 of CppCast the only podcast for C++ developers by C++ developers. In this episode Rob and Jason are joined by Bob Steagall to discuss his history with C++, the CppCon poster program and his upcoming talks.

CppCast Episode 166: CppCon Poster Program and Interface Design with Bob Steagall

by Rob Irving and Jason Turner

About the interviewee:

Bob is a Principal Engineer with GliaCell Technologies. He's been working almost exclusively in C++ since discovering the second edition of The C++ Programming Language in a college bookstore in 1992. The majority of his career was spent in medical imaging, where he led teams building applications for functional MRI and CT-based cardiac visualization. After a brief detour through the worlds of DNS and analytics, he's now working in the area of distributed stream processing. Bob is a relatively new member of the C++ Standardization Committee, and launched a blog earlier this year to write about C++ and topics related to software engineering. He holds BS and MS degrees in Physics, is an avid cyclist, and lives in fear of his wife's cats.

CppCon 2017: Type Punning in C++17: Avoiding Pun-defined Behavior—Scott Schurr

Have you registered for CppCon 2018 in September? Registration is open now.

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

Type Punning in C++17: Avoiding Pun-defined Behavior

by Scott Schurr

(watch on YouTube) (watch on Channel 9)

Summary of the talk:

Type punning, treating a type as though it is a different type, has a long and sordid history in C and C++. But, as much as we'd like to deny its existence, it plays an important role in efficient low-level code. If you've ever written a program that examines the individual bits of a pointer or of a floating point number, then you've done type punning.

Given its long legacy, some of the techniques for type punning that were appropriate, even encouraged, earlier in history now live in the realm of undefined behavior. We'll identify which techniques are now proscribed and postulate why. We'll also explore ways to do type punning in C++17 that sidestep undefined behavior and are hopefully as efficient as the older techniques.

In this session we will look at:
o Common (and some uncommon) motivations for type punning.
o Techniques for type punning, both good and bad, all ugly.
o Related topics (like type conversions and std::launder()) with an eye toward unspecified and undefined behavior.

CppCon 2017: When a Microsecond Is an Eternity: High Performance Trading Systems in C++—Carl Cook

Have you registered for CppCon 2018 in September? Registration is open now.

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

When a Microsecond Is an Eternity: High Performance Trading Systems in C++

by Carl Cook

(watch on YouTube) (watch on Channel 9)

Summary of the talk:

Automated trading involves submitting electronic orders rapidly when opportunities arise. But it’s harder than it seems: either your system is the fastest and you make the trade, or you get nothing.

This is a considerable challenge for any C++ developer - the critical path is only a fraction of the total codebase, it is invoked infrequently and unpredictably, yet must execute quickly and without delay. Unfortunately we can’t rely on the help of compilers, operating systems and standard hardware, as they typically aim for maximum throughput and fairness across all processes.

This talk describes how successful low latency trading systems can be developed in C++, demonstrating common coding techniques used to reduce execution times. While automated trading is used as the motivation for this talk, the topics discussed are equally valid to other domains such as game development and soft real-time processing.