Инициализация локального указателя потока

Читая очень хороший пост в блоге Никласа Фрикхольма, на который я ссылаюсь ниже, я наткнулся на то, что не совсем могу обернуть голову.

http://bitsquid.blogspot.nl/2012/01/sensible-error-handling-part-1.html

Этот код смутил меня:

__THREAD Array<const char *> *_error_context_name;
__THREAD Array<const char *> *_error_context_data;

Код определяет локальный указатель потока на массив строк, который используется в качестве простого стека. Я не совсем понимаю, как можно инициализировать и уничтожать массивы кросс-платформенным способом? Кроме того, как это работает с границами DLL?

1 ответ

Локальный поток только комментирует, где переменная разрешается в программе. Вам нужно выделить его перед использованием, как и любую другую переменную.

Вы хотели бы сделать это, когда поток начался предпочтительно, для здравомыслия и производительности.

Другие вопросы по тегам