Video & On-Demand

CppCon 2017: ThinLTO: Scalable and Incremental Link-Time Optimization--Teresa Johnson

Have you registered for CppCon 2018 in September? Early bird 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:

ThinLTO: Scalable and Incremental Link-Time Optimization

by Teresa Johnson

(watch on YouTube) (watch on Channel 9)

Summary of the talk:

Whole program optimization enables higher performance in C++ applications, because of the expanded scope for analysis and optimization. However, the memory and time required to optimize the entire program together as a single unit traditionally has made whole program optimization infeasible for complex and large C++ applications, such as those being built at Google. Additionally, traditional whole program optimization frameworks have not supported fast incremental builds. ThinLTO (Thin Link Time Optimization) is a new compilation model that was recently deployed in the LLVM compiler toolchain to enable scalable whole program optimization for these huge C++ applications, and additionally enables the fast incremental builds required for use in day-to-day development.

In this talk we’ll describe why whole program optimization is beneficial for C++ applications, how the ThinLTO compilation model enables scalable and incremental builds, and how ThinLTO can be integrated with distributed build systems for even faster whole program builds. Additionally, we’ll describe implications for C++ developers.

CppCon 2017: The Nightmare of Move Semantics for Trivial Classes--Nicolai Josuttis

Have you registered for CppCon 2018 in September? Early bird 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:

The Nightmare of Move Semantics for Trivial Classes

by Nicolai Josuttis

(watch on YouTube) (watch on Channel 9)

Summary of the talk:

Assume, we implement a very simple class having just multiple string members. Even ordinary application programmer prefer to make it simple and fast.

You think you know how to do it? Well beware! It can become a lot harder than you initially might assume.

So, let’s look at a trivial class with multiple string members and use live coding to see the effect using different implementation approaches (using constructors passing by value, by reference, by perfect forwarding, or doing more sophisticated tricks).

Sooner than later we will fall into the deep darkness of universal/forwarding references, enable_if, type traits, and concepts.

CppCast Episode 153: Vcpkg with Robert Schumacher

Episode 153 of CppCast the only podcast for C++ developers by C++ developers. In this episode Rob and Jason are joined by Robert Schumacher from Microsoft to discuss the vcpkg package manager and more.

CppCast Episode 153: Vcpkg with Robert Schumacher

by Rob Irving and Jason Turner

About the interviewee:

Robert Schumacher is a developer on the Microsoft Visual C++ Libraries team and the lead developer for vcpkg. He has previously worked on the MSVC implementation of the Modules TS and is the current maintainer of Cpprestsdk. Besides work, he occasionally indulges in functional programming and arguments about whether inheritance is fundamentally flawed.

CppCon 2017: EA’s Secret Weapon: Packages and Modules--Scott Wardle

Have you registered for CppCon 2018 in September? Early bird 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:

EA’s Secret Weapon: Packages and Modules

by Scott Wardle

(watch on YouTube) (watch on Channel 9)

Summary of the talk:

A lot of people hate build systems. What if using a library was just as easy as header-only libraries?

EA has had a Secret Weapon called “packages” for over 14 years. EA's Packages are like Ruby’s Gems or Perl’s CPAN or Rust’s cargo. If you build a package from the package server it will download all of its dependencies.

This talk will be about what we have learned about packages and versioning while building our large AAA games over the last 10+ years. Finally, what do we see for the future, like how will C++ modules fit in?

In detail I will talk about:
-Package layout
-Package server
-Versioning control and packages
-Libraries teams and platform fragmentation
-Packages' effect on large scale architecture
-C++ Modules TS prototypes

CopperSpice: Overload Resolution

New video on the CopperSpice YouTube Channel:

Overload Resolution

by Barbara Geller and Ansel Sermersheim

About the video:

This video discusses overload resolution and the complications involved in debugging when the compiler does not choose the overload you think it should. This video was very interesting to put together, since we had no idea how much of the standard you need in order to understand the intricacies of overload resolution. Not only is overload resolution complex, but you also need to understand the details of type conversions and template argument deduction.

Please take a look and remember to subscribe!

CppCast Episode 152: C++ London Uni with Tom Breza, Oliver Ddin and Tristan Brindle

Episode 152 of CppCast the only podcast for C++ developers by C++ developers. In this episode Rob and Jason are joined by Tom Breza, Oliver Ddin and Tristan Brindle to discuss the C++ London Uni group and their approach to teaching C++ to the community.

CppCast Episode 152: C++ London Uni with Tom Breza, Oliver Ddin and Tristan Brindle

by Rob Irving and Jason Turner

About the interviewees:

Tom arrived in London at age 22 with £200 to his name, not knowing a single person. After 6 months Tom managed to start business - PC Service, that provides IT support to SMBs and runs it since then. Tom's team help many customers from small businesses to top celebrities and Royal Families. Now with over 20 years of experience, Tom set his mind on new challenges and decided to learn software development, specifically C++ and helps others to learn through C++ London Uni.

Oliver has been a C++ hater since 2008 - fortunately, that all changed with C++11 and he's firmly an enthusiast now. He's spent his time doing everything from embedded devices to network engineering and now Internet security related endeavours. He's a big proponent of writing software in a style driven by some form of testing and its place in pushing you towards well-architected, maintainable code. In his spare time he also co-organises C++ London Uni which provides free lessons for people wanting to get into developing C++ and the wider ecosystem around it.

Tristan is an independent contractor and C++ enthusiast based in London. He’s particularly interested in standardisation and making C++ an easier language to use and teach. He can be found on Twitter @tristanbrindle and occasionally blogs about C++ at tristanbrindle.com.

CppCast Episode 151: sol2 and std::embed with JeanHeyd Meneide

Episode 151 of CppCast the only podcast for C++ developers by C++ developers. In this episode Rob and Jason are joined by JeanHeyd Meneide to discuss the sol2 library and his proposal for std::embed.

CppCast Episode 151: sol2 and std::embed with JeanHeyd Meneide

by Rob Irving and Jason Turner

About the interviewee:

ThePhD -- known in meatspace as JeanHeyd -- is a Computer Science undergraduate at the Fu Foundation School of Engineering in Columbia University. They are currently working on Open Source C++ and C++ Standardization projects, as well as exploring graphics programming. They are currently dabbling with Haskell and Elm for fun, and are attempting to wrangle their biggest open source project -- sol2 -- into a newer, better version of itself. The nickname is a std::promise<> on their std::future<>.

 

CppCast Episode 150: Freestanding Proposal with Ben Craig

Episode 150 of CppCast the only podcast for C++ developers by C++ developers. In this episode Rob and Jason are joined by Ben Craig to discuss his proposal for a freestanding C++ Library.

CppCast Episode 150: Freestanding Proposal with Ben Craig

by Rob Irving and Jason Turner

About the interviewee:

Ben is a Principal Software Engineer at National Instruments, primarily developing device drivers for various operating systems (Windows, Linux, Mac, OpenRTOS, vxWorks, ETS Pharlap), and occasionally tinkering with the firmware side of things. Ben is an occasional contributor to libc++ and Apache Thrift.

C++ Weekly Episode 115: Compile Time ARM Emulator—Jason Turner

Episode 115 of C++ Weekly.

Compile Time ARM Emulator

by Jason Turner

About the show:

This episode of C++ Weekly demonstrates a compile time ARM CPU emulator using C++17 constexpr. No special tricks were necessary to accomplish this feat, merely following a rule of "constexpr everything that is reasonable." The code is portable and currently compiles with GCC and Clang in about 2 seconds for simple compile-time test cases.