C++ 20 Innovations: High-Performance Cross-Platform Architecture in C++ - Noah Stein - CppCon 2024
Вставка
- Опубліковано 9 лют 2025
- cppcon.org
---
C++ 20 Innovations: High-Performance Cross-Platform Architecture in C++ - Noah Stein - CppCon 2024
---
C++ 20 developers do not need to sacrifice high-level expressiveness and code cleanliness for high performance when writing cross-platform code. Concepts and constraints combined with build tool configuration and judicious use of the preprocessor can enable novel techniques resulting in significant improvements to cross-platform architectures. The techniques are the result of experiences in the video games and embedded software fields; however, the techniques are applicable to high performance scientific code and general applications supporting multiple platforms
This presentation discusses how various features of C++ may be used to develop high-level and high-performance code in cross-platform projects. It focuses on the design and implementation of a small family of quaternion classes. Quaternions are a small numeric type used extensively in 3D graphics and thus ideal as the focus. The discussion begins with an unoptimized implementation that will compile on all platforms. Optimized versions for multiple architectures (SSE/AVX, Neon, and WebAssembly SIMD) will be added. These optimized types are added without changing a single line of existing code. Additionally, supporting multiple revisions of a spec will be illustrated. Implementing new revisions does not result in changing any pre-existing files, and new revisions may leverage older revisions and need not ever reimplement pre-existing functions. This reduces code repetition and all its attendant liabilities.
---
Slides: github.com/Cpp...
Sponsored by JetBrains: www.jetbrains....
---
Noah Stein
Noah Stein began his commercial software development career while in high school. From 1993 through 2002 he worked as a lead programmer and technical director at companies in the video game industry. Since 2002, Noah has been an independent contractor working in both the video games industry and various embedded software industries. He first started programming in C++ back in 1995.
---
CppCon is the annual, week-long face-to-face gathering for the entire C++ community. The conference is organized by the C++ community for the community. You will enjoy inspirational talks and a friendly atmosphere designed to help attendees learn from each other, meet interesting people, and generally have a stimulating experience. Taking place this year in Aurora, Colorado, near the Denver airport, and including multiple diverse tracks, the conference will appeal to anyone from C++ novices to experts.
Annual CppCon Conference - www.cppcon.org
/ cppcon
x.com/cppcon
/ cppconference
/ cppcon
mastodon.socia...
---
Videos Filmed & Edited by Bash Films: www.BashFilms.com
UA-cam Channel Managed by Digital Medium Ltd: events.digital...
---
#cpp #cplusplus #cppcon #cppprogramming #cplusplusprogramming #softwaredevelopment #softwareengineering #coding #code #computerscience #technology #technews #programming #programmer
From the looks of it, the presenter is using cmake for defining a variable that is later used by a preprocessor macro to select the include file based on target. All of this could be handle directly from you cmake file by placing the headers in separate folders and using that same variable to choose the include directory instead (assuming you placed separate targets in separate directories, but it can be done with a flat structure as well albeit not as efficient). That way you can use standard hash-includes instead of target specialized-macro includes.
you can avoid any preprocessor usage by using modules and changing module path depending on feature set
great talk, 29:59 should be to use the concept, referring to 29:19 Sse is just a tag and SseFamily is the concept, i kept scratching my head for 20 minutes about how overload resolution works with NTTP, turns out it is just a typo
6:42 isn't this what Microsoft does with COM interfaces?
Oh, did you finally find Almond Engine? lol