I'm looking for a nice modern C++ CSV library, mostly for parsing.
Required features:
- Written in modern C++ (C++11 at least)
- Gratis
- Libre
- Fast (yes, this may be difficult to quantify)
Desired feature:
- Header-mostly
- Support for a wide variety of CSV syntax errors, trying to recover as much information as possible
- Template-based policy for extra optimization
- Optionally multi-threaded
- Header-only
- Support for non-comma separators
- Tested for compliance with the CSV standard
- Does not reinvent the wheel - uses the C++ standard library, Boost or other well-regarded libraries where relevant.
- Supports reading only a part of a CSV file, e.g. a range of records/lines
- Well-documented
- "Elegantly" coded
- Support for writing CSVs as well as reading/parsing them
- Supports simplifying assumptions indicated by the user, e.g. whether the quoted strings may have field and record separators and/or escaped quotes within them; field data types; field widths.