C++ string to char *

半伪代码:

void main {

  string line;

  getline(ifs, line);
  replace(line.begin(), line.end(), ',', ' ');
  replace(line.begin(), line.end(), ' ', ' ');

  istringstream iss(line);
  string grid;
  while (getline(iss, grid)) {
    ret.push_back(grid);
  }

}  

  (这段摘的)默认情况下,GCC 5在编译时会将std::string类型按c++11下std::__cxx11::basic_string<char> 来处理,这时如果你调用的库在编译时未启用c++11特性则其中的std::string实际上是std::basic_string<char> ,这时如果将c++11下的string当作参数传入非c++11的库时,就会出现error: cannot convert 'const std::__cxx11::basic_string<char>' to 'const char*',或者未定义的方法引用(undefined reference

原文地址:https://www.cnblogs.com/kilen/p/7009413.html