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<>.


Error Handling and std::optional—Bartlomiej Filipek

Do you have a prefered way?

Error Handling and std::optional

by Bartlomiej Filipek

From the article:

In my last two posts in the C++17 STL series, I covered how to use std::optional. This wrapper type (also called “vocabulary type”) is handy when you’d like to express that something is ‘nullable’ and might be ‘empty’. For example, you can return std::nullopt to indicate that the code generated an error… but it this the best choice?

Declarative Functional APIs – A.K.A. Abusing Lambda Parameters—Philippe Groarke

Take some time to clear your thoughts before reading!

Declarative Functional APIs – A.K.A. Abusing Lambda Parameters

by Philippe Groarke

From the article:

Functional APIs are a joy to work with. Not only do they help eliminate certain bug categories, but they tend to be very flexible and reusable. Today I present a technique that has emerged while I was simplifying some lambda based APIs. C++17 makes template meta-programming much more palatable, I dare not imagine what this would look like in C++11...

Should Span Be Regular?—Barry Revzin

Do you have an opinion?

Should Span Be Regular?

by Barry Revzin

From the article:

In my last post, I talked about the concept of Westie types (yes, I am trying to make this happen), what Regular means, and which of them are Regular. I went through an explanation for why means for span is not Regular and potentially why it should be. After lots of resulting conversations with several people (thanks Zach Laine, Nicole Mazzuca, Eric Niebler, John Shaw, Tim Song), I thought it was necessary to write a follow up with more details and more argument...

Rvalues redefined—Andrzej Krzemieński

Evolution of semantics.

Rvalues redefined

by Andrzej Krzemieński

From the article:

In this post we will explore what I consider the most significant language change in C++17. I call it the most significant because it changes the way you design your resource-managing types and how you think about initialization. It is often called “guaranteed copy elision”, but I will not use that name (except for this single time) because it does not reflect what this feature is. C++ has completely changed the meaning of rvalue (actually, prvalue)...

std::accumulate vs. std::reduce—Simon Brand

Old vs new.

std::accumulate vs. std::reduce

by Simon Brand

From the article:

std::accumulate has been a part of the standard library since C++98. It provides a way to fold a binary operation (such as addition) over an iterator range, resulting in a single value. std::reduce was added in C++17 and looks remarkably similar. This post will explain the difference between the two and when to use one or the other...