В общем, столкнулся с очень странной ошибкой. Есть такой файл —
logger.cpp. Есть макрос DEBUG_PRINT_1 —
common_definitions.hpp (хотя это не важно, ибо bad_cast выкидывается и в других случаях).
Везде в коде, где встречается:
DEBUG_PRINT_1("что-то");
вылетает exception std::bad_cast.
Самое странное, что это проявляется только на Mac OS X. Пробовал компилировать clang-ом и gcc разных версий, плюс на разных версиях Mac OS X 10.6.7 и 10.7.3 — везде одно и то же. А вот на Ubuntu и Windows всё работает нормально.
Что это может быть? Баг в Mac OS X? И как обойти это?