Я пытаюсь запустить следующий простой пример.
void printString(const char* s)
{
std::cout << s << std::endl;
}
int main()
{
std::string str = "hello world";
std::thread T3(printString, str.c_str());
}
Но я получаю следующую ошибку.
No matching constructor for initialization of 'std::thread'
Я использую Xcode 11.1.
Если бы это было скомпилировано, сработал бы этот код? Поскольку потоки совместно используют одну и ту же кучу, поток T3
должен иметь доступ к str.c_str()
, верно? Предполагая, что в куче выделено std::string
буферов.
Спасибо!