Часто я читал о программном обеспечении, исключающем некоторые функции C ++ для обеспечения совместимости с плохими / старыми / экзотическими компиляторами C ++.
Этот - только последний, в который я попал: Box2D не использует пространства имен, потому что они должны поддерживать:
плохие компиляторы C ++, где поддержка пространства имен может быть пятнистой
Примером, который я могу привести, является Qt,который полагается на MOC, сильно ограничивает использование шаблонов и избегает шаблонов (ну, по крайней мере, это верно для Qt3 и предыдущих версий, Qt4 в основном делает это, чтобы соблюдать их соглашения).
Мне интересно, какие компиляторы такие плохие?
Есть множество компиляторов C ++ (я никогда не слышал о большинстве из них), но я надеюсь, что все они поддерживают наиболее распространенные(/ просто?) C ++ функции, такие как пространства имен (если они не мертвы);разве это не так?
Какие функции не поддерживаются?
Я легко могу ожидать отсутствие внешних шаблонов, возможно частичную специализацию шаблонов и аналогичные функции.В большинстве случаев даже RTTI или исключения, но я бы никогда не заподозрил пространства имен.