| 480 | |
| 481 | template<class T> |
| 482 | static std::vector<T> string_split(const std::string & str, char delim) { |
| 483 | static_assert(!std::is_same<T, std::string>::value, "Please use the specialized version for std::string"); |
| 484 | std::vector<T> values; |
| 485 | std::istringstream str_stream(str); |
| 486 | std::string token; |
| 487 | while (std::getline(str_stream, token, delim)) { |
| 488 | T value; |
| 489 | std::istringstream token_stream(token); |
| 490 | token_stream >> value; |
| 491 | values.push_back(value); |
| 492 | } |
| 493 | return values; |
| 494 | } |
| 495 | |
| 496 | template<> |
| 497 | std::vector<std::string> string_split<std::string>(const std::string & input, char separator) |