Writing a Compile-Time CSV Parser in C++, Part 2: The Parser