 EXPLORATION OF C++20 METAPROCRAMMINGEXPLORATION 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) II: 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 | 6 月前3 EXPLORATION OF C++20 METAPROCRAMMINGEXPLORATION 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) II: 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 | 6 月前3
 C++20 镶 SQLC++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 [&](auto &m) mutable { 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 | 6 月前3 C++20 镶 SQLC++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 [&](auto &m) mutable { 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 | 6 月前3
 MACRO-FREE TESTING WITH C++20CPPCON 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 14UT - 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 | 6 月前3 MACRO-FREE TESTING WITH C++20CPPCON 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 14UT - 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 | 6 月前3
 C++20 Modules: The Packaging and Binary Redistribution StoryC++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 system / package manager hello_world.cpp hello_world.oThe include directive - cont’d clang++ -std=c++20 -o hello_world.cpp.o -c hello_world.cpp hello_world.cpp:1:10: fatal error: 'fmt/core.h' file not not found #include C++20 Modules: The Packaging and Binary Redistribution StoryC++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 system / package manager hello_world.cpp hello_world.oThe include directive - cont’d clang++ -std=c++20 -o hello_world.cpp.o -c hello_world.cpp hello_world.cpp:1:10: fatal error: 'fmt/core.h' file not not found #include- ^~~~~~~~~~~~ 1 error generated. 👎 clang++ -std=c++20 -o hello_world.cpp.o -c hello_world.cpp -I/path/to/fmt/include 👍 These days this is handled by build system 0 码力 | 76 页 | 2.09 MB | 6 月前3
 Beyond struct: Programming a Struct Replacement in C++20wrapper – 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> 2})">(s); whole) { return groups; } else { 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 | 6 月前3 Beyond struct: Programming a Struct Replacement in C++20wrapper – 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> 2})">(s); whole) { return groups; } else { 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 | 6 月前3
 C++20 STL Features: 1 Year of Development on GitHubC++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 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 | 6 月前3 C++20 STL Features: 1 Year of Development on GitHubC++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 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 | 6 月前3
 Leveraging C++20/23 Features for Low Level InteractionsLeveraging 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 “Delivering Safe C++”, cppcon2023 https://www.youtube.com/watch? v=I8UvQKvOSSw Fertig, Andreas (2020) “C++20: Aggregate, POD, trivial type, standard layout class, what is what.” https://andreasfertig.blog/20 码力 | 56 页 | 5.39 MB | 6 月前3 Leveraging C++20/23 Features for Low Level InteractionsLeveraging 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 “Delivering Safe C++”, cppcon2023 https://www.youtube.com/watch? v=I8UvQKvOSSw Fertig, Andreas (2020) “C++20: Aggregate, POD, trivial type, standard layout class, what is what.” https://andreasfertig.blog/20 码力 | 56 页 | 5.39 MB | 6 月前3
 Compile-Time Compression and Resource Generation with C++20/ 1/ Introduction Explore how C++20's constexper features can: Generate data from code at compile-time Be used to construct: Lookup Tables Con�guration Fuses Compressed Strings USB Descriptors 2 /DISCARD/ : { *(.*) } } 8 . 9/ Compile and link with the linker script build.sh gcc -O3 --std=c++20 -c main.cpp -o main.o ld -o config.out -T config_register.ld main.o objdump -ds config.out 8 .0 码力 | 59 页 | 1.86 MB | 6 月前3 Compile-Time Compression and Resource Generation with C++20/ 1/ Introduction Explore how C++20's constexper features can: Generate data from code at compile-time Be used to construct: Lookup Tables Con�guration Fuses Compressed Strings USB Descriptors 2 /DISCARD/ : { *(.*) } } 8 . 9/ Compile and link with the linker script build.sh gcc -O3 --std=c++20 -c main.cpp -o main.o ld -o config.out -T config_register.ld main.o objdump -ds config.out 8 .0 码力 | 59 页 | 1.86 MB | 6 月前3
 SuperCharge Your IPC Programs With C++20 and CCI Pattern0 码力 | 57 页 | 7.11 MB | 6 月前3 SuperCharge Your IPC Programs With C++20 and CCI Pattern0 码力 | 57 页 | 7.11 MB | 6 月前3
 Implementing Reflection Using the New C++20 Tooling Opportunity: Modules0 码力 | 53 页 | 1.43 MB | 6 月前3 Implementing Reflection Using the New C++20 Tooling Opportunity: Modules0 码力 | 53 页 | 1.43 MB | 6 月前3
共 227 条
- 1
- 2
- 3
- 4
- 5
- 6
- 23
相关搜索词
 EXPLORATIONOFC++20METAPROCRAMMINGSQLMACROFREETESTINGWITHModulesThePackagingandBinaryRedistributionStoryBeyondstructProgrammingStructReplacementinSTLFeaturesYearofDevelopmentonGitHubLeveraging23forLowLevelInteractionsCompileTimeCompressionResourceGenerationwithSuperChargeYourIPCProgramsWithCCIPatternImplementingReflectionUsingtheNewToolingOpportunity













