Mimicking SQL: API Design Choices

Speaker: Jonathan O'Connor

Audience level: [ Intermediate | Advanced ]

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.