ы функция могла вызываться с н

Автор admin Понедельник, 18 мая 2009 11:32

ы функция могла вызываться с независимыми типами аргументов: tempiate const T& min(const T& a. const U& b) { return (a < b) ? a : b: } Нередко такое решение оправданно, но в данном случае оно порождает проблемы. Функция min() возвращает значение, и невозможно сколь-нибудь обоснованно выбрать, какой тип из двух следует вернуть (Т или 11)? Если тип возвращаемого значения шаблона функции является независимым параметром шаблона, он всегда должен явно задаваться при вызове, поскольку его невозможно вычислить на основании аргументов. Примером служит приведенный далее шаблон fromString: 198 Глава 5 • Шаблоны //: C05:StringConv.h // Шаблоны функций для преобразования в строку и обратно #ifndef STRINGCONV_H #define STRINGCONV_H #include #include tempiate T fromString(const std::string& s) { std::istringstream is(s): T t: is » t: return t: } tempiate std::string toString(const T& t) { std::ostringstream s: s « t; return s.strO; } #endif // STRINGCONV_H III:- Эти шаблоны обеспечивают преобразование в std::string и обратно для любого типа, для кото


Комментарии закрыты.