With few exceptions, most developers will eventually have to learn SQL. In our C++ world, many of us are familiar with the ranges library. Can we write a library that makes it easy to manipulate containers using a SQL like syntax, rather than writing raw loops or ranges code?
This talk explores the design possibilities, taking advantage of Jonathan Müller's lexy and Kris Jusiak's reflect libraries.
Eventually, I show how it is possible to write:
Table people; auto ages = people.select<"age where firstName = ?">("Bjarne");
All versions are benchmarked to ensure that particular API choices don't effect performance.