Уже успел наткнуться на маразматический глюк в isspace.
У Страуструпа есть такой пример функции для пропускания whitespace в входном потоке: char c; while(f.get(c)) { if(!isspace(c)) { f.putback(c); break; } }
Так вот если эту хрень откомпилировать c debug версией MSVC библиотек, и подать на вход файл с русскими буквами, она аккуратно сваливается в assert. Потому что signed char для русских букв - это отрицательное значение, и преобразуется оно в отрицательное int, которое внутри isspace проверяется на попадание в диапазон 0x00-0xFF. Не попадает и сваливается в assert.
пока обошел аццкой комбинацией преобразований типов if(!isspace(((unsigned char)c)))