Я часто использую утилиту 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
.)
Мои вопросы: