 C++23: An Overview of Almost All New and Updated FeaturesLibrary Quick Reference  Founder of the Belgian C++ Users Group (BeCPP) C++204 Agenda  C++23 Core Language  Explicit Object Parameters  if consteval  Multidimensional Subscript Operator  Attributes decay-copy in The Language  #elifdef, #elifndef, and #warning  Marking Unreachable Code  Assumptions  Named Universal Character Escapes  Trim Whitespace Before Line Splicing  C++23 Standard Library Heterogeneous Erasure  Removed Features  Garbage Collection SupportC++23 Core Language6 Agenda  C++23 Core Language  Explicit Object Parameters  if consteval  Multidimensional Subscript Operator0 码力 | 105 页 | 759.96 KB | 6 月前3 C++23: An Overview of Almost All New and Updated FeaturesLibrary Quick Reference  Founder of the Belgian C++ Users Group (BeCPP) C++204 Agenda  C++23 Core Language  Explicit Object Parameters  if consteval  Multidimensional Subscript Operator  Attributes decay-copy in The Language  #elifdef, #elifndef, and #warning  Marking Unreachable Code  Assumptions  Named Universal Character Escapes  Trim Whitespace Before Line Splicing  C++23 Standard Library Heterogeneous Erasure  Removed Features  Garbage Collection SupportC++23 Core Language6 Agenda  C++23 Core Language  Explicit Object Parameters  if consteval  Multidimensional Subscript Operator0 码力 | 105 页 | 759.96 KB | 6 月前3
 whats new in visual studiomuch much more… https://aka.ms/cpp/code Thu 10/28 – 2pm An Editor Can Do That? Debugging Assembly Language and GPU Kernels in Visual Studio Code Julia Reid – _3 Visual Studio CppCon 2020 `Online _2 💡 Feature complete • C++23 • out_ptr and inout_ptr • contains for basic_string and basic_string_view • Other small features 🕙 Coming next for C++23 • STL • Standard library modules • C++98* * with /permissive- 💡 C++11 💡 C++14 💡 C++17 💡 C++20* *awaiting DR resolution 🐱🏍�C++23 with /std:c++latest Visual Studio Visual Studio Agenda 1. Conformance 2. Code Safety 3.0 码力 | 42 页 | 19.02 MB | 6 月前3 whats new in visual studiomuch much more… https://aka.ms/cpp/code Thu 10/28 – 2pm An Editor Can Do That? Debugging Assembly Language and GPU Kernels in Visual Studio Code Julia Reid – _3 Visual Studio CppCon 2020 `Online _2 💡 Feature complete • C++23 • out_ptr and inout_ptr • contains for basic_string and basic_string_view • Other small features 🕙 Coming next for C++23 • STL • Standard library modules • C++98* * with /permissive- 💡 C++11 💡 C++14 💡 C++17 💡 C++20* *awaiting DR resolution 🐱🏍�C++23 with /std:c++latest Visual Studio Visual Studio Agenda 1. Conformance 2. Code Safety 3.0 码力 | 42 页 | 19.02 MB | 6 月前3
 C++高性能并行编程与优化 -  课件 - 11 现代 CMake 进阶指南,之后再调用 enable_language(CXX) 这样可以把 enable_language 放到 if 语句里,从而只有某些选项开启才启用某语言之类的 设置 C++ 标准: CMAKE_CXX_STANDARD 变量 • CMAKE_CXX_STANDARD 是一个整数,表示要用的 C++ 标准。 • 比如需要 C++17 那就设为 17 ,需要 C++23 就设为 23 。 •0 码力 | 166 页 | 6.54 MB | 1 年前3 C++高性能并行编程与优化 -  课件 - 11 现代 CMake 进阶指南,之后再调用 enable_language(CXX) 这样可以把 enable_language 放到 if 语句里,从而只有某些选项开启才启用某语言之类的 设置 C++ 标准: CMAKE_CXX_STANDARD 变量 • CMAKE_CXX_STANDARD 是一个整数,表示要用的 C++ 标准。 • 比如需要 C++17 那就设为 17 ,需要 C++23 就设为 23 。 •0 码力 | 166 页 | 6.54 MB | 1 年前3
 C++高性能并行编程与优化 -  课件 - 08 CUDA 开启的 GPU 编程GA106 – RTX 3060, GA104 – RTX 3070, GA107 – RTX 3050, Quadro A10, Quadro A16, Quadro A40, A2 Tensor Core GPU https://arnon.dk/matching-sm-architectures-arch-and-gencode-for-various-nvidia-cards/ 更老的版本如 ,总感觉是几百年前的编程语言。 • 现在很多“老年”教材对 cpp 的认识也停留在 C++03 , B 站 / 油管偶尔翻出几个介绍 C++11 新特性的视频已经算很先进很前卫了,然而现在 C++23 的标准都已经开始往官网上挂了…… 第 7 章:原子操作 经典案例:数组求和 • 如何并行地对数组进行求和操作? • 首先让我们试着用串行的思路来解题。 • 因为 __global__ 函数不能返回值,只能0 码力 | 142 页 | 13.52 MB | 1 年前3 C++高性能并行编程与优化 -  课件 - 08 CUDA 开启的 GPU 编程GA106 – RTX 3060, GA104 – RTX 3070, GA107 – RTX 3050, Quadro A10, Quadro A16, Quadro A40, A2 Tensor Core GPU https://arnon.dk/matching-sm-architectures-arch-and-gencode-for-various-nvidia-cards/ 更老的版本如 ,总感觉是几百年前的编程语言。 • 现在很多“老年”教材对 cpp 的认识也停留在 C++03 , B 站 / 油管偶尔翻出几个介绍 C++11 新特性的视频已经算很先进很前卫了,然而现在 C++23 的标准都已经开始往官网上挂了…… 第 7 章:原子操作 经典案例:数组求和 • 如何并行地对数组进行求和操作? • 首先让我们试着用串行的思路来解题。 • 因为 __global__ 函数不能返回值,只能0 码力 | 142 页 | 13.52 MB | 1 年前3
 Working with Asynchrony Generically: A Tour of C++ ExecutorsKirk Shoop)120 Where to now?121 WHAT’S TO COME P2300 “std::execution”, currently on track for C++23, brings: • the concepts, • the customization points, • a handful of fundamental async algorithms0 码力 | 121 页 | 7.73 MB | 6 月前3 Working with Asynchrony Generically: A Tour of C++ ExecutorsKirk Shoop)120 Where to now?121 WHAT’S TO COME P2300 “std::execution”, currently on track for C++23, brings: • the concepts, • the customization points, • a handful of fundamental async algorithms0 码力 | 121 页 | 7.73 MB | 6 月前3
 陈东 - 利用Rust重塑移动应用开发-230618as embedded devices, IOS, Android, etc. It is an inevitable choice for our business to choose a language that can support multiple platforms. Share Logic 利用 Rust 重塑移动应用开发 Keystone App is a mobile application chart Rust FFI Rust FFI (Foreign Function Interface) refers to the ability of Rust programming language to interface with code written in other languages, typically C or C++. FFI allows Rust to call languages. - JNI JNI is an interface that allows Java to interact with code written in another language. Motivation for JNI is code reusability and performance. WIth JNI, you can reuse existing/legacy0 码力 | 22 页 | 2.10 MB | 1 年前3 陈东 - 利用Rust重塑移动应用开发-230618as embedded devices, IOS, Android, etc. It is an inevitable choice for our business to choose a language that can support multiple platforms. Share Logic 利用 Rust 重塑移动应用开发 Keystone App is a mobile application chart Rust FFI Rust FFI (Foreign Function Interface) refers to the ability of Rust programming language to interface with code written in other languages, typically C or C++. FFI allows Rust to call languages. - JNI JNI is an interface that allows Java to interact with code written in another language. Motivation for JNI is code reusability and performance. WIth JNI, you can reuse existing/legacy0 码力 | 22 页 | 2.10 MB | 1 年前3
 Introduction to Mobile UI Test Automationframework Not modify app under test Use language of choice Use known APIs (webdriver) Functional Tests Core www.github.com/NativeScript/functional-tests-core Open source Java Appium Easy to write0 码力 | 41 页 | 4.75 MB | 1 年前3 Introduction to Mobile UI Test Automationframework Not modify app under test Use language of choice Use known APIs (webdriver) Functional Tests Core www.github.com/NativeScript/functional-tests-core Open source Java Appium Easy to write0 码力 | 41 页 | 4.75 MB | 1 年前3
 Making Libraries Consumable for Non-C++ DevelopersWho am I? Still at Microsoft, now on the .NET Core runtime team. • https://github.com/dotnet/runtimeWhat is interoperability? Enabling two or more disparate entities to work together. Don’t touch it to free that? Enabling two or more disparate entities to work together.Why interoperability? No language or platform is good for everything. Fast inner loop Makes UX easy Has tooling for workload that later.What assumptions are being made? void get_size(size_t dev, long* size); Non-C/C++ language. Caller of get_size(). C/C++ binary. Provides get_size(). gcc and clang, sizeof(long) == sizeof(size_t)0 码力 | 29 页 | 1.21 MB | 6 月前3 Making Libraries Consumable for Non-C++ DevelopersWho am I? Still at Microsoft, now on the .NET Core runtime team. • https://github.com/dotnet/runtimeWhat is interoperability? Enabling two or more disparate entities to work together. Don’t touch it to free that? Enabling two or more disparate entities to work together.Why interoperability? No language or platform is good for everything. Fast inner loop Makes UX easy Has tooling for workload that later.What assumptions are being made? void get_size(size_t dev, long* size); Non-C/C++ language. Caller of get_size(). C/C++ binary. Provides get_size(). gcc and clang, sizeof(long) == sizeof(size_t)0 码力 | 29 页 | 1.21 MB | 6 月前3
 C++高性能并行编程与优化 -  课件 - 16 现代 CMake 模块化项目管理指南find_package(OpenCV REQUIRED COMPONENTS core videoio) • 查找名为 OpenCV 的包,找不到就报错,且必须具有 OpenCV::core 和 OpenCV::videoio 这 两个组件,如果没有这两个组件也会报错。 • find_package(OpenCV REQUIRED OPTIONAL_COMPONENTS core videoio) • 查找名为 OpenCV OpenCV 的包,找不到就报错,可具有 OpenCV::core 和 OpenCV::videoio 这两个 组件,没有这两组件不会报错,通过 ${OpenCV_core_FOUND} 查询是否找到 core 组件。 find_package 说是找“包”,到底是在找什么? • find_package(OpenCV) 实际上是在找一个名为 OpenCVConfig.cmake 的文件。 • 注:出于历史兼容性考虑,除了 Qt5Config.cmake 是你安装 Qt5 时,随 libQt5Core.so 等实际的库文件,一起装到你的 系统中去的。以我的 Arch Linux 系统为例: • 包配置文件位于 /usr/lib/cmake/Qt5/Qt5Config.cmake 。 • 实际的动态库文件位于 /usr/lib/libQt5Core.so 。 find_package 说是找“包 (package)”0 码力 | 56 页 | 6.87 MB | 1 年前3 C++高性能并行编程与优化 -  课件 - 16 现代 CMake 模块化项目管理指南find_package(OpenCV REQUIRED COMPONENTS core videoio) • 查找名为 OpenCV 的包,找不到就报错,且必须具有 OpenCV::core 和 OpenCV::videoio 这 两个组件,如果没有这两个组件也会报错。 • find_package(OpenCV REQUIRED OPTIONAL_COMPONENTS core videoio) • 查找名为 OpenCV OpenCV 的包,找不到就报错,可具有 OpenCV::core 和 OpenCV::videoio 这两个 组件,没有这两组件不会报错,通过 ${OpenCV_core_FOUND} 查询是否找到 core 组件。 find_package 说是找“包”,到底是在找什么? • find_package(OpenCV) 实际上是在找一个名为 OpenCVConfig.cmake 的文件。 • 注:出于历史兼容性考虑,除了 Qt5Config.cmake 是你安装 Qt5 时,随 libQt5Core.so 等实际的库文件,一起装到你的 系统中去的。以我的 Arch Linux 系统为例: • 包配置文件位于 /usr/lib/cmake/Qt5/Qt5Config.cmake 。 • 实际的动态库文件位于 /usr/lib/libQt5Core.so 。 find_package 说是找“包 (package)”0 码力 | 56 页 | 6.87 MB | 1 年前3
 使用硬件加速Tokio - 戴翔of the box, it also provides the knobs needed to fine tune to different cases. Flexible Tokio Core Queue-Based Modules in Tokio • Channel • Scheduler • Tokio uses Channel for communication between Senders Senders Receive Receivers Perf Gaps: CAS(Compare And Swap) can't perfectly scale with core count. Tokio Channel • Each worker has own run queue • Steal when own run queue is empty From Adding new entries from any core or thread • Picking the next entry by any core or thread Conclusion: • DLB channel scales with core count much better than SW channels • Core count >2 shows advantage0 码力 | 17 页 | 1.66 MB | 1 年前3 使用硬件加速Tokio - 戴翔of the box, it also provides the knobs needed to fine tune to different cases. Flexible Tokio Core Queue-Based Modules in Tokio • Channel • Scheduler • Tokio uses Channel for communication between Senders Senders Receive Receivers Perf Gaps: CAS(Compare And Swap) can't perfectly scale with core count. Tokio Channel • Each worker has own run queue • Steal when own run queue is empty From Adding new entries from any core or thread • Picking the next entry by any core or thread Conclusion: • DLB channel scales with core count much better than SW channels • Core count >2 shows advantage0 码力 | 17 页 | 1.66 MB | 1 年前3
共 25 条
- 1
- 2
- 3













