use boost::split() instead of less efficient getline() version