-rw-r--r-- | qmake/include/qtl.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/qmake/include/qtl.h b/qmake/include/qtl.h index 346cecc..25631fd 100644 --- a/qmake/include/qtl.h +++ b/qmake/include/qtl.h @@ -28,128 +28,129 @@ ** See http://www.trolltech.com/pricing.html or email sales@trolltech.com for ** information about Qt Commercial License Agreements. ** See http://www.trolltech.com/qpl/ for QPL licensing information. ** See http://www.trolltech.com/gpl/ for GPL licensing information. ** ** Contact info@trolltech.com if any conditions of this licensing are ** not clear to you. ** **********************************************************************/ #ifndef QTL_H #define QTL_H #ifndef QT_H #include "qglobal.h" #include "qtextstream.h" #include "qstring.h" #endif // QT_H #ifndef QT_NO_TEXTSTREAM template <class T> class QTextOStreamIterator { protected: QTextOStream& stream; QString separator; public: QTextOStreamIterator( QTextOStream& s) : stream( s ) {} QTextOStreamIterator( QTextOStream& s, const QString& sep ) : stream( s ), separator( sep ) {} QTextOStreamIterator<T>& operator= ( const T& x ) { stream << x; if ( !separator.isEmpty() ) stream << separator; return *this; } QTextOStreamIterator<T>& operator*() { return *this; } QTextOStreamIterator<T>& operator++() { return *this; } QTextOStreamIterator<T>& operator++(int) { return *this; } }; #endif //QT_NO_TEXTSTREAM template <class InputIterator, class OutputIterator> inline OutputIterator qCopy( InputIterator _begin, InputIterator _end, OutputIterator _dest ) { while( _begin != _end ) *_dest++ = *_begin++; return _dest; } template <class BiIterator, class BiOutputIterator> inline BiOutputIterator qCopyBackward( BiIterator _begin, BiIterator _end, BiOutputIterator _dest ) { while ( _begin != _end ) *--_dest = *--_end; return _dest; } template <class InputIterator1, class InputIterator2> inline bool qEqual( InputIterator1 first1, InputIterator1 last1, InputIterator2 first2 ) { + // ### compare using !(*first1 == *first2) in Qt 4.0 for ( ; first1 != last1; ++first1, ++first2 ) if ( *first1 != *first2 ) return FALSE; return TRUE; } template <class ForwardIterator, class T> inline void qFill( ForwardIterator first, ForwardIterator last, const T& val ) { for ( ; first != last; ++first ) *first = val; } #if 0 template <class BiIterator, class OutputIterator> inline OutputIterator qReverseCopy( BiIterator _begin, BiIterator _end, OutputIterator _dest ) { while ( _begin != _end ) { --_end; *_dest = *_end; ++_dest; } return _dest; } #endif template <class InputIterator, class T> inline InputIterator qFind( InputIterator first, InputIterator last, const T& val ) { while ( first != last && *first != val ) ++first; return first; } template <class InputIterator, class T, class Size> inline void qCount( InputIterator first, InputIterator last, const T& value, Size& n ) { for ( ; first != last; ++first ) if ( *first == value ) ++n; } template <class T> inline void qSwap( T& _value1, T& _value2 ) { T tmp = _value1; _value1 = _value2; _value2 = tmp; } template <class InputIterator> Q_INLINE_TEMPLATES void qBubbleSort( InputIterator b, InputIterator e ) { // Goto last element; InputIterator last = e; --last; // only one element or no elements ? if ( last == b ) return; |