15 YouTube views, likes subscribers in 10 minutes. Free!
Get Free YouTube Subscribers, Views and Likes

C++ Zero Overhead Pass by Value Through Invocable C++ Abstractions - Filipp Gelman - C++Now 2024

Follow
CppNow

https://www.cppnow.org


C++ Zero Overhead Pass by Value Through Invocable C++ Abstractions Filipp Gelman C++Now 2024


This presentation focuses on what happens when nontrivial objects are passed to functions by value. Often this necessitates calling the copy or move constructor of the object's type. This call can be elided when the argument is a prvalue, such as when it is the result of another function or a temporary object of the expected type. The constructor can be elided even if the target function happens to be virtual.

But this doesn't work when invoking a std::function, std::move_only_function, std::function_ref, or even std::reference_wrapper. When the target of these abstractions takes objects by value, there will be at least one additional copy/move of the arguments even if they are prvalues.

But what if this were not the case?

This presentation will explain why librarylevel abstractions incur the overhead of an additional copy/move, and present a technique for avoiding this overhead. The following extreme example proves the point:

functionvoid(lock_guard by_value)([](lock_guard by_value){});


Slides: https://github.com/boostcon/cppnow_pr...

Sponsored by Undo: Debug your hardest C++ bugs with time travel debugging → Learn more at http://bit.ly/cppnow24


Filipp Gelman

At Bloomberg LP since 2016, Filipp enjoys exploring the obscure, arcane, and esoteric corners of the C++ language. He is known among his coworkers for heavy use of templates, emphasis on compile time computation, and abusing language features for nefarious purposes.


C++Now 2025 28th April 2nd May
C++Now is an annual onsite international C++ programming and coding conference held in Aspen, Colarado. For all C++ developers, C++ software engineers and those involved with the C++ language, CppNow provides an indepth and technical content provided by the best and brightest C++ experts of the C++ world.
Annual CppNow Conference https://www.cppnow.org
  / cppnow​  
  / cppnow  
  / cppnow  
  / cppnow  
https://mastodon.social/@cppnow
Video Sponsors: millennium and thinkcell


Videos Filmed & Edited By Bash Films: https://bashfilms.com/
YouTube Channel Managed & Optimized By Digital Medium Ltd: https://events.digitalmedium.co.uk


#boost #cpp #cppprogramming #cplusplus #softwaredeveloper

posted by bljedilam3