Как определить статическую переменную-член, которая также является локальной нитью внутри класса шаблона? Я думаю, что я понял, как это сделать в GCC, но хотел бы подтвердить, что это будет работать правильно с точки зрения связывания, инициализации и разрешения. Также был бы полезен перевод на другой компилятор (например, MSVC), поэтому я могу получить хороший макрос для этого.Как объявить поток локального статического в шаблоне
template<typename T>
class my_class
{
struct some_type { };
static __thread some_type * ptr;
};
template<typename T>
__thread typename my_class<T>::some_type * my_class<T>::ptr = 0;
Альтернативный способ добиться того же, что было бы также хорошо (то есть, использовать отдельную нить локальную каждый экземпляр шаблона).