stdthread- все статьи тега


Создание экземпляра shared ptr с помощью make shared

Рассмотрим следующий код: class A { .... shared_ptr<std::thread> mThread; void Step(); void LaunchTrhead(); } void A::LaunchThread() { ... mThread=make_shared<std::thread>(Step); // This line gives an error ... } void A::Step() { ... } Я пытаюсь инициализировать общий указатель mThread так, чтобы он вызывал функцию Step. Однако компилятор выдает мне ошибку "недопустимая инициализация ссылки типа ... из выражения типа "неразрешенный перегруженны ...

Можно ли получить возвращаемое значение функции потока в C++11?

Если функция имеет не пустое возвращаемое значение и я соединяю его с помощью функции .join, то есть ли способ получить ее возвращаемое значение? Вот упрощенный пример: float myfunc(int k) { return exp(k); } int main() { std::thread th=std::thread(myfunc, 10); th.join(); //Where is the return value? } ...

Что происходит с отсоединенным потоком при выходе main ()?

предположим, что я начинаю std::thread а то detach() это, так что поток продолжает выполняться, даже если std::thread то, что когда-то представляло его, выходит за рамки. предположим далее, что программа не имеет надежного протокола для вступления в отдельной теме1, поэтому отсоединенный поток все еще работает, когда main() выход. Я не могу найти ничего в стандарте (точнее, в проекте N3797 C++14), который описывает, что должно произойти, ни 1.10, ни 30.3 не содержат соответствующей формулировк ...