Я обновил свой блог с ссылкой на это обсуждение и адаптированной версией вашего кода, чтобы проиллюстрировать проблему.Мой первоначальный вывод о том, что «это, похоже, работает нормально», все еще остается в силе, поскольку в Gtk я еще не столкнулся, но проблема, очевидно, все еще присутствует и может проявиться в любое время.
Поскольку ваш код являетсяВ упрощенном примере, чтобы воспроизвести проблему, я не могу дать обходной путь для вашего конкретного случая, за исключением вещей, которые вы, вероятно, не захотите делать (смените компилятор, не используйте dynamic_cast и т. д.)
Из чегоЯ понимаю, что / vd2 и части стандартной библиотеки несовместимы.Вы не сможете сделать эту работу так, как вы хотите.Вам нужно будет отказаться от одного или другого.
edit : Вы отредактировали свой вопрос, предложив обернуть потоки в другой модуль перевода, скомпилированный без / vd2, и изменить свой код, чтобы использовать егообертка.Это даст вам два или более модулей перевода, скомпилированных с разными флагами, которые влияют на двоичный интерфейс.Вы пытаетесь обойти ошибки компилятора, используя методы реализации и хрупкие методы.Хотя это может сработать, я бы не стал доверять.