void writeInternal(const std::pair<T...>& values) { visitFields(values, this, std::string()); }
void readInternal(T& values) { visitFields(values, this, std::string()); }