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.
Matching moments
08:37 MIN
Understanding temporary objects and lifetime extension rules
An (In-)Complete Guide to C++ Object Lifetimes
06:40 MIN
Modern C++ evolution and the burden of backward compatibility
Eternal Sunshine of the Spotless Programming Language
14:38 MIN
Using modern language features for safer code
C++ in constrained environments
26:09 MIN
Implicit destruction and best practices for object lifetime
An (In-)Complete Guide to C++ Object Lifetimes
00:16 MIN
Defining objects and lifetimes in C++
An (In-)Complete Guide to C++ Object Lifetimes
29:02 MIN
Applying the C++ Core Guidelines for safety
C++ in constrained environments
52:52 MIN
Q&A on local error handling and C++23 features
C++ in constrained environments
11:54 MIN
Understanding resource management with RAII
C++ in constrained environments
Featured Partners
Related Videos
An (In-)Complete Guide to C++ Object Lifetimes
Jonathan Müller
C++ in constrained environments
Bjarne Stroustrup
C++ Features You Might Not Know
Jonathan Müller
101 brilliant things of C++
Andreas Fertig
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
From learning to earning
Jobs that call for the skills explored in this talk.






C++ Entwickler Video / Grafik | C++ 17 / 20, OpenGL, Vulkan, codec, multithreading | Inhouse (mwd) C++ Entwickler Video / Grafik | C++ 17 / 20, OpenGL, Vulkan, codec, multithreading | Inhouse (mwd)
Vesterling Consulting GmbH
Berlin, Germany
Remote
€55-80K
API
C++
Bash
+7














