Arno Schoedl
The C++ rvalue lifetime disaster
#1about 3 minutes
The dual role of rvalue references in C++
Rvalue references were introduced for move semantics to avoid copies but are also used to manage the lifetime of temporary objects.
#2about 6 minutes
Why temporary lifetime extension fails in modern C++
The pre-C++11 feature for extending temporary object lifetimes does not work correctly with rvalue references, necessitating a custom macro to create a value or reference based on expression type.
#3about 6 minutes
How accessor methods cause rvalue amnesia
Standard accessor methods returning a const lvalue reference incorrectly bind to rvalues, losing critical lifetime information and leading to dangling references.
#4about 4 minutes
A proposal for fixing C++ reference binding rules
A proposed language fix using pragmas would introduce new, safer reference binding rules to prevent short-lived rvalues from binding to long-lived lvalue references.
#5about 3 minutes
Practical mitigations for rvalue lifetime issues today
Use custom macros to manage variable lifetimes, guard member accessors, and implement a correct ternary operator to work around the language's flawed binding rules.
#6about 1 minute
Managing C++ complexity with strong coding guidelines
The best way to manage the growing complexity of C++ is to establish strong internal coding guidelines and use custom libraries to standardize code patterns.
Related jobs
Jobs that call for the skills explored in this talk.
Sensory-Minds GmbH
Offenbach am Main, Germany
Remote
Senior
JavaScript
Node.js
+3
Matching moments
05:02 MIN
Understanding temporary objects and lifetime extension rules
An (In-)Complete Guide to C++ Object Lifetimes
07:52 MIN
Modern C++ evolution and the burden of backward compatibility
Eternal Sunshine of the Spotless Programming Language
07:50 MIN
Using modern language features for safer code
C++ in constrained environments
01:58 MIN
Implicit destruction and best practices for object lifetime
An (In-)Complete Guide to C++ Object Lifetimes
06:50 MIN
C++ availability, ecosystem, and backwards compatibility
101 brilliant things of C++
03:06 MIN
Defining objects and lifetimes in C++
An (In-)Complete Guide to C++ Object Lifetimes
08:47 MIN
Q&A on language design, Rust, and the future of C++
The Design and Evolution of C++
05:58 MIN
Reviewing common memory safety problems in other languages
A Love Letter to Rust
Featured Partners
Related Videos
An (In-)Complete Guide to C++ Object Lifetimes
Jonathan Müller
101 brilliant things of C++
Andreas Fertig
C++ Features You Might Not Know
Jonathan Müller
C++ in constrained environments
Bjarne Stroustrup
The Design and Evolution of C++
Bjarne Stroustrup
Why Iterators Got It All Wrong — and what we should use instead
Arno Schödl
Guided Memory Management: Rust's Ownership Model
Stefan Baumgartner
A Love Letter to Rust
Rainer Stropek
Related Articles
View all articles



From learning to earning
Jobs that call for the skills explored in this talk.

r2p Group
Remote
Senior
C++
GIT
Agile Methodologies
Continuous Integration


EVIDENT GmbH
Münster, Germany
Remote
Senior
C++
Scrum
Agile Methodologies
Continuous Delivery
+2




microTECH Global Limited
C++
Linux
Python
Continuous Integration

Sensithaptics
Potsdam, Germany
Senior
C++
React
SQLite
Continuous Integration
