#cpp
Я бы хотел разобраться в том, каким образом названные функции реализуют сохранение информации о последней возникшей ошибке в текущем вызывающем потоке. Как это реализуется? И каким способом можно реализовать аналогичный функционал? Ну, например, предоставить для своей библиотеки аналог GetLastError()/errno().
Ответы
Ответ 1
Начиная с 11 стандарта (обоих языков) можно использовать спецификатор хранения thread_local. При использовании компиляторов, которые его не поддерживают - аналогичные функции ОС, например Thread Local Storage в WinAPI. Пример использования TLS в библиотеке можно посмотреть здесь: Using Thread Local Storage in a Dynamic-Link Library
Комментариев нет:
Отправить комментарий