Использование строгого определения типов в качестве более легкой альтернативы библиотеке параметров Boost?

Я часто использую утилиту Boost strong typedef для повышения безопасности моих программ. Например, написав такой код:

BOOST_STRONG_TYPEDEF(int, X)
BOOST_STRONG_TYPEDEF(int, Y)
BOOST_STRONG_TYPEDEF(int, Width)
BOOST_STRONG_TYPEDEF(int, Height)

struct Rect {
    Rect(X x, Y y, Width w, Height h);
};

// Usage:
Rect rect(X(10), Y(20), Width(800), Height(600));

Сильный typedef здесь улучшает как читаемость кода, так и безопасность. (Компилятор сообщит об ошибке, если аргументы предоставлены в неправильном порядке, чего не было бы, если бы все аргументы были int .)

Мои вопросы:

  • Это хорошо использовать BOOST_STRONG_TYPEDEF для этой цели? (Документация очень краткая .)
  • Есть ли важные причины предпочесть библиотеку параметров повышения?

17
задан StackedCrooked 9 February 2012 в 12:55
поделиться