Те, кто интересуется Qt наверняка посещают главную страницу Нокии http://qt.nokia.com. Интересно сколько из них всматривались в иконку «Developers», вот в эту самую: http://qt.nokia.com/portal_css/Qt%20Theme%202010/developer_icon.png.
На этом клапте 2x3 см умудрились втулить:
1. Негативную условную компиляцию: #if !defined() вместо #ifdef
2. Сам макрос переключения платформ #if !defined(Q_OS_), что идёт врознь с идеями кроссплатформенного программирования на Qt.
3. Отсутствие const-квалификатора перед app:
QString app = QLatin1String( "a" );
#if !defined(Q_OS_...)
app += QLatin1String( "b" );
#else
app += QLatin1String( "c" );
#endif
Вместо:
const QString app = QString::fromLatin1( "a" ) +
#if !defined(Q_OS_...)
QLatin1String( "b" );
#else
QLatin1String( "c" );
#endif
Хочется взять этот самый молоток и размельчить сию могильнуюю плиту, а авторам выдать книжку Андрея Александреску «Стандарты программирования C++».
И да, кто-нибудь знает, что это на иконке за пуля и белые комочки?