Presented at the Triangle C++ Developers meetup on 10 January 2017.
C++17 introduces many new features, one of which is `std::variant`, a type whose instances can hold any one of a listed range of types. This seems a great fit for JSON, which has just null, booleans, doubles, strings, arrays, and objects.
This presentation, which was mostly a code demo and less of a slideshow, explored techniques I used to implement a JSON parser and pretty-printer using `std::variant`. Spoiler: CRTP was involved.