C++Now 2018 has ended
Back To Schedule
Thursday, May 10 • 4:30pm - 6:00pm
Modern C++ API Design: From Rvalue-References to Type Design

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

Feedback form is now closed.
The old rules for C++API design are due for an update - we made ad hoc changes to design principles in the standard library, but haven’t really written down the new ideas. Parameter passing and API design for free functions/member functions is due for a general update, particularly as a result of rvalue-references and reference qualification. How do we express “maybe move” APIs? When do we want reference-qualified overload sets? What does an rvalue-reference qualified non-overloaded method mean? How do we express call once semantics?

For types, our consistency in producing Regular types has weakened in recent C++ releases with types like unique_ptr (move-only) and string_view (reference semantics). These classes of design that have shown themselves to be valuable, but certainly surprising at first. As we should not continue to extend the set of type designs arbitrarily, this is a good time to look at type design in the modern C++ era and narrow down the set of designs that are generally favored. This talk will focus on modern C++ design from small (choice of passing by value or reference) to large (Regular types, reference types, move-only types, etc). We will also introduce a taxonomy of type properties as a means to discuss known-good type design families.

avatar for Titus Winters

Titus Winters

C++ Library Lead, Google
Titus Winters has spent the past 6 years working on Google's core C++ libraries. He's particularly interested in issues of large scale software engineer and codebase maintenance: how do we keep a codebase of over 100M lines of code consistent and flexible for the next decade? Along... Read More →

Thursday May 10, 2018 4:30pm - 6:00pm MDT
Flug Auditorium
  • Level Intermediate, Advanced
  • Tags types