// Umar Arshad
// Copyright 2014
// this enables template overloads of standard CRT functions that call the
// more secure variants automatically,
#define _CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES 1
#include
// strtok symbol name that keeps context is not on windows and linux
// so, the above overload define won't help with that function
#if defined(OS_WIN)
#define STRTOK_CALL(...) strtok_s(__VA_ARGS__)
#else
#define STRTOK_CALL(...) strtok_r(__VA_ARGS__)
#endif
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include // IWYU pragma: keep
#include
#include
#include
#include
using namespace std;
using std::cout;
typedef map opt_t;
void print_usage() {
cout