c++ version of getopt