Несмотря на предположение, что это ожидаемое поведение от rubenvb, на самом деле это ошибка, с которой я столкнулся некоторое время назад. Я подозреваю, что rubenvb неправильно прочитал эту часть вопроса:
К сожалению, похоже, что функция localeconv () этого не замечает и по-прежнему возвращает глобальные настройки локали, например, localeconv () -> decimal_point, кажется, всегда возвращает глобальную настройку локали до вызова _configthreadlocale ().
Вопрос не предполагал, что localeconv () будет возвращаться для каждого потока перед вызовом _configthreadlocale (), так как это нарушит временной континуум. Вопрос заключался в том, что результаты вызова localeconv () после вызова _configthreadlocale () совпадают с предварительным вызовом, что является неожиданным. По сути это означает, что реализация Microsoft потоков C ++ STL в корне нарушается при использовании _configthreadlocale ().