News

Full C++17 Filesystem Library Guide—Nico Josuttis

The latest update of "C++17 - The Complete Guide" now contains a detailed description of the whole new C++17 filesystem library.

Example Code

by Nico Josuttis

About the extension:

50 pages about all elements, all differences between POSIX/Linux and Windows, many examples, many tricks, traps, and hints as well as what changed with the library when it became part of C++17.

All examples were tested both with Visual C++ and g++.

CppCon 2017: Seventeenification: Porting sqlpp11 to C++17—Roland Bock

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:

Seventeenification: Porting sqlpp11 to C++17

by Roland Bock

(watch on YouTube) (watch on Channel 9)

Summary of the talk:

The ink on C++17 has merely dried, but the major compilers support most features already. It's high time for a reality check!

This talk is a report about the ongoing effort of porting sqlpp11 to C++17. I'll show real-world usage of the following features:

Core:
inline variables
auto non-type template parameters
[[nodiscard]]
class template deduction
constexpr if
fold expressions

Library:
string_view
optional

This talk also comes with a realization about C++11.

CopperSpice: C++ in review

New video on the CopperSpice YouTube Channel:

C++ in review

by Barbara Geller and Ansel Sermersheim

About the video:

This video marks the one year anniversary of the CopperSpice YouTube channel. In this video we answer questions we have received, talk about a few corrections to our past videos, and also show new examples. One of the examples about overload resolution, is a bit bizarre and well worth checking out.

Please take a look and remember to subscribe!

CppCast Episode 158: Future of 2D Graphics Proposal with Guy Davidson

Episode 158 of CppCast the only podcast for C++ developers by C++ developers. In this episode Rob and Jason are joined by Guy Davidson from Creative Assembly to discuss the future of the 2D Graphics proposal after the C++ meeting in Rapperswil.

CppCast Episode 158: Future of 2D Graphics Proposal with Guy Davidson

by Rob Irving and Jason Turner

About the interviewee:

Guy Davidson is the Coding Manager of Creative Assembly, makers of the Total War franchise, Alien: Isolation and Halo Wars 2, Guy has been writing games since the early 1980s. He is now also a contributor to SG14, the study group devoted to low latency, real time requirements, and performance/efficiency especially for Games, Financial/Banking, and Simulations. He speaks at schools, colleges and universities about programming and likes to help good programmers become better programmers.

Top11 Talks and other voting results for Meeting C++ 2018

The voting for the talks at Meeting C++ 2018 ended, and the results are in!

Voting results for Meeting C++ 2018

by Jens Weller

From the article:

On Sunday the voting ended for this years conference. And the results are interesting, each talk received between 87 and 104 votes from 147 active voting sessions. In total its 10685 votes casted. So lots of folks did have a look at each talk, the average of the collected votings is then what determines the top talks at the conference...

CppCon 2017: Delegate this! Designing with delegates in modern C++—Alfred Bratterud

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:

Delegate this! Designing with delegates in modern C++

by Alfred Bratterud

(watch on YouTube) (watch on Channel 9)

Summary of the talk:

Designing a fast IP stack from scratch is hard. Using delegates made it all easier for IncludeOS, the open source library operating system written from scratch in modern C++. Our header-only delegates are just as fast as C-style function pointers, compatible with std::function, and allows any object to delegate work to stateful member functions without knowing anything about the class they belong to. We use delegates for everything from routing packets to creating REST endpoints, and most importantly to tie the whole IP stack together. In this talk we’ll show you how we use delegates in IncludeOS, discuss pitfalls and alternatives, and give you all you need to get started.

Beyond the Type System—Lucian Radu Teodorescu

Ever wondered how the compiler generates code for your types?

Beyond the Type System

by Lucian Radu Teodorescu

From the article:

Often when we consider a type system we think about a complex formalism to denote the semantics of a language. Languages typically add features by increasing the complexity of the type system.

But there is also another perspective on the type system: how does the generated code look like? what is the ABI for the code that uses different features of the type system? We’ll try to explore this perspective in this blog post.

Everything about unity builds—Viktor Kirilov

A unity build can cut down build times dramatically and is HIGHLY underrated and easily dismissed by many senior software engineers.

Everything about unity builds

by Viktor Kirilov

From the article:

In this post we will go over what it is, all its pros and cons, and why a “dirty hack” might be worth it if it speeds up your builds by at least a factor of 2 or perhaps even in the double-digits.

CppCon 2017: Coroutines: what can’t they do?—Toby Allsopp

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:

Coroutines: what can't they do?

by Toby Allsopp

(watch on YouTube) (watch on Channel 9)

Summary of the talk:

Coroutines are coming. They're coming for your asynchronous operations. They're coming for your lazy generators. This much we know. But once they're here, will they be satisfied with these offerings? They will not. They will require feeding, lest they devour our very souls. We present some fun ways to keep their incessant hunger at bay. I, for one, welcome our new coroutine overlords.

The Coroutines Technical Specification is an experimental extension to the C++ language that allows functions to be suspended and resumed, with the primary aim of simplifying code that invokes asynchronous operations. We present a short introduction to Coroutines followed by some possibly non-obvious ways they can help to simplify your code.

Have you ever wanted to elegantly compose operations that might fail? Coroutines can help. Have you ever wished for a zero-overhead type-erased function wrapper? Coroutines can help. We show you how and more.