EXPLORATION OF C++20 METAPROCRAMMING
EXPLORATION OF C++20 METAPROGRAMMING INBAL LEVIWHO AM I? • AC++ enthusiast. • An embedded software engineer at Solar Edge working on smart home. • One of the organizers of CoreCpp conference and user code. 3MOTIVATION • Some environments discourage extensive use of templates 4 • We’ll see how C++20 creates a paradigm shift in the way we use metaprogramming. And I don’t blame them…• Part 0: (Prologue) Overload resolution and ADL • Part III: Conditions at compile time pre C++20 • Part IV: Conditions at compile time using C++20 (and beyond…) • Part V: Advanced methods for controlling compile time logic0 码力 | 50 页 | 2.59 MB | 5 月前3C++20's
12 C++20’sCalendars and Time Zones in MSVC Miya Natsuhara ("MEE-yuh Not-soo-HAR-uh") Miya.Natsuhara@microsoft.com Software Engineer, Visual C++ LibrariesWelcome to CppCon 2021! Join and Daniel Marshall • A GitHub project tracking the issues, PRs, discussions, etc. related to C++20 chrono: Extensions to (github.com) • Feature branch (feature/chrono) for rapid development satisfies the Clock requirements.20 C++20’s chrono adds several new clocks ([time.clock]) Existing clocks (pre-C++20) • system_clock • (file_clock) New clocks (in C++20) • utc_clock • tai_clock • gps_clock 0 码力 | 55 页 | 8.67 MB | 5 月前3C++20 镶 SQL
C++20 ❤ SQL John R Bandela, MDOverview u SQL u C++ Example u Implementation techniques u fixed_string u meta_struct u Parsing compile time strings into meta_structsOverview v SQL v C++ Example Implementation Techniques v https://github.com/google/cpp-from-the-sky-down/tree/master/meta_struct_20/cppcon_versionSQL v Probably the highest level mainstream programming language v It matches the capabilities read_row_into(stmt, index, m.value); ++index; }, row); return row; }C++20 ❤ SQL https://github.com/google/cpp-from-the-sky-down/tree/master/meta_struct_20/cppcon_version0 码力 | 46 页 | 775.02 KB | 5 月前3C++20: An (Almost) Complete Overview
C++20: An (Almost) Complete Overview September 15th 2020 Marc Grégoire Software Architect marc.gregoire@nikon.com2 Marc Grégoire Belgium Software architect for Nikon Metrology Microsoft Edition (C++20) coming later this year Co-author of C++ Standard Library Quick Reference& C++17 Standard Library Quick Reference Founder of the Belgian C++ Users Group (BeCPP)3 C++20 C++20 is big! Lots of new features! On Friday September 4, 2020, the C++20 standard passed ISO voting, expected to be formally published by the end of 2020.4 Agenda Modules Ranges Coroutines Concepts0 码力 | 85 页 | 512.18 KB | 5 月前3MACRO-FREE TESTING WITH C++20
CPPCON 2020 / CPPCON 2020 / MACRO-FREE TESTING MACRO-FREE TESTING WITH C++20 WITH C++20 | | | | HTTPS://BOOST-EXT.GITHUB.IO/UT/CPPCON-2020 HTTPS://BOOST-EXT.GITHUB.IO/UT/CPPCON-2020 KRIS@JUSIAK - UT - HTTPS://GITHUB.COM/BOOST-EXT/UT HTTPS://GITHUB.COM/BOOST-EXT/UT 2 / 14UT - UT - C++20 ( C++20 ( , , ) (*) LIMITATIONS MAY APPLY (*) LIMITATIONS MAY APPLY HTTPS://GITHUB.COM/BOOST-EXT/UT CLANG-11.0.0+ GCC-9+, CLANG-9.0+, APPLE CLANG-11.0.0+ MSVC-2019+* MSVC-2019+* 2 / 14UT - UT - C++20 ( C++20 ( , , ) SINGLE SINGLE (2K LOC) WITH NO EXTERNAL DEPENDENCIES (2K LOC) WITH NO EXTERNAL DEPENDENCIES0 码力 | 53 页 | 1.98 MB | 5 月前3C++20 Modules: The Packaging and Binary Redistribution Story
C++20 Modules: The Packaging and Binary Redistribution StoryScope ● Brief introduction on C++ modules and their advantages ● Focus on named modules ● Using modules today ○ Can we package module-ready -std=c++20 -o hello_world.cpp.o -c hello_world.cpp hello_world.cpp:1:10: fatal error: 'fmt/core.h' file not found #include^~~~~~~~~~~~ 1 error generated. 👎 clang++ -std=c++20 -o └── libfmt.{a|so|dylib|lib} Headers Binary library “Usage requirements”C++ 20: The import keyword clang++ -std=c++20 -o hello_world.cpp.o -c hello_world.cpp hello_world.cpp:1:8: fatal error: module 0 码力 | 76 页 | 2.09 MB | 5 月前3Beyond struct: Programming a Struct Replacement in C++20
John R. Bandela, MD Beyond struct: Meta- programming a struct Replacement in C++20Disclaimer This is not an official Google library These opinions are my ownStruct struct person { int id = 1; std::string wrapper – but then we run into: u There are no transparent wrappers in C++Let’s Go Beyond Struct u C++20 u No MacrosDefining and accessing members using Person = meta_struct< // member<"id", int> return std::nullopt; } } Possible API (not implemented)SQL C++20 ❤ SQL https://github.com/google/cpp-from-the-sky-down/tree/master/meta_struct_20/cppcon_version0 码力 | 65 页 | 702.78 KB | 5 月前3C++20 STL Features: 1 Year of Development on GitHub
C++20 STL Features: 1 Year of Development on GitHub Stephan T. Lavavej "Steh-fin Lah-wah-wade" Principal Software Engineer, Visual C++ Libraries stl@microsoft.com @StephanTLavavej 1 Version 1.0 - September Write down the slide numbers • Part 0: Overview • What's happened in the last year • Part 1: C++20 STL Features • Everything here is Standard, except as noted • Part 2: GitHub Development • For contributors CppCon 2019 • github.com/microsoft/STL • Apache License v2.0 with LLVM Exception • Implemented ~50 C++20 features • Majority from our amazing contributors • Extensively reviewed and tested • Released VS0 码力 | 45 页 | 989.72 KB | 5 月前3C++20 STL Features: 1 Year of Development on GitHub
Version 1.0 - September 15, 2020 1 C++20 STL Features: 1 Year of Development on GitHub Stephan T. Lavavej "Steh-fin Lah-wah-wade" Principal Software Engineer, Visual C++ Libraries stl@microsoft.com @StephanTLavavej2 Write down the slide numbers • Part 0: Overview • What's happened in the last year • Part 1: C++20 STL Features • Everything here is Standard, except as noted • Part 2: GitHub Development • For contributors CppCon 2019 • github.com/microsoft/STL • Apache License v2.0 with LLVM Exception • Implemented ~50 C++20 features • Majority from our amazing contributors • Extensively reviewed and tested • Released VS0 码力 | 45 页 | 702.09 KB | 5 月前3Leveraging C++20/23 Features for Low Level Interactions
Leveraging C++20/23 Features for Low Level InteractionsOverview In a baremetal environment, we’re going to demonstrate e�ective use of C++ How did we end up with C language HW interactions? What are best volatile uint32_t reg2; // Offset 4 volatile uint32_t pad[4]; volatile uint32_t reg3; // Offset 20 ... } regs_t;Managing the smart pointer The interface for a smart pointer allows initialization com/watch? v=I8UvQKvOSSw Fertig, Andreas (2020) “C++20: Aggregate, POD, trivial type, standard layout class, what is what.” https://andreasfertig.blog/2021/01/cpp20-aggregate-pod-trivial-type-standard-layout-class-what-is-0 码力 | 56 页 | 5.39 MB | 5 月前3
共 1000 条
- 1
- 2
- 3
- 4
- 5
- 6
- 100