17 template <
typename Separator1,
typename Separator2>
20 const std::string& str,
const Separator1& sep1,
size_t sep1_size,
21 const Separator2& sep2) {
23 std::string::size_type start = str.find(sep1);
24 if (start == std::string::npos)
29 std::string::size_type limit = str.find(sep2, start);
31 if (limit == std::string::npos)
34 return str.substr(start, limit - start);
43 const std::string& sep2) {
47 std::string
extract_between(
const std::string& str,
const std::string& sep1,
52 std::string
extract_between(
const std::string& str,
const std::string& sep1,
53 const std::string& sep2) {