Reflection Is Not Contemplation## Reflection Is Not Contemplation Andrei Alexandrescu | CppCon 2024 ## B ## Ba-dum tsss ## I ’ll Start With the Punchline • Static reflection without code generation is incomplete • The “reading” “reading” part of reflection generally agreed upon • The “generation” part of reflection suffered of neglect • P2996 very gingerly sneaks in a foot in the door (define_class) • P3294 finally blows the door off off its hinges • The two facets of reflection are equally important • Where do AI tools fit within this craze? ## The Reflection Circularity Problem Without generation, we're chasing our tails •0 码力 | 45 页 | 2.45 MB | 1 年前3
Reflection Based Libraries to Look Forward To## +24 ## Reflection Based Libraries to Look Forward To ## SAKSHAM SHARMA ## Reflection based libraries to look forward to ## Saksham Sharma CppCon 2024 ## Why me Director, Quant Research Tech at clean APIs ## Overview • What is reflection • Reflection in other languages (Go, Python, Java) • Reflection in C++ as per P2996 ☐ Syntax and examples • Reflection libraries! Python bindings ABI hashing ) • Alternatives ways to achieve “reflection” ## Reflection In code.  ## Reflection? ## Write code to • Access information0 码力 | 118 页 | 14.33 MB | 1 年前3
Implementing Reflection Using the New C++20 Tooling Opportunity: Modules## +24 ## I mplementing Reflection Using the New C++20 Tooling Opportunity: Modules ## MAIKO STEEMAN ## About me • Tools & Engine programmer • AAA Games Industry • (prev) Creative Assembly • c6f9d1987f99771d61126d94b402/p2_2.jpg) ## Summary • What is reflection? • Why? • Implementing runtime reflection ## What is reflection • Metadata of code • "What members do I have?" struct Entity { int health; std::string tag; void eat_burger(); }; ## Why should I care about reflection? • Serialization • Binary, JSON, etc. json sanitize_struct(any any_value) { json json;0 码力 | 53 页 | 1.43 MB | 1 年前3
C++26 Previewbug fixes - always a high priority • concurrency support std::execution (P2300) • networking • reflection, contracts, pattern matching • additions to c++20/23 features ranges, format • mop up c++23 stuff • structured bindings • Language • Templates • Misc • Contracts • Reflection ## Outline of the talk II ## • Library: ■ string processing ■ format additions ■ containers const int i3 = 1(3); // static initialization to 3 Language - Reflection ## P2996 Reflection for C++26 • Minimal viable product • reflection operator (prefix ^) • retruns opaque type std::meta::info0 码力 | 118 页 | 2.02 MB | 1 年前3
Julia 1.9.0 rc2 DocumentationValues 578 41.12 System 581 41.13 Versioning 594 41.14 Errors 595 41.15 Events 605 41.16 Reflection 606 41.17 Code loading 611 41.18 Internals 613 41.19 Meta 619 42 Collections and Data Structures 99 UUIDs ..... 1479 100 Unicode ..... 1481 IV Developer Documentation ..... 1485 101 Reflection and Introspection ..... 1486 101.1 Module bindings ..... 1486 101.2 DataType fields ..... 1486 occurs. Because all data types and code in Julia are represented by Julia data structures, powerful reflection capabilities are available to explore the internals of a program and its types just like any other0 码力 | 1644 页 | 5.27 MB | 2 年前3
Customizing Compilation Error MessagesREADME.md -> reflect [README] Code About C++20 Static Reflection library 444d020 - 3 weeks ago 287 Commits .github reflection meta-programming cpp20 reflect 2 months ago Readme 3 weeks watching // Overview / Examples / API / FAQ 14 forks Report repository ## REFLECT: C++20 Static Reflection library license MIT release v1.2.3 build try it online https://en.wikipedia.org/wiki/Reflective_programming0 码力 | 12 页 | 1.47 MB | 1 年前3
Expressive Compile-time Parsers3_1.jpg) ## Dive Into Compile-Time Parsers Libraries Use Cases Implementation Techniques Reflection  Language Evolution compile-time libraries • API • Design • Implementation details • Using compile-time parsers • Reflection • Examples: functions, types, trees ## Parser parse(text or tokens) -> value or error In Compiler Linker Executable ## Reflection C++ has introspection features but reflection is still far away. Reflection libraries: 1. Boost Describe: A C++14 Reflection Library 2. Reflect: github.com/M-Fatah/reflect0 码力 | 134 页 | 1.73 MB | 1 年前3
Peering Forward: C++'s Next Decade/e/8/2/4/e824484ec02995430aad71c2a66a8be7/p2_1.jpg) ✓ Type and memory safety improvements ☐ Reflection + code generation (aka ‘injection’/...) ☐ Contracts ✓ means “some initial parts already voted parallelism) Type and memory safety improvements • target: parity with other modern languages Reflection + code generation (aka ‘injection’/...) • part of our sea change to compile-time programming arguably most-impactful feature ever added • I expect will dominate our next decade Contracts ## Reflection  ## Safety ##0 码力 | 84 页 | 6.21 MB | 1 年前3
Connecting User And Library CodeConcepts 6. tag_invoke (not in the standard) 7. Customizable Functions (not in the standard) 8. Reflection (not in the standard) ## 2 Slides ## Part II: Method 1: Inheritance  7. Customizable Functions (not in the standard) 8. Reflection (not in the standard) ## 5 Slides  7. Customizable Functions (not in the standard) 8. Reflection (not in the standard) ## 7 Slides ## Part II: (A Short Detour) Discovery By Overload Resolution0 码力 | 58 页 | 18.82 MB | 1 年前3
Template-Less Meta-Programminghttps://github.com/qlibs/mp ### Reflection for C++26 $ ^{*} $ - https://wg21.link/p2996 Value-based Metaprogramming Meta functions for Reflection (introspection, generation) ### Reflection for C++26 $ ^{*} $ - https://wg21.link/p2996 ^^T // reflection operator (reflexpr) static_assert(^^int == ^^int); static_assert(^^int != ^^void); static_assert(typeid(^^int) == typeid(^^void)); ### Reflection for C++26 $ ^{*} $ - - https://wg21.link/p2996 ^^T // reflection operator (reflexpr) static_assert(^^int == ^^int); static_assert(^^int != ^^void); static_assert(typeid(^^int) == typeid(^^void)); [: ... :] // splicer0 码力 | 130 页 | 5.79 MB | 1 年前3
共 539 条
- 1
- 2
- 3
- 4
- 5
- 6
- 54
相关搜索词
反射生成静态反射代码生成模板元编程ReflectionC++librariesboilerplate-reducingtemplate metaprogrammingC++20ModulesRuntimeMetadataC++26ConcurrencyNetworkingRangesJulia 1.9.0-rc2DocumentationREPLBase Submodulesreflectmember name checkingcustom error messagesstatic reflectionExpressive Compile-time ParsersMetaprogramming TricksAPI DesignDomain Specific LanguagesC++26/29std::execution类型和内存安全反射与代码生成ContractsCustomization PointsLibrary CodeUser CodeIntegrationHooksTemplate Metaprogrammingboost.mp11Circle-langvalue-based metaprogrammingcompile time













