2021年1月22日星期五

What is not thread safe about this function? c++14

I have this function that takes a string, and gets the text in between 2 given delimiters/texts.

    std::vector<std::string> StandardFunctions::split_given_string_two_delimiters(const std::string& str, const std::string& start_delimiter, const std::string& end_delimiter) {      std::vector<std::string> split_vector;      std::string::size_type start = 0, end;      while ((start = str.find(start_delimiter, start)) != std::string::npos)      {          start += start_delimiter.size();          if ((end = str.find(end_delimiter, start)) == std::string::npos) {              break;          }          split_vector.push_back(str.substr(start, end - start));          start = end + end_delimiter.size();      }      return split_vector;  }  

I dont see any modification/writing to a global var taking place. Each thread has their own strings that are passed to the function aswell. Am i missing something?

https://stackoverflow.com/questions/65855790/what-is-not-thread-safe-about-this-function-c14 January 23, 2021 at 12:39PM

没有评论:

发表评论