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
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
C++ in constrained environments
Bjarne Stroustrup
101 brilliant things of C++
Andreas Fertig
The Design and Evolution of C++
Bjarne Stroustrup
C++ Features You Might Not Know
Jonathan Müller
Why Iterators Got It All Wrong — and what we should use instead
Arno Schödl
A Love Letter to Rust
Rainer Stropek
Guided Memory Management: Rust's Ownership Model
Stefan Baumgartner
Related Articles
View all articles



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

Vesterling Consulting GmbH
€50-60K
UML
Software Architecture

Vesterling Consulting GmbH
€50-60K
UML
Software Architecture

Vesterling Consulting GmbH
€50-60K
UML
Software Architecture

EVIDENT GmbH
Remote
Senior
Continuous Delivery
Software Architecture
Continuous Integration

C++ Entwickler Media Systems | FFmpeg, Video codec, Multithreading, Parallelisierung | Inhouse (mwd)
Vesterling Consulting GmbH
Remote
€55-80K
Linux
OpenGL

Randstad
Remote
Senior
Continuous Integration
Configuration Management

Keysight Technologies Inc.
Dresden, Germany
Intermediate
GIT
DevOps
Jenkins
Unit testing
Software Architecture
+1
