Я часто использую мощную утилиту typedef Boost для повышения безопасности моих программ. Например, написав код следующим образом:
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 для этой цели? (Документация очень короткая.)
- Есть ли важные причины, чтобы предпочесть библиотеку параметров boost?