@@ -527,7 +527,7 @@ Concepts let us say: **"If it walks like a duck and quacks like a duck..."**
527527
528528```cpp
529529template <typename T>
530- concept container_but_not_string =
530+ concept container =
531531 requires(T a) {
532532 { a.size() } -> std::convertible_to<std::size_t>;
533533 {
@@ -538,6 +538,7 @@ concept container_but_not_string =
538538
539539---
540540
541+ # Containers, but not string types
541542
542543``` cpp
543544template <typename T>
@@ -601,7 +602,7 @@ struct GameData {
601602The magic:
6026031) **Reflection** discovers your struct's fields
6036042) **Concepts** match container behavior to serialization strategy
604- 3) **Result**: ALL containers work automatically - standard, custom, or future!
605+ 3) **Result**: MOST containers work automatically - standard, custom, or future!
605606
606607**Write once, works everywhere™**
607608
@@ -727,22 +728,18 @@ We've observed a 6% slow-down when compiling simdjson with static reflection ena
727728
728729---
729730
731+ ![ bg right] ( images/racecar.png )
732+
730733
731734# Key Technical Insights
732735
733- 1 ) ** With reflection and concepts**
734- - your code becomes shorter
735- - your code becomes more general
736+ 1 ) ** With reflection and concepts** , code is shorter and more general
736737
737- 2 ) ** Compilation time not much slower **
738+ 2 ) ** Fast compile time **
738739
7397403 ) ** Compile-Time optimizations can be awesome**
740- - Consteval: 2-2.6x speedup alone
741-
742- 4 ) ** SIMD** String operations benefit
743741
744- 5 ) ** Every Optimization Matters**
745- - Small gains compound into huge improvements
742+ 4 ) ** SIMD** : String operations benefit
746743
747744
748745---
0 commit comments