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

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

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

Решение

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

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

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]