filmov
tv
CppCon 2017: Yu Qi “Compile-time reflection, Serialization and ORM”
![preview_player](https://i.ytimg.com/vi/WlhoWjrR41A/maxresdefault.jpg)
Показать описание
—
—
We will discuss what reflection is and how it can be implemented in Modern C++. The techniques used will include a mix of C++11/14 features (void_t, tuple, index_sequence, variadic templates, auto functions, decltype(auto), constexpr, type_traits, etc), classic C++ features, and macros.
We’ll use a couple of example libraries to show the essence and power of compile-time reflection and show how to simplify and improve their implementation with C++17 features such as inline variables, constexpr if, structure binding, fold expressions, and string_view.
The first example is a library that can serialize a struct into any of a variety of data formats, such as JSON, XML, MessagePack, or a custom format.
We’ll then apply the same techniques to implement an Object-Relational Mapping (ORM) library to serialize structs into the tables of any of a variety of databases, such as SQLite, MySQL, Postgres, etc.
We’ll discuss some of the challenges and limitations of these techniques and what features could be added to C++ to improve support for compile-time reflection.
—
—
*--*
*-----*
CppCon 2017: Yu Qi “Compile-time reflection, Serialization and ORM”
A Faster Serialization Library Based on Compile-time Reflection and C++ 20 - Yu Qi - CppCon 2022
C++Now 2017: Yu Qi 'An easy to use RPC framework implemented in C++11/14'
CppCon 2017: Dmitry Panin “Practical Techniques for Improving C++ Build Times”
CppCon 2017 Compile time reflection, Serialization and ORM
CppCon 2017: Lukas Bergdoll “Web | C++” SLIDES FIXED
CppCon 2017: Andrew Sutton “Reflection”
CppCon 2016: 'Achieving performance in financial data processing through compile time introspec...
CppCon 2017: Gennadiy Rozental “How to break an ABI and keep your users happy”
CppCon 2017: Nir Friedman “What C++ developers should know about globals (and the linker)”
CppCon 2017: Michael Price “Function default arguments: Slingshot or Shotgun?”
CppCon 2017: Matthew Avery “X-Macro: How to avoid repetition”
CppCon 2017: John Regehr “Undefined Behavior in 2017 (part 1 of 2)”
CppCon 2017: Rian Quinn “A Test a Day Keeps Your Manager Away!”
CppCon 2017: Dave Watson “C++ Exceptions and Stack Unwinding”
CppCon 2017: Fred Tingaud “quick-bench.com”
CppCon 2017: Giuseppe D'Angelo “Solving a bug via lateral thinking”
CppCon 2017: Guy Somberg “Game Audio Programming in C++”
CppCon 2017: Charles L. Wilcox “The Three Layers of Headers A Curious Discovery”
CppCon 2017: Mathieu Ropert “API & ABI Versioning...”
CppCon 2017: Scott Schurr “Type Punning in C++17: Avoiding Pun-defined Behavior”
CppCon 2018: “Emulating the Nintendo 3DS: Generative & Declarative Programming in Action'
CppCon 2017: Michael Park “MPark.Patterns: Pattern Matching in C++”
CppCon 2017: Michael Caisse “Practical Patterns with the Networking TS”
Комментарии