|
||||
|
Основные компонентыЭтот раздел содержит некоторые основные шаблонные функции и классы, которые используются в остальной части библиотеки. Операторы (Operators)Чтобы избежать избыточных определений operator!= из operator== и operator›, ‹=, ›= из operator‹, библиотека обеспечивает следующее: template ‹class Tl, class T2› inline bool operator!=(const T1& x, const T2& y) { return !(x == y); } template ‹class Tl, class T2› inline bool operator›(const T1& x, const T2& y) { return y ‹ x; } template ‹class Tl, class T2› inline bool operator‹=(const T1& x, const T2& y) { return !(y ‹ x); } template ‹class Tl, class T2› inline bool operator›=(const T1& x, const T2& y) { return !(x ‹ y); } Пара (Pair)Библиотека включает шаблоны для разнородных пар значений. template ‹class T1, class T2› struct pair { T1 first; T2 second; pair() {} pair(const T1& x, const T2& y): first(x), second(y) {} }; template ‹class T1, class T2› inline bool operator==(const pair‹Tl,T2›& x, const pair‹Tl,T2›& y) { return x.first == y.first && x.second == y.second; } template ‹class T1, class T2› inline bool operator‹(const pair‹Tl,T2›& x, const pair‹Tl,T2›& y) { return x.first ‹ y.first || (!(y.first ‹ x.first) && x.second ‹ y.second); } Библиотека обеспечивает соответствующую шаблонную функцию make_pair, чтобы упростить конструкцию пар. Вместо выражения, например: return pair‹int, double›(5, 3.1415926); // явные типы, можно написать return make_pair(5, 3.1415926); // типы выводятся. template ‹class Tl, class T2› inline pair‹Tl,T2› make_pair(const T1& x, const T2& y) { return pair‹Tl,T2›(x, y); } |
|
||
Главная | В избранное | Наш E-MAIL | Прислать материал | Нашёл ошибку | Наверх |
||||
|