Страницы

Поиск по вопросам

пятница, 14 февраля 2020 г.

Как передать аргумент в std::thread по ссылке?

#cpp #многопоточность


Как передать аргумент функции в std::thread по ссылке? Хоть моя функция принимает
параметр по ссылке, но похоже, что объекты всё равно разные.
    


Ответы

Ответ 1



Все аргументы, передаваемые при запуске std::thread, будут копироваться и сама функция потока получит ссылки на копии. Поэтому, разумеется, объекты будут разные. Чтобы произошла передача по ссылке в std::thread вместо arg следует передавать std::ref(arg) или std::cref(arg).

Комментариев нет:

Отправить комментарий