О препроцессоре

Submitted by 0xd34df00d on Thu, 02/12/2009 - 13:05

Первый раз за последние N лет заюзал препроцессор для чего-то, кроме include guard'а. А именно, потому что ленивый.

  1. namespace
  2. {
  3. void ShowHelper (QWidget *w, QFormLayout *lay, bool show)
  4. {
  5. w->setVisible (show);
  6. lay->labelForField (w)->setVisible (show);
  7. }
  8. };
  9.  
  10. #define SH(a,b) ShowHelper(Ui_.Label##a, \
  11. layout, \
  12. XmlSettingsManager::Instance ()->property ("Active##b##").toBool ())

И далее код, отвечающий за сокрытие некоторых полей в панели информации о торрент-файле:
  1. QFormLayout *layout = qobject_cast<QFormLayout*> (TabWidget_->layout ());
  2.  
  3. SH (OverheadDownloadRate_, OverheadSpeeds);
  4. SH (OverheadUploadRate_, OverheadSpeeds);
  5. SH (TrackerDownloadRate_, TrackerSpeeds);
  6. ...

Также, этот код демонстрирует, что GeSHI иногда сосет.