This event has ended. Visit the official site or create your own event on Sched.
Back To Schedule
Monday, September 25 • 4:45pm - 5:45pm
Enhanced Support for Value Semantics in C++17

Log in to save this to your schedule, view media, leave feedback and see who's attending!

Feedback form is now closed.
Value semantics has been promoted in the C++ community for a long time, for reasons such as referential transparency, avoidance of memory management issues, and even efficiency in some cases. Move semantics in C++11 was a big step in language-level support for value semantics. In this talk, we’ll cover steps taken in C++17 for enhanced library-support for value semantics. Specifically, we’ll focus on `std::optional`, `std::variant`, and `std::any`.

We’ll discuss what they are, their motivating use cases, and most importantly, identify existing patterns that can be improved by replacing it with one of these utilities. We’ll also cover some of the details such as: `std::monostate`, `std::variant`’s `valueless_by_exception` state, subtle difference in behavior between `std::optional<T>` and `std::variant<std::monostate, T>`, etc.

The goal of the talk is to inform you of new library features in C++17, and to convince you of their usefulness and ultimately to add them to your toolbox.

avatar for Michael Park

Michael Park

Software Engineer, Facebook
I'm a software engineer at Facebook, working on the C++ libraries and standards team. My focus for C++ is to introduce pattern matching to facilitate better code.

Monday September 25, 2017 4:45pm - 5:45pm PDT
Atanasoff Hall Meydenbauer Center