Calling Functions A TutorialCalling Functions A Tutorial Klaus Iglberger, CppCon 2020 klaus.iglberger@gmx.de2 Klaus Iglberger C++ Trainer since 2016 Author of the C++ math library (Co-)Organizer of the Munich Two-Phase Lookup Template Argument Deduction SFINAE Overload Resolution (Viable) Candidate Functions Ranking Ambiguous Function Calls Access Labels Function Template Specializations Virtual Two-Phase Lookup Template Argument Deduction SFINAE Overload Resolution (Viable) Candidate Functions Ranking Ambiguous Function Calls Access Labels Function Template Specializations Virtual0 码力 | 111 页 | 5.11 MB | 6 月前3
Back To Basics Functionsfor many years -- please provide suggestions, analogies, and other useful ways to think about functions now or in the future!Please do not redistribute slides without prior permission. 4Your Tour Guide for the talk ● Located here: https://github.com/MikeShah/Talks/tree/main/2023/cppcon/functions 6Abstract Functions are one of the first things programmers learn, granting you the ultimate power to 'reuse' overview of functions from the start to the end, on the various powers that are given to us from the ground up. Consider this talk your one stop for learning all of the great things about functions! We'll0 码力 | 123 页 | 7.26 MB | 6 月前3
From Functions to CoroutinesFrom Functions to Coroutines 40 Years Evolution Rainer Grimm Training, Coaching, and Technology Consulting www.ModernesCpp.netEvolution of Callable templateT invoke(Func sequence of functions can be changed ▪ Automatically parallelizable ▪ Results can be cachedPure Functions Working with a pure function is based on discipline Use common functions, meta-functions, constexpr constexpr, or consteval functions ▪ Function int powFunc(int m, int n){ if (n == 0) return 1; return m * powFunc(m, n - 1); } ▪ Meta-Function template struct PowMeta { static int const value 0 码力 | 29 页 | 510.47 KB | 6 月前3
Optimizing Away Virtual Functions May Be Pointlessvirt_duration = end-start;There are interesting technical details and surprising conclusions that virtual functions can be actually faster. Since CPU architectures are mentioned, I'd expect to see deep assembly eritance-vs-other- ways-performanceDoes it even matter?Conclusions ● The notion that “virtual functions are slower” is flat out wrong. ○ Which is not to say they are faster ○ Some of the suggested0 码力 | 20 页 | 1.19 MB | 6 月前3
Combining Co-Routines and Functions into a Job SystemHelmut Hlavacs – Combining Co-Routines and Functions into a Job System - CppCon 2021 1 / 39Helmut Hlavacs – Combining Co-Routines and Functions into a Job System - CppCon 2021 2 / 39 About Myself • Professor Processing) Technical Committee 14 Entertainment ComputingHelmut Hlavacs – Combining Co-Routines and Functions into a Job System - CppCon 2021 3 / 39 Creating Game Engines with C++ • Vienna Game Job System Vulkan Game Engine 2.0 https://github.com/hlavacs 20Helmut Hlavacs – Combining Co-Routines and Functions into a Job System - CppCon 2021 4 / 39 The Game Loop auto prev = high_resolution_clock::now();0 码力 | 39 页 | 1.23 MB | 6 月前3
ivan cukic cppcon 2021ALTERNATE UNIVERSE INTRODUCTION DATA FUNCTIONS AND DATA ABSTRACTIONS FUNCTIONS Ivan Čukić KDAB CppCon 2021 INTRODUCTION DATA FUNCTIONS AND DATA ABSTRACTIONS FUNCTIONS ABOUT ME KDAB senior software engineer INTRODUCTION DATA FUNCTIONS AND DATA ABSTRACTIONS FUNCTIONS COMPOSITION Doug McIlroy and Dennis Ritchie Ivan Čukić KDAB CppCon 2021 INTRODUCTION DATA FUNCTIONS AND DATA ABSTRACTIONS FUNCTIONS COMPOSITION | uniq -c | sort -rn | sed ${1}q Ivan Čukić KDAB CppCon 2021 INTRODUCTION DATA FUNCTIONS AND DATA ABSTRACTIONS FUNCTIONS Doug McIlroy, Bell System Technical Journal, 1978: Make each program do one thing0 码力 | 77 页 | 3.33 MB | 6 月前3
Leveraging a Functional Approach for More Testable and Maintainable ROS 2 Codeinextricably linked to the ROS 2 API ● set_map_service and generate_path_service are callback functions that run when requests are sent via the ROS 2 middlewareConventional Approach class PathGenerator are callback functions that run when requests are sent via the ROS 2 middleware ● Those functions call the set_costmap and generate_global_path functions, which are private functions that contain are callback functions that run when requests are sent via the ROS 2 middleware ● Those functions call the set_costmap and generate_global_path functions, which are private functions that contain0 码力 | 200 页 | 1.77 MB | 6 月前3
Tornado 6.5 Documentationdecorated coroutines How it works How to call a coroutine Coroutine patterns Calling blocking functions Parallelism Interleaving Looping Running in the background Queue example - a concurrent web spider why CPU blocking must be taken as seriously as other kinds of blocking, consider password hashing functions like bcrypt [http://bcrypt.sourceforge.net/], which by design use hundreds of milliseconds of CPU background before triggering some future action in the application (as opposed to normal synchronous functions, which do everything they are going to do before returning). There are many styles of asynchronous0 码力 | 437 页 | 405.14 KB | 3 月前3
Secrets of C++ Scripting BindingsJason Turner @le�icus emptycrate.com/idocpp Registering Functions 11 . 1Copyright Jason Turner @le�icus emptycrate.com/idocpp Registering Functions 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 int add(int emptycrate.com/idocpp A Function That Can Match Functions 12 . 1Copyright Jason Turner @le�icus emptycrate.com/idocpp A Function That Can Match Functions 12 . 2Copyright Jason Turner @le�icus emptycrate com/idocpp A Function That Can Match Functions Must be a template 12 . 2Copyright Jason Turner @le�icus emptycrate.com/idocpp A Function That Can Match Functions Must be a template Uses template pattern0 码力 | 177 页 | 1.65 MB | 6 月前3
C++ Exceptions for Smaller Firmwareusing exception: S(M) = bM + E ○ b = average cost of exception metadata ○ M = number of non-leaf functions ○ E = cost of exception machinery (libunwind, etc) ○ NOTE: this is grossly simplified 87My Hypothesis using exception: S(M) = bM + E ○ b = average cost of exception metadata ○ M = number of non-leaf functions ○ E = cost of exception machinery (libunwind, etc) ○ NOTE: this is grossly simplified ● I assert bM ○ Let's assume we have an application of 100 error reporting functions ○ N (# of functions called) >= M (total number of functions) 88My Hypothesis 89 number of checks Binary Size Exceptions0 码力 | 237 页 | 6.74 MB | 6 月前3
共 330 条
- 1
- 2
- 3
- 4
- 5
- 6
- 33













