Go to:
Gentoo Home
Documentation
Forums
Lists
Bugs
Planet
Store
Wiki
Get Gentoo!
Gentoo's Bugzilla – Attachment 72119 Details for
Bug 111488
kdeedu-3.4.1-r1 internal compiler error continues after 48 hours of intensive hardware tests
Home
|
New
–
[Ex]
|
Browse
|
Search
|
Privacy Policy
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
Preprocessed source for kdeedu-3.4.1-r1 attached as requested by portage
ccn7xZAr.out (text/plain), 983.24 KB, created by
chris moore
on 2005-11-04 09:01:52 UTC
(
hide
)
Description:
Preprocessed source for kdeedu-3.4.1-r1 attached as requested by portage
Filename:
MIME Type:
Creator:
chris moore
Created:
2005-11-04 09:01:52 UTC
Size:
983.24 KB
patch
obsolete
>// /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/cc1plus -quiet -I. -I. -I../.. -I/usr/kde/3.4/include -I/usr/qt/3/include -I. -D__GNUC__=3 -D__GNUC_MINOR__=3 -D__GNUC_PATCHLEVEL__=6 -D_GNU_SOURCE -DHAVE_CONFIG_H -DQT_THREAD_SUPPORT -D_REENTRANT -D_XOPEN_SOURCE=500 -D_BSD_SOURCE -DNDEBUG -DNO_DEBUG -DQT_CLEAN_NAMESPACE -DQT_NO_ASCII_CAST -DQT_NO_STL -DQT_NO_COMPAT -DQT_NO_TRANSLATION -DPIC drgeo-filter.cc -D__GNUG__=3 -quiet -dumpbase drgeo-filter.cc -march=athlon-xp -ansi -auxbase-strip .libs/drgeo-filter.o -O2 -O3 -Wnon-virtual-dtor -Wno-long-long -Wundef -Wcast-align -Wconversion -Wchar-subscripts -Wall -W -Wpointer-arith -Wwrite-strings -Wformat-security -Wmissing-format-attribute -ansi -fomit-frame-pointer -fno-exceptions -fno-check-new -fno-common -fPIC -o - -frandom-seed=0 ># 1 "drgeo-filter.cc" ># 1 "<built-in>" ># 1 "<command line>" ># 1 "drgeo-filter.cc" ># 19 "drgeo-filter.cc" ># 1 "drgeo-filter.h" 1 ># 22 "drgeo-filter.h" ># 1 "filter.h" 1 ># 25 "filter.h" ># 1 "/usr/qt/3/include/qstring.h" 1 ># 42 "/usr/qt/3/include/qstring.h" ># 1 "/usr/qt/3/include/qcstring.h" 1 ># 43 "/usr/qt/3/include/qcstring.h" ># 1 "/usr/qt/3/include/qmemarray.h" 1 ># 42 "/usr/qt/3/include/qmemarray.h" ># 1 "/usr/qt/3/include/qgarray.h" 1 ># 42 "/usr/qt/3/include/qgarray.h" ># 1 "/usr/qt/3/include/qshared.h" 1 ># 42 "/usr/qt/3/include/qshared.h" ># 1 "/usr/qt/3/include/qglobal.h" 1 ># 609 "/usr/qt/3/include/qglobal.h" >typedef unsigned char uchar; >typedef unsigned short ushort; >typedef unsigned uint; >typedef unsigned long ulong; >typedef char *pchar; >typedef uchar *puchar; >typedef const char *pcchar; > > > > > > > >const bool FALSE = 0; >const bool TRUE = !0; ># 673 "/usr/qt/3/include/qglobal.h" >inline int qRound( double d ) >{ > return d >= 0.0 ? int(d + 0.5) : int( d - ((int)d-1) + 0.5 ) + ((int)d-1); >} ># 693 "/usr/qt/3/include/qglobal.h" >typedef signed char Q_INT8; >typedef unsigned char Q_UINT8; >typedef short Q_INT16; >typedef unsigned short Q_UINT16; >typedef int Q_INT32; >typedef unsigned int Q_UINT32; > > > > >typedef long Q_LONG; >typedef unsigned long Q_ULONG; ># 714 "/usr/qt/3/include/qglobal.h" >typedef long long Q_INT64; >typedef unsigned long long Q_UINT64; > >typedef Q_INT64 Q_LLONG; >typedef Q_UINT64 Q_ULLONG; > > > > > > > > typedef Q_ULONG QtOffset; > > > > > > > >class QDataStream; ># 758 "/usr/qt/3/include/qglobal.h" ># 1 "/usr/qt/3/include/qconfig.h" 1 ># 759 "/usr/qt/3/include/qglobal.h" 2 ># 768 "/usr/qt/3/include/qglobal.h" ># 1 "/usr/qt/3/include/qmodules.h" 1 ># 769 "/usr/qt/3/include/qglobal.h" 2 ># 824 "/usr/qt/3/include/qglobal.h" ># 1 "/usr/qt/3/include/qfeatures.h" 1 ># 825 "/usr/qt/3/include/qglobal.h" 2 ># 891 "/usr/qt/3/include/qglobal.h" > const char *qVersion(); > bool qSysInfo( int *wordSize, bool *bigEndian ); > bool qSharedBuild(); ># 952 "/usr/qt/3/include/qglobal.h" > void qDebug( const char *, ... ) > > __attribute__ ((format (printf, 1, 2))) > >; > > void qWarning( const char *, ... ) > > __attribute__ ((format (printf, 1, 2))) > >; > > void qFatal( const char *, ... ) > > __attribute__ ((format (printf, 1, 2))) > >; > > void qSystemWarning( const char *, int code = -1 ); ># 1016 "/usr/qt/3/include/qglobal.h" > bool qt_check_pointer( bool c, const char *, int ); ># 1030 "/usr/qt/3/include/qglobal.h" >enum QtMsgType { QtDebugMsg, QtWarningMsg, QtFatalMsg }; > >typedef void (*QtMsgHandler)(QtMsgType, const char *); > QtMsgHandler qInstallMsgHandler( QtMsgHandler ); > > > > > > void qSuppressObsoleteWarnings( bool = TRUE ); > > void qObsolete( const char *obj, const char *oldfunc, > const char *newfunc ); > void qObsolete( const char *obj, const char *oldfunc ); > void qObsolete( const char *message ); > > > > > > > const char *qInstallPath(); > const char *qInstallPathDocs(); > const char *qInstallPathHeaders(); > const char *qInstallPathLibs(); > const char *qInstallPathBins(); > const char *qInstallPathPlugins(); > const char *qInstallPathData(); > const char *qInstallPathTranslations(); > const char *qInstallPathSysconf(); ># 43 "/usr/qt/3/include/qshared.h" 2 > > > >struct QShared >{ > QShared() : count( 1 ) { } > void ref() { count++; } > bool deref() { return !--count; } > uint count; >}; ># 43 "/usr/qt/3/include/qgarray.h" 2 > > > >class QGArray >{ >friend class QBuffer; >public: > > > struct array_data : public QShared { > array_data():data(0),len(0) > > > > {} > char *data; > uint len; > > > > }; > QGArray(); > enum Optimization { MemOptim, SpeedOptim }; >protected: > QGArray( int, int ); > QGArray( int size ); > QGArray( const QGArray &a ); > virtual ~QGArray(); > > QGArray &operator=( const QGArray &a ) { return assign( a ); } > > virtual void detach() { duplicate(*this); } > > > char *data() const { return shd->data; } > uint nrefs() const { return shd->count; } > uint size() const { return shd->len; } > bool isEqual( const QGArray &a ) const; > > bool resize( uint newsize, Optimization optim ); > bool resize( uint newsize ); > > bool fill( const char *d, int len, uint sz ); > > QGArray &assign( const QGArray &a ); > QGArray &assign( const char *d, uint len ); > QGArray &duplicate( const QGArray &a ); > QGArray &duplicate( const char *d, uint len ); > void store( const char *d, uint len ); > > array_data *sharedBlock() const { return shd; } > void setSharedBlock( array_data *p ) { shd=(array_data*)p; } > > QGArray &setRawData( const char *d, uint len ); > void resetRawData( const char *d, uint len ); > > int find( const char *d, uint index, uint sz ) const; > int contains( const char *d, uint sz ) const; > > void sort( uint sz ); > int bsearch( const char *d, uint sz ) const; > > char *at( uint index ) const; > > bool setExpand( uint index, const char *d, uint sz ); > >protected: > virtual array_data *newData(); > virtual void deleteData( array_data *p ); > >private: > static void msg_index( uint ); > array_data *shd; >}; > > >inline char *QGArray::at( uint index ) const >{ > > if ( index >= size() ) { > msg_index( index ); > index = 0; > } > > return &shd->data[index]; >} ># 43 "/usr/qt/3/include/qmemarray.h" 2 > > > >template<class type> >class QMemArray : public QGArray >{ >public: > typedef type* Iterator; > typedef const type* ConstIterator; > typedef type ValueType; > >protected: > QMemArray( int, int ) : QGArray( 0, 0 ) {} > >public: > QMemArray() {} > QMemArray( int size ) : QGArray(size*sizeof(type)) {} > QMemArray( const QMemArray<type> &a ) : QGArray(a) {} > ~QMemArray() {} > QMemArray<type> &operator=(const QMemArray<type> &a) > { return (QMemArray<type>&)QGArray::assign(a); } > type *data() const { return (type *)QGArray::data(); } > uint nrefs() const { return QGArray::nrefs(); } > uint size() const { return QGArray::size()/sizeof(type); } > uint count() const { return size(); } > bool isEmpty() const { return QGArray::size() == 0; } > bool isNull() const { return QGArray::data() == 0; } > bool resize( uint size ) { return QGArray::resize(size*sizeof(type)); } > bool resize( uint size, Optimization optim ) { return QGArray::resize(size*sizeof(type), optim); } > bool truncate( uint pos ) { return QGArray::resize(pos*sizeof(type)); } > bool fill( const type &d, int size = -1 ) > { return QGArray::fill((char*)&d,size,sizeof(type) ); } > void detach() { QGArray::detach(); } > QMemArray<type> copy() const > { QMemArray<type> tmp; return tmp.duplicate(*this); } > QMemArray<type>& assign( const QMemArray<type>& a ) > { return (QMemArray<type>&)QGArray::assign(a); } > QMemArray<type>& assign( const type *a, uint n ) > { return (QMemArray<type>&)QGArray::assign((char*)a,n*sizeof(type)); } > QMemArray<type>& duplicate( const QMemArray<type>& a ) > { return (QMemArray<type>&)QGArray::duplicate(a); } > QMemArray<type>& duplicate( const type *a, uint n ) > { return (QMemArray<type>&)QGArray::duplicate((char*)a,n*sizeof(type)); } > QMemArray<type>& setRawData( const type *a, uint n ) > { return (QMemArray<type>&)QGArray::setRawData((char*)a, > n*sizeof(type)); } > void resetRawData( const type *a, uint n ) > { QGArray::resetRawData((char*)a,n*sizeof(type)); } > int find( const type &d, uint i=0 ) const > { return QGArray::find((char*)&d,i,sizeof(type)); } > int contains( const type &d ) const > { return QGArray::contains((char*)&d,sizeof(type)); } > void sort() { QGArray::sort(sizeof(type)); } > int bsearch( const type &d ) const > { return QGArray::bsearch((const char*)&d,sizeof(type)); } > > type& operator[]( int i ) const > { return (type &)(*(type *)QGArray::at(i*sizeof(type))); } > type& at( uint i ) const > { return (type &)(*(type *)QGArray::at(i*sizeof(type))); } > operator const type*() const { return (const type *)QGArray::data(); } > bool operator==( const QMemArray<type> &a ) const { return isEqual(a); } > bool operator!=( const QMemArray<type> &a ) const { return !isEqual(a); } > Iterator begin() { return data(); } > Iterator end() { return data() + size(); } > ConstIterator begin() const { return data(); } > ConstIterator end() const { return data() + size(); } >}; > > > > > > ># 1 "/usr/qt/3/include/qwinexport.h" 1 ># 118 "/usr/qt/3/include/qmemarray.h" 2 ># 44 "/usr/qt/3/include/qcstring.h" 2 > > ># 1 "/usr/include/string.h" 1 3 4 ># 26 "/usr/include/string.h" 3 4 ># 1 "/usr/include/features.h" 1 3 4 ># 309 "/usr/include/features.h" 3 4 ># 1 "/usr/include/sys/cdefs.h" 1 3 4 ># 310 "/usr/include/features.h" 2 3 4 ># 332 "/usr/include/features.h" 3 4 ># 1 "/usr/include/gnu/stubs.h" 1 3 4 ># 333 "/usr/include/features.h" 2 3 4 ># 27 "/usr/include/string.h" 2 3 4 > >extern "C" { > > > > ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/stddef.h" 1 3 4 ># 213 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/stddef.h" 3 4 >typedef unsigned int size_t; ># 34 "/usr/include/string.h" 2 3 4 > > > > >extern void *memcpy (void *__restrict __dest, > __const void *__restrict __src, size_t __n) > throw () __attribute__ ((__nonnull__ (1, 2))); > > >extern void *memmove (void *__dest, __const void *__src, size_t __n) > throw () __attribute__ ((__nonnull__ (1, 2))); > > > > > > >extern void *memccpy (void *__restrict __dest, __const void *__restrict __src, > int __c, size_t __n) > throw () __attribute__ ((__nonnull__ (1, 2))); > > > > > >extern void *memset (void *__s, int __c, size_t __n) throw () __attribute__ ((__nonnull__ (1))); > > >extern int memcmp (__const void *__s1, __const void *__s2, size_t __n) > throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); > > >extern void *memchr (__const void *__s, int __c, size_t __n) > throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); > > > > > >extern void *rawmemchr (__const void *__s, int __c) > throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); > > >extern void *memrchr (__const void *__s, int __c, size_t __n) > throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); > > > > > >extern char *strcpy (char *__restrict __dest, __const char *__restrict __src) > throw () __attribute__ ((__nonnull__ (1, 2))); > >extern char *strncpy (char *__restrict __dest, > __const char *__restrict __src, size_t __n) > throw () __attribute__ ((__nonnull__ (1, 2))); > > >extern char *strcat (char *__restrict __dest, __const char *__restrict __src) > throw () __attribute__ ((__nonnull__ (1, 2))); > >extern char *strncat (char *__restrict __dest, __const char *__restrict __src, > size_t __n) throw () __attribute__ ((__nonnull__ (1, 2))); > > >extern int strcmp (__const char *__s1, __const char *__s2) > throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); > >extern int strncmp (__const char *__s1, __const char *__s2, size_t __n) > throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); > > >extern int strcoll (__const char *__s1, __const char *__s2) > throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); > >extern size_t strxfrm (char *__restrict __dest, > __const char *__restrict __src, size_t __n) > throw () __attribute__ ((__nonnull__ (2))); > > > > > > ># 1 "/usr/include/xlocale.h" 1 3 4 ># 28 "/usr/include/xlocale.h" 3 4 >typedef struct __locale_struct >{ > > struct locale_data *__locales[13]; > > > const unsigned short int *__ctype_b; > const int *__ctype_tolower; > const int *__ctype_toupper; > > > const char *__names[13]; >} *__locale_t; ># 119 "/usr/include/string.h" 2 3 4 > > >extern int strcoll_l (__const char *__s1, __const char *__s2, __locale_t __l) > throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 3))); > >extern size_t strxfrm_l (char *__dest, __const char *__src, size_t __n, > __locale_t __l) throw () __attribute__ ((__nonnull__ (2, 4))); > > > > >extern char *strdup (__const char *__s) > throw () __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1))); > > > > > > >extern char *strndup (__const char *__string, size_t __n) > throw () __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1))); ># 165 "/usr/include/string.h" 3 4 > > >extern char *strchr (__const char *__s, int __c) > throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); > >extern char *strrchr (__const char *__s, int __c) > throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); > > > > > >extern char *strchrnul (__const char *__s, int __c) > throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); > > > > > >extern size_t strcspn (__const char *__s, __const char *__reject) > throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); > > >extern size_t strspn (__const char *__s, __const char *__accept) > throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); > >extern char *strpbrk (__const char *__s, __const char *__accept) > throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); > >extern char *strstr (__const char *__haystack, __const char *__needle) > throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); > > > >extern char *strtok (char *__restrict __s, __const char *__restrict __delim) > throw () __attribute__ ((__nonnull__ (2))); > > > > >extern char *__strtok_r (char *__restrict __s, > __const char *__restrict __delim, > char **__restrict __save_ptr) > throw () __attribute__ ((__nonnull__ (2, 3))); > >extern char *strtok_r (char *__restrict __s, __const char *__restrict __delim, > char **__restrict __save_ptr) > throw () __attribute__ ((__nonnull__ (2, 3))); > > > > >extern char *strcasestr (__const char *__haystack, __const char *__needle) > throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); > > > > > > >extern void *memmem (__const void *__haystack, size_t __haystacklen, > __const void *__needle, size_t __needlelen) > throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 3))); > > > >extern void *__mempcpy (void *__restrict __dest, > __const void *__restrict __src, size_t __n) > throw () __attribute__ ((__nonnull__ (1, 2))); >extern void *mempcpy (void *__restrict __dest, > __const void *__restrict __src, size_t __n) > throw () __attribute__ ((__nonnull__ (1, 2))); > > > > > >extern size_t strlen (__const char *__s) > throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); > > > > > >extern size_t strnlen (__const char *__string, size_t __maxlen) > throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); > > > > > >extern char *strerror (int __errnum) throw (); > ># 281 "/usr/include/string.h" 3 4 >extern char *strerror_r (int __errnum, char *__buf, size_t __buflen) > throw () __attribute__ ((__nonnull__ (2))); > > > > > >extern void __bzero (void *__s, size_t __n) throw () __attribute__ ((__nonnull__ (1))); > > > >extern void bcopy (__const void *__src, void *__dest, size_t __n) > throw () __attribute__ ((__nonnull__ (1, 2))); > > >extern void bzero (void *__s, size_t __n) throw () __attribute__ ((__nonnull__ (1))); > > >extern int bcmp (__const void *__s1, __const void *__s2, size_t __n) > throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); > > >extern char *index (__const char *__s, int __c) > throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); > > >extern char *rindex (__const char *__s, int __c) > throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); > > > >extern int ffs (int __i) throw () __attribute__ ((__const__)); > > > > >extern int ffsl (long int __l) throw () __attribute__ ((__const__)); > >__extension__ extern int ffsll (long long int __ll) > throw () __attribute__ ((__const__)); > > > > >extern int strcasecmp (__const char *__s1, __const char *__s2) > throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); > > >extern int strncasecmp (__const char *__s1, __const char *__s2, size_t __n) > throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); > > > > > >extern int strcasecmp_l (__const char *__s1, __const char *__s2, > __locale_t __loc) > throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 3))); > >extern int strncasecmp_l (__const char *__s1, __const char *__s2, > size_t __n, __locale_t __loc) > throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 4))); > > > > > >extern char *strsep (char **__restrict __stringp, > __const char *__restrict __delim) > throw () __attribute__ ((__nonnull__ (1, 2))); > > > > >extern int strverscmp (__const char *__s1, __const char *__s2) > throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); > > >extern char *strsignal (int __sig) throw (); > > >extern char *__stpcpy (char *__restrict __dest, __const char *__restrict __src) > throw () __attribute__ ((__nonnull__ (1, 2))); >extern char *stpcpy (char *__restrict __dest, __const char *__restrict __src) > throw () __attribute__ ((__nonnull__ (1, 2))); > > > >extern char *__stpncpy (char *__restrict __dest, > __const char *__restrict __src, size_t __n) > throw () __attribute__ ((__nonnull__ (1, 2))); >extern char *stpncpy (char *__restrict __dest, > __const char *__restrict __src, size_t __n) > throw () __attribute__ ((__nonnull__ (1, 2))); > > >extern char *strfry (char *__string) throw () __attribute__ ((__nonnull__ (1))); > > >extern void *memfrob (void *__s, size_t __n) throw () __attribute__ ((__nonnull__ (1))); > > > > > > >extern char *basename (__const char *__filename) throw () __attribute__ ((__nonnull__ (1))); ># 426 "/usr/include/string.h" 3 4 >} ># 47 "/usr/qt/3/include/qcstring.h" 2 > > > > > > > void *qmemmove( void *dst, const void *src, uint len ); > > char *qstrdup( const char * ); > > inline uint qstrlen( const char *str ) >{ return str ? (uint)strlen(str) : 0u; } > > inline char *qstrcpy( char *dst, const char *src ) >{ return src ? strcpy(dst, src) : 0; } > > char *qstrncpy( char *dst, const char *src, uint len ); > > inline int qstrcmp( const char *str1, const char *str2 ) >{ > return ( str1 && str2 ) ? strcmp( str1, str2 ) > : ( str1 ? 1 : ( str2 ? -1 : 0 ) ); >} > > inline int qstrncmp( const char *str1, const char *str2, uint len ) >{ > return ( str1 && str2 ) ? strncmp( str1, str2, len ) > : ( str1 ? 1 : ( str2 ? -1 : 0 ) ); >} > > int qstricmp( const char *, const char * ); > > int qstrnicmp( const char *, const char *, uint len ); ># 98 "/usr/qt/3/include/qcstring.h" > Q_UINT16 qChecksum( const char *s, uint len ); ># 116 "/usr/qt/3/include/qcstring.h" >typedef QMemArray<char> QByteArray; > > > > QByteArray qCompress( const uchar* data, int nbytes ); > QByteArray qUncompress( const uchar* data, int nbytes ); > inline QByteArray qCompress( const QByteArray& data) >{ return qCompress( (const uchar*)data.data(), data.size() ); } > inline QByteArray qUncompress( const QByteArray& data ) >{ return qUncompress( (const uchar*)data.data(), data.size() ); } > > > > > > > QDataStream &operator<<( QDataStream &, const QByteArray & ); > QDataStream &operator>>( QDataStream &, QByteArray & ); > > > > > > >class QRegExp; > >class QCString : public QByteArray >{ >public: > QCString() {} > QCString( int size ); > QCString( const QCString &s ) : QByteArray( s ) {} > QCString( const char *str ); > QCString( const char *str, uint maxlen ); > ~QCString(); > > QCString &operator=( const QCString &s ); > QCString &operator=( const char *str ); > > bool isNull() const; > bool isEmpty() const; > uint length() const; > bool resize( uint newlen ); > bool truncate( uint pos ); > bool fill( char c, int len = -1 ); > > QCString copy() const; > > QCString &sprintf( const char *format, ... ); > > int find( char c, int index=0, bool cs=TRUE ) const; > int find( const char *str, int index=0, bool cs=TRUE ) const; > > int find( const QRegExp &, int index=0 ) const; > > int findRev( char c, int index=-1, bool cs=TRUE) const; > int findRev( const char *str, int index=-1, bool cs=TRUE) const; > > int findRev( const QRegExp &, int index=-1 ) const; > > int contains( char c, bool cs=TRUE ) const; > int contains( const char *str, bool cs=TRUE ) const; > > int contains( const QRegExp & ) const; > > QCString left( uint len ) const; > QCString right( uint len ) const; > QCString mid( uint index, uint len=0xffffffff) const; > > QCString leftJustify( uint width, char fill=' ', bool trunc=FALSE)const; > QCString rightJustify( uint width, char fill=' ',bool trunc=FALSE)const; > > QCString lower() const; > QCString upper() const; > > QCString stripWhiteSpace() const; > QCString simplifyWhiteSpace() const; > > QCString &insert( uint index, const char * ); > QCString &insert( uint index, char ); > QCString &append( const char * ); > QCString &prepend( const char * ); > QCString &remove( uint index, uint len ); > QCString &replace( uint index, uint len, const char * ); > > QCString &replace( const QRegExp &, const char * ); > > QCString &replace( char c, const char *after ); > QCString &replace( const char *, const char * ); > QCString &replace( char, char ); > > short toShort( bool *ok=0 ) const; > ushort toUShort( bool *ok=0 ) const; > int toInt( bool *ok=0 ) const; > uint toUInt( bool *ok=0 ) const; > long toLong( bool *ok=0 ) const; > ulong toULong( bool *ok=0 ) const; > float toFloat( bool *ok=0 ) const; > double toDouble( bool *ok=0 ) const; > > QCString &setStr( const char *s ); > QCString &setNum( short ); > QCString &setNum( ushort ); > QCString &setNum( int ); > QCString &setNum( uint ); > QCString &setNum( long ); > QCString &setNum( ulong ); > QCString &setNum( float, char f='g', int prec=6 ); > QCString &setNum( double, char f='g', int prec=6 ); > > bool setExpand( uint index, char c ); > > operator const char *() const; > QCString &operator+=( const char *str ); > QCString &operator+=( char c ); >private: > int find( const char *str, int index, bool cs, uint l ) const; >}; > > > > > > > QDataStream &operator<<( QDataStream &, const QCString & ); > QDataStream &operator>>( QDataStream &, QCString & ); > > > > > > >inline QCString &QCString::operator=( const QCString &s ) >{ return (QCString&)assign( s ); } > >inline QCString &QCString::operator=( const char *str ) >{ return (QCString&)duplicate( str, qstrlen(str)+1 ); } > >inline bool QCString::isNull() const >{ return data() == 0; } > >inline bool QCString::isEmpty() const >{ return data() == 0 || *data() == '\0'; } > >inline uint QCString::length() const >{ return qstrlen( data() ); } > >inline bool QCString::truncate( uint pos ) >{ return resize(pos+1); } > >inline QCString QCString::copy() const >{ return QCString( data() ); } > >inline QCString &QCString::prepend( const char *s ) >{ return insert(0,s); } > >inline QCString &QCString::append( const char *s ) >{ return operator+=(s); } > >inline QCString &QCString::setNum( short n ) >{ return setNum((long)n); } > >inline QCString &QCString::setNum( ushort n ) >{ return setNum((ulong)n); } > >inline QCString &QCString::setNum( int n ) >{ return setNum((long)n); } > >inline QCString &QCString::setNum( uint n ) >{ return setNum((ulong)n); } > >inline QCString &QCString::setNum( float n, char f, int prec ) >{ return setNum((double)n,f,prec); } > >inline QCString::operator const char *() const >{ return (const char *)data(); } > > > > > > > inline bool operator==( const QCString &s1, const QCString &s2 ) >{ return qstrcmp( s1.data(), s2.data() ) == 0; } > > inline bool operator==( const QCString &s1, const char *s2 ) >{ return qstrcmp( s1.data(), s2 ) == 0; } > > inline bool operator==( const char *s1, const QCString &s2 ) >{ return qstrcmp( s1, s2.data() ) == 0; } > > inline bool operator!=( const QCString &s1, const QCString &s2 ) >{ return qstrcmp( s1.data(), s2.data() ) != 0; } > > inline bool operator!=( const QCString &s1, const char *s2 ) >{ return qstrcmp( s1.data(), s2 ) != 0; } > > inline bool operator!=( const char *s1, const QCString &s2 ) >{ return qstrcmp( s1, s2.data() ) != 0; } > > inline bool operator<( const QCString &s1, const QCString& s2 ) >{ return qstrcmp( s1.data(), s2.data() ) < 0; } > > inline bool operator<( const QCString &s1, const char *s2 ) >{ return qstrcmp( s1.data(), s2 ) < 0; } > > inline bool operator<( const char *s1, const QCString &s2 ) >{ return qstrcmp( s1, s2.data() ) < 0; } > > inline bool operator<=( const QCString &s1, const QCString &s2 ) >{ return qstrcmp( s1.data(), s2.data() ) <= 0; } > > inline bool operator<=( const QCString &s1, const char *s2 ) >{ return qstrcmp( s1.data(), s2 ) <= 0; } > > inline bool operator<=( const char *s1, const QCString &s2 ) >{ return qstrcmp( s1, s2.data() ) <= 0; } > > inline bool operator>( const QCString &s1, const QCString &s2 ) >{ return qstrcmp( s1.data(), s2.data() ) > 0; } > > inline bool operator>( const QCString &s1, const char *s2 ) >{ return qstrcmp( s1.data(), s2 ) > 0; } > > inline bool operator>( const char *s1, const QCString &s2 ) >{ return qstrcmp( s1, s2.data() ) > 0; } > > inline bool operator>=( const QCString &s1, const QCString& s2 ) >{ return qstrcmp( s1.data(), s2.data() ) >= 0; } > > inline bool operator>=( const QCString &s1, const char *s2 ) >{ return qstrcmp( s1.data(), s2 ) >= 0; } > > inline bool operator>=( const char *s1, const QCString &s2 ) >{ return qstrcmp( s1, s2.data() ) >= 0; } > > inline const QCString operator+( const QCString &s1, > const QCString &s2 ) >{ > QCString tmp( s1.data() ); > tmp += s2; > return tmp; >} > > inline const QCString operator+( const QCString &s1, const char *s2 ) >{ > QCString tmp( s1.data() ); > tmp += s2; > return tmp; >} > > inline const QCString operator+( const char *s1, const QCString &s2 ) >{ > QCString tmp( s1 ); > tmp += s2; > return tmp; >} > > inline const QCString operator+( const QCString &s1, char c2 ) >{ > QCString tmp( s1.data() ); > tmp += c2; > return tmp; >} > > inline const QCString operator+( char c1, const QCString &s2 ) >{ > QCString tmp; > tmp += c1; > tmp += s2; > return tmp; >} ># 1 "/usr/qt/3/include/qwinexport.h" 1 ># 389 "/usr/qt/3/include/qcstring.h" 2 ># 43 "/usr/qt/3/include/qstring.h" 2 > > > ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/limits.h" 1 3 4 ># 11 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/limits.h" 3 4 ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/syslimits.h" 1 3 4 > > > > > > ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/limits.h" 1 3 4 ># 122 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/limits.h" 3 4 ># 1 "/usr/include/limits.h" 1 3 4 ># 144 "/usr/include/limits.h" 3 4 ># 1 "/usr/include/bits/posix1_lim.h" 1 3 4 ># 153 "/usr/include/bits/posix1_lim.h" 3 4 ># 1 "/usr/include/bits/local_lim.h" 1 3 4 ># 36 "/usr/include/bits/local_lim.h" 3 4 ># 1 "/usr/include/linux/limits.h" 1 3 4 ># 37 "/usr/include/bits/local_lim.h" 2 3 4 ># 154 "/usr/include/bits/posix1_lim.h" 2 3 4 ># 145 "/usr/include/limits.h" 2 3 4 > > > ># 1 "/usr/include/bits/posix2_lim.h" 1 3 4 ># 149 "/usr/include/limits.h" 2 3 4 > > > ># 1 "/usr/include/bits/xopen_lim.h" 1 3 4 ># 34 "/usr/include/bits/xopen_lim.h" 3 4 ># 1 "/usr/include/bits/stdio_lim.h" 1 3 4 ># 35 "/usr/include/bits/xopen_lim.h" 2 3 4 ># 153 "/usr/include/limits.h" 2 3 4 ># 123 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/limits.h" 2 3 4 ># 8 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/syslimits.h" 2 3 4 ># 12 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/limits.h" 2 3 4 ># 47 "/usr/qt/3/include/qstring.h" 2 ># 68 "/usr/qt/3/include/qstring.h" >class QRegExp; >class QString; >class QCharRef; >template <class T> class QDeepCopy; > >class QChar { >public: > QChar(); > QChar( char c ); > QChar( uchar c ); > QChar( uchar c, uchar r ); > QChar( const QChar& c ); > QChar( ushort rc ); > QChar( short rc ); > QChar( uint rc ); > QChar( int rc ); > > static const QChar null; > static const QChar replacement; > static const QChar byteOrderMark; > static const QChar byteOrderSwapped; > static const QChar nbsp; > > > > enum Category > { > NoCategory, > > Mark_NonSpacing, > Mark_SpacingCombining, > Mark_Enclosing, > > Number_DecimalDigit, > Number_Letter, > Number_Other, > > Separator_Space, > Separator_Line, > Separator_Paragraph, > > Other_Control, > Other_Format, > Other_Surrogate, > Other_PrivateUse, > Other_NotAssigned, > > Letter_Uppercase, > Letter_Lowercase, > Letter_Titlecase, > Letter_Modifier, > Letter_Other, > > Punctuation_Connector, > Punctuation_Dash, > Punctuation_Dask = Punctuation_Dash, > Punctuation_Open, > Punctuation_Close, > Punctuation_InitialQuote, > Punctuation_FinalQuote, > Punctuation_Other, > > Symbol_Math, > Symbol_Currency, > Symbol_Modifier, > Symbol_Other > }; > > enum Direction > { > DirL, DirR, DirEN, DirES, DirET, DirAN, DirCS, DirB, DirS, DirWS, DirON, > DirLRE, DirLRO, DirAL, DirRLE, DirRLO, DirPDF, DirNSM, DirBN > }; > > enum Decomposition > { > Single, Canonical, Font, NoBreak, Initial, Medial, > Final, Isolated, Circle, Super, Sub, Vertical, > Wide, Narrow, Small, Square, Compat, Fraction > }; > > enum Joining > { > OtherJoining, Dual, Right, Center > }; > > enum CombiningClass > { > Combining_BelowLeftAttached = 200, > Combining_BelowAttached = 202, > Combining_BelowRightAttached = 204, > Combining_LeftAttached = 208, > Combining_RightAttached = 210, > Combining_AboveLeftAttached = 212, > Combining_AboveAttached = 214, > Combining_AboveRightAttached = 216, > > Combining_BelowLeft = 218, > Combining_Below = 220, > Combining_BelowRight = 222, > Combining_Left = 224, > Combining_Right = 226, > Combining_AboveLeft = 228, > Combining_Above = 230, > Combining_AboveRight = 232, > > Combining_DoubleBelow = 233, > Combining_DoubleAbove = 234, > Combining_IotaSubscript = 240 > }; > > > > int digitValue() const; > QChar lower() const; > QChar upper() const; > > Category category() const; > Direction direction() const; > Joining joining() const; > bool mirrored() const; > QChar mirroredChar() const; > const QString &decomposition() const; > Decomposition decompositionTag() const; > unsigned char combiningClass() const; > > char latin1() const { return ucs > 0xff ? 0 : (char) ucs; } > ushort unicode() const { return ucs; } > > > > ushort &unicode() { return ucs; } > > > > operator char() const { return latin1(); } > > > bool isNull() const { return unicode()==0; } > bool isPrint() const; > bool isPunct() const; > bool isSpace() const; > bool isMark() const; > bool isLetter() const; > bool isNumber() const; > bool isLetterOrNumber() const; > bool isDigit() const; > bool isSymbol() const; > > uchar cell() const { return ((uchar) ucs & 0xff); } > uchar row() const { return ((uchar) (ucs>>8)&0xff); } > void setCell( uchar cell ) { ucs = (ucs & 0xff00) + cell; } > void setRow( uchar row ) { ucs = (((ushort) row)<<8) + (ucs&0xff); } > > static bool networkOrdered() { > int wordSize; > bool bigEndian = FALSE; > qSysInfo( &wordSize, &bigEndian ); > return bigEndian; > } > > friend inline bool operator==( char ch, QChar c ); > friend inline bool operator==( QChar c, char ch ); > friend inline bool operator==( QChar c1, QChar c2 ); > friend inline bool operator!=( QChar c1, QChar c2 ); > friend inline bool operator!=( char ch, QChar c ); > friend inline bool operator!=( QChar c, char ch ); > friend inline bool operator<=( QChar c, char ch ); > friend inline bool operator<=( char ch, QChar c ); > friend inline bool operator<=( QChar c1, QChar c2 ); > >private: > ushort ucs; > > > >} ; > >inline QChar::QChar() : ucs( 0 ) > > > >{ >} >inline QChar::QChar( char c ) : ucs( (uchar)c ) > > > >{ >} >inline QChar::QChar( uchar c ) : ucs( c ) > > > >{ >} >inline QChar::QChar( uchar c, uchar r ) : ucs( (r << 8) | c ) > > > >{ >} >inline QChar::QChar( const QChar& c ) : ucs( c.ucs ) > > > >{ >} > >inline QChar::QChar( ushort rc ) : ucs( rc ) > > > >{ >} >inline QChar::QChar( short rc ) : ucs( (ushort) rc ) > > > >{ >} >inline QChar::QChar( uint rc ) : ucs( (ushort ) (rc & 0xffff) ) > > > >{ >} >inline QChar::QChar( int rc ) : ucs( (ushort) (rc & 0xffff) ) > > > >{ >} > >inline bool operator==( char ch, QChar c ) >{ > return ((uchar) ch) == c.ucs; >} > >inline bool operator==( QChar c, char ch ) >{ > return ((uchar) ch) == c.ucs; >} > >inline bool operator==( QChar c1, QChar c2 ) >{ > return c1.ucs == c2.ucs; >} > >inline bool operator!=( QChar c1, QChar c2 ) >{ > return c1.ucs != c2.ucs; >} > >inline bool operator!=( char ch, QChar c ) >{ > return ((uchar)ch) != c.ucs; >} > >inline bool operator!=( QChar c, char ch ) >{ > return ((uchar) ch) != c.ucs; >} > >inline bool operator<=( QChar c, char ch ) >{ > return c.ucs <= ((uchar) ch); >} > >inline bool operator<=( char ch, QChar c ) >{ > return ((uchar) ch) <= c.ucs; >} > >inline bool operator<=( QChar c1, QChar c2 ) >{ > return c1.ucs <= c2.ucs; >} > >inline bool operator>=( QChar c, char ch ) { return ch <= c; } >inline bool operator>=( char ch, QChar c ) { return c <= ch; } >inline bool operator>=( QChar c1, QChar c2 ) { return c2 <= c1; } >inline bool operator<( QChar c, char ch ) { return !(ch<=c); } >inline bool operator<( char ch, QChar c ) { return !(c<=ch); } >inline bool operator<( QChar c1, QChar c2 ) { return !(c2<=c1); } >inline bool operator>( QChar c, char ch ) { return !(ch>=c); } >inline bool operator>( char ch, QChar c ) { return !(c>=ch); } >inline bool operator>( QChar c1, QChar c2 ) { return !(c2>=c1); } > > >struct QStringData : public QShared { > QStringData() : > QShared(), unicode(0), ascii(0), len(0), issimpletext(TRUE), maxl(0), islatin1(FALSE) { ref(); } > QStringData(QChar *u, uint l, uint m) : > QShared(), unicode(u), ascii(0), len(l), issimpletext(FALSE), maxl(m), islatin1(FALSE) { } > ~QStringData() { if ( unicode ) delete[] ((char*)unicode); > if ( ascii ) delete[] ascii; } > > void deleteSelf(); > QChar *unicode; > char *ascii; > void setDirty() { > if ( ascii ) { > delete [] ascii; > ascii = 0; > } > issimpletext = FALSE; > } > > > > uint len : 30; > > uint issimpletext : 1; > > > > uint maxl : 30; > > uint islatin1 : 1; > >private: > > QStringData( const QStringData& ); > QStringData& operator=( const QStringData& ); > >}; > > >class QString >{ >public: > QString(); > QString( QChar ); > QString( const QString & ); > QString( const QByteArray& ); > QString( const QChar* unicode, uint length ); > > QString( const char *str ); > > > > > ~QString(); > > QString &operator=( const QString & ); > QString &operator=( const char * ); > > > > QString &operator=( const QCString& ); > QString &operator=( QChar c ); > QString &operator=( char c ); > > static const QString null; > > bool isNull() const; > bool isEmpty() const; > uint length() const; > void truncate( uint pos ); > > QString & fill( QChar c, int len = -1 ); > > QString copy() const; > > QString arg( long a, int fieldWidth = 0, int base = 10 ) const; > QString arg( ulong a, int fieldWidth = 0, int base = 10 ) const; > QString arg( Q_LLONG a, int fieldwidth=0, int base=10 ) const; > QString arg( Q_ULLONG a, int fieldwidth=0, int base=10 ) const; > QString arg( int a, int fieldWidth = 0, int base = 10 ) const; > QString arg( uint a, int fieldWidth = 0, int base = 10 ) const; > QString arg( short a, int fieldWidth = 0, int base = 10 ) const; > QString arg( ushort a, int fieldWidth = 0, int base = 10 ) const; > QString arg( double a, int fieldWidth = 0, char fmt = 'g', > int prec = -1 ) const; > QString arg( char a, int fieldWidth = 0 ) const; > QString arg( QChar a, int fieldWidth = 0 ) const; > QString arg( const QString& a, int fieldWidth = 0 ) const; > QString arg( const QString& a1, const QString& a2 ) const; > QString arg( const QString& a1, const QString& a2, > const QString& a3 ) const; > QString arg( const QString& a1, const QString& a2, const QString& a3, > const QString& a4 ) const; > > > QString &sprintf( const char* format, ... ) > > __attribute__ ((format (printf, 2, 3))) > > ; > > > int find( QChar c, int index=0, bool cs=TRUE ) const; > int find( char c, int index=0, bool cs=TRUE ) const; > int find( const QString &str, int index=0, bool cs=TRUE ) const; > > int find( const QRegExp &, int index=0 ) const; > > > int find( const char* str, int index=0 ) const; > > int findRev( QChar c, int index=-1, bool cs=TRUE) const; > int findRev( char c, int index=-1, bool cs=TRUE) const; > int findRev( const QString &str, int index=-1, bool cs=TRUE) const; > > int findRev( const QRegExp &, int index=-1 ) const; > > > int findRev( const char* str, int index=-1 ) const; > > int contains( QChar c, bool cs=TRUE ) const; > int contains( char c, bool cs=TRUE ) const > { return contains(QChar(c), cs); } > > int contains( const char* str, bool cs=TRUE ) const; > > int contains( const QString &str, bool cs=TRUE ) const; > > int contains( const QRegExp & ) const; > > > enum SectionFlags { > SectionDefault = 0x00, > SectionSkipEmpty = 0x01, > SectionIncludeLeadingSep = 0x02, > SectionIncludeTrailingSep = 0x04, > SectionCaseInsensitiveSeps = 0x08 > }; > QString section( QChar sep, int start, int end = 0xffffffff, int flags = SectionDefault ) const; > QString section( char sep, int start, int end = 0xffffffff, int flags = SectionDefault ) const; > > QString section( const char *in_sep, int start, int end = 0xffffffff, int flags = SectionDefault ) const; > > QString section( const QString &in_sep, int start, int end = 0xffffffff, int flags = SectionDefault ) const; > > QString section( const QRegExp ®, int start, int end = 0xffffffff, int flags = SectionDefault ) const; > > > QString left( uint len ) const; > QString right( uint len ) const; > QString mid( uint index, uint len=0xffffffff) const; > > QString leftJustify( uint width, QChar fill=' ', bool trunc=FALSE)const; > QString rightJustify( uint width, QChar fill=' ',bool trunc=FALSE)const; > > QString lower() const; > QString upper() const; > > QString stripWhiteSpace() const; > QString simplifyWhiteSpace() const; > > QString &insert( uint index, const QString & ); > > QString &insert( uint index, const QByteArray & ); > QString &insert( uint index, const char * ); > > QString &insert( uint index, const QChar*, uint len ); > QString &insert( uint index, QChar ); > QString &insert( uint index, char c ) { return insert(index,QChar(c)); } > QString &append( char ); > QString &append( QChar ); > QString &append( const QString & ); > > QString &append( const QByteArray & ); > QString &append( const char * ); > > > > > QString &prepend( char ); > QString &prepend( QChar ); > QString &prepend( const QString & ); > > QString &prepend( const QByteArray & ); > QString &prepend( const char * ); > > > > > QString &remove( uint index, uint len ); > > > > > QString &remove( const QString & ); > QString &remove( const QString &, bool cs ); > > QString &remove( QChar c ); > QString &remove( char c ) > { return remove( QChar(c) ); } > > QString &remove( const char * ); > > > QString &remove( const QRegExp & ); > > QString &replace( uint index, uint len, const QString & ); > QString &replace( uint index, uint len, const QChar*, uint clen ); > QString &replace( uint index, uint len, QChar ); > QString &replace( uint index, uint len, char c ) > { return replace( index, len, QChar(c) ); } > > > > > > > > QString &replace( QChar c, const QString & ); > QString &replace( QChar c, const QString &, bool ); > > > QString &replace( char c, const QString & after ) > { return replace( QChar(c), after, TRUE ); } > QString &replace( char c, const QString & after, bool cs ) > { return replace( QChar(c), after, cs ); } > > > QString &replace( const QString &, const QString & ); > QString &replace( const QString &, const QString &, bool ); > > > QString &replace( const QRegExp &, const QString & ); > > QString &replace( QChar, QChar ); > > short toShort( bool *ok=0, int base=10 ) const; > ushort toUShort( bool *ok=0, int base=10 ) const; > int toInt( bool *ok=0, int base=10 ) const; > uint toUInt( bool *ok=0, int base=10 ) const; > long toLong( bool *ok=0, int base=10 ) const; > ulong toULong( bool *ok=0, int base=10 ) const; > Q_LLONG toLongLong( bool *ok=0, int base=10 ) const; > Q_ULLONG toULongLong( bool *ok=0, int base=10 ) const; > float toFloat( bool *ok=0 ) const; > double toDouble( bool *ok=0 ) const; > > QString &setNum( short, int base=10 ); > QString &setNum( ushort, int base=10 ); > QString &setNum( int, int base=10 ); > QString &setNum( uint, int base=10 ); > QString &setNum( long, int base=10 ); > QString &setNum( ulong, int base=10 ); > QString &setNum( Q_LLONG, int base=10 ); > QString &setNum( Q_ULLONG, int base=10 ); > QString &setNum( float, char f='g', int prec=6 ); > QString &setNum( double, char f='g', int prec=6 ); > > static QString number( long, int base=10 ); > static QString number( ulong, int base=10); > static QString number( Q_LLONG, int base=10 ); > static QString number( Q_ULLONG, int base=10); > static QString number( int, int base=10 ); > static QString number( uint, int base=10); > static QString number( double, char f='g', int prec=6 ); > > void setExpand( uint index, QChar c ); > > QString &operator+=( const QString &str ); > > QString &operator+=( const QByteArray &str ); > QString &operator+=( const char *str ); > > > > > QString &operator+=( QChar c ); > QString &operator+=( char c ); > > QChar at( uint i ) const > { return i < d->len ? d->unicode[i] : QChar::null; } > QChar operator[]( int i ) const { return at((uint)i); } > QCharRef at( uint i ); > QCharRef operator[]( int i ); > > QChar constref(uint i) const > { return at(i); } > QChar& ref(uint i) > { > if ( d->count != 1 || i >= d->len ) > subat( i ); > d->setDirty(); > return d->unicode[i]; > } > > const QChar* unicode() const { return d->unicode; } > const char* ascii() const; > static QString fromAscii(const char*, int len=-1); > const char* latin1() const; > static QString fromLatin1(const char*, int len=-1); > QCString utf8() const; > static QString fromUtf8(const char*, int len=-1); > QCString local8Bit() const; > static QString fromLocal8Bit(const char*, int len=-1); > bool operator!() const; > > > > > > > > static QString fromUcs2( const unsigned short *ucs2 ); > const unsigned short *ucs2() const; > > QString &setUnicode( const QChar* unicode, uint len ); > QString &setUnicodeCodes( const ushort* unicode_as_ushorts, uint len ); > QString &setAscii( const char*, int len=-1 ); > QString &setLatin1( const char*, int len=-1 ); > > int compare( const QString& s ) const; > static int compare( const QString& s1, const QString& s2 ) > { return s1.compare( s2 ); } > > int localeAwareCompare( const QString& s ) const; > static int localeAwareCompare( const QString& s1, const QString& s2 ) > { return s1.localeAwareCompare( s2 ); } > > > friend QDataStream &operator>>( QDataStream &, QString & ); > > > void compose(); ># 701 "/usr/qt/3/include/qstring.h" > bool startsWith( const QString& str ) const; > bool startsWith( const QString& str, bool cs ) const; > > > bool endsWith( const QString& str ) const; > bool endsWith( const QString& str, bool cs ) const; > > > void setLength( uint newLength ); > > uint capacity() const; > void reserve( uint minCapacity ); > void squeeze(); > > bool simpleText() const { if ( !d->issimpletext ) checkSimpleText(); return (bool)d->issimpletext; } > bool isRightToLeft() const; > > >private: > QString( int size, bool ); > > void deref(); > void real_detach(); > void subat( uint ); > QString multiArg( int numArgs, const QString& a1, const QString& a2, > const QString& a3 = QString::null, > const QString& a4 = QString::null ) const; > > void checkSimpleText() const; > void grow( uint newLength ); > > QString &insertHelper( uint index, const char *s, uint len=(2147483647 * 2U + 1U) ); > QString &operatorPlusEqHelper( const char *s, uint len2=(2147483647 * 2U + 1U) ); > > > static QChar* latin1ToUnicode( const char*, uint * len, uint maxlen=(uint)-1 ); > static QChar* latin1ToUnicode( const QByteArray&, uint * len ); > static char* unicodeToLatin1( const QChar*, uint len ); > > QStringData *d; > static QStringData* shared_null; > static QStringData* makeSharedNull(); > > friend class QConstString; > friend class QTextStream; > QString( QStringData* dd, bool ) : d(dd) { } > > > void detach(); > friend class QDeepCopy<QString>; >}; > >class QCharRef { > friend class QString; > QString& s; > uint p; > QCharRef(QString* str, uint pos) : s(*str), p(pos) { } > >public: > > > > > ushort unicode() const { return s.constref(p).unicode(); } > char latin1() const { return s.constref(p).latin1(); } > > > QCharRef operator=(char c ) { s.ref(p)=c; return *this; } > QCharRef operator=(uchar c ) { s.ref(p)=c; return *this; } > QCharRef operator=(QChar c ) { s.ref(p)=c; return *this; } > QCharRef operator=(const QCharRef& c ) { s.ref(p)=c.unicode(); return *this; } > QCharRef operator=(ushort rc ) { s.ref(p)=rc; return *this; } > QCharRef operator=(short rc ) { s.ref(p)=rc; return *this; } > QCharRef operator=(uint rc ) { s.ref(p)=rc; return *this; } > QCharRef operator=(int rc ) { s.ref(p)=rc; return *this; } > > operator QChar () const { return s.constref(p); } > > > bool isNull() const { return unicode()==0; } > bool isPrint() const { return s.constref(p).isPrint(); } > bool isPunct() const { return s.constref(p).isPunct(); } > bool isSpace() const { return s.constref(p).isSpace(); } > bool isMark() const { return s.constref(p).isMark(); } > bool isLetter() const { return s.constref(p).isLetter(); } > bool isNumber() const { return s.constref(p).isNumber(); } > bool isLetterOrNumber() { return s.constref(p).isLetterOrNumber(); } > bool isDigit() const { return s.constref(p).isDigit(); } > > int digitValue() const { return s.constref(p).digitValue(); } > QChar lower() const { return s.constref(p).lower(); } > QChar upper() const { return s.constref(p).upper(); } > > QChar::Category category() const { return s.constref(p).category(); } > QChar::Direction direction() const { return s.constref(p).direction(); } > QChar::Joining joining() const { return s.constref(p).joining(); } > bool mirrored() const { return s.constref(p).mirrored(); } > QChar mirroredChar() const { return s.constref(p).mirroredChar(); } > const QString &decomposition() const { return s.constref(p).decomposition(); } > QChar::Decomposition decompositionTag() const { return s.constref(p).decompositionTag(); } > unsigned char combiningClass() const { return s.constref(p).combiningClass(); } > > > uchar cell() const { return s.constref(p).cell(); } > uchar row() const { return s.constref(p).row(); } > >}; > >inline QCharRef QString::at( uint i ) { return QCharRef(this,i); } >inline QCharRef QString::operator[]( int i ) { return at((uint)i); } > > >class QConstString : private QString { >public: > QConstString( const QChar* unicode, uint length ); > ~QConstString(); > const QString& string() const { return *this; } >}; > > > > > > > QDataStream &operator<<( QDataStream &, const QString & ); > QDataStream &operator>>( QDataStream &, QString & ); ># 838 "/usr/qt/3/include/qstring.h" >inline QString::QString() : > d(shared_null ? shared_null : makeSharedNull()) >{ > d->ref(); >} > >inline QString::~QString() >{ > if ( d->deref() ) { > if ( d != shared_null ) > d->deleteSelf(); > } >} > > >inline void QString::detach() >{ real_detach(); } > >inline QString QString::section( QChar sep, int start, int end, int flags ) const >{ return section(QString(sep), start, end, flags); } > >inline QString QString::section( char sep, int start, int end, int flags ) const >{ return section(QChar(sep), start, end, flags); } > > >inline QString QString::section( const char *in_sep, int start, int end, int flags ) const >{ return section(QString(in_sep), start, end, flags); } > > >inline QString &QString::operator=( QChar c ) >{ *this = QString(c); return *this; } > >inline QString &QString::operator=( char c ) >{ *this = QString(QChar(c)); return *this; } > >inline bool QString::isNull() const >{ return unicode() == 0; } > >inline bool QString::operator!() const >{ return isNull(); } > >inline uint QString::length() const >{ return d->len; } > >inline uint QString::capacity() const >{ return d->maxl; } > >inline bool QString::isEmpty() const >{ return length() == 0; } > >inline QString QString::copy() const >{ return QString( *this ); } > > >inline QString &QString::insert( uint index, const char *s ) >{ return insertHelper( index, s ); } > >inline QString &QString::insert( uint index, const QByteArray &s ) >{ > int pos = s.find( 0 ); > return insertHelper( index, s, pos==-1 ? s.size() : pos ); >} > > >inline QString &QString::prepend( const QString & s ) >{ return insert(0,s); } > >inline QString &QString::prepend( QChar c ) >{ return insert(0,c); } > >inline QString &QString::prepend( char c ) >{ return insert(0,c); } > > >inline QString &QString::prepend( const QByteArray & s ) >{ return insert(0,s); } > > > >inline QString &QString::operator+=( const QByteArray &s ) >{ > int pos = s.find( 0 ); > return operatorPlusEqHelper( s, pos==-1 ? s.size() : pos ); >} > > >inline QString &QString::append( const QString & s ) >{ return operator+=(s); } > > >inline QString &QString::append( const QByteArray &s ) >{ return operator+=(s); } > >inline QString &QString::append( const char * s ) >{ return operator+=(s); } > > >inline QString &QString::append( QChar c ) >{ return operator+=(c); } > >inline QString &QString::append( char c ) >{ return operator+=(c); } ># 954 "/usr/qt/3/include/qstring.h" >inline QString &QString::setNum( short n, int base ) >{ return setNum((Q_LLONG)n, base); } > >inline QString &QString::setNum( ushort n, int base ) >{ return setNum((Q_ULLONG)n, base); } > >inline QString &QString::setNum( int n, int base ) >{ return setNum((Q_LLONG)n, base); } > >inline QString &QString::setNum( uint n, int base ) >{ return setNum((Q_ULLONG)n, base); } > >inline QString &QString::setNum( float n, char f, int prec ) >{ return setNum((double)n,f,prec); } > >inline QString QString::arg( int a, int fieldWidth, int base ) const >{ return arg( (Q_LLONG)a, fieldWidth, base ); } > >inline QString QString::arg( uint a, int fieldWidth, int base ) const >{ return arg( (Q_ULLONG)a, fieldWidth, base ); } > >inline QString QString::arg( short a, int fieldWidth, int base ) const >{ return arg( (Q_LLONG)a, fieldWidth, base ); } > >inline QString QString::arg( ushort a, int fieldWidth, int base ) const >{ return arg( (Q_ULLONG)a, fieldWidth, base ); } > >inline QString QString::arg( const QString& a1, const QString& a2 ) const { > return multiArg( 2, a1, a2 ); >} > >inline QString QString::arg( const QString& a1, const QString& a2, > const QString& a3 ) const { > return multiArg( 3, a1, a2, a3 ); >} > >inline QString QString::arg( const QString& a1, const QString& a2, > const QString& a3, const QString& a4 ) const { > return multiArg( 4, a1, a2, a3, a4 ); >} > >inline int QString::find( char c, int index, bool cs ) const >{ return find(QChar(c), index, cs); } > >inline int QString::findRev( char c, int index, bool cs ) const >{ return findRev( QChar(c), index, cs ); } > > >inline int QString::find( const char* str, int index ) const >{ return find(QString::fromAscii(str), index); } > >inline int QString::findRev( const char* str, int index ) const >{ return findRev(QString::fromAscii(str), index); } > > > > > > > > bool operator!=( const QString &s1, const QString &s2 ); > bool operator<( const QString &s1, const QString &s2 ); > bool operator<=( const QString &s1, const QString &s2 ); > bool operator==( const QString &s1, const QString &s2 ); > bool operator>( const QString &s1, const QString &s2 ); > bool operator>=( const QString &s1, const QString &s2 ); > > bool operator!=( const QString &s1, const char *s2 ); > bool operator<( const QString &s1, const char *s2 ); > bool operator<=( const QString &s1, const char *s2 ); > bool operator==( const QString &s1, const char *s2 ); > bool operator>( const QString &s1, const char *s2 ); > bool operator>=( const QString &s1, const char *s2 ); > bool operator!=( const char *s1, const QString &s2 ); > bool operator<( const char *s1, const QString &s2 ); > bool operator<=( const char *s1, const QString &s2 ); > bool operator==( const char *s1, const QString &s2 ); > > bool operator>=( const char *s1, const QString &s2 ); > > > inline const QString operator+( const QString &s1, const QString &s2 ) >{ > QString tmp( s1 ); > tmp += s2; > return tmp; >} > > > inline const QString operator+( const QString &s1, const char *s2 ) >{ > QString tmp( s1 ); > tmp += QString::fromAscii(s2); > return tmp; >} > > inline const QString operator+( const char *s1, const QString &s2 ) >{ > QString tmp = QString::fromAscii( s1 ); > tmp += s2; > return tmp; >} > > > inline const QString operator+( const QString &s1, QChar c2 ) >{ > QString tmp( s1 ); > tmp += c2; > return tmp; >} > > inline const QString operator+( const QString &s1, char c2 ) >{ > QString tmp( s1 ); > tmp += c2; > return tmp; >} > > inline const QString operator+( QChar c1, const QString &s2 ) >{ > QString tmp; > tmp += c1; > tmp += s2; > return tmp; >} > > inline const QString operator+( char c1, const QString &s2 ) >{ > QString tmp; > tmp += c1; > tmp += s2; > return tmp; >} ># 1111 "/usr/qt/3/include/qstring.h" ># 1 "/usr/qt/3/include/qwinexport.h" 1 ># 1112 "/usr/qt/3/include/qstring.h" 2 ># 26 "filter.h" 2 > ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/vector" 1 3 ># 64 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/vector" 3 > ># 65 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/vector" 3 > ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/functexcept.h" 1 3 ># 34 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/functexcept.h" 3 ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/exception_defines.h" 1 3 ># 35 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/functexcept.h" 2 3 > >namespace std >{ > > void > __throw_bad_exception(void); > > > void > __throw_bad_alloc(void); > > > void > __throw_bad_cast(void); > > void > __throw_bad_typeid(void); > > > void > __throw_logic_error(const char* __s); > > void > __throw_domain_error(const char* __s); > > void > __throw_invalid_argument(const char* __s); > > void > __throw_length_error(const char* __s); > > void > __throw_out_of_range(const char* __s); > > void > __throw_runtime_error(const char* __s); > > void > __throw_range_error(const char* __s); > > void > __throw_overflow_error(const char* __s); > > void > __throw_underflow_error(const char* __s); > > > void > __throw_ios_failure(const char* __s); >} ># 67 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/vector" 2 3 ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_algobase.h" 1 3 ># 64 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_algobase.h" 3 ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/i686-pc-linux-gnu/bits/c++config.h" 1 3 ># 35 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/i686-pc-linux-gnu/bits/c++config.h" 3 ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/i686-pc-linux-gnu/bits/os_defines.h" 1 3 ># 36 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/i686-pc-linux-gnu/bits/c++config.h" 2 3 ># 65 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_algobase.h" 2 3 ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/cstring" 1 3 ># 47 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/cstring" 3 > ># 48 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/cstring" 3 > ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/cstddef" 1 3 ># 46 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/cstddef" 3 > ># 47 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/cstddef" 3 > ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/stddef.h" 1 3 4 ># 151 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/stddef.h" 3 4 >typedef int ptrdiff_t; ># 49 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/cstddef" 2 3 > >namespace std >{ > using ::ptrdiff_t; > using ::size_t; >} ># 50 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/cstring" 2 3 ># 77 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/cstring" 3 >namespace std >{ > using ::memcpy; > using ::memmove; > using ::strcpy; > using ::strncpy; > using ::strcat; > using ::strncat; > using ::memcmp; > using ::strcmp; > using ::strcoll; > using ::strncmp; > using ::strxfrm; > using ::strcspn; > using ::strspn; > using ::strtok; > using ::memset; > using ::strerror; > using ::strlen; > > using ::memchr; > > inline void* > memchr(void* __p, int __c, size_t __n) > { return memchr(const_cast<const void*>(__p), __c, __n); } > > using ::strchr; > > inline char* > strchr(char* __s1, int __n) > { return __builtin_strchr(const_cast<const char*>(__s1), __n); } > > using ::strpbrk; > > inline char* > strpbrk(char* __s1, const char* __s2) > { return __builtin_strpbrk(const_cast<const char*>(__s1), __s2); } > > using ::strrchr; > > inline char* > strrchr(char* __s1, int __n) > { return __builtin_strrchr(const_cast<const char*>(__s1), __n); } > > using ::strstr; > > inline char* > strstr(char* __s1, const char* __s2) > { return __builtin_strstr(const_cast<const char*>(__s1), __s2); } >} ># 66 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_algobase.h" 2 3 ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/climits" 1 3 ># 47 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/climits" 3 > ># 48 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/climits" 3 > ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/limits.h" 1 3 4 ># 50 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/climits" 2 3 ># 67 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_algobase.h" 2 3 ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/cstdlib" 1 3 ># 47 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/cstdlib" 3 > ># 48 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/cstdlib" 3 > > > > ># 1 "/usr/include/stdlib.h" 1 3 4 ># 33 "/usr/include/stdlib.h" 3 4 ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/stddef.h" 1 3 4 ># 34 "/usr/include/stdlib.h" 2 3 4 > >extern "C" { > > > > > > ># 1 "/usr/include/bits/waitflags.h" 1 3 4 ># 43 "/usr/include/stdlib.h" 2 3 4 ># 1 "/usr/include/bits/waitstatus.h" 1 3 4 ># 65 "/usr/include/bits/waitstatus.h" 3 4 ># 1 "/usr/include/endian.h" 1 3 4 ># 37 "/usr/include/endian.h" 3 4 ># 1 "/usr/include/bits/endian.h" 1 3 4 ># 38 "/usr/include/endian.h" 2 3 4 ># 66 "/usr/include/bits/waitstatus.h" 2 3 4 > >union wait > { > int w_status; > struct > { > > unsigned int __w_termsig:7; > unsigned int __w_coredump:1; > unsigned int __w_retcode:8; > unsigned int:16; > > > > > > > > } __wait_terminated; > struct > { > > unsigned int __w_stopval:8; > unsigned int __w_stopsig:8; > unsigned int:16; > > > > > > > } __wait_stopped; > }; ># 44 "/usr/include/stdlib.h" 2 3 4 ># 96 "/usr/include/stdlib.h" 3 4 > > >typedef struct > { > int quot; > int rem; > } div_t; > > > >typedef struct > { > long int quot; > long int rem; > } ldiv_t; > > > > > > > >__extension__ typedef struct > { > long long int quot; > long long int rem; > } lldiv_t; > > ># 140 "/usr/include/stdlib.h" 3 4 >extern size_t __ctype_get_mb_cur_max (void) throw (); > > > > >extern double atof (__const char *__nptr) > throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); > >extern int atoi (__const char *__nptr) > throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); > >extern long int atol (__const char *__nptr) > throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); > > > > > >__extension__ extern long long int atoll (__const char *__nptr) > throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); > > > > > >extern double strtod (__const char *__restrict __nptr, > char **__restrict __endptr) throw () __attribute__ ((__nonnull__ (1))); > > > > > >extern float strtof (__const char *__restrict __nptr, > char **__restrict __endptr) throw () __attribute__ ((__nonnull__ (1))); > >extern long double strtold (__const char *__restrict __nptr, > char **__restrict __endptr) > throw () __attribute__ ((__nonnull__ (1))); > > > > > >extern long int strtol (__const char *__restrict __nptr, > char **__restrict __endptr, int __base) > throw () __attribute__ ((__nonnull__ (1))); > >extern unsigned long int strtoul (__const char *__restrict __nptr, > char **__restrict __endptr, int __base) > throw () __attribute__ ((__nonnull__ (1))); > > > > >__extension__ >extern long long int strtoq (__const char *__restrict __nptr, > char **__restrict __endptr, int __base) > throw () __attribute__ ((__nonnull__ (1))); > >__extension__ >extern unsigned long long int strtouq (__const char *__restrict __nptr, > char **__restrict __endptr, int __base) > throw () __attribute__ ((__nonnull__ (1))); > > > > > >__extension__ >extern long long int strtoll (__const char *__restrict __nptr, > char **__restrict __endptr, int __base) > throw () __attribute__ ((__nonnull__ (1))); > >__extension__ >extern unsigned long long int strtoull (__const char *__restrict __nptr, > char **__restrict __endptr, int __base) > throw () __attribute__ ((__nonnull__ (1))); > ># 239 "/usr/include/stdlib.h" 3 4 >extern long int strtol_l (__const char *__restrict __nptr, > char **__restrict __endptr, int __base, > __locale_t __loc) throw () __attribute__ ((__nonnull__ (1, 4))); > >extern unsigned long int strtoul_l (__const char *__restrict __nptr, > char **__restrict __endptr, > int __base, __locale_t __loc) > throw () __attribute__ ((__nonnull__ (1, 4))); > >__extension__ >extern long long int strtoll_l (__const char *__restrict __nptr, > char **__restrict __endptr, int __base, > __locale_t __loc) > throw () __attribute__ ((__nonnull__ (1, 4))); > >__extension__ >extern unsigned long long int strtoull_l (__const char *__restrict __nptr, > char **__restrict __endptr, > int __base, __locale_t __loc) > throw () __attribute__ ((__nonnull__ (1, 4))); > >extern double strtod_l (__const char *__restrict __nptr, > char **__restrict __endptr, __locale_t __loc) > throw () __attribute__ ((__nonnull__ (1, 3))); > >extern float strtof_l (__const char *__restrict __nptr, > char **__restrict __endptr, __locale_t __loc) > throw () __attribute__ ((__nonnull__ (1, 3))); > >extern long double strtold_l (__const char *__restrict __nptr, > char **__restrict __endptr, > __locale_t __loc) throw () __attribute__ ((__nonnull__ (1, 3))); > > > > > > >extern double __strtod_internal (__const char *__restrict __nptr, > char **__restrict __endptr, int __group) > throw () __attribute__ ((__nonnull__ (1))); >extern float __strtof_internal (__const char *__restrict __nptr, > char **__restrict __endptr, int __group) > throw () __attribute__ ((__nonnull__ (1))); >extern long double __strtold_internal (__const char *__restrict __nptr, > char **__restrict __endptr, > int __group) throw () __attribute__ ((__nonnull__ (1))); > >extern long int __strtol_internal (__const char *__restrict __nptr, > char **__restrict __endptr, > int __base, int __group) > throw () __attribute__ ((__nonnull__ (1))); > > > >extern unsigned long int __strtoul_internal (__const char *__restrict __nptr, > char **__restrict __endptr, > int __base, int __group) > throw () __attribute__ ((__nonnull__ (1))); > > > > >__extension__ >extern long long int __strtoll_internal (__const char *__restrict __nptr, > char **__restrict __endptr, > int __base, int __group) > throw () __attribute__ ((__nonnull__ (1))); > > > >__extension__ >extern unsigned long long int __strtoull_internal (__const char * > __restrict __nptr, > char **__restrict __endptr, > int __base, int __group) > throw () __attribute__ ((__nonnull__ (1))); > > > > > > > > >extern __inline double >strtod (__const char *__restrict __nptr, char **__restrict __endptr) throw () >{ > return __strtod_internal (__nptr, __endptr, 0); >} >extern __inline long int >strtol (__const char *__restrict __nptr, char **__restrict __endptr, int __base) throw () > >{ > return __strtol_internal (__nptr, __endptr, __base, 0); >} >extern __inline unsigned long int >strtoul (__const char *__restrict __nptr, char **__restrict __endptr, int __base) throw () > >{ > return __strtoul_internal (__nptr, __endptr, __base, 0); >} > > > > >extern __inline float >strtof (__const char *__restrict __nptr, char **__restrict __endptr) throw () >{ > return __strtof_internal (__nptr, __endptr, 0); >} >extern __inline long double >strtold (__const char *__restrict __nptr, char **__restrict __endptr) throw () >{ > return __strtold_internal (__nptr, __endptr, 0); >} > > > > >__extension__ extern __inline long long int >strtoq (__const char *__restrict __nptr, char **__restrict __endptr, int __base) throw () > >{ > return __strtoll_internal (__nptr, __endptr, __base, 0); >} >__extension__ extern __inline unsigned long long int >strtouq (__const char *__restrict __nptr, char **__restrict __endptr, int __base) throw () > >{ > return __strtoull_internal (__nptr, __endptr, __base, 0); >} > > > > >__extension__ extern __inline long long int >strtoll (__const char *__restrict __nptr, char **__restrict __endptr, int __base) throw () > >{ > return __strtoll_internal (__nptr, __endptr, __base, 0); >} >__extension__ extern __inline unsigned long long int >strtoull (__const char * __restrict __nptr, char **__restrict __endptr, int __base) throw () > >{ > return __strtoull_internal (__nptr, __endptr, __base, 0); >} > > > > >extern __inline double >atof (__const char *__nptr) throw () >{ > return strtod (__nptr, (char **) __null); >} >extern __inline int >atoi (__const char *__nptr) throw () >{ > return (int) strtol (__nptr, (char **) __null, 10); >} >extern __inline long int >atol (__const char *__nptr) throw () >{ > return strtol (__nptr, (char **) __null, 10); >} > > > > >__extension__ extern __inline long long int >atoll (__const char *__nptr) throw () >{ > return strtoll (__nptr, (char **) __null, 10); >} > ># 424 "/usr/include/stdlib.h" 3 4 >extern char *l64a (long int __n) throw (); > > >extern long int a64l (__const char *__s) > throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); > > > > ># 1 "/usr/include/sys/types.h" 1 3 4 ># 29 "/usr/include/sys/types.h" 3 4 >extern "C" { > ># 1 "/usr/include/bits/types.h" 1 3 4 ># 28 "/usr/include/bits/types.h" 3 4 ># 1 "/usr/include/bits/wordsize.h" 1 3 4 ># 29 "/usr/include/bits/types.h" 2 3 4 > > ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/stddef.h" 1 3 4 ># 32 "/usr/include/bits/types.h" 2 3 4 > > >typedef unsigned char __u_char; >typedef unsigned short int __u_short; >typedef unsigned int __u_int; >typedef unsigned long int __u_long; > > >typedef signed char __int8_t; >typedef unsigned char __uint8_t; >typedef signed short int __int16_t; >typedef unsigned short int __uint16_t; >typedef signed int __int32_t; >typedef unsigned int __uint32_t; > > > > >__extension__ typedef signed long long int __int64_t; >__extension__ typedef unsigned long long int __uint64_t; > > > > > > > >__extension__ typedef long long int __quad_t; >__extension__ typedef unsigned long long int __u_quad_t; ># 129 "/usr/include/bits/types.h" 3 4 ># 1 "/usr/include/bits/typesizes.h" 1 3 4 ># 130 "/usr/include/bits/types.h" 2 3 4 > > > > > > >__extension__ typedef __u_quad_t __dev_t; >__extension__ typedef unsigned int __uid_t; >__extension__ typedef unsigned int __gid_t; >__extension__ typedef unsigned long int __ino_t; >__extension__ typedef __u_quad_t __ino64_t; >__extension__ typedef unsigned int __mode_t; >__extension__ typedef unsigned int __nlink_t; >__extension__ typedef long int __off_t; >__extension__ typedef __quad_t __off64_t; >__extension__ typedef int __pid_t; >__extension__ typedef struct { int __val[2]; } __fsid_t; >__extension__ typedef long int __clock_t; >__extension__ typedef unsigned long int __rlim_t; >__extension__ typedef __u_quad_t __rlim64_t; >__extension__ typedef unsigned int __id_t; >__extension__ typedef long int __time_t; >__extension__ typedef unsigned int __useconds_t; >__extension__ typedef long int __suseconds_t; > >__extension__ typedef int __daddr_t; >__extension__ typedef long int __swblk_t; >__extension__ typedef int __key_t; > > >__extension__ typedef int __clockid_t; > > >__extension__ typedef int __timer_t; > > >__extension__ typedef long int __blksize_t; > > > > >__extension__ typedef long int __blkcnt_t; >__extension__ typedef __quad_t __blkcnt64_t; > > >__extension__ typedef unsigned long int __fsblkcnt_t; >__extension__ typedef __u_quad_t __fsblkcnt64_t; > > >__extension__ typedef unsigned long int __fsfilcnt_t; >__extension__ typedef __u_quad_t __fsfilcnt64_t; > >__extension__ typedef int __ssize_t; > > > >typedef __off64_t __loff_t; >typedef __quad_t *__qaddr_t; >typedef char *__caddr_t; > > >__extension__ typedef int __intptr_t; > > >__extension__ typedef unsigned int __socklen_t; ># 32 "/usr/include/sys/types.h" 2 3 4 > > > >typedef __u_char u_char; >typedef __u_short u_short; >typedef __u_int u_int; >typedef __u_long u_long; >typedef __quad_t quad_t; >typedef __u_quad_t u_quad_t; >typedef __fsid_t fsid_t; > > > > >typedef __loff_t loff_t; > > > >typedef __ino_t ino_t; > > > > > > >typedef __ino64_t ino64_t; > > > > >typedef __dev_t dev_t; > > > > >typedef __gid_t gid_t; > > > > >typedef __mode_t mode_t; > > > > >typedef __nlink_t nlink_t; > > > > >typedef __uid_t uid_t; > > > > > >typedef __off_t off_t; > > > > > > >typedef __off64_t off64_t; > > > > >typedef __pid_t pid_t; > > > > >typedef __id_t id_t; > > > > >typedef __ssize_t ssize_t; > > > > > >typedef __daddr_t daddr_t; >typedef __caddr_t caddr_t; > > > > > >typedef __key_t key_t; ># 133 "/usr/include/sys/types.h" 3 4 ># 1 "/usr/include/time.h" 1 3 4 ># 58 "/usr/include/time.h" 3 4 > > >typedef __clock_t clock_t; > > > ># 74 "/usr/include/time.h" 3 4 > > >typedef __time_t time_t; > > > ># 92 "/usr/include/time.h" 3 4 >typedef __clockid_t clockid_t; ># 104 "/usr/include/time.h" 3 4 >typedef __timer_t timer_t; ># 134 "/usr/include/sys/types.h" 2 3 4 > > > >typedef __useconds_t useconds_t; > > > >typedef __suseconds_t suseconds_t; > > > > > ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/stddef.h" 1 3 4 ># 148 "/usr/include/sys/types.h" 2 3 4 > > > >typedef unsigned long int ulong; >typedef unsigned short int ushort; >typedef unsigned int uint; ># 191 "/usr/include/sys/types.h" 3 4 >typedef int int8_t __attribute__ ((__mode__ (__QI__))); >typedef int int16_t __attribute__ ((__mode__ (__HI__))); >typedef int int32_t __attribute__ ((__mode__ (__SI__))); >typedef int int64_t __attribute__ ((__mode__ (__DI__))); > > >typedef unsigned int u_int8_t __attribute__ ((__mode__ (__QI__))); >typedef unsigned int u_int16_t __attribute__ ((__mode__ (__HI__))); >typedef unsigned int u_int32_t __attribute__ ((__mode__ (__SI__))); >typedef unsigned int u_int64_t __attribute__ ((__mode__ (__DI__))); > >typedef int register_t __attribute__ ((__mode__ (__word__))); ># 216 "/usr/include/sys/types.h" 3 4 ># 1 "/usr/include/sys/select.h" 1 3 4 ># 31 "/usr/include/sys/select.h" 3 4 ># 1 "/usr/include/bits/select.h" 1 3 4 ># 32 "/usr/include/sys/select.h" 2 3 4 > > ># 1 "/usr/include/bits/sigset.h" 1 3 4 ># 23 "/usr/include/bits/sigset.h" 3 4 >typedef int __sig_atomic_t; > > > > >typedef struct > { > unsigned long int __val[(1024 / (8 * sizeof (unsigned long int)))]; > } __sigset_t; ># 35 "/usr/include/sys/select.h" 2 3 4 > > > >typedef __sigset_t sigset_t; > > > > > ># 1 "/usr/include/time.h" 1 3 4 ># 118 "/usr/include/time.h" 3 4 >struct timespec > { > __time_t tv_sec; > long int tv_nsec; > }; ># 45 "/usr/include/sys/select.h" 2 3 4 > ># 1 "/usr/include/bits/time.h" 1 3 4 ># 69 "/usr/include/bits/time.h" 3 4 >struct timeval > { > __time_t tv_sec; > __suseconds_t tv_usec; > }; ># 47 "/usr/include/sys/select.h" 2 3 4 ># 55 "/usr/include/sys/select.h" 3 4 >typedef long int __fd_mask; ># 67 "/usr/include/sys/select.h" 3 4 >typedef struct > { > > > > __fd_mask fds_bits[1024 / (8 * sizeof (__fd_mask))]; > > > > > > } fd_set; > > > > > > >typedef __fd_mask fd_mask; ># 99 "/usr/include/sys/select.h" 3 4 >extern "C" { ># 109 "/usr/include/sys/select.h" 3 4 >extern int select (int __nfds, fd_set *__restrict __readfds, > fd_set *__restrict __writefds, > fd_set *__restrict __exceptfds, > struct timeval *__restrict __timeout); ># 121 "/usr/include/sys/select.h" 3 4 >extern int pselect (int __nfds, fd_set *__restrict __readfds, > fd_set *__restrict __writefds, > fd_set *__restrict __exceptfds, > const struct timespec *__restrict __timeout, > const __sigset_t *__restrict __sigmask); > > >} ># 217 "/usr/include/sys/types.h" 2 3 4 > > ># 1 "/usr/include/sys/sysmacros.h" 1 3 4 ># 29 "/usr/include/sys/sysmacros.h" 3 4 >__extension__ >extern __inline unsigned int gnu_dev_major (unsigned long long int __dev) > throw (); >__extension__ >extern __inline unsigned int gnu_dev_minor (unsigned long long int __dev) > throw (); >__extension__ >extern __inline unsigned long long int gnu_dev_makedev (unsigned int __major, > unsigned int __minor) > throw (); > > >__extension__ extern __inline unsigned int >gnu_dev_major (unsigned long long int __dev) throw () >{ > return ((__dev >> 8) & 0xfff) | ((unsigned int) (__dev >> 32) & ~0xfff); >} > >__extension__ extern __inline unsigned int >gnu_dev_minor (unsigned long long int __dev) throw () >{ > return (__dev & 0xff) | ((unsigned int) (__dev >> 12) & ~0xff); >} > >__extension__ extern __inline unsigned long long int >gnu_dev_makedev (unsigned int __major, unsigned int __minor) throw () >{ > return ((__minor & 0xff) | ((__major & 0xfff) << 8) > | (((unsigned long long int) (__minor & ~0xff)) << 12) > | (((unsigned long long int) (__major & ~0xfff)) << 32)); >} ># 220 "/usr/include/sys/types.h" 2 3 4 > > > > >typedef __blksize_t blksize_t; > > > > > > >typedef __blkcnt_t blkcnt_t; > > > >typedef __fsblkcnt_t fsblkcnt_t; > > > >typedef __fsfilcnt_t fsfilcnt_t; ># 258 "/usr/include/sys/types.h" 3 4 >typedef __blkcnt64_t blkcnt64_t; >typedef __fsblkcnt64_t fsblkcnt64_t; >typedef __fsfilcnt64_t fsfilcnt64_t; > > > > > ># 1 "/usr/include/bits/pthreadtypes.h" 1 3 4 ># 23 "/usr/include/bits/pthreadtypes.h" 3 4 ># 1 "/usr/include/bits/sched.h" 1 3 4 ># 83 "/usr/include/bits/sched.h" 3 4 >struct __sched_param > { > int __sched_priority; > }; ># 24 "/usr/include/bits/pthreadtypes.h" 2 3 4 > > >struct _pthread_fastlock >{ > long int __status; > int __spinlock; > >}; > > > >typedef struct _pthread_descr_struct *_pthread_descr; > > > > > >typedef struct __pthread_attr_s >{ > int __detachstate; > int __schedpolicy; > struct __sched_param __schedparam; > int __inheritsched; > int __scope; > size_t __guardsize; > int __stackaddr_set; > void *__stackaddr; > size_t __stacksize; >} pthread_attr_t; > > > > > >__extension__ typedef long long __pthread_cond_align_t; > > > > >typedef struct >{ > struct _pthread_fastlock __c_lock; > _pthread_descr __c_waiting; > > char __padding[48 - sizeof (struct _pthread_fastlock) > - sizeof (_pthread_descr) - sizeof (__pthread_cond_align_t)]; > __pthread_cond_align_t __align; > >} pthread_cond_t; > > > >typedef struct >{ > int __dummy; >} pthread_condattr_t; > > >typedef unsigned int pthread_key_t; > > > > > >typedef struct >{ > int __m_reserved; > int __m_count; > _pthread_descr __m_owner; > int __m_kind; > struct _pthread_fastlock __m_lock; >} pthread_mutex_t; > > > >typedef struct >{ > int __mutexkind; >} pthread_mutexattr_t; > > > >typedef int pthread_once_t; > > > > >typedef struct _pthread_rwlock_t >{ > struct _pthread_fastlock __rw_lock; > int __rw_readers; > _pthread_descr __rw_writer; > _pthread_descr __rw_read_waiting; > _pthread_descr __rw_write_waiting; > int __rw_kind; > int __rw_pshared; >} pthread_rwlock_t; > > > >typedef struct >{ > int __lockkind; > int __pshared; >} pthread_rwlockattr_t; > > > > >typedef volatile int pthread_spinlock_t; > > >typedef struct { > struct _pthread_fastlock __ba_lock; > int __ba_required; > int __ba_present; > _pthread_descr __ba_waiting; >} pthread_barrier_t; > > >typedef struct { > int __pshared; >} pthread_barrierattr_t; > > > > > >typedef unsigned long int pthread_t; ># 267 "/usr/include/sys/types.h" 2 3 4 > > >} ># 434 "/usr/include/stdlib.h" 2 3 4 > > > > > > >extern long int random (void) throw (); > > >extern void srandom (unsigned int __seed) throw (); > > > > > >extern char *initstate (unsigned int __seed, char *__statebuf, > size_t __statelen) throw () __attribute__ ((__nonnull__ (2))); > > > >extern char *setstate (char *__statebuf) throw () __attribute__ ((__nonnull__ (1))); > > > > > > > >struct random_data > { > int32_t *fptr; > int32_t *rptr; > int32_t *state; > int rand_type; > int rand_deg; > int rand_sep; > int32_t *end_ptr; > }; > >extern int random_r (struct random_data *__restrict __buf, > int32_t *__restrict __result) throw () __attribute__ ((__nonnull__ (1, 2))); > >extern int srandom_r (unsigned int __seed, struct random_data *__buf) > throw () __attribute__ ((__nonnull__ (2))); > >extern int initstate_r (unsigned int __seed, char *__restrict __statebuf, > size_t __statelen, > struct random_data *__restrict __buf) > throw () __attribute__ ((__nonnull__ (2, 4))); > >extern int setstate_r (char *__restrict __statebuf, > struct random_data *__restrict __buf) > throw () __attribute__ ((__nonnull__ (1, 2))); > > > > > > >extern int rand (void) throw (); > >extern void srand (unsigned int __seed) throw (); > > > > >extern int rand_r (unsigned int *__seed) throw (); > > > > > > > >extern double drand48 (void) throw (); >extern double erand48 (unsigned short int __xsubi[3]) throw () __attribute__ ((__nonnull__ (1))); > > >extern long int lrand48 (void) throw (); >extern long int nrand48 (unsigned short int __xsubi[3]) > throw () __attribute__ ((__nonnull__ (1))); > > >extern long int mrand48 (void) throw (); >extern long int jrand48 (unsigned short int __xsubi[3]) > throw () __attribute__ ((__nonnull__ (1))); > > >extern void srand48 (long int __seedval) throw (); >extern unsigned short int *seed48 (unsigned short int __seed16v[3]) > throw () __attribute__ ((__nonnull__ (1))); >extern void lcong48 (unsigned short int __param[7]) throw () __attribute__ ((__nonnull__ (1))); > > > > > >struct drand48_data > { > unsigned short int __x[3]; > unsigned short int __old_x[3]; > unsigned short int __c; > unsigned short int __init; > unsigned long long int __a; > }; > > >extern int drand48_r (struct drand48_data *__restrict __buffer, > double *__restrict __result) throw () __attribute__ ((__nonnull__ (1, 2))); >extern int erand48_r (unsigned short int __xsubi[3], > struct drand48_data *__restrict __buffer, > double *__restrict __result) throw () __attribute__ ((__nonnull__ (1, 2))); > > >extern int lrand48_r (struct drand48_data *__restrict __buffer, > long int *__restrict __result) > throw () __attribute__ ((__nonnull__ (1, 2))); >extern int nrand48_r (unsigned short int __xsubi[3], > struct drand48_data *__restrict __buffer, > long int *__restrict __result) > throw () __attribute__ ((__nonnull__ (1, 2))); > > >extern int mrand48_r (struct drand48_data *__restrict __buffer, > long int *__restrict __result) > throw () __attribute__ ((__nonnull__ (1, 2))); >extern int jrand48_r (unsigned short int __xsubi[3], > struct drand48_data *__restrict __buffer, > long int *__restrict __result) > throw () __attribute__ ((__nonnull__ (1, 2))); > > >extern int srand48_r (long int __seedval, struct drand48_data *__buffer) > throw () __attribute__ ((__nonnull__ (2))); > >extern int seed48_r (unsigned short int __seed16v[3], > struct drand48_data *__buffer) throw () __attribute__ ((__nonnull__ (1, 2))); > >extern int lcong48_r (unsigned short int __param[7], > struct drand48_data *__buffer) > throw () __attribute__ ((__nonnull__ (1, 2))); > > > > > > > > > >extern void *malloc (size_t __size) throw () __attribute__ ((__malloc__)); > >extern void *calloc (size_t __nmemb, size_t __size) > throw () __attribute__ ((__malloc__)); > > > > > > > >extern void *realloc (void *__ptr, size_t __size) throw () __attribute__ ((__malloc__)); > >extern void free (void *__ptr) throw (); > > > > >extern void cfree (void *__ptr) throw (); > > > ># 1 "/usr/include/alloca.h" 1 3 4 ># 25 "/usr/include/alloca.h" 3 4 ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/stddef.h" 1 3 4 ># 26 "/usr/include/alloca.h" 2 3 4 > >extern "C" { > > > > > >extern void *alloca (size_t __size) throw (); > > > > > >} ># 607 "/usr/include/stdlib.h" 2 3 4 > > > > >extern void *valloc (size_t __size) throw () __attribute__ ((__malloc__)); > > > > >extern int posix_memalign (void **__memptr, size_t __alignment, size_t __size) > throw () __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1))); > > > > >extern void abort (void) throw () __attribute__ ((__noreturn__)); > > > >extern int atexit (void (*__func) (void)) throw () __attribute__ ((__nonnull__ (1))); > > > > > >extern int on_exit (void (*__func) (int __status, void *__arg), void *__arg) > throw () __attribute__ ((__nonnull__ (1))); > > > > > > >extern void exit (int __status) throw () __attribute__ ((__noreturn__)); > > > > > > >extern void _Exit (int __status) throw () __attribute__ ((__noreturn__)); > > > > > > >extern char *getenv (__const char *__name) throw () __attribute__ ((__nonnull__ (1))); > > > > >extern char *__secure_getenv (__const char *__name) throw () __attribute__ ((__nonnull__ (1))); > > > > > >extern int putenv (char *__string) throw () __attribute__ ((__nonnull__ (1))); > > > > > >extern int setenv (__const char *__name, __const char *__value, int __replace) > throw () __attribute__ ((__nonnull__ (2))); > > >extern int unsetenv (__const char *__name) throw (); > > > > > > >extern int clearenv (void) throw (); ># 691 "/usr/include/stdlib.h" 3 4 >extern char *mktemp (char *__template) throw () __attribute__ ((__nonnull__ (1))); ># 702 "/usr/include/stdlib.h" 3 4 >extern int mkstemp (char *__template) __attribute__ ((__nonnull__ (1))); ># 711 "/usr/include/stdlib.h" 3 4 >extern int mkstemp64 (char *__template) __attribute__ ((__nonnull__ (1))); ># 721 "/usr/include/stdlib.h" 3 4 >extern char *mkdtemp (char *__template) throw () __attribute__ ((__nonnull__ (1))); > > > > > > > > >extern int system (__const char *__command); > > > > > > > >extern char *canonicalize_file_name (__const char *__name) > throw () __attribute__ ((__nonnull__ (1))); ># 749 "/usr/include/stdlib.h" 3 4 >extern char *realpath (__const char *__restrict __name, > char *__restrict __resolved) throw (); > > > > > > >typedef int (*__compar_fn_t) (__const void *, __const void *); > > >typedef __compar_fn_t comparison_fn_t; > > > > > > >extern void *bsearch (__const void *__key, __const void *__base, > size_t __nmemb, size_t __size, __compar_fn_t __compar) > __attribute__ ((__nonnull__ (1, 2, 5))); > > > >extern void qsort (void *__base, size_t __nmemb, size_t __size, > __compar_fn_t __compar) __attribute__ ((__nonnull__ (1, 4))); > > > >extern int abs (int __x) throw () __attribute__ ((__const__)); >extern long int labs (long int __x) throw () __attribute__ ((__const__)); > > > >__extension__ extern long long int llabs (long long int __x) > throw () __attribute__ ((__const__)); > > > > > > > >extern div_t div (int __numer, int __denom) > throw () __attribute__ ((__const__)); >extern ldiv_t ldiv (long int __numer, long int __denom) > throw () __attribute__ ((__const__)); > > > > >__extension__ extern lldiv_t lldiv (long long int __numer, > long long int __denom) > throw () __attribute__ ((__const__)); > ># 814 "/usr/include/stdlib.h" 3 4 >extern char *ecvt (double __value, int __ndigit, int *__restrict __decpt, > int *__restrict __sign) throw () __attribute__ ((__nonnull__ (3, 4))); > > > > >extern char *fcvt (double __value, int __ndigit, int *__restrict __decpt, > int *__restrict __sign) throw () __attribute__ ((__nonnull__ (3, 4))); > > > > >extern char *gcvt (double __value, int __ndigit, char *__buf) > throw () __attribute__ ((__nonnull__ (3))); > > > > >extern char *qecvt (long double __value, int __ndigit, > int *__restrict __decpt, int *__restrict __sign) > throw () __attribute__ ((__nonnull__ (3, 4))); >extern char *qfcvt (long double __value, int __ndigit, > int *__restrict __decpt, int *__restrict __sign) > throw () __attribute__ ((__nonnull__ (3, 4))); >extern char *qgcvt (long double __value, int __ndigit, char *__buf) > throw () __attribute__ ((__nonnull__ (3))); > > > > >extern int ecvt_r (double __value, int __ndigit, int *__restrict __decpt, > int *__restrict __sign, char *__restrict __buf, > size_t __len) throw () __attribute__ ((__nonnull__ (3, 4, 5))); >extern int fcvt_r (double __value, int __ndigit, int *__restrict __decpt, > int *__restrict __sign, char *__restrict __buf, > size_t __len) throw () __attribute__ ((__nonnull__ (3, 4, 5))); > >extern int qecvt_r (long double __value, int __ndigit, > int *__restrict __decpt, int *__restrict __sign, > char *__restrict __buf, size_t __len) > throw () __attribute__ ((__nonnull__ (3, 4, 5))); >extern int qfcvt_r (long double __value, int __ndigit, > int *__restrict __decpt, int *__restrict __sign, > char *__restrict __buf, size_t __len) > throw () __attribute__ ((__nonnull__ (3, 4, 5))); > > > > > > > >extern int mblen (__const char *__s, size_t __n) throw (); > > >extern int mbtowc (wchar_t *__restrict __pwc, > __const char *__restrict __s, size_t __n) throw (); > > >extern int wctomb (char *__s, wchar_t __wchar) throw (); > > > >extern size_t mbstowcs (wchar_t *__restrict __pwcs, > __const char *__restrict __s, size_t __n) throw (); > >extern size_t wcstombs (char *__restrict __s, > __const wchar_t *__restrict __pwcs, size_t __n) > throw (); > > > > > > > > >extern int rpmatch (__const char *__response) throw () __attribute__ ((__nonnull__ (1))); ># 902 "/usr/include/stdlib.h" 3 4 >extern int getsubopt (char **__restrict __optionp, > char *__const *__restrict __tokens, > char **__restrict __valuep) > throw () __attribute__ ((__nonnull__ (1, 2, 3))); > > > > > >extern void setkey (__const char *__key) throw () __attribute__ ((__nonnull__ (1))); > > > > > > > >extern int posix_openpt (int __oflag); > > > > > > > >extern int grantpt (int __fd) throw (); > > > >extern int unlockpt (int __fd) throw (); > > > > >extern char *ptsname (int __fd) throw (); > > > > > > >extern int ptsname_r (int __fd, char *__buf, size_t __buflen) > throw () __attribute__ ((__nonnull__ (2))); > > >extern int getpt (void); > > > > > > >extern int getloadavg (double __loadavg[], int __nelem) > throw () __attribute__ ((__nonnull__ (1))); > > > > > >} ># 53 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/cstdlib" 2 3 ># 84 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/cstdlib" 3 >namespace std >{ > using ::div_t; > using ::ldiv_t; > > using ::abort; > using ::abs; > using ::atexit; > using ::atof; > using ::atoi; > using ::atol; > using ::bsearch; > using ::calloc; > using ::div; > using ::exit; > using ::free; > using ::getenv; > using ::labs; > using ::ldiv; > using ::malloc; > > using ::mblen; > using ::mbstowcs; > using ::mbtowc; > > using ::qsort; > using ::rand; > using ::realloc; > using ::srand; > using ::strtod; > using ::strtol; > using ::strtoul; > using ::system; > > using ::wcstombs; > using ::wctomb; > > > inline long > abs(long __i) { return labs(__i); } > > inline ldiv_t > div(long __i, long __j) { return ldiv(__i, __j); } >} ># 140 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/cstdlib" 3 >namespace __gnu_cxx >{ > > using ::lldiv_t; > > > > > > using ::_Exit; > > > inline long long > abs(long long __x) { return __x >= 0 ? __x : -__x; } > > inline long long > llabs(long long __x) { return __x >= 0 ? __x : -__x; } > > > inline lldiv_t > div(long long __n, long long __d) > { lldiv_t __q; __q.quot = __n / __d; __q.rem = __n % __d; return __q; } > > inline lldiv_t > lldiv(long long __n, long long __d) > { lldiv_t __q; __q.quot = __n / __d; __q.rem = __n % __d; return __q; } ># 176 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/cstdlib" 3 > using ::atoll; > using ::strtoll; > using ::strtoull; > > using ::strtof; > using ::strtold; >} > >namespace std >{ > > using __gnu_cxx::lldiv_t; > > using __gnu_cxx::_Exit; > using __gnu_cxx::abs; > using __gnu_cxx::llabs; > > using __gnu_cxx::div; > using __gnu_cxx::lldiv; > > using __gnu_cxx::atoll; > using __gnu_cxx::strtof; > using __gnu_cxx::strtoll; > using __gnu_cxx::strtoull; > using __gnu_cxx::strtold; >} ># 68 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_algobase.h" 2 3 > ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/new" 1 3 ># 42 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/new" 3 ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/exception" 1 3 ># 40 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/exception" 3 >extern "C++" { > >namespace std >{ ># 52 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/exception" 3 > class exception > { > public: > exception() throw() { } > virtual ~exception() throw(); > > > virtual const char* what() const throw(); > }; > > > > class bad_exception : public exception > { > public: > bad_exception() throw() { } > > > virtual ~bad_exception() throw(); > }; > > > typedef void (*terminate_handler) (); > > typedef void (*unexpected_handler) (); > > > terminate_handler set_terminate(terminate_handler) throw(); > > > void terminate() __attribute__ ((__noreturn__)); > > > unexpected_handler set_unexpected(unexpected_handler) throw(); > > > void unexpected() __attribute__ ((__noreturn__)); ># 100 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/exception" 3 > bool uncaught_exception() throw(); >} > >namespace __gnu_cxx >{ ># 113 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/exception" 3 > void __verbose_terminate_handler (); >} > >} ># 43 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/new" 2 3 > >extern "C++" { > >namespace std >{ > > > > > > class bad_alloc : public exception > { > public: > bad_alloc() throw() { } > > > virtual ~bad_alloc() throw(); > }; > > struct nothrow_t { }; > extern const nothrow_t nothrow; > > > typedef void (*new_handler)(); > > new_handler set_new_handler(new_handler) throw(); >} ># 82 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/new" 3 >void* operator new(std::size_t) throw (std::bad_alloc); >void* operator new[](std::size_t) throw (std::bad_alloc); >void operator delete(void*) throw(); >void operator delete[](void*) throw(); >void* operator new(std::size_t, const std::nothrow_t&) throw(); >void* operator new[](std::size_t, const std::nothrow_t&) throw(); >void operator delete(void*, const std::nothrow_t&) throw(); >void operator delete[](void*, const std::nothrow_t&) throw(); > > >inline void* operator new(std::size_t, void* __p) throw() { return __p; } >inline void* operator new[](std::size_t, void* __p) throw() { return __p; } > > >inline void operator delete (void*, void*) throw() { }; >inline void operator delete[](void*, void*) throw() { }; > >} ># 70 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_algobase.h" 2 3 ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/iosfwd" 1 3 ># 43 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/iosfwd" 3 > ># 44 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/iosfwd" 3 > > ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/i686-pc-linux-gnu/bits/c++locale.h" 1 3 ># 39 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/i686-pc-linux-gnu/bits/c++locale.h" 3 > ># 40 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/i686-pc-linux-gnu/bits/c++locale.h" 3 > ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/clocale" 1 3 ># 47 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/clocale" 3 > ># 48 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/clocale" 3 > ># 1 "/usr/include/locale.h" 1 3 4 ># 29 "/usr/include/locale.h" 3 4 ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/stddef.h" 1 3 4 ># 30 "/usr/include/locale.h" 2 3 4 ># 1 "/usr/include/bits/locale.h" 1 3 4 ># 27 "/usr/include/bits/locale.h" 3 4 >enum >{ > __LC_CTYPE = 0, > __LC_NUMERIC = 1, > __LC_TIME = 2, > __LC_COLLATE = 3, > __LC_MONETARY = 4, > __LC_MESSAGES = 5, > __LC_ALL = 6, > __LC_PAPER = 7, > __LC_NAME = 8, > __LC_ADDRESS = 9, > __LC_TELEPHONE = 10, > __LC_MEASUREMENT = 11, > __LC_IDENTIFICATION = 12 >}; ># 31 "/usr/include/locale.h" 2 3 4 > >extern "C" { ># 52 "/usr/include/locale.h" 3 4 >struct lconv >{ > > > char *decimal_point; > char *thousands_sep; > > > > > > char *grouping; > > > > > > char *int_curr_symbol; > char *currency_symbol; > char *mon_decimal_point; > char *mon_thousands_sep; > char *mon_grouping; > char *positive_sign; > char *negative_sign; > char int_frac_digits; > char frac_digits; > > char p_cs_precedes; > > char p_sep_by_space; > > char n_cs_precedes; > > char n_sep_by_space; > > > > > > > char p_sign_posn; > char n_sign_posn; > > > char int_p_cs_precedes; > > char int_p_sep_by_space; > > char int_n_cs_precedes; > > char int_n_sep_by_space; > > > > > > > char int_p_sign_posn; > char int_n_sign_posn; ># 119 "/usr/include/locale.h" 3 4 >}; > > > > > >extern char *setlocale (int __category, __const char *__locale) throw (); > > >extern struct lconv *localeconv (void) throw (); > > ># 148 "/usr/include/locale.h" 3 4 >typedef __locale_t locale_t; > > > > > >extern __locale_t newlocale (int __category_mask, __const char *__locale, > __locale_t __base) throw (); ># 189 "/usr/include/locale.h" 3 4 >extern __locale_t duplocale (__locale_t __dataset) throw (); > > > >extern void freelocale (__locale_t __dataset) throw (); > > > > > > >extern __locale_t uselocale (__locale_t __dataset) throw (); > > > > > > > >} ># 50 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/clocale" 2 3 > > > > > >namespace std >{ > using ::lconv; > using ::setlocale; > using ::localeconv; >} ># 42 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/i686-pc-linux-gnu/bits/c++locale.h" 2 3 ># 1 "/usr/include/langinfo.h" 1 3 4 ># 24 "/usr/include/langinfo.h" 3 4 ># 1 "/usr/include/nl_types.h" 1 3 4 ># 31 "/usr/include/nl_types.h" 3 4 >extern "C" { > > >typedef void *nl_catd; > > >typedef int nl_item; > > > > > >extern nl_catd catopen (__const char *__cat_name, int __flag) __attribute__ ((__nonnull__ (1))); > > > >extern char *catgets (nl_catd __catalog, int __set, int __number, > __const char *__string) throw () __attribute__ ((__nonnull__ (1))); > > >extern int catclose (nl_catd __catalog) throw () __attribute__ ((__nonnull__ (1))); > >} ># 25 "/usr/include/langinfo.h" 2 3 4 > ># 1 "/usr/include/bits/locale.h" 1 3 4 ># 27 "/usr/include/langinfo.h" 2 3 4 > > >extern "C" { ># 43 "/usr/include/langinfo.h" 3 4 >enum >{ > > > > ABDAY_1 = (((__LC_TIME) << 16) | (0)), > > ABDAY_2, > > ABDAY_3, > > ABDAY_4, > > ABDAY_5, > > ABDAY_6, > > ABDAY_7, > > > > DAY_1, > > DAY_2, > > DAY_3, > > DAY_4, > > DAY_5, > > DAY_6, > > DAY_7, > > > > ABMON_1, > > ABMON_2, > > ABMON_3, > > ABMON_4, > > ABMON_5, > > ABMON_6, > > ABMON_7, > > ABMON_8, > > ABMON_9, > > ABMON_10, > > ABMON_11, > > ABMON_12, > > > > MON_1, > > MON_2, > > MON_3, > > MON_4, > > MON_5, > > MON_6, > > MON_7, > > MON_8, > > MON_9, > > MON_10, > > MON_11, > > MON_12, > > > AM_STR, > > PM_STR, > > > D_T_FMT, > > D_FMT, > > T_FMT, > > T_FMT_AMPM, > > > ERA, > > __ERA_YEAR, > > > > ERA_D_FMT, > > ALT_DIGITS, > > ERA_D_T_FMT, > > ERA_T_FMT, > > > _NL_TIME_ERA_NUM_ENTRIES, > _NL_TIME_ERA_ENTRIES, > > _NL_WABDAY_1, > _NL_WABDAY_2, > _NL_WABDAY_3, > _NL_WABDAY_4, > _NL_WABDAY_5, > _NL_WABDAY_6, > _NL_WABDAY_7, > > > _NL_WDAY_1, > _NL_WDAY_2, > _NL_WDAY_3, > _NL_WDAY_4, > _NL_WDAY_5, > _NL_WDAY_6, > _NL_WDAY_7, > > > _NL_WABMON_1, > _NL_WABMON_2, > _NL_WABMON_3, > _NL_WABMON_4, > _NL_WABMON_5, > _NL_WABMON_6, > _NL_WABMON_7, > _NL_WABMON_8, > _NL_WABMON_9, > _NL_WABMON_10, > _NL_WABMON_11, > _NL_WABMON_12, > > > _NL_WMON_1, > _NL_WMON_2, > _NL_WMON_3, > _NL_WMON_4, > _NL_WMON_5, > _NL_WMON_6, > _NL_WMON_7, > _NL_WMON_8, > _NL_WMON_9, > _NL_WMON_10, > _NL_WMON_11, > _NL_WMON_12, > > _NL_WAM_STR, > _NL_WPM_STR, > > _NL_WD_T_FMT, > _NL_WD_FMT, > _NL_WT_FMT, > _NL_WT_FMT_AMPM, > > _NL_WERA_YEAR, > _NL_WERA_D_FMT, > _NL_WALT_DIGITS, > _NL_WERA_D_T_FMT, > _NL_WERA_T_FMT, > > _NL_TIME_WEEK_NDAYS, > _NL_TIME_WEEK_1STDAY, > _NL_TIME_WEEK_1STWEEK, > _NL_TIME_FIRST_WEEKDAY, > _NL_TIME_FIRST_WORKDAY, > _NL_TIME_CAL_DIRECTION, > _NL_TIME_TIMEZONE, > > _DATE_FMT, > > _NL_W_DATE_FMT, > > _NL_TIME_CODESET, > > _NL_NUM_LC_TIME, > > > > > _NL_COLLATE_NRULES = (((__LC_COLLATE) << 16) | (0)), > _NL_COLLATE_RULESETS, > _NL_COLLATE_TABLEMB, > _NL_COLLATE_WEIGHTMB, > _NL_COLLATE_EXTRAMB, > _NL_COLLATE_INDIRECTMB, > _NL_COLLATE_GAP1, > _NL_COLLATE_GAP2, > _NL_COLLATE_GAP3, > _NL_COLLATE_TABLEWC, > _NL_COLLATE_WEIGHTWC, > _NL_COLLATE_EXTRAWC, > _NL_COLLATE_INDIRECTWC, > _NL_COLLATE_SYMB_HASH_SIZEMB, > _NL_COLLATE_SYMB_TABLEMB, > _NL_COLLATE_SYMB_EXTRAMB, > _NL_COLLATE_COLLSEQMB, > _NL_COLLATE_COLLSEQWC, > _NL_COLLATE_CODESET, > _NL_NUM_LC_COLLATE, > > > > > _NL_CTYPE_CLASS = (((__LC_CTYPE) << 16) | (0)), > _NL_CTYPE_TOUPPER, > _NL_CTYPE_GAP1, > _NL_CTYPE_TOLOWER, > _NL_CTYPE_GAP2, > _NL_CTYPE_CLASS32, > _NL_CTYPE_GAP3, > _NL_CTYPE_GAP4, > _NL_CTYPE_GAP5, > _NL_CTYPE_GAP6, > _NL_CTYPE_CLASS_NAMES, > _NL_CTYPE_MAP_NAMES, > _NL_CTYPE_WIDTH, > _NL_CTYPE_MB_CUR_MAX, > _NL_CTYPE_CODESET_NAME, > CODESET = _NL_CTYPE_CODESET_NAME, > > _NL_CTYPE_TOUPPER32, > _NL_CTYPE_TOLOWER32, > _NL_CTYPE_CLASS_OFFSET, > _NL_CTYPE_MAP_OFFSET, > _NL_CTYPE_INDIGITS_MB_LEN, > _NL_CTYPE_INDIGITS0_MB, > _NL_CTYPE_INDIGITS1_MB, > _NL_CTYPE_INDIGITS2_MB, > _NL_CTYPE_INDIGITS3_MB, > _NL_CTYPE_INDIGITS4_MB, > _NL_CTYPE_INDIGITS5_MB, > _NL_CTYPE_INDIGITS6_MB, > _NL_CTYPE_INDIGITS7_MB, > _NL_CTYPE_INDIGITS8_MB, > _NL_CTYPE_INDIGITS9_MB, > _NL_CTYPE_INDIGITS_WC_LEN, > _NL_CTYPE_INDIGITS0_WC, > _NL_CTYPE_INDIGITS1_WC, > _NL_CTYPE_INDIGITS2_WC, > _NL_CTYPE_INDIGITS3_WC, > _NL_CTYPE_INDIGITS4_WC, > _NL_CTYPE_INDIGITS5_WC, > _NL_CTYPE_INDIGITS6_WC, > _NL_CTYPE_INDIGITS7_WC, > _NL_CTYPE_INDIGITS8_WC, > _NL_CTYPE_INDIGITS9_WC, > _NL_CTYPE_OUTDIGIT0_MB, > _NL_CTYPE_OUTDIGIT1_MB, > _NL_CTYPE_OUTDIGIT2_MB, > _NL_CTYPE_OUTDIGIT3_MB, > _NL_CTYPE_OUTDIGIT4_MB, > _NL_CTYPE_OUTDIGIT5_MB, > _NL_CTYPE_OUTDIGIT6_MB, > _NL_CTYPE_OUTDIGIT7_MB, > _NL_CTYPE_OUTDIGIT8_MB, > _NL_CTYPE_OUTDIGIT9_MB, > _NL_CTYPE_OUTDIGIT0_WC, > _NL_CTYPE_OUTDIGIT1_WC, > _NL_CTYPE_OUTDIGIT2_WC, > _NL_CTYPE_OUTDIGIT3_WC, > _NL_CTYPE_OUTDIGIT4_WC, > _NL_CTYPE_OUTDIGIT5_WC, > _NL_CTYPE_OUTDIGIT6_WC, > _NL_CTYPE_OUTDIGIT7_WC, > _NL_CTYPE_OUTDIGIT8_WC, > _NL_CTYPE_OUTDIGIT9_WC, > _NL_CTYPE_TRANSLIT_TAB_SIZE, > _NL_CTYPE_TRANSLIT_FROM_IDX, > _NL_CTYPE_TRANSLIT_FROM_TBL, > _NL_CTYPE_TRANSLIT_TO_IDX, > _NL_CTYPE_TRANSLIT_TO_TBL, > _NL_CTYPE_TRANSLIT_DEFAULT_MISSING_LEN, > _NL_CTYPE_TRANSLIT_DEFAULT_MISSING, > _NL_CTYPE_TRANSLIT_IGNORE_LEN, > _NL_CTYPE_TRANSLIT_IGNORE, > _NL_CTYPE_MAP_TO_NONASCII, > _NL_CTYPE_EXTRA_MAP_1, > _NL_CTYPE_EXTRA_MAP_2, > _NL_CTYPE_EXTRA_MAP_3, > _NL_CTYPE_EXTRA_MAP_4, > _NL_CTYPE_EXTRA_MAP_5, > _NL_CTYPE_EXTRA_MAP_6, > _NL_CTYPE_EXTRA_MAP_7, > _NL_CTYPE_EXTRA_MAP_8, > _NL_CTYPE_EXTRA_MAP_9, > _NL_CTYPE_EXTRA_MAP_10, > _NL_CTYPE_EXTRA_MAP_11, > _NL_CTYPE_EXTRA_MAP_12, > _NL_CTYPE_EXTRA_MAP_13, > _NL_CTYPE_EXTRA_MAP_14, > _NL_NUM_LC_CTYPE, > > > > > __INT_CURR_SYMBOL = (((__LC_MONETARY) << 16) | (0)), > > > > __CURRENCY_SYMBOL, > > > > __MON_DECIMAL_POINT, > > > > __MON_THOUSANDS_SEP, > > > > __MON_GROUPING, > > > > __POSITIVE_SIGN, > > > > __NEGATIVE_SIGN, > > > > __INT_FRAC_DIGITS, > > > > __FRAC_DIGITS, > > > > __P_CS_PRECEDES, > > > > __P_SEP_BY_SPACE, > > > > __N_CS_PRECEDES, > > > > __N_SEP_BY_SPACE, > > > > __P_SIGN_POSN, > > > > __N_SIGN_POSN, > > > > _NL_MONETARY_CRNCYSTR, > > __INT_P_CS_PRECEDES, > > > > __INT_P_SEP_BY_SPACE, > > > > __INT_N_CS_PRECEDES, > > > > __INT_N_SEP_BY_SPACE, > > > > __INT_P_SIGN_POSN, > > > > __INT_N_SIGN_POSN, > > > > _NL_MONETARY_DUO_INT_CURR_SYMBOL, > _NL_MONETARY_DUO_CURRENCY_SYMBOL, > _NL_MONETARY_DUO_INT_FRAC_DIGITS, > _NL_MONETARY_DUO_FRAC_DIGITS, > _NL_MONETARY_DUO_P_CS_PRECEDES, > _NL_MONETARY_DUO_P_SEP_BY_SPACE, > _NL_MONETARY_DUO_N_CS_PRECEDES, > _NL_MONETARY_DUO_N_SEP_BY_SPACE, > _NL_MONETARY_DUO_INT_P_CS_PRECEDES, > _NL_MONETARY_DUO_INT_P_SEP_BY_SPACE, > _NL_MONETARY_DUO_INT_N_CS_PRECEDES, > _NL_MONETARY_DUO_INT_N_SEP_BY_SPACE, > _NL_MONETARY_DUO_P_SIGN_POSN, > _NL_MONETARY_DUO_N_SIGN_POSN, > _NL_MONETARY_DUO_INT_P_SIGN_POSN, > _NL_MONETARY_DUO_INT_N_SIGN_POSN, > _NL_MONETARY_UNO_VALID_FROM, > _NL_MONETARY_UNO_VALID_TO, > _NL_MONETARY_DUO_VALID_FROM, > _NL_MONETARY_DUO_VALID_TO, > _NL_MONETARY_CONVERSION_RATE, > _NL_MONETARY_DECIMAL_POINT_WC, > _NL_MONETARY_THOUSANDS_SEP_WC, > _NL_MONETARY_CODESET, > _NL_NUM_LC_MONETARY, > > > > __DECIMAL_POINT = (((__LC_NUMERIC) << 16) | (0)), > > > > RADIXCHAR = __DECIMAL_POINT, > > __THOUSANDS_SEP, > > > > THOUSEP = __THOUSANDS_SEP, > > __GROUPING, > > > > _NL_NUMERIC_DECIMAL_POINT_WC, > _NL_NUMERIC_THOUSANDS_SEP_WC, > _NL_NUMERIC_CODESET, > _NL_NUM_LC_NUMERIC, > > __YESEXPR = (((__LC_MESSAGES) << 16) | (0)), > > __NOEXPR, > > __YESSTR, > > > > __NOSTR, > > > > _NL_MESSAGES_CODESET, > _NL_NUM_LC_MESSAGES, > > _NL_PAPER_HEIGHT = (((__LC_PAPER) << 16) | (0)), > _NL_PAPER_WIDTH, > _NL_PAPER_CODESET, > _NL_NUM_LC_PAPER, > > _NL_NAME_NAME_FMT = (((__LC_NAME) << 16) | (0)), > _NL_NAME_NAME_GEN, > _NL_NAME_NAME_MR, > _NL_NAME_NAME_MRS, > _NL_NAME_NAME_MISS, > _NL_NAME_NAME_MS, > _NL_NAME_CODESET, > _NL_NUM_LC_NAME, > > _NL_ADDRESS_POSTAL_FMT = (((__LC_ADDRESS) << 16) | (0)), > _NL_ADDRESS_COUNTRY_NAME, > _NL_ADDRESS_COUNTRY_POST, > _NL_ADDRESS_COUNTRY_AB2, > _NL_ADDRESS_COUNTRY_AB3, > _NL_ADDRESS_COUNTRY_CAR, > _NL_ADDRESS_COUNTRY_NUM, > _NL_ADDRESS_COUNTRY_ISBN, > _NL_ADDRESS_LANG_NAME, > _NL_ADDRESS_LANG_AB, > _NL_ADDRESS_LANG_TERM, > _NL_ADDRESS_LANG_LIB, > _NL_ADDRESS_CODESET, > _NL_NUM_LC_ADDRESS, > > _NL_TELEPHONE_TEL_INT_FMT = (((__LC_TELEPHONE) << 16) | (0)), > _NL_TELEPHONE_TEL_DOM_FMT, > _NL_TELEPHONE_INT_SELECT, > _NL_TELEPHONE_INT_PREFIX, > _NL_TELEPHONE_CODESET, > _NL_NUM_LC_TELEPHONE, > > _NL_MEASUREMENT_MEASUREMENT = (((__LC_MEASUREMENT) << 16) | (0)), > _NL_MEASUREMENT_CODESET, > _NL_NUM_LC_MEASUREMENT, > > _NL_IDENTIFICATION_TITLE = (((__LC_IDENTIFICATION) << 16) | (0)), > _NL_IDENTIFICATION_SOURCE, > _NL_IDENTIFICATION_ADDRESS, > _NL_IDENTIFICATION_CONTACT, > _NL_IDENTIFICATION_EMAIL, > _NL_IDENTIFICATION_TEL, > _NL_IDENTIFICATION_FAX, > _NL_IDENTIFICATION_LANGUAGE, > _NL_IDENTIFICATION_TERRITORY, > _NL_IDENTIFICATION_AUDIENCE, > _NL_IDENTIFICATION_APPLICATION, > _NL_IDENTIFICATION_ABBREVIATION, > _NL_IDENTIFICATION_REVISION, > _NL_IDENTIFICATION_DATE, > _NL_IDENTIFICATION_CATEGORY, > _NL_IDENTIFICATION_CODESET, > _NL_NUM_LC_IDENTIFICATION, > > > _NL_NUM >}; ># 576 "/usr/include/langinfo.h" 3 4 >extern char *nl_langinfo (nl_item __item) throw (); ># 587 "/usr/include/langinfo.h" 3 4 >extern char *nl_langinfo_l (nl_item __item, __locale_t l); > > >} ># 43 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/i686-pc-linux-gnu/bits/c++locale.h" 2 3 ># 1 "/usr/include/iconv.h" 1 3 4 ># 24 "/usr/include/iconv.h" 3 4 ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/stddef.h" 1 3 4 ># 25 "/usr/include/iconv.h" 2 3 4 > > >extern "C" { > > >typedef void *iconv_t; > > > > > > > >extern iconv_t iconv_open (__const char *__tocode, __const char *__fromcode); > > > > >extern size_t iconv (iconv_t __cd, char **__restrict __inbuf, > size_t *__restrict __inbytesleft, > char **__restrict __outbuf, > size_t *__restrict __outbytesleft); > > > > > >extern int iconv_close (iconv_t __cd); > >} ># 44 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/i686-pc-linux-gnu/bits/c++locale.h" 2 3 ># 1 "/usr/include/libintl.h" 1 3 4 ># 35 "/usr/include/libintl.h" 3 4 >extern "C" { > > > > >extern char *gettext (__const char *__msgid) throw (); > > > >extern char *dgettext (__const char *__domainname, __const char *__msgid) > throw (); >extern char *__dgettext (__const char *__domainname, __const char *__msgid) > throw () __attribute__ ((__format_arg__ (2))); > > > >extern char *dcgettext (__const char *__domainname, > __const char *__msgid, int __category) throw (); >extern char *__dcgettext (__const char *__domainname, > __const char *__msgid, int __category) > throw () __attribute__ ((__format_arg__ (2))); > > > > >extern char *ngettext (__const char *__msgid1, __const char *__msgid2, > unsigned long int __n) > throw () __attribute__ ((__format_arg__ (1))) __attribute__ ((__format_arg__ (2))); > > > >extern char *dngettext (__const char *__domainname, __const char *__msgid1, > __const char *__msgid2, unsigned long int __n) > throw () __attribute__ ((__format_arg__ (2))) __attribute__ ((__format_arg__ (3))); > > > >extern char *dcngettext (__const char *__domainname, __const char *__msgid1, > __const char *__msgid2, unsigned long int __n, > int __category) > throw () __attribute__ ((__format_arg__ (2))) __attribute__ ((__format_arg__ (3))); > > > > > >extern char *textdomain (__const char *__domainname) throw (); > > > >extern char *bindtextdomain (__const char *__domainname, > __const char *__dirname) throw (); > > > >extern char *bind_textdomain_codeset (__const char *__domainname, > __const char *__codeset) throw (); ># 120 "/usr/include/libintl.h" 3 4 >} ># 45 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/i686-pc-linux-gnu/bits/c++locale.h" 2 3 > > > > > > >namespace __gnu_cxx >{ > extern "C" __typeof(uselocale) __uselocale; >} > > >namespace std >{ > typedef __locale_t __c_locale; > > > > > > template<typename _Tv> > int > __convert_from_v(char* __out, const int __size, const char* __fmt, > > _Tv __v, const __c_locale& __cloc, int __prec = -1) > { > __c_locale __old = __gnu_cxx::__uselocale(__cloc); ># 82 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/i686-pc-linux-gnu/bits/c++locale.h" 3 > int __ret; > > if (__prec >= 0) > __ret = snprintf(__out, __size, __fmt, __prec, __v); > else > __ret = snprintf(__out, __size, __fmt, __v); ># 96 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/i686-pc-linux-gnu/bits/c++locale.h" 3 > __gnu_cxx::__uselocale(__old); > > > > > return __ret; > } >} ># 47 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/iosfwd" 2 3 ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/cctype" 1 3 ># 46 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/cctype" 3 > ># 47 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/cctype" 3 > > ># 1 "/usr/include/ctype.h" 1 3 4 ># 30 "/usr/include/ctype.h" 3 4 >extern "C" { ># 48 "/usr/include/ctype.h" 3 4 >enum >{ > _ISupper = ((0) < 8 ? ((1 << (0)) << 8) : ((1 << (0)) >> 8)), > _ISlower = ((1) < 8 ? ((1 << (1)) << 8) : ((1 << (1)) >> 8)), > _ISalpha = ((2) < 8 ? ((1 << (2)) << 8) : ((1 << (2)) >> 8)), > _ISdigit = ((3) < 8 ? ((1 << (3)) << 8) : ((1 << (3)) >> 8)), > _ISxdigit = ((4) < 8 ? ((1 << (4)) << 8) : ((1 << (4)) >> 8)), > _ISspace = ((5) < 8 ? ((1 << (5)) << 8) : ((1 << (5)) >> 8)), > _ISprint = ((6) < 8 ? ((1 << (6)) << 8) : ((1 << (6)) >> 8)), > _ISgraph = ((7) < 8 ? ((1 << (7)) << 8) : ((1 << (7)) >> 8)), > _ISblank = ((8) < 8 ? ((1 << (8)) << 8) : ((1 << (8)) >> 8)), > _IScntrl = ((9) < 8 ? ((1 << (9)) << 8) : ((1 << (9)) >> 8)), > _ISpunct = ((10) < 8 ? ((1 << (10)) << 8) : ((1 << (10)) >> 8)), > _ISalnum = ((11) < 8 ? ((1 << (11)) << 8) : ((1 << (11)) >> 8)) >}; ># 81 "/usr/include/ctype.h" 3 4 >extern __const unsigned short int **__ctype_b_loc (void) > __attribute__ ((__const)); >extern __const __int32_t **__ctype_tolower_loc (void) > __attribute__ ((__const)); >extern __const __int32_t **__ctype_toupper_loc (void) > __attribute__ ((__const)); ># 96 "/usr/include/ctype.h" 3 4 > > > > > > >extern int isalnum (int) throw (); >extern int isalpha (int) throw (); >extern int iscntrl (int) throw (); >extern int isdigit (int) throw (); >extern int islower (int) throw (); >extern int isgraph (int) throw (); >extern int isprint (int) throw (); >extern int ispunct (int) throw (); >extern int isspace (int) throw (); >extern int isupper (int) throw (); >extern int isxdigit (int) throw (); > > > >extern int tolower (int __c) throw (); > > >extern int toupper (int __c) throw (); > > > > > > > > >extern int isblank (int) throw (); > > > > > > >extern int isctype (int __c, int __mask) throw (); > > > > > > >extern int isascii (int __c) throw (); > > > >extern int toascii (int __c) throw (); > > > >extern int _toupper (int) throw (); >extern int _tolower (int) throw (); ># 247 "/usr/include/ctype.h" 3 4 >extern int isalnum_l (int, __locale_t) throw (); >extern int isalpha_l (int, __locale_t) throw (); >extern int iscntrl_l (int, __locale_t) throw (); >extern int isdigit_l (int, __locale_t) throw (); >extern int islower_l (int, __locale_t) throw (); >extern int isgraph_l (int, __locale_t) throw (); >extern int isprint_l (int, __locale_t) throw (); >extern int ispunct_l (int, __locale_t) throw (); >extern int isspace_l (int, __locale_t) throw (); >extern int isupper_l (int, __locale_t) throw (); >extern int isxdigit_l (int, __locale_t) throw (); > >extern int isblank_l (int, __locale_t) throw (); > > > >extern int __tolower_l (int __c, __locale_t __l) throw (); >extern int tolower_l (int __c, __locale_t __l) throw (); > > >extern int __toupper_l (int __c, __locale_t __l) throw (); >extern int toupper_l (int __c, __locale_t __l) throw (); ># 323 "/usr/include/ctype.h" 3 4 >} ># 50 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/cctype" 2 3 ># 66 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/cctype" 3 >namespace std >{ > using ::isalnum; > using ::isalpha; > using ::iscntrl; > using ::isdigit; > using ::isgraph; > using ::islower; > using ::isprint; > using ::ispunct; > using ::isspace; > using ::isupper; > using ::isxdigit; > using ::tolower; > using ::toupper; >} ># 48 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/iosfwd" 2 3 ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stringfwd.h" 1 3 ># 42 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stringfwd.h" 3 > ># 43 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stringfwd.h" 3 > > > >namespace std >{ > template<typename _Alloc> > class allocator; > > template<class _CharT> > struct char_traits; > > template<typename _CharT, typename _Traits = char_traits<_CharT>, > typename _Alloc = allocator<_CharT> > > class basic_string; > > template<> struct char_traits<char>; > > typedef basic_string<char> string; > > > template<> struct char_traits<wchar_t>; > > typedef basic_string<wchar_t> wstring; > >} ># 49 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/iosfwd" 2 3 ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/fpos.h" 1 3 ># 42 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/fpos.h" 3 > ># 43 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/fpos.h" 3 > ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/i686-pc-linux-gnu/bits/c++io.h" 1 3 ># 35 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/i686-pc-linux-gnu/bits/c++io.h" 3 ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/cstdio" 1 3 ># 47 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/cstdio" 3 > ># 48 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/cstdio" 3 > > > > ># 1 "/usr/include/stdio.h" 1 3 4 ># 30 "/usr/include/stdio.h" 3 4 >extern "C" { > > > ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/stddef.h" 1 3 4 ># 35 "/usr/include/stdio.h" 2 3 4 ># 44 "/usr/include/stdio.h" 3 4 > > >typedef struct _IO_FILE FILE; > > > > > ># 62 "/usr/include/stdio.h" 3 4 >typedef struct _IO_FILE __FILE; ># 72 "/usr/include/stdio.h" 3 4 ># 1 "/usr/include/libio.h" 1 3 4 ># 32 "/usr/include/libio.h" 3 4 ># 1 "/usr/include/_G_config.h" 1 3 4 ># 14 "/usr/include/_G_config.h" 3 4 ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/stddef.h" 1 3 4 ># 354 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/stddef.h" 3 4 >typedef unsigned int wint_t; ># 15 "/usr/include/_G_config.h" 2 3 4 ># 24 "/usr/include/_G_config.h" 3 4 ># 1 "/usr/include/wchar.h" 1 3 4 ># 48 "/usr/include/wchar.h" 3 4 ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/stddef.h" 1 3 4 ># 49 "/usr/include/wchar.h" 2 3 4 > ># 1 "/usr/include/bits/wchar.h" 1 3 4 ># 51 "/usr/include/wchar.h" 2 3 4 ># 76 "/usr/include/wchar.h" 3 4 >typedef struct >{ > int __count; > union > { > wint_t __wch; > char __wchb[4]; > } __value; >} __mbstate_t; ># 25 "/usr/include/_G_config.h" 2 3 4 > >typedef struct >{ > __off_t __pos; > __mbstate_t __state; >} _G_fpos_t; >typedef struct >{ > __off64_t __pos; > __mbstate_t __state; >} _G_fpos64_t; ># 44 "/usr/include/_G_config.h" 3 4 ># 1 "/usr/include/gconv.h" 1 3 4 ># 28 "/usr/include/gconv.h" 3 4 ># 1 "/usr/include/wchar.h" 1 3 4 ># 48 "/usr/include/wchar.h" 3 4 ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/stddef.h" 1 3 4 ># 49 "/usr/include/wchar.h" 2 3 4 ># 29 "/usr/include/gconv.h" 2 3 4 > > ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/stddef.h" 1 3 4 ># 32 "/usr/include/gconv.h" 2 3 4 > > > > > >enum >{ > __GCONV_OK = 0, > __GCONV_NOCONV, > __GCONV_NODB, > __GCONV_NOMEM, > > __GCONV_EMPTY_INPUT, > __GCONV_FULL_OUTPUT, > __GCONV_ILLEGAL_INPUT, > __GCONV_INCOMPLETE_INPUT, > > __GCONV_ILLEGAL_DESCRIPTOR, > __GCONV_INTERNAL_ERROR >}; > > > >enum >{ > __GCONV_IS_LAST = 0x0001, > __GCONV_IGNORE_ERRORS = 0x0002 >}; > > > >struct __gconv_step; >struct __gconv_step_data; >struct __gconv_loaded_object; >struct __gconv_trans_data; > > > >typedef int (*__gconv_fct) (struct __gconv_step *, struct __gconv_step_data *, > __const unsigned char **, __const unsigned char *, > unsigned char **, size_t *, int, int); > > >typedef wint_t (*__gconv_btowc_fct) (struct __gconv_step *, unsigned char); > > >typedef int (*__gconv_init_fct) (struct __gconv_step *); >typedef void (*__gconv_end_fct) (struct __gconv_step *); > > > >typedef int (*__gconv_trans_fct) (struct __gconv_step *, > struct __gconv_step_data *, void *, > __const unsigned char *, > __const unsigned char **, > __const unsigned char *, unsigned char **, > size_t *); > > >typedef int (*__gconv_trans_context_fct) (void *, __const unsigned char *, > __const unsigned char *, > unsigned char *, unsigned char *); > > >typedef int (*__gconv_trans_query_fct) (__const char *, __const char ***, > size_t *); > > >typedef int (*__gconv_trans_init_fct) (void **, const char *); >typedef void (*__gconv_trans_end_fct) (void *); > >struct __gconv_trans_data >{ > > __gconv_trans_fct __trans_fct; > __gconv_trans_context_fct __trans_context_fct; > __gconv_trans_end_fct __trans_end_fct; > void *__data; > struct __gconv_trans_data *__next; >}; > > > >struct __gconv_step >{ > struct __gconv_loaded_object *__shlib_handle; > __const char *__modname; > > int __counter; > > char *__from_name; > char *__to_name; > > __gconv_fct __fct; > __gconv_btowc_fct __btowc_fct; > __gconv_init_fct __init_fct; > __gconv_end_fct __end_fct; > > > > int __min_needed_from; > int __max_needed_from; > int __min_needed_to; > int __max_needed_to; > > > int __stateful; > > void *__data; >}; > > > >struct __gconv_step_data >{ > unsigned char *__outbuf; > unsigned char *__outbufend; > > > > int __flags; > > > > int __invocation_counter; > > > > int __internal_use; > > __mbstate_t *__statep; > __mbstate_t __state; > > > > struct __gconv_trans_data *__trans; >}; > > > >typedef struct __gconv_info >{ > size_t __nsteps; > struct __gconv_step *__steps; > __extension__ struct __gconv_step_data __data []; >} *__gconv_t; ># 45 "/usr/include/_G_config.h" 2 3 4 >typedef union >{ > struct __gconv_info __cd; > struct > { > struct __gconv_info __cd; > struct __gconv_step_data __data; > } __combined; >} _G_iconv_t; > >typedef int _G_int16_t __attribute__ ((__mode__ (__HI__))); >typedef int _G_int32_t __attribute__ ((__mode__ (__SI__))); >typedef unsigned int _G_uint16_t __attribute__ ((__mode__ (__HI__))); >typedef unsigned int _G_uint32_t __attribute__ ((__mode__ (__SI__))); ># 33 "/usr/include/libio.h" 2 3 4 ># 53 "/usr/include/libio.h" 3 4 ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/stdarg.h" 1 3 4 ># 43 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/stdarg.h" 3 4 >typedef __builtin_va_list __gnuc_va_list; ># 54 "/usr/include/libio.h" 2 3 4 ># 166 "/usr/include/libio.h" 3 4 >struct _IO_jump_t; struct _IO_FILE; ># 176 "/usr/include/libio.h" 3 4 >typedef void _IO_lock_t; > > > > > >struct _IO_marker { > struct _IO_marker *_next; > struct _IO_FILE *_sbuf; > > > > int _pos; ># 199 "/usr/include/libio.h" 3 4 >}; > > >enum __codecvt_result >{ > __codecvt_ok, > __codecvt_partial, > __codecvt_error, > __codecvt_noconv >}; > > > > >struct _IO_codecvt >{ > void (*__codecvt_destr) (struct _IO_codecvt *); > enum __codecvt_result (*__codecvt_do_out) (struct _IO_codecvt *, > __mbstate_t *, > const wchar_t *, > const wchar_t *, > const wchar_t **, char *, > char *, char **); > enum __codecvt_result (*__codecvt_do_unshift) (struct _IO_codecvt *, > __mbstate_t *, char *, > char *, char **); > enum __codecvt_result (*__codecvt_do_in) (struct _IO_codecvt *, > __mbstate_t *, > const char *, const char *, > const char **, wchar_t *, > wchar_t *, wchar_t **); > int (*__codecvt_do_encoding) (struct _IO_codecvt *); > int (*__codecvt_do_always_noconv) (struct _IO_codecvt *); > int (*__codecvt_do_length) (struct _IO_codecvt *, __mbstate_t *, > const char *, const char *, size_t); > int (*__codecvt_do_max_length) (struct _IO_codecvt *); > > _G_iconv_t __cd_in; > _G_iconv_t __cd_out; >}; > > >struct _IO_wide_data >{ > wchar_t *_IO_read_ptr; > wchar_t *_IO_read_end; > wchar_t *_IO_read_base; > wchar_t *_IO_write_base; > wchar_t *_IO_write_ptr; > wchar_t *_IO_write_end; > wchar_t *_IO_buf_base; > wchar_t *_IO_buf_end; > > wchar_t *_IO_save_base; > wchar_t *_IO_backup_base; > > wchar_t *_IO_save_end; > > __mbstate_t _IO_state; > __mbstate_t _IO_last_state; > struct _IO_codecvt _codecvt; > > wchar_t _shortbuf[1]; > > const struct _IO_jump_t *_wide_vtable; >}; > > >struct _IO_FILE { > int _flags; > > > > > char* _IO_read_ptr; > char* _IO_read_end; > char* _IO_read_base; > char* _IO_write_base; > char* _IO_write_ptr; > char* _IO_write_end; > char* _IO_buf_base; > char* _IO_buf_end; > > char *_IO_save_base; > char *_IO_backup_base; > char *_IO_save_end; > > struct _IO_marker *_markers; > > struct _IO_FILE *_chain; > > int _fileno; > > > > int _flags2; > > __off_t _old_offset; > > > > unsigned short _cur_column; > signed char _vtable_offset; > char _shortbuf[1]; > > > > _IO_lock_t *_lock; ># 315 "/usr/include/libio.h" 3 4 > __off64_t _offset; > > > struct _IO_codecvt *_codecvt; > struct _IO_wide_data *_wide_data; > > > > > int _mode; > > char _unused2[15 * sizeof (int) - 2 * sizeof (void *)]; > >}; > > > > > >struct _IO_FILE_plus; > >extern struct _IO_FILE_plus _IO_2_1_stdin_; >extern struct _IO_FILE_plus _IO_2_1_stdout_; >extern struct _IO_FILE_plus _IO_2_1_stderr_; ># 354 "/usr/include/libio.h" 3 4 >typedef __ssize_t __io_read_fn (void *__cookie, char *__buf, size_t __nbytes); > > > > > > > >typedef __ssize_t __io_write_fn (void *__cookie, __const char *__buf, > size_t __n); > > > > > > > >typedef int __io_seek_fn (void *__cookie, __off64_t *__pos, int __w); > > >typedef int __io_close_fn (void *__cookie); > > > > >typedef __io_read_fn cookie_read_function_t; >typedef __io_write_fn cookie_write_function_t; >typedef __io_seek_fn cookie_seek_function_t; >typedef __io_close_fn cookie_close_function_t; > > >typedef struct >{ > __io_read_fn *read; > __io_write_fn *write; > __io_seek_fn *seek; > __io_close_fn *close; >} _IO_cookie_io_functions_t; >typedef _IO_cookie_io_functions_t cookie_io_functions_t; > >struct _IO_cookie_file; > > >extern void _IO_cookie_init (struct _IO_cookie_file *__cfile, int __read_write, > void *__cookie, _IO_cookie_io_functions_t __fns); > > > > >extern "C" { > > >extern int __underflow (_IO_FILE *) throw (); >extern int __uflow (_IO_FILE *) throw (); >extern int __overflow (_IO_FILE *, int) throw (); >extern wint_t __wunderflow (_IO_FILE *) throw (); >extern wint_t __wuflow (_IO_FILE *) throw (); >extern wint_t __woverflow (_IO_FILE *, wint_t) throw (); ># 444 "/usr/include/libio.h" 3 4 >extern int _IO_getc (_IO_FILE *__fp) throw (); >extern int _IO_putc (int __c, _IO_FILE *__fp) throw (); >extern int _IO_feof (_IO_FILE *__fp) throw (); >extern int _IO_ferror (_IO_FILE *__fp) throw (); > >extern int _IO_peekc_locked (_IO_FILE *__fp) throw (); > > > > > >extern void _IO_flockfile (_IO_FILE *) throw (); >extern void _IO_funlockfile (_IO_FILE *) throw (); >extern int _IO_ftrylockfile (_IO_FILE *) throw (); ># 474 "/usr/include/libio.h" 3 4 >extern int _IO_vfscanf (_IO_FILE * __restrict, const char * __restrict, > __gnuc_va_list, int *__restrict) throw (); >extern int _IO_vfprintf (_IO_FILE *__restrict, const char *__restrict, > __gnuc_va_list) throw (); >extern __ssize_t _IO_padn (_IO_FILE *, int, __ssize_t) throw (); >extern size_t _IO_sgetn (_IO_FILE *, void *, size_t) throw (); > >extern __off64_t _IO_seekoff (_IO_FILE *, __off64_t, int, int) throw (); >extern __off64_t _IO_seekpos (_IO_FILE *, __off64_t, int) throw (); > >extern void _IO_free_backup_area (_IO_FILE *) throw (); > > >extern wint_t _IO_getwc (_IO_FILE *__fp) throw (); >extern wint_t _IO_putwc (wchar_t __wc, _IO_FILE *__fp) throw (); >extern int _IO_fwide (_IO_FILE *__fp, int __mode) throw (); ># 523 "/usr/include/libio.h" 3 4 >extern int _IO_vfwscanf (_IO_FILE * __restrict, const wchar_t * __restrict, > __gnuc_va_list, int *__restrict) throw (); >extern int _IO_vfwprintf (_IO_FILE *__restrict, const wchar_t *__restrict, > __gnuc_va_list) throw (); >extern __ssize_t _IO_wpadn (_IO_FILE *, wint_t, __ssize_t) throw (); >extern void _IO_free_wbackup_area (_IO_FILE *) throw (); > > > >} ># 73 "/usr/include/stdio.h" 2 3 4 > > > > >typedef __gnuc_va_list va_list; ># 86 "/usr/include/stdio.h" 3 4 > > >typedef _G_fpos_t fpos_t; > > > > > >typedef _G_fpos64_t fpos64_t; ># 138 "/usr/include/stdio.h" 3 4 ># 1 "/usr/include/bits/stdio_lim.h" 1 3 4 ># 139 "/usr/include/stdio.h" 2 3 4 > > > >extern struct _IO_FILE *stdin; >extern struct _IO_FILE *stdout; >extern struct _IO_FILE *stderr; > > > > > > > >extern int remove (__const char *__filename) throw (); > >extern int rename (__const char *__old, __const char *__new) throw (); > > > > > > > > > >extern FILE *tmpfile (void); ># 174 "/usr/include/stdio.h" 3 4 >extern FILE *tmpfile64 (void); > > > >extern char *tmpnam (char *__s) throw (); > > > > > >extern char *tmpnam_r (char *__s) throw (); ># 196 "/usr/include/stdio.h" 3 4 >extern char *tempnam (__const char *__dir, __const char *__pfx) > throw () __attribute__ ((__malloc__)); > > > > > > > > >extern int fclose (FILE *__stream); > > > > >extern int fflush (FILE *__stream); > ># 221 "/usr/include/stdio.h" 3 4 >extern int fflush_unlocked (FILE *__stream); ># 231 "/usr/include/stdio.h" 3 4 >extern int fcloseall (void); > > > > > > > > > >extern FILE *fopen (__const char *__restrict __filename, > __const char *__restrict __modes); > > > > >extern FILE *freopen (__const char *__restrict __filename, > __const char *__restrict __modes, > FILE *__restrict __stream); ># 262 "/usr/include/stdio.h" 3 4 > > >extern FILE *fopen64 (__const char *__restrict __filename, > __const char *__restrict __modes); >extern FILE *freopen64 (__const char *__restrict __filename, > __const char *__restrict __modes, > FILE *__restrict __stream); > > > > >extern FILE *fdopen (int __fd, __const char *__modes) throw (); > > > > > >extern FILE *fopencookie (void *__restrict __magic_cookie, > __const char *__restrict __modes, > _IO_cookie_io_functions_t __io_funcs) throw (); > > >extern FILE *fmemopen (void *__s, size_t __len, __const char *__modes) throw (); > > > > >extern FILE *open_memstream (char **__restrict __bufloc, > size_t *__restrict __sizeloc) throw (); > > > > > > >extern void setbuf (FILE *__restrict __stream, char *__restrict __buf) throw (); > > > >extern int setvbuf (FILE *__restrict __stream, char *__restrict __buf, > int __modes, size_t __n) throw (); > > > > > >extern void setbuffer (FILE *__restrict __stream, char *__restrict __buf, > size_t __size) throw (); > > >extern void setlinebuf (FILE *__stream) throw (); > > > > > > > > >extern int fprintf (FILE *__restrict __stream, > __const char *__restrict __format, ...); > > > > >extern int printf (__const char *__restrict __format, ...); > >extern int sprintf (char *__restrict __s, > __const char *__restrict __format, ...) throw (); > > > > > >extern int vfprintf (FILE *__restrict __s, __const char *__restrict __format, > __gnuc_va_list __arg); > > > > >extern int vprintf (__const char *__restrict __format, __gnuc_va_list __arg); > >extern int vsprintf (char *__restrict __s, __const char *__restrict __format, > __gnuc_va_list __arg) throw (); > > > > > >extern int snprintf (char *__restrict __s, size_t __maxlen, > __const char *__restrict __format, ...) > throw () __attribute__ ((__format__ (__printf__, 3, 4))); > >extern int vsnprintf (char *__restrict __s, size_t __maxlen, > __const char *__restrict __format, __gnuc_va_list __arg) > throw () __attribute__ ((__format__ (__printf__, 3, 0))); > > > > > > >extern int vasprintf (char **__restrict __ptr, __const char *__restrict __f, > __gnuc_va_list __arg) > throw () __attribute__ ((__format__ (__printf__, 2, 0))); >extern int __asprintf (char **__restrict __ptr, > __const char *__restrict __fmt, ...) > throw () __attribute__ ((__format__ (__printf__, 2, 3))); >extern int asprintf (char **__restrict __ptr, > __const char *__restrict __fmt, ...) > throw () __attribute__ ((__format__ (__printf__, 2, 3))); > > > > > > > >extern int vdprintf (int __fd, __const char *__restrict __fmt, > __gnuc_va_list __arg) > __attribute__ ((__format__ (__printf__, 2, 0))); >extern int dprintf (int __fd, __const char *__restrict __fmt, ...) > __attribute__ ((__format__ (__printf__, 2, 3))); > > > > > > > > >extern int fscanf (FILE *__restrict __stream, > __const char *__restrict __format, ...); > > > > >extern int scanf (__const char *__restrict __format, ...); > >extern int sscanf (__const char *__restrict __s, > __const char *__restrict __format, ...) throw (); > > > > > > > > >extern int vfscanf (FILE *__restrict __s, __const char *__restrict __format, > __gnuc_va_list __arg) > __attribute__ ((__format__ (__scanf__, 2, 0))); > > > > > >extern int vscanf (__const char *__restrict __format, __gnuc_va_list __arg) > __attribute__ ((__format__ (__scanf__, 1, 0))); > > >extern int vsscanf (__const char *__restrict __s, > __const char *__restrict __format, __gnuc_va_list __arg) > throw () __attribute__ ((__format__ (__scanf__, 2, 0))); > > > > > > > > > >extern int fgetc (FILE *__stream); >extern int getc (FILE *__stream); > > > > > >extern int getchar (void); > ># 454 "/usr/include/stdio.h" 3 4 >extern int getc_unlocked (FILE *__stream); >extern int getchar_unlocked (void); ># 465 "/usr/include/stdio.h" 3 4 >extern int fgetc_unlocked (FILE *__stream); > > > > > > > > > > > >extern int fputc (int __c, FILE *__stream); >extern int putc (int __c, FILE *__stream); > > > > > >extern int putchar (int __c); > ># 498 "/usr/include/stdio.h" 3 4 >extern int fputc_unlocked (int __c, FILE *__stream); > > > > > > > >extern int putc_unlocked (int __c, FILE *__stream); >extern int putchar_unlocked (int __c); > > > > > > >extern int getw (FILE *__stream); > > >extern int putw (int __w, FILE *__stream); > > > > > > > > >extern char *fgets (char *__restrict __s, int __n, FILE *__restrict __stream); > > > > > > >extern char *gets (char *__s); > ># 543 "/usr/include/stdio.h" 3 4 >extern char *fgets_unlocked (char *__restrict __s, int __n, > FILE *__restrict __stream); ># 559 "/usr/include/stdio.h" 3 4 >extern __ssize_t __getdelim (char **__restrict __lineptr, > size_t *__restrict __n, int __delimiter, > FILE *__restrict __stream); >extern __ssize_t getdelim (char **__restrict __lineptr, > size_t *__restrict __n, int __delimiter, > FILE *__restrict __stream); > > > > > > > >extern __ssize_t getline (char **__restrict __lineptr, > size_t *__restrict __n, > FILE *__restrict __stream); > > > > > > > > >extern int fputs (__const char *__restrict __s, FILE *__restrict __stream); > > > > > >extern int puts (__const char *__s); > > > > > > >extern int ungetc (int __c, FILE *__stream); > > > > > > >extern size_t fread (void *__restrict __ptr, size_t __size, > size_t __n, FILE *__restrict __stream); > > > > >extern size_t fwrite (__const void *__restrict __ptr, size_t __size, > size_t __n, FILE *__restrict __s); > ># 620 "/usr/include/stdio.h" 3 4 >extern int fputs_unlocked (__const char *__restrict __s, > FILE *__restrict __stream); ># 631 "/usr/include/stdio.h" 3 4 >extern size_t fread_unlocked (void *__restrict __ptr, size_t __size, > size_t __n, FILE *__restrict __stream); >extern size_t fwrite_unlocked (__const void *__restrict __ptr, size_t __size, > size_t __n, FILE *__restrict __stream); > > > > > > > > >extern int fseek (FILE *__stream, long int __off, int __whence); > > > > >extern long int ftell (FILE *__stream); > > > > >extern void rewind (FILE *__stream); > ># 667 "/usr/include/stdio.h" 3 4 >extern int fseeko (FILE *__stream, __off_t __off, int __whence); > > > > >extern __off_t ftello (FILE *__stream); ># 686 "/usr/include/stdio.h" 3 4 > > > > > > >extern int fgetpos (FILE *__restrict __stream, fpos_t *__restrict __pos); > > > > >extern int fsetpos (FILE *__stream, __const fpos_t *__pos); ># 709 "/usr/include/stdio.h" 3 4 > > > >extern int fseeko64 (FILE *__stream, __off64_t __off, int __whence); >extern __off64_t ftello64 (FILE *__stream); >extern int fgetpos64 (FILE *__restrict __stream, fpos64_t *__restrict __pos); >extern int fsetpos64 (FILE *__stream, __const fpos64_t *__pos); > > > > >extern void clearerr (FILE *__stream) throw (); > >extern int feof (FILE *__stream) throw (); > >extern int ferror (FILE *__stream) throw (); > > > > >extern void clearerr_unlocked (FILE *__stream) throw (); >extern int feof_unlocked (FILE *__stream) throw (); >extern int ferror_unlocked (FILE *__stream) throw (); > > > > > > > > >extern void perror (__const char *__s); > > > > > > ># 1 "/usr/include/bits/sys_errlist.h" 1 3 4 ># 27 "/usr/include/bits/sys_errlist.h" 3 4 >extern int sys_nerr; >extern __const char *__const sys_errlist[]; > > >extern int _sys_nerr; >extern __const char *__const _sys_errlist[]; ># 748 "/usr/include/stdio.h" 2 3 4 > > > > >extern int fileno (FILE *__stream) throw (); > > > > >extern int fileno_unlocked (FILE *__stream) throw (); ># 767 "/usr/include/stdio.h" 3 4 >extern FILE *popen (__const char *__command, __const char *__modes); > > > > > >extern int pclose (FILE *__stream); > > > > > >extern char *ctermid (char *__s) throw (); > > > > > >extern char *cuserid (char *__s); > > > > >struct obstack; > > >extern int obstack_printf (struct obstack *__restrict __obstack, > __const char *__restrict __format, ...) > throw () __attribute__ ((__format__ (__printf__, 2, 3))); >extern int obstack_vprintf (struct obstack *__restrict __obstack, > __const char *__restrict __format, > __gnuc_va_list __args) > throw () __attribute__ ((__format__ (__printf__, 2, 0))); > > > > > > > >extern void flockfile (FILE *__stream) throw (); > > > >extern int ftrylockfile (FILE *__stream) throw (); > > >extern void funlockfile (FILE *__stream) throw (); ># 828 "/usr/include/stdio.h" 3 4 ># 1 "/usr/include/bits/stdio.h" 1 3 4 ># 33 "/usr/include/bits/stdio.h" 3 4 >inline int >vprintf (__const char *__restrict __fmt, __gnuc_va_list __arg) >{ > return vfprintf (stdout, __fmt, __arg); >} > > >inline int >getchar (void) >{ > return _IO_getc (stdin); >} > > > > >inline int >getc_unlocked (FILE *__fp) >{ > return (__builtin_expect ((__fp)->_IO_read_ptr >= (__fp)->_IO_read_end, 0) ? __uflow (__fp) : *(unsigned char *) (__fp)->_IO_read_ptr++); >} > > >inline int >getchar_unlocked (void) >{ > return (__builtin_expect ((stdin)->_IO_read_ptr >= (stdin)->_IO_read_end, 0) ? __uflow (stdin) : *(unsigned char *) (stdin)->_IO_read_ptr++); >} > > > > >inline int >putchar (int __c) >{ > return _IO_putc (__c, stdout); >} > > > > >inline int >fputc_unlocked (int __c, FILE *__stream) >{ > return (__builtin_expect ((__stream)->_IO_write_ptr >= (__stream)->_IO_write_end, 0) ? __overflow (__stream, (unsigned char) (__c)) : (unsigned char) (*(__stream)->_IO_write_ptr++ = (__c))); >} > > > > > >inline int >putc_unlocked (int __c, FILE *__stream) >{ > return (__builtin_expect ((__stream)->_IO_write_ptr >= (__stream)->_IO_write_end, 0) ? __overflow (__stream, (unsigned char) (__c)) : (unsigned char) (*(__stream)->_IO_write_ptr++ = (__c))); >} > > >inline int >putchar_unlocked (int __c) >{ > return (__builtin_expect ((stdout)->_IO_write_ptr >= (stdout)->_IO_write_end, 0) ? __overflow (stdout, (unsigned char) (__c)) : (unsigned char) (*(stdout)->_IO_write_ptr++ = (__c))); >} > > > > > >inline __ssize_t >getline (char **__lineptr, size_t *__n, FILE *__stream) >{ > return __getdelim (__lineptr, __n, '\n', __stream); >} > > > > > >inline int >feof_unlocked (FILE *__stream) throw () >{ > return (((__stream)->_flags & 0x10) != 0); >} > > >inline int >ferror_unlocked (FILE *__stream) throw () >{ > return (((__stream)->_flags & 0x20) != 0); >} ># 829 "/usr/include/stdio.h" 2 3 4 > > > > > >} ># 53 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/cstdio" 2 3 ># 97 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/cstdio" 3 >namespace std >{ > using ::FILE; > using ::fpos_t; > > using ::clearerr; > using ::fclose; > using ::feof; > using ::ferror; > using ::fflush; > using ::fgetc; > using ::fgetpos; > using ::fgets; > using ::fopen; > using ::fprintf; > using ::fputc; > using ::fputs; > using ::fread; > using ::freopen; > using ::fscanf; > using ::fseek; > using ::fsetpos; > using ::ftell; > using ::fwrite; > using ::getc; > using ::getchar; > using ::gets; > using ::perror; > using ::printf; > using ::putc; > using ::putchar; > using ::puts; > using ::remove; > using ::rename; > using ::rewind; > using ::scanf; > using ::setbuf; > using ::setvbuf; > using ::sprintf; > using ::sscanf; > using ::tmpfile; > using ::tmpnam; > using ::ungetc; > using ::vfprintf; > using ::vprintf; > using ::vsprintf; >} ># 153 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/cstdio" 3 >namespace __gnu_cxx >{ ># 167 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/cstdio" 3 > using ::snprintf; > using ::vfscanf; > using ::vscanf; > using ::vsnprintf; > using ::vsscanf; > >} > >namespace std >{ > using __gnu_cxx::snprintf; > using __gnu_cxx::vfscanf; > using __gnu_cxx::vscanf; > using __gnu_cxx::vsnprintf; > using __gnu_cxx::vsscanf; >} ># 36 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/i686-pc-linux-gnu/bits/c++io.h" 2 3 > ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/i686-pc-linux-gnu/bits/gthr.h" 1 3 ># 98 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/i686-pc-linux-gnu/bits/gthr.h" 3 ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/i686-pc-linux-gnu/bits/gthr-default.h" 1 3 ># 37 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/i686-pc-linux-gnu/bits/gthr-default.h" 3 ># 1 "/usr/include/pthread.h" 1 3 4 ># 20 "/usr/include/pthread.h" 3 4 ># 1 "/usr/include/sched.h" 1 3 4 ># 29 "/usr/include/sched.h" 3 4 ># 1 "/usr/include/time.h" 1 3 4 ># 30 "/usr/include/sched.h" 2 3 4 > > ># 1 "/usr/include/bits/sched.h" 1 3 4 ># 62 "/usr/include/bits/sched.h" 3 4 >struct sched_param > { > int __sched_priority; > }; > >extern "C" { > > > >extern int clone (int (*__fn) (void *__arg), void *__child_stack, > int __flags, void *__arg) throw (); > > >} ># 98 "/usr/include/bits/sched.h" 3 4 >typedef unsigned long int __cpu_mask; > > > > > > >typedef struct >{ > __cpu_mask __bits[1024 / (8 * sizeof (__cpu_mask))]; >} cpu_set_t; ># 33 "/usr/include/sched.h" 2 3 4 > > > > >extern "C" { > > >extern int sched_setparam (__pid_t __pid, __const struct sched_param *__param) > throw (); > > >extern int sched_getparam (__pid_t __pid, struct sched_param *__param) throw (); > > >extern int sched_setscheduler (__pid_t __pid, int __policy, > __const struct sched_param *__param) throw (); > > >extern int sched_getscheduler (__pid_t __pid) throw (); > > >extern int sched_yield (void) throw (); > > >extern int sched_get_priority_max (int __algorithm) throw (); > > >extern int sched_get_priority_min (int __algorithm) throw (); > > >extern int sched_rr_get_interval (__pid_t __pid, struct timespec *__t) throw (); ># 76 "/usr/include/sched.h" 3 4 >extern int sched_setaffinity (__pid_t __pid, size_t __cpusetsize, > __const cpu_set_t *__cpuset) throw (); > > >extern int sched_getaffinity (__pid_t __pid, size_t __cpusetsize, > cpu_set_t *__cpuset) throw (); > > >} ># 21 "/usr/include/pthread.h" 2 3 4 ># 1 "/usr/include/time.h" 1 3 4 ># 30 "/usr/include/time.h" 3 4 >extern "C" { > > > > > > > ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/stddef.h" 1 3 4 ># 39 "/usr/include/time.h" 2 3 4 > > > ># 1 "/usr/include/bits/time.h" 1 3 4 ># 43 "/usr/include/time.h" 2 3 4 ># 129 "/usr/include/time.h" 3 4 > > >struct tm >{ > int tm_sec; > int tm_min; > int tm_hour; > int tm_mday; > int tm_mon; > int tm_year; > int tm_wday; > int tm_yday; > int tm_isdst; > > > long int tm_gmtoff; > __const char *tm_zone; > > > > >}; > > > > > > > > >struct itimerspec > { > struct timespec it_interval; > struct timespec it_value; > }; > > >struct sigevent; ># 178 "/usr/include/time.h" 3 4 > > > >extern clock_t clock (void) throw (); > > >extern time_t time (time_t *__timer) throw (); > > >extern double difftime (time_t __time1, time_t __time0) > throw () __attribute__ ((__const__)); > > >extern time_t mktime (struct tm *__tp) throw (); > > > > > >extern size_t strftime (char *__restrict __s, size_t __maxsize, > __const char *__restrict __format, > __const struct tm *__restrict __tp) throw (); > > > > > >extern char *strptime (__const char *__restrict __s, > __const char *__restrict __fmt, struct tm *__tp) > throw (); > > > > > > > >extern size_t strftime_l (char *__restrict __s, size_t __maxsize, > __const char *__restrict __format, > __const struct tm *__restrict __tp, > __locale_t __loc) throw (); > >extern char *strptime_l (__const char *__restrict __s, > __const char *__restrict __fmt, struct tm *__tp, > __locale_t __loc) throw (); > > > > > > >extern struct tm *gmtime (__const time_t *__timer) throw (); > > > >extern struct tm *localtime (__const time_t *__timer) throw (); > > > > > >extern struct tm *gmtime_r (__const time_t *__restrict __timer, > struct tm *__restrict __tp) throw (); > > > >extern struct tm *localtime_r (__const time_t *__restrict __timer, > struct tm *__restrict __tp) throw (); > > > > > >extern char *asctime (__const struct tm *__tp) throw (); > > >extern char *ctime (__const time_t *__timer) throw (); > > > > > > > >extern char *asctime_r (__const struct tm *__restrict __tp, > char *__restrict __buf) throw (); > > >extern char *ctime_r (__const time_t *__restrict __timer, > char *__restrict __buf) throw (); > > > > >extern char *__tzname[2]; >extern int __daylight; >extern long int __timezone; > > > > >extern char *tzname[2]; > > > >extern void tzset (void) throw (); > > > >extern int daylight; >extern long int timezone; > > > > > >extern int stime (__const time_t *__when) throw (); ># 309 "/usr/include/time.h" 3 4 >extern time_t timegm (struct tm *__tp) throw (); > > >extern time_t timelocal (struct tm *__tp) throw (); > > >extern int dysize (int __year) throw () __attribute__ ((__const__)); ># 324 "/usr/include/time.h" 3 4 >extern int nanosleep (__const struct timespec *__requested_time, > struct timespec *__remaining); > > > >extern int clock_getres (clockid_t __clock_id, struct timespec *__res) throw (); > > >extern int clock_gettime (clockid_t __clock_id, struct timespec *__tp) throw (); > > >extern int clock_settime (clockid_t __clock_id, __const struct timespec *__tp) > throw (); > > > > > > >extern int clock_nanosleep (clockid_t __clock_id, int __flags, > __const struct timespec *__req, > struct timespec *__rem); > > >extern int clock_getcpuclockid (pid_t __pid, clockid_t *__clock_id) throw (); > > > > >extern int timer_create (clockid_t __clock_id, > struct sigevent *__restrict __evp, > timer_t *__restrict __timerid) throw (); > > >extern int timer_delete (timer_t __timerid) throw (); > > >extern int timer_settime (timer_t __timerid, int __flags, > __const struct itimerspec *__restrict __value, > struct itimerspec *__restrict __ovalue) throw (); > > >extern int timer_gettime (timer_t __timerid, struct itimerspec *__value) > throw (); > > >extern int timer_getoverrun (timer_t __timerid) throw (); ># 386 "/usr/include/time.h" 3 4 >extern int getdate_err; ># 395 "/usr/include/time.h" 3 4 >extern struct tm *getdate (__const char *__string); ># 409 "/usr/include/time.h" 3 4 >extern int getdate_r (__const char *__restrict __string, > struct tm *__restrict __resbufp); > > >} ># 22 "/usr/include/pthread.h" 2 3 4 > > ># 1 "/usr/include/signal.h" 1 3 4 ># 31 "/usr/include/signal.h" 3 4 >extern "C" { > ># 1 "/usr/include/bits/sigset.h" 1 3 4 ># 34 "/usr/include/signal.h" 2 3 4 ># 400 "/usr/include/signal.h" 3 4 >} ># 25 "/usr/include/pthread.h" 2 3 4 ># 1 "/usr/include/bits/pthreadtypes.h" 1 3 4 ># 26 "/usr/include/pthread.h" 2 3 4 ># 1 "/usr/include/bits/initspin.h" 1 3 4 ># 27 "/usr/include/pthread.h" 2 3 4 > > >extern "C" { ># 59 "/usr/include/pthread.h" 3 4 >enum >{ > PTHREAD_CREATE_JOINABLE, > > PTHREAD_CREATE_DETACHED > >}; > >enum >{ > PTHREAD_INHERIT_SCHED, > > PTHREAD_EXPLICIT_SCHED > >}; > >enum >{ > PTHREAD_SCOPE_SYSTEM, > > PTHREAD_SCOPE_PROCESS > >}; > >enum >{ > PTHREAD_MUTEX_TIMED_NP, > PTHREAD_MUTEX_RECURSIVE_NP, > PTHREAD_MUTEX_ERRORCHECK_NP, > PTHREAD_MUTEX_ADAPTIVE_NP > > , > PTHREAD_MUTEX_NORMAL = PTHREAD_MUTEX_TIMED_NP, > PTHREAD_MUTEX_RECURSIVE = PTHREAD_MUTEX_RECURSIVE_NP, > PTHREAD_MUTEX_ERRORCHECK = PTHREAD_MUTEX_ERRORCHECK_NP, > PTHREAD_MUTEX_DEFAULT = PTHREAD_MUTEX_NORMAL > > > > , PTHREAD_MUTEX_FAST_NP = PTHREAD_MUTEX_ADAPTIVE_NP > >}; > >enum >{ > PTHREAD_PROCESS_PRIVATE, > > PTHREAD_PROCESS_SHARED > >}; > > >enum >{ > PTHREAD_RWLOCK_PREFER_READER_NP, > PTHREAD_RWLOCK_PREFER_WRITER_NP, > PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP, > PTHREAD_RWLOCK_DEFAULT_NP = PTHREAD_RWLOCK_PREFER_WRITER_NP >}; ># 131 "/usr/include/pthread.h" 3 4 >struct _pthread_cleanup_buffer >{ > void (*__routine) (void *); > void *__arg; > int __canceltype; > struct _pthread_cleanup_buffer *__prev; >}; > > > >enum >{ > PTHREAD_CANCEL_ENABLE, > > PTHREAD_CANCEL_DISABLE > >}; >enum >{ > PTHREAD_CANCEL_DEFERRED, > > PTHREAD_CANCEL_ASYNCHRONOUS > >}; ># 163 "/usr/include/pthread.h" 3 4 >extern int pthread_create (pthread_t *__restrict __threadp, > __const pthread_attr_t *__restrict __attr, > void *(*__start_routine) (void *), > void *__restrict __arg) throw (); > > >extern pthread_t pthread_self (void) throw (); > > >extern int pthread_equal (pthread_t __thread1, pthread_t __thread2) throw (); > > >extern void pthread_exit (void *__retval) __attribute__ ((__noreturn__)); > > > > >extern int pthread_join (pthread_t __th, void **__thread_return); > > > > > >extern int pthread_detach (pthread_t __th) throw (); > > > > > > > >extern int pthread_attr_init (pthread_attr_t *__attr) throw (); > > >extern int pthread_attr_destroy (pthread_attr_t *__attr) throw (); > > >extern int pthread_attr_setdetachstate (pthread_attr_t *__attr, > int __detachstate) throw (); > > >extern int pthread_attr_getdetachstate (__const pthread_attr_t *__attr, > int *__detachstate) throw (); > > >extern int pthread_attr_setschedparam (pthread_attr_t *__restrict __attr, > __const struct sched_param *__restrict > __param) throw (); > > >extern int pthread_attr_getschedparam (__const pthread_attr_t *__restrict > __attr, > struct sched_param *__restrict __param) > throw (); > > >extern int pthread_attr_setschedpolicy (pthread_attr_t *__attr, int __policy) > throw (); > > >extern int pthread_attr_getschedpolicy (__const pthread_attr_t *__restrict > __attr, int *__restrict __policy) > throw (); > > >extern int pthread_attr_setinheritsched (pthread_attr_t *__attr, > int __inherit) throw (); > > >extern int pthread_attr_getinheritsched (__const pthread_attr_t *__restrict > __attr, int *__restrict __inherit) > throw (); > > >extern int pthread_attr_setscope (pthread_attr_t *__attr, int __scope) > throw (); > > >extern int pthread_attr_getscope (__const pthread_attr_t *__restrict __attr, > int *__restrict __scope) throw (); > > > >extern int pthread_attr_setguardsize (pthread_attr_t *__attr, > size_t __guardsize) throw (); > > >extern int pthread_attr_getguardsize (__const pthread_attr_t *__restrict > __attr, size_t *__restrict __guardsize) > throw (); > > > > > > >extern int pthread_attr_setstackaddr (pthread_attr_t *__attr, > void *__stackaddr) throw (); > > >extern int pthread_attr_getstackaddr (__const pthread_attr_t *__restrict > __attr, void **__restrict __stackaddr) > throw (); > > > > > >extern int pthread_attr_setstack (pthread_attr_t *__attr, void *__stackaddr, > size_t __stacksize) throw (); > > >extern int pthread_attr_getstack (__const pthread_attr_t *__restrict __attr, > void **__restrict __stackaddr, > size_t *__restrict __stacksize) throw (); > > > > > >extern int pthread_attr_setstacksize (pthread_attr_t *__attr, > size_t __stacksize) throw (); > > >extern int pthread_attr_getstacksize (__const pthread_attr_t *__restrict > __attr, size_t *__restrict __stacksize) > throw (); > > > > > >extern int pthread_getattr_np (pthread_t __th, pthread_attr_t *__attr) throw (); > > > > > > >extern int pthread_setschedparam (pthread_t __target_thread, int __policy, > __const struct sched_param *__param) > throw (); > > >extern int pthread_getschedparam (pthread_t __target_thread, > int *__restrict __policy, > struct sched_param *__restrict __param) > throw (); > > > >extern int pthread_getconcurrency (void) throw (); > > >extern int pthread_setconcurrency (int __level) throw (); > > > > > > > >extern int pthread_yield (void) throw (); > > > > > > >extern int pthread_mutex_init (pthread_mutex_t *__restrict __mutex, > __const pthread_mutexattr_t *__restrict > __mutex_attr) throw (); > > >extern int pthread_mutex_destroy (pthread_mutex_t *__mutex) throw (); > > >extern int pthread_mutex_trylock (pthread_mutex_t *__mutex) throw (); > > >extern int pthread_mutex_lock (pthread_mutex_t *__mutex) throw (); > > > >extern int pthread_mutex_timedlock (pthread_mutex_t *__restrict __mutex, > __const struct timespec *__restrict > __abstime) throw (); > > > >extern int pthread_mutex_unlock (pthread_mutex_t *__mutex) throw (); > > > > > > >extern int pthread_mutexattr_init (pthread_mutexattr_t *__attr) throw (); > > >extern int pthread_mutexattr_destroy (pthread_mutexattr_t *__attr) throw (); > > >extern int pthread_mutexattr_getpshared (__const pthread_mutexattr_t * > __restrict __attr, > int *__restrict __pshared) throw (); > > >extern int pthread_mutexattr_setpshared (pthread_mutexattr_t *__attr, > int __pshared) throw (); > > > > > >extern int pthread_mutexattr_settype (pthread_mutexattr_t *__attr, int __kind) > throw (); > > >extern int pthread_mutexattr_gettype (__const pthread_mutexattr_t *__restrict > __attr, int *__restrict __kind) throw (); > > > > > > > >extern int pthread_cond_init (pthread_cond_t *__restrict __cond, > __const pthread_condattr_t *__restrict > __cond_attr) throw (); > > >extern int pthread_cond_destroy (pthread_cond_t *__cond) throw (); > > >extern int pthread_cond_signal (pthread_cond_t *__cond) throw (); > > >extern int pthread_cond_broadcast (pthread_cond_t *__cond) throw (); > > > >extern int pthread_cond_wait (pthread_cond_t *__restrict __cond, > pthread_mutex_t *__restrict __mutex); > > > > > >extern int pthread_cond_timedwait (pthread_cond_t *__restrict __cond, > pthread_mutex_t *__restrict __mutex, > __const struct timespec *__restrict > __abstime); > > > > >extern int pthread_condattr_init (pthread_condattr_t *__attr) throw (); > > >extern int pthread_condattr_destroy (pthread_condattr_t *__attr) throw (); > > >extern int pthread_condattr_getpshared (__const pthread_condattr_t * > __restrict __attr, > int *__restrict __pshared) throw (); > > >extern int pthread_condattr_setpshared (pthread_condattr_t *__attr, > int __pshared) throw (); > > > > > > > >extern int pthread_rwlock_init (pthread_rwlock_t *__restrict __rwlock, > __const pthread_rwlockattr_t *__restrict > __attr) throw (); > > >extern int pthread_rwlock_destroy (pthread_rwlock_t *__rwlock) throw (); > > >extern int pthread_rwlock_rdlock (pthread_rwlock_t *__rwlock) throw (); > > >extern int pthread_rwlock_tryrdlock (pthread_rwlock_t *__rwlock) throw (); > > > >extern int pthread_rwlock_timedrdlock (pthread_rwlock_t *__restrict __rwlock, > __const struct timespec *__restrict > __abstime) throw (); > > > >extern int pthread_rwlock_wrlock (pthread_rwlock_t *__rwlock) throw (); > > >extern int pthread_rwlock_trywrlock (pthread_rwlock_t *__rwlock) throw (); > > > >extern int pthread_rwlock_timedwrlock (pthread_rwlock_t *__restrict __rwlock, > __const struct timespec *__restrict > __abstime) throw (); > > > >extern int pthread_rwlock_unlock (pthread_rwlock_t *__rwlock) throw (); > > > > > >extern int pthread_rwlockattr_init (pthread_rwlockattr_t *__attr) throw (); > > >extern int pthread_rwlockattr_destroy (pthread_rwlockattr_t *__attr) throw (); > > >extern int pthread_rwlockattr_getpshared (__const pthread_rwlockattr_t * > __restrict __attr, > int *__restrict __pshared) throw (); > > >extern int pthread_rwlockattr_setpshared (pthread_rwlockattr_t *__attr, > int __pshared) throw (); > > >extern int pthread_rwlockattr_getkind_np (__const pthread_rwlockattr_t *__attr, > int *__pref) throw (); > > >extern int pthread_rwlockattr_setkind_np (pthread_rwlockattr_t *__attr, > int __pref) throw (); ># 510 "/usr/include/pthread.h" 3 4 >extern int pthread_spin_init (pthread_spinlock_t *__lock, int __pshared) > throw (); > > >extern int pthread_spin_destroy (pthread_spinlock_t *__lock) throw (); > > >extern int pthread_spin_lock (pthread_spinlock_t *__lock) throw (); > > >extern int pthread_spin_trylock (pthread_spinlock_t *__lock) throw (); > > >extern int pthread_spin_unlock (pthread_spinlock_t *__lock) throw (); > > > > >extern int pthread_barrier_init (pthread_barrier_t *__restrict __barrier, > __const pthread_barrierattr_t *__restrict > __attr, unsigned int __count) throw (); > >extern int pthread_barrier_destroy (pthread_barrier_t *__barrier) throw (); > >extern int pthread_barrierattr_init (pthread_barrierattr_t *__attr) throw (); > >extern int pthread_barrierattr_destroy (pthread_barrierattr_t *__attr) throw (); > >extern int pthread_barrierattr_getpshared (__const pthread_barrierattr_t * > __restrict __attr, > int *__restrict __pshared) throw (); > >extern int pthread_barrierattr_setpshared (pthread_barrierattr_t *__attr, > int __pshared) throw (); > >extern int pthread_barrier_wait (pthread_barrier_t *__barrier) throw (); ># 557 "/usr/include/pthread.h" 3 4 >extern int pthread_key_create (pthread_key_t *__key, > void (*__destr_function) (void *)) throw (); > > >extern int pthread_key_delete (pthread_key_t __key) throw (); > > >extern int pthread_setspecific (pthread_key_t __key, > __const void *__pointer) throw (); > > >extern void *pthread_getspecific (pthread_key_t __key) throw (); ># 580 "/usr/include/pthread.h" 3 4 >extern int pthread_once (pthread_once_t *__once_control, > void (*__init_routine) (void)); > > > > > > >extern int pthread_setcancelstate (int __state, int *__oldstate); > > > >extern int pthread_setcanceltype (int __type, int *__oldtype); > > >extern int pthread_cancel (pthread_t __cancelthread); > > > > >extern void pthread_testcancel (void); ># 614 "/usr/include/pthread.h" 3 4 >extern void _pthread_cleanup_push (struct _pthread_cleanup_buffer *__buffer, > void (*__routine) (void *), > void *__arg) throw (); > > > > > > > >extern void _pthread_cleanup_pop (struct _pthread_cleanup_buffer *__buffer, > int __execute) throw (); ># 635 "/usr/include/pthread.h" 3 4 >extern void _pthread_cleanup_push_defer (struct _pthread_cleanup_buffer *__buffer, > void (*__routine) (void *), > void *__arg) throw (); ># 646 "/usr/include/pthread.h" 3 4 >extern void _pthread_cleanup_pop_restore (struct _pthread_cleanup_buffer *__buffer, > int __execute) throw (); > > > > > >extern int pthread_getcpuclockid (pthread_t __thread_id, > __clockid_t *__clock_id) throw (); > > > > ># 1 "/usr/include/bits/sigthread.h" 1 3 4 ># 31 "/usr/include/bits/sigthread.h" 3 4 >extern int pthread_sigmask (int __how, > __const __sigset_t *__restrict __newmask, > __sigset_t *__restrict __oldmask)throw (); > > >extern int pthread_kill (pthread_t __threadid, int __signo) throw (); ># 660 "/usr/include/pthread.h" 2 3 4 ># 675 "/usr/include/pthread.h" 3 4 >extern int pthread_atfork (void (*__prepare) (void), > void (*__parent) (void), > void (*__child) (void)) throw (); > > > > >extern void pthread_kill_other_threads_np (void) throw (); > >} ># 38 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/i686-pc-linux-gnu/bits/gthr-default.h" 2 3 ># 1 "/usr/include/unistd.h" 1 3 4 ># 28 "/usr/include/unistd.h" 3 4 >extern "C" { ># 171 "/usr/include/unistd.h" 3 4 ># 1 "/usr/include/bits/posix_opt.h" 1 3 4 ># 172 "/usr/include/unistd.h" 2 3 4 > > > ># 1 "/usr/include/bits/environments.h" 1 3 4 ># 176 "/usr/include/unistd.h" 2 3 4 ># 195 "/usr/include/unistd.h" 3 4 ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/stddef.h" 1 3 4 ># 196 "/usr/include/unistd.h" 2 3 4 ># 236 "/usr/include/unistd.h" 3 4 >typedef __intptr_t intptr_t; > > > > > > >typedef __socklen_t socklen_t; ># 256 "/usr/include/unistd.h" 3 4 >extern int access (__const char *__name, int __type) throw () __attribute__ ((__nonnull__ (1))); > > > > >extern int euidaccess (__const char *__name, int __type) > throw () __attribute__ ((__nonnull__ (1))); ># 287 "/usr/include/unistd.h" 3 4 >extern __off_t lseek (int __fd, __off_t __offset, int __whence) throw (); ># 298 "/usr/include/unistd.h" 3 4 >extern __off64_t lseek64 (int __fd, __off64_t __offset, int __whence) throw (); > > > > > > >extern int close (int __fd); > > > > > > >extern ssize_t read (int __fd, void *__buf, size_t __nbytes); > > > > > >extern ssize_t write (int __fd, __const void *__buf, size_t __n); ># 328 "/usr/include/unistd.h" 3 4 >extern ssize_t pread (int __fd, void *__buf, size_t __nbytes, > __off_t __offset); > > > > > > >extern ssize_t pwrite (int __fd, __const void *__buf, size_t __n, > __off_t __offset); ># 356 "/usr/include/unistd.h" 3 4 >extern ssize_t pread64 (int __fd, void *__buf, size_t __nbytes, > __off64_t __offset); > > >extern ssize_t pwrite64 (int __fd, __const void *__buf, size_t __n, > __off64_t __offset); > > > > > > > >extern int pipe (int __pipedes[2]) throw (); ># 378 "/usr/include/unistd.h" 3 4 >extern unsigned int alarm (unsigned int __seconds) throw (); ># 390 "/usr/include/unistd.h" 3 4 >extern unsigned int sleep (unsigned int __seconds); > > > > > > >extern __useconds_t ualarm (__useconds_t __value, __useconds_t __interval) > throw (); > > > > > > >extern int usleep (__useconds_t __useconds); ># 414 "/usr/include/unistd.h" 3 4 >extern int pause (void); > > > >extern int chown (__const char *__file, __uid_t __owner, __gid_t __group) > throw () __attribute__ ((__nonnull__ (1))); > > > >extern int fchown (int __fd, __uid_t __owner, __gid_t __group) throw (); > > > > >extern int lchown (__const char *__file, __uid_t __owner, __gid_t __group) > throw () __attribute__ ((__nonnull__ (1))); > > > > >extern int chdir (__const char *__path) throw () __attribute__ ((__nonnull__ (1))); > > > >extern int fchdir (int __fd) throw (); ># 448 "/usr/include/unistd.h" 3 4 >extern char *getcwd (char *__buf, size_t __size) throw (); > > > > > >extern char *get_current_dir_name (void) throw (); > > > > > > >extern char *getwd (char *__buf) throw () __attribute__ ((__nonnull__ (1))); > > > > >extern int dup (int __fd) throw (); > > >extern int dup2 (int __fd, int __fd2) throw (); > > >extern char **__environ; > >extern char **environ; > > > > > >extern int execve (__const char *__path, char *__const __argv[], > char *__const __envp[]) throw () __attribute__ ((__nonnull__ (1))); > > > > >extern int fexecve (int __fd, char *__const __argv[], char *__const __envp[]) > throw (); > > > > >extern int execv (__const char *__path, char *__const __argv[]) > throw () __attribute__ ((__nonnull__ (1))); > > > >extern int execle (__const char *__path, __const char *__arg, ...) > throw () __attribute__ ((__nonnull__ (1))); > > > >extern int execl (__const char *__path, __const char *__arg, ...) > throw () __attribute__ ((__nonnull__ (1))); > > > >extern int execvp (__const char *__file, char *__const __argv[]) > throw () __attribute__ ((__nonnull__ (1))); > > > > >extern int execlp (__const char *__file, __const char *__arg, ...) > throw () __attribute__ ((__nonnull__ (1))); > > > > >extern int nice (int __inc) throw (); > > > > >extern void _exit (int __status) __attribute__ ((__noreturn__)); > > > > > ># 1 "/usr/include/bits/confname.h" 1 3 4 ># 26 "/usr/include/bits/confname.h" 3 4 >enum > { > _PC_LINK_MAX, > > _PC_MAX_CANON, > > _PC_MAX_INPUT, > > _PC_NAME_MAX, > > _PC_PATH_MAX, > > _PC_PIPE_BUF, > > _PC_CHOWN_RESTRICTED, > > _PC_NO_TRUNC, > > _PC_VDISABLE, > > _PC_SYNC_IO, > > _PC_ASYNC_IO, > > _PC_PRIO_IO, > > _PC_SOCK_MAXBUF, > > _PC_FILESIZEBITS, > > _PC_REC_INCR_XFER_SIZE, > > _PC_REC_MAX_XFER_SIZE, > > _PC_REC_MIN_XFER_SIZE, > > _PC_REC_XFER_ALIGN, > > _PC_ALLOC_SIZE_MIN, > > _PC_SYMLINK_MAX, > > _PC_2_SYMLINKS > > }; > > >enum > { > _SC_ARG_MAX, > > _SC_CHILD_MAX, > > _SC_CLK_TCK, > > _SC_NGROUPS_MAX, > > _SC_OPEN_MAX, > > _SC_STREAM_MAX, > > _SC_TZNAME_MAX, > > _SC_JOB_CONTROL, > > _SC_SAVED_IDS, > > _SC_REALTIME_SIGNALS, > > _SC_PRIORITY_SCHEDULING, > > _SC_TIMERS, > > _SC_ASYNCHRONOUS_IO, > > _SC_PRIORITIZED_IO, > > _SC_SYNCHRONIZED_IO, > > _SC_FSYNC, > > _SC_MAPPED_FILES, > > _SC_MEMLOCK, > > _SC_MEMLOCK_RANGE, > > _SC_MEMORY_PROTECTION, > > _SC_MESSAGE_PASSING, > > _SC_SEMAPHORES, > > _SC_SHARED_MEMORY_OBJECTS, > > _SC_AIO_LISTIO_MAX, > > _SC_AIO_MAX, > > _SC_AIO_PRIO_DELTA_MAX, > > _SC_DELAYTIMER_MAX, > > _SC_MQ_OPEN_MAX, > > _SC_MQ_PRIO_MAX, > > _SC_VERSION, > > _SC_PAGESIZE, > > > _SC_RTSIG_MAX, > > _SC_SEM_NSEMS_MAX, > > _SC_SEM_VALUE_MAX, > > _SC_SIGQUEUE_MAX, > > _SC_TIMER_MAX, > > > > > _SC_BC_BASE_MAX, > > _SC_BC_DIM_MAX, > > _SC_BC_SCALE_MAX, > > _SC_BC_STRING_MAX, > > _SC_COLL_WEIGHTS_MAX, > > _SC_EQUIV_CLASS_MAX, > > _SC_EXPR_NEST_MAX, > > _SC_LINE_MAX, > > _SC_RE_DUP_MAX, > > _SC_CHARCLASS_NAME_MAX, > > > _SC_2_VERSION, > > _SC_2_C_BIND, > > _SC_2_C_DEV, > > _SC_2_FORT_DEV, > > _SC_2_FORT_RUN, > > _SC_2_SW_DEV, > > _SC_2_LOCALEDEF, > > > _SC_PII, > > _SC_PII_XTI, > > _SC_PII_SOCKET, > > _SC_PII_INTERNET, > > _SC_PII_OSI, > > _SC_POLL, > > _SC_SELECT, > > _SC_UIO_MAXIOV, > > _SC_IOV_MAX = _SC_UIO_MAXIOV, > > _SC_PII_INTERNET_STREAM, > > _SC_PII_INTERNET_DGRAM, > > _SC_PII_OSI_COTS, > > _SC_PII_OSI_CLTS, > > _SC_PII_OSI_M, > > _SC_T_IOV_MAX, > > > > _SC_THREADS, > > _SC_THREAD_SAFE_FUNCTIONS, > > _SC_GETGR_R_SIZE_MAX, > > _SC_GETPW_R_SIZE_MAX, > > _SC_LOGIN_NAME_MAX, > > _SC_TTY_NAME_MAX, > > _SC_THREAD_DESTRUCTOR_ITERATIONS, > > _SC_THREAD_KEYS_MAX, > > _SC_THREAD_STACK_MIN, > > _SC_THREAD_THREADS_MAX, > > _SC_THREAD_ATTR_STACKADDR, > > _SC_THREAD_ATTR_STACKSIZE, > > _SC_THREAD_PRIORITY_SCHEDULING, > > _SC_THREAD_PRIO_INHERIT, > > _SC_THREAD_PRIO_PROTECT, > > _SC_THREAD_PROCESS_SHARED, > > > _SC_NPROCESSORS_CONF, > > _SC_NPROCESSORS_ONLN, > > _SC_PHYS_PAGES, > > _SC_AVPHYS_PAGES, > > _SC_ATEXIT_MAX, > > _SC_PASS_MAX, > > > _SC_XOPEN_VERSION, > > _SC_XOPEN_XCU_VERSION, > > _SC_XOPEN_UNIX, > > _SC_XOPEN_CRYPT, > > _SC_XOPEN_ENH_I18N, > > _SC_XOPEN_SHM, > > > _SC_2_CHAR_TERM, > > _SC_2_C_VERSION, > > _SC_2_UPE, > > > _SC_XOPEN_XPG2, > > _SC_XOPEN_XPG3, > > _SC_XOPEN_XPG4, > > > _SC_CHAR_BIT, > > _SC_CHAR_MAX, > > _SC_CHAR_MIN, > > _SC_INT_MAX, > > _SC_INT_MIN, > > _SC_LONG_BIT, > > _SC_WORD_BIT, > > _SC_MB_LEN_MAX, > > _SC_NZERO, > > _SC_SSIZE_MAX, > > _SC_SCHAR_MAX, > > _SC_SCHAR_MIN, > > _SC_SHRT_MAX, > > _SC_SHRT_MIN, > > _SC_UCHAR_MAX, > > _SC_UINT_MAX, > > _SC_ULONG_MAX, > > _SC_USHRT_MAX, > > > _SC_NL_ARGMAX, > > _SC_NL_LANGMAX, > > _SC_NL_MSGMAX, > > _SC_NL_NMAX, > > _SC_NL_SETMAX, > > _SC_NL_TEXTMAX, > > > _SC_XBS5_ILP32_OFF32, > > _SC_XBS5_ILP32_OFFBIG, > > _SC_XBS5_LP64_OFF64, > > _SC_XBS5_LPBIG_OFFBIG, > > > _SC_XOPEN_LEGACY, > > _SC_XOPEN_REALTIME, > > _SC_XOPEN_REALTIME_THREADS, > > > _SC_ADVISORY_INFO, > > _SC_BARRIERS, > > _SC_BASE, > > _SC_C_LANG_SUPPORT, > > _SC_C_LANG_SUPPORT_R, > > _SC_CLOCK_SELECTION, > > _SC_CPUTIME, > > _SC_THREAD_CPUTIME, > > _SC_DEVICE_IO, > > _SC_DEVICE_SPECIFIC, > > _SC_DEVICE_SPECIFIC_R, > > _SC_FD_MGMT, > > _SC_FIFO, > > _SC_PIPE, > > _SC_FILE_ATTRIBUTES, > > _SC_FILE_LOCKING, > > _SC_FILE_SYSTEM, > > _SC_MONOTONIC_CLOCK, > > _SC_MULTI_PROCESS, > > _SC_SINGLE_PROCESS, > > _SC_NETWORKING, > > _SC_READER_WRITER_LOCKS, > > _SC_SPIN_LOCKS, > > _SC_REGEXP, > > _SC_REGEX_VERSION, > > _SC_SHELL, > > _SC_SIGNALS, > > _SC_SPAWN, > > _SC_SPORADIC_SERVER, > > _SC_THREAD_SPORADIC_SERVER, > > _SC_SYSTEM_DATABASE, > > _SC_SYSTEM_DATABASE_R, > > _SC_TIMEOUTS, > > _SC_TYPED_MEMORY_OBJECTS, > > _SC_USER_GROUPS, > > _SC_USER_GROUPS_R, > > _SC_2_PBS, > > _SC_2_PBS_ACCOUNTING, > > _SC_2_PBS_LOCATE, > > _SC_2_PBS_MESSAGE, > > _SC_2_PBS_TRACK, > > _SC_SYMLOOP_MAX, > > _SC_STREAMS, > > _SC_2_PBS_CHECKPOINT, > > > _SC_V6_ILP32_OFF32, > > _SC_V6_ILP32_OFFBIG, > > _SC_V6_LP64_OFF64, > > _SC_V6_LPBIG_OFFBIG, > > > _SC_HOST_NAME_MAX, > > _SC_TRACE, > > _SC_TRACE_EVENT_FILTER, > > _SC_TRACE_INHERIT, > > _SC_TRACE_LOG, > > > _SC_LEVEL1_ICACHE_SIZE, > > _SC_LEVEL1_ICACHE_ASSOC, > > _SC_LEVEL1_ICACHE_LINESIZE, > > _SC_LEVEL1_DCACHE_SIZE, > > _SC_LEVEL1_DCACHE_ASSOC, > > _SC_LEVEL1_DCACHE_LINESIZE, > > _SC_LEVEL2_CACHE_SIZE, > > _SC_LEVEL2_CACHE_ASSOC, > > _SC_LEVEL2_CACHE_LINESIZE, > > _SC_LEVEL3_CACHE_SIZE, > > _SC_LEVEL3_CACHE_ASSOC, > > _SC_LEVEL3_CACHE_LINESIZE, > > _SC_LEVEL4_CACHE_SIZE, > > _SC_LEVEL4_CACHE_ASSOC, > > _SC_LEVEL4_CACHE_LINESIZE, > > > > _SC_IPV6 = _SC_LEVEL1_ICACHE_SIZE + 50, > > _SC_RAW_SOCKETS > > }; > > >enum > { > _CS_PATH, > > > _CS_V6_WIDTH_RESTRICTED_ENVS, > > > _CS_GNU_LIBC_VERSION, > > _CS_GNU_LIBPTHREAD_VERSION, > > > _CS_LFS_CFLAGS = 1000, > > _CS_LFS_LDFLAGS, > > _CS_LFS_LIBS, > > _CS_LFS_LINTFLAGS, > > _CS_LFS64_CFLAGS, > > _CS_LFS64_LDFLAGS, > > _CS_LFS64_LIBS, > > _CS_LFS64_LINTFLAGS, > > > _CS_XBS5_ILP32_OFF32_CFLAGS = 1100, > > _CS_XBS5_ILP32_OFF32_LDFLAGS, > > _CS_XBS5_ILP32_OFF32_LIBS, > > _CS_XBS5_ILP32_OFF32_LINTFLAGS, > > _CS_XBS5_ILP32_OFFBIG_CFLAGS, > > _CS_XBS5_ILP32_OFFBIG_LDFLAGS, > > _CS_XBS5_ILP32_OFFBIG_LIBS, > > _CS_XBS5_ILP32_OFFBIG_LINTFLAGS, > > _CS_XBS5_LP64_OFF64_CFLAGS, > > _CS_XBS5_LP64_OFF64_LDFLAGS, > > _CS_XBS5_LP64_OFF64_LIBS, > > _CS_XBS5_LP64_OFF64_LINTFLAGS, > > _CS_XBS5_LPBIG_OFFBIG_CFLAGS, > > _CS_XBS5_LPBIG_OFFBIG_LDFLAGS, > > _CS_XBS5_LPBIG_OFFBIG_LIBS, > > _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS, > > > _CS_POSIX_V6_ILP32_OFF32_CFLAGS, > > _CS_POSIX_V6_ILP32_OFF32_LDFLAGS, > > _CS_POSIX_V6_ILP32_OFF32_LIBS, > > _CS_POSIX_V6_ILP32_OFF32_LINTFLAGS, > > _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS, > > _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS, > > _CS_POSIX_V6_ILP32_OFFBIG_LIBS, > > _CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS, > > _CS_POSIX_V6_LP64_OFF64_CFLAGS, > > _CS_POSIX_V6_LP64_OFF64_LDFLAGS, > > _CS_POSIX_V6_LP64_OFF64_LIBS, > > _CS_POSIX_V6_LP64_OFF64_LINTFLAGS, > > _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS, > > _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS, > > _CS_POSIX_V6_LPBIG_OFFBIG_LIBS, > > _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS > > }; ># 531 "/usr/include/unistd.h" 2 3 4 > > >extern long int pathconf (__const char *__path, int __name) > throw () __attribute__ ((__nonnull__ (1))); > > >extern long int fpathconf (int __fd, int __name) throw (); > > >extern long int sysconf (int __name) throw () __attribute__ ((__const__)); > > > >extern size_t confstr (int __name, char *__buf, size_t __len) throw (); > > > > >extern __pid_t getpid (void) throw (); > > >extern __pid_t getppid (void) throw (); > > > > >extern __pid_t getpgrp (void) throw (); ># 567 "/usr/include/unistd.h" 3 4 >extern __pid_t __getpgid (__pid_t __pid) throw (); > >extern __pid_t getpgid (__pid_t __pid) throw (); > > > > > > >extern int setpgid (__pid_t __pid, __pid_t __pgid) throw (); ># 593 "/usr/include/unistd.h" 3 4 >extern int setpgrp (void) throw (); ># 610 "/usr/include/unistd.h" 3 4 >extern __pid_t setsid (void) throw (); > > > >extern __pid_t getsid (__pid_t __pid) throw (); > > > >extern __uid_t getuid (void) throw (); > > >extern __uid_t geteuid (void) throw (); > > >extern __gid_t getgid (void) throw (); > > >extern __gid_t getegid (void) throw (); > > > > >extern int getgroups (int __size, __gid_t __list[]) throw (); > > > >extern int group_member (__gid_t __gid) throw (); > > > > > > >extern int setuid (__uid_t __uid) throw (); > > > > >extern int setreuid (__uid_t __ruid, __uid_t __euid) throw (); > > > > >extern int seteuid (__uid_t __uid) throw (); > > > > > > >extern int setgid (__gid_t __gid) throw (); > > > > >extern int setregid (__gid_t __rgid, __gid_t __egid) throw (); > > > > >extern int setegid (__gid_t __gid) throw (); > > > > > >extern int getresuid (__uid_t *__euid, __uid_t *__ruid, __uid_t *__suid); > > > >extern int getresgid (__gid_t *__egid, __gid_t *__rgid, __gid_t *__sgid); > > > >extern int setresuid (__uid_t __euid, __uid_t __ruid, __uid_t __suid); > > > >extern int setresgid (__gid_t __egid, __gid_t __rgid, __gid_t __sgid); > > > > > > >extern __pid_t fork (void) throw (); > > > > > > >extern __pid_t vfork (void) throw (); > > > > > >extern char *ttyname (int __fd) throw (); > > > >extern int ttyname_r (int __fd, char *__buf, size_t __buflen) > throw () __attribute__ ((__nonnull__ (2))); > > > >extern int isatty (int __fd) throw (); > > > > > >extern int ttyslot (void) throw (); > > > > >extern int link (__const char *__from, __const char *__to) > throw () __attribute__ ((__nonnull__ (1, 2))); > > > >extern int symlink (__const char *__from, __const char *__to) > throw () __attribute__ ((__nonnull__ (1, 2))); > > > > >extern int readlink (__const char *__restrict __path, char *__restrict __buf, > size_t __len) throw () __attribute__ ((__nonnull__ (1, 2))); > > > >extern int unlink (__const char *__name) throw () __attribute__ ((__nonnull__ (1))); > > >extern int rmdir (__const char *__path) throw () __attribute__ ((__nonnull__ (1))); > > > >extern __pid_t tcgetpgrp (int __fd) throw (); > > >extern int tcsetpgrp (int __fd, __pid_t __pgrp_id) throw (); > > > > > > >extern char *getlogin (void); > > > > > > > >extern int getlogin_r (char *__name, size_t __name_len) __attribute__ ((__nonnull__ (1))); > > > > >extern int setlogin (__const char *__name) throw () __attribute__ ((__nonnull__ (1))); ># 783 "/usr/include/unistd.h" 3 4 ># 1 "/usr/include/getopt.h" 1 3 4 ># 50 "/usr/include/getopt.h" 3 4 >extern "C" { ># 59 "/usr/include/getopt.h" 3 4 >extern char *optarg; ># 73 "/usr/include/getopt.h" 3 4 >extern int optind; > > > > >extern int opterr; > > > >extern int optopt; ># 152 "/usr/include/getopt.h" 3 4 >extern int getopt (int ___argc, char *const *___argv, const char *__shortopts) > throw (); ># 171 "/usr/include/getopt.h" 3 4 >} ># 784 "/usr/include/unistd.h" 2 3 4 > > > > > > > >extern int gethostname (char *__name, size_t __len) throw () __attribute__ ((__nonnull__ (1))); > > > > > > >extern int sethostname (__const char *__name, size_t __len) > throw () __attribute__ ((__nonnull__ (1))); > > > >extern int sethostid (long int __id) throw (); > > > > > >extern int getdomainname (char *__name, size_t __len) > throw () __attribute__ ((__nonnull__ (1))); >extern int setdomainname (__const char *__name, size_t __len) > throw () __attribute__ ((__nonnull__ (1))); > > > > > >extern int vhangup (void) throw (); > > >extern int revoke (__const char *__file) throw () __attribute__ ((__nonnull__ (1))); > > > > > > > >extern int profil (unsigned short int *__sample_buffer, size_t __size, > size_t __offset, unsigned int __scale) > throw () __attribute__ ((__nonnull__ (1))); > > > > > >extern int acct (__const char *__name) throw () __attribute__ ((__nonnull__ (1))); > > > >extern char *getusershell (void) throw (); >extern void endusershell (void) throw (); >extern void setusershell (void) throw (); > > > > > >extern int daemon (int __nochdir, int __noclose) throw (); > > > > > > >extern int chroot (__const char *__path) throw () __attribute__ ((__nonnull__ (1))); > > > >extern char *getpass (__const char *__prompt) __attribute__ ((__nonnull__ (1))); ># 869 "/usr/include/unistd.h" 3 4 >extern int fsync (int __fd); > > > > > > >extern long int gethostid (void); > > >extern void sync (void) throw (); > > > > >extern int getpagesize (void) throw () __attribute__ ((__const__)); > > > > >extern int getdtablesize (void) throw (); > > > > >extern int truncate (__const char *__file, __off_t __length) > throw () __attribute__ ((__nonnull__ (1))); ># 906 "/usr/include/unistd.h" 3 4 >extern int truncate64 (__const char *__file, __off64_t __length) > throw () __attribute__ ((__nonnull__ (1))); ># 916 "/usr/include/unistd.h" 3 4 >extern int ftruncate (int __fd, __off_t __length) throw (); ># 926 "/usr/include/unistd.h" 3 4 >extern int ftruncate64 (int __fd, __off64_t __length) throw (); ># 936 "/usr/include/unistd.h" 3 4 >extern int brk (void *__addr) throw (); > > > > > >extern void *sbrk (intptr_t __delta) throw (); ># 957 "/usr/include/unistd.h" 3 4 >extern long int syscall (long int __sysno, ...) throw (); ># 980 "/usr/include/unistd.h" 3 4 >extern int lockf (int __fd, int __cmd, __off_t __len); ># 990 "/usr/include/unistd.h" 3 4 >extern int lockf64 (int __fd, int __cmd, __off64_t __len); ># 1011 "/usr/include/unistd.h" 3 4 >extern int fdatasync (int __fildes) throw (); > > > > > > > >extern char *crypt (__const char *__key, __const char *__salt) > throw () __attribute__ ((__nonnull__ (1, 2))); > > > >extern void encrypt (char *__block, int __edflag) throw () __attribute__ ((__nonnull__ (1))); > > > > > > >extern void swab (__const void *__restrict __from, void *__restrict __to, > ssize_t __n) throw () __attribute__ ((__nonnull__ (1, 2))); > > > > > > > >extern char *ctermid (char *__s) throw () __attribute__ ((__nonnull__ (1))); > > >} ># 39 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/i686-pc-linux-gnu/bits/gthr-default.h" 2 3 > >typedef pthread_key_t __gthread_key_t; >typedef pthread_once_t __gthread_once_t; >typedef pthread_mutex_t __gthread_mutex_t; > > > > > > >#pragma weak pthread_once >#pragma weak pthread_key_create >#pragma weak pthread_key_delete >#pragma weak pthread_getspecific >#pragma weak pthread_setspecific >#pragma weak pthread_create > >#pragma weak pthread_mutex_lock >#pragma weak pthread_mutex_trylock >#pragma weak pthread_mutex_unlock ># 87 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/i686-pc-linux-gnu/bits/gthr-default.h" 3 >static inline int >__gthread_active_p (void) >{ > static void *const __gthread_active_ptr = (void *) &pthread_create; > return __gthread_active_ptr != 0; >} ># 449 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/i686-pc-linux-gnu/bits/gthr-default.h" 3 >static inline int >__gthread_once (__gthread_once_t *once, void (*func) (void)) >{ > if (__gthread_active_p ()) > return pthread_once (once, func); > else > return -1; >} > >static inline int >__gthread_key_create (__gthread_key_t *key, void (*dtor) (void *)) >{ > return pthread_key_create (key, dtor); >} > >static inline int >__gthread_key_dtor (__gthread_key_t key, void *ptr) >{ > > if (ptr) > return pthread_setspecific (key, 0); > else > return 0; >} > >static inline int >__gthread_key_delete (__gthread_key_t key) >{ > return pthread_key_delete (key); >} > >static inline void * >__gthread_getspecific (__gthread_key_t key) >{ > return pthread_getspecific (key); >} > >static inline int >__gthread_setspecific (__gthread_key_t key, const void *ptr) >{ > return pthread_setspecific (key, ptr); >} > >static inline int >__gthread_mutex_lock (__gthread_mutex_t *mutex) >{ > if (__gthread_active_p ()) > return pthread_mutex_lock (mutex); > else > return 0; >} > >static inline int >__gthread_mutex_trylock (__gthread_mutex_t *mutex) >{ > if (__gthread_active_p ()) > return pthread_mutex_trylock (mutex); > else > return 0; >} > >static inline int >__gthread_mutex_unlock (__gthread_mutex_t *mutex) >{ > if (__gthread_active_p ()) > return pthread_mutex_unlock (mutex); > else > return 0; >} ># 99 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/i686-pc-linux-gnu/bits/gthr.h" 2 3 ># 38 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/i686-pc-linux-gnu/bits/c++io.h" 2 3 > >namespace std >{ > > typedef long streamoff; > typedef ptrdiff_t streamsize; > > typedef ptrdiff_t wstreamsize; > > typedef fpos_t __c_streampos; > > typedef __gthread_mutex_t __c_lock; > > > typedef FILE __c_file; > > > struct __ios_flags > { > typedef short __int_type; > > static const __int_type _S_boolalpha = 0x0001; > static const __int_type _S_dec = 0x0002; > static const __int_type _S_fixed = 0x0004; > static const __int_type _S_hex = 0x0008; > static const __int_type _S_internal = 0x0010; > static const __int_type _S_left = 0x0020; > static const __int_type _S_oct = 0x0040; > static const __int_type _S_right = 0x0080; > static const __int_type _S_scientific = 0x0100; > static const __int_type _S_showbase = 0x0200; > static const __int_type _S_showpoint = 0x0400; > static const __int_type _S_showpos = 0x0800; > static const __int_type _S_skipws = 0x1000; > static const __int_type _S_unitbuf = 0x2000; > static const __int_type _S_uppercase = 0x4000; > static const __int_type _S_adjustfield = 0x0020 | 0x0080 | 0x0010; > static const __int_type _S_basefield = 0x0002 | 0x0040 | 0x0008; > static const __int_type _S_floatfield = 0x0100 | 0x0004; > > > static const __int_type _S_badbit = 0x01; > static const __int_type _S_eofbit = 0x02; > static const __int_type _S_failbit = 0x04; > > > static const __int_type _S_app = 0x01; > static const __int_type _S_ate = 0x02; > static const __int_type _S_bin = 0x04; > static const __int_type _S_in = 0x08; > static const __int_type _S_out = 0x10; > static const __int_type _S_trunc = 0x20; > }; >} ># 45 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/fpos.h" 2 3 ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/cwchar" 1 3 ># 47 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/cwchar" 3 > ># 48 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/cwchar" 3 > > > ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/ctime" 1 3 ># 47 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/ctime" 3 > ># 48 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/ctime" 3 ># 64 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/ctime" 3 >namespace std >{ > using ::clock_t; > using ::time_t; > using ::tm; > > using ::clock; > using ::difftime; > using ::mktime; > using ::time; > using ::asctime; > using ::ctime; > using ::gmtime; > using ::localtime; > using ::strftime; >} ># 52 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/cwchar" 2 3 > > ># 1 "/usr/include/wchar.h" 1 3 4 ># 40 "/usr/include/wchar.h" 3 4 ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/stdarg.h" 1 3 4 ># 41 "/usr/include/wchar.h" 2 3 4 > > > > > > > ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/stddef.h" 1 3 4 ># 49 "/usr/include/wchar.h" 2 3 4 ># 93 "/usr/include/wchar.h" 3 4 > > >typedef __mbstate_t mbstate_t; > > > ># 118 "/usr/include/wchar.h" 3 4 >extern "C" { > > > > >struct tm; > > > > > > > > > >extern wchar_t *wcscpy (wchar_t *__restrict __dest, > __const wchar_t *__restrict __src) throw (); > >extern wchar_t *wcsncpy (wchar_t *__restrict __dest, > __const wchar_t *__restrict __src, size_t __n) > throw (); > > >extern wchar_t *wcscat (wchar_t *__restrict __dest, > __const wchar_t *__restrict __src) throw (); > >extern wchar_t *wcsncat (wchar_t *__restrict __dest, > __const wchar_t *__restrict __src, size_t __n) > throw (); > > >extern int wcscmp (__const wchar_t *__s1, __const wchar_t *__s2) > throw () __attribute__ ((__pure__)); > >extern int wcsncmp (__const wchar_t *__s1, __const wchar_t *__s2, size_t __n) > throw () __attribute__ ((__pure__)); > > > > >extern int wcscasecmp (__const wchar_t *__s1, __const wchar_t *__s2) throw (); > > >extern int wcsncasecmp (__const wchar_t *__s1, __const wchar_t *__s2, > size_t __n) throw (); > > > > > >extern int wcscasecmp_l (__const wchar_t *__s1, __const wchar_t *__s2, > __locale_t __loc) throw (); > >extern int wcsncasecmp_l (__const wchar_t *__s1, __const wchar_t *__s2, > size_t __n, __locale_t __loc) throw (); > > > > > >extern int wcscoll (__const wchar_t *__s1, __const wchar_t *__s2) throw (); > > > >extern size_t wcsxfrm (wchar_t *__restrict __s1, > __const wchar_t *__restrict __s2, size_t __n) throw (); > > > > > > > > >extern int wcscoll_l (__const wchar_t *__s1, __const wchar_t *__s2, > __locale_t __loc) throw (); > > > > >extern size_t wcsxfrm_l (wchar_t *__s1, __const wchar_t *__s2, > size_t __n, __locale_t __loc) throw (); > > >extern wchar_t *wcsdup (__const wchar_t *__s) throw () __attribute__ ((__malloc__)); > > > > >extern wchar_t *wcschr (__const wchar_t *__wcs, wchar_t __wc) > throw () __attribute__ ((__pure__)); > >extern wchar_t *wcsrchr (__const wchar_t *__wcs, wchar_t __wc) > throw () __attribute__ ((__pure__)); > > > > > >extern wchar_t *wcschrnul (__const wchar_t *__s, wchar_t __wc) > throw () __attribute__ ((__pure__)); > > > > > >extern size_t wcscspn (__const wchar_t *__wcs, __const wchar_t *__reject) > throw () __attribute__ ((__pure__)); > > >extern size_t wcsspn (__const wchar_t *__wcs, __const wchar_t *__accept) > throw () __attribute__ ((__pure__)); > >extern wchar_t *wcspbrk (__const wchar_t *__wcs, __const wchar_t *__accept) > throw () __attribute__ ((__pure__)); > >extern wchar_t *wcsstr (__const wchar_t *__haystack, __const wchar_t *__needle) > throw () __attribute__ ((__pure__)); > > >extern wchar_t *wcstok (wchar_t *__restrict __s, > __const wchar_t *__restrict __delim, > wchar_t **__restrict __ptr) throw (); > > >extern size_t wcslen (__const wchar_t *__s) throw () __attribute__ ((__pure__)); > > > > >extern wchar_t *wcswcs (__const wchar_t *__haystack, __const wchar_t *__needle) > throw () __attribute__ ((__pure__)); > > > > >extern size_t wcsnlen (__const wchar_t *__s, size_t __maxlen) > throw () __attribute__ ((__pure__)); > > > > > >extern wchar_t *wmemchr (__const wchar_t *__s, wchar_t __c, size_t __n) > throw () __attribute__ ((__pure__)); > > >extern int wmemcmp (__const wchar_t *__restrict __s1, > __const wchar_t *__restrict __s2, size_t __n) > throw () __attribute__ ((__pure__)); > > >extern wchar_t *wmemcpy (wchar_t *__restrict __s1, > __const wchar_t *__restrict __s2, size_t __n) throw (); > > > >extern wchar_t *wmemmove (wchar_t *__s1, __const wchar_t *__s2, size_t __n) > throw (); > > >extern wchar_t *wmemset (wchar_t *__s, wchar_t __c, size_t __n) throw (); > > > > > >extern wchar_t *wmempcpy (wchar_t *__restrict __s1, > __const wchar_t *__restrict __s2, size_t __n) > throw (); > > > > > > >extern wint_t btowc (int __c) throw (); > > > >extern int wctob (wint_t __c) throw (); > > > >extern int mbsinit (__const mbstate_t *__ps) throw () __attribute__ ((__pure__)); > > > >extern size_t mbrtowc (wchar_t *__restrict __pwc, > __const char *__restrict __s, size_t __n, > mbstate_t *__p) throw (); > > >extern size_t wcrtomb (char *__restrict __s, wchar_t __wc, > mbstate_t *__restrict __ps) throw (); > > >extern size_t __mbrlen (__const char *__restrict __s, size_t __n, > mbstate_t *__restrict __ps) throw (); >extern size_t mbrlen (__const char *__restrict __s, size_t __n, > mbstate_t *__restrict __ps) throw (); > > > > >extern __inline size_t >mbrlen (__const char *__restrict __s, size_t __n, mbstate_t *__restrict __ps) throw () > >{ return (__ps != __null > ? mbrtowc (__null, __s, __n, __ps) : __mbrlen (__s, __n, __null)); } > > > > > >extern size_t mbsrtowcs (wchar_t *__restrict __dst, > __const char **__restrict __src, size_t __len, > mbstate_t *__restrict __ps) throw (); > > > >extern size_t wcsrtombs (char *__restrict __dst, > __const wchar_t **__restrict __src, size_t __len, > mbstate_t *__restrict __ps) throw (); > > > > > > >extern size_t mbsnrtowcs (wchar_t *__restrict __dst, > __const char **__restrict __src, size_t __nmc, > size_t __len, mbstate_t *__restrict __ps) throw (); > > > >extern size_t wcsnrtombs (char *__restrict __dst, > __const wchar_t **__restrict __src, > size_t __nwc, size_t __len, > mbstate_t *__restrict __ps) throw (); > > > > > > >extern int wcwidth (wchar_t __c) throw (); > > > >extern int wcswidth (__const wchar_t *__s, size_t __n) throw (); > > > > > > >extern double wcstod (__const wchar_t *__restrict __nptr, > wchar_t **__restrict __endptr) throw (); > > > >extern float wcstof (__const wchar_t *__restrict __nptr, > wchar_t **__restrict __endptr) throw (); >extern long double wcstold (__const wchar_t *__restrict __nptr, > wchar_t **__restrict __endptr) throw (); > > > > > >extern long int wcstol (__const wchar_t *__restrict __nptr, > wchar_t **__restrict __endptr, int __base) throw (); > > > >extern unsigned long int wcstoul (__const wchar_t *__restrict __nptr, > wchar_t **__restrict __endptr, int __base) > throw (); > > > > >__extension__ >extern long long int wcstoll (__const wchar_t *__restrict __nptr, > wchar_t **__restrict __endptr, int __base) > throw (); > > > >__extension__ >extern unsigned long long int wcstoull (__const wchar_t *__restrict __nptr, > wchar_t **__restrict __endptr, > int __base) throw (); > > > > > > >__extension__ >extern long long int wcstoq (__const wchar_t *__restrict __nptr, > wchar_t **__restrict __endptr, int __base) > throw (); > > > >__extension__ >extern unsigned long long int wcstouq (__const wchar_t *__restrict __nptr, > wchar_t **__restrict __endptr, > int __base) throw (); ># 449 "/usr/include/wchar.h" 3 4 >extern long int wcstol_l (__const wchar_t *__restrict __nptr, > wchar_t **__restrict __endptr, int __base, > __locale_t __loc) throw (); > >extern unsigned long int wcstoul_l (__const wchar_t *__restrict __nptr, > wchar_t **__restrict __endptr, > int __base, __locale_t __loc) throw (); > >__extension__ >extern long long int wcstoll_l (__const wchar_t *__restrict __nptr, > wchar_t **__restrict __endptr, > int __base, __locale_t __loc) throw (); > >__extension__ >extern unsigned long long int wcstoull_l (__const wchar_t *__restrict __nptr, > wchar_t **__restrict __endptr, > int __base, __locale_t __loc) > throw (); > >extern double wcstod_l (__const wchar_t *__restrict __nptr, > wchar_t **__restrict __endptr, __locale_t __loc) > throw (); > >extern float wcstof_l (__const wchar_t *__restrict __nptr, > wchar_t **__restrict __endptr, __locale_t __loc) > throw (); > >extern long double wcstold_l (__const wchar_t *__restrict __nptr, > wchar_t **__restrict __endptr, > __locale_t __loc) throw (); > > > > > >extern double __wcstod_internal (__const wchar_t *__restrict __nptr, > wchar_t **__restrict __endptr, int __group) > throw (); >extern float __wcstof_internal (__const wchar_t *__restrict __nptr, > wchar_t **__restrict __endptr, int __group) > throw (); >extern long double __wcstold_internal (__const wchar_t *__restrict __nptr, > wchar_t **__restrict __endptr, > int __group) throw (); > > >extern long int __wcstol_internal (__const wchar_t *__restrict __nptr, > wchar_t **__restrict __endptr, > int __base, int __group) throw (); > > > >extern unsigned long int __wcstoul_internal (__const wchar_t *__restrict __npt, > wchar_t **__restrict __endptr, > int __base, int __group) throw (); > > > >__extension__ >extern long long int __wcstoll_internal (__const wchar_t *__restrict __nptr, > wchar_t **__restrict __endptr, > int __base, int __group) throw (); > > > >__extension__ >extern unsigned long long int __wcstoull_internal (__const wchar_t * > __restrict __nptr, > wchar_t ** > __restrict __endptr, > int __base, > int __group) throw (); > > > > > > > > >extern __inline double >wcstod (__const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr) throw () > >{ return __wcstod_internal (__nptr, __endptr, 0); } >extern __inline long int >wcstol (__const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr, int __base) throw () > >{ return __wcstol_internal (__nptr, __endptr, __base, 0); } >extern __inline unsigned long int >wcstoul (__const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr, int __base) throw () > >{ return __wcstoul_internal (__nptr, __endptr, __base, 0); } > > > >extern __inline float >wcstof (__const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr) throw () > >{ return __wcstof_internal (__nptr, __endptr, 0); } >extern __inline long double >wcstold (__const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr) throw () > >{ return __wcstold_internal (__nptr, __endptr, 0); } > > >__extension__ >extern __inline long long int >wcstoq (__const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr, int __base) throw () > >{ return __wcstoll_internal (__nptr, __endptr, __base, 0); } >__extension__ >extern __inline unsigned long long int >wcstouq (__const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr, int __base) throw () > >{ return __wcstoull_internal (__nptr, __endptr, __base, 0); } > > > > > > > >extern wchar_t *wcpcpy (wchar_t *__dest, __const wchar_t *__src) throw (); > > > >extern wchar_t *wcpncpy (wchar_t *__dest, __const wchar_t *__src, size_t __n) > throw (); > > > > > > > > >extern int fwide (__FILE *__fp, int __mode) throw (); > > > > > > >extern int fwprintf (__FILE *__restrict __stream, > __const wchar_t *__restrict __format, ...) > ; > > > > >extern int wprintf (__const wchar_t *__restrict __format, ...) > ; > >extern int swprintf (wchar_t *__restrict __s, size_t __n, > __const wchar_t *__restrict __format, ...) > throw () ; > > > > > >extern int vfwprintf (__FILE *__restrict __s, > __const wchar_t *__restrict __format, > __gnuc_va_list __arg) > ; > > > > >extern int vwprintf (__const wchar_t *__restrict __format, > __gnuc_va_list __arg) > ; > > >extern int vswprintf (wchar_t *__restrict __s, size_t __n, > __const wchar_t *__restrict __format, > __gnuc_va_list __arg) > throw () ; > > > > > > >extern int fwscanf (__FILE *__restrict __stream, > __const wchar_t *__restrict __format, ...) > ; > > > > >extern int wscanf (__const wchar_t *__restrict __format, ...) > ; > >extern int swscanf (__const wchar_t *__restrict __s, > __const wchar_t *__restrict __format, ...) > throw () ; > > > > > > > > > > > >extern int vfwscanf (__FILE *__restrict __s, > __const wchar_t *__restrict __format, > __gnuc_va_list __arg) > ; > > > > >extern int vwscanf (__const wchar_t *__restrict __format, > __gnuc_va_list __arg) > ; > >extern int vswscanf (__const wchar_t *__restrict __s, > __const wchar_t *__restrict __format, > __gnuc_va_list __arg) > throw () ; > > > > > > > > > > >extern wint_t fgetwc (__FILE *__stream); >extern wint_t getwc (__FILE *__stream); > > > > > >extern wint_t getwchar (void); > > > > > > >extern wint_t fputwc (wchar_t __wc, __FILE *__stream); >extern wint_t putwc (wchar_t __wc, __FILE *__stream); > > > > > >extern wint_t putwchar (wchar_t __wc); > > > > > > > >extern wchar_t *fgetws (wchar_t *__restrict __ws, int __n, > __FILE *__restrict __stream); > > > > > >extern int fputws (__const wchar_t *__restrict __ws, > __FILE *__restrict __stream); > > > > > > >extern wint_t ungetwc (wint_t __wc, __FILE *__stream); > ># 739 "/usr/include/wchar.h" 3 4 >extern wint_t getwc_unlocked (__FILE *__stream); >extern wint_t getwchar_unlocked (void); > > > > > > > >extern wint_t fgetwc_unlocked (__FILE *__stream); > > > > > > > >extern wint_t fputwc_unlocked (wchar_t __wc, __FILE *__stream); ># 765 "/usr/include/wchar.h" 3 4 >extern wint_t putwc_unlocked (wchar_t __wc, __FILE *__stream); >extern wint_t putwchar_unlocked (wchar_t __wc); ># 775 "/usr/include/wchar.h" 3 4 >extern wchar_t *fgetws_unlocked (wchar_t *__restrict __ws, int __n, > __FILE *__restrict __stream); > > > > > > > >extern int fputws_unlocked (__const wchar_t *__restrict __ws, > __FILE *__restrict __stream); > > > > > > > >extern size_t wcsftime (wchar_t *__restrict __s, size_t __maxsize, > __const wchar_t *__restrict __format, > __const struct tm *__restrict __tp) throw (); > > > > > > > >extern size_t wcsftime_l (wchar_t *__restrict __s, size_t __maxsize, > __const wchar_t *__restrict __format, > __const struct tm *__restrict __tp, > __locale_t __loc) throw (); ># 820 "/usr/include/wchar.h" 3 4 >} ># 55 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/cwchar" 2 3 ># 69 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/cwchar" 3 >namespace std >{ > using ::mbstate_t; >} ># 133 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/cwchar" 3 >namespace std >{ > using ::wint_t; > > using ::btowc; > using ::fgetwc; > using ::fgetws; > using ::fputwc; > using ::fputws; > using ::fwide; > using ::fwprintf; > using ::fwscanf; > using ::getwc; > using ::getwchar; > using ::mbrlen; > using ::mbrtowc; > using ::mbsinit; > using ::mbsrtowcs; > using ::putwc; > using ::putwchar; > using ::swprintf; > using ::swscanf; > using ::ungetwc; > using ::vfwprintf; > using ::vfwscanf; > using ::vswprintf; > using ::vswscanf; > using ::vwprintf; > using ::vwscanf; > using ::wcrtomb; > using ::wcscat; > using ::wcscmp; > using ::wcscoll; > using ::wcscpy; > using ::wcscspn; > > > > using ::wcslen; > using ::wcsncat; > using ::wcsncmp; > using ::wcsncpy; > using ::wcsrtombs; > using ::wcsspn; > using ::wcstod; > using ::wcstof; > using ::wcstok; > using ::wcstol; > using ::wcstoul; > using ::wcsxfrm; > using ::wctob; > using ::wmemcmp; > using ::wmemcpy; > using ::wmemmove; > using ::wmemset; > using ::wprintf; > using ::wscanf; > > using ::wcschr; > > inline wchar_t* > wcschr(wchar_t* __p, wchar_t __c) > { return wcschr(const_cast<const wchar_t*>(__p), __c); } > > using ::wcspbrk; > > inline wchar_t* > wcspbrk(wchar_t* __s1, wchar_t* __s2) > { return wcspbrk(const_cast<const wchar_t*>(__s1), __s2); } > > using ::wcsrchr; > > inline wchar_t* > wcsrchr(wchar_t* __p, wchar_t __c) > { return wcsrchr(const_cast<const wchar_t*>(__p), __c); } > > using ::wcsstr; > > inline wchar_t* > wcsstr(wchar_t* __s1, wchar_t* __s2) > { return wcsstr(const_cast<const wchar_t*>(__s1), __s2); } > > using ::wmemchr; > > inline wchar_t* > wmemchr(wchar_t* __p, wchar_t __c, size_t __n) > { return wmemchr(const_cast<const wchar_t*>(__p), __c, __n); } >} > > > > > > > >namespace __gnu_cxx >{ > > > > > > using ::wcstold; ># 244 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/cwchar" 3 > using ::wcstoll; > using ::wcstoull; > >} > >namespace std >{ > using __gnu_cxx::wcstold; > using __gnu_cxx::wcstoll; > using __gnu_cxx::wcstoull; >} ># 46 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/fpos.h" 2 3 > >namespace std >{ > > > > > > > template<typename _StateT> > class fpos > { > public: > > typedef _StateT __state_type; > > private: > streamoff _M_off; > __state_type _M_st; > > public: > __state_type > state() const { return _M_st; } > > void > state(__state_type __st) { _M_st = __st; } > > > > fpos(): _M_off(streamoff()), _M_st(__state_type()) { } > > fpos(streamoff __off, __state_type __st = __state_type()) > : _M_off(__off), _M_st(__st) { } > > operator streamoff() const { return _M_off; } > > fpos& > operator+=(streamoff __off) { _M_off += __off; return *this; } > > fpos& > operator-=(streamoff __off) { _M_off -= __off; return *this; } > > fpos > operator+(streamoff __off) > { > fpos __t(*this); > __t += __off; > return __t; > } > > fpos > operator-(streamoff __off) > { > fpos __t(*this); > __t -= __off; > return __t; > } > > bool > operator==(const fpos& __pos) const > { return _M_off == __pos._M_off; } > > bool > operator!=(const fpos& __pos) const > { return _M_off != __pos._M_off; } > > streamoff > _M_position() const { return _M_off; } > > void > _M_position(streamoff __off) { _M_off = __off; } > }; > > > typedef fpos<mbstate_t> streampos; > > > typedef fpos<mbstate_t> wstreampos; > >} ># 50 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/iosfwd" 2 3 ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/functexcept.h" 1 3 ># 34 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/functexcept.h" 3 ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/exception_defines.h" 1 3 ># 35 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/functexcept.h" 2 3 > >namespace std >{ > > void > __throw_bad_exception(void); > > > void > __throw_bad_alloc(void); > > > void > __throw_bad_cast(void); > > void > __throw_bad_typeid(void); > > > void > __throw_logic_error(const char* __s); > > void > __throw_domain_error(const char* __s); > > void > __throw_invalid_argument(const char* __s); > > void > __throw_length_error(const char* __s); > > void > __throw_out_of_range(const char* __s); > > void > __throw_runtime_error(const char* __s); > > void > __throw_range_error(const char* __s); > > void > __throw_overflow_error(const char* __s); > > void > __throw_underflow_error(const char* __s); > > > void > __throw_ios_failure(const char* __s); >} ># 51 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/iosfwd" 2 3 > >namespace std >{ > template<typename _CharT, typename _Traits = char_traits<_CharT> > > class basic_ios; > > template<typename _CharT, typename _Traits = char_traits<_CharT> > > class basic_streambuf; > > template<typename _CharT, typename _Traits = char_traits<_CharT> > > class basic_istream; > > template<typename _CharT, typename _Traits = char_traits<_CharT> > > class basic_ostream; > > template<typename _CharT, typename _Traits = char_traits<_CharT> > > class basic_iostream; > > template<typename _CharT, typename _Traits = char_traits<_CharT>, > typename _Alloc = allocator<_CharT> > > class basic_stringbuf; > > template<typename _CharT, typename _Traits = char_traits<_CharT>, > typename _Alloc = allocator<_CharT> > > class basic_istringstream; > > template<typename _CharT, typename _Traits = char_traits<_CharT>, > typename _Alloc = allocator<_CharT> > > class basic_ostringstream; > > template<typename _CharT, typename _Traits = char_traits<_CharT>, > typename _Alloc = allocator<_CharT> > > class basic_stringstream; > > template<typename _CharT, typename _Traits = char_traits<_CharT> > > class basic_filebuf; > > template<typename _CharT, typename _Traits = char_traits<_CharT> > > class basic_ifstream; > > template<typename _CharT, typename _Traits = char_traits<_CharT> > > class basic_ofstream; > > template<typename _CharT, typename _Traits = char_traits<_CharT> > > class basic_fstream; > > template<typename _CharT, typename _Traits = char_traits<_CharT> > > class istreambuf_iterator; > > template<typename _CharT, typename _Traits = char_traits<_CharT> > > class ostreambuf_iterator; > > > > class ios_base; ># 136 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/iosfwd" 3 > typedef basic_ios<char> ios; > typedef basic_streambuf<char> streambuf; > typedef basic_istream<char> istream; > typedef basic_ostream<char> ostream; > typedef basic_iostream<char> iostream; > typedef basic_stringbuf<char> stringbuf; > typedef basic_istringstream<char> istringstream; > typedef basic_ostringstream<char> ostringstream; > typedef basic_stringstream<char> stringstream; > typedef basic_filebuf<char> filebuf; > typedef basic_ifstream<char> ifstream; > typedef basic_ofstream<char> ofstream; > typedef basic_fstream<char> fstream; > > > typedef basic_ios<wchar_t> wios; > typedef basic_streambuf<wchar_t> wstreambuf; > typedef basic_istream<wchar_t> wistream; > typedef basic_ostream<wchar_t> wostream; > typedef basic_iostream<wchar_t> wiostream; > typedef basic_stringbuf<wchar_t> wstringbuf; > typedef basic_istringstream<wchar_t> wistringstream; > typedef basic_ostringstream<wchar_t> wostringstream; > typedef basic_stringstream<wchar_t> wstringstream; > typedef basic_filebuf<wchar_t> wfilebuf; > typedef basic_ifstream<wchar_t> wifstream; > typedef basic_ofstream<wchar_t> wofstream; > typedef basic_fstream<wchar_t> wfstream; > > >} ># 71 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_algobase.h" 2 3 ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_pair.h" 1 3 ># 64 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_pair.h" 3 >namespace std >{ > > >template <class _T1, class _T2> >struct pair { > typedef _T1 first_type; > typedef _T2 second_type; > > _T1 first; > _T2 second; > > > > > pair() : first(), second() {} > > > > > pair(const _T1& __a, const _T2& __b) : first(__a), second(__b) {} > > > template <class _U1, class _U2> > pair(const pair<_U1, _U2>& __p) : first(__p.first), second(__p.second) {} >}; > > >template <class _T1, class _T2> >inline bool operator==(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) >{ > return __x.first == __y.first && __x.second == __y.second; >} > > >template <class _T1, class _T2> >inline bool operator<(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) >{ > return __x.first < __y.first || > (!(__y.first < __x.first) && __x.second < __y.second); >} > > >template <class _T1, class _T2> >inline bool operator!=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) { > return !(__x == __y); >} > > >template <class _T1, class _T2> >inline bool operator>(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) { > return __y < __x; >} > > >template <class _T1, class _T2> >inline bool operator<=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) { > return !(__y < __x); >} > > >template <class _T1, class _T2> >inline bool operator>=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) { > return !(__x < __y); >} ># 140 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_pair.h" 3 >template <class _T1, class _T2> > > >inline pair<_T1, _T2> make_pair(_T1 __x, _T2 __y) > > > >{ > return pair<_T1, _T2>(__x, __y); >} > >} ># 72 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_algobase.h" 2 3 ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/type_traits.h" 1 3 ># 52 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/type_traits.h" 3 > ># 53 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/type_traits.h" 3 ># 90 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/type_traits.h" 3 >struct __true_type {}; >struct __false_type {}; > >template <class _Tp> >struct __type_traits { > typedef __true_type this_dummy_member_must_be_first; ># 113 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/type_traits.h" 3 > typedef __false_type has_trivial_default_constructor; > typedef __false_type has_trivial_copy_constructor; > typedef __false_type has_trivial_assignment_operator; > typedef __false_type has_trivial_destructor; > typedef __false_type is_POD_type; >}; > > > > >template<> struct __type_traits<bool> { > typedef __true_type has_trivial_default_constructor; > typedef __true_type has_trivial_copy_constructor; > typedef __true_type has_trivial_assignment_operator; > typedef __true_type has_trivial_destructor; > typedef __true_type is_POD_type; >}; > >template<> struct __type_traits<char> { > typedef __true_type has_trivial_default_constructor; > typedef __true_type has_trivial_copy_constructor; > typedef __true_type has_trivial_assignment_operator; > typedef __true_type has_trivial_destructor; > typedef __true_type is_POD_type; >}; > >template<> struct __type_traits<signed char> { > typedef __true_type has_trivial_default_constructor; > typedef __true_type has_trivial_copy_constructor; > typedef __true_type has_trivial_assignment_operator; > typedef __true_type has_trivial_destructor; > typedef __true_type is_POD_type; >}; > >template<> struct __type_traits<unsigned char> { > typedef __true_type has_trivial_default_constructor; > typedef __true_type has_trivial_copy_constructor; > typedef __true_type has_trivial_assignment_operator; > typedef __true_type has_trivial_destructor; > typedef __true_type is_POD_type; >}; > >template<> struct __type_traits<wchar_t> { > typedef __true_type has_trivial_default_constructor; > typedef __true_type has_trivial_copy_constructor; > typedef __true_type has_trivial_assignment_operator; > typedef __true_type has_trivial_destructor; > typedef __true_type is_POD_type; >}; > >template<> struct __type_traits<short> { > typedef __true_type has_trivial_default_constructor; > typedef __true_type has_trivial_copy_constructor; > typedef __true_type has_trivial_assignment_operator; > typedef __true_type has_trivial_destructor; > typedef __true_type is_POD_type; >}; > >template<> struct __type_traits<unsigned short> { > typedef __true_type has_trivial_default_constructor; > typedef __true_type has_trivial_copy_constructor; > typedef __true_type has_trivial_assignment_operator; > typedef __true_type has_trivial_destructor; > typedef __true_type is_POD_type; >}; > >template<> struct __type_traits<int> { > typedef __true_type has_trivial_default_constructor; > typedef __true_type has_trivial_copy_constructor; > typedef __true_type has_trivial_assignment_operator; > typedef __true_type has_trivial_destructor; > typedef __true_type is_POD_type; >}; > >template<> struct __type_traits<unsigned int> { > typedef __true_type has_trivial_default_constructor; > typedef __true_type has_trivial_copy_constructor; > typedef __true_type has_trivial_assignment_operator; > typedef __true_type has_trivial_destructor; > typedef __true_type is_POD_type; >}; > >template<> struct __type_traits<long> { > typedef __true_type has_trivial_default_constructor; > typedef __true_type has_trivial_copy_constructor; > typedef __true_type has_trivial_assignment_operator; > typedef __true_type has_trivial_destructor; > typedef __true_type is_POD_type; >}; > >template<> struct __type_traits<unsigned long> { > typedef __true_type has_trivial_default_constructor; > typedef __true_type has_trivial_copy_constructor; > typedef __true_type has_trivial_assignment_operator; > typedef __true_type has_trivial_destructor; > typedef __true_type is_POD_type; >}; > >template<> struct __type_traits<long long> { > typedef __true_type has_trivial_default_constructor; > typedef __true_type has_trivial_copy_constructor; > typedef __true_type has_trivial_assignment_operator; > typedef __true_type has_trivial_destructor; > typedef __true_type is_POD_type; >}; > >template<> struct __type_traits<unsigned long long> { > typedef __true_type has_trivial_default_constructor; > typedef __true_type has_trivial_copy_constructor; > typedef __true_type has_trivial_assignment_operator; > typedef __true_type has_trivial_destructor; > typedef __true_type is_POD_type; >}; > >template<> struct __type_traits<float> { > typedef __true_type has_trivial_default_constructor; > typedef __true_type has_trivial_copy_constructor; > typedef __true_type has_trivial_assignment_operator; > typedef __true_type has_trivial_destructor; > typedef __true_type is_POD_type; >}; > >template<> struct __type_traits<double> { > typedef __true_type has_trivial_default_constructor; > typedef __true_type has_trivial_copy_constructor; > typedef __true_type has_trivial_assignment_operator; > typedef __true_type has_trivial_destructor; > typedef __true_type is_POD_type; >}; > >template<> struct __type_traits<long double> { > typedef __true_type has_trivial_default_constructor; > typedef __true_type has_trivial_copy_constructor; > typedef __true_type has_trivial_assignment_operator; > typedef __true_type has_trivial_destructor; > typedef __true_type is_POD_type; >}; > >template <class _Tp> >struct __type_traits<_Tp*> { > typedef __true_type has_trivial_default_constructor; > typedef __true_type has_trivial_copy_constructor; > typedef __true_type has_trivial_assignment_operator; > typedef __true_type has_trivial_destructor; > typedef __true_type is_POD_type; >}; > > > > > >template <class _Tp> struct _Is_integer { > typedef __false_type _Integral; >}; > >template<> struct _Is_integer<bool> { > typedef __true_type _Integral; >}; > >template<> struct _Is_integer<char> { > typedef __true_type _Integral; >}; > >template<> struct _Is_integer<signed char> { > typedef __true_type _Integral; >}; > >template<> struct _Is_integer<unsigned char> { > typedef __true_type _Integral; >}; > >template<> struct _Is_integer<wchar_t> { > typedef __true_type _Integral; >}; > >template<> struct _Is_integer<short> { > typedef __true_type _Integral; >}; > >template<> struct _Is_integer<unsigned short> { > typedef __true_type _Integral; >}; > >template<> struct _Is_integer<int> { > typedef __true_type _Integral; >}; > >template<> struct _Is_integer<unsigned int> { > typedef __true_type _Integral; >}; > >template<> struct _Is_integer<long> { > typedef __true_type _Integral; >}; > >template<> struct _Is_integer<unsigned long> { > typedef __true_type _Integral; >}; > >template<> struct _Is_integer<long long> { > typedef __true_type _Integral; >}; > >template<> struct _Is_integer<unsigned long long> { > typedef __true_type _Integral; >}; > >template<typename _Tp> struct _Is_normal_iterator { > typedef __false_type _Normal; >}; > > >namespace __gnu_cxx >{ > template<typename _Iterator, typename _Container> class __normal_iterator; >} > >template<typename _Iterator, typename _Container> >struct _Is_normal_iterator< __gnu_cxx::__normal_iterator<_Iterator, _Container> > { > typedef __true_type _Normal; >}; ># 73 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_algobase.h" 2 3 ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_iterator_base_types.h" 1 3 ># 67 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_iterator_base_types.h" 3 > ># 68 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_iterator_base_types.h" 3 > >namespace std >{ ># 80 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_iterator_base_types.h" 3 > struct input_iterator_tag {}; > > struct output_iterator_tag {}; > > struct forward_iterator_tag : public input_iterator_tag {}; > > struct bidirectional_iterator_tag : public forward_iterator_tag {}; > > struct random_access_iterator_tag : public bidirectional_iterator_tag {}; ># 102 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_iterator_base_types.h" 3 > template<typename _Category, typename _Tp, typename _Distance = ptrdiff_t, > typename _Pointer = _Tp*, typename _Reference = _Tp&> > struct iterator > { > > typedef _Category iterator_category; > > typedef _Tp value_type; > > typedef _Distance difference_type; > > typedef _Pointer pointer; > > typedef _Reference reference; > }; > > > > > > > > template<typename _Iterator> > struct iterator_traits { > typedef typename _Iterator::iterator_category iterator_category; > typedef typename _Iterator::value_type value_type; > typedef typename _Iterator::difference_type difference_type; > typedef typename _Iterator::pointer pointer; > typedef typename _Iterator::reference reference; > }; > > template<typename _Tp> > struct iterator_traits<_Tp*> { > typedef random_access_iterator_tag iterator_category; > typedef _Tp value_type; > typedef ptrdiff_t difference_type; > typedef _Tp* pointer; > typedef _Tp& reference; > }; > > template<typename _Tp> > struct iterator_traits<const _Tp*> { > typedef random_access_iterator_tag iterator_category; > typedef _Tp value_type; > typedef ptrdiff_t difference_type; > typedef const _Tp* pointer; > typedef const _Tp& reference; > }; > > > > > > > > template<typename _Iter> > inline typename iterator_traits<_Iter>::iterator_category > __iterator_category(const _Iter&) > { return typename iterator_traits<_Iter>::iterator_category(); } > >} ># 74 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_algobase.h" 2 3 ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_iterator_base_funcs.h" 1 3 ># 67 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_iterator_base_funcs.h" 3 > ># 68 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_iterator_base_funcs.h" 3 ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/concept_check.h" 1 3 ># 38 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/concept_check.h" 3 > ># 39 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/concept_check.h" 3 ># 69 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_iterator_base_funcs.h" 2 3 > >namespace std >{ > template<typename _InputIterator> > inline typename iterator_traits<_InputIterator>::difference_type > __distance(_InputIterator __first, _InputIterator __last, > input_iterator_tag) > { > > > > typename iterator_traits<_InputIterator>::difference_type __n = 0; > while (__first != __last) { > ++__first; ++__n; > } > return __n; > } > > template<typename _RandomAccessIterator> > inline typename iterator_traits<_RandomAccessIterator>::difference_type > __distance(_RandomAccessIterator __first, _RandomAccessIterator __last, > random_access_iterator_tag) > { > > > return __last - __first; > } ># 109 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_iterator_base_funcs.h" 3 > template<typename _InputIterator> > inline typename iterator_traits<_InputIterator>::difference_type > distance(_InputIterator __first, _InputIterator __last) > { > > return __distance(__first, __last, __iterator_category(__first)); > } > > template<typename _InputIter, typename _Distance> > inline void > __advance(_InputIter& __i, _Distance __n, input_iterator_tag) > { > > > while (__n--) ++__i; > } > > template<typename _BidirectionalIterator, typename _Distance> > inline void > __advance(_BidirectionalIterator& __i, _Distance __n, > bidirectional_iterator_tag) > { > > > > if (__n > 0) > while (__n--) ++__i; > else > while (__n++) --__i; > } > > template<typename _RandomAccessIterator, typename _Distance> > inline void > __advance(_RandomAccessIterator& __i, _Distance __n, > random_access_iterator_tag) > { > > > __i += __n; > } ># 162 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_iterator_base_funcs.h" 3 > template<typename _InputIterator, typename _Distance> > inline void > advance(_InputIterator& __i, _Distance __n) > { > > __advance(__i, __n, __iterator_category(__i)); > } >} ># 75 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_algobase.h" 2 3 ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_iterator.h" 1 3 ># 68 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_iterator.h" 3 >namespace std >{ ># 89 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_iterator.h" 3 > template<typename _Iterator> > class reverse_iterator > : public iterator<typename iterator_traits<_Iterator>::iterator_category, > typename iterator_traits<_Iterator>::value_type, > typename iterator_traits<_Iterator>::difference_type, > typename iterator_traits<_Iterator>::pointer, > typename iterator_traits<_Iterator>::reference> > { > protected: > _Iterator current; > > public: > typedef _Iterator iterator_type; > typedef typename iterator_traits<_Iterator>::difference_type > difference_type; > typedef typename iterator_traits<_Iterator>::reference reference; > typedef typename iterator_traits<_Iterator>::pointer pointer; > > public: > > > > > > > reverse_iterator() : current() { } > > > > > explicit > reverse_iterator(iterator_type __x) : current(__x) { } > > > > > reverse_iterator(const reverse_iterator& __x) > : current(__x.current) { } > > > > > > template<typename _Iter> > reverse_iterator(const reverse_iterator<_Iter>& __x) > : current(__x.base()) { } > > > > > iterator_type > base() const { return current; } > > > > > > > reference > operator*() const > { > _Iterator __tmp = current; > return *--__tmp; > } > > > > > > > pointer > operator->() const { return &(operator*()); } > > > > > > > reverse_iterator& > operator++() > { > --current; > return *this; > } > > > > > > > reverse_iterator > operator++(int) > { > reverse_iterator __tmp = *this; > --current; > return __tmp; > } > > > > > > > reverse_iterator& > operator--() > { > ++current; > return *this; > } > > > > > > > reverse_iterator operator--(int) > { > reverse_iterator __tmp = *this; > ++current; > return __tmp; > } > > > > > > > reverse_iterator > operator+(difference_type __n) const > { return reverse_iterator(current - __n); } > > > > > > > reverse_iterator& > operator+=(difference_type __n) > { > current -= __n; > return *this; > } > > > > > > > reverse_iterator > operator-(difference_type __n) const > { return reverse_iterator(current + __n); } > > > > > > > reverse_iterator& > operator-=(difference_type __n) > { > current += __n; > return *this; > } > > > > > > > reference > operator[](difference_type __n) const { return *(*this + __n); } > }; ># 272 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_iterator.h" 3 > template<typename _Iterator> > inline bool > operator==(const reverse_iterator<_Iterator>& __x, > const reverse_iterator<_Iterator>& __y) > { return __x.base() == __y.base(); } > > template<typename _Iterator> > inline bool > operator<(const reverse_iterator<_Iterator>& __x, > const reverse_iterator<_Iterator>& __y) > { return __y.base() < __x.base(); } > > template<typename _Iterator> > inline bool > operator!=(const reverse_iterator<_Iterator>& __x, > const reverse_iterator<_Iterator>& __y) > { return !(__x == __y); } > > template<typename _Iterator> > inline bool > operator>(const reverse_iterator<_Iterator>& __x, > const reverse_iterator<_Iterator>& __y) > { return __y < __x; } > > template<typename _Iterator> > inline bool > operator<=(const reverse_iterator<_Iterator>& __x, > const reverse_iterator<_Iterator>& __y) > { return !(__y < __x); } > > template<typename _Iterator> > inline bool > operator>=(const reverse_iterator<_Iterator>& __x, > const reverse_iterator<_Iterator>& __y) > { return !(__x < __y); } > > template<typename _Iterator> > inline typename reverse_iterator<_Iterator>::difference_type > operator-(const reverse_iterator<_Iterator>& __x, > const reverse_iterator<_Iterator>& __y) > { return __y.base() - __x.base(); } > > template<typename _Iterator> > inline reverse_iterator<_Iterator> > operator+(typename reverse_iterator<_Iterator>::difference_type __n, > const reverse_iterator<_Iterator>& __x) > { return reverse_iterator<_Iterator>(__x.base() - __n); } ># 332 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_iterator.h" 3 > template<typename _Container> > class back_insert_iterator > : public iterator<output_iterator_tag, void, void, void, void> > { > protected: > _Container* container; > > public: > > typedef _Container container_type; > > > explicit > back_insert_iterator(_Container& __x) : container(&__x) { } ># 358 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_iterator.h" 3 > back_insert_iterator& > operator=(typename _Container::const_reference __value) > { > container->push_back(__value); > return *this; > } > > > back_insert_iterator& > operator*() { return *this; } > > > back_insert_iterator& > operator++() { return *this; } > > > back_insert_iterator > operator++(int) { return *this; } > }; ># 389 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_iterator.h" 3 > template<typename _Container> > inline back_insert_iterator<_Container> > back_inserter(_Container& __x) > { return back_insert_iterator<_Container>(__x); } ># 404 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_iterator.h" 3 > template<typename _Container> > class front_insert_iterator > : public iterator<output_iterator_tag, void, void, void, void> > { > protected: > _Container* container; > > public: > > typedef _Container container_type; > > > explicit front_insert_iterator(_Container& __x) : container(&__x) { } ># 429 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_iterator.h" 3 > front_insert_iterator& > operator=(typename _Container::const_reference __value) > { > container->push_front(__value); > return *this; > } > > > front_insert_iterator& > operator*() { return *this; } > > > front_insert_iterator& > operator++() { return *this; } > > > front_insert_iterator > operator++(int) { return *this; } > }; ># 460 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_iterator.h" 3 > template<typename _Container> > inline front_insert_iterator<_Container> > front_inserter(_Container& __x) > { return front_insert_iterator<_Container>(__x); } ># 479 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_iterator.h" 3 > template<typename _Container> > class insert_iterator > : public iterator<output_iterator_tag, void, void, void, void> > { > protected: > _Container* container; > typename _Container::iterator iter; > > public: > > typedef _Container container_type; > > > > > > insert_iterator(_Container& __x, typename _Container::iterator __i) > : container(&__x), iter(__i) {} ># 521 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_iterator.h" 3 > insert_iterator& > operator=(const typename _Container::const_reference __value) > { > iter = container->insert(iter, __value); > ++iter; > return *this; > } > > > insert_iterator& > operator*() { return *this; } > > > insert_iterator& > operator++() { return *this; } > > > insert_iterator& > operator++(int) { return *this; } > }; ># 553 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_iterator.h" 3 > template<typename _Container, typename _Iterator> > inline insert_iterator<_Container> > inserter(_Container& __x, _Iterator __i) > { > return insert_iterator<_Container>(__x, > typename _Container::iterator(__i)); > } >} > >namespace __gnu_cxx >{ > > > > > > > > using std::iterator_traits; > using std::iterator; > template<typename _Iterator, typename _Container> > class __normal_iterator > : public iterator<typename iterator_traits<_Iterator>::iterator_category, > typename iterator_traits<_Iterator>::value_type, > typename iterator_traits<_Iterator>::difference_type, > typename iterator_traits<_Iterator>::pointer, > typename iterator_traits<_Iterator>::reference> > { > protected: > _Iterator _M_current; > > public: > typedef typename iterator_traits<_Iterator>::difference_type > difference_type; > typedef typename iterator_traits<_Iterator>::reference reference; > typedef typename iterator_traits<_Iterator>::pointer pointer; > > __normal_iterator() : _M_current(_Iterator()) { } > > explicit > __normal_iterator(const _Iterator& __i) : _M_current(__i) { } > > > template<typename _Iter> > inline __normal_iterator(const __normal_iterator<_Iter, _Container>& __i) > : _M_current(__i.base()) { } > > > reference > operator*() const { return *_M_current; } > > pointer > operator->() const { return _M_current; } > > __normal_iterator& > operator++() { ++_M_current; return *this; } > > __normal_iterator > operator++(int) { return __normal_iterator(_M_current++); } > > > __normal_iterator& > operator--() { --_M_current; return *this; } > > __normal_iterator > operator--(int) { return __normal_iterator(_M_current--); } > > > reference > operator[](const difference_type& __n) const > { return _M_current[__n]; } > > __normal_iterator& > operator+=(const difference_type& __n) > { _M_current += __n; return *this; } > > __normal_iterator > operator+(const difference_type& __n) const > { return __normal_iterator(_M_current + __n); } > > __normal_iterator& > operator-=(const difference_type& __n) > { _M_current -= __n; return *this; } > > __normal_iterator > operator-(const difference_type& __n) const > { return __normal_iterator(_M_current - __n); } > > const _Iterator& > base() const { return _M_current; } > }; ># 654 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_iterator.h" 3 > template<typename _IteratorL, typename _IteratorR, typename _Container> > inline bool > operator==(const __normal_iterator<_IteratorL, _Container>& __lhs, > const __normal_iterator<_IteratorR, _Container>& __rhs) > { return __lhs.base() == __rhs.base(); } > > template<typename _Iterator, typename _Container> > inline bool > operator==(const __normal_iterator<_Iterator, _Container>& __lhs, > const __normal_iterator<_Iterator, _Container>& __rhs) > { return __lhs.base() == __rhs.base(); } > > template<typename _IteratorL, typename _IteratorR, typename _Container> > inline bool > operator!=(const __normal_iterator<_IteratorL, _Container>& __lhs, > const __normal_iterator<_IteratorR, _Container>& __rhs) > { return __lhs.base() != __rhs.base(); } > > template<typename _Iterator, typename _Container> > inline bool > operator!=(const __normal_iterator<_Iterator, _Container>& __lhs, > const __normal_iterator<_Iterator, _Container>& __rhs) > { return __lhs.base() != __rhs.base(); } > > > template<typename _IteratorL, typename _IteratorR, typename _Container> > inline bool > operator<(const __normal_iterator<_IteratorL, _Container>& __lhs, > const __normal_iterator<_IteratorR, _Container>& __rhs) > { return __lhs.base() < __rhs.base(); } > > template<typename _Iterator, typename _Container> > inline bool > operator<(const __normal_iterator<_Iterator, _Container>& __lhs, > const __normal_iterator<_Iterator, _Container>& __rhs) > { return __lhs.base() < __rhs.base(); } > > template<typename _IteratorL, typename _IteratorR, typename _Container> > inline bool > operator>(const __normal_iterator<_IteratorL, _Container>& __lhs, > const __normal_iterator<_IteratorR, _Container>& __rhs) > { return __lhs.base() > __rhs.base(); } > > template<typename _Iterator, typename _Container> > inline bool > operator>(const __normal_iterator<_Iterator, _Container>& __lhs, > const __normal_iterator<_Iterator, _Container>& __rhs) > { return __lhs.base() > __rhs.base(); } > > template<typename _IteratorL, typename _IteratorR, typename _Container> > inline bool > operator<=(const __normal_iterator<_IteratorL, _Container>& __lhs, > const __normal_iterator<_IteratorR, _Container>& __rhs) > { return __lhs.base() <= __rhs.base(); } > > template<typename _Iterator, typename _Container> > inline bool > operator<=(const __normal_iterator<_Iterator, _Container>& __lhs, > const __normal_iterator<_Iterator, _Container>& __rhs) > { return __lhs.base() <= __rhs.base(); } > > template<typename _IteratorL, typename _IteratorR, typename _Container> > inline bool > operator>=(const __normal_iterator<_IteratorL, _Container>& __lhs, > const __normal_iterator<_IteratorR, _Container>& __rhs) > { return __lhs.base() >= __rhs.base(); } > > template<typename _Iterator, typename _Container> > inline bool > operator>=(const __normal_iterator<_Iterator, _Container>& __lhs, > const __normal_iterator<_Iterator, _Container>& __rhs) > { return __lhs.base() >= __rhs.base(); } > > > > > > template<typename _IteratorL, typename _IteratorR, typename _Container> > inline typename __normal_iterator<_IteratorL, _Container>::difference_type > operator-(const __normal_iterator<_IteratorL, _Container>& __lhs, > const __normal_iterator<_IteratorR, _Container>& __rhs) > { return __lhs.base() - __rhs.base(); } > > template<typename _Iterator, typename _Container> > inline __normal_iterator<_Iterator, _Container> > operator+(typename __normal_iterator<_Iterator, _Container>::difference_type __n, > const __normal_iterator<_Iterator, _Container>& __i) > { return __normal_iterator<_Iterator, _Container>(__i.base() + __n); } >} ># 76 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_algobase.h" 2 3 > > >namespace std >{ ># 91 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_algobase.h" 3 > template<typename _ForwardIter1, typename _ForwardIter2> > inline void > iter_swap(_ForwardIter1 __a, _ForwardIter2 __b) > { > typedef typename iterator_traits<_ForwardIter1>::value_type _ValueType1; > typedef typename iterator_traits<_ForwardIter2>::value_type _ValueType2; > > > > > > > > _ValueType1 __tmp = *__a; > *__a = *__b; > *__b = __tmp; > } ># 118 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_algobase.h" 3 > template<typename _Tp> > inline void > swap(_Tp& __a, _Tp& __b) > { > > > > _Tp __tmp = __a; > __a = __b; > __b = __tmp; > } ># 146 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_algobase.h" 3 > template<typename _Tp> > inline const _Tp& > min(const _Tp& __a, const _Tp& __b) > { > > > > if (__b < __a) return __b; return __a; > } ># 166 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_algobase.h" 3 > template<typename _Tp> > inline const _Tp& > max(const _Tp& __a, const _Tp& __b) > { > > > > if (__a < __b) return __b; return __a; > } ># 186 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_algobase.h" 3 > template<typename _Tp, typename _Compare> > inline const _Tp& > min(const _Tp& __a, const _Tp& __b, _Compare __comp) > { > > if (__comp(__b, __a)) return __b; return __a; > } ># 204 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_algobase.h" 3 > template<typename _Tp, typename _Compare> > inline const _Tp& > max(const _Tp& __a, const _Tp& __b, _Compare __comp) > { > > if (__comp(__a, __b)) return __b; return __a; > } ># 221 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_algobase.h" 3 > template<typename _InputIter, typename _OutputIter> > inline _OutputIter > __copy(_InputIter __first, _InputIter __last, > _OutputIter __result, > input_iterator_tag) > { > for ( ; __first != __last; ++__result, ++__first) > *__result = *__first; > return __result; > } > > template<typename _RandomAccessIter, typename _OutputIter> > inline _OutputIter > __copy(_RandomAccessIter __first, _RandomAccessIter __last, > _OutputIter __result, > random_access_iterator_tag) > { > typedef typename iterator_traits<_RandomAccessIter>::difference_type > _Distance; > for (_Distance __n = __last - __first; __n > 0; --__n) { > *__result = *__first; > ++__first; > ++__result; > } > return __result; > } > > template<typename _Tp> > inline _Tp* > __copy_trivial(const _Tp* __first, const _Tp* __last, _Tp* __result) > { > memmove(__result, __first, sizeof(_Tp) * (__last - __first)); > return __result + (__last - __first); > } > > template<typename _InputIter, typename _OutputIter> > inline _OutputIter > __copy_aux2(_InputIter __first, _InputIter __last, > _OutputIter __result, __false_type) > { return __copy(__first, __last, __result, __iterator_category(__first)); } > > template<typename _InputIter, typename _OutputIter> > inline _OutputIter > __copy_aux2(_InputIter __first, _InputIter __last, > _OutputIter __result, __true_type) > { return __copy(__first, __last, __result, __iterator_category(__first)); } > > template<typename _Tp> > inline _Tp* > __copy_aux2(_Tp* __first, _Tp* __last, > _Tp* __result, __true_type) > { return __copy_trivial(__first, __last, __result); } > > template<typename _Tp> > inline _Tp* > __copy_aux2(const _Tp* __first, const _Tp* __last, > _Tp* __result, __true_type) > { return __copy_trivial(__first, __last, __result); } > > template<typename _InputIter, typename _OutputIter> > inline _OutputIter > __copy_ni2(_InputIter __first, _InputIter __last, > _OutputIter __result, __true_type) > { > typedef typename iterator_traits<_InputIter>::value_type > _ValueType; > typedef typename __type_traits<_ValueType>::has_trivial_assignment_operator > _Trivial; > return _OutputIter(__copy_aux2(__first, __last, > __result.base(), > _Trivial())); > } > > template<typename _InputIter, typename _OutputIter> > inline _OutputIter > __copy_ni2(_InputIter __first, _InputIter __last, > _OutputIter __result, __false_type) > { > typedef typename iterator_traits<_InputIter>::value_type > _ValueType; > typedef typename __type_traits<_ValueType>::has_trivial_assignment_operator > _Trivial; > return __copy_aux2(__first, __last, > __result, > _Trivial()); > } > > template<typename _InputIter, typename _OutputIter> > inline _OutputIter > __copy_ni1(_InputIter __first, _InputIter __last, > _OutputIter __result, __true_type) > { > typedef typename _Is_normal_iterator<_OutputIter>::_Normal __Normal; > return __copy_ni2(__first.base(), __last.base(), __result, __Normal()); > } > > template<typename _InputIter, typename _OutputIter> > inline _OutputIter > __copy_ni1(_InputIter __first, _InputIter __last, > _OutputIter __result, __false_type) > { > typedef typename _Is_normal_iterator<_OutputIter>::_Normal __Normal; > return __copy_ni2(__first, __last, __result, __Normal()); > } ># 339 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_algobase.h" 3 > template<typename _InputIter, typename _OutputIter> > inline _OutputIter > copy(_InputIter __first, _InputIter __last, _OutputIter __result) > { > > > > > > typedef typename _Is_normal_iterator<_InputIter>::_Normal __Normal; > return __copy_ni1(__first, __last, __result, __Normal()); > } > > > > > template<typename _BidirectionalIter1, typename _BidirectionalIter2> > inline _BidirectionalIter2 > __copy_backward(_BidirectionalIter1 __first, _BidirectionalIter1 __last, > _BidirectionalIter2 __result, > bidirectional_iterator_tag) > { > while (__first != __last) > *--__result = *--__last; > return __result; > } > > template<typename _RandomAccessIter, typename _BidirectionalIter> > inline _BidirectionalIter > __copy_backward(_RandomAccessIter __first, _RandomAccessIter __last, > _BidirectionalIter __result, > random_access_iterator_tag) > { > typename iterator_traits<_RandomAccessIter>::difference_type __n; > for (__n = __last - __first; __n > 0; --__n) > *--__result = *--__last; > return __result; > } > > > > > > > > template<typename _BidirectionalIter1, typename _BidirectionalIter2, > typename _BoolType> > struct __copy_backward_dispatch > { > static _BidirectionalIter2 > copy(_BidirectionalIter1 __first, _BidirectionalIter1 __last, > _BidirectionalIter2 __result) > { > return __copy_backward(__first, __last, > __result, > __iterator_category(__first)); > } > }; > > template<typename _Tp> > struct __copy_backward_dispatch<_Tp*, _Tp*, __true_type> > { > static _Tp* > copy(const _Tp* __first, const _Tp* __last, _Tp* __result) > { > const ptrdiff_t _Num = __last - __first; > memmove(__result - _Num, __first, sizeof(_Tp) * _Num); > return __result - _Num; > } > }; > > template<typename _Tp> > struct __copy_backward_dispatch<const _Tp*, _Tp*, __true_type> > { > static _Tp* > copy(const _Tp* __first, const _Tp* __last, _Tp* __result) > { > return __copy_backward_dispatch<_Tp*, _Tp*, __true_type> > ::copy(__first, __last, __result); > } > }; > > template<typename _BI1, typename _BI2> > inline _BI2 > __copy_backward_aux(_BI1 __first, _BI1 __last, _BI2 __result) > { > typedef typename __type_traits<typename iterator_traits<_BI2>::value_type> > ::has_trivial_assignment_operator _Trivial; > return __copy_backward_dispatch<_BI1, _BI2, _Trivial> > ::copy(__first, __last, __result); > } > > template <typename _BI1, typename _BI2> > inline _BI2 > __copy_backward_output_normal_iterator(_BI1 __first, _BI1 __last, > _BI2 __result, __true_type) > { return _BI2(__copy_backward_aux(__first, __last, __result.base())); } > > template <typename _BI1, typename _BI2> > inline _BI2 > __copy_backward_output_normal_iterator(_BI1 __first, _BI1 __last, > _BI2 __result, __false_type) > { return __copy_backward_aux(__first, __last, __result); } > > template <typename _BI1, typename _BI2> > inline _BI2 > __copy_backward_input_normal_iterator(_BI1 __first, _BI1 __last, > _BI2 __result, __true_type) > { > typedef typename _Is_normal_iterator<_BI2>::_Normal __Normal; > return __copy_backward_output_normal_iterator(__first.base(), __last.base(), > __result, __Normal()); > } > > template <typename _BI1, typename _BI2> > inline _BI2 > __copy_backward_input_normal_iterator(_BI1 __first, _BI1 __last, > _BI2 __result, __false_type) > { > typedef typename _Is_normal_iterator<_BI2>::_Normal __Normal; > return __copy_backward_output_normal_iterator(__first, __last, __result, > __Normal()); > } ># 477 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_algobase.h" 3 > template <typename _BI1, typename _BI2> > inline _BI2 > copy_backward(_BI1 __first, _BI1 __last, _BI2 __result) > { > > > > > > > > typedef typename _Is_normal_iterator<_BI1>::_Normal __Normal; > return __copy_backward_input_normal_iterator(__first, __last, __result, > __Normal()); > } ># 509 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_algobase.h" 3 > template<typename _ForwardIter, typename _Tp> > void > fill(_ForwardIter __first, _ForwardIter __last, const _Tp& __value) > { > > > > for ( ; __first != __last; ++__first) > *__first = __value; > } ># 531 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_algobase.h" 3 > template<typename _OutputIter, typename _Size, typename _Tp> > _OutputIter > fill_n(_OutputIter __first, _Size __n, const _Tp& __value) > { > > > > for ( ; __n > 0; --__n, ++__first) > *__first = __value; > return __first; > } > > > > inline void > fill(unsigned char* __first, unsigned char* __last, const unsigned char& __c) > { > unsigned char __tmp = __c; > memset(__first, __tmp, __last - __first); > } > > inline void > fill(signed char* __first, signed char* __last, const signed char& __c) > { > signed char __tmp = __c; > memset(__first, static_cast<unsigned char>(__tmp), __last - __first); > } > > inline void > fill(char* __first, char* __last, const char& __c) > { > char __tmp = __c; > memset(__first, static_cast<unsigned char>(__tmp), __last - __first); > } > > template<typename _Size> > inline unsigned char* > fill_n(unsigned char* __first, _Size __n, const unsigned char& __c) > { > fill(__first, __first + __n, __c); > return __first + __n; > } > > template<typename _Size> > inline signed char* > fill_n(char* __first, _Size __n, const signed char& __c) > { > fill(__first, __first + __n, __c); > return __first + __n; > } > > template<typename _Size> > inline char* > fill_n(char* __first, _Size __n, const char& __c) > { > fill(__first, __first + __n, __c); > return __first + __n; > } ># 606 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_algobase.h" 3 > template<typename _InputIter1, typename _InputIter2> > pair<_InputIter1, _InputIter2> > mismatch(_InputIter1 __first1, _InputIter1 __last1, > _InputIter2 __first2) > { > > > > > > > > > while (__first1 != __last1 && *__first1 == *__first2) { > ++__first1; > ++__first2; > } > return pair<_InputIter1, _InputIter2>(__first1, __first2); > } ># 640 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_algobase.h" 3 > template<typename _InputIter1, typename _InputIter2, typename _BinaryPredicate> > pair<_InputIter1, _InputIter2> > mismatch(_InputIter1 __first1, _InputIter1 __last1, > _InputIter2 __first2, > _BinaryPredicate __binary_pred) > { > > > > > while (__first1 != __last1 && __binary_pred(*__first1, *__first2)) { > ++__first1; > ++__first2; > } > return pair<_InputIter1, _InputIter2>(__first1, __first2); > } ># 668 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_algobase.h" 3 > template<typename _InputIter1, typename _InputIter2> > inline bool > equal(_InputIter1 __first1, _InputIter1 __last1, > _InputIter2 __first2) > { > > > > > > > > for ( ; __first1 != __last1; ++__first1, ++__first2) > if (!(*__first1 == *__first2)) > return false; > return true; > } ># 699 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_algobase.h" 3 > template<typename _InputIter1, typename _InputIter2, typename _BinaryPredicate> > inline bool > equal(_InputIter1 __first1, _InputIter1 __last1, > _InputIter2 __first2, > _BinaryPredicate __binary_pred) > { > > > > > for ( ; __first1 != __last1; ++__first1, ++__first2) > if (!__binary_pred(*__first1, *__first2)) > return false; > return true; > } ># 732 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_algobase.h" 3 > template<typename _InputIter1, typename _InputIter2> > bool > lexicographical_compare(_InputIter1 __first1, _InputIter1 __last1, > _InputIter2 __first2, _InputIter2 __last2) > { > > > > > > > > > for ( ; __first1 != __last1 && __first2 != __last2 > ; ++__first1, ++__first2) { > if (*__first1 < *__first2) > return true; > if (*__first2 < *__first1) > return false; > } > return __first1 == __last1 && __first2 != __last2; > } ># 767 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_algobase.h" 3 > template<typename _InputIter1, typename _InputIter2, typename _Compare> > bool > lexicographical_compare(_InputIter1 __first1, _InputIter1 __last1, > _InputIter2 __first2, _InputIter2 __last2, > _Compare __comp) > { > > > > > for ( ; __first1 != __last1 && __first2 != __last2 > ; ++__first1, ++__first2) { > if (__comp(*__first1, *__first2)) > return true; > if (__comp(*__first2, *__first1)) > return false; > } > return __first1 == __last1 && __first2 != __last2; > } > > inline bool > lexicographical_compare(const unsigned char* __first1, const unsigned char* __last1, > const unsigned char* __first2, const unsigned char* __last2) > { > const size_t __len1 = __last1 - __first1; > const size_t __len2 = __last2 - __first2; > const int __result = memcmp(__first1, __first2, min(__len1, __len2)); > return __result != 0 ? __result < 0 : __len1 < __len2; > } > > inline bool > lexicographical_compare(const char* __first1, const char* __last1, > const char* __first2, const char* __last2) > { > > return lexicographical_compare((const signed char*) __first1, > (const signed char*) __last1, > (const signed char*) __first2, > (const signed char*) __last2); > > > > > > > } > >} ># 68 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/vector" 2 3 ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_alloc.h" 1 3 ># 88 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_alloc.h" 3 ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/functexcept.h" 1 3 ># 34 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/functexcept.h" 3 ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/exception_defines.h" 1 3 ># 35 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/functexcept.h" 2 3 > >namespace std >{ > > void > __throw_bad_exception(void); > > > void > __throw_bad_alloc(void); > > > void > __throw_bad_cast(void); > > void > __throw_bad_typeid(void); > > > void > __throw_logic_error(const char* __s); > > void > __throw_domain_error(const char* __s); > > void > __throw_invalid_argument(const char* __s); > > void > __throw_length_error(const char* __s); > > void > __throw_out_of_range(const char* __s); > > void > __throw_runtime_error(const char* __s); > > void > __throw_range_error(const char* __s); > > void > __throw_overflow_error(const char* __s); > > void > __throw_underflow_error(const char* __s); > > > void > __throw_ios_failure(const char* __s); >} ># 89 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_alloc.h" 2 3 ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_threads.h" 1 3 ># 54 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_threads.h" 3 >namespace std >{ > > > > > struct _Refcount_Base > { > > typedef size_t _RC_t; > > > volatile _RC_t _M_ref_count; > > > __gthread_mutex_t _M_ref_count_lock; > > _Refcount_Base(_RC_t __n) : _M_ref_count(__n) > { > > __gthread_mutex_t __tmp = {0, 0, 0, PTHREAD_MUTEX_TIMED_NP, { 0, 0 }}; > _M_ref_count_lock = __tmp; > > > > > > } > > void > _M_incr() > { > __gthread_mutex_lock(&_M_ref_count_lock); > ++_M_ref_count; > __gthread_mutex_unlock(&_M_ref_count_lock); > } > > _RC_t > _M_decr() > { > __gthread_mutex_lock(&_M_ref_count_lock); > volatile _RC_t __tmp = --_M_ref_count; > __gthread_mutex_unlock(&_M_ref_count_lock); > return __tmp; > } > }; ># 109 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_threads.h" 3 > template<int __dummy> > struct _Swap_lock_struct > { static __gthread_mutex_t _S_swap_lock; }; > > template<int __dummy> > __gthread_mutex_t > _Swap_lock_struct<__dummy>::_S_swap_lock = {0, 0, 0, PTHREAD_MUTEX_TIMED_NP, { 0, 0 }}; > > > > inline unsigned long > _Atomic_swap(unsigned long * __p, unsigned long __q) > { > __gthread_mutex_lock(&_Swap_lock_struct<0>::_S_swap_lock); > unsigned long __result = *__p; > *__p = __q; > __gthread_mutex_unlock(&_Swap_lock_struct<0>::_S_swap_lock); > return __result; > } > >} ># 155 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_threads.h" 3 >namespace std >{ > struct _STL_mutex_lock > { > > > > > > __gthread_mutex_t _M_lock; > > void > _M_initialize() > { ># 192 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_threads.h" 3 > } > > void > _M_acquire_lock() > { > > > > __gthread_mutex_lock(&_M_lock); > } > > void > _M_release_lock() > { > > > > __gthread_mutex_unlock(&_M_lock); > } > }; ># 228 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_threads.h" 3 > struct _STL_auto_lock > { > _STL_mutex_lock& _M_lock; > > _STL_auto_lock(_STL_mutex_lock& __lock) : _M_lock(__lock) > { _M_lock._M_acquire_lock(); } > > ~_STL_auto_lock() { _M_lock._M_release_lock(); } > > private: > void operator=(const _STL_auto_lock&); > _STL_auto_lock(const _STL_auto_lock&); > }; > >} ># 90 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_alloc.h" 2 3 > ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/i686-pc-linux-gnu/bits/atomicity.h" 1 3 ># 33 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/i686-pc-linux-gnu/bits/atomicity.h" 3 >typedef int _Atomic_word; > >static inline _Atomic_word >__attribute__ ((__unused__)) >__exchange_and_add (volatile _Atomic_word *__mem, int __val) >{ > register _Atomic_word __result; > __asm__ __volatile__ ("lock; xadd{l} {%0,%1|%1,%0}" > : "=r" (__result), "=m" (*__mem) > : "0" (__val), "m"(*__mem) > : "memory"); > return __result; >} > >static inline void >__attribute__ ((__unused__)) >__atomic_add (volatile _Atomic_word* __mem, int __val) >{ > __asm__ __volatile__ ("lock; add{l} {%1,%0|%0,%1}" > : "=m" (*__mem) > : "ir" (__val), "m"(*__mem) > : "memory"); >} ># 92 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_alloc.h" 2 3 > >namespace std >{ ># 103 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_alloc.h" 3 > class __new_alloc > { > public: > static void* > allocate(size_t __n) > { return ::operator new(__n); } > > static void > deallocate(void* __p, size_t) > { ::operator delete(__p); } > }; ># 126 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_alloc.h" 3 > template<int __inst> > class __malloc_alloc_template > { > private: > static void* _S_oom_malloc(size_t); > static void* _S_oom_realloc(void*, size_t); > static void (* __malloc_alloc_oom_handler)(); > > public: > static void* > allocate(size_t __n) > { > void* __result = malloc(__n); > if (__builtin_expect(__result == 0, 0)) > __result = _S_oom_malloc(__n); > return __result; > } > > static void > deallocate(void* __p, size_t ) > { free(__p); } > > static void* > reallocate(void* __p, size_t , size_t __new_sz) > { > void* __result = realloc(__p, __new_sz); > if (__builtin_expect(__result == 0, 0)) > __result = _S_oom_realloc(__p, __new_sz); > return __result; > } > > static void (* __set_malloc_handler(void (*__f)()))() > { > void (* __old)() = __malloc_alloc_oom_handler; > __malloc_alloc_oom_handler = __f; > return __old; > } > }; > > > template<int __inst> > void (* __malloc_alloc_template<__inst>::__malloc_alloc_oom_handler)() = 0; > > template<int __inst> > void* > __malloc_alloc_template<__inst>:: > _S_oom_malloc(size_t __n) > { > void (* __my_malloc_handler)(); > void* __result; > > for (;;) > { > __my_malloc_handler = __malloc_alloc_oom_handler; > if (__builtin_expect(__my_malloc_handler == 0, 0)) > __throw_bad_alloc(); > (*__my_malloc_handler)(); > __result = malloc(__n); > if (__result) > return __result; > } > } > > template<int __inst> > void* > __malloc_alloc_template<__inst>:: > _S_oom_realloc(void* __p, size_t __n) > { > void (* __my_malloc_handler)(); > void* __result; > > for (;;) > { > __my_malloc_handler = __malloc_alloc_oom_handler; > if (__builtin_expect(__my_malloc_handler == 0, 0)) > __throw_bad_alloc(); > (*__my_malloc_handler)(); > __result = realloc(__p, __n); > if (__result) > return __result; > } > } > > > typedef __new_alloc __mem_interface; ># 223 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_alloc.h" 3 > template<typename _Tp, typename _Alloc> > class __simple_alloc > { > public: > static _Tp* > allocate(size_t __n) > { > _Tp* __ret = 0; > if (__n) > __ret = static_cast<_Tp*>(_Alloc::allocate(__n * sizeof(_Tp))); > return __ret; > } > > static _Tp* > allocate() > { return (_Tp*) _Alloc::allocate(sizeof (_Tp)); } > > static void > deallocate(_Tp* __p, size_t __n) > { if (0 != __n) _Alloc::deallocate(__p, __n * sizeof (_Tp)); } > > static void > deallocate(_Tp* __p) > { _Alloc::deallocate(__p, sizeof (_Tp)); } > }; ># 261 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_alloc.h" 3 > template<typename _Alloc> > class __debug_alloc > { > private: > > > enum {_S_extra = 8}; > > public: > static void* > allocate(size_t __n) > { > char* __result = (char*)_Alloc::allocate(__n + (int) _S_extra); > *(size_t*)__result = __n; > return __result + (int) _S_extra; > } > > static void > deallocate(void* __p, size_t __n) > { > char* __real_p = (char*)__p - (int) _S_extra; > if (*(size_t*)__real_p != __n) > abort(); > _Alloc::deallocate(__real_p, __n + (int) _S_extra); > } > > static void* > reallocate(void* __p, size_t __old_sz, size_t __new_sz) > { > char* __real_p = (char*)__p - (int) _S_extra; > if (*(size_t*)__real_p != __old_sz) > abort(); > char* __result = (char*) _Alloc::reallocate(__real_p, > __old_sz + (int) _S_extra, > __new_sz + (int) _S_extra); > *(size_t*)__result = __new_sz; > return __result + (int) _S_extra; > } > }; ># 332 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_alloc.h" 3 > template<bool __threads, int __inst> > class __default_alloc_template > { > private: > enum {_ALIGN = 8}; > enum {_MAX_BYTES = 128}; > enum {_NFREELISTS = _MAX_BYTES / _ALIGN}; > > union _Obj > { > union _Obj* _M_free_list_link; > char _M_client_data[1]; > }; > > static _Obj* volatile _S_free_list[_NFREELISTS]; > > > static char* _S_start_free; > static char* _S_end_free; > static size_t _S_heap_size; > > static _STL_mutex_lock _S_node_allocator_lock; > > static size_t > _S_round_up(size_t __bytes) > { return (((__bytes) + (size_t) _ALIGN-1) & ~((size_t) _ALIGN - 1)); } > > static size_t > _S_freelist_index(size_t __bytes) > { return (((__bytes) + (size_t)_ALIGN - 1)/(size_t)_ALIGN - 1); } > > > > static void* > _S_refill(size_t __n); > > > > static char* > _S_chunk_alloc(size_t __size, int& __nobjs); > > > > struct _Lock > { > _Lock() { if (__threads) _S_node_allocator_lock._M_acquire_lock(); } > ~_Lock() { if (__threads) _S_node_allocator_lock._M_release_lock(); } > } __attribute__ ((__unused__)); > friend struct _Lock; > > static _Atomic_word _S_force_new; > > public: > > static void* > allocate(size_t __n) > { > void* __ret = 0; > > > > > if (_S_force_new == 0) > { > if (getenv("GLIBCPP_FORCE_NEW")) > __atomic_add(&_S_force_new, 1); > else > __atomic_add(&_S_force_new, -1); > } > > if ((__n > (size_t) _MAX_BYTES) || (_S_force_new > 0)) > __ret = __new_alloc::allocate(__n); > else > { > _Obj* volatile* __my_free_list = _S_free_list > + _S_freelist_index(__n); > > > > _Lock __lock_instance; > _Obj* __restrict__ __result = *__my_free_list; > if (__builtin_expect(__result == 0, 0)) > __ret = _S_refill(_S_round_up(__n)); > else > { > *__my_free_list = __result -> _M_free_list_link; > __ret = __result; > } > if (__builtin_expect(__ret == 0, 0)) > __throw_bad_alloc(); > } > return __ret; > } > > > static void > deallocate(void* __p, size_t __n) > { > if ((__n > (size_t) _MAX_BYTES) || (_S_force_new > 0)) > __new_alloc::deallocate(__p, __n); > else > { > _Obj* volatile* __my_free_list = _S_free_list > + _S_freelist_index(__n); > _Obj* __q = (_Obj*)__p; > > > > > _Lock __lock_instance; > __q -> _M_free_list_link = *__my_free_list; > *__my_free_list = __q; > } > } > > static void* > reallocate(void* __p, size_t __old_sz, size_t __new_sz); > }; > > template<bool __threads, int __inst> _Atomic_word > __default_alloc_template<__threads, __inst>::_S_force_new = 0; > > template<bool __threads, int __inst> > inline bool > operator==(const __default_alloc_template<__threads,__inst>&, > const __default_alloc_template<__threads,__inst>&) > { return true; } > > template<bool __threads, int __inst> > inline bool > operator!=(const __default_alloc_template<__threads,__inst>&, > const __default_alloc_template<__threads,__inst>&) > { return false; } > > > > > > template<bool __threads, int __inst> > char* > __default_alloc_template<__threads, __inst>:: > _S_chunk_alloc(size_t __size, int& __nobjs) > { > char* __result; > size_t __total_bytes = __size * __nobjs; > size_t __bytes_left = _S_end_free - _S_start_free; > > if (__bytes_left >= __total_bytes) > { > __result = _S_start_free; > _S_start_free += __total_bytes; > return __result ; > } > else if (__bytes_left >= __size) > { > __nobjs = (int)(__bytes_left/__size); > __total_bytes = __size * __nobjs; > __result = _S_start_free; > _S_start_free += __total_bytes; > return __result; > } > else > { > size_t __bytes_to_get = > 2 * __total_bytes + _S_round_up(_S_heap_size >> 4); > > if (__bytes_left > 0) > { > _Obj* volatile* __my_free_list = > _S_free_list + _S_freelist_index(__bytes_left); > > ((_Obj*)(void*)_S_start_free) -> _M_free_list_link = *__my_free_list; > *__my_free_list = (_Obj*)(void*)_S_start_free; > } > _S_start_free = (char*) __new_alloc::allocate(__bytes_to_get); > if (_S_start_free == 0) > { > size_t __i; > _Obj* volatile* __my_free_list; > _Obj* __p; > > > > __i = __size; > for (; __i <= (size_t) _MAX_BYTES; __i += (size_t) _ALIGN) > { > __my_free_list = _S_free_list + _S_freelist_index(__i); > __p = *__my_free_list; > if (__p != 0) > { > *__my_free_list = __p -> _M_free_list_link; > _S_start_free = (char*)__p; > _S_end_free = _S_start_free + __i; > return _S_chunk_alloc(__size, __nobjs); > > > } > } > _S_end_free = 0; > _S_start_free = (char*)__new_alloc::allocate(__bytes_to_get); > > > } > _S_heap_size += __bytes_to_get; > _S_end_free = _S_start_free + __bytes_to_get; > return _S_chunk_alloc(__size, __nobjs); > } > } > > > > > > template<bool __threads, int __inst> > void* > __default_alloc_template<__threads, __inst>::_S_refill(size_t __n) > { > int __nobjs = 20; > char* __chunk = _S_chunk_alloc(__n, __nobjs); > _Obj* volatile* __my_free_list; > _Obj* __result; > _Obj* __current_obj; > _Obj* __next_obj; > int __i; > > if (1 == __nobjs) > return __chunk; > __my_free_list = _S_free_list + _S_freelist_index(__n); > > > __result = (_Obj*)(void*)__chunk; > *__my_free_list = __next_obj = (_Obj*)(void*)(__chunk + __n); > for (__i = 1; ; __i++) > { > __current_obj = __next_obj; > __next_obj = (_Obj*)(void*)((char*)__next_obj + __n); > if (__nobjs - 1 == __i) > { > __current_obj -> _M_free_list_link = 0; > break; > } > else > __current_obj -> _M_free_list_link = __next_obj; > } > return __result; > } > > > template<bool threads, int inst> > void* > __default_alloc_template<threads, inst>:: > reallocate(void* __p, size_t __old_sz, size_t __new_sz) > { > void* __result; > size_t __copy_sz; > > if (__old_sz > (size_t) _MAX_BYTES && __new_sz > (size_t) _MAX_BYTES) > return(realloc(__p, __new_sz)); > if (_S_round_up(__old_sz) == _S_round_up(__new_sz)) > return(__p); > __result = allocate(__new_sz); > __copy_sz = __new_sz > __old_sz? __old_sz : __new_sz; > memcpy(__result, __p, __copy_sz); > deallocate(__p, __old_sz); > return __result; > } > > template<bool __threads, int __inst> > _STL_mutex_lock > __default_alloc_template<__threads,__inst>::_S_node_allocator_lock > = { {0, 0, 0, PTHREAD_MUTEX_TIMED_NP, { 0, 0 }} }; > > template<bool __threads, int __inst> > char* __default_alloc_template<__threads,__inst>::_S_start_free = 0; > > template<bool __threads, int __inst> > char* __default_alloc_template<__threads,__inst>::_S_end_free = 0; > > template<bool __threads, int __inst> > size_t __default_alloc_template<__threads,__inst>::_S_heap_size = 0; > > template<bool __threads, int __inst> > typename __default_alloc_template<__threads,__inst>::_Obj* volatile > __default_alloc_template<__threads,__inst>::_S_free_list[_NFREELISTS]; > > typedef __default_alloc_template<true,0> __alloc; > typedef __default_alloc_template<false,0> __single_client_alloc; ># 635 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_alloc.h" 3 > template<typename _Tp> > class allocator > { > typedef __alloc _Alloc; > public: > typedef size_t size_type; > typedef ptrdiff_t difference_type; > typedef _Tp* pointer; > typedef const _Tp* const_pointer; > typedef _Tp& reference; > typedef const _Tp& const_reference; > typedef _Tp value_type; > > template<typename _Tp1> > struct rebind > { typedef allocator<_Tp1> other; }; > > allocator() throw() {} > allocator(const allocator&) throw() {} > template<typename _Tp1> > allocator(const allocator<_Tp1>&) throw() {} > ~allocator() throw() {} > > pointer > address(reference __x) const { return &__x; } > > const_pointer > address(const_reference __x) const { return &__x; } > > > > _Tp* > allocate(size_type __n, const void* = 0) > { > _Tp* __ret = 0; > if (__n) > { > if (__n <= this->max_size()) > __ret = static_cast<_Tp*>(_Alloc::allocate(__n * sizeof(_Tp))); > else > __throw_bad_alloc(); > } > return __ret; > } > > > void > deallocate(pointer __p, size_type __n) > { _Alloc::deallocate(__p, __n * sizeof(_Tp)); } > > size_type > max_size() const throw() { return size_t(-1) / sizeof(_Tp); } > > void construct(pointer __p, const _Tp& __val) { new(__p) _Tp(__val); } > void destroy(pointer __p) { __p->~_Tp(); } > }; > > template<> > class allocator<void> > { > public: > typedef size_t size_type; > typedef ptrdiff_t difference_type; > typedef void* pointer; > typedef const void* const_pointer; > typedef void value_type; > > template<typename _Tp1> > struct rebind > { typedef allocator<_Tp1> other; }; > }; > > > template<typename _T1, typename _T2> > inline bool > operator==(const allocator<_T1>&, const allocator<_T2>&) > { return true; } > > template<typename _T1, typename _T2> > inline bool > operator!=(const allocator<_T1>&, const allocator<_T2>&) > { return false; } ># 731 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_alloc.h" 3 > template<typename _Tp, typename _Alloc> > struct __allocator > { > _Alloc __underlying_alloc; > > typedef size_t size_type; > typedef ptrdiff_t difference_type; > typedef _Tp* pointer; > typedef const _Tp* const_pointer; > typedef _Tp& reference; > typedef const _Tp& const_reference; > typedef _Tp value_type; > > template<typename _Tp1> > struct rebind > { typedef __allocator<_Tp1, _Alloc> other; }; > > __allocator() throw() {} > __allocator(const __allocator& __a) throw() > : __underlying_alloc(__a.__underlying_alloc) {} > > template<typename _Tp1> > __allocator(const __allocator<_Tp1, _Alloc>& __a) throw() > : __underlying_alloc(__a.__underlying_alloc) {} > > ~__allocator() throw() {} > > pointer > address(reference __x) const { return &__x; } > > const_pointer > address(const_reference __x) const { return &__x; } > > > > _Tp* > allocate(size_type __n, const void* = 0) > { > _Tp* __ret = 0; > if (__n) > __ret = static_cast<_Tp*>(_Alloc::allocate(__n * sizeof(_Tp))); > return __ret; > } > > > void > deallocate(pointer __p, size_type __n) > { __underlying_alloc.deallocate(__p, __n * sizeof(_Tp)); } > > size_type > max_size() const throw() { return size_t(-1) / sizeof(_Tp); } > > void > construct(pointer __p, const _Tp& __val) { new(__p) _Tp(__val); } > > void > destroy(pointer __p) { __p->~_Tp(); } > }; > > template<typename _Alloc> > struct __allocator<void, _Alloc> > { > typedef size_t size_type; > typedef ptrdiff_t difference_type; > typedef void* pointer; > typedef const void* const_pointer; > typedef void value_type; > > template<typename _Tp1> > struct rebind > { typedef __allocator<_Tp1, _Alloc> other; }; > }; > > template<typename _Tp, typename _Alloc> > inline bool > operator==(const __allocator<_Tp,_Alloc>& __a1, > const __allocator<_Tp,_Alloc>& __a2) > { return __a1.__underlying_alloc == __a2.__underlying_alloc; } > > template<typename _Tp, typename _Alloc> > inline bool > operator!=(const __allocator<_Tp, _Alloc>& __a1, > const __allocator<_Tp, _Alloc>& __a2) > { return __a1.__underlying_alloc != __a2.__underlying_alloc; } > > > > > > > > template<int inst> > inline bool > operator==(const __malloc_alloc_template<inst>&, > const __malloc_alloc_template<inst>&) > { return true; } > > template<int __inst> > inline bool > operator!=(const __malloc_alloc_template<__inst>&, > const __malloc_alloc_template<__inst>&) > { return false; } > > template<typename _Alloc> > inline bool > operator==(const __debug_alloc<_Alloc>&, const __debug_alloc<_Alloc>&) > { return true; } > > template<typename _Alloc> > inline bool > operator!=(const __debug_alloc<_Alloc>&, const __debug_alloc<_Alloc>&) > { return false; } ># 884 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_alloc.h" 3 > template<typename _Tp, typename _Allocator> > struct _Alloc_traits > { > static const bool _S_instanceless = false; > typedef typename _Allocator::template rebind<_Tp>::other allocator_type; > }; > > template<typename _Tp, typename _Allocator> > const bool _Alloc_traits<_Tp, _Allocator>::_S_instanceless; > > > template<typename _Tp, typename _Tp1> > struct _Alloc_traits<_Tp, allocator<_Tp1> > > { > static const bool _S_instanceless = true; > typedef __simple_alloc<_Tp, __alloc> _Alloc_type; > typedef allocator<_Tp> allocator_type; > }; > > > > > template<typename _Tp, int __inst> > struct _Alloc_traits<_Tp, __malloc_alloc_template<__inst> > > { > static const bool _S_instanceless = true; > typedef __simple_alloc<_Tp, __malloc_alloc_template<__inst> > _Alloc_type; > typedef __allocator<_Tp, __malloc_alloc_template<__inst> > allocator_type; > }; > > template<typename _Tp, bool __threads, int __inst> > struct _Alloc_traits<_Tp, __default_alloc_template<__threads, __inst> > > { > static const bool _S_instanceless = true; > typedef __simple_alloc<_Tp, __default_alloc_template<__threads, __inst> > > _Alloc_type; > typedef __allocator<_Tp, __default_alloc_template<__threads, __inst> > > allocator_type; > }; > > template<typename _Tp, typename _Alloc> > struct _Alloc_traits<_Tp, __debug_alloc<_Alloc> > > { > static const bool _S_instanceless = true; > typedef __simple_alloc<_Tp, __debug_alloc<_Alloc> > _Alloc_type; > typedef __allocator<_Tp, __debug_alloc<_Alloc> > allocator_type; > }; > > > > > > template<typename _Tp, typename _Tp1, int __inst> > struct _Alloc_traits<_Tp, > __allocator<_Tp1, __malloc_alloc_template<__inst> > > > { > static const bool _S_instanceless = true; > typedef __simple_alloc<_Tp, __malloc_alloc_template<__inst> > _Alloc_type; > typedef __allocator<_Tp, __malloc_alloc_template<__inst> > allocator_type; > }; > > template<typename _Tp, typename _Tp1, bool __thr, int __inst> > struct _Alloc_traits<_Tp, __allocator<_Tp1, __default_alloc_template<__thr, __inst> > > > { > static const bool _S_instanceless = true; > typedef __simple_alloc<_Tp, __default_alloc_template<__thr,__inst> > > _Alloc_type; > typedef __allocator<_Tp, __default_alloc_template<__thr,__inst> > > allocator_type; > }; > > template<typename _Tp, typename _Tp1, typename _Alloc> > struct _Alloc_traits<_Tp, __allocator<_Tp1, __debug_alloc<_Alloc> > > > { > static const bool _S_instanceless = true; > typedef __simple_alloc<_Tp, __debug_alloc<_Alloc> > _Alloc_type; > typedef __allocator<_Tp, __debug_alloc<_Alloc> > allocator_type; > }; > > > > > > > extern template class allocator<char>; > extern template class allocator<wchar_t>; > extern template class __default_alloc_template<true,0>; > >} ># 69 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/vector" 2 3 ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_construct.h" 1 3 ># 67 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_construct.h" 3 >namespace std >{ > > > > > > > template <class _T1, class _T2> > inline void > _Construct(_T1* __p, const _T2& __value) > { new (static_cast<void*>(__p)) _T1(__value); } > > > > > > > > template <class _T1> > inline void > _Construct(_T1* __p) > { new (static_cast<void*>(__p)) _T1(); } ># 98 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_construct.h" 3 > template <class _ForwardIterator> > inline void > __destroy_aux(_ForwardIterator __first, _ForwardIterator __last, __false_type) > { for ( ; __first != __last; ++__first) _Destroy(&*__first); } ># 112 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_construct.h" 3 > template <class _ForwardIterator> > inline void > __destroy_aux(_ForwardIterator, _ForwardIterator, __true_type) > { } > > > > > > > template <class _Tp> > inline void > _Destroy(_Tp* __pointer) > { __pointer->~_Tp(); } ># 134 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_construct.h" 3 > template <class _ForwardIterator> > inline void > _Destroy(_ForwardIterator __first, _ForwardIterator __last) > { > typedef typename iterator_traits<_ForwardIterator>::value_type > _Value_type; > typedef typename __type_traits<_Value_type>::has_trivial_destructor > _Has_trivial_destructor; > > __destroy_aux(__first, __last, _Has_trivial_destructor()); > } >} ># 70 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/vector" 2 3 ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_uninitialized.h" 1 3 ># 66 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_uninitialized.h" 3 >namespace std >{ > > > > template<typename _InputIter, typename _ForwardIter> > inline _ForwardIter > __uninitialized_copy_aux(_InputIter __first, _InputIter __last, > _ForwardIter __result, > __true_type) > { return copy(__first, __last, __result); } > > template<typename _InputIter, typename _ForwardIter> > _ForwardIter > __uninitialized_copy_aux(_InputIter __first, _InputIter __last, > _ForwardIter __result, > __false_type) > { > _ForwardIter __cur = __result; > if (true) { > for ( ; __first != __last; ++__first, ++__cur) > _Construct(&*__cur, *__first); > return __cur; > } > if (false) > { > _Destroy(__result, __cur); > ; > } > } ># 106 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_uninitialized.h" 3 > template<typename _InputIter, typename _ForwardIter> > inline _ForwardIter > uninitialized_copy(_InputIter __first, _InputIter __last, _ForwardIter __result) > { > typedef typename iterator_traits<_ForwardIter>::value_type _ValueType; > typedef typename __type_traits<_ValueType>::is_POD_type _Is_POD; > return __uninitialized_copy_aux(__first, __last, __result, _Is_POD()); > } > > inline char* > uninitialized_copy(const char* __first, const char* __last, char* __result) > { > memmove(__result, __first, __last - __first); > return __result + (__last - __first); > } > > inline wchar_t* > uninitialized_copy(const wchar_t* __first, const wchar_t* __last, > wchar_t* __result) > { > memmove(__result, __first, sizeof(wchar_t) * (__last - __first)); > return __result + (__last - __first); > } > > > > template<typename _ForwardIter, typename _Tp> > inline void > __uninitialized_fill_aux(_ForwardIter __first, _ForwardIter __last, > const _Tp& __x, __true_type) > { fill(__first, __last, __x); } > > template<typename _ForwardIter, typename _Tp> > void > __uninitialized_fill_aux(_ForwardIter __first, _ForwardIter __last, > const _Tp& __x, __false_type) > { > _ForwardIter __cur = __first; > if (true) { > for ( ; __cur != __last; ++__cur) > _Construct(&*__cur, __x); > } > if (false) > { > _Destroy(__first, __cur); > ; > } > } ># 164 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_uninitialized.h" 3 > template<typename _ForwardIter, typename _Tp> > inline void > uninitialized_fill(_ForwardIter __first, _ForwardIter __last, const _Tp& __x) > { > typedef typename iterator_traits<_ForwardIter>::value_type _ValueType; > typedef typename __type_traits<_ValueType>::is_POD_type _Is_POD; > __uninitialized_fill_aux(__first, __last, __x, _Is_POD()); > } > > > > template<typename _ForwardIter, typename _Size, typename _Tp> > inline _ForwardIter > __uninitialized_fill_n_aux(_ForwardIter __first, _Size __n, > const _Tp& __x, __true_type) > { > return fill_n(__first, __n, __x); > } > > template<typename _ForwardIter, typename _Size, typename _Tp> > _ForwardIter > __uninitialized_fill_n_aux(_ForwardIter __first, _Size __n, > const _Tp& __x, __false_type) > { > _ForwardIter __cur = __first; > if (true) { > for ( ; __n > 0; --__n, ++__cur) > _Construct(&*__cur, __x); > return __cur; > } > if (false) > { > _Destroy(__first, __cur); > ; > } > } ># 210 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_uninitialized.h" 3 > template<typename _ForwardIter, typename _Size, typename _Tp> > inline _ForwardIter > uninitialized_fill_n(_ForwardIter __first, _Size __n, const _Tp& __x) > { > typedef typename iterator_traits<_ForwardIter>::value_type _ValueType; > typedef typename __type_traits<_ValueType>::is_POD_type _Is_POD; > return __uninitialized_fill_n_aux(__first, __n, __x, _Is_POD()); > } ># 227 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_uninitialized.h" 3 > template<typename _InputIter1, typename _InputIter2, typename _ForwardIter> > inline _ForwardIter > __uninitialized_copy_copy(_InputIter1 __first1, _InputIter1 __last1, > _InputIter2 __first2, _InputIter2 __last2, > _ForwardIter __result) > { > _ForwardIter __mid = uninitialized_copy(__first1, __last1, __result); > if (true) { > return uninitialized_copy(__first2, __last2, __mid); > } > if (false) > { > _Destroy(__result, __mid); > ; > } > } > > > > > template<typename _ForwardIter, typename _Tp, typename _InputIter> > inline _ForwardIter > __uninitialized_fill_copy(_ForwardIter __result, _ForwardIter __mid, > const _Tp& __x, > _InputIter __first, _InputIter __last) > { > uninitialized_fill(__result, __mid, __x); > if (true) { > return uninitialized_copy(__first, __last, __mid); > } > if (false) > { > _Destroy(__result, __mid); > ; > } > } > > > > > template<typename _InputIter, typename _ForwardIter, typename _Tp> > inline void > __uninitialized_copy_fill(_InputIter __first1, _InputIter __last1, > _ForwardIter __first2, _ForwardIter __last2, > const _Tp& __x) > { > _ForwardIter __mid2 = uninitialized_copy(__first1, __last1, __first2); > if (true) { > uninitialized_fill(__mid2, __last2, __x); > } > if (false) > { > _Destroy(__first2, __mid2); > ; > } > } > >} ># 71 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/vector" 2 3 ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_vector.h" 1 3 ># 65 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_vector.h" 3 ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/functexcept.h" 1 3 ># 34 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/functexcept.h" 3 ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/exception_defines.h" 1 3 ># 35 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/functexcept.h" 2 3 > >namespace std >{ > > void > __throw_bad_exception(void); > > > void > __throw_bad_alloc(void); > > > void > __throw_bad_cast(void); > > void > __throw_bad_typeid(void); > > > void > __throw_logic_error(const char* __s); > > void > __throw_domain_error(const char* __s); > > void > __throw_invalid_argument(const char* __s); > > void > __throw_length_error(const char* __s); > > void > __throw_out_of_range(const char* __s); > > void > __throw_runtime_error(const char* __s); > > void > __throw_range_error(const char* __s); > > void > __throw_overflow_error(const char* __s); > > void > __throw_underflow_error(const char* __s); > > > void > __throw_ios_failure(const char* __s); >} ># 66 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_vector.h" 2 3 > > >namespace std >{ > > > > > > > template<typename _Tp, typename _Allocator, bool _IsStatic> > class _Vector_alloc_base > { > public: > typedef typename _Alloc_traits<_Tp, _Allocator>::allocator_type > allocator_type; > > allocator_type > get_allocator() const { return _M_data_allocator; } > > _Vector_alloc_base(const allocator_type& __a) > : _M_data_allocator(__a), _M_start(0), _M_finish(0), _M_end_of_storage(0) > { } > > protected: > allocator_type _M_data_allocator; > _Tp* _M_start; > _Tp* _M_finish; > _Tp* _M_end_of_storage; > > _Tp* > _M_allocate(size_t __n) { return _M_data_allocator.allocate(__n); } > > void > _M_deallocate(_Tp* __p, size_t __n) > { if (__p) _M_data_allocator.deallocate(__p, __n); } > }; > > > template<typename _Tp, typename _Allocator> > class _Vector_alloc_base<_Tp, _Allocator, true> > { > public: > typedef typename _Alloc_traits<_Tp, _Allocator>::allocator_type > allocator_type; > > allocator_type > get_allocator() const { return allocator_type(); } > > _Vector_alloc_base(const allocator_type&) > : _M_start(0), _M_finish(0), _M_end_of_storage(0) > { } > > protected: > _Tp* _M_start; > _Tp* _M_finish; > _Tp* _M_end_of_storage; > > typedef typename _Alloc_traits<_Tp, _Allocator>::_Alloc_type _Alloc_type; > > _Tp* > _M_allocate(size_t __n) { return _Alloc_type::allocate(__n); } > > void > _M_deallocate(_Tp* __p, size_t __n) { _Alloc_type::deallocate(__p, __n);} > }; > > > > > > > > template<typename _Tp, typename _Alloc> > struct _Vector_base > : public _Vector_alloc_base<_Tp, _Alloc, > _Alloc_traits<_Tp, _Alloc>::_S_instanceless> > { > public: > typedef _Vector_alloc_base<_Tp, _Alloc, > _Alloc_traits<_Tp, _Alloc>::_S_instanceless> > _Base; > typedef typename _Base::allocator_type allocator_type; > > _Vector_base(const allocator_type& __a) > : _Base(__a) { } > > _Vector_base(size_t __n, const allocator_type& __a) > : _Base(__a) > { > _M_start = _M_allocate(__n); > _M_finish = _M_start; > _M_end_of_storage = _M_start + __n; > } > > ~_Vector_base() > { _M_deallocate(_M_start, _M_end_of_storage - _M_start); } > }; ># 184 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_vector.h" 3 > template<typename _Tp, typename _Alloc = allocator<_Tp> > > class vector : protected _Vector_base<_Tp, _Alloc> > { > > > > typedef _Vector_base<_Tp, _Alloc> _Base; > typedef vector<_Tp, _Alloc> vector_type; > > public: > typedef _Tp value_type; > typedef value_type* pointer; > typedef const value_type* const_pointer; > typedef __gnu_cxx::__normal_iterator<pointer, vector_type> iterator; > typedef __gnu_cxx::__normal_iterator<const_pointer, vector_type> > const_iterator; > typedef std::reverse_iterator<const_iterator> const_reverse_iterator; > typedef std::reverse_iterator<iterator> reverse_iterator; > typedef value_type& reference; > typedef const value_type& const_reference; > typedef size_t size_type; > typedef ptrdiff_t difference_type; > typedef typename _Base::allocator_type allocator_type; > > protected: > > > > > > > using _Base::_M_allocate; > using _Base::_M_deallocate; > using _Base::_M_start; > using _Base::_M_finish; > using _Base::_M_end_of_storage; > > public: > > > > > > explicit > vector(const allocator_type& __a = allocator_type()) > : _Base(__a) { } ># 238 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_vector.h" 3 > vector(size_type __n, const value_type& __value, > const allocator_type& __a = allocator_type()) > : _Base(__n, __a) > { _M_finish = uninitialized_fill_n(_M_start, __n, __value); } ># 250 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_vector.h" 3 > explicit > vector(size_type __n) > : _Base(__n, allocator_type()) > { _M_finish = uninitialized_fill_n(_M_start, __n, value_type()); } ># 264 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_vector.h" 3 > vector(const vector& __x) > : _Base(__x.size(), __x.get_allocator()) > { _M_finish = uninitialized_copy(__x.begin(), __x.end(), _M_start); } ># 282 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_vector.h" 3 > template<typename _InputIterator> > vector(_InputIterator __first, _InputIterator __last, > const allocator_type& __a = allocator_type()) > : _Base(__a) > { > > typedef typename _Is_integer<_InputIterator>::_Integral _Integral; > _M_initialize_dispatch(__first, __last, _Integral()); > } > > > > > > > ~vector() { _Destroy(_M_start, _M_finish); } ># 307 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_vector.h" 3 > vector& > operator=(const vector& __x); ># 320 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_vector.h" 3 > void > assign(size_type __n, const value_type& __val) > { _M_fill_assign(__n, __val); } ># 336 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_vector.h" 3 > template<typename _InputIterator> > void > assign(_InputIterator __first, _InputIterator __last) > { > > typedef typename _Is_integer<_InputIterator>::_Integral _Integral; > _M_assign_dispatch(__first, __last, _Integral()); > } > > > allocator_type > get_allocator() const { return _Base::get_allocator(); } > > > > > > > iterator > begin() { return iterator (_M_start); } > > > > > > > const_iterator > begin() const { return const_iterator (_M_start); } > > > > > > > iterator > end() { return iterator (_M_finish); } > > > > > > const_iterator > end() const { return const_iterator (_M_finish); } > > > > > > > reverse_iterator > rbegin() { return reverse_iterator(end()); } > > > > > > > const_reverse_iterator > rbegin() const { return const_reverse_iterator(end()); } > > > > > > > reverse_iterator > rend() { return reverse_iterator(begin()); } > > > > > > > const_reverse_iterator > rend() const { return const_reverse_iterator(begin()); } > > > > size_type > size() const { return size_type(end() - begin()); } > > > size_type > max_size() const { return size_type(-1) / sizeof(value_type); } ># 432 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_vector.h" 3 > void > resize(size_type __new_size, const value_type& __x) > { > if (__new_size < size()) > erase(begin() + __new_size, end()); > else > insert(end(), __new_size - size(), __x); > } ># 451 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_vector.h" 3 > void > resize(size_type __new_size) { resize(__new_size, value_type()); } > > > > > > size_type > capacity() const > { return size_type(const_iterator(_M_end_of_storage) - begin()); } > > > > > > bool > empty() const { return begin() == end(); } ># 486 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_vector.h" 3 > void > reserve(size_type __n); ># 500 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_vector.h" 3 > reference > operator[](size_type __n) { return *(begin() + __n); } ># 514 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_vector.h" 3 > const_reference > operator[](size_type __n) const { return *(begin() + __n); } > > protected: > > void > _M_range_check(size_type __n) const > { > if (__n >= this->size()) > __throw_out_of_range("vector [] access out of range"); > } > > public: ># 538 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_vector.h" 3 > reference > at(size_type __n) { _M_range_check(__n); return (*this)[__n]; } ># 552 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_vector.h" 3 > const_reference > at(size_type __n) const { _M_range_check(__n); return (*this)[__n]; } > > > > > > reference > front() { return *begin(); } > > > > > > const_reference > front() const { return *begin(); } > > > > > > reference > back() { return *(end() - 1); } > > > > > > const_reference > back() const { return *(end() - 1); } ># 594 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_vector.h" 3 > void > push_back(const value_type& __x) > { > if (_M_finish != _M_end_of_storage) > { > _Construct(_M_finish, __x); > ++_M_finish; > } > else > _M_insert_aux(end(), __x); > } ># 614 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_vector.h" 3 > void > pop_back() > { > --_M_finish; > _Destroy(_M_finish); > } ># 632 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_vector.h" 3 > iterator > insert(iterator __position, const value_type& __x); ># 669 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_vector.h" 3 > void > insert(iterator __pos, size_type __n, const value_type& __x) > { _M_fill_insert(__pos, __n, __x); } ># 687 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_vector.h" 3 > template<typename _InputIterator> > void > insert(iterator __pos, _InputIterator __first, _InputIterator __last) > { > > typedef typename _Is_integer<_InputIterator>::_Integral _Integral; > _M_insert_dispatch(__pos, __first, __last, _Integral()); > } ># 711 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_vector.h" 3 > iterator > erase(iterator __position); ># 732 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_vector.h" 3 > iterator > erase(iterator __first, iterator __last); ># 744 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_vector.h" 3 > void > swap(vector& __x) > { > std::swap(_M_start, __x._M_start); > std::swap(_M_finish, __x._M_finish); > std::swap(_M_end_of_storage, __x._M_end_of_storage); > } > > > > > > > > void > clear() { erase(begin(), end()); } > > protected: > > > > > > > template<typename _ForwardIterator> > pointer > _M_allocate_and_copy(size_type __n, > _ForwardIterator __first, _ForwardIterator __last) > { > pointer __result = _M_allocate(__n); > if (true) > { > uninitialized_copy(__first, __last, __result); > return __result; > } > if (false) > { > _M_deallocate(__result, __n); > ; > } > } > > > > > > template<typename _Integer> > void > _M_initialize_dispatch(_Integer __n, _Integer __value, __true_type) > { > _M_start = _M_allocate(__n); > _M_end_of_storage = _M_start + __n; > _M_finish = uninitialized_fill_n(_M_start, __n, __value); > } > > > template<typename _InputIter> > void > _M_initialize_dispatch(_InputIter __first, _InputIter __last, > __false_type) > { > typedef typename iterator_traits<_InputIter>::iterator_category > _IterCategory; > _M_range_initialize(__first, __last, _IterCategory()); > } > > > template<typename _InputIterator> > void > _M_range_initialize(_InputIterator __first, > _InputIterator __last, input_iterator_tag) > { > for ( ; __first != __last; ++__first) > push_back(*__first); > } > > > template<typename _ForwardIterator> > void > _M_range_initialize(_ForwardIterator __first, > _ForwardIterator __last, forward_iterator_tag) > { > size_type __n = distance(__first, __last); > _M_start = _M_allocate(__n); > _M_end_of_storage = _M_start + __n; > _M_finish = uninitialized_copy(__first, __last, _M_start); > } > > > > > > > template<typename _Integer> > void > _M_assign_dispatch(_Integer __n, _Integer __val, __true_type) > { > _M_fill_assign(static_cast<size_type>(__n), > static_cast<value_type>(__val)); > } > > > template<typename _InputIter> > void > _M_assign_dispatch(_InputIter __first, _InputIter __last, __false_type) > { > typedef typename iterator_traits<_InputIter>::iterator_category > _IterCategory; > _M_assign_aux(__first, __last, _IterCategory()); > } > > > template<typename _InputIterator> > void > _M_assign_aux(_InputIterator __first, _InputIterator __last, > input_iterator_tag); > > > template<typename _ForwardIterator> > void > _M_assign_aux(_ForwardIterator __first, _ForwardIterator __last, > forward_iterator_tag); > > > > void > _M_fill_assign(size_type __n, const value_type& __val); > > > > > > template<typename _Integer> > void > _M_insert_dispatch(iterator __pos, _Integer __n, _Integer __val, > __true_type) > { > _M_fill_insert(__pos, static_cast<size_type>(__n), > static_cast<value_type>(__val)); > } > > > template<typename _InputIterator> > void > _M_insert_dispatch(iterator __pos, _InputIterator __first, > _InputIterator __last, __false_type) > { > typedef typename iterator_traits<_InputIterator>::iterator_category > _IterCategory; > _M_range_insert(__pos, __first, __last, _IterCategory()); > } > > > template<typename _InputIterator> > void > _M_range_insert(iterator __pos, _InputIterator __first, > _InputIterator __last, input_iterator_tag); > > > template<typename _ForwardIterator> > void > _M_range_insert(iterator __pos, _ForwardIterator __first, > _ForwardIterator __last, forward_iterator_tag); > > > > void > _M_fill_insert(iterator __pos, size_type __n, const value_type& __x); > > > void > _M_insert_aux(iterator __position, const value_type& __x); > > > > > > }; ># 934 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_vector.h" 3 > template<typename _Tp, typename _Alloc> > inline bool > operator==(const vector<_Tp,_Alloc>& __x, const vector<_Tp,_Alloc>& __y) > { > return __x.size() == __y.size() && > equal(__x.begin(), __x.end(), __y.begin()); > } ># 953 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_vector.h" 3 > template<typename _Tp, typename _Alloc> > inline bool > operator<(const vector<_Tp,_Alloc>& __x, const vector<_Tp,_Alloc>& __y) > { > return lexicographical_compare(__x.begin(), __x.end(), > __y.begin(), __y.end()); > } > > > template<typename _Tp, typename _Alloc> > inline bool > operator!=(const vector<_Tp,_Alloc>& __x, const vector<_Tp,_Alloc>& __y) > { return !(__x == __y); } > > > template<typename _Tp, typename _Alloc> > inline bool > operator>(const vector<_Tp,_Alloc>& __x, const vector<_Tp,_Alloc>& __y) > { return __y < __x; } > > > template<typename _Tp, typename _Alloc> > inline bool > operator<=(const vector<_Tp,_Alloc>& __x, const vector<_Tp,_Alloc>& __y) > { return !(__y < __x); } > > > template<typename _Tp, typename _Alloc> > inline bool > operator>=(const vector<_Tp,_Alloc>& __x, const vector<_Tp,_Alloc>& __y) > { return !(__x < __y); } > > > template<typename _Tp, typename _Alloc> > inline void > swap(vector<_Tp,_Alloc>& __x, vector<_Tp,_Alloc>& __y) > { __x.swap(__y); } >} ># 72 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/vector" 2 3 ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_bvector.h" 1 3 ># 64 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_bvector.h" 3 >namespace std >{ > typedef unsigned long _Bit_type; > enum { _M_word_bit = int(8 * sizeof(_Bit_type)) }; > >struct _Bit_reference { > > _Bit_type * _M_p; > _Bit_type _M_mask; > _Bit_reference(_Bit_type * __x, _Bit_type __y) > : _M_p(__x), _M_mask(__y) {} > >public: > _Bit_reference() : _M_p(0), _M_mask(0) {} > operator bool() const { return !!(*_M_p & _M_mask); } > _Bit_reference& operator=(bool __x) > { > if (__x) *_M_p |= _M_mask; > else *_M_p &= ~_M_mask; > return *this; > } > _Bit_reference& operator=(const _Bit_reference& __x) > { return *this = bool(__x); } > bool operator==(const _Bit_reference& __x) const > { return bool(*this) == bool(__x); } > bool operator<(const _Bit_reference& __x) const > { return !bool(*this) && bool(__x); } > void flip() { *_M_p ^= _M_mask; } >}; > >struct _Bit_iterator_base : public iterator<random_access_iterator_tag, bool> >{ > _Bit_type * _M_p; > unsigned int _M_offset; > > _Bit_iterator_base(_Bit_type * __x, unsigned int __y) > : _M_p(__x), _M_offset(__y) {} > > void _M_bump_up() { > if (_M_offset++ == _M_word_bit - 1) { > _M_offset = 0; > ++_M_p; > } > } > void _M_bump_down() { > if (_M_offset-- == 0) { > _M_offset = _M_word_bit - 1; > --_M_p; > } > } > > void _M_incr(ptrdiff_t __i) { > difference_type __n = __i + _M_offset; > _M_p += __n / _M_word_bit; > __n = __n % _M_word_bit; > if (__n < 0) { > _M_offset = (unsigned int) __n + _M_word_bit; > --_M_p; > } else > _M_offset = (unsigned int) __n; > } > > bool operator==(const _Bit_iterator_base& __i) const { > return _M_p == __i._M_p && _M_offset == __i._M_offset; > } > bool operator<(const _Bit_iterator_base& __i) const { > return _M_p < __i._M_p || (_M_p == __i._M_p && _M_offset < __i._M_offset); > } > bool operator!=(const _Bit_iterator_base& __i) const { > return !(*this == __i); > } > bool operator>(const _Bit_iterator_base& __i) const { > return __i < *this; > } > bool operator<=(const _Bit_iterator_base& __i) const { > return !(__i < *this); > } > bool operator>=(const _Bit_iterator_base& __i) const { > return !(*this < __i); > } >}; > >inline ptrdiff_t >operator-(const _Bit_iterator_base& __x, const _Bit_iterator_base& __y) { > return _M_word_bit * (__x._M_p - __y._M_p) + __x._M_offset - __y._M_offset; >} > > >struct _Bit_iterator : public _Bit_iterator_base >{ > typedef _Bit_reference reference; > typedef _Bit_reference* pointer; > typedef _Bit_iterator iterator; > > _Bit_iterator() : _Bit_iterator_base(0, 0) {} > _Bit_iterator(_Bit_type * __x, unsigned int __y) > : _Bit_iterator_base(__x, __y) {} > > reference operator*() const { return reference(_M_p, 1UL << _M_offset); } > iterator& operator++() { > _M_bump_up(); > return *this; > } > iterator operator++(int) { > iterator __tmp = *this; > _M_bump_up(); > return __tmp; > } > iterator& operator--() { > _M_bump_down(); > return *this; > } > iterator operator--(int) { > iterator __tmp = *this; > _M_bump_down(); > return __tmp; > } > iterator& operator+=(difference_type __i) { > _M_incr(__i); > return *this; > } > iterator& operator-=(difference_type __i) { > *this += -__i; > return *this; > } > iterator operator+(difference_type __i) const { > iterator __tmp = *this; > return __tmp += __i; > } > iterator operator-(difference_type __i) const { > iterator __tmp = *this; > return __tmp -= __i; > } > > reference operator[](difference_type __i) { return *(*this + __i); } >}; > >inline _Bit_iterator >operator+(ptrdiff_t __n, const _Bit_iterator& __x) { return __x + __n; } > > >struct _Bit_const_iterator : public _Bit_iterator_base >{ > typedef bool reference; > typedef bool const_reference; > typedef const bool* pointer; > typedef _Bit_const_iterator const_iterator; > > _Bit_const_iterator() : _Bit_iterator_base(0, 0) {} > _Bit_const_iterator(_Bit_type * __x, unsigned int __y) > : _Bit_iterator_base(__x, __y) {} > _Bit_const_iterator(const _Bit_iterator& __x) > : _Bit_iterator_base(__x._M_p, __x._M_offset) {} > > const_reference operator*() const { > return _Bit_reference(_M_p, 1UL << _M_offset); > } > const_iterator& operator++() { > _M_bump_up(); > return *this; > } > const_iterator operator++(int) { > const_iterator __tmp = *this; > _M_bump_up(); > return __tmp; > } > const_iterator& operator--() { > _M_bump_down(); > return *this; > } > const_iterator operator--(int) { > const_iterator __tmp = *this; > _M_bump_down(); > return __tmp; > } > const_iterator& operator+=(difference_type __i) { > _M_incr(__i); > return *this; > } > const_iterator& operator-=(difference_type __i) { > *this += -__i; > return *this; > } > const_iterator operator+(difference_type __i) const { > const_iterator __tmp = *this; > return __tmp += __i; > } > const_iterator operator-(difference_type __i) const { > const_iterator __tmp = *this; > return __tmp -= __i; > } > const_reference operator[](difference_type __i) { > return *(*this + __i); > } >}; > >inline _Bit_const_iterator >operator+(ptrdiff_t __n, const _Bit_const_iterator& __x) { return __x + __n; } > > > > > > >template <class _Allocator, bool __is_static> >class _Bvector_alloc_base { >public: > typedef typename _Alloc_traits<bool, _Allocator>::allocator_type > allocator_type; > allocator_type get_allocator() const { return _M_data_allocator; } > > _Bvector_alloc_base(const allocator_type& __a) > : _M_data_allocator(__a), _M_start(), _M_finish(), _M_end_of_storage(0) {} > >protected: > _Bit_type * _M_bit_alloc(size_t __n) > { return _M_data_allocator.allocate((__n + _M_word_bit - 1)/_M_word_bit); } > void _M_deallocate() { > if (_M_start._M_p) > _M_data_allocator.deallocate(_M_start._M_p, > _M_end_of_storage - _M_start._M_p); > } > > typename _Alloc_traits<_Bit_type, _Allocator>::allocator_type > _M_data_allocator; > _Bit_iterator _M_start; > _Bit_iterator _M_finish; > _Bit_type * _M_end_of_storage; >}; > > >template <class _Allocator> >class _Bvector_alloc_base<_Allocator, true> { >public: > typedef typename _Alloc_traits<bool, _Allocator>::allocator_type > allocator_type; > allocator_type get_allocator() const { return allocator_type(); } > > _Bvector_alloc_base(const allocator_type&) > : _M_start(), _M_finish(), _M_end_of_storage(0) {} > >protected: > typedef typename _Alloc_traits<_Bit_type, _Allocator>::_Alloc_type > _Alloc_type; > > _Bit_type * _M_bit_alloc(size_t __n) > { return _Alloc_type::allocate((__n + _M_word_bit - 1)/_M_word_bit); } > void _M_deallocate() { > if (_M_start._M_p) > _Alloc_type::deallocate(_M_start._M_p, > _M_end_of_storage - _M_start._M_p); > } > > _Bit_iterator _M_start; > _Bit_iterator _M_finish; > _Bit_type * _M_end_of_storage; >}; > >template <class _Alloc> >class _Bvector_base > : public _Bvector_alloc_base<_Alloc, > _Alloc_traits<bool, _Alloc>::_S_instanceless> >{ > typedef _Bvector_alloc_base<_Alloc, > _Alloc_traits<bool, _Alloc>::_S_instanceless> > _Base; >public: > typedef typename _Base::allocator_type allocator_type; > > _Bvector_base(const allocator_type& __a) : _Base(__a) {} > ~_Bvector_base() { _Base::_M_deallocate(); } >}; > >} > > > >namespace std >{ > >template <typename _Alloc> > class vector<bool, _Alloc> : public _Bvector_base<_Alloc> > { > public: > typedef bool value_type; > typedef size_t size_type; > typedef ptrdiff_t difference_type; > typedef _Bit_reference reference; > typedef bool const_reference; > typedef _Bit_reference* pointer; > typedef const bool* const_pointer; > > typedef _Bit_iterator iterator; > typedef _Bit_const_iterator const_iterator; > > typedef std::reverse_iterator<const_iterator> const_reverse_iterator; > typedef std::reverse_iterator<iterator> reverse_iterator; > > typedef typename _Bvector_base<_Alloc>::allocator_type allocator_type; > allocator_type get_allocator() const { > return _Bvector_base<_Alloc>::get_allocator(); > } > > protected: > using _Bvector_base<_Alloc>::_M_bit_alloc; > using _Bvector_base<_Alloc>::_M_deallocate; > using _Bvector_base<_Alloc>::_M_start; > using _Bvector_base<_Alloc>::_M_finish; > using _Bvector_base<_Alloc>::_M_end_of_storage; > > protected: > void _M_initialize(size_type __n) { > _Bit_type * __q = _M_bit_alloc(__n); > _M_end_of_storage = __q + (__n + _M_word_bit - 1)/_M_word_bit; > _M_start = iterator(__q, 0); > _M_finish = _M_start + difference_type(__n); > } > void _M_insert_aux(iterator __position, bool __x) { > if (_M_finish._M_p != _M_end_of_storage) { > copy_backward(__position, _M_finish, _M_finish + 1); > *__position = __x; > ++_M_finish; > } > else { > size_type __len = size() > ? 2 * size() : static_cast<size_type>(_M_word_bit); > _Bit_type * __q = _M_bit_alloc(__len); > iterator __i = copy(begin(), __position, iterator(__q, 0)); > *__i++ = __x; > _M_finish = copy(__position, end(), __i); > _M_deallocate(); > _M_end_of_storage = __q + (__len + _M_word_bit - 1)/_M_word_bit; > _M_start = iterator(__q, 0); > } > } > > template <class _InputIterator> > void _M_initialize_range(_InputIterator __first, _InputIterator __last, > input_iterator_tag) { > _M_start = iterator(); > _M_finish = iterator(); > _M_end_of_storage = 0; > for ( ; __first != __last; ++__first) > push_back(*__first); > } > > template <class _ForwardIterator> > void _M_initialize_range(_ForwardIterator __first, _ForwardIterator __last, > forward_iterator_tag) { > size_type __n = distance(__first, __last); > _M_initialize(__n); > copy(__first, __last, _M_start); > } > > template <class _InputIterator> > void _M_insert_range(iterator __pos, > _InputIterator __first, _InputIterator __last, > input_iterator_tag) { > for ( ; __first != __last; ++__first) { > __pos = insert(__pos, *__first); > ++__pos; > } > } > > template <class _ForwardIterator> > void _M_insert_range(iterator __position, > _ForwardIterator __first, _ForwardIterator __last, > forward_iterator_tag) { > if (__first != __last) { > size_type __n = distance(__first, __last); > if (capacity() - size() >= __n) { > copy_backward(__position, end(), _M_finish + difference_type(__n)); > copy(__first, __last, __position); > _M_finish += difference_type(__n); > } > else { > size_type __len = size() + max(size(), __n); > _Bit_type * __q = _M_bit_alloc(__len); > iterator __i = copy(begin(), __position, iterator(__q, 0)); > __i = copy(__first, __last, __i); > _M_finish = copy(__position, end(), __i); > _M_deallocate(); > _M_end_of_storage = __q + (__len + _M_word_bit - 1)/_M_word_bit; > _M_start = iterator(__q, 0); > } > } > } > > public: > iterator begin() { return _M_start; } > const_iterator begin() const { return _M_start; } > iterator end() { return _M_finish; } > const_iterator end() const { return _M_finish; } > > reverse_iterator rbegin() { return reverse_iterator(end()); } > const_reverse_iterator rbegin() const { > return const_reverse_iterator(end()); > } > reverse_iterator rend() { return reverse_iterator(begin()); } > const_reverse_iterator rend() const { > return const_reverse_iterator(begin()); > } > > size_type size() const { return size_type(end() - begin()); } > size_type max_size() const { return size_type(-1); } > size_type capacity() const { > return size_type(const_iterator(_M_end_of_storage, 0) - begin()); > } > bool empty() const { return begin() == end(); } > > reference operator[](size_type __n) > { return *(begin() + difference_type(__n)); } > const_reference operator[](size_type __n) const > { return *(begin() + difference_type(__n)); } > > void _M_range_check(size_type __n) const { > if (__n >= this->size()) > __throw_out_of_range("vector<bool>"); > } > > reference at(size_type __n) > { _M_range_check(__n); return (*this)[__n]; } > const_reference at(size_type __n) const > { _M_range_check(__n); return (*this)[__n]; } > > explicit vector(const allocator_type& __a = allocator_type()) > : _Bvector_base<_Alloc>(__a) {} > > vector(size_type __n, bool __value, > const allocator_type& __a = allocator_type()) > : _Bvector_base<_Alloc>(__a) > { > _M_initialize(__n); > fill(_M_start._M_p, _M_end_of_storage, __value ? ~0 : 0); > } > > explicit vector(size_type __n) > : _Bvector_base<_Alloc>(allocator_type()) > { > _M_initialize(__n); > fill(_M_start._M_p, _M_end_of_storage, 0); > } > > vector(const vector& __x) : _Bvector_base<_Alloc>(__x.get_allocator()) { > _M_initialize(__x.size()); > copy(__x.begin(), __x.end(), _M_start); > } > > > > template <class _Integer> > void _M_initialize_dispatch(_Integer __n, _Integer __x, __true_type) { > _M_initialize(__n); > fill(_M_start._M_p, _M_end_of_storage, __x ? ~0 : 0); > } > > template <class _InputIterator> > void _M_initialize_dispatch(_InputIterator __first, _InputIterator __last, > __false_type) { > _M_initialize_range(__first, __last, __iterator_category(__first)); > } > > template <class _InputIterator> > vector(_InputIterator __first, _InputIterator __last, > const allocator_type& __a = allocator_type()) > : _Bvector_base<_Alloc>(__a) > { > typedef typename _Is_integer<_InputIterator>::_Integral _Integral; > _M_initialize_dispatch(__first, __last, _Integral()); > } > > ~vector() { } > > vector& operator=(const vector& __x) { > if (&__x == this) return *this; > if (__x.size() > capacity()) { > _M_deallocate(); > _M_initialize(__x.size()); > } > copy(__x.begin(), __x.end(), begin()); > _M_finish = begin() + difference_type(__x.size()); > return *this; > } > > > > > > > void _M_fill_assign(size_t __n, bool __x) { > if (__n > size()) { > fill(_M_start._M_p, _M_end_of_storage, __x ? ~0 : 0); > insert(end(), __n - size(), __x); > } > else { > erase(begin() + __n, end()); > fill(_M_start._M_p, _M_end_of_storage, __x ? ~0 : 0); > } > } > > void assign(size_t __n, bool __x) { _M_fill_assign(__n, __x); } > > template <class _InputIterator> > void assign(_InputIterator __first, _InputIterator __last) { > typedef typename _Is_integer<_InputIterator>::_Integral _Integral; > _M_assign_dispatch(__first, __last, _Integral()); > } > > template <class _Integer> > void _M_assign_dispatch(_Integer __n, _Integer __val, __true_type) > { _M_fill_assign((size_t) __n, (bool) __val); } > > template <class _InputIter> > void _M_assign_dispatch(_InputIter __first, _InputIter __last, __false_type) > { _M_assign_aux(__first, __last, __iterator_category(__first)); } > > template <class _InputIterator> > void _M_assign_aux(_InputIterator __first, _InputIterator __last, > input_iterator_tag) { > iterator __cur = begin(); > for ( ; __first != __last && __cur != end(); ++__cur, ++__first) > *__cur = *__first; > if (__first == __last) > erase(__cur, end()); > else > insert(end(), __first, __last); > } > > template <class _ForwardIterator> > void _M_assign_aux(_ForwardIterator __first, _ForwardIterator __last, > forward_iterator_tag) { > size_type __len = distance(__first, __last); > if (__len < size()) > erase(copy(__first, __last, begin()), end()); > else { > _ForwardIterator __mid = __first; > advance(__mid, size()); > copy(__first, __mid, begin()); > insert(end(), __mid, __last); > } > } > > void reserve(size_type __n) { > if (__n > this->max_size()) > __throw_length_error("vector::reserve"); > if (this->capacity() < __n) { > _Bit_type * __q = _M_bit_alloc(__n); > _M_finish = copy(begin(), end(), iterator(__q, 0)); > _M_deallocate(); > _M_start = iterator(__q, 0); > _M_end_of_storage = __q + (__n + _M_word_bit - 1)/_M_word_bit; > } > } > > reference front() { return *begin(); } > const_reference front() const { return *begin(); } > reference back() { return *(end() - 1); } > const_reference back() const { return *(end() - 1); } > void push_back(bool __x) { > if (_M_finish._M_p != _M_end_of_storage) > *_M_finish++ = __x; > else > _M_insert_aux(end(), __x); > } > void swap(vector<bool, _Alloc>& __x) { > std::swap(_M_start, __x._M_start); > std::swap(_M_finish, __x._M_finish); > std::swap(_M_end_of_storage, __x._M_end_of_storage); > } > > > static void swap(reference __x, reference __y) { > bool __tmp = __x; > __x = __y; > __y = __tmp; > } > > iterator insert(iterator __position, bool __x = bool()) { > difference_type __n = __position - begin(); > if (_M_finish._M_p != _M_end_of_storage && __position == end()) > *_M_finish++ = __x; > else > _M_insert_aux(__position, __x); > return begin() + __n; > } > > > > template <class _Integer> > void _M_insert_dispatch(iterator __pos, _Integer __n, _Integer __x, > __true_type) { > _M_fill_insert(__pos, __n, __x); > } > > template <class _InputIterator> > void _M_insert_dispatch(iterator __pos, > _InputIterator __first, _InputIterator __last, > __false_type) { > _M_insert_range(__pos, __first, __last, __iterator_category(__first)); > } > > template <class _InputIterator> > void insert(iterator __position, > _InputIterator __first, _InputIterator __last) { > typedef typename _Is_integer<_InputIterator>::_Integral _Integral; > _M_insert_dispatch(__position, __first, __last, _Integral()); > } > > void _M_fill_insert(iterator __position, size_type __n, bool __x) { > if (__n == 0) return; > if (capacity() - size() >= __n) { > copy_backward(__position, end(), _M_finish + difference_type(__n)); > fill(__position, __position + difference_type(__n), __x); > _M_finish += difference_type(__n); > } > else { > size_type __len = size() + max(size(), __n); > _Bit_type * __q = _M_bit_alloc(__len); > iterator __i = copy(begin(), __position, iterator(__q, 0)); > fill_n(__i, __n, __x); > _M_finish = copy(__position, end(), __i + difference_type(__n)); > _M_deallocate(); > _M_end_of_storage = __q + (__len + _M_word_bit - 1)/_M_word_bit; > _M_start = iterator(__q, 0); > } > } > > void insert(iterator __position, size_type __n, bool __x) { > _M_fill_insert(__position, __n, __x); > } > > void pop_back() { --_M_finish; } > iterator erase(iterator __position) { > if (__position + 1 != end()) > copy(__position + 1, end(), __position); > --_M_finish; > return __position; > } > iterator erase(iterator __first, iterator __last) { > _M_finish = copy(__last, end(), __first); > return __first; > } > void resize(size_type __new_size, bool __x = bool()) { > if (__new_size < size()) > erase(begin() + difference_type(__new_size), end()); > else > insert(end(), __new_size - size(), __x); > } > void flip() { > for (_Bit_type * __p = _M_start._M_p; __p != _M_end_of_storage; ++__p) > *__p = ~*__p; > } > > void clear() { erase(begin(), end()); } > }; > > >typedef vector<bool, __alloc> bit_vector; > >} ># 73 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/vector" 2 3 > > ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/vector.tcc" 1 3 ># 64 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/vector.tcc" 3 >namespace std >{ > template<typename _Tp, typename _Alloc> > void > vector<_Tp,_Alloc>:: > reserve(size_type __n) > { > if (__n > this->max_size()) > __throw_length_error("vector::reserve"); > if (this->capacity() < __n) > { > const size_type __old_size = size(); > pointer __tmp = _M_allocate_and_copy(__n, _M_start, _M_finish); > _Destroy(_M_start, _M_finish); > _M_deallocate(_M_start, _M_end_of_storage - _M_start); > _M_start = __tmp; > _M_finish = __tmp + __old_size; > _M_end_of_storage = _M_start + __n; > } > } > > template<typename _Tp, typename _Alloc> > typename vector<_Tp,_Alloc>::iterator > vector<_Tp,_Alloc>:: > insert(iterator __position, const value_type& __x) > { > size_type __n = __position - begin(); > if (_M_finish != _M_end_of_storage && __position == end()) > { > _Construct(_M_finish, __x); > ++_M_finish; > } > else > _M_insert_aux(__position, __x); > return begin() + __n; > } > > template<typename _Tp, typename _Alloc> > typename vector<_Tp,_Alloc>::iterator > vector<_Tp,_Alloc>:: > erase(iterator __position) > { > if (__position + 1 != end()) > copy(__position + 1, end(), __position); > --_M_finish; > _Destroy(_M_finish); > return __position; > } > > template<typename _Tp, typename _Alloc> > typename vector<_Tp,_Alloc>::iterator > vector<_Tp,_Alloc>:: > erase(iterator __first, iterator __last) > { > iterator __i(copy(__last, end(), __first)); > _Destroy(__i, end()); > _M_finish = _M_finish - (__last - __first); > return __first; > } > > template<typename _Tp, typename _Alloc> > vector<_Tp,_Alloc>& > vector<_Tp,_Alloc>:: > operator=(const vector<_Tp,_Alloc>& __x) > { > if (&__x != this) > { > const size_type __xlen = __x.size(); > if (__xlen > capacity()) > { > pointer __tmp = _M_allocate_and_copy(__xlen, __x.begin(), __x.end()); > _Destroy(_M_start, _M_finish); > _M_deallocate(_M_start, _M_end_of_storage - _M_start); > _M_start = __tmp; > _M_end_of_storage = _M_start + __xlen; > } > else if (size() >= __xlen) > { > iterator __i(copy(__x.begin(), __x.end(), begin())); > _Destroy(__i, end()); > } > else > { > copy(__x.begin(), __x.begin() + size(), _M_start); > uninitialized_copy(__x.begin() + size(), __x.end(), _M_finish); > } > _M_finish = _M_start + __xlen; > } > return *this; > } > > template<typename _Tp, typename _Alloc> > void > vector<_Tp,_Alloc>:: > _M_fill_assign(size_t __n, const value_type& __val) > { > if (__n > capacity()) > { > vector __tmp(__n, __val, get_allocator()); > __tmp.swap(*this); > } > else if (__n > size()) > { > fill(begin(), end(), __val); > _M_finish = uninitialized_fill_n(_M_finish, __n - size(), __val); > } > else > erase(fill_n(begin(), __n, __val), end()); > } > > template<typename _Tp, typename _Alloc> template<typename _InputIter> > void > vector<_Tp,_Alloc>:: > _M_assign_aux(_InputIter __first, _InputIter __last, input_iterator_tag) > { > iterator __cur(begin()); > for ( ; __first != __last && __cur != end(); ++__cur, ++__first) > *__cur = *__first; > if (__first == __last) > erase(__cur, end()); > else > insert(end(), __first, __last); > } > > template<typename _Tp, typename _Alloc> template<typename _ForwardIter> > void > vector<_Tp,_Alloc>:: > _M_assign_aux(_ForwardIter __first, _ForwardIter __last, > forward_iterator_tag) > { > size_type __len = distance(__first, __last); > > if (__len > capacity()) > { > pointer __tmp(_M_allocate_and_copy(__len, __first, __last)); > _Destroy(_M_start, _M_finish); > _M_deallocate(_M_start, _M_end_of_storage - _M_start); > _M_start = __tmp; > _M_end_of_storage = _M_finish = _M_start + __len; > } > else if (size() >= __len) > { > iterator __new_finish(copy(__first, __last, _M_start)); > _Destroy(__new_finish, end()); > _M_finish = __new_finish.base(); > } > else > { > _ForwardIter __mid = __first; > advance(__mid, size()); > copy(__first, __mid, _M_start); > _M_finish = uninitialized_copy(__mid, __last, _M_finish); > } > } > > template<typename _Tp, typename _Alloc> > void > vector<_Tp,_Alloc>:: > _M_insert_aux(iterator __position, const _Tp& __x) > { > if (_M_finish != _M_end_of_storage) > { > _Construct(_M_finish, *(_M_finish - 1)); > ++_M_finish; > _Tp __x_copy = __x; > copy_backward(__position, iterator(_M_finish-2), iterator(_M_finish-1)); > *__position = __x_copy; > } > else > { > const size_type __old_size = size(); > const size_type __len = __old_size != 0 ? 2 * __old_size : 1; > iterator __new_start(_M_allocate(__len)); > iterator __new_finish(__new_start); > if (true) > { > __new_finish = uninitialized_copy(iterator(_M_start), __position, > __new_start); > _Construct(__new_finish.base(), __x); > ++__new_finish; > __new_finish = uninitialized_copy(__position, iterator(_M_finish), > __new_finish); > } > if (false) > { > _Destroy(__new_start,__new_finish); > _M_deallocate(__new_start.base(),__len); > ; > } > _Destroy(begin(), end()); > _M_deallocate(_M_start, _M_end_of_storage - _M_start); > _M_start = __new_start.base(); > _M_finish = __new_finish.base(); > _M_end_of_storage = __new_start.base() + __len; > } > } ># 305 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/vector.tcc" 3 > template<typename _Tp, typename _Alloc> > void > vector<_Tp,_Alloc>:: > _M_fill_insert(iterator __position, size_type __n, const value_type& __x) > { > if (__n != 0) > { > if (size_type(_M_end_of_storage - _M_finish) >= __n) > { > value_type __x_copy = __x; > const size_type __elems_after = end() - __position; > iterator __old_finish(_M_finish); > if (__elems_after > __n) > { > uninitialized_copy(_M_finish - __n, _M_finish, _M_finish); > _M_finish += __n; > copy_backward(__position, __old_finish - __n, __old_finish); > fill(__position, __position + __n, __x_copy); > } > else > { > uninitialized_fill_n(_M_finish, __n - __elems_after, __x_copy); > _M_finish += __n - __elems_after; > uninitialized_copy(__position, __old_finish, _M_finish); > _M_finish += __elems_after; > fill(__position, __old_finish, __x_copy); > } > } > else > { > const size_type __old_size = size(); > const size_type __len = __old_size + max(__old_size, __n); > iterator __new_start(_M_allocate(__len)); > iterator __new_finish(__new_start); > if (true) > { > __new_finish = uninitialized_copy(begin(), __position, > __new_start); > __new_finish = uninitialized_fill_n(__new_finish, __n, __x); > __new_finish = uninitialized_copy(__position, end(), > __new_finish); > } > if (false) > { > _Destroy(__new_start,__new_finish); > _M_deallocate(__new_start.base(),__len); > ; > } > _Destroy(_M_start, _M_finish); > _M_deallocate(_M_start, _M_end_of_storage - _M_start); > _M_start = __new_start.base(); > _M_finish = __new_finish.base(); > _M_end_of_storage = __new_start.base() + __len; > } > } > } > > template<typename _Tp, typename _Alloc> template<typename _InputIterator> > void > vector<_Tp,_Alloc>:: > _M_range_insert(iterator __pos, > _InputIterator __first, _InputIterator __last, > input_iterator_tag) > { > for ( ; __first != __last; ++__first) > { > __pos = insert(__pos, *__first); > ++__pos; > } > } > > template<typename _Tp, typename _Alloc> template<typename _ForwardIterator> > void > vector<_Tp,_Alloc>:: > _M_range_insert(iterator __position,_ForwardIterator __first, > _ForwardIterator __last, forward_iterator_tag) > { > if (__first != __last) > { > size_type __n = distance(__first, __last); > if (size_type(_M_end_of_storage - _M_finish) >= __n) > { > const size_type __elems_after = end() - __position; > iterator __old_finish(_M_finish); > if (__elems_after > __n) > { > uninitialized_copy(_M_finish - __n, _M_finish, _M_finish); > _M_finish += __n; > copy_backward(__position, __old_finish - __n, __old_finish); > copy(__first, __last, __position); > } > else > { > _ForwardIterator __mid = __first; > advance(__mid, __elems_after); > uninitialized_copy(__mid, __last, _M_finish); > _M_finish += __n - __elems_after; > uninitialized_copy(__position, __old_finish, _M_finish); > _M_finish += __elems_after; > copy(__first, __mid, __position); > } > } > else > { > const size_type __old_size = size(); > const size_type __len = __old_size + max(__old_size, __n); > iterator __new_start(_M_allocate(__len)); > iterator __new_finish(__new_start); > if (true) > { > __new_finish = uninitialized_copy(iterator(_M_start), > __position, __new_start); > __new_finish = uninitialized_copy(__first, __last, __new_finish); > __new_finish = uninitialized_copy(__position, iterator(_M_finish), > __new_finish); > } > if (false) > { > _Destroy(__new_start,__new_finish); > _M_deallocate(__new_start.base(), __len); > ; > } > _Destroy(_M_start, _M_finish); > _M_deallocate(_M_start, _M_end_of_storage - _M_start); > _M_start = __new_start.base(); > _M_finish = __new_finish.base(); > _M_end_of_storage = __new_start.base() + __len; > } > } > } >} ># 76 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/vector" 2 3 ># 28 "filter.h" 2 > >class KigFilter; >class ScreenInfo; >class KigDocument; > >class KigFilters >{ >public: > static KigFilters* instance(); > KigFilter* find (const QString& mime); > > > > > bool save ( const KigDocument& data, const QString& outfile ); >protected: > KigFilters(); > static KigFilters* sThis; > typedef std::vector<KigFilter*> vect; > vect mFilters; >}; ># 61 "filter.h" >class KigFilter >{ >protected: > > void fileNotFound( const QString& file ) const; > void parseError( const QString& file, const QString& explanation = QString::null ) const; > void notSupported( const QString& file, const QString& explanation ) const; > void warning( const QString& explanation ) const; >public: > KigFilter(); > virtual ~KigFilter(); > > > virtual bool supportMime ( const QString& mime ); > > > > > > > > virtual KigDocument* load ( const QString& fromfile ) = 0; >}; ># 23 "drgeo-filter.h" 2 > >class QDomNode; >class KigDocument; >class QString; > >class KigFilterDrgeo > : public KigFilter >{ >protected: > KigFilterDrgeo(); > ~KigFilterDrgeo(); >public: > static KigFilterDrgeo* instance(); > > bool supportMime( const QString& mime ); > KigDocument* load( const QString& file ); >private: > KigDocument* importFigure( QDomNode f, const QString& file, const bool grid ); >}; ># 20 "drgeo-filter.cc" 2 > ># 1 "drgeo-filter-chooser.h" 1 ># 22 "drgeo-filter-chooser.h" ># 1 "drgeo-filter-chooserbase.h" 1 ># 13 "drgeo-filter-chooserbase.h" ># 1 "/usr/qt/3/include/qvariant.h" 1 ># 46 "/usr/qt/3/include/qvariant.h" >class QString; >class QCString; >class QFont; >class QPixmap; >class QBrush; >class QRect; >class QPoint; >class QImage; >class QSize; >class QColor; >class QPalette; >class QColorGroup; >class QIconSet; >class QDataStream; >class QPointArray; >class QRegion; >class QBitmap; >class QCursor; >class QStringList; >class QSizePolicy; >class QDate; >class QTime; >class QDateTime; >class QBitArray; >class QKeySequence; >class QPen; > >class QVariant; > >template <class T> class QValueList; >template <class T> class QValueListConstIterator; >template <class T> class QValueListNode; >template <class Key, class T> class QMap; >template <class Key, class T> class QMapConstIterator; > > >class QVariant >{ >public: > enum Type { > Invalid, > Map, > List, > String, > StringList, > Font, > Pixmap, > Brush, > Rect, > Size, > Color, > Palette, > ColorGroup, > IconSet, > Point, > Image, > Int, > UInt, > Bool, > Double, > CString, > PointArray, > Region, > Bitmap, > Cursor, > SizePolicy, > Date, > Time, > DateTime, > ByteArray, > BitArray, > KeySequence, > Pen, > LongLong, > ULongLong > }; > > QVariant(); > ~QVariant(); > QVariant( const QVariant& ); > > QVariant( QDataStream& s ); > > QVariant( const QString& ); > QVariant( const QCString& ); > QVariant( const char* ); > > QVariant( const QStringList& ); > > QVariant( const QFont& ); > QVariant( const QPixmap& ); > QVariant( const QImage& ); > QVariant( const QBrush& ); > QVariant( const QPoint& ); > QVariant( const QRect& ); > QVariant( const QSize& ); > QVariant( const QColor& ); > QVariant( const QPalette& ); > QVariant( const QColorGroup& ); > QVariant( const QIconSet& ); > QVariant( const QPointArray& ); > QVariant( const QRegion& ); > QVariant( const QBitmap& ); > QVariant( const QCursor& ); > QVariant( const QDate& ); > QVariant( const QTime& ); > QVariant( const QDateTime& ); > QVariant( const QByteArray& ); > QVariant( const QBitArray& ); > > QVariant( const QKeySequence& ); > > QVariant( const QPen& ); > > QVariant( const QValueList<QVariant>& ); > QVariant( const QMap<QString,QVariant>& ); > > QVariant( int ); > QVariant( uint ); > QVariant( Q_LLONG ); > QVariant( Q_ULLONG ); > > QVariant( bool, int ); > QVariant( double ); > QVariant( QSizePolicy ); > > QVariant& operator= ( const QVariant& ); > bool operator==( const QVariant& ) const; > bool operator!=( const QVariant& ) const; > > Type type() const; > const char* typeName() const; > > bool canCast( Type ) const; > bool cast( Type ); > > bool isValid() const; > bool isNull() const; > > void clear(); > > const QString toString() const; > const QCString toCString() const; > > const QStringList toStringList() const; > > const QFont toFont() const; > const QPixmap toPixmap() const; > const QImage toImage() const; > const QBrush toBrush() const; > const QPoint toPoint() const; > const QRect toRect() const; > const QSize toSize() const; > const QColor toColor() const; > const QPalette toPalette() const; > const QColorGroup toColorGroup() const; > const QIconSet toIconSet() const; > const QPointArray toPointArray() const; > const QBitmap toBitmap() const; > const QRegion toRegion() const; > const QCursor toCursor() const; > const QDate toDate() const; > const QTime toTime() const; > const QDateTime toDateTime() const; > const QByteArray toByteArray() const; > const QBitArray toBitArray() const; > > const QKeySequence toKeySequence() const; > > const QPen toPen() const; > int toInt( bool * ok=0 ) const; > uint toUInt( bool * ok=0 ) const; > Q_LLONG toLongLong( bool * ok=0 ) const; > Q_ULLONG toULongLong( bool * ok=0 ) const; > bool toBool() const; > double toDouble( bool * ok=0 ) const; > > const QValueList<QVariant> toList() const; > const QMap<QString,QVariant> toMap() const; > > QSizePolicy toSizePolicy() const; > > > QValueListConstIterator<QString> stringListBegin() const; > QValueListConstIterator<QString> stringListEnd() const; > QValueListConstIterator<QVariant> listBegin() const; > QValueListConstIterator<QVariant> listEnd() const; > QMapConstIterator<QString,QVariant> mapBegin() const; > QMapConstIterator<QString,QVariant> mapEnd() const; > QMapConstIterator<QString,QVariant> mapFind( const QString& ) const; > > QString& asString(); > QCString& asCString(); > > QStringList& asStringList(); > > QFont& asFont(); > QPixmap& asPixmap(); > QImage& asImage(); > QBrush& asBrush(); > QPoint& asPoint(); > QRect& asRect(); > QSize& asSize(); > QColor& asColor(); > QPalette& asPalette(); > QColorGroup& asColorGroup(); > QIconSet& asIconSet(); > QPointArray& asPointArray(); > QBitmap& asBitmap(); > QRegion& asRegion(); > QCursor& asCursor(); > QDate& asDate(); > QTime& asTime(); > QDateTime& asDateTime(); > QByteArray& asByteArray(); > QBitArray& asBitArray(); > > QKeySequence& asKeySequence(); > > QPen& asPen(); > int& asInt(); > uint& asUInt(); > Q_LLONG& asLongLong(); > Q_ULLONG& asULongLong(); > bool& asBool(); > double& asDouble(); > > QValueList<QVariant>& asList(); > QMap<QString,QVariant>& asMap(); > > QSizePolicy& asSizePolicy(); > > > void load( QDataStream& ); > void save( QDataStream& ) const; > > static const char* typeToName( Type typ ); > static Type nameToType( const char* name ); > >private: > void detach(); > > class Private : public QShared > { > public: > Private(); > Private( Private* ); > ~Private(); > > void clear(); > > Type typ; > union > { > uint u; > int i; > Q_LLONG ll; > Q_ULLONG ull; > bool b; > double d; > void *ptr; > } value; > uint is_null : 1; > }; > > Private* d; > >public: > void* rawAccess( void* ptr = 0, Type typ = Invalid, bool deepCopy = FALSE ); >}; > > > ># 1 "/usr/qt/3/include/qvaluelist.h" 1 ># 42 "/usr/qt/3/include/qvaluelist.h" ># 1 "/usr/qt/3/include/qtl.h" 1 ># 42 "/usr/qt/3/include/qtl.h" ># 1 "/usr/qt/3/include/qglobal.h" 1 ># 43 "/usr/qt/3/include/qtl.h" 2 ># 1 "/usr/qt/3/include/qtextstream.h" 1 ># 42 "/usr/qt/3/include/qtextstream.h" ># 1 "/usr/qt/3/include/qiodevice.h" 1 ># 42 "/usr/qt/3/include/qiodevice.h" ># 1 "/usr/qt/3/include/qglobal.h" 1 ># 43 "/usr/qt/3/include/qiodevice.h" 2 ># 88 "/usr/qt/3/include/qiodevice.h" >class QIODevice >{ >public: > > > > typedef Q_ULONG Offset; > > > QIODevice(); > virtual ~QIODevice(); > > int flags() const { return ioMode; } > int mode() const { return ioMode & 0x00ff; } > int state() const { return ioMode & 0xf000; } > > bool isDirectAccess() const { return ((ioMode & 0x0100) == 0x0100); } > bool isSequentialAccess() const { return ((ioMode & 0x0200) == 0x0200); } > bool isCombinedAccess() const { return ((ioMode & 0x0300) == 0x0300); } > bool isBuffered() const { return ((ioMode & 0x0040) != 0x0040); } > bool isRaw() const { return ((ioMode & 0x0040) == 0x0040); } > bool isSynchronous() const { return ((ioMode & 0x0080) != 0x0080); } > bool isAsynchronous() const { return ((ioMode & 0x0080) == 0x0080); } > bool isTranslated() const { return ((ioMode & 0x0010) == 0x0010); } > bool isReadable() const { return ((ioMode & 0x0001) == 0x0001); } > bool isWritable() const { return ((ioMode & 0x0002) == 0x0002); } > bool isReadWrite() const { return ((ioMode & 0x0003) == 0x0003); } > bool isInactive() const { return state() == 0; } > bool isOpen() const { return state() == 0x1000; } > > int status() const { return ioSt; } > void resetStatus() { ioSt = 0; } > > virtual bool open( int mode ) = 0; > virtual void close() = 0; > virtual void flush() = 0; > > virtual Offset size() const = 0; > virtual Offset at() const; > virtual bool at( Offset ); > virtual bool atEnd() const; > bool reset() { return at(0); } > > virtual Q_LONG readBlock( char *data, Q_ULONG maxlen ) = 0; > virtual Q_LONG writeBlock( const char *data, Q_ULONG len ) = 0; > virtual Q_LONG readLine( char *data, Q_ULONG maxlen ); > Q_LONG writeBlock( const QByteArray& data ); > virtual QByteArray readAll(); > > virtual int getch() = 0; > virtual int putch( int ) = 0; > virtual int ungetch( int ) = 0; > >protected: > void setFlags( int f ) { ioMode = f; } > void setType( int ); > void setMode( int ); > void setState( int ); > void setStatus( int ); > Offset ioIndex; > >private: > int ioMode; > int ioSt; > >private: > > QIODevice( const QIODevice & ); > QIODevice &operator=( const QIODevice & ); > >}; ># 43 "/usr/qt/3/include/qtextstream.h" 2 > > > > > >class QTextCodec; >class QTextDecoder; > >class QTextStreamPrivate; > >class QTextStream >{ >public: > enum Encoding { Locale, Latin1, Unicode, UnicodeNetworkOrder, > UnicodeReverse, RawUnicode, UnicodeUTF8 }; > > void setEncoding( Encoding ); > > void setCodec( QTextCodec* ); > QTextCodec *codec(); > > > QTextStream(); > QTextStream( QIODevice * ); > QTextStream( QString*, int mode ); > QTextStream( QString&, int mode ); > QTextStream( QByteArray, int mode ); > QTextStream( FILE *, int mode ); > virtual ~QTextStream(); > > QIODevice *device() const; > void setDevice( QIODevice * ); > void unsetDevice(); > > bool atEnd() const; > bool eof() const; > > QTextStream &operator>>( QChar & ); > QTextStream &operator>>( char & ); > QTextStream &operator>>( signed short & ); > QTextStream &operator>>( unsigned short & ); > QTextStream &operator>>( signed int & ); > QTextStream &operator>>( unsigned int & ); > QTextStream &operator>>( signed long & ); > QTextStream &operator>>( unsigned long & ); > QTextStream &operator>>( float & ); > QTextStream &operator>>( double & ); > QTextStream &operator>>( char * ); > QTextStream &operator>>( QString & ); > QTextStream &operator>>( QCString & ); > > QTextStream &operator<<( QChar ); > QTextStream &operator<<( char ); > QTextStream &operator<<( signed short ); > QTextStream &operator<<( unsigned short ); > QTextStream &operator<<( signed int ); > QTextStream &operator<<( unsigned int ); > QTextStream &operator<<( signed long ); > QTextStream &operator<<( unsigned long ); > QTextStream &operator<<( float ); > QTextStream &operator<<( double ); > QTextStream &operator<<( const char* ); > QTextStream &operator<<( const QString & ); > QTextStream &operator<<( const QCString & ); > QTextStream &operator<<( void * ); > > QTextStream &readRawBytes( char *, uint len ); > QTextStream &writeRawBytes( const char* , uint len ); > > QString readLine(); > QString read(); > void skipWhiteSpace(); > > enum { > skipws = 0x0001, > left = 0x0002, > right = 0x0004, > internal = 0x0008, > bin = 0x0010, > oct = 0x0020, > dec = 0x0040, > hex = 0x0080, > showbase = 0x0100, > showpoint = 0x0200, > uppercase = 0x0400, > showpos = 0x0800, > scientific= 0x1000, > fixed = 0x2000 > }; > > static const int basefield; > static const int adjustfield; > static const int floatfield; > > int flags() const; > int flags( int f ); > int setf( int bits ); > int setf( int bits, int mask ); > int unsetf( int bits ); > > void reset(); > > int width() const; > int width( int ); > int fill() const; > int fill( int ); > int precision() const; > int precision( int ); > >private: > long input_int(); > void init(); > QTextStream &output_int( int, ulong, bool ); > QIODevice *dev; > > int fflags; > int fwidth; > int fillchar; > int fprec; > bool doUnicodeHeader; > bool owndev; > QTextCodec *mapper; > QTextStreamPrivate * d; > QChar unused1; > bool latin1; > bool internalOrder; > bool networkOrder; > void *unused2; > > QChar eat_ws(); > uint ts_getline( QChar* ); > void ts_ungetc( QChar ); > QChar ts_getc(); > uint ts_getbuf( QChar*, uint ); > void ts_putc(int); > void ts_putc(QChar); > bool ts_isspace(QChar); > bool ts_isdigit(QChar); > ulong input_bin(); > ulong input_oct(); > ulong input_dec(); > ulong input_hex(); > double input_double(); > QTextStream &writeBlock( const char* p, uint len ); > QTextStream &writeBlock( const QChar* p, uint len ); > >private: > > QTextStream( const QTextStream & ); > QTextStream &operator=( const QTextStream & ); > >}; > >typedef QTextStream QTS; > >class QTextIStream : public QTextStream { >public: > QTextIStream( const QString* s ) : > QTextStream((QString*)s,0x0001) { } > QTextIStream( QByteArray ba ) : > QTextStream(ba,0x0001) { } > QTextIStream( FILE *f ) : > QTextStream(f,0x0001) { } > >private: > > QTextIStream( const QTextIStream & ); > QTextIStream &operator=( const QTextIStream & ); > >}; > >class QTextOStream : public QTextStream { >public: > QTextOStream( QString* s ) : > QTextStream(s,0x0002) { } > QTextOStream( QByteArray ba ) : > QTextStream(ba,0x0002) { } > QTextOStream( FILE *f ) : > QTextStream(f,0x0002) { } > >private: > > QTextOStream( const QTextOStream & ); > QTextOStream &operator=( const QTextOStream & ); > >}; > > > > > >inline QIODevice *QTextStream::device() const >{ return dev; } > >inline bool QTextStream::atEnd() const >{ return dev ? dev->atEnd() : FALSE; } > >inline bool QTextStream::eof() const >{ return atEnd(); } > >inline int QTextStream::flags() const >{ return fflags; } > >inline int QTextStream::flags( int f ) >{ int oldf = fflags; fflags = f; return oldf; } > >inline int QTextStream::setf( int bits ) >{ int oldf = fflags; fflags |= bits; return oldf; } > >inline int QTextStream::setf( int bits, int mask ) >{ int oldf = fflags; fflags = (fflags & ~mask) | (bits & mask); return oldf; } > >inline int QTextStream::unsetf( int bits ) >{ int oldf = fflags; fflags &= ~bits; return oldf; } > >inline int QTextStream::width() const >{ return fwidth; } > >inline int QTextStream::width( int w ) >{ int oldw = fwidth; fwidth = w; return oldw; } > >inline int QTextStream::fill() const >{ return fillchar; } > >inline int QTextStream::fill( int f ) >{ int oldc = fillchar; fillchar = f; return oldc; } > >inline int QTextStream::precision() const >{ return fprec; } > >inline int QTextStream::precision( int p ) >{ int oldp = fprec; fprec = p; return oldp; } > > > > >inline QChar QTextStream::ts_getc() >{ QChar r; return ( ts_getbuf( &r,1 ) == 1 ? r : QChar((ushort)0xffff) ); } > > > > > >typedef QTextStream & (*QTSFUNC)(QTextStream &); >typedef int (QTextStream::*QTSMFI)(int); > >class QTSManip { >public: > QTSManip( QTSMFI m, int a ) { mf=m; arg=a; } > void exec( QTextStream &s ) { (s.*mf)(arg); } >private: > QTSMFI mf; > int arg; >}; > > inline QTextStream &operator>>( QTextStream &s, QTSFUNC f ) >{ return (*f)( s ); } > > inline QTextStream &operator<<( QTextStream &s, QTSFUNC f ) >{ return (*f)( s ); } > > inline QTextStream &operator<<( QTextStream &s, QTSManip m ) >{ m.exec(s); return s; } > > QTextStream &bin( QTextStream &s ); > QTextStream &oct( QTextStream &s ); > QTextStream &dec( QTextStream &s ); > QTextStream &hex( QTextStream &s ); > QTextStream &endl( QTextStream &s ); > QTextStream &flush( QTextStream &s ); > QTextStream &ws( QTextStream &s ); > QTextStream &reset( QTextStream &s ); > > inline QTSManip qSetW( int w ) >{ > QTSMFI func = &QTextStream::width; > return QTSManip(func,w); >} > > inline QTSManip qSetFill( int f ) >{ > QTSMFI func = &QTextStream::fill; > return QTSManip(func,f); >} > > inline QTSManip qSetPrecision( int p ) >{ > QTSMFI func = &QTextStream::precision; > return QTSManip(func,p); >} ># 44 "/usr/qt/3/include/qtl.h" 2 > > > > >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; } >}; > > >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 ) >{ > > 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; >} ># 121 "/usr/qt/3/include/qtl.h" >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> > void qBubbleSort( InputIterator b, InputIterator e ) >{ > > InputIterator last = e; > --last; > > if ( last == b ) > return; > > > while( b != last ) { > bool swapped = FALSE; > InputIterator swap_pos = b; > InputIterator x = e; > InputIterator y = x; > y--; > do { > --x; > --y; > if ( *x < *y ) { > swapped = TRUE; > qSwap( *x, *y ); > swap_pos = y; > } > } while( y != b ); > if ( !swapped ) > return; > b = swap_pos; > b++; > } >} > > >template <class Container> >inline void qBubbleSort( Container &c ) >{ > qBubbleSort( c.begin(), c.end() ); >} > > >template <class Value> > void qHeapSortPushDown( Value* heap, int first, int last ) >{ > int r = first; > while ( r <= last / 2 ) { > if ( last == 2 * r ) { > > if ( heap[2 * r] < heap[r] ) > qSwap( heap[r], heap[2 * r] ); > r = last; > } else { > > if ( heap[2 * r] < heap[r] && !(heap[2 * r + 1] < heap[2 * r]) ) { > > qSwap( heap[r], heap[2 * r] ); > r *= 2; > } else if ( heap[2 * r + 1] < heap[r] > && heap[2 * r + 1] < heap[2 * r] ) { > > qSwap( heap[r], heap[2 * r + 1] ); > r = 2 * r + 1; > } else { > r = last; > } > } > } >} > > >template <class InputIterator, class Value> > void qHeapSortHelper( InputIterator b, InputIterator e, Value, uint n ) >{ > > InputIterator insert = b; > Value* realheap = new Value[n]; > > Value* heap = realheap - 1; > int size = 0; > for( ; insert != e; ++insert ) { > heap[++size] = *insert; > int i = size; > while( i > 1 && heap[i] < heap[i / 2] ) { > qSwap( heap[i], heap[i / 2] ); > i /= 2; > } > } > > > for( uint i = n; i > 0; i-- ) { > *b++ = heap[1]; > if ( i > 1 ) { > heap[1] = heap[i]; > qHeapSortPushDown( heap, 1, (int)i - 1 ); > } > } > > delete[] realheap; >} > > >template <class InputIterator> > void qHeapSort( InputIterator b, InputIterator e ) >{ > > if ( b == e ) > return; > > > InputIterator it = b; > uint n = 0; > while ( it != e ) { > ++n; > ++it; > } > > > > qHeapSortHelper( b, e, *b, n ); >} > > >template <class Container> > void qHeapSort( Container &c ) >{ > if ( c.begin() == c.end() ) > return; > > > > qHeapSortHelper( c.begin(), c.end(), *(c.begin()), (uint)c.count() ); >} > >template <class Container> >class QBackInsertIterator >{ >public: > explicit QBackInsertIterator( Container &c ) > : container( &c ) > { > } > > QBackInsertIterator<Container>& > operator=( const typename Container::value_type &value ) > { > container->push_back( value ); > return *this; > } > > QBackInsertIterator<Container>& operator*() > { > return *this; > } > > QBackInsertIterator<Container>& operator++() > { > return *this; > } > > QBackInsertIterator<Container>& operator++(int) > { > return *this; > } > >protected: > Container *container; >}; > >template <class Container> >inline QBackInsertIterator<Container> qBackInserter( Container &c ) >{ > return QBackInsertIterator<Container>( c ); >} ># 43 "/usr/qt/3/include/qvaluelist.h" 2 > ># 1 "/usr/qt/3/include/qdatastream.h" 1 ># 47 "/usr/qt/3/include/qdatastream.h" >class QDataStream >{ >public: > QDataStream(); > QDataStream( QIODevice * ); > QDataStream( QByteArray, int mode ); > virtual ~QDataStream(); > > QIODevice *device() const; > void setDevice( QIODevice * ); > void unsetDevice(); > > bool atEnd() const; > bool eof() const; > > enum ByteOrder { BigEndian, LittleEndian }; > int byteOrder() const; > void setByteOrder( int ); > > bool isPrintableData() const; > void setPrintableData( bool ); > > int version() const; > void setVersion( int ); > > QDataStream &operator>>( Q_INT8 &i ); > QDataStream &operator>>( Q_UINT8 &i ); > QDataStream &operator>>( Q_INT16 &i ); > QDataStream &operator>>( Q_UINT16 &i ); > QDataStream &operator>>( Q_INT32 &i ); > QDataStream &operator>>( Q_UINT32 &i ); > QDataStream &operator>>( Q_INT64 &i ); > QDataStream &operator>>( Q_UINT64 &i ); > > QDataStream &operator>>( Q_LONG &i ); > QDataStream &operator>>( Q_ULONG &i ); > > > QDataStream &operator>>( float &f ); > QDataStream &operator>>( double &f ); > QDataStream &operator>>( char *&str ); > > QDataStream &operator<<( Q_INT8 i ); > QDataStream &operator<<( Q_UINT8 i ); > QDataStream &operator<<( Q_INT16 i ); > QDataStream &operator<<( Q_UINT16 i ); > QDataStream &operator<<( Q_INT32 i ); > QDataStream &operator<<( Q_UINT32 i ); > QDataStream &operator<<( Q_INT64 i ); > QDataStream &operator<<( Q_UINT64 i ); > > QDataStream &operator<<( Q_LONG i ); > QDataStream &operator<<( Q_ULONG i ); > > QDataStream &operator<<( float f ); > QDataStream &operator<<( double f ); > QDataStream &operator<<( const char *str ); > > QDataStream &readBytes( char *&, uint &len ); > QDataStream &readRawBytes( char *, uint len ); > > QDataStream &writeBytes( const char *, uint len ); > QDataStream &writeRawBytes( const char *, uint len ); > >private: > QIODevice *dev; > bool owndev; > int byteorder; > bool printable; > bool noswap; > int ver; > >private: > > QDataStream( const QDataStream & ); > QDataStream &operator=( const QDataStream & ); > >}; > > > > > > >inline QIODevice *QDataStream::device() const >{ return dev; } > >inline bool QDataStream::atEnd() const >{ return dev ? dev->atEnd() : TRUE; } > >inline bool QDataStream::eof() const >{ return atEnd(); } > >inline int QDataStream::byteOrder() const >{ return byteorder; } > >inline bool QDataStream::isPrintableData() const >{ return printable; } > >inline void QDataStream::setPrintableData( bool p ) >{ printable = p; } > >inline int QDataStream::version() const >{ return ver; } > >inline void QDataStream::setVersion( int v ) >{ ver = v; } > >inline QDataStream &QDataStream::operator>>( Q_UINT8 &i ) >{ return *this >> (Q_INT8&)i; } > >inline QDataStream &QDataStream::operator>>( Q_UINT16 &i ) >{ return *this >> (Q_INT16&)i; } > >inline QDataStream &QDataStream::operator>>( Q_UINT32 &i ) >{ return *this >> (Q_INT32&)i; } > >inline QDataStream &QDataStream::operator>>( Q_UINT64 &i ) >{ return *this >> (Q_INT64&)i; } > > >inline QDataStream &QDataStream::operator>>( Q_ULONG &i ) >{ return *this >> (Q_LONG&)i; } > > >inline QDataStream &QDataStream::operator<<( Q_UINT8 i ) >{ return *this << (Q_INT8)i; } > >inline QDataStream &QDataStream::operator<<( Q_UINT16 i ) >{ return *this << (Q_INT16)i; } > >inline QDataStream &QDataStream::operator<<( Q_UINT32 i ) >{ return *this << (Q_INT32)i; } > >inline QDataStream &QDataStream::operator<<( Q_UINT64 i ) >{ return *this << (Q_INT64)i; } > > >inline QDataStream &QDataStream::operator<<( Q_ULONG i ) >{ return *this << (Q_LONG)i; } ># 45 "/usr/qt/3/include/qvaluelist.h" 2 ># 58 "/usr/qt/3/include/qvaluelist.h" >template <class T> >class QValueListNode >{ >public: > QValueListNode( const T& t ) : data( t ) { } > QValueListNode() { } > > > > > > QValueListNode<T>* next; > QValueListNode<T>* prev; > T data; >}; > >template<class T> >class QValueListIterator >{ > public: > > > > typedef QValueListNode<T>* NodePtr; > > > > typedef T value_type; > typedef size_t size_type; > > > > typedef int difference_type; > > typedef T* pointer; > typedef T& reference; > > > > > NodePtr node; > > > > > QValueListIterator() : node( 0 ) {} > QValueListIterator( NodePtr p ) : node( p ) {} > QValueListIterator( const QValueListIterator<T>& it ) : node( it.node ) {} > > bool operator==( const QValueListIterator<T>& it ) const { return node == it.node; } > bool operator!=( const QValueListIterator<T>& it ) const { return node != it.node; } > const T& operator*() const { return node->data; } > T& operator*() { return node->data; } > > > > QValueListIterator<T>& operator++() { > node = node->next; > return *this; > } > > QValueListIterator<T> operator++(int) { > QValueListIterator<T> tmp = *this; > node = node->next; > return tmp; > } > > QValueListIterator<T>& operator--() { > node = node->prev; > return *this; > } > > QValueListIterator<T> operator--(int) { > QValueListIterator<T> tmp = *this; > node = node->prev; > return tmp; > } > > QValueListIterator<T>& operator+=( int j ) { > while ( j-- ) > node = node->next; > return *this; > } > > QValueListIterator<T>& operator-=( int j ) { > while ( j-- ) > node = node->prev; > return *this; > } > >}; > >template<class T> >class QValueListConstIterator >{ > public: > > > > typedef QValueListNode<T>* NodePtr; > > > > typedef T value_type; > typedef size_t size_type; > > > > typedef int difference_type; > > typedef const T* pointer; > typedef const T& reference; > > > > > NodePtr node; > > > > > QValueListConstIterator() : node( 0 ) {} > QValueListConstIterator( NodePtr p ) : node( p ) {} > QValueListConstIterator( const QValueListConstIterator<T>& it ) : node( it.node ) {} > QValueListConstIterator( const QValueListIterator<T>& it ) : node( it.node ) {} > > bool operator==( const QValueListConstIterator<T>& it ) const { return node == it.node; } > bool operator!=( const QValueListConstIterator<T>& it ) const { return node != it.node; } > const T& operator*() const { return node->data; } > > > > QValueListConstIterator<T>& operator++() { > node = node->next; > return *this; > } > > QValueListConstIterator<T> operator++(int) { > QValueListConstIterator<T> tmp = *this; > node = node->next; > return tmp; > } > > QValueListConstIterator<T>& operator--() { > node = node->prev; > return *this; > } > > QValueListConstIterator<T> operator--(int) { > QValueListConstIterator<T> tmp = *this; > node = node->prev; > return tmp; > } >}; > >template <class T> >class QValueListPrivate : public QShared >{ >public: > > > > typedef QValueListIterator<T> Iterator; > typedef QValueListConstIterator<T> ConstIterator; > typedef QValueListNode<T> Node; > typedef QValueListNode<T>* NodePtr; > typedef size_t size_type; > > > > > QValueListPrivate(); > QValueListPrivate( const QValueListPrivate<T>& _p ); > > void derefAndDelete() > { > if ( deref() ) > delete this; > } > > > > > > ~QValueListPrivate(); > > Iterator insert( Iterator it, const T& x ); > Iterator remove( Iterator it ); > NodePtr find( NodePtr start, const T& x ) const; > int findIndex( NodePtr start, const T& x ) const; > uint contains( const T& x ) const; > uint remove( const T& x ); > NodePtr at( size_type i ) const; > void clear(); > > NodePtr node; > size_type nodes; >}; > >template <class T> > QValueListPrivate<T>::QValueListPrivate() >{ > node = new Node; node->next = node->prev = node; nodes = 0; >} > >template <class T> > QValueListPrivate<T>::QValueListPrivate( const QValueListPrivate<T>& _p ) > : QShared() >{ > node = new Node; node->next = node->prev = node; nodes = 0; > Iterator b( _p.node->next ); > Iterator e( _p.node ); > Iterator i( node ); > while( b != e ) > insert( i, *b++ ); >} > >template <class T> > QValueListPrivate<T>::~QValueListPrivate() { > NodePtr p = node->next; > while( p != node ) { > NodePtr x = p->next; > delete p; > p = x; > } > delete node; >} > >template <class T> > typename QValueListPrivate<T>::Iterator QValueListPrivate<T>::insert( typename QValueListPrivate<T>::Iterator it, const T& x ) >{ > NodePtr p = new Node( x ); > p->next = it.node; > p->prev = it.node->prev; > it.node->prev->next = p; > it.node->prev = p; > nodes++; > return p; >} > >template <class T> > typename QValueListPrivate<T>::Iterator QValueListPrivate<T>::remove( typename QValueListPrivate<T>::Iterator it ) >{ > ((it.node != node) ? (void)0 : qWarning("ASSERT: \"%s\" in %s (%d)","it.node != node","/usr/qt/3/include/qvaluelist.h",301)); > NodePtr next = it.node->next; > NodePtr prev = it.node->prev; > prev->next = next; > next->prev = prev; > delete it.node; > nodes--; > return Iterator( next ); >} > >template <class T> > typename QValueListPrivate<T>::NodePtr QValueListPrivate<T>::find( typename QValueListPrivate<T>::NodePtr start, const T& x ) const >{ > ConstIterator first( start ); > ConstIterator last( node ); > while( first != last) { > if ( *first == x ) > return first.node; > ++first; > } > return last.node; >} > >template <class T> > int QValueListPrivate<T>::findIndex( typename QValueListPrivate<T>::NodePtr start, const T& x ) const >{ > ConstIterator first( start ); > ConstIterator last( node ); > int pos = 0; > while( first != last) { > if ( *first == x ) > return pos; > ++first; > ++pos; > } > return -1; >} > >template <class T> > uint QValueListPrivate<T>::contains( const T& x ) const >{ > uint result = 0; > Iterator first = Iterator( node->next ); > Iterator last = Iterator( node ); > while( first != last) { > if ( *first == x ) > ++result; > ++first; > } > return result; >} > >template <class T> > uint QValueListPrivate<T>::remove( const T& _x ) >{ > const T x = _x; > uint result = 0; > Iterator first = Iterator( node->next ); > Iterator last = Iterator( node ); > while( first != last) { > if ( *first == x ) { > first = remove( first ); > ++result; > } else > ++first; > } > return result; >} > >template <class T> > typename QValueListPrivate<T>::NodePtr QValueListPrivate<T>::at( size_type i ) const >{ > ((i <= nodes) ? (void)0 : qWarning("ASSERT: \"%s\" in %s (%d)","i <= nodes","/usr/qt/3/include/qvaluelist.h",373)); > NodePtr p = node->next; > for( size_type x = 0; x < i; ++x ) > p = p->next; > return p; >} > >template <class T> > void QValueListPrivate<T>::clear() >{ > nodes = 0; > NodePtr p = node->next; > while( p != node ) { > NodePtr next = p->next; > delete p; > p = next; > } > node->next = node->prev = node; >} ># 406 "/usr/qt/3/include/qvaluelist.h" >template <class T> class QDeepCopy; > >template <class T> >class QValueList >{ >public: > > > > typedef QValueListIterator<T> iterator; > typedef QValueListConstIterator<T> const_iterator; > typedef T value_type; > typedef value_type* pointer; > typedef const value_type* const_pointer; > typedef value_type& reference; > typedef const value_type& const_reference; > typedef size_t size_type; > > > > typedef int difference_type; > > > > > > QValueList() { sh = new QValueListPrivate<T>; } > QValueList( const QValueList<T>& l ) { sh = l.sh; sh->ref(); } > > > > > > > > ~QValueList() { sh->derefAndDelete(); } > > QValueList<T>& operator= ( const QValueList<T>& l ) > { > l.sh->ref(); > sh->derefAndDelete(); > sh = l.sh; > return *this; > } ># 472 "/usr/qt/3/include/qvaluelist.h" > bool operator== ( const QValueList<T>& l ) const; > bool operator!= ( const QValueList<T>& l ) const { return !( *this == l ); } > iterator begin() { detach(); return iterator( sh->node->next ); } > const_iterator begin() const { return const_iterator( sh->node->next ); } > const_iterator constBegin() const { return const_iterator( sh->node->next ); } > iterator end() { detach(); return iterator( sh->node ); } > const_iterator end() const { return const_iterator( sh->node ); } > const_iterator constEnd() const { return const_iterator( sh->node ); } > iterator insert( iterator it, const T& x ) { detach(); return sh->insert( it, x ); } > uint remove( const T& x ) { detach(); return sh->remove( x ); } > void clear(); > > > QValueList<T>& operator<< ( const T& x ) > { > append( x ); > return *this; > } > > size_type size() const { return sh->nodes; } > bool empty() const { return sh->nodes == 0; } > void push_front( const T& x ) { detach(); sh->insert( begin(), x ); } > void push_back( const T& x ) { detach(); sh->insert( end(), x ); } > iterator erase( iterator pos ) { detach(); return sh->remove( pos ); } > iterator erase( iterator first, iterator last ); > reference front() { ; return *begin(); } > const_reference front() const { ; return *begin(); } > reference back() { ; return *(--end()); } > const_reference back() const { ; return *(--end()); } > void pop_front() { ; erase( begin() ); } > void pop_back() { > ; > iterator tmp = end(); > erase( --tmp ); > } > void insert( iterator pos, size_type n, const T& x ); ># 518 "/usr/qt/3/include/qvaluelist.h" > QValueList<T> operator+ ( const QValueList<T>& l ) const; > QValueList<T>& operator+= ( const QValueList<T>& l ); > > iterator fromLast() { detach(); return iterator( sh->node->prev ); } > const_iterator fromLast() const { return const_iterator( sh->node->prev ); } > > bool isEmpty() const { return ( sh->nodes == 0 ); } > > iterator append( const T& x ) { detach(); return sh->insert( end(), x ); } > iterator prepend( const T& x ) { detach(); return sh->insert( begin(), x ); } > > iterator remove( iterator it ) { detach(); return sh->remove( it ); } > > T& first() { ; detach(); return sh->node->next->data; } > const T& first() const { ; return sh->node->next->data; } > T& last() { ; detach(); return sh->node->prev->data; } > const T& last() const { ; return sh->node->prev->data; } > > T& operator[] ( size_type i ) { ; detach(); return sh->at(i)->data; } > const T& operator[] ( size_type i ) const { ; return sh->at(i)->data; } > iterator at( size_type i ) { ; detach(); return iterator( sh->at(i) ); } > const_iterator at( size_type i ) const { ; return const_iterator( sh->at(i) ); } > iterator find ( const T& x ) { detach(); return iterator( sh->find( sh->node->next, x) ); } > const_iterator find ( const T& x ) const { return const_iterator( sh->find( sh->node->next, x) ); } > iterator find ( iterator it, const T& x ) { detach(); return iterator( sh->find( it.node, x ) ); } > const_iterator find ( const_iterator it, const T& x ) const { return const_iterator( sh->find( it.node, x ) ); } > int findIndex( const T& x ) const { return sh->findIndex( sh->node->next, x) ; } > size_type contains( const T& x ) const { return sh->contains( x ); } > > size_type count() const { return sh->nodes; } > > QValueList<T>& operator+= ( const T& x ) > { > append( x ); > return *this; > } > typedef QValueListIterator<T> Iterator; > typedef QValueListConstIterator<T> ConstIterator; > typedef T ValueType; > >protected: > > > > void detach() { if ( sh->count > 1 ) detachInternal(); } > > > > > QValueListPrivate<T>* sh; > >private: > void detachInternal(); > > friend class QDeepCopy< QValueList<T> >; >}; > >template <class T> > bool QValueList<T>::operator== ( const QValueList<T>& l ) const >{ > if ( size() != l.size() ) > return FALSE; > const_iterator it2 = begin(); > const_iterator it = l.begin(); > for( ; it != l.end(); ++it, ++it2 ) > if ( !( *it == *it2 ) ) > return FALSE; > return TRUE; >} > >template <class T> > void QValueList<T>::clear() >{ > if ( sh->count == 1 ) sh->clear(); else { sh->deref(); sh = new QValueListPrivate<T>; } >} > >template <class T> > typename QValueList<T>::iterator QValueList<T>::erase( typename QValueList<T>::iterator first, typename QValueList<T>::iterator last ) >{ > while ( first != last ) > erase( first++ ); > return last; >} > > >template <class T> > void QValueList<T>::insert( typename QValueList<T>::iterator pos, size_type n, const T& x ) >{ > for ( ; n > 0; --n ) > insert( pos, x ); >} > >template <class T> > QValueList<T> QValueList<T>::operator+ ( const QValueList<T>& l ) const >{ > QValueList<T> l2( *this ); > for( const_iterator it = l.begin(); it != l.end(); ++it ) > l2.append( *it ); > return l2; >} > >template <class T> > QValueList<T>& QValueList<T>::operator+= ( const QValueList<T>& l ) >{ > QValueList<T> copy = l; > for( const_iterator it = copy.begin(); it != copy.end(); ++it ) > append( *it ); > return *this; >} > >template <class T> > void QValueList<T>::detachInternal() >{ > sh->deref(); sh = new QValueListPrivate<T>( *sh ); >} > > >template <class T> > QDataStream& operator>>( QDataStream& s, QValueList<T>& l ) >{ > l.clear(); > Q_UINT32 c; > s >> c; > for( Q_UINT32 i = 0; i < c; ++i ) > { > T t; > s >> t; > l.append( t ); > if ( s.atEnd() ) > break; > } > return s; >} > >template <class T> > QDataStream& operator<<( QDataStream& s, const QValueList<T>& l ) >{ > s << (Q_UINT32)l.size(); > QValueListConstIterator<T> it = l.begin(); > for( ; it != l.end(); ++it ) > s << *it; > return s; >} > > > > ># 1 "/usr/qt/3/include/qwinexport.h" 1 ># 666 "/usr/qt/3/include/qvaluelist.h" 2 ># 320 "/usr/qt/3/include/qvariant.h" 2 ># 1 "/usr/qt/3/include/qstringlist.h" 1 ># 44 "/usr/qt/3/include/qstringlist.h" ># 1 "/usr/qt/3/include/qstrlist.h" 1 ># 43 "/usr/qt/3/include/qstrlist.h" ># 1 "/usr/qt/3/include/qptrlist.h" 1 ># 40 "/usr/qt/3/include/qptrlist.h" ># 1 "/usr/qt/3/include/qglist.h" 1 ># 42 "/usr/qt/3/include/qglist.h" ># 1 "/usr/qt/3/include/qptrcollection.h" 1 ># 40 "/usr/qt/3/include/qptrcollection.h" ># 1 "/usr/qt/3/include/qglobal.h" 1 ># 41 "/usr/qt/3/include/qptrcollection.h" 2 > > > >class QGVector; >class QGList; >class QGDict; > > >class QPtrCollection >{ >public: > bool autoDelete() const { return del_item; } > void setAutoDelete( bool enable ) { del_item = enable; } > > virtual uint count() const = 0; > virtual void clear() = 0; > > typedef void *Item; > >protected: > QPtrCollection() { del_item = FALSE; } > QPtrCollection(const QPtrCollection &) { del_item = FALSE; } > virtual ~QPtrCollection() {} > > bool del_item; > > virtual Item newItem( Item ); > virtual void deleteItem( Item ) = 0; >}; ># 43 "/usr/qt/3/include/qglist.h" 2 > > >class QLNode >{ >friend class QGList; >friend class QGListIterator; >friend class QGListStdIterator; >public: > QPtrCollection::Item getData() { return data; } >private: > QPtrCollection::Item data; > QLNode *prev; > QLNode *next; > QLNode( QPtrCollection::Item d ) { data = d; } >}; > >class QGListIteratorList; > >class QGList : public QPtrCollection >{ >friend class QGListIterator; >friend class QGListIteratorList; >friend class QGVector; >public: > uint count() const; > > > QDataStream &read( QDataStream & ); > QDataStream &write( QDataStream & ) const; > >protected: > QGList(); > QGList( const QGList & ); > virtual ~QGList(); > > QGList &operator=( const QGList & ); > bool operator==( const QGList& ) const; > > void inSort( QPtrCollection::Item ); > void append( QPtrCollection::Item ); > bool insertAt( uint index, QPtrCollection::Item ); > void relinkNode( QLNode * ); > bool removeNode( QLNode * ); > bool remove( QPtrCollection::Item = 0 ); > bool removeRef( QPtrCollection::Item = 0 ); > bool removeFirst(); > bool removeLast(); > bool removeAt( uint ); > bool replaceAt( uint, QPtrCollection::Item ); > QPtrCollection::Item takeNode( QLNode * ); > QPtrCollection::Item take(); > QPtrCollection::Item takeAt( uint index ); > QPtrCollection::Item takeFirst(); > QPtrCollection::Item takeLast(); > > void sort(); > void clear(); > > int findRef( QPtrCollection::Item, bool = TRUE ); > int find( QPtrCollection::Item, bool = TRUE ); > > uint containsRef( QPtrCollection::Item ) const; > uint contains( QPtrCollection::Item ) const; > > QPtrCollection::Item at( uint index ); > int at() const; > QLNode *currentNode() const; > > QPtrCollection::Item get() const; > > QPtrCollection::Item cfirst() const; > QPtrCollection::Item clast() const; > QPtrCollection::Item first(); > QPtrCollection::Item last(); > QPtrCollection::Item next(); > QPtrCollection::Item prev(); > > void toVector( QGVector * ) const; > > virtual int compareItems( QPtrCollection::Item, QPtrCollection::Item ); > > > virtual QDataStream &read( QDataStream &, QPtrCollection::Item & ); > virtual QDataStream &write( QDataStream &, QPtrCollection::Item ) const; > > > QLNode* begin() const { return firstNode; } > QLNode* end() const { return 0; } > QLNode* erase( QLNode* it ); > >private: > void prepend( QPtrCollection::Item ); > > void heapSortPushDown( QPtrCollection::Item* heap, int first, int last ); > > QLNode *firstNode; > QLNode *lastNode; > QLNode *curNode; > int curIndex; > uint numNodes; > QGListIteratorList *iterators; > > QLNode *locate( uint ); > QLNode *unlink(); >}; > > >inline uint QGList::count() const >{ > return numNodes; >} > >inline bool QGList::removeFirst() >{ > first(); > return remove(); >} > >inline bool QGList::removeLast() >{ > last(); > return remove(); >} > >inline int QGList::at() const >{ > return curIndex; >} > >inline QPtrCollection::Item QGList::at( uint index ) >{ > QLNode *n = locate( index ); > return n ? n->data : 0; >} > >inline QLNode *QGList::currentNode() const >{ > return curNode; >} > >inline QPtrCollection::Item QGList::get() const >{ > return curNode ? curNode->data : 0; >} > >inline QPtrCollection::Item QGList::cfirst() const >{ > return firstNode ? firstNode->data : 0; >} > >inline QPtrCollection::Item QGList::clast() const >{ > return lastNode ? lastNode->data : 0; >} > > > > > > > > QDataStream &operator>>( QDataStream &, QGList & ); > QDataStream &operator<<( QDataStream &, const QGList & ); > > > > > > >class QGListIterator >{ >friend class QGList; >friend class QGListIteratorList; >protected: > QGListIterator( const QGList & ); > QGListIterator( const QGListIterator & ); > QGListIterator &operator=( const QGListIterator & ); > ~QGListIterator(); > > bool atFirst() const; > bool atLast() const; > QPtrCollection::Item toFirst(); > QPtrCollection::Item toLast(); > > QPtrCollection::Item get() const; > QPtrCollection::Item operator()(); > QPtrCollection::Item operator++(); > QPtrCollection::Item operator+=(uint); > QPtrCollection::Item operator--(); > QPtrCollection::Item operator-=(uint); > >protected: > QGList *list; > >private: > QLNode *curNode; >}; > > >inline bool QGListIterator::atFirst() const >{ > return curNode == list->firstNode; >} > >inline bool QGListIterator::atLast() const >{ > return curNode == list->lastNode; >} > >inline QPtrCollection::Item QGListIterator::get() const >{ > return curNode ? curNode->data : 0; >} > >class QGListStdIterator >{ >public: > inline QGListStdIterator( QLNode* n ) : node( n ){} > inline operator QLNode* () { return node; } >protected: > inline QLNode *next() { return node->next; } > QLNode *node; >}; ># 41 "/usr/qt/3/include/qptrlist.h" 2 > > >template<class type> >class QPtrListStdIterator : public QGListStdIterator >{ >public: > inline QPtrListStdIterator( QLNode* n ): QGListStdIterator(n) {} > type *operator*() { return node ? (type *)node->getData() : 0; } > inline QPtrListStdIterator<type> operator++() > { node = next(); return *this; } > inline QPtrListStdIterator<type> operator++(int) > { QLNode* n = node; node = next(); return QPtrListStdIterator<type>( n ); } > inline bool operator==( const QPtrListStdIterator<type>& it ) const { return node == it.node; } > inline bool operator!=( const QPtrListStdIterator<type>& it ) const { return node != it.node; } >}; > > >template<class type> >class QPtrList > > > > : public QGList > >{ >public: > > QPtrList() {} > QPtrList( const QPtrList<type> &l ) : QGList(l) {} > ~QPtrList() { clear(); } > QPtrList<type> &operator=(const QPtrList<type> &l) > { return (QPtrList<type>&)QGList::operator=(l); } > bool operator==( const QPtrList<type> &list ) const > { return QGList::operator==( list ); } > bool operator!=( const QPtrList<type> &list ) const > { return !QGList::operator==( list ); } > uint count() const { return QGList::count(); } > bool isEmpty() const { return QGList::count() == 0; } > bool insert( uint i, const type *d){ return QGList::insertAt(i,(QPtrCollection::Item)d); } > void inSort( const type *d ) { QGList::inSort((QPtrCollection::Item)d); } > void prepend( const type *d ) { QGList::insertAt(0,(QPtrCollection::Item)d); } > void append( const type *d ) { QGList::append((QPtrCollection::Item)d); } > bool remove( uint i ) { return QGList::removeAt(i); } > bool remove() { return QGList::remove((QPtrCollection::Item)0); } > bool remove( const type *d ) { return QGList::remove((QPtrCollection::Item)d); } > bool removeRef( const type *d ) { return QGList::removeRef((QPtrCollection::Item)d); } > void removeNode( QLNode *n ) { QGList::removeNode(n); } > bool removeFirst() { return QGList::removeFirst(); } > bool removeLast() { return QGList::removeLast(); } > type *take( uint i ) { return (type *)QGList::takeAt(i); } > type *take() { return (type *)QGList::take(); } > type *takeNode( QLNode *n ) { return (type *)QGList::takeNode(n); } > void clear() { QGList::clear(); } > void sort() { QGList::sort(); } > int find( const type *d ) { return QGList::find((QPtrCollection::Item)d); } > int findNext( const type *d ) { return QGList::find((QPtrCollection::Item)d,FALSE); } > int findRef( const type *d ) { return QGList::findRef((QPtrCollection::Item)d); } > int findNextRef( const type *d ){ return QGList::findRef((QPtrCollection::Item)d,FALSE);} > uint contains( const type *d ) const { return QGList::contains((QPtrCollection::Item)d); } > uint containsRef( const type *d ) const > { return QGList::containsRef((QPtrCollection::Item)d); } > bool replace( uint i, const type *d ) { return QGList::replaceAt( i, (QPtrCollection::Item)d ); } > type *at( uint i ) { return (type *)QGList::at(i); } > int at() const { return QGList::at(); } > type *current() const { return (type *)QGList::get(); } > QLNode *currentNode() const { return QGList::currentNode(); } > type *getFirst() const { return (type *)QGList::cfirst(); } > type *getLast() const { return (type *)QGList::clast(); } > type *first() { return (type *)QGList::first(); } > type *last() { return (type *)QGList::last(); } > type *next() { return (type *)QGList::next(); } > type *prev() { return (type *)QGList::prev(); } > void toVector( QGVector *vec )const{ QGList::toVector(vec); } > > > > typedef QPtrListStdIterator<type> Iterator; > typedef QPtrListStdIterator<type> ConstIterator; > inline Iterator begin() { return QGList::begin(); } > inline ConstIterator begin() const { return QGList::begin(); } > inline ConstIterator constBegin() const { return QGList::begin(); } > inline Iterator end() { return QGList::end(); } > inline ConstIterator end() const { return QGList::end(); } > inline ConstIterator constEnd() const { return QGList::end(); } > inline Iterator erase( Iterator it ) { return QGList::erase( it ); } > > typedef Iterator iterator; > typedef ConstIterator const_iterator; ># 138 "/usr/qt/3/include/qptrlist.h" >private: > void deleteItem( Item d ); >}; > > >template<> inline void QPtrList<void>::deleteItem( QPtrCollection::Item ) >{ >} > > >template<class type> inline void QPtrList<type>::deleteItem( QPtrCollection::Item d ) >{ > if ( del_item ) delete (type *)d; >} > >template<class type> >class QPtrListIterator : public QGListIterator >{ >public: > QPtrListIterator(const QPtrList<type> &l) :QGListIterator((QGList &)l) {} > ~QPtrListIterator() {} > uint count() const { return list->count(); } > bool isEmpty() const { return list->count() == 0; } > bool atFirst() const { return QGListIterator::atFirst(); } > bool atLast() const { return QGListIterator::atLast(); } > type *toFirst() { return (type *)QGListIterator::toFirst(); } > type *toLast() { return (type *)QGListIterator::toLast(); } > operator type *() const { return (type *)QGListIterator::get(); } > type *operator*() { return (type *)QGListIterator::get(); } > > > > > > > > type *current() const { return (type *)QGListIterator::get(); } > type *operator()() { return (type *)QGListIterator::operator()();} > type *operator++() { return (type *)QGListIterator::operator++(); } > type *operator+=(uint j) { return (type *)QGListIterator::operator+=(j);} > type *operator--() { return (type *)QGListIterator::operator--(); } > type *operator-=(uint j) { return (type *)QGListIterator::operator-=(j);} > QPtrListIterator<type>& operator=(const QPtrListIterator<type>&it) > { QGListIterator::operator=(it); return *this; } >}; > > > > > > > ># 1 "/usr/qt/3/include/qwinexport.h" 1 ># 191 "/usr/qt/3/include/qptrlist.h" 2 ># 44 "/usr/qt/3/include/qstrlist.h" 2 ># 52 "/usr/qt/3/include/qstrlist.h" >typedef QPtrListIterator<char> QStrListIterator; > > >class QStrList : public QPtrList<char> >{ >public: > QStrList( bool deepCopies=TRUE ) { dc = deepCopies; del_item = deepCopies; } > QStrList( const QStrList & ); > ~QStrList() { clear(); } > QStrList& operator=( const QStrList & ); > >private: > QPtrCollection::Item newItem( QPtrCollection::Item d ) { return dc ? qstrdup( (const char*)d ) : d; } > void deleteItem( QPtrCollection::Item d ) { if ( del_item ) delete[] (char*)d; } > int compareItems( QPtrCollection::Item s1, QPtrCollection::Item s2 ) { return qstrcmp((const char*)s1, > (const char*)s2); } > > QDataStream &read( QDataStream &s, QPtrCollection::Item &d ) > { s >> (char *&)d; return s; } > QDataStream &write( QDataStream &s, QPtrCollection::Item d ) const > { return s << (const char *)d; } > > bool dc; >}; > > >class QStrIList : public QStrList >{ >public: > QStrIList( bool deepCopies=TRUE ) : QStrList( deepCopies ) {} > ~QStrIList() { clear(); } >private: > int compareItems( QPtrCollection::Item s1, QPtrCollection::Item s2 ) > { return qstricmp((const char*)s1, > (const char*)s2); } >}; > > >inline QStrList & QStrList::operator=( const QStrList &strList ) >{ > clear(); > dc = strList.dc; > del_item = dc; > QPtrList<char>::operator=( strList ); > return *this; >} > >inline QStrList::QStrList( const QStrList &strList ) > : QPtrList<char>( strList ) >{ > dc = FALSE; > operator=( strList ); >} ># 45 "/usr/qt/3/include/qstringlist.h" 2 > > > > >class QRegExp; >template <class T> class QDeepCopy; > > > > > > > >class QStringList : public QValueList<QString> >{ >public: > QStringList() { } > QStringList( const QStringList& l ) : QValueList<QString>(l) { } > QStringList( const QValueList<QString>& l ) : QValueList<QString>(l) { } > QStringList( const QString& i ) { append(i); } > > QStringList( const char* i ) { append(i); } > > > static QStringList fromStrList(const QStrList&); > > void sort(); > > static QStringList split( const QString &sep, const QString &str, bool allowEmptyEntries = FALSE ); > static QStringList split( const QChar &sep, const QString &str, bool allowEmptyEntries = FALSE ); > > static QStringList split( const QRegExp &sep, const QString &str, bool allowEmptyEntries = FALSE ); > > QString join( const QString &sep ) const; > > QStringList grep( const QString &str, bool cs = TRUE ) const; > > QStringList grep( const QRegExp &expr ) const; > > > QStringList& gres( const QString &before, const QString &after, > bool cs = TRUE ); > > QStringList& gres( const QRegExp &expr, const QString &after ); > > >protected: > void detach() { QValueList<QString>::detach(); } > friend class QDeepCopy< QStringList >; >}; > > >class QDataStream; >extern QDataStream &operator>>( QDataStream &, QStringList& ); >extern QDataStream &operator<<( QDataStream &, const QStringList& ); ># 321 "/usr/qt/3/include/qvariant.h" 2 ># 1 "/usr/qt/3/include/qmap.h" 1 ># 42 "/usr/qt/3/include/qmap.h" ># 1 "/usr/qt/3/include/qglobal.h" 1 ># 43 "/usr/qt/3/include/qmap.h" 2 > > ># 1 "/usr/qt/3/include/qpair.h" 1 ># 40 "/usr/qt/3/include/qpair.h" ># 1 "/usr/qt/3/include/qglobal.h" 1 ># 41 "/usr/qt/3/include/qpair.h" 2 > > > >template <class T1, class T2> >struct QPair >{ > typedef T1 first_type; > typedef T2 second_type; > > QPair() > : first( T1() ), second( T2() ) > {} > QPair( const T1& t1, const T2& t2 ) > : first( t1 ), second( t2 ) > {} > > QPair<T1, T2>& operator=(const QPair<T1, T2>& other) > { > if (this != &other) { > first = other.first; > second = other.second; > } > return *this; > } > > T1 first; > T2 second; >}; > >template <class T1, class T2> > bool operator==( const QPair<T1, T2>& x, const QPair<T1, T2>& y ) >{ > return x.first == y.first && x.second == y.second; >} > >template <class T1, class T2> > bool operator<( const QPair<T1, T2>& x, const QPair<T1, T2>& y ) >{ > return x.first < y.first || > ( !( y.first < x.first ) && x.second < y.second ); >} > >template <class T1, class T2> > QPair<T1, T2> qMakePair( const T1& x, const T2& y ) >{ > return QPair<T1, T2>( x, y ); >} > > >template <class T1, class T2> >inline QDataStream& operator>>( QDataStream& s, QPair<T1, T2>& p ) >{ > s >> p.first >> p.second; > return s; >} > >template <class T1, class T2> >inline QDataStream& operator<<( QDataStream& s, const QPair<T1, T2>& p ) >{ > s << p.first << p.second; > return s; >} ># 46 "/usr/qt/3/include/qmap.h" 2 ># 56 "/usr/qt/3/include/qmap.h" >struct QMapNodeBase >{ > enum Color { Red, Black }; > > QMapNodeBase* left; > QMapNodeBase* right; > QMapNodeBase* parent; > > Color color; > > QMapNodeBase* minimum() { > QMapNodeBase* x = this; > while ( x->left ) > x = x->left; > return x; > } > > QMapNodeBase* maximum() { > QMapNodeBase* x = this; > while ( x->right ) > x = x->right; > return x; > } >}; > > >template <class K, class T> >struct QMapNode : public QMapNodeBase >{ > QMapNode( const K& _key, const T& _data ) { data = _data; key = _key; } > QMapNode( const K& _key ) { key = _key; } > QMapNode( const QMapNode<K,T>& _n ) { key = _n.key; data = _n.data; } > QMapNode() { } > T data; > K key; >}; > > >template<class K, class T> >class QMapIterator >{ > public: > > > > typedef QMapNode< K, T >* NodePtr; > > > > typedef T value_type; > > > > typedef int difference_type; > > typedef T* pointer; > typedef T& reference; > > > > > QMapNode<K,T>* node; > > > > > QMapIterator() : node( 0 ) {} > QMapIterator( QMapNode<K,T>* p ) : node( p ) {} > QMapIterator( const QMapIterator<K,T>& it ) : node( it.node ) {} > > bool operator==( const QMapIterator<K,T>& it ) const { return node == it.node; } > bool operator!=( const QMapIterator<K,T>& it ) const { return node != it.node; } > T& operator*() { return node->data; } > const T& operator*() const { return node->data; } > > > > const K& key() const { return node->key; } > T& data() { return node->data; } > const T& data() const { return node->data; } > >private: > int inc(); > int dec(); > >public: > QMapIterator<K,T>& operator++() { > inc(); > return *this; > } > > QMapIterator<K,T> operator++(int) { > QMapIterator<K,T> tmp = *this; > inc(); > return tmp; > } > > QMapIterator<K,T>& operator--() { > dec(); > return *this; > } > > QMapIterator<K,T> operator--(int) { > QMapIterator<K,T> tmp = *this; > dec(); > return tmp; > } >}; > >template <class K, class T> > int QMapIterator<K,T>::inc() >{ > QMapNodeBase* tmp = node; > if ( tmp->right ) { > tmp = tmp->right; > while ( tmp->left ) > tmp = tmp->left; > } else { > QMapNodeBase* y = tmp->parent; > while (tmp == y->right) { > tmp = y; > y = y->parent; > } > if (tmp->right != y) > tmp = y; > } > node = (NodePtr)tmp; > return 0; >} > >template <class K, class T> > int QMapIterator<K,T>::dec() >{ > QMapNodeBase* tmp = node; > if (tmp->color == QMapNodeBase::Red && > tmp->parent->parent == tmp ) { > tmp = tmp->right; > } else if (tmp->left != 0) { > QMapNodeBase* y = tmp->left; > while ( y->right ) > y = y->right; > tmp = y; > } else { > QMapNodeBase* y = tmp->parent; > while (tmp == y->left) { > tmp = y; > y = y->parent; > } > tmp = y; > } > node = (NodePtr)tmp; > return 0; >} > >template<class K, class T> >class QMapConstIterator >{ > public: > > > > typedef QMapNode< K, T >* NodePtr; > > > > typedef T value_type; > > > > typedef int difference_type; > > typedef const T* pointer; > typedef const T& reference; > > > > > > QMapNode<K,T>* node; > > > > > QMapConstIterator() : node( 0 ) {} > QMapConstIterator( QMapNode<K,T>* p ) : node( p ) {} > QMapConstIterator( const QMapConstIterator<K,T>& it ) : node( it.node ) {} > QMapConstIterator( const QMapIterator<K,T>& it ) : node( it.node ) {} > > bool operator==( const QMapConstIterator<K,T>& it ) const { return node == it.node; } > bool operator!=( const QMapConstIterator<K,T>& it ) const { return node != it.node; } > const T& operator*() const { return node->data; } > > > > const K& key() const { return node->key; } > const T& data() const { return node->data; } > >private: > int inc(); > int dec(); > >public: > QMapConstIterator<K,T>& operator++() { > inc(); > return *this; > } > > QMapConstIterator<K,T> operator++(int) { > QMapConstIterator<K,T> tmp = *this; > inc(); > return tmp; > } > > QMapConstIterator<K,T>& operator--() { > dec(); > return *this; > } > > QMapConstIterator<K,T> operator--(int) { > QMapConstIterator<K,T> tmp = *this; > dec(); > return tmp; > } >}; > >template <class K, class T> > int QMapConstIterator<K,T>::inc() >{ > QMapNodeBase* tmp = node; > if ( tmp->right ) { > tmp = tmp->right; > while ( tmp->left ) > tmp = tmp->left; > } else { > QMapNodeBase* y = tmp->parent; > while (tmp == y->right) { > tmp = y; > y = y->parent; > } > if (tmp->right != y) > tmp = y; > } > node = (NodePtr)tmp; > return 0; >} > >template <class K, class T> > int QMapConstIterator<K,T>::dec() >{ > QMapNodeBase* tmp = node; > if (tmp->color == QMapNodeBase::Red && > tmp->parent->parent == tmp ) { > tmp = tmp->right; > } else if (tmp->left != 0) { > QMapNodeBase* y = tmp->left; > while ( y->right ) > y = y->right; > tmp = y; > } else { > QMapNodeBase* y = tmp->parent; > while (tmp == y->left) { > tmp = y; > y = y->parent; > } > tmp = y; > } > node = (NodePtr)tmp; > return 0; >} > > >class QMapPrivateBase : public QShared >{ >public: > QMapPrivateBase() { > node_count = 0; > } > QMapPrivateBase( const QMapPrivateBase* _map) { > node_count = _map->node_count; > } > > > > > void rotateLeft( QMapNodeBase* x, QMapNodeBase*& root); > void rotateRight( QMapNodeBase* x, QMapNodeBase*& root ); > void rebalance( QMapNodeBase* x, QMapNodeBase*& root ); > QMapNodeBase* removeAndRebalance( QMapNodeBase* z, QMapNodeBase*& root, > QMapNodeBase*& leftmost, > QMapNodeBase*& rightmost ); > > > > > int node_count; >}; > > >template <class Key, class T> >class QMapPrivate : public QMapPrivateBase >{ >public: > > > > typedef QMapIterator< Key, T > Iterator; > typedef QMapConstIterator< Key, T > ConstIterator; > typedef QMapNode< Key, T > Node; > typedef QMapNode< Key, T >* NodePtr; > > > > > QMapPrivate(); > QMapPrivate( const QMapPrivate< Key, T >* _map ); > ~QMapPrivate() { clear(); delete header; } > > NodePtr copy( NodePtr p ); > void clear(); > void clear( NodePtr p ); > > Iterator begin() { return Iterator( (NodePtr)(header->left ) ); } > Iterator end() { return Iterator( header ); } > ConstIterator begin() const { return ConstIterator( (NodePtr)(header->left ) ); } > ConstIterator end() const { return ConstIterator( header ); } > > ConstIterator find(const Key& k) const; > > void remove( Iterator it ) { > NodePtr del = (NodePtr) removeAndRebalance( it.node, header->parent, header->left, header->right ); > delete del; > --node_count; > } ># 414 "/usr/qt/3/include/qmap.h" > Iterator insertSingle( const Key& k ); > Iterator insert( QMapNodeBase* x, QMapNodeBase* y, const Key& k ); > >protected: > > > > const Key& key( QMapNodeBase* b ) const { return ((NodePtr)b)->key; } > > > > > NodePtr header; >}; > > >template <class Key, class T> > QMapPrivate<Key,T>::QMapPrivate() { > header = new Node; > header->color = QMapNodeBase::Red; > header->parent = 0; > header->left = header->right = header; >} >template <class Key, class T> > QMapPrivate<Key,T>::QMapPrivate( const QMapPrivate< Key, T >* _map ) : QMapPrivateBase( _map ) { > header = new Node; > header->color = QMapNodeBase::Red; > if ( _map->header->parent == 0 ) { > header->parent = 0; > header->left = header->right = header; > } else { > header->parent = copy( (NodePtr)(_map->header->parent) ); > header->parent->parent = header; > header->left = header->parent->minimum(); > header->right = header->parent->maximum(); > } >} > >template <class Key, class T> > typename QMapPrivate<Key,T>::NodePtr QMapPrivate<Key,T>::copy( typename QMapPrivate<Key,T>::NodePtr p ) >{ > if ( !p ) > return 0; > NodePtr n = new Node( *p ); > n->color = p->color; > if ( p->left ) { > n->left = copy( (NodePtr)(p->left) ); > n->left->parent = n; > } else { > n->left = 0; > } > if ( p->right ) { > n->right = copy( (NodePtr)(p->right) ); > n->right->parent = n; > } else { > n->right = 0; > } > return n; >} > >template <class Key, class T> > void QMapPrivate<Key,T>::clear() >{ > clear( (NodePtr)(header->parent) ); > header->color = QMapNodeBase::Red; > header->parent = 0; > header->left = header->right = header; > node_count = 0; >} > >template <class Key, class T> > void QMapPrivate<Key,T>::clear( typename QMapPrivate<Key,T>::NodePtr p ) >{ > while ( p != 0 ) { > clear( (NodePtr)p->right ); > NodePtr y = (NodePtr)p->left; > delete p; > p = y; > } >} > >template <class Key, class T> > typename QMapPrivate<Key,T>::ConstIterator QMapPrivate<Key,T>::find(const Key& k) const >{ > QMapNodeBase* y = header; > QMapNodeBase* x = header->parent; > > while ( x != 0 ) { > > if ( !( key(x) < k ) ) { > y = x; > x = x->left; > } else { > x = x->right; > } > } > > > > if ( y == header || k < key(y) ) > return ConstIterator( header ); > return ConstIterator( (NodePtr)y ); >} > >template <class Key, class T> > typename QMapPrivate<Key,T>::Iterator QMapPrivate<Key,T>::insertSingle( const Key& k ) >{ > > QMapNodeBase* y = header; > QMapNodeBase* x = header->parent; > bool result = TRUE; > while ( x != 0 ) { > result = ( k < key(x) ); > y = x; > x = result ? x->left : x->right; > } > > Iterator j( (NodePtr)y ); > if ( result ) { > > if ( j == begin() ) { > return insert(x, y, k ); > } else { > > --j; > } > } > > if ( (j.node->key) < k ) > return insert(x, y, k ); > > return j; >} > > >template <class Key, class T> > typename QMapPrivate<Key,T>::Iterator QMapPrivate<Key,T>::insert( QMapNodeBase* x, QMapNodeBase* y, const Key& k ) >{ > NodePtr z = new Node( k ); > if (y == header || x != 0 || k < key(y) ) { > y->left = z; > if ( y == header ) { > header->parent = z; > header->right = z; > } else if ( y == header->left ) > header->left = z; > } else { > y->right = z; > if ( y == header->right ) > header->right = z; > } > z->parent = y; > z->left = 0; > z->right = 0; > rebalance( z, header->parent ); > ++node_count; > return Iterator(z); >} ># 587 "/usr/qt/3/include/qmap.h" >template <class T> class QDeepCopy; > >template<class Key, class T> >class QMap >{ >public: > > > > typedef Key key_type; > typedef T mapped_type; > typedef QPair<const key_type, mapped_type> value_type; > typedef value_type* pointer; > typedef const value_type* const_pointer; > typedef value_type& reference; > typedef const value_type& const_reference; > > > > typedef int difference_type; > > typedef size_t size_type; > typedef QMapIterator<Key,T> iterator; > typedef QMapConstIterator<Key,T> const_iterator; > typedef QPair<iterator,bool> insert_pair; > > typedef QMapIterator< Key, T > Iterator; > typedef QMapConstIterator< Key, T > ConstIterator; > typedef T ValueType; > typedef QMapPrivate< Key, T > Priv; > > > > > QMap() > { > sh = new QMapPrivate< Key, T >; > } > QMap( const QMap<Key,T>& m ) > { > sh = m.sh; sh->ref(); > } ># 641 "/usr/qt/3/include/qmap.h" > ~QMap() > { > if ( sh->deref() ) > delete sh; > } > QMap<Key,T>& operator= ( const QMap<Key,T>& m ); ># 660 "/usr/qt/3/include/qmap.h" > iterator begin() { detach(); return sh->begin(); } > iterator end() { detach(); return sh->end(); } > const_iterator begin() const { return ((const Priv*)sh)->begin(); } > const_iterator end() const { return ((const Priv*)sh)->end(); } > const_iterator constBegin() const { return begin(); } > const_iterator constEnd() const { return end(); } > > iterator replace( const Key& k, const T& v ) > { > remove( k ); > return insert( k, v ); > } > > size_type size() const > { > return sh->node_count; > } > bool empty() const > { > return sh->node_count == 0; > } > QPair<iterator,bool> insert( const value_type& x ); > > void erase( iterator it ) > { > detach(); > sh->remove( it ); > } > void erase( const key_type& k ); > size_type count( const key_type& k ) const; > T& operator[] ( const Key& k ); > void clear(); > > iterator find ( const Key& k ) > { > detach(); > return iterator( sh->find( k ).node ); > } > const_iterator find ( const Key& k ) const { return sh->find( k ); } > > const T& operator[] ( const Key& k ) const > { ; return sh->find( k ).data(); } > bool contains ( const Key& k ) const > { return find( k ) != end(); } > > > size_type count() const { return sh->node_count; } > > QValueList<Key> keys() const { > QValueList<Key> r; > for (const_iterator i=begin(); i!=end(); ++i) > r.append(i.key()); > return r; > } > > QValueList<T> values() const { > QValueList<T> r; > for (const_iterator i=begin(); i!=end(); ++i) > r.append(*i); > return r; > } > > bool isEmpty() const { return sh->node_count == 0; } > > iterator insert( const Key& key, const T& value, bool overwrite = TRUE ); > void remove( iterator it ) { detach(); sh->remove( it ); } > void remove( const Key& k ); ># 735 "/usr/qt/3/include/qmap.h" >protected: > > > > void detach() { if ( sh->count > 1 ) detachInternal(); } > > Priv* sh; >private: > void detachInternal(); > > friend class QDeepCopy< QMap<Key,T> >; >}; > >template<class Key, class T> > QMap<Key,T>& QMap<Key,T>::operator= ( const QMap<Key,T>& m ) >{ > m.sh->ref(); > if ( sh->deref() ) > delete sh; > sh = m.sh; > return *this; >} > >template<class Key, class T> > typename QMap<Key,T>::insert_pair QMap<Key,T>::insert( const typename QMap<Key,T>::value_type& x ) >{ > detach(); > size_type n = size(); > iterator it = sh->insertSingle( x.first ); > bool inserted = FALSE; > if ( n < size() ) { > inserted = TRUE; > it.data() = x.second; > } > return QPair<iterator,bool>( it, inserted ); >} > >template<class Key, class T> > void QMap<Key,T>::erase( const Key& k ) >{ > detach(); > iterator it( sh->find( k ).node ); > if ( it != end() ) > sh->remove( it ); >} > >template<class Key, class T> > typename QMap<Key,T>::size_type QMap<Key,T>::count( const Key& k ) const >{ > const_iterator it( sh->find( k ).node ); > if ( it != end() ) { > size_type c = 0; > while ( it != end() ) { > ++it; > ++c; > } > return c; > } > return 0; >} > >template<class Key, class T> > T& QMap<Key,T>::operator[] ( const Key& k ) >{ > detach(); > QMapNode<Key,T>* p = sh->find( k ).node; > if ( p != sh->end().node ) > return p->data; > return insert( k, T() ).data(); >} > >template<class Key, class T> > void QMap<Key,T>::clear() >{ > if ( sh->count == 1 ) > sh->clear(); > else { > sh->deref(); > sh = new QMapPrivate<Key,T>; > } >} > >template<class Key, class T> > typename QMap<Key,T>::iterator QMap<Key,T>::insert( const Key& key, const T& value, bool overwrite ) >{ > detach(); > size_type n = size(); > iterator it = sh->insertSingle( key ); > if ( overwrite || n < size() ) > it.data() = value; > return it; >} > >template<class Key, class T> > void QMap<Key,T>::remove( const Key& k ) >{ > detach(); > iterator it( sh->find( k ).node ); > if ( it != end() ) > sh->remove( it ); >} > >template<class Key, class T> > void QMap<Key,T>::detachInternal() >{ > sh->deref(); sh = new QMapPrivate<Key,T>( sh ); >} > > > >template<class Key, class T> > QDataStream& operator>>( QDataStream& s, QMap<Key,T>& m ) { > m.clear(); > Q_UINT32 c; > s >> c; > for( Q_UINT32 i = 0; i < c; ++i ) { > Key k; T t; > s >> k >> t; > m.insert( k, t ); > if ( s.atEnd() ) > break; > } > return s; >} > > >template<class Key, class T> > QDataStream& operator<<( QDataStream& s, const QMap<Key,T>& m ) { > s << (Q_UINT32)m.size(); > QMapConstIterator<Key,T> it = m.begin(); > for( ; it != m.end(); ++it ) > s << it.key() << it.data(); > return s; >} > > > ># 1 "/usr/qt/3/include/qwinexport.h" 1 ># 873 "/usr/qt/3/include/qmap.h" 2 ># 322 "/usr/qt/3/include/qvariant.h" 2 > > >inline QVariant::Type QVariant::type() const >{ > return d->typ; >} > >inline bool QVariant::isValid() const >{ > return (d->typ != Invalid); >} > > >inline QValueListConstIterator<QString> QVariant::stringListBegin() const >{ > if ( d->typ != StringList ) > return QValueListConstIterator<QString>(); > return ((const QStringList*)d->value.ptr)->begin(); >} > >inline QValueListConstIterator<QString> QVariant::stringListEnd() const >{ > if ( d->typ != StringList ) > return QValueListConstIterator<QString>(); > return ((const QStringList*)d->value.ptr)->end(); >} > >inline QValueListConstIterator<QVariant> QVariant::listBegin() const >{ > if ( d->typ != List ) > return QValueListConstIterator<QVariant>(); > return ((const QValueList<QVariant>*)d->value.ptr)->begin(); >} > >inline QValueListConstIterator<QVariant> QVariant::listEnd() const >{ > if ( d->typ != List ) > return QValueListConstIterator<QVariant>(); > return ((const QValueList<QVariant>*)d->value.ptr)->end(); >} > >inline QMapConstIterator<QString,QVariant> QVariant::mapBegin() const >{ > if ( d->typ != Map ) > return QMapConstIterator<QString,QVariant>(); > return ((const QMap<QString,QVariant>*)d->value.ptr)->begin(); >} > >inline QMapConstIterator<QString,QVariant> QVariant::mapEnd() const >{ > if ( d->typ != Map ) > return QMapConstIterator<QString,QVariant>(); > return ((const QMap<QString,QVariant>*)d->value.ptr)->end(); >} > >inline QMapConstIterator<QString,QVariant> QVariant::mapFind( const QString& key ) const >{ > if ( d->typ != Map ) > return QMapConstIterator<QString,QVariant>(); > return ((const QMap<QString,QVariant>*)d->value.ptr)->find( key ); >} > > > > QDataStream& operator>> ( QDataStream& s, QVariant& p ); > QDataStream& operator<< ( QDataStream& s, const QVariant& p ); > QDataStream& operator>> ( QDataStream& s, QVariant::Type& p ); > QDataStream& operator<< ( QDataStream& s, const QVariant::Type p ); ># 14 "drgeo-filter-chooserbase.h" 2 ># 1 "/usr/qt/3/include/qdialog.h" 1 ># 42 "/usr/qt/3/include/qdialog.h" ># 1 "/usr/qt/3/include/qwidget.h" 1 ># 42 "/usr/qt/3/include/qwidget.h" ># 1 "/usr/qt/3/include/qwindowdefs.h" 1 ># 43 "/usr/qt/3/include/qwindowdefs.h" ># 1 "/usr/qt/3/include/qobjectdefs.h" 1 ># 42 "/usr/qt/3/include/qobjectdefs.h" ># 1 "/usr/qt/3/include/qglobal.h" 1 ># 43 "/usr/qt/3/include/qobjectdefs.h" 2 ># 72 "/usr/qt/3/include/qobjectdefs.h" >struct QUObject; ># 152 "/usr/qt/3/include/qobjectdefs.h" >class QObject; >class QMetaObject; >class QSignal; >class QConnection; >class QEvent; >struct QMetaData; >class QConnectionList; >class QConnectionListIt; >class QSignalVec; >class QObjectList; >class QObjectListIt; >class QMemberDict; > > void *qt_find_obj_child( QObject *, const char *, const char * ); > > > > void *qt_inheritedBy( QMetaObject *super, const QObject *cls ); > >template <typename T> > T qt_cast(const QObject *object) >{ return (T)qt_inheritedBy( ((T)0)->staticMetaObject(), object ); } ># 44 "/usr/qt/3/include/qwindowdefs.h" 2 > ># 1 "/usr/qt/3/include/qnamespace.h" 1 ># 42 "/usr/qt/3/include/qnamespace.h" ># 1 "/usr/qt/3/include/qglobal.h" 1 ># 43 "/usr/qt/3/include/qnamespace.h" 2 > > > >class QColor; >class QCursor; > > >class Qt { >public: > static const QColor & color0; > static const QColor & color1; > static const QColor & black; > static const QColor & white; > static const QColor & darkGray; > static const QColor & gray; > static const QColor & lightGray; > static const QColor & red; > static const QColor & green; > static const QColor & blue; > static const QColor & cyan; > static const QColor & magenta; > static const QColor & yellow; > static const QColor & darkRed; > static const QColor & darkGreen; > static const QColor & darkBlue; > static const QColor & darkCyan; > static const QColor & darkMagenta; > static const QColor & darkYellow; > > > enum ButtonState { > NoButton = 0x0000, > LeftButton = 0x0001, > RightButton = 0x0002, > MidButton = 0x0004, > MouseButtonMask = 0x0007, > ShiftButton = 0x0100, > ControlButton = 0x0200, > AltButton = 0x0400, > MetaButton = 0x0800, > KeyButtonMask = 0x0f00, > Keypad = 0x4000 > }; > > > > enum Orientation { > Horizontal = 0, > Vertical > }; > > > enum SortOrder { > Ascending, > Descending > }; > > > > > > > enum AlignmentFlags { > AlignAuto = 0x0000, > AlignLeft = 0x0001, > AlignRight = 0x0002, > AlignHCenter = 0x0004, > AlignJustify = 0x0008, > AlignHorizontal_Mask = AlignLeft | AlignRight | AlignHCenter | AlignJustify, > AlignTop = 0x0010, > AlignBottom = 0x0020, > AlignVCenter = 0x0040, > AlignVertical_Mask = AlignTop | AlignBottom | AlignVCenter, > AlignCenter = AlignVCenter | AlignHCenter > }; > > > enum TextFlags { > SingleLine = 0x0080, > DontClip = 0x0100, > ExpandTabs = 0x0200, > ShowPrefix = 0x0400, > WordBreak = 0x0800, > BreakAnywhere = 0x1000, > > DontPrint = 0x2000, > Underline = 0x01000000, > Overline = 0x02000000, > StrikeOut = 0x04000000, > IncludeTrailingSpaces = 0x08000000, > > NoAccel = 0x4000 > }; > > > typedef uint WState; > > > enum WidgetState { > WState_Created = 0x00000001, > WState_Disabled = 0x00000002, > WState_Visible = 0x00000004, > WState_ForceHide = 0x00000008, > WState_OwnCursor = 0x00000010, > WState_MouseTracking = 0x00000020, > WState_CompressKeys = 0x00000040, > WState_BlockUpdates = 0x00000080, > WState_InPaintEvent = 0x00000100, > WState_Reparented = 0x00000200, > WState_ConfigPending = 0x00000400, > WState_Resized = 0x00000800, > WState_AutoMask = 0x00001000, > WState_Polished = 0x00002000, > WState_DND = 0x00004000, > WState_Reserved0 = 0x00008000, > WState_FullScreen = 0x00010000, > WState_OwnSizePolicy = 0x00020000, > WState_CreatedHidden = 0x00040000, > WState_Maximized = 0x00080000, > WState_Minimized = 0x00100000, > WState_ForceDisabled = 0x00200000, > WState_Exposed = 0x00400000, > WState_HasMouse = 0x00800000 > }; > > > typedef uint WFlags; > > > enum WidgetFlags { > WType_TopLevel = 0x00000001, > WType_Dialog = 0x00000002, > WType_Popup = 0x00000004, > WType_Desktop = 0x00000008, > WType_Mask = 0x0000000f, > > WStyle_Customize = 0x00000010, > WStyle_NormalBorder = 0x00000020, > WStyle_DialogBorder = 0x00000040, > WStyle_NoBorder = 0x00002000, > WStyle_Title = 0x00000080, > WStyle_SysMenu = 0x00000100, > WStyle_Minimize = 0x00000200, > WStyle_Maximize = 0x00000400, > WStyle_MinMax = WStyle_Minimize | WStyle_Maximize, > WStyle_Tool = 0x00000800, > WStyle_StaysOnTop = 0x00001000, > WStyle_ContextHelp = 0x00004000, > WStyle_Reserved = 0x00008000, > WStyle_Mask = 0x0000fff0, > > WDestructiveClose = 0x00010000, > WPaintDesktop = 0x00020000, > WPaintUnclipped = 0x00040000, > WPaintClever = 0x00080000, > WResizeNoErase = 0x00100000, > WMouseNoMask = 0x00200000, > WStaticContents = 0x00400000, > WRepaintNoErase = 0x00800000, > > WX11BypassWM = 0x01000000, > WWinOwnDC = 0x00000000, > WMacNoSheet = 0x00000000, > WMacDrawer = 0x00000000, ># 218 "/usr/qt/3/include/qnamespace.h" > WGroupLeader = 0x02000000, > WShowModal = 0x04000000, > WNoMousePropagation = 0x08000000, > WSubWindow = 0x10000000, > > WStyle_Splash = 0x20000000, > > > > WNoAutoErase = WRepaintNoErase | WResizeNoErase > > > > > > > > }; > > enum WindowState { > WindowNoState = 0x00000000, > WindowMinimized = 0x00000001, > WindowMaximized = 0x00000002, > WindowFullScreen = 0x00000004, > WindowActive = 0x00000008 > }; > > > > > > > enum ImageConversionFlags { > ColorMode_Mask = 0x00000003, > AutoColor = 0x00000000, > ColorOnly = 0x00000003, > MonoOnly = 0x00000002, > > > AlphaDither_Mask = 0x0000000c, > ThresholdAlphaDither = 0x00000000, > OrderedAlphaDither = 0x00000004, > DiffuseAlphaDither = 0x00000008, > NoAlpha = 0x0000000c, > > Dither_Mask = 0x00000030, > DiffuseDither = 0x00000000, > OrderedDither = 0x00000010, > ThresholdDither = 0x00000020, > > > DitherMode_Mask = 0x000000c0, > AutoDither = 0x00000000, > PreferDither = 0x00000040, > AvoidDither = 0x00000080 > }; > > > enum BGMode { > TransparentMode, > OpaqueMode > }; ># 295 "/usr/qt/3/include/qnamespace.h" > enum GUIStyle { > WindowsStyle = 1, > MotifStyle = 4 > }; ># 310 "/usr/qt/3/include/qnamespace.h" > enum SequenceMatch { > NoMatch, > PartialMatch, > Identical > }; > > > enum Modifier { > META = 0x00100000, > SHIFT = 0x00200000, > CTRL = 0x00400000, > ALT = 0x00800000, > MODIFIER_MASK = 0x00f00000, > UNICODE_ACCEL = 0x10000000, > > ASCII_ACCEL = UNICODE_ACCEL > }; > > > enum Key { > Key_Escape = 0x1000, > Key_Tab = 0x1001, > Key_Backtab = 0x1002, Key_BackTab = Key_Backtab, > Key_Backspace = 0x1003, Key_BackSpace = Key_Backspace, > Key_Return = 0x1004, > Key_Enter = 0x1005, > Key_Insert = 0x1006, > Key_Delete = 0x1007, > Key_Pause = 0x1008, > Key_Print = 0x1009, > Key_SysReq = 0x100a, > Key_Clear = 0x100b, > Key_Home = 0x1010, > Key_End = 0x1011, > Key_Left = 0x1012, > Key_Up = 0x1013, > Key_Right = 0x1014, > Key_Down = 0x1015, > Key_Prior = 0x1016, Key_PageUp = Key_Prior, > Key_Next = 0x1017, Key_PageDown = Key_Next, > Key_Shift = 0x1020, > Key_Control = 0x1021, > Key_Meta = 0x1022, > Key_Alt = 0x1023, > Key_CapsLock = 0x1024, > Key_NumLock = 0x1025, > Key_ScrollLock = 0x1026, > Key_F1 = 0x1030, > Key_F2 = 0x1031, > Key_F3 = 0x1032, > Key_F4 = 0x1033, > Key_F5 = 0x1034, > Key_F6 = 0x1035, > Key_F7 = 0x1036, > Key_F8 = 0x1037, > Key_F9 = 0x1038, > Key_F10 = 0x1039, > Key_F11 = 0x103a, > Key_F12 = 0x103b, > Key_F13 = 0x103c, > Key_F14 = 0x103d, > Key_F15 = 0x103e, > Key_F16 = 0x103f, > Key_F17 = 0x1040, > Key_F18 = 0x1041, > Key_F19 = 0x1042, > Key_F20 = 0x1043, > Key_F21 = 0x1044, > Key_F22 = 0x1045, > Key_F23 = 0x1046, > Key_F24 = 0x1047, > Key_F25 = 0x1048, > Key_F26 = 0x1049, > Key_F27 = 0x104a, > Key_F28 = 0x104b, > Key_F29 = 0x104c, > Key_F30 = 0x104d, > Key_F31 = 0x104e, > Key_F32 = 0x104f, > Key_F33 = 0x1050, > Key_F34 = 0x1051, > Key_F35 = 0x1052, > Key_Super_L = 0x1053, > Key_Super_R = 0x1054, > Key_Menu = 0x1055, > Key_Hyper_L = 0x1056, > Key_Hyper_R = 0x1057, > Key_Help = 0x1058, > Key_Direction_L = 0x1059, > Key_Direction_R = 0x1060, > Key_Space = 0x20, > Key_Any = Key_Space, > Key_Exclam = 0x21, > Key_QuoteDbl = 0x22, > Key_NumberSign = 0x23, > Key_Dollar = 0x24, > Key_Percent = 0x25, > Key_Ampersand = 0x26, > Key_Apostrophe = 0x27, > Key_ParenLeft = 0x28, > Key_ParenRight = 0x29, > Key_Asterisk = 0x2a, > Key_Plus = 0x2b, > Key_Comma = 0x2c, > Key_Minus = 0x2d, > Key_Period = 0x2e, > Key_Slash = 0x2f, > Key_0 = 0x30, > Key_1 = 0x31, > Key_2 = 0x32, > Key_3 = 0x33, > Key_4 = 0x34, > Key_5 = 0x35, > Key_6 = 0x36, > Key_7 = 0x37, > Key_8 = 0x38, > Key_9 = 0x39, > Key_Colon = 0x3a, > Key_Semicolon = 0x3b, > Key_Less = 0x3c, > Key_Equal = 0x3d, > Key_Greater = 0x3e, > Key_Question = 0x3f, > Key_At = 0x40, > Key_A = 0x41, > Key_B = 0x42, > Key_C = 0x43, > Key_D = 0x44, > Key_E = 0x45, > Key_F = 0x46, > Key_G = 0x47, > Key_H = 0x48, > Key_I = 0x49, > Key_J = 0x4a, > Key_K = 0x4b, > Key_L = 0x4c, > Key_M = 0x4d, > Key_N = 0x4e, > Key_O = 0x4f, > Key_P = 0x50, > Key_Q = 0x51, > Key_R = 0x52, > Key_S = 0x53, > Key_T = 0x54, > Key_U = 0x55, > Key_V = 0x56, > Key_W = 0x57, > Key_X = 0x58, > Key_Y = 0x59, > Key_Z = 0x5a, > Key_BracketLeft = 0x5b, > Key_Backslash = 0x5c, > Key_BracketRight = 0x5d, > Key_AsciiCircum = 0x5e, > Key_Underscore = 0x5f, > Key_QuoteLeft = 0x60, > Key_BraceLeft = 0x7b, > Key_Bar = 0x7c, > Key_BraceRight = 0x7d, > Key_AsciiTilde = 0x7e, > > > > Key_nobreakspace = 0x0a0, > Key_exclamdown = 0x0a1, > Key_cent = 0x0a2, > Key_sterling = 0x0a3, > Key_currency = 0x0a4, > Key_yen = 0x0a5, > Key_brokenbar = 0x0a6, > Key_section = 0x0a7, > Key_diaeresis = 0x0a8, > Key_copyright = 0x0a9, > Key_ordfeminine = 0x0aa, > Key_guillemotleft = 0x0ab, > Key_notsign = 0x0ac, > Key_hyphen = 0x0ad, > Key_registered = 0x0ae, > Key_macron = 0x0af, > Key_degree = 0x0b0, > Key_plusminus = 0x0b1, > Key_twosuperior = 0x0b2, > Key_threesuperior = 0x0b3, > Key_acute = 0x0b4, > Key_mu = 0x0b5, > Key_paragraph = 0x0b6, > Key_periodcentered = 0x0b7, > Key_cedilla = 0x0b8, > Key_onesuperior = 0x0b9, > Key_masculine = 0x0ba, > Key_guillemotright = 0x0bb, > Key_onequarter = 0x0bc, > Key_onehalf = 0x0bd, > Key_threequarters = 0x0be, > Key_questiondown = 0x0bf, > Key_Agrave = 0x0c0, > Key_Aacute = 0x0c1, > Key_Acircumflex = 0x0c2, > Key_Atilde = 0x0c3, > Key_Adiaeresis = 0x0c4, > Key_Aring = 0x0c5, > Key_AE = 0x0c6, > Key_Ccedilla = 0x0c7, > Key_Egrave = 0x0c8, > Key_Eacute = 0x0c9, > Key_Ecircumflex = 0x0ca, > Key_Ediaeresis = 0x0cb, > Key_Igrave = 0x0cc, > Key_Iacute = 0x0cd, > Key_Icircumflex = 0x0ce, > Key_Idiaeresis = 0x0cf, > Key_ETH = 0x0d0, > Key_Ntilde = 0x0d1, > Key_Ograve = 0x0d2, > Key_Oacute = 0x0d3, > Key_Ocircumflex = 0x0d4, > Key_Otilde = 0x0d5, > Key_Odiaeresis = 0x0d6, > Key_multiply = 0x0d7, > Key_Ooblique = 0x0d8, > Key_Ugrave = 0x0d9, > Key_Uacute = 0x0da, > Key_Ucircumflex = 0x0db, > Key_Udiaeresis = 0x0dc, > Key_Yacute = 0x0dd, > Key_THORN = 0x0de, > Key_ssharp = 0x0df, > Key_agrave = 0x0e0, > Key_aacute = 0x0e1, > Key_acircumflex = 0x0e2, > Key_atilde = 0x0e3, > Key_adiaeresis = 0x0e4, > Key_aring = 0x0e5, > Key_ae = 0x0e6, > Key_ccedilla = 0x0e7, > Key_egrave = 0x0e8, > Key_eacute = 0x0e9, > Key_ecircumflex = 0x0ea, > Key_ediaeresis = 0x0eb, > Key_igrave = 0x0ec, > Key_iacute = 0x0ed, > Key_icircumflex = 0x0ee, > Key_idiaeresis = 0x0ef, > Key_eth = 0x0f0, > Key_ntilde = 0x0f1, > Key_ograve = 0x0f2, > Key_oacute = 0x0f3, > Key_ocircumflex = 0x0f4, > Key_otilde = 0x0f5, > Key_odiaeresis = 0x0f6, > Key_division = 0x0f7, > Key_oslash = 0x0f8, > Key_ugrave = 0x0f9, > Key_uacute = 0x0fa, > Key_ucircumflex = 0x0fb, > Key_udiaeresis = 0x0fc, > Key_yacute = 0x0fd, > Key_thorn = 0x0fe, > Key_ydiaeresis = 0x0ff, > > > > Key_Back = 0x1061, > Key_Forward = 0x1062, > Key_Stop = 0x1063, > Key_Refresh = 0x1064, > > Key_VolumeDown = 0x1070, > Key_VolumeMute = 0x1071, > Key_VolumeUp = 0x1072, > Key_BassBoost = 0x1073, > Key_BassUp = 0x1074, > Key_BassDown = 0x1075, > Key_TrebleUp = 0x1076, > Key_TrebleDown = 0x1077, > > Key_MediaPlay = 0x1080, > Key_MediaStop = 0x1081, > Key_MediaPrev = 0x1082, > Key_MediaNext = 0x1083, > Key_MediaRecord = 0x1084, > > Key_HomePage = 0x1090, > Key_Favorites = 0x1091, > Key_Search = 0x1092, > Key_Standby = 0x1093, > Key_OpenUrl = 0x1094, > > Key_LaunchMail = 0x10a0, > Key_LaunchMedia = 0x10a1, > Key_Launch0 = 0x10a2, > Key_Launch1 = 0x10a3, > Key_Launch2 = 0x10a4, > Key_Launch3 = 0x10a5, > Key_Launch4 = 0x10a6, > Key_Launch5 = 0x10a7, > Key_Launch6 = 0x10a8, > Key_Launch7 = 0x10a9, > Key_Launch8 = 0x10aa, > Key_Launch9 = 0x10ab, > Key_LaunchA = 0x10ac, > Key_LaunchB = 0x10ad, > Key_LaunchC = 0x10ae, > Key_LaunchD = 0x10af, > Key_LaunchE = 0x10b0, > Key_LaunchF = 0x10b1, > > Key_MediaLast = 0x1fff, > > Key_unknown = 0xffff > }; > > > enum ArrowType { > UpArrow, > DownArrow, > LeftArrow, > RightArrow > }; > > > enum RasterOp { > CopyROP, > OrROP, > XorROP, > NotAndROP, EraseROP=NotAndROP, > NotCopyROP, > NotOrROP, > NotXorROP, > AndROP, NotEraseROP=AndROP, > NotROP, > ClearROP, > SetROP, > NopROP, > AndNotROP, > OrNotROP, > NandROP, > NorROP, LastROP=NorROP > }; > > > enum PenStyle { > NoPen, > SolidLine, > DashLine, > DotLine, > DashDotLine, > DashDotDotLine, > MPenStyle = 0x0f > }; > > > enum PenCapStyle { > FlatCap = 0x00, > SquareCap = 0x10, > RoundCap = 0x20, > MPenCapStyle = 0x30 > }; > > > enum PenJoinStyle { > MiterJoin = 0x00, > BevelJoin = 0x40, > RoundJoin = 0x80, > MPenJoinStyle = 0xc0 > }; > > > enum BrushStyle { > NoBrush, > SolidPattern, > Dense1Pattern, > Dense2Pattern, > Dense3Pattern, > Dense4Pattern, > Dense5Pattern, > Dense6Pattern, > Dense7Pattern, > HorPattern, > VerPattern, > CrossPattern, > BDiagPattern, > FDiagPattern, > DiagCrossPattern, > CustomPattern=24 > }; > > > enum MacintoshVersion { > > MV_Unknown = 0x0000, > > > MV_9 = 0x0001, > MV_10_DOT_0 = 0x0002, > MV_10_DOT_1 = 0x0003, > MV_10_DOT_2 = 0x0004, > MV_10_DOT_3 = 0x0005, > > > MV_CHEETAH = MV_10_DOT_0, > MV_PUMA = MV_10_DOT_1, > MV_JAGUAR = MV_10_DOT_2, > MV_PANTHER = MV_10_DOT_3 > }; > > > enum WindowsVersion { > WV_32s = 0x0001, > WV_95 = 0x0002, > WV_98 = 0x0003, > WV_Me = 0x0004, > WV_DOS_based = 0x000f, > > WV_NT = 0x0010, > WV_2000 = 0x0020, > WV_XP = 0x0030, > WV_2003 = 0x0040, > WV_NT_based = 0x00f0, > > WV_CE = 0x0100, > WV_CENET = 0x0200, > WV_CE_based = 0x0f00 > }; > > > enum UIEffect { > UI_General, > UI_AnimateMenu, > UI_FadeMenu, > UI_AnimateCombo, > UI_AnimateTooltip, > UI_FadeTooltip, > UI_AnimateToolBox > }; > > > enum CursorShape { > ArrowCursor, > UpArrowCursor, > CrossCursor, > WaitCursor, > IbeamCursor, > SizeVerCursor, > SizeHorCursor, > SizeBDiagCursor, > SizeFDiagCursor, > SizeAllCursor, > BlankCursor, > SplitVCursor, > SplitHCursor, > PointingHandCursor, > ForbiddenCursor, > WhatsThisCursor, > BusyCursor, > LastCursor = BusyCursor, > BitmapCursor = 24 > }; > > > > static const QCursor & arrowCursor; > static const QCursor & upArrowCursor; > static const QCursor & crossCursor; > static const QCursor & waitCursor; > static const QCursor & ibeamCursor; > static const QCursor & sizeVerCursor; > static const QCursor & sizeHorCursor; > static const QCursor & sizeBDiagCursor; > static const QCursor & sizeFDiagCursor; > static const QCursor & sizeAllCursor; > static const QCursor & blankCursor; > static const QCursor & splitVCursor; > > static const QCursor & splitHCursor; > > static const QCursor & pointingHandCursor; > static const QCursor & forbiddenCursor; > static const QCursor & whatsThisCursor; > static const QCursor & busyCursor; > > > enum TextFormat { > PlainText, > RichText, > AutoText, > LogText > }; > > > enum AnchorAttribute { > AnchorName, > AnchorHref > }; > > > enum Dock { > DockUnmanaged, > DockTornOff, > DockTop, > DockBottom, > DockRight, > DockLeft, > DockMinimized ># 824 "/usr/qt/3/include/qnamespace.h" > }; > > typedef Dock ToolBarDock; > > > enum DateFormat { > TextDate, > ISODate, > LocalDate > }; > > > enum TimeSpec { > LocalTime, > UTC > }; > > > enum BackgroundMode { > FixedColor, > FixedPixmap, > NoBackground, > PaletteForeground, > PaletteButton, > PaletteLight, > PaletteMidlight, > PaletteDark, > PaletteMid, > PaletteText, > PaletteBrightText, > PaletteBase, > PaletteBackground, > PaletteShadow, > PaletteHighlight, > PaletteHighlightedText, > PaletteButtonText, > PaletteLink, > PaletteLinkVisited, > X11ParentRelative > }; > > typedef uint ComparisonFlags; > > > enum StringComparisonMode { > CaseSensitive = 0x00001, > BeginsWith = 0x00002, > EndsWith = 0x00004, > Contains = 0x00008, > ExactMatch = 0x00010 > }; > > > enum Corner { > TopLeft = 0x00000, > TopRight = 0x00001, > BottomLeft = 0x00002, > BottomRight = 0x00003 > }; ># 891 "/usr/qt/3/include/qnamespace.h" > typedef unsigned long HANDLE; > > > >}; > > >class QInternal { >public: > enum PaintDeviceFlags { > UndefinedDevice = 0x00, > Widget = 0x01, > Pixmap = 0x02, > Printer = 0x03, > Picture = 0x04, > System = 0x05, > DeviceTypeMask = 0x0f, > ExternalDevice = 0x10, > > CompatibilityMode = 0x20 > }; >}; ># 46 "/usr/qt/3/include/qwindowdefs.h" 2 > > > > >class QPaintDevice; >class QPaintDeviceMetrics; >class QWidget; >class QWidgetMapper; >class QDialog; >class QColor; >class QColorGroup; >class QPalette; >class QCursor; >class QPoint; >class QSize; >class QRect; >class QPointArray; >class QPainter; >class QRegion; >class QFont; >class QFontMetrics; >class QFontInfo; >class QPen; >class QBrush; >class QWMatrix; >class QPixmap; >class QBitmap; >class QMovie; >class QImage; >class QImageIO; >class QPicture; >class QPrinter; >class QAccel; >class QTimer; >class QTime; >class QClipboard; > > > > >class QWidgetList; >class QWidgetListIt; ># 141 "/usr/qt/3/include/qwindowdefs.h" >typedef struct _XDisplay Display; >typedef union _XEvent XEvent; >typedef struct _XGC *GC; >typedef struct _XRegion *Region; >typedef unsigned long WId; > > Display *qt_xdisplay(); > int qt_xscreen(); > WId qt_xrootwin(); > WId qt_xrootwin( int scrn ); > GC qt_xget_readonly_gc( int scrn, bool monochrome ); > GC qt_xget_temp_gc( int scrn, bool monochrome ); > > const char *qAppClass(); ># 166 "/usr/qt/3/include/qwindowdefs.h" >class QApplication; > > > > > > > >typedef Q_INT32 QCOORD; >const QCOORD QCOORD_MAX = 2147483647; >const QCOORD QCOORD_MIN = -QCOORD_MAX - 1; > >typedef unsigned int QRgb; > > const char *qAppName(); > > > >typedef void (*QtCleanUpFunction)(); > void qAddPostRoutine( QtCleanUpFunction ); > void qRemovePostRoutine( QtCleanUpFunction ); ># 43 "/usr/qt/3/include/qwidget.h" 2 ># 1 "/usr/qt/3/include/qobject.h" 1 ># 45 "/usr/qt/3/include/qobject.h" ># 1 "/usr/qt/3/include/qevent.h" 1 ># 43 "/usr/qt/3/include/qevent.h" ># 1 "/usr/qt/3/include/qregion.h" 1 ># 43 "/usr/qt/3/include/qregion.h" ># 1 "/usr/qt/3/include/qrect.h" 1 ># 42 "/usr/qt/3/include/qrect.h" ># 1 "/usr/qt/3/include/qsize.h" 1 ># 42 "/usr/qt/3/include/qsize.h" ># 1 "/usr/qt/3/include/qpoint.h" 1 ># 46 "/usr/qt/3/include/qpoint.h" >class QPoint >{ >public: > QPoint(); > QPoint( int xpos, int ypos ); > > bool isNull() const; > > int x() const; > int y() const; > void setX( int x ); > void setY( int y ); > > int manhattanLength() const; > > QCOORD &rx(); > QCOORD &ry(); > > QPoint &operator+=( const QPoint &p ); > QPoint &operator-=( const QPoint &p ); > QPoint &operator*=( int c ); > QPoint &operator*=( double c ); > QPoint &operator/=( int c ); > QPoint &operator/=( double c ); > > friend inline bool operator==( const QPoint &, const QPoint & ); > friend inline bool operator!=( const QPoint &, const QPoint & ); > friend inline const QPoint operator+( const QPoint &, const QPoint & ); > friend inline const QPoint operator-( const QPoint &, const QPoint & ); > friend inline const QPoint operator*( const QPoint &, int ); > friend inline const QPoint operator*( int, const QPoint & ); > friend inline const QPoint operator*( const QPoint &, double ); > friend inline const QPoint operator*( double, const QPoint & ); > friend inline const QPoint operator-( const QPoint & ); > friend inline const QPoint operator/( const QPoint &, int ); > friend inline const QPoint operator/( const QPoint &, double ); > >private: > static void warningDivByZero(); > > > > > > QCOORD xp; > QCOORD yp; > >}; > > > > > > > QDataStream &operator<<( QDataStream &, const QPoint & ); > QDataStream &operator>>( QDataStream &, QPoint & ); > > > > > > >inline QPoint::QPoint() >{ xp=0; yp=0; } > >inline QPoint::QPoint( int xpos, int ypos ) >{ xp=(QCOORD)xpos; yp=(QCOORD)ypos; } > >inline bool QPoint::isNull() const >{ return xp == 0 && yp == 0; } > >inline int QPoint::x() const >{ return xp; } > >inline int QPoint::y() const >{ return yp; } > >inline void QPoint::setX( int x ) >{ xp = (QCOORD)x; } > >inline void QPoint::setY( int y ) >{ yp = (QCOORD)y; } > >inline QCOORD &QPoint::rx() >{ return xp; } > >inline QCOORD &QPoint::ry() >{ return yp; } > >inline QPoint &QPoint::operator+=( const QPoint &p ) >{ xp+=p.xp; yp+=p.yp; return *this; } > >inline QPoint &QPoint::operator-=( const QPoint &p ) >{ xp-=p.xp; yp-=p.yp; return *this; } > >inline QPoint &QPoint::operator*=( int c ) >{ xp*=(QCOORD)c; yp*=(QCOORD)c; return *this; } > >inline QPoint &QPoint::operator*=( double c ) >{ xp=(QCOORD)(xp*c); yp=(QCOORD)(yp*c); return *this; } > >inline bool operator==( const QPoint &p1, const QPoint &p2 ) >{ return p1.xp == p2.xp && p1.yp == p2.yp; } > >inline bool operator!=( const QPoint &p1, const QPoint &p2 ) >{ return p1.xp != p2.xp || p1.yp != p2.yp; } > >inline const QPoint operator+( const QPoint &p1, const QPoint &p2 ) >{ return QPoint(p1.xp+p2.xp, p1.yp+p2.yp); } > >inline const QPoint operator-( const QPoint &p1, const QPoint &p2 ) >{ return QPoint(p1.xp-p2.xp, p1.yp-p2.yp); } > >inline const QPoint operator*( const QPoint &p, int c ) >{ return QPoint(p.xp*c, p.yp*c); } > >inline const QPoint operator*( int c, const QPoint &p ) >{ return QPoint(p.xp*c, p.yp*c); } > >inline const QPoint operator*( const QPoint &p, double c ) >{ return QPoint((QCOORD)(p.xp*c), (QCOORD)(p.yp*c)); } > >inline const QPoint operator*( double c, const QPoint &p ) >{ return QPoint((QCOORD)(p.xp*c), (QCOORD)(p.yp*c)); } > >inline const QPoint operator-( const QPoint &p ) >{ return QPoint(-p.xp, -p.yp); } > >inline QPoint &QPoint::operator/=( int c ) >{ > > if ( c == 0 ) > warningDivByZero(); > > xp/=(QCOORD)c; > yp/=(QCOORD)c; > return *this; >} > >inline QPoint &QPoint::operator/=( double c ) >{ > > if ( c == 0.0 ) > warningDivByZero(); > > xp=(QCOORD)(xp/c); > yp=(QCOORD)(yp/c); > return *this; >} > >inline const QPoint operator/( const QPoint &p, int c ) >{ > > if ( c == 0 ) > QPoint::warningDivByZero(); > > return QPoint(p.xp/c, p.yp/c); >} > >inline const QPoint operator/( const QPoint &p, double c ) >{ > > if ( c == 0.0 ) > QPoint::warningDivByZero(); > > return QPoint((QCOORD)(p.xp/c), (QCOORD)(p.yp/c)); >} > > ># 1 "/usr/qt/3/include/qwinexport.h" 1 ># 216 "/usr/qt/3/include/qpoint.h" 2 ># 43 "/usr/qt/3/include/qsize.h" 2 > > >class QSize > >{ >public: > > enum ScaleMode { > ScaleFree, > ScaleMin, > ScaleMax > }; > > QSize(); > QSize( int w, int h ); > > bool isNull() const; > bool isEmpty() const; > bool isValid() const; > > int width() const; > int height() const; > void setWidth( int w ); > void setHeight( int h ); > void transpose(); > > void scale( int w, int h, ScaleMode mode ); > void scale( const QSize &s, ScaleMode mode ); > > QSize expandedTo( const QSize & ) const; > QSize boundedTo( const QSize & ) const; > > QCOORD &rwidth(); > QCOORD &rheight(); > > QSize &operator+=( const QSize & ); > QSize &operator-=( const QSize & ); > QSize &operator*=( int c ); > QSize &operator*=( double c ); > QSize &operator/=( int c ); > QSize &operator/=( double c ); > > friend inline bool operator==( const QSize &, const QSize & ); > friend inline bool operator!=( const QSize &, const QSize & ); > friend inline const QSize operator+( const QSize &, const QSize & ); > friend inline const QSize operator-( const QSize &, const QSize & ); > friend inline const QSize operator*( const QSize &, int ); > friend inline const QSize operator*( int, const QSize & ); > friend inline const QSize operator*( const QSize &, double ); > friend inline const QSize operator*( double, const QSize & ); > friend inline const QSize operator/( const QSize &, int ); > friend inline const QSize operator/( const QSize &, double ); > >private: > static void warningDivByZero(); > > QCOORD wd; > QCOORD ht; >}; > > > > > > > QDataStream &operator<<( QDataStream &, const QSize & ); > QDataStream &operator>>( QDataStream &, QSize & ); > > > > > > >inline QSize::QSize() >{ wd = ht = -1; } > >inline QSize::QSize( int w, int h ) >{ wd=(QCOORD)w; ht=(QCOORD)h; } > >inline bool QSize::isNull() const >{ return wd==0 && ht==0; } > >inline bool QSize::isEmpty() const >{ return wd<1 || ht<1; } > >inline bool QSize::isValid() const >{ return wd>=0 && ht>=0; } > >inline int QSize::width() const >{ return wd; } > >inline int QSize::height() const >{ return ht; } > >inline void QSize::setWidth( int w ) >{ wd=(QCOORD)w; } > >inline void QSize::setHeight( int h ) >{ ht=(QCOORD)h; } > >inline QCOORD &QSize::rwidth() >{ return wd; } > >inline QCOORD &QSize::rheight() >{ return ht; } > >inline QSize &QSize::operator+=( const QSize &s ) >{ wd+=s.wd; ht+=s.ht; return *this; } > >inline QSize &QSize::operator-=( const QSize &s ) >{ wd-=s.wd; ht-=s.ht; return *this; } > >inline QSize &QSize::operator*=( int c ) >{ wd*=(QCOORD)c; ht*=(QCOORD)c; return *this; } > >inline QSize &QSize::operator*=( double c ) >{ wd=(QCOORD)(wd*c); ht=(QCOORD)(ht*c); return *this; } > >inline bool operator==( const QSize &s1, const QSize &s2 ) >{ return s1.wd == s2.wd && s1.ht == s2.ht; } > >inline bool operator!=( const QSize &s1, const QSize &s2 ) >{ return s1.wd != s2.wd || s1.ht != s2.ht; } > >inline const QSize operator+( const QSize & s1, const QSize & s2 ) >{ return QSize(s1.wd+s2.wd, s1.ht+s2.ht); } > >inline const QSize operator-( const QSize &s1, const QSize &s2 ) >{ return QSize(s1.wd-s2.wd, s1.ht-s2.ht); } > >inline const QSize operator*( const QSize &s, int c ) >{ return QSize(s.wd*c, s.ht*c); } > >inline const QSize operator*( int c, const QSize &s ) >{ return QSize(s.wd*c, s.ht*c); } > >inline const QSize operator*( const QSize &s, double c ) >{ return QSize((QCOORD)(s.wd*c), (QCOORD)(s.ht*c)); } > >inline const QSize operator*( double c, const QSize &s ) >{ return QSize((QCOORD)(s.wd*c), (QCOORD)(s.ht*c)); } > >inline QSize &QSize::operator/=( int c ) >{ > > if ( c == 0 ) > warningDivByZero(); > > wd/=(QCOORD)c; ht/=(QCOORD)c; > return *this; >} > >inline QSize &QSize::operator/=( double c ) >{ > > if ( c == 0.0 ) > warningDivByZero(); > > wd=(QCOORD)(wd/c); ht=(QCOORD)(ht/c); > return *this; >} > >inline const QSize operator/( const QSize &s, int c ) >{ > > if ( c == 0 ) > QSize::warningDivByZero(); > > return QSize(s.wd/c, s.ht/c); >} > >inline const QSize operator/( const QSize &s, double c ) >{ > > if ( c == 0.0 ) > QSize::warningDivByZero(); > > return QSize((QCOORD)(s.wd/c), (QCOORD)(s.ht/c)); >} > >inline QSize QSize::expandedTo( const QSize & otherSize ) const >{ > return QSize( ((otherSize.wd) < (wd) ? (wd) : (otherSize.wd)), ((otherSize.ht) < (ht) ? (ht) : (otherSize.ht)) ); >} > >inline QSize QSize::boundedTo( const QSize & otherSize ) const >{ > return QSize( ((wd) < (otherSize.wd) ? (wd) : (otherSize.wd)), ((ht) < (otherSize.ht) ? (ht) : (otherSize.ht)) ); >} ># 43 "/usr/qt/3/include/qrect.h" 2 > > > > > > > >class QRect >{ >public: > QRect() { x1 = y1 = 0; x2 = y2 = -1; } > QRect( const QPoint &topleft, const QPoint &bottomright ); > QRect( const QPoint &topleft, const QSize &size ); > QRect( int left, int top, int width, int height ); > > bool isNull() const; > bool isEmpty() const; > bool isValid() const; > QRect normalize() const; > > int left() const; > int top() const; > int right() const; > int bottom() const; > > QCOORD &rLeft(); > QCOORD &rTop(); > QCOORD &rRight(); > QCOORD &rBottom(); > > int x() const; > int y() const; > void setLeft( int pos ); > void setTop( int pos ); > void setRight( int pos ); > void setBottom( int pos ); > void setX( int x ); > void setY( int y ); > > void setTopLeft( const QPoint &p ); > void setBottomRight( const QPoint &p ); > void setTopRight( const QPoint &p ); > void setBottomLeft( const QPoint &p ); > > QPoint topLeft() const; > QPoint bottomRight() const; > QPoint topRight() const; > QPoint bottomLeft() const; > QPoint center() const; > > void rect( int *x, int *y, int *w, int *h ) const; > void coords( int *x1, int *y1, int *x2, int *y2 ) const; > > void moveLeft( int pos ); > void moveTop( int pos ); > void moveRight( int pos ); > void moveBottom( int pos ); > void moveTopLeft( const QPoint &p ); > void moveBottomRight( const QPoint &p ); > void moveTopRight( const QPoint &p ); > void moveBottomLeft( const QPoint &p ); > void moveCenter( const QPoint &p ); > void moveBy( int dx, int dy ); > > void setRect( int x, int y, int w, int h ); > void setCoords( int x1, int y1, int x2, int y2 ); > void addCoords( int x1, int y1, int x2, int y2 ); > > QSize size() const; > int width() const; > int height() const; > void setWidth( int w ); > void setHeight( int h ); > void setSize( const QSize &s ); > > QRect operator|(const QRect &r) const; > QRect operator&(const QRect &r) const; > QRect& operator|=(const QRect &r); > QRect& operator&=(const QRect &r); > > bool contains( const QPoint &p, bool proper=FALSE ) const; > bool contains( int x, int y ) const; > bool contains( int x, int y, bool proper ) const; > bool contains( const QRect &r, bool proper=FALSE ) const; > QRect unite( const QRect &r ) const; > QRect intersect( const QRect &r ) const; > bool intersects( const QRect &r ) const; > > friend bool operator==( const QRect &, const QRect & ); > friend bool operator!=( const QRect &, const QRect & ); > >private: > > friend void qt_setCoords( QRect *r, int xp1, int yp1, int xp2, int yp2 ); > > > > > > > > QCOORD x1; > QCOORD y1; > QCOORD x2; > QCOORD y2; > >}; > > bool operator==( const QRect &, const QRect & ); > bool operator!=( const QRect &, const QRect & ); > > > > > > > QDataStream &operator<<( QDataStream &, const QRect & ); > QDataStream &operator>>( QDataStream &, QRect & ); > > > > > > >inline QRect::QRect( int left, int top, int width, int height ) >{ > x1 = (QCOORD)left; > y1 = (QCOORD)top; > x2 = (QCOORD)(left+width-1); > y2 = (QCOORD)(top+height-1); >} > >inline bool QRect::isNull() const >{ return x2 == x1-1 && y2 == y1-1; } > >inline bool QRect::isEmpty() const >{ return x1 > x2 || y1 > y2; } > >inline bool QRect::isValid() const >{ return x1 <= x2 && y1 <= y2; } > >inline int QRect::left() const >{ return x1; } > >inline int QRect::top() const >{ return y1; } > >inline int QRect::right() const >{ return x2; } > >inline int QRect::bottom() const >{ return y2; } > >inline QCOORD &QRect::rLeft() >{ return x1; } > >inline QCOORD & QRect::rTop() >{ return y1; } > >inline QCOORD & QRect::rRight() >{ return x2; } > >inline QCOORD & QRect::rBottom() >{ return y2; } > >inline int QRect::x() const >{ return x1; } > >inline int QRect::y() const >{ return y1; } > >inline void QRect::setLeft( int pos ) >{ x1 = (QCOORD)pos; } > >inline void QRect::setTop( int pos ) >{ y1 = (QCOORD)pos; } > >inline void QRect::setRight( int pos ) >{ x2 = (QCOORD)pos; } > >inline void QRect::setBottom( int pos ) >{ y2 = (QCOORD)pos; } > >inline void QRect::setX( int x ) >{ x1 = (QCOORD)x; } > >inline void QRect::setY( int y ) >{ y1 = (QCOORD)y; } > >inline QPoint QRect::topLeft() const >{ return QPoint(x1, y1); } > >inline QPoint QRect::bottomRight() const >{ return QPoint(x2, y2); } > >inline QPoint QRect::topRight() const >{ return QPoint(x2, y1); } > >inline QPoint QRect::bottomLeft() const >{ return QPoint(x1, y2); } > >inline QPoint QRect::center() const >{ return QPoint((x1+x2)/2, (y1+y2)/2); } > >inline int QRect::width() const >{ return x2 - x1 + 1; } > >inline int QRect::height() const >{ return y2 - y1 + 1; } > >inline QSize QRect::size() const >{ return QSize(x2-x1+1, y2-y1+1); } > >inline bool QRect::contains( int x, int y, bool proper ) const >{ > if ( proper ) > return x > x1 && x < x2 && > y > y1 && y < y2; > else > return x >= x1 && x <= x2 && > y >= y1 && y <= y2; >} > >inline bool QRect::contains( int x, int y ) const >{ > return x >= x1 && x <= x2 && > y >= y1 && y <= y2; >} > ># 1 "/usr/qt/3/include/qwinexport.h" 1 ># 273 "/usr/qt/3/include/qrect.h" 2 ># 44 "/usr/qt/3/include/qregion.h" 2 > > > >struct QRegionPrivate; > > >class QRegion >{ >public: > enum RegionType { Rectangle, Ellipse }; > > QRegion(); > QRegion( int x, int y, int w, int h, RegionType = Rectangle ); > QRegion( const QRect &, RegionType = Rectangle ); > QRegion( const QPointArray &, bool winding=FALSE ); > QRegion( const QRegion & ); > QRegion( const QBitmap & ); > ~QRegion(); > QRegion &operator=( const QRegion & ); > > bool isNull() const; > bool isEmpty() const; > > bool contains( const QPoint &p ) const; > bool contains( const QRect &r ) const; > > void translate( int dx, int dy ); > > QRegion unite( const QRegion & ) const; > QRegion intersect( const QRegion &) const; > QRegion subtract( const QRegion & ) const; > QRegion eor( const QRegion & ) const; > > QRect boundingRect() const; > QMemArray<QRect> rects() const; > void setRects( const QRect *, int ); > > const QRegion operator|( const QRegion & ) const; > const QRegion operator+( const QRegion & ) const; > const QRegion operator&( const QRegion & ) const; > const QRegion operator-( const QRegion & ) const; > const QRegion operator^( const QRegion & ) const; > QRegion& operator|=( const QRegion & ); > QRegion& operator+=( const QRegion & ); > QRegion& operator&=( const QRegion & ); > QRegion& operator-=( const QRegion & ); > QRegion& operator^=( const QRegion & ); > > bool operator==( const QRegion & ) const; > bool operator!=( const QRegion &r ) const > { return !(operator==(r)); } > > > > > Region handle() const { if(!data->rgn) updateX11Region(); return data->rgn; } ># 108 "/usr/qt/3/include/qregion.h" > friend QDataStream &operator<<( QDataStream &, const QRegion & ); > friend QDataStream &operator>>( QDataStream &, QRegion & ); > >private: > QRegion( bool ); > QRegion copy() const; > void detach(); > > > > > void updateX11Region() const; > void *clipRectangles( int &num ) const; > friend void *qt_getClipRects( const QRegion &, int & ); > > void exec( const QByteArray &, int ver = 0 ); > struct QRegionData : public QShared { > > > > Region rgn; > void *xrectangles; > QRegionPrivate *region; > > > > > > > > bool is_null; > } *data; ># 149 "/usr/qt/3/include/qregion.h" >}; ># 169 "/usr/qt/3/include/qregion.h" > QDataStream &operator<<( QDataStream &, const QRegion & ); > QDataStream &operator>>( QDataStream &, QRegion & ); ># 44 "/usr/qt/3/include/qevent.h" 2 > ># 1 "/usr/qt/3/include/qmime.h" 1 ># 48 "/usr/qt/3/include/qmime.h" >class QImageDrag; >class QTextDrag; > >class QMimeSource >{ > friend class QClipboardData; > >public: > QMimeSource(); > virtual ~QMimeSource(); > virtual const char* format( int n = 0 ) const = 0; > virtual bool provides( const char* ) const; > virtual QByteArray encodedData( const char* ) const = 0; > int serialNumber() const; > >private: > int ser_no; > enum { NoCache, Text, Graphics } cacheType; > union > { > struct > { > QString *str; > QCString *subtype; > } txt; > struct > { > QImage *img; > QPixmap *pix; > } gfx; > } cache; > void clearCache(); > > > friend class QImageDrag; > friend class QTextDrag; > >}; > >inline int QMimeSource::serialNumber() const >{ return ser_no; } > >class QStringList; >class QMimeSourceFactoryData; > >class QMimeSourceFactory { >public: > QMimeSourceFactory(); > virtual ~QMimeSourceFactory(); > > static QMimeSourceFactory* defaultFactory(); > static void setDefaultFactory( QMimeSourceFactory* ); > static QMimeSourceFactory* takeDefaultFactory(); > static void addFactory( QMimeSourceFactory *f ); > static void removeFactory( QMimeSourceFactory *f ); > > virtual const QMimeSource* data(const QString& abs_name) const; > virtual QString makeAbsolute(const QString& abs_or_rel_name, const QString& context) const; > const QMimeSource* data(const QString& abs_or_rel_name, const QString& context) const; > > virtual void setText( const QString& abs_name, const QString& text ); > virtual void setImage( const QString& abs_name, const QImage& im ); > virtual void setPixmap( const QString& abs_name, const QPixmap& pm ); > virtual void setData( const QString& abs_name, QMimeSource* data ); > virtual void setFilePath( const QStringList& ); > virtual QStringList filePath() const; > void addFilePath( const QString& ); > virtual void setExtensionType( const QString& ext, const char* mimetype ); > >private: > QMimeSource *dataInternal(const QString& abs_name, const QMap<QString, QString> &extensions ) const; > QMimeSourceFactoryData* d; >}; ># 46 "/usr/qt/3/include/qevent.h" 2 > > > >class QEvent: public Qt >{ >public: > enum Type { ># 61 "/usr/qt/3/include/qevent.h" > None = 0, > > > Timer = 1, > MouseButtonPress = 2, > MouseButtonRelease = 3, > MouseButtonDblClick = 4, > MouseMove = 5, > KeyPress = 6, > KeyRelease = 7, > FocusIn = 8, > FocusOut = 9, > Enter = 10, > Leave = 11, > Paint = 12, > Move = 13, > Resize = 14, > Create = 15, > Destroy = 16, > Show = 17, > Hide = 18, > Close = 19, > Quit = 20, > Reparent = 21, > ShowMinimized = 22, > ShowNormal = 23, > WindowActivate = 24, > WindowDeactivate = 25, > ShowToParent = 26, > HideToParent = 27, > ShowMaximized = 28, > ShowFullScreen = 29, > Accel = 30, > Wheel = 31, > AccelAvailable = 32, > CaptionChange = 33, > IconChange = 34, > ParentFontChange = 35, > ApplicationFontChange = 36, > ParentPaletteChange = 37, > ApplicationPaletteChange = 38, > PaletteChange = 39, > Clipboard = 40, > Speech = 42, > SockAct = 50, > AccelOverride = 51, > DeferredDelete = 52, > DragEnter = 60, > DragMove = 61, > DragLeave = 62, > Drop = 63, > DragResponse = 64, > ChildInserted = 70, > ChildRemoved = 71, > LayoutHint = 72, > ShowWindowRequest = 73, > WindowBlocked = 74, > WindowUnblocked = 75, > ActivateControl = 80, > DeactivateControl = 81, > ContextMenu = 82, > IMStart = 83, > IMCompose = 84, > IMEnd = 85, > Accessibility = 86, > TabletMove = 87, > LocaleChange = 88, > LanguageChange = 89, > LayoutDirectionChange = 90, > Style = 91, > TabletPress = 92, > TabletRelease = 93, > OkRequest = 94, > HelpRequest = 95, > WindowStateChange = 96, > IconDrag = 97, > User = 1000, > MaxUser = 65535 > }; > > > QEvent( Type type ) : t(type), posted(FALSE), spont(FALSE) {} > virtual ~QEvent(); > Type type() const { return t; } > bool spontaneous() const { return spont; } >protected: > Type t; >private: > uint posted : 1; > uint spont : 1; > > > friend class QApplication; > friend class QAccelManager; > friend class QBaseApplication; > friend class QETWidget; >}; > > >class QTimerEvent : public QEvent >{ >public: > QTimerEvent( int timerId ) > : QEvent(Timer), id(timerId) {} > int timerId() const { return id; } >protected: > int id; >}; > > >class QMouseEvent : public QEvent >{ >public: > QMouseEvent( Type type, const QPoint &pos, int button, int state ); > > QMouseEvent( Type type, const QPoint &pos, const QPoint&globalPos, > int button, int state ) > : QEvent(type), p(pos), g(globalPos), b((ushort)button),s((ushort)state),accpt(TRUE) {}; > > const QPoint &pos() const { return p; } > const QPoint &globalPos() const { return g; } > int x() const { return p.x(); } > int y() const { return p.y(); } > int globalX() const { return g.x(); } > int globalY() const { return g.y(); } > ButtonState button() const { return (ButtonState) b; } > ButtonState state() const { return (ButtonState) s; } > ButtonState stateAfter() const; > bool isAccepted() const { return accpt; } > void accept() { accpt = TRUE; } > void ignore() { accpt = FALSE; } >protected: > QPoint p; > QPoint g; > ushort b; > ushort s; > uint accpt:1; >}; > > > >class QWheelEvent : public QEvent >{ >public: > QWheelEvent( const QPoint &pos, int delta, int state, Orientation orient = Vertical ); > QWheelEvent( const QPoint &pos, const QPoint& globalPos, int delta, int state, Orientation orient = Vertical ) > : QEvent(Wheel), p(pos), g(globalPos), d(delta), s((ushort)state), > accpt(TRUE), o(orient) {} > int delta() const { return d; } > const QPoint &pos() const { return p; } > const QPoint &globalPos() const { return g; } > int x() const { return p.x(); } > int y() const { return p.y(); } > int globalX() const { return g.x(); } > int globalY() const { return g.y(); } > ButtonState state() const { return ButtonState(s); } > Orientation orientation() const { return o; } > bool isAccepted() const { return accpt; } > void accept() { accpt = TRUE; } > void ignore() { accpt = FALSE; } >protected: > QPoint p; > QPoint g; > int d; > ushort s; > bool accpt; > Orientation o; >}; > > >class QTabletEvent : public QEvent >{ >public: > enum TabletDevice { NoDevice = -1, Puck, Stylus, Eraser }; > QTabletEvent( Type t, const QPoint &pos, const QPoint &globalPos, int device, > int pressure, int xTilt, int yTilt, const QPair<int,int> &uId ); > QTabletEvent( const QPoint &pos, const QPoint &globalPos, int device, > int pressure, int xTilt, int yTilt, const QPair<int,int> &uId ) > : QEvent( TabletMove ), mPos( pos ), mGPos( globalPos ), mDev( device ), > mPress( pressure ), mXT( xTilt ), mYT( yTilt ), mType( uId.first ), > mPhy( uId.second ), mbAcc(TRUE) > {} > int pressure() const { return mPress; } > int xTilt() const { return mXT; } > int yTilt() const { return mYT; } > const QPoint &pos() const { return mPos; } > const QPoint &globalPos() const { return mGPos; } > int x() const { return mPos.x(); } > int y() const { return mPos.y(); } > int globalX() const { return mGPos.x(); } > int globalY() const { return mGPos.y(); } > TabletDevice device() const { return TabletDevice(mDev); } > int isAccepted() const { return mbAcc; } > void accept() { mbAcc = TRUE; } > void ignore() { mbAcc = FALSE; } > QPair<int,int> uniqueId() { return QPair<int,int>( mType, mPhy); } >protected: > QPoint mPos; > QPoint mGPos; > int mDev, > mPress, > mXT, > mYT, > mType, > mPhy; > bool mbAcc; > >}; > >class QKeyEvent : public QEvent >{ >public: > QKeyEvent( Type type, int key, int ascii, int state, > const QString& text=QString::null, bool autorep=FALSE, ushort count=1 ) > : QEvent(type), txt(text), k((ushort)key), s((ushort)state), > a((uchar)ascii), accpt(TRUE), autor(autorep), c(count) > { > if ( key >= Key_Back && key <= Key_MediaLast ) > accpt = FALSE; > } > int key() const { return k; } > int ascii() const { return a; } > ButtonState state() const { return ButtonState(s); } > ButtonState stateAfter() const; > bool isAccepted() const { return accpt; } > QString text() const { return txt; } > bool isAutoRepeat() const { return autor; } > int count() const { return int(c); } > void accept() { accpt = TRUE; } > void ignore() { accpt = FALSE; } > >protected: > QString txt; > ushort k, s; > uchar a; > uint accpt:1; > uint autor:1; > ushort c; >}; > > >class QFocusEvent : public QEvent >{ >public: > > QFocusEvent( Type type ) > : QEvent(type) {} > > bool gotFocus() const { return type() == FocusIn; } > bool lostFocus() const { return type() == FocusOut; } > > enum Reason { Mouse, Tab, Backtab, ActiveWindow, Popup, Shortcut, Other }; > static Reason reason(); > static void setReason( Reason reason ); > static void resetReason(); > >private: > static Reason m_reason; > static Reason prev_reason; >}; > > >class QPaintEvent : public QEvent >{ >public: > QPaintEvent( const QRegion& paintRegion, bool erased = TRUE) > : QEvent(Paint), > rec(paintRegion.boundingRect()), > reg(paintRegion), > erase(erased){} > QPaintEvent( const QRect &paintRect, bool erased = TRUE ) > : QEvent(Paint), > rec(paintRect), > reg(paintRect), > erase(erased){} > QPaintEvent( const QRegion &paintRegion, const QRect &paintRect, bool erased = TRUE ) > : QEvent(Paint), > rec(paintRect), > reg(paintRegion), > erase(erased){} > > const QRect &rect() const { return rec; } > const QRegion ®ion() const { return reg; } > bool erased() const { return erase; } >protected: > friend class QApplication; > friend class QBaseApplication; > QRect rec; > QRegion reg; > bool erase; >}; > > >class QMoveEvent : public QEvent >{ >public: > QMoveEvent( const QPoint &pos, const QPoint &oldPos ) > : QEvent(Move), p(pos), oldp(oldPos) {} > const QPoint &pos() const { return p; } > const QPoint &oldPos()const { return oldp;} >protected: > QPoint p, oldp; > friend class QApplication; > friend class QBaseApplication; >}; > > >class QResizeEvent : public QEvent >{ >public: > QResizeEvent( const QSize &size, const QSize &oldSize ) > : QEvent(Resize), s(size), olds(oldSize) {} > const QSize &size() const { return s; } > const QSize &oldSize()const { return olds;} >protected: > QSize s, olds; > friend class QApplication; > friend class QBaseApplication; >}; > > >class QCloseEvent : public QEvent >{ >public: > QCloseEvent() > : QEvent(Close), accpt(FALSE) {} > bool isAccepted() const { return accpt; } > void accept() { accpt = TRUE; } > void ignore() { accpt = FALSE; } >protected: > bool accpt; >}; > > >class QIconDragEvent : public QEvent >{ >public: > QIconDragEvent() > : QEvent(IconDrag), accpt(FALSE) {} > > bool isAccepted() const { return accpt; } > void accept() { accpt = TRUE; } > void ignore() { accpt = FALSE; } >protected: > bool accpt; >}; > >class QShowEvent : public QEvent >{ >public: > QShowEvent() > : QEvent(Show) {} >}; > > >class QHideEvent : public QEvent >{ >public: > QHideEvent() > : QEvent(Hide) {} >}; > >class QContextMenuEvent : public QEvent >{ >public: > enum Reason { Mouse, Keyboard, Other }; > QContextMenuEvent( Reason reason, const QPoint &pos, const QPoint &globalPos, int state ) > : QEvent( ContextMenu ), p( pos ), gp( globalPos ), accpt( TRUE ), consum( TRUE ), > reas( reason ), s((ushort)state) {} > QContextMenuEvent( Reason reason, const QPoint &pos, int state ); > > int x() const { return p.x(); } > int y() const { return p.y(); } > int globalX() const { return gp.x(); } > int globalY() const { return gp.y(); } > > const QPoint& pos() const { return p; } > const QPoint& globalPos() const { return gp; } > > ButtonState state() const { return (ButtonState) s; } > bool isAccepted() const { return accpt; } > bool isConsumed() const { return consum; } > void consume() { accpt = FALSE; consum = TRUE; } > void accept() { accpt = TRUE; consum = TRUE; } > void ignore() { accpt = FALSE; consum = FALSE; } > > Reason reason() const { return Reason( reas ); } > >protected: > QPoint p; > QPoint gp; > bool accpt; > bool consum; > uint reas:8; > ushort s; >}; > > >class QIMEvent : public QEvent >{ >public: > QIMEvent( Type type, const QString &text, int cursorPosition ) > : QEvent(type), txt(text), cpos(cursorPosition), a(TRUE) {} > const QString &text() const { return txt; } > int cursorPos() const { return cpos; } > bool isAccepted() const { return a; } > void accept() { a = TRUE; } > void ignore() { a = FALSE; } > int selectionLength() const; > >private: > QString txt; > int cpos; > bool a; >}; > >class QIMComposeEvent : public QIMEvent >{ >public: > QIMComposeEvent( Type type, const QString &text, int cursorPosition, > int selLength ) > : QIMEvent( type, text, cursorPosition ), selLen( selLength ) { } > >private: > int selLen; > > friend class QIMEvent; >}; > >inline int QIMEvent::selectionLength() const >{ > if ( type() != IMCompose ) return 0; > QIMComposeEvent *that = (QIMComposeEvent *) this; > return that->selLen; >} ># 504 "/usr/qt/3/include/qevent.h" >class QDropEvent : public QEvent, public QMimeSource >{ >public: > QDropEvent( const QPoint& pos, Type typ=Drop ) > : QEvent(typ), p(pos), > act(0), accpt(0), accptact(0), resv(0), > d(0) > {} > const QPoint &pos() const { return p; } > bool isAccepted() const { return accpt || accptact; } > void accept(bool y=TRUE) { accpt = y; } > void ignore() { accpt = FALSE; } > > bool isActionAccepted() const { return accptact; } > void acceptAction(bool y=TRUE) { accptact = y; } > enum Action { Copy, Link, Move, Private, UserAction=100 }; > void setAction( Action a ) { act = (uint)a; } > Action action() const { return Action(act); } > > QWidget* source() const; > const char* format( int n = 0 ) const; > QByteArray encodedData( const char* ) const; > bool provides( const char* ) const; > > QByteArray data(const char* f) const { return encodedData(f); } > > void setPoint( const QPoint& np ) { p = np; } > >protected: > QPoint p; > uint act:8; > uint accpt:1; > uint accptact:1; > uint resv:5; > void * d; >}; > > > >class QDragMoveEvent : public QDropEvent >{ >public: > QDragMoveEvent( const QPoint& pos, Type typ=DragMove ) > : QDropEvent(pos,typ), > rect( pos, QSize( 1, 1 ) ) {} > QRect answerRect() const { return rect; } > void accept( bool y=TRUE ) { QDropEvent::accept(y); } > void accept( const QRect & r) { accpt = TRUE; rect = r; } > void ignore( const QRect & r) { accpt =FALSE; rect = r; } > void ignore() { QDropEvent::ignore(); } > >protected: > QRect rect; >}; > > >class QDragEnterEvent : public QDragMoveEvent >{ >public: > QDragEnterEvent( const QPoint& pos ) : > QDragMoveEvent(pos, DragEnter) { } >}; > > > >class QDragResponseEvent : public QEvent >{ >public: > QDragResponseEvent( bool accepted ) > : QEvent(DragResponse), a(accepted) {} > bool dragAccepted() const { return a; } >protected: > bool a; >}; > > >class QDragLeaveEvent : public QEvent >{ >public: > QDragLeaveEvent() > : QEvent(DragLeave) {} >}; > > > >class QChildEvent : public QEvent >{ >public: > QChildEvent( Type type, QObject *child ) > : QEvent(type), c(child) {} > QObject *child() const { return c; } > bool inserted() const { return t == ChildInserted; } > bool removed() const { return t == ChildRemoved; } >protected: > QObject *c; >}; > > >class QCustomEvent : public QEvent >{ >public: > QCustomEvent( int type ); > QCustomEvent( Type type, void *data ) > : QEvent(type), d(data) {}; > void *data() const { return d; } > void setData( void* data ) { d = data; } >private: > void *d; >}; ># 46 "/usr/qt/3/include/qobject.h" 2 > > > > > > >class QMetaObject; >class QVariant; >class QMetaProperty; >class QPostEventList; >class QSenderObjectList; >class QObjectPrivate; > >class QObjectUserData; > >struct QUObject; > >class QObject: public Qt >{ > public: virtual QMetaObject *metaObject() const { return staticMetaObject(); } virtual const char *className() const; virtual void* qt_cast( const char* ); virtual bool qt_invoke( int, QUObject* ); virtual bool qt_emit( int, QUObject* ); virtual bool qt_property( int id, int f, QVariant* v); static bool qt_static_property( QObject* , int, int, QVariant* ); static QMetaObject* staticMetaObject(); QObject* qObject() { return (QObject*)this; } private: static QMetaObject *metaObj; > > >public: > QObject( QObject *parent=0, const char *name=0 ); > virtual ~QObject(); ># 79 "/usr/qt/3/include/qobject.h" > virtual bool event( QEvent * ); > virtual bool eventFilter( QObject *, QEvent * ); > > bool isA( const char * ) const; > bool inherits( const char * ) const; > > const char *name() const; > const char *name( const char * defaultName ) const; > > virtual void setName( const char *name ); > bool isWidgetType() const { return isWidget; } > bool highPriority() const { return FALSE; } > > bool signalsBlocked() const { return blockSig; } > void blockSignals( bool b ); > > int startTimer( int interval ); > void killTimer( int id ); > void killTimers(); > > QObject *child( const char *objName, const char *inheritsClass = 0, bool recursiveSearch = TRUE ); > const QObjectList *children() const { return childObjects; } > > static const QObjectList *objectTrees(); > > QObjectList *queryList( const char *inheritsClass = 0, > const char *objName = 0, > bool regexpMatch = TRUE, > bool recursiveSearch = TRUE ) const; > > virtual void insertChild( QObject * ); > virtual void removeChild( QObject * ); > > void installEventFilter( const QObject * ); > void removeEventFilter( const QObject * ); > > static bool connect( const QObject *sender, const char *signal, > const QObject *receiver, const char *member ); > bool connect( const QObject *sender, const char *signal, > const char *member ) const; > static bool disconnect( const QObject *sender, const char *signal, > const QObject *receiver, const char *member ); > bool disconnect( const char *signal=0, > const QObject *receiver=0, const char *member=0 ); > bool disconnect( const QObject *receiver, const char *member=0 ); > static void connectInternal( const QObject *sender, int signal_index, > const QObject *receiver, int membcode, int member_index ); > static bool disconnectInternal( const QObject *sender, int signal_index, > const QObject *receiver, int membcode, int member_index ); > > void dumpObjectTree(); > void dumpObjectInfo(); > > > virtual bool setProperty( const char *name, const QVariant& value ); > virtual QVariant property( const char *name ) const; > > > static QString tr( const char *sourceText, const char * = 0); > > static QString trUtf8( const char *sourceText, const char * = 0); > > > > > static uint registerUserData(); > void setUserData( uint id, QObjectUserData* data); > QObjectUserData* userData( uint id ) const; > > >protected: > void destroyed(); > void destroyed( QObject* obj ); > >public: > QObject *parent() const { return parentObj; } > >public : > void deleteLater(); > >private : > void cleanupEventFilter( QObject* ); > >protected: > bool activate_filters( QEvent * ); > QConnectionList *receivers( const char* signal ) const; > QConnectionList *receivers( int signal ) const; > void activate_signal( int signal ); > void activate_signal( int signal, int ); > void activate_signal( int signal, double ); > void activate_signal( int signal, QString ); > void activate_signal_bool( int signal, bool ); > void activate_signal( QConnectionList *clist, QUObject *o ); > > const QObject *sender(); > > virtual void timerEvent( QTimerEvent * ); > virtual void childEvent( QChildEvent * ); > virtual void customEvent( QCustomEvent * ); > > virtual void connectNotify( const char *signal ); > virtual void disconnectNotify( const char *signal ); > virtual bool checkConnectArgs( const char *signal, const QObject *receiver, > const char *member ); > static QCString normalizeSignalSlot( const char *signalSlot ); > >private: > uint isSignal : 1; > uint isWidget : 1; > uint pendTimer : 1; > uint blockSig : 1; > uint wasDeleted : 1; > uint isTree : 1; > > const char *objname; > QObject *parentObj; > QObjectList *childObjects; > QSignalVec *connections; > QSenderObjectList *senderObjects; > QObjectList *eventFilters; > QPostEventList *postedEvents; > QObjectPrivate* d; > > static QMetaObject* staticQtMetaObject(); > > friend class QApplication; > friend class QBaseApplication; > friend class QWidget; > friend class QSignal; > >private: > > QObject( const QObject & ); > QObject &operator=( const QObject & ); > >}; > > > >class QObjectUserData { >public: > virtual ~QObjectUserData(); >}; > > > >inline bool QObject::connect( const QObject *sender, const char *signal, > const char *member ) const >{ > return connect( sender, signal, this, member ); >} > > >inline bool QObject::disconnect( const char *signal, > const QObject *receiver, const char *member ) >{ > return disconnect( this, signal, receiver, member ); >} > > >inline bool QObject::disconnect( const QObject *receiver, const char *member ) >{ > return disconnect( this, 0, receiver, member ); >} > > > >inline QString QObject::tr( const char *sourceText, const char * ) { > return QString::fromLatin1( sourceText ); >} > >inline QString QObject::trUtf8( const char *sourceText, const char * ) { > return QString::fromUtf8( sourceText ); >} > > > > > ># 1 "/usr/qt/3/include/qwinexport.h" 1 ># 259 "/usr/qt/3/include/qobject.h" 2 ># 44 "/usr/qt/3/include/qwidget.h" 2 ># 1 "/usr/qt/3/include/qpaintdevice.h" 1 ># 51 "/usr/qt/3/include/qpaintdevice.h" >class QIODevice; >class QString; >class QTextItem; > > > >struct QPaintDeviceX11Data; > > >union QPDevCmdParam { > int ival; > int *ivec; > QString *str; > const QPoint *point; > const QRect *rect; > const QPointArray *ptarr; > const QPixmap *pixmap; > const QImage *image; > const QColor *color; > const QFont *font; > const QPen *pen; > const QBrush *brush; > const QRegion *rgn; > const QWMatrix *matrix; > const QTextItem *textItem; > QIODevice *device; >}; > > > >class QPaintDevice >{ >public: > virtual ~QPaintDevice(); > > int devType() const; > bool isExtDev() const; > bool paintingActive() const; > > virtual void setResolution( int ); > virtual int resolution() const; > > > > > > > virtual Qt::HANDLE handle() const; > virtual Qt::HANDLE x11RenderHandle() const; > > > > > > > > Display *x11Display() const; > int x11Screen() const; > int x11Depth() const; > int x11Cells() const; > Qt::HANDLE x11Colormap() const; > bool x11DefaultColormap() const; > void *x11Visual() const; > bool x11DefaultVisual() const; > > static Display *x11AppDisplay(); > static int x11AppScreen(); > > static int x11AppDpiX(); > static int x11AppDpiY(); > static void x11SetAppDpiX(int); > static void x11SetAppDpiY(int); > static int x11AppDepth(); > static int x11AppCells(); > static Qt::HANDLE x11AppRootWindow(); > static Qt::HANDLE x11AppColormap(); > static bool x11AppDefaultColormap(); > static void *x11AppVisual(); > static bool x11AppDefaultVisual(); > > > > static int x11AppDepth( int screen ); > static int x11AppCells( int screen ); > static Qt::HANDLE x11AppRootWindow( int screen ); > static Qt::HANDLE x11AppColormap( int screen ); > static void *x11AppVisual( int screen ); > static bool x11AppDefaultColormap( int screen ); > static bool x11AppDefaultVisual( int screen ); > static int x11AppDpiX( int ); > static int x11AppDpiY( int ); > static void x11SetAppDpiX( int, int ); > static void x11SetAppDpiY( int, int ); ># 153 "/usr/qt/3/include/qpaintdevice.h" > enum PDevCmd { > PdcNOP = 0, > PdcDrawPoint = 1, > PdcDrawFirst = PdcDrawPoint, > PdcMoveTo = 2, > PdcLineTo = 3, > PdcDrawLine = 4, > PdcDrawRect = 5, > PdcDrawRoundRect = 6, > PdcDrawEllipse = 7, > PdcDrawArc = 8, > PdcDrawPie = 9, > PdcDrawChord = 10, > PdcDrawLineSegments = 11, > PdcDrawPolyline = 12, > PdcDrawPolygon = 13, > PdcDrawCubicBezier = 14, > PdcDrawText = 15, > PdcDrawTextFormatted = 16, > PdcDrawPixmap = 17, > PdcDrawImage = 18, > PdcDrawText2 = 19, > PdcDrawText2Formatted = 20, > PdcDrawTextItem = 21, > PdcDrawLast = PdcDrawTextItem, > > > > PdcBegin = 30, > PdcEnd = 31, > PdcSave = 32, > PdcRestore = 33, > PdcSetdev = 34, > PdcSetBkColor = 40, > PdcSetBkMode = 41, > PdcSetROP = 42, > PdcSetBrushOrigin = 43, > PdcSetFont = 45, > PdcSetPen = 46, > PdcSetBrush = 47, > PdcSetTabStops = 48, > PdcSetTabArray = 49, > PdcSetUnit = 50, > PdcSetVXform = 51, > PdcSetWindow = 52, > PdcSetViewport = 53, > PdcSetWXform = 54, > PdcSetWMatrix = 55, > PdcSaveWMatrix = 56, > PdcRestoreWMatrix = 57, > PdcSetClip = 60, > PdcSetClipRegion = 61, > > PdcReservedStart = 0, > PdcReservedStop = 199 > }; > >protected: > QPaintDevice( uint devflags ); > > > > > Qt::HANDLE hd; > Qt::HANDLE rendhd; > > void copyX11Data( const QPaintDevice * ); > void cloneX11Data( const QPaintDevice * ); > virtual void setX11Data( const QPaintDeviceX11Data* ); > QPaintDeviceX11Data* getX11Data( bool def=FALSE ) const; ># 232 "/usr/qt/3/include/qpaintdevice.h" > virtual bool cmd( int, QPainter *, QPDevCmdParam * ); > virtual int metric( int ) const; > virtual int fontMet( QFont *, int, const char * = 0, int = 0 ) const; > virtual int fontInf( QFont *, int ) const; > > ushort devFlags; > ushort painters; > > friend class QPainter; > friend class QPaintDeviceMetrics; > > > > > > > > friend void bitBlt( QPaintDevice *, int, int, > const QPaintDevice *, > int, int, int, int, Qt::RasterOp, bool ); > > > friend void qt_init_internal( int *, char **, Display *, Qt::HANDLE, Qt::HANDLE ); > friend void qt_cleanup(); > > >private: > > static Display *x_appdisplay; > static int x_appscreen; > > static int x_appdepth; > static int x_appcells; > static Qt::HANDLE x_approotwindow; > static Qt::HANDLE x_appcolormap; > static bool x_appdefcolormap; > static void *x_appvisual; > static bool x_appdefvisual; > > > static int *x_appdepth_arr; > static int *x_appcells_arr; > static Qt::HANDLE *x_approotwindow_arr; > static Qt::HANDLE *x_appcolormap_arr; > static bool *x_appdefcolormap_arr; > static void **x_appvisual_arr; > static bool *x_appdefvisual_arr; > > QPaintDeviceX11Data* x11Data; > > >private: > > QPaintDevice( const QPaintDevice & ); > QPaintDevice &operator=( const QPaintDevice & ); > >}; > > > >void bitBlt( QPaintDevice *dst, int dx, int dy, > const QPaintDevice *src, int sx=0, int sy=0, int sw=-1, int sh=-1, > Qt::RasterOp = Qt::CopyROP, bool ignoreMask=FALSE ); > > >void bitBlt( QPaintDevice *dst, int dx, int dy, > const QImage *src, int sx=0, int sy=0, int sw=-1, int sh=-1, > int conversion_flags=0 ); > > > > >struct QPaintDeviceX11Data : public QShared { > Display* x_display; > int x_screen; > int x_depth; > int x_cells; > Qt::HANDLE x_colormap; > bool x_defcolormap; > void* x_visual; > bool x_defvisual; >}; > > > > > > > >inline int QPaintDevice::devType() const >{ return devFlags & QInternal::DeviceTypeMask; } > >inline bool QPaintDevice::isExtDev() const >{ return (devFlags & QInternal::ExternalDevice) != 0; } > >inline bool QPaintDevice::paintingActive() const >{ return painters != 0; } > > >inline Display *QPaintDevice::x11Display() const >{ return x11Data ? x11Data->x_display : x_appdisplay; } > >inline int QPaintDevice::x11Screen() const >{ return x11Data ? x11Data->x_screen : x_appscreen; } > >inline int QPaintDevice::x11Depth() const >{ return x11Data ? x11Data->x_depth : x_appdepth; } > >inline int QPaintDevice::x11Cells() const >{ return x11Data ? x11Data->x_cells : x_appcells; } > >inline Qt::HANDLE QPaintDevice::x11Colormap() const >{ return x11Data ? x11Data->x_colormap : x_appcolormap; } > >inline bool QPaintDevice::x11DefaultColormap() const >{ return x11Data ? x11Data->x_defcolormap : x_appdefcolormap; } > >inline void *QPaintDevice::x11Visual() const >{ return x11Data ? x11Data->x_visual : x_appvisual; } > >inline bool QPaintDevice::x11DefaultVisual() const >{ return x11Data ? x11Data->x_defvisual : x_appdefvisual; } > >inline Display *QPaintDevice::x11AppDisplay() >{ return x_appdisplay; } > >inline int QPaintDevice::x11AppScreen() >{ return x_appscreen; } > >inline int QPaintDevice::x11AppDepth( int screen ) >{ return x_appdepth_arr[ screen == -1 ? x_appscreen : screen ]; } > >inline int QPaintDevice::x11AppCells( int screen ) >{ return x_appcells_arr[ screen == -1 ? x_appscreen : screen ]; } > >inline Qt::HANDLE QPaintDevice::x11AppRootWindow( int screen ) >{ return x_approotwindow_arr[ screen == -1 ? x_appscreen : screen ]; } > >inline Qt::HANDLE QPaintDevice::x11AppColormap( int screen ) >{ return x_appcolormap_arr[ screen == -1 ? x_appscreen : screen ]; } > >inline bool QPaintDevice::x11AppDefaultColormap( int screen ) >{ return x_appdefcolormap_arr[ screen == -1 ? x_appscreen : screen ]; } > >inline void *QPaintDevice::x11AppVisual( int screen ) >{ return x_appvisual_arr[ screen == -1 ? x_appscreen : screen ]; } > >inline bool QPaintDevice::x11AppDefaultVisual( int screen ) >{ return x_appdefvisual_arr[ screen == -1 ? x_appscreen : screen ]; } > >inline int QPaintDevice::x11AppDepth() >{ return x_appdepth; } > >inline int QPaintDevice::x11AppCells() >{ return x_appcells; } > >inline Qt::HANDLE QPaintDevice::x11AppRootWindow() >{ return x_approotwindow; } > >inline Qt::HANDLE QPaintDevice::x11AppColormap() >{ return x_appcolormap; } > >inline bool QPaintDevice::x11AppDefaultColormap() >{ return x_appdefcolormap; } > >inline void *QPaintDevice::x11AppVisual() >{ return x_appvisual; } > >inline bool QPaintDevice::x11AppDefaultVisual() >{ return x_appdefvisual; } > > > > > >inline void bitBlt( QPaintDevice *dst, const QPoint &dp, > const QPaintDevice *src, const QRect &sr =QRect(0,0,-1,-1), > Qt::RasterOp rop=Qt::CopyROP, bool ignoreMask=FALSE ) >{ > bitBlt( dst, dp.x(), dp.y(), src, sr.x(), sr.y(), sr.width(), sr.height(), > rop, ignoreMask ); >} ># 45 "/usr/qt/3/include/qwidget.h" 2 ># 1 "/usr/qt/3/include/qpalette.h" 1 ># 43 "/usr/qt/3/include/qpalette.h" ># 1 "/usr/qt/3/include/qcolor.h" 1 ># 46 "/usr/qt/3/include/qcolor.h" >const QRgb RGB_MASK = 0x00ffffff; > > inline int qRed( QRgb rgb ) >{ return (int)((rgb >> 16) & 0xff); } > > inline int qGreen( QRgb rgb ) >{ return (int)((rgb >> 8) & 0xff); } > > inline int qBlue( QRgb rgb ) >{ return (int)(rgb & 0xff); } > > inline int qAlpha( QRgb rgb ) >{ return (int)((rgb >> 24) & 0xff); } > > inline QRgb qRgb( int r, int g, int b ) >{ return (0xff << 24) | ((r & 0xff) << 16) | ((g & 0xff) << 8) | (b & 0xff); } > > inline QRgb qRgba( int r, int g, int b, int a ) >{ return ((a & 0xff) << 24) | ((r & 0xff) << 16) | ((g & 0xff) << 8) | (b & 0xff); } > > inline int qGray( int r, int g, int b ) >{ return (r*11+g*16+b*5)/32; } > > inline int qGray( QRgb rgb ) >{ return qGray( qRed(rgb), qGreen(rgb), qBlue(rgb) ); } > > >class QColor >{ >public: > enum Spec { Rgb, Hsv }; > > QColor(); > QColor( int r, int g, int b ); > QColor( int x, int y, int z, Spec ); > QColor( QRgb rgb, uint pixel=0xffffffff); > QColor( const QString& name ); > QColor( const char *name ); > QColor( const QColor & ); > QColor &operator=( const QColor & ); > > bool isValid() const; > bool isDirty() const; > QString name() const; > void setNamedColor( const QString& name ); > > QRgb rgb() const; > void setRgb( int r, int g, int b ); > void setRgb( QRgb rgb ); > void getRgb( int *r, int *g, int *b ) const { rgb( r, g, b ); } > void rgb( int *r, int *g, int *b ) const; > > int red() const; > int green() const; > int blue() const; > > void setHsv( int h, int s, int v ); > void getHsv( int *h, int *s, int *v ) const { hsv( h, s, v ); } > void hsv( int *h, int *s, int *v ) const; > void getHsv( int &h, int &s, int &v ) const { hsv( &h, &s, &v ); } > > QColor light( int f = 150 ) const; > QColor dark( int f = 200 ) const; > > bool operator==( const QColor &c ) const; > bool operator!=( const QColor &c ) const; > > uint alloc(); > uint pixel() const; > > > > uint alloc( int screen ); > uint pixel( int screen ) const; > > > static int maxColors(); > static int numBitPlanes(); > > static int enterAllocContext(); > static void leaveAllocContext(); > static int currentAllocContext(); > static void destroyAllocContext( int ); ># 138 "/usr/qt/3/include/qcolor.h" > static void initialize(); > static void cleanup(); > > static QStringList colorNames(); > > enum { Dirt = 0x44495254, Invalid = 0x49000000 }; > >private: > void setSystemNamedColor( const QString& name ); > void setPixel( uint pixel ); > static void initGlobalColors(); > static uint argbToPix32(QRgb); > static QColor* globalColors(); > static bool color_init; > static bool globals_init; > > > > static enum ColorModel { d8, d32 } colormodel; > union { > QRgb argb; > struct D8 { > QRgb argb; > uchar pix; > uchar invalid; > uchar dirty; > uchar direct; > } d8; > struct D32 { > QRgb argb; > uint pix; > bool invalid() const { return argb == QColor::Invalid && pix == QColor::Dirt; } > bool probablyDirty() const { return pix == QColor::Dirt; } > } d32; > } d; >}; > > >inline QColor::QColor() >{ d.d32.argb = Invalid; d.d32.pix = Dirt; } > >inline QColor::QColor( int r, int g, int b ) >{ > d.d32.argb = Invalid; > d.d32.pix = Dirt; > setRgb( r, g, b ); >} > >inline QRgb QColor::rgb() const >{ return d.argb; } > >inline int QColor::red() const >{ return qRed(d.argb); } > >inline int QColor::green() const >{ return qGreen(d.argb); } > >inline int QColor::blue() const >{ return qBlue(d.argb); } > >inline bool QColor::isValid() const >{ > if ( colormodel == d8 ) > return !d.d8.invalid; > else > return !d.d32.invalid(); >} > >inline bool QColor::operator==( const QColor &c ) const >{ > return d.argb == c.d.argb && isValid() == c.isValid(); >} > >inline bool QColor::operator!=( const QColor &c ) const >{ > return !operator==(c); >} > > > > > > > > QDataStream &operator<<( QDataStream &, const QColor & ); > QDataStream &operator>>( QDataStream &, QColor & ); ># 44 "/usr/qt/3/include/qpalette.h" 2 > ># 1 "/usr/qt/3/include/qbrush.h" 1 ># 47 "/usr/qt/3/include/qbrush.h" >class QBrush: public Qt >{ >friend class QPainter; >public: > QBrush(); > QBrush( BrushStyle ); > QBrush( const QColor &, BrushStyle=SolidPattern ); > QBrush( const QColor &, const QPixmap & ); > QBrush( const QBrush & ); > ~QBrush(); > QBrush &operator=( const QBrush & ); > > BrushStyle style() const { return data->style; } > void setStyle( BrushStyle ); > const QColor &color()const { return data->color; } > void setColor( const QColor & ); > QPixmap *pixmap() const { return data->pixmap; } > void setPixmap( const QPixmap & ); > > bool operator==( const QBrush &p ) const; > bool operator!=( const QBrush &b ) const > { return !(operator==(b)); } > >private: > QBrush copy() const; > void detach(); > void init( const QColor &, BrushStyle ); > struct QBrushData : public QShared { > BrushStyle style; > QColor color; > QPixmap *pixmap; > } *data; >}; > > > > > > > > QDataStream &operator<<( QDataStream &, const QBrush & ); > QDataStream &operator>>( QDataStream &, QBrush & ); ># 46 "/usr/qt/3/include/qpalette.h" 2 > > > > >class QColorGroupPrivate; > >class QColorGroup >{ >public: > QColorGroup(); > QColorGroup( const QColor &foreground, const QColor &button, > const QColor &light, const QColor &dark, const QColor &mid, > const QColor &text, const QColor &base ); > QColorGroup( const QBrush &foreground, const QBrush &button, > const QBrush &light, const QBrush &dark, const QBrush &mid, > const QBrush &text, const QBrush &bright_text, > const QBrush &base, const QBrush &background); > QColorGroup( const QColorGroup & ); > > ~QColorGroup(); > > QColorGroup& operator =(const QColorGroup&); > > > enum ColorRole { Foreground, Button, Light, Midlight, Dark, Mid, > Text, BrightText, ButtonText, Base, Background, Shadow, > Highlight, HighlightedText, Link, LinkVisited, > NColorRoles }; > > const QColor &color( ColorRole ) const; > const QBrush &brush( ColorRole ) const; > void setColor( ColorRole, const QColor & ); > void setBrush( ColorRole, const QBrush & ); > > const QColor &foreground() const { return br[Foreground].color(); } > const QColor &button() const { return br[Button].color(); } > const QColor &light() const { return br[Light].color(); } > const QColor &dark() const { return br[Dark].color(); } > const QColor &mid() const { return br[Mid].color(); } > const QColor &text() const { return br[Text].color(); } > const QColor &base() const { return br[Base].color(); } > const QColor &background() const { return br[Background].color(); } > > const QColor &midlight() const { return br[Midlight].color(); } > const QColor &brightText() const { return br[BrightText].color(); } > const QColor &buttonText() const { return br[ButtonText].color(); } > const QColor &shadow() const { return br[Shadow].color(); } > const QColor &highlight() const { return br[Highlight].color(); } > const QColor &highlightedText() const{return br[HighlightedText].color(); } > const QColor &link() const { return br[Link].color(); } > const QColor &linkVisited() const { return br[LinkVisited].color(); } > > bool operator==( const QColorGroup &g ) const; > bool operator!=( const QColorGroup &g ) const > { return !(operator==(g)); } > >private: > QBrush *br; > QColorGroupPrivate * d; > > friend class QPalette; >}; > > >class QPalette >{ >public: > QPalette(); > QPalette( const QColor &button ); > QPalette( const QColor &button, const QColor &background ); > QPalette( const QColorGroup &active, const QColorGroup &disabled, > const QColorGroup &inactive ); > QPalette( const QPalette & ); > ~QPalette(); > QPalette &operator=( const QPalette & ); > > enum ColorGroup { Disabled, Active, Inactive, NColorGroups, Normal=Active }; > > const QColor &color( ColorGroup, QColorGroup::ColorRole ) const; > const QBrush &brush( ColorGroup, QColorGroup::ColorRole ) const; > void setColor( ColorGroup, QColorGroup::ColorRole, const QColor & ); > void setBrush( ColorGroup, QColorGroup::ColorRole, const QBrush & ); > > void setColor( QColorGroup::ColorRole, const QColor & ); > void setBrush( QColorGroup::ColorRole, const QBrush & ); > > QPalette copy() const; > > const QColorGroup &active() const { return data->active; } > const QColorGroup &disabled() const { return data->disabled; } > const QColorGroup &inactive() const { return data->inactive; } > > > > > void setActive( const QColorGroup & ); > void setDisabled( const QColorGroup & ); > void setInactive( const QColorGroup & ); > > > > > bool operator==( const QPalette &p ) const; > bool operator!=( const QPalette &p ) const > { return !(operator==(p)); } > bool isCopyOf( const QPalette & ); > > int serialNumber() const { return data->ser_no; } > > > static QColorGroup::ColorRole foregroundRoleFromMode( Qt::BackgroundMode mode ); > static QColorGroup::ColorRole backgroundRoleFromMode( Qt::BackgroundMode mode); > >private: > void detach(); > const QBrush &directBrush( ColorGroup, QColorGroup::ColorRole ) const; > void directSetBrush( ColorGroup, QColorGroup::ColorRole, const QBrush& ); > > struct QPalData : public QShared { > QColorGroup disabled; > QColorGroup active; > int ser_no; > QColorGroup inactive; > } *data; >}; > > > > > > > > QDataStream &operator<<( QDataStream &, const QColorGroup & ); > QDataStream &operator>>( QDataStream &, QColorGroup & ); > > QDataStream &operator<<( QDataStream &, const QPalette & ); > QDataStream &operator>>( QDataStream &, QPalette & ); ># 46 "/usr/qt/3/include/qwidget.h" 2 ># 1 "/usr/qt/3/include/qfont.h" 1 ># 47 "/usr/qt/3/include/qfont.h" >class QFontPrivate; >class QStringList; >class QTextFormatCollection; > >class QFont >{ >public: > enum StyleHint { > Helvetica, SansSerif = Helvetica, > Times, Serif = Times, > Courier, TypeWriter = Courier, > OldEnglish, Decorative = OldEnglish, > System, > AnyStyle > }; > > enum StyleStrategy { > PreferDefault = 0x0001, > PreferBitmap = 0x0002, > PreferDevice = 0x0004, > PreferOutline = 0x0008, > ForceOutline = 0x0010, > PreferMatch = 0x0020, > PreferQuality = 0x0040, > PreferAntialias = 0x0080, > NoAntialias = 0x0100, > OpenGLCompatible = 0x0200 > }; > > enum Weight { > Light = 25, > Normal = 50, > DemiBold = 63, > Bold = 75, > Black = 87 > }; > > enum Stretch { > UltraCondensed = 50, > ExtraCondensed = 62, > Condensed = 75, > SemiCondensed = 87, > Unstretched = 100, > SemiExpanded = 112, > Expanded = 125, > ExtraExpanded = 150, > UltraExpanded = 200 > }; > > > QFont(); > > > > > > QFont( const QString &family, int pointSize = -1, int weight = -1, > bool italic = FALSE ); > > > QFont( const QFont & ); > > ~QFont(); > > QString family() const; > void setFamily( const QString &); > > int pointSize() const; > float pointSizeFloat() const; > void setPointSize( int ); > void setPointSizeFloat( float ); > > int pixelSize() const; > void setPixelSize( int ); > void setPixelSizeFloat( float ); > > int weight() const; > void setWeight( int ); > > bool bold() const; > void setBold( bool ); > > bool italic() const; > void setItalic( bool ); > > bool underline() const; > void setUnderline( bool ); > > bool overline() const; > void setOverline( bool ); > > bool strikeOut() const; > void setStrikeOut( bool ); > > bool fixedPitch() const; > void setFixedPitch( bool ); > > StyleHint styleHint() const; > StyleStrategy styleStrategy() const; > void setStyleHint( StyleHint, StyleStrategy = PreferDefault ); > void setStyleStrategy( StyleStrategy s ); > > int stretch() const; > void setStretch( int ); > > > bool rawMode() const; > void setRawMode( bool ); > > > bool exactMatch() const; > > QFont &operator=( const QFont & ); > bool operator==( const QFont & ) const; > bool operator!=( const QFont & ) const; > bool isCopyOf( const QFont & ) const; > > > > > > Qt::HANDLE handle() const; > > > > > void setRawName( const QString & ); > QString rawName() const; > > QString key() const; > > QString toString() const; > bool fromString(const QString &); > > > static QString substitute(const QString &); > static QStringList substitutes(const QString &); > static QStringList substitutions(); > static void insertSubstitution(const QString&, const QString &); > static void insertSubstitutions(const QString&, const QStringList &); > static void removeSubstitution(const QString &); > > static void initialize(); > static void cleanup(); > > static void cacheStatistics(); ># 203 "/usr/qt/3/include/qfont.h" > enum Script { > > Latin, > Greek, > Cyrillic, > Armenian, > Georgian, > Runic, > Ogham, > SpacingModifiers, > CombiningMarks, > > > Hebrew, > Arabic, > Syriac, > Thaana, > > > Devanagari, > Bengali, > Gurmukhi, > Gujarati, > Oriya, > Tamil, > Telugu, > Kannada, > Malayalam, > Sinhala, > Thai, > Lao, > Tibetan, > Myanmar, > Khmer, > > > Han, > Hiragana, > Katakana, > Hangul, > Bopomofo, > Yi, > > > Ethiopic, > Cherokee, > CanadianAboriginal, > Mongolian, > > > CurrencySymbols, > LetterlikeSymbols, > NumberForms, > MathematicalOperators, > TechnicalSymbols, > GeometricSymbols, > MiscellaneousSymbols, > EnclosedAndSquare, > Braille, > > Unicode, > > > Tagalog, > Hanunoo, > Buhid, > Tagbanwa, > > KatakanaHalfWidth, > > > Limbu, > TaiLe, > > > > NScripts, > UnknownScript = NScripts, > > NoScript, > > > > > > Han_Japanese, > Han_SimplifiedChinese, > Han_TraditionalChinese, > Han_Korean, > > LastPrivateScript > > }; > > QString defaultFamily() const; > QString lastResortFamily() const; > QString lastResortFont() const; ># 308 "/usr/qt/3/include/qfont.h" > QFont resolve( const QFont & ) const; > >protected: > > bool dirty() const; > int deciPointSize() const; > >private: > QFont( QFontPrivate *, QPaintDevice *pd ); > > void detach(); > > > > > void x11SetScreen( int screen = -1 ); > int x11Screen() const; > > > friend class QFontMetrics; > friend class QFontInfo; > friend class QPainter; > friend class QPSPrinterFont; > friend class QApplication; > friend class QWidget; > friend class QTextFormatCollection; > friend class QTextLayout; > friend class QTextItem; > friend class QGLContext; > > > friend QDataStream &operator<<( QDataStream &, const QFont & ); > friend QDataStream &operator>>( QDataStream &, QFont & ); > > > QFontPrivate *d; >}; > > >inline bool QFont::bold() const >{ return weight() > Normal; } > > >inline void QFont::setBold( bool enable ) >{ setWeight( enable ? Bold : Normal ); } ># 362 "/usr/qt/3/include/qfont.h" > QDataStream &operator<<( QDataStream &, const QFont & ); > QDataStream &operator>>( QDataStream &, QFont & ); ># 47 "/usr/qt/3/include/qwidget.h" 2 ># 1 "/usr/qt/3/include/qfontmetrics.h" 1 ># 50 "/usr/qt/3/include/qfontmetrics.h" >class QTextCodec; >class QTextParag; > >class QFontMetrics >{ >public: > QFontMetrics( const QFont & ); > QFontMetrics( const QFont &, QFont::Script ); > QFontMetrics( const QFontMetrics & ); > ~QFontMetrics(); > > QFontMetrics &operator=( const QFontMetrics & ); > > int ascent() const; > int descent() const; > int height() const; > int leading() const; > int lineSpacing() const; > int minLeftBearing() const; > int minRightBearing() const; > int maxWidth() const; > > bool inFont(QChar) const; > > int leftBearing(QChar) const; > int rightBearing(QChar) const; > int width( const QString &, int len = -1 ) const; > > int width( QChar ) const; > > > > > int charWidth( const QString &str, int pos ) const; > QRect boundingRect( const QString &, int len = -1 ) const; > QRect boundingRect( QChar ) const; > QRect boundingRect( int x, int y, int w, int h, int flags, > const QString& str, int len=-1, int tabstops=0, > int *tabarray=0, QTextParag **intern=0 ) const; > QSize size( int flags, > const QString& str, int len=-1, int tabstops=0, > int *tabarray=0, QTextParag **intern=0 ) const; > > int underlinePos() const; > int overlinePos() const; > int strikeOutPos() const; > int lineWidth() const; > >private: > QFontMetrics( const QPainter * ); > > friend class QWidget; > friend class QPainter; > friend class QTextFormat; > > > > > QFontPrivate *d; > QPainter *painter; > int fscript; >}; ># 48 "/usr/qt/3/include/qwidget.h" 2 ># 1 "/usr/qt/3/include/qfontinfo.h" 1 ># 46 "/usr/qt/3/include/qfontinfo.h" >class QFontInfo >{ >public: > QFontInfo( const QFont & ); > QFontInfo( const QFont &, QFont::Script ); > QFontInfo( const QFontInfo & ); > ~QFontInfo(); > > QFontInfo &operator=( const QFontInfo & ); > > QString family() const; > int pixelSize() const; > int pointSize() const; > bool italic() const; > int weight() const; > bool bold() const; > bool underline() const; > bool overline() const; > bool strikeOut() const; > bool fixedPitch() const; > QFont::StyleHint styleHint() const; > bool rawMode() const; > > bool exactMatch() const; > > >private: > QFontInfo( const QPainter * ); > > QFontPrivate *d; > QPainter *painter; > int fscript; > > friend class QWidget; > friend class QPainter; >}; > > >inline bool QFontInfo::bold() const >{ return weight() > QFont::Normal; } ># 49 "/usr/qt/3/include/qwidget.h" 2 ># 1 "/usr/qt/3/include/qsizepolicy.h" 1 ># 42 "/usr/qt/3/include/qsizepolicy.h" ># 1 "/usr/qt/3/include/qglobal.h" 1 ># 43 "/usr/qt/3/include/qsizepolicy.h" 2 > > > > >class QSizePolicy >{ >private: > enum { HSize = 6, HMask = 0x3f, VMask = HMask << HSize, > MayGrow = 1, ExpMask = 2, MayShrink = 4 }; >public: > enum SizeType { Fixed = 0, > Minimum = MayGrow, > Maximum = MayShrink, > Preferred = MayGrow | MayShrink, > MinimumExpanding = MayGrow | ExpMask, > Expanding = MayGrow | MayShrink | ExpMask, > Ignored = ExpMask }; > > enum ExpandData { NoDirection = 0, > Horizontally = 1, > Vertically = 2, > > > > > BothDirections = Horizontally | Vertically }; > > QSizePolicy() : data( 0 ) { } > > QSizePolicy( SizeType hor, SizeType ver, bool hfw = FALSE ) > : data( hor | (ver<<HSize) | (hfw ? (Q_UINT32)(1<<2*HSize) : 0) ) { } > QSizePolicy( SizeType hor, SizeType ver, uchar hors, uchar vers, bool hfw = FALSE ); > > SizeType horData() const { return (SizeType)( data & HMask ); } > SizeType verData() const { return (SizeType)( (data & VMask) >> HSize ); } > > bool mayShrinkHorizontally() const { return horData() & MayShrink || horData() == Ignored; } > bool mayShrinkVertically() const { return verData() & MayShrink || verData() == Ignored; } > bool mayGrowHorizontally() const { return horData() & MayGrow || horData() == Ignored; } > bool mayGrowVertically() const { return verData() & MayGrow || verData() == Ignored; } > > ExpandData expanding() const > { > return (ExpandData)( (int)(verData() & ExpMask ? Vertically : 0) | > (int)(horData() & ExpMask ? Horizontally : 0) ); > } > > void setHorData( SizeType d ) { data = (Q_UINT32)(data & ~HMask) | d; } > void setVerData( SizeType d ) { data = (Q_UINT32)(data & ~VMask) | > (d << HSize); } > > void setHeightForWidth( bool b ) { data = b ? (Q_UINT32)( data | ( 1 << 2*HSize ) ) > : (Q_UINT32)( data & ~( 1 << 2*HSize ) ); } > bool hasHeightForWidth() const { return data & ( 1 << 2*HSize ); } > > bool operator==( const QSizePolicy& s ) const { return data == s.data; } > bool operator!=( const QSizePolicy& s ) const { return data != s.data; } > > > uint horStretch() const { return data >> 24; } > uint verStretch() const { return (data >> 16) & 0xff; } > void setHorStretch( uchar sf ) { data = (data&0x00ffffff) | (uint(sf)<<24); } > void setVerStretch( uchar sf ) { data = (data&0xff00ffff) | (uint(sf)<<16); } > inline void transpose(); > >private: > QSizePolicy( int i ) : data( (Q_UINT32)i ) { } > > Q_UINT32 data; >}; > >inline QSizePolicy::QSizePolicy( SizeType hor, SizeType ver, uchar hors, uchar vers, bool hfw ) > : data( hor | (ver<<HSize) | (hfw ? (Q_UINT32)(1<<2*HSize) : 0) ) { > setHorStretch( hors ); > setVerStretch( vers ); >} > >inline void QSizePolicy::transpose() { > *this = QSizePolicy( verData(), horData(), verStretch(), horStretch(), > hasHeightForWidth() ); >} ># 50 "/usr/qt/3/include/qwidget.h" 2 > > >class QLayout; >struct QWExtra; >struct QTLWExtra; >class QFocusData; >class QCursor; >class QWSRegionManager; >class QStyle; > >class QWidget : public QObject, public QPaintDevice >{ > public: virtual QMetaObject *metaObject() const { return staticMetaObject(); } virtual const char *className() const; virtual void* qt_cast( const char* ); virtual bool qt_invoke( int, QUObject* ); virtual bool qt_emit( int, QUObject* ); virtual bool qt_property( int id, int f, QVariant* v); static bool qt_static_property( QObject* , int, int, QVariant* ); static QMetaObject* staticMetaObject(); QObject* qObject() { return (QObject*)this; } private: static QMetaObject *metaObj; > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >public: > explicit QWidget( QWidget* parent=0, const char* name=0, WFlags f=0 ); > ~QWidget(); > > WId winId() const; > void setName( const char *name ); > > > > QStyle &style() const; > void setStyle( QStyle * ); > QStyle* setStyle( const QString& ); > > > > bool isTopLevel() const; > bool isDialog() const; > bool isPopup() const; > bool isDesktop() const; > bool isModal() const; > > bool isEnabled() const; > bool isEnabledTo(QWidget*) const; > bool isEnabledToTLW() const; > >public : > virtual void setEnabled( bool ); > void setDisabled( bool ); > > > >public: > QRect frameGeometry() const; > const QRect &geometry() const; > int x() const; > int y() const; > QPoint pos() const; > QSize frameSize() const; > QSize size() const; > int width() const; > int height() const; > QRect rect() const; > QRect childrenRect() const; > QRegion childrenRegion() const; > > QSize minimumSize() const; > QSize maximumSize() const; > int minimumWidth() const; > int minimumHeight() const; > int maximumWidth() const; > int maximumHeight() const; > void setMinimumSize( const QSize & ); > virtual void setMinimumSize( int minw, int minh ); > void setMaximumSize( const QSize & ); > virtual void setMaximumSize( int maxw, int maxh ); > void setMinimumWidth( int minw ); > void setMinimumHeight( int minh ); > void setMaximumWidth( int maxw ); > void setMaximumHeight( int maxh ); > > QSize sizeIncrement() const; > void setSizeIncrement( const QSize & ); > virtual void setSizeIncrement( int w, int h ); > QSize baseSize() const; > void setBaseSize( const QSize & ); > void setBaseSize( int basew, int baseh ); > > void setFixedSize( const QSize & ); > void setFixedSize( int w, int h ); > void setFixedWidth( int w ); > void setFixedHeight( int h ); > > > > QPoint mapToGlobal( const QPoint & ) const; > QPoint mapFromGlobal( const QPoint & ) const; > QPoint mapToParent( const QPoint & ) const; > QPoint mapFromParent( const QPoint & ) const; > QPoint mapTo( QWidget *, const QPoint & ) const; > QPoint mapFrom( QWidget *, const QPoint & ) const; > > QWidget *topLevelWidget() const; > > > > BackgroundMode backgroundMode() const; > virtual void setBackgroundMode( BackgroundMode ); > void setBackgroundMode( BackgroundMode, BackgroundMode ); > > const QColor & foregroundColor() const; > > const QColor & eraseColor() const; > virtual void setEraseColor( const QColor & ); > > const QPixmap * erasePixmap() const; > virtual void setErasePixmap( const QPixmap & ); > > > const QColorGroup & colorGroup() const; > const QPalette & palette() const; > bool ownPalette() const; > virtual void setPalette( const QPalette & ); > void unsetPalette(); > > > const QColor & paletteForegroundColor() const; > void setPaletteForegroundColor( const QColor & ); > > const QColor & paletteBackgroundColor() const; > virtual void setPaletteBackgroundColor( const QColor & ); > > const QPixmap * paletteBackgroundPixmap() const; > virtual void setPaletteBackgroundPixmap( const QPixmap & ); > > const QBrush& backgroundBrush() const; > > QFont font() const; > bool ownFont() const; > virtual void setFont( const QFont & ); > void unsetFont(); > QFontMetrics fontMetrics() const; > QFontInfo fontInfo() const; > > > const QCursor &cursor() const; > bool ownCursor() const; > virtual void setCursor( const QCursor & ); > virtual void unsetCursor(); > > > QString caption() const; > const QPixmap *icon() const; > QString iconText() const; > > bool hasMouseTracking() const; > bool hasMouse() const; > > virtual void setMask( const QBitmap & ); > virtual void setMask( const QRegion & ); > void clearMask(); > > const QColor & backgroundColor() const; > virtual void setBackgroundColor( const QColor & ); > const QPixmap * backgroundPixmap() const; > virtual void setBackgroundPixmap( const QPixmap & ); > >public : > > virtual void setCaption( const QString &); > virtual void setIcon( const QPixmap & ); > virtual void setIconText( const QString &); > > virtual void setMouseTracking( bool enable ); > > > > virtual void setFocus(); > void clearFocus(); > >public: > enum FocusPolicy { > NoFocus = 0, > TabFocus = 0x1, > ClickFocus = 0x2, > StrongFocus = TabFocus | ClickFocus | 0x8, > WheelFocus = StrongFocus | 0x4 > }; > > bool isActiveWindow() const; > virtual void setActiveWindow(); > bool isFocusEnabled() const; > > FocusPolicy focusPolicy() const; > virtual void setFocusPolicy( FocusPolicy ); > bool hasFocus() const; > static void setTabOrder( QWidget *, QWidget * ); > virtual void setFocusProxy( QWidget * ); > QWidget * focusProxy() const; > > void setInputMethodEnabled( bool b ); > bool isInputMethodEnabled() const; > > > void grabMouse(); > > void grabMouse( const QCursor & ); > > void releaseMouse(); > void grabKeyboard(); > void releaseKeyboard(); > static QWidget * mouseGrabber(); > static QWidget * keyboardGrabber(); > > > > bool isUpdatesEnabled() const; > > > > >public : > virtual void setUpdatesEnabled( bool enable ); > void update(); > void update( int x, int y, int w, int h ); > void update( const QRect& ); > void repaint(); > void repaint( bool erase ); > void repaint( int x, int y, int w, int h, bool erase=TRUE ); > void repaint( const QRect &, bool erase = TRUE ); > void repaint( const QRegion &, bool erase = TRUE ); > > > > virtual void show(); > virtual void hide(); > void setShown( bool show ); > void setHidden( bool hide ); > > > > virtual void showMinimized(); > virtual void showMaximized(); > void showFullScreen(); > virtual void showNormal(); > virtual void polish(); > void constPolish() const; > bool close(); > > void raise(); > void lower(); > void stackUnder( QWidget* ); > virtual void move( int x, int y ); > void move( const QPoint & ); > virtual void resize( int w, int h ); > void resize( const QSize & ); > virtual void setGeometry( int x, int y, int w, int h ); > virtual void setGeometry( const QRect & ); > >public: > virtual bool close( bool alsoDelete ); > bool isVisible() const; > bool isVisibleTo(QWidget*) const; > bool isVisibleToTLW() const; > QRect visibleRect() const; > bool isHidden() const; > bool isShown() const; > bool isMinimized() const; > bool isMaximized() const; > bool isFullScreen() const; > > uint windowState() const; > void setWindowState(uint windowState); > > virtual QSize sizeHint() const; > virtual QSize minimumSizeHint() const; > virtual QSizePolicy sizePolicy() const; > virtual void setSizePolicy( QSizePolicy ); > void setSizePolicy( QSizePolicy::SizeType hor, QSizePolicy::SizeType ver, bool hfw = FALSE ); > virtual int heightForWidth(int) const; > > QRegion clipRegion() const; > > >public : > virtual void adjustSize(); > >public: > > QLayout * layout() const { return lay_out; } > > void updateGeometry(); > virtual void reparent( QWidget *parent, WFlags, const QPoint &, > bool showIt=FALSE ); > void reparent( QWidget *parent, const QPoint &, > bool showIt=FALSE ); > > > > > > void erase(); > void erase( int x, int y, int w, int h ); > void erase( const QRect & ); > void erase( const QRegion & ); > void scroll( int dx, int dy ); > void scroll( int dx, int dy, const QRect& ); > > void drawText( int x, int y, const QString &); > void drawText( const QPoint &, const QString &); > > > > QWidget * focusWidget() const; > QRect microFocusHint() const; > > > > bool acceptDrops() const; > virtual void setAcceptDrops( bool on ); > > > > virtual void setAutoMask(bool); > bool autoMask() const; > > enum BackgroundOrigin { WidgetOrigin, ParentOrigin, WindowOrigin, AncestorOrigin }; > > virtual void setBackgroundOrigin( BackgroundOrigin ); > BackgroundOrigin backgroundOrigin() const; > QPoint backgroundOffset() const; > > > virtual bool customWhatsThis() const; > > QWidget * parentWidget( bool sameWindow = FALSE ) const; > WState testWState( WState s ) const; > WFlags testWFlags( WFlags f ) const; > static QWidget * find( WId ); > static QWidgetMapper *wmapper(); > > QWidget *childAt( int x, int y, bool includeThis = FALSE ) const; > QWidget *childAt( const QPoint &, bool includeThis = FALSE ) const; ># 468 "/usr/qt/3/include/qwidget.h" > void setWindowOpacity(double level); > double windowOpacity() const; > >protected: > > bool event( QEvent * ); > virtual void mousePressEvent( QMouseEvent * ); > virtual void mouseReleaseEvent( QMouseEvent * ); > virtual void mouseDoubleClickEvent( QMouseEvent * ); > virtual void mouseMoveEvent( QMouseEvent * ); > > virtual void wheelEvent( QWheelEvent * ); > > virtual void keyPressEvent( QKeyEvent * ); > virtual void keyReleaseEvent( QKeyEvent * ); > virtual void focusInEvent( QFocusEvent * ); > virtual void focusOutEvent( QFocusEvent * ); > virtual void enterEvent( QEvent * ); > virtual void leaveEvent( QEvent * ); > virtual void paintEvent( QPaintEvent * ); > virtual void moveEvent( QMoveEvent * ); > virtual void resizeEvent( QResizeEvent * ); > virtual void closeEvent( QCloseEvent * ); > virtual void contextMenuEvent( QContextMenuEvent * ); > virtual void imStartEvent( QIMEvent * ); > virtual void imComposeEvent( QIMEvent * ); > virtual void imEndEvent( QIMEvent * ); > virtual void tabletEvent( QTabletEvent * ); > > > virtual void dragEnterEvent( QDragEnterEvent * ); > virtual void dragMoveEvent( QDragMoveEvent * ); > virtual void dragLeaveEvent( QDragLeaveEvent * ); > virtual void dropEvent( QDropEvent * ); > > > virtual void showEvent( QShowEvent * ); > virtual void hideEvent( QHideEvent * ); ># 514 "/usr/qt/3/include/qwidget.h" > virtual bool x11Event( XEvent * ); > > > > > > > > virtual void updateMask(); > > > > > virtual void styleChange( QStyle& ); > > virtual void enabledChange( bool oldEnabled ); > > virtual void paletteChange( const QPalette & ); > > virtual void fontChange( const QFont & ); > virtual void windowActivationChange( bool oldActive ); > > int metric( int ) const; > > void resetInputContext(); > > virtual void create( WId = 0, bool initializeWindow = TRUE, > bool destroyOldWindow = TRUE ); > virtual void destroy( bool destroyWindow = TRUE, > bool destroySubWindows = TRUE ); > uint getWState() const; > virtual void setWState( uint ); > void clearWState( uint n ); > WFlags getWFlags() const; > virtual void setWFlags( WFlags ); > void clearWFlags( WFlags n ); > > virtual bool focusNextPrevChild( bool next ); > > QWExtra *extraData(); > QTLWExtra *topData(); > QFocusData *focusData(); > > virtual void setKeyCompression(bool); > virtual void setMicroFocusHint(int x, int y, int w, int h, bool text=TRUE, QFont *f = 0); ># 567 "/usr/qt/3/include/qwidget.h" >private : > void focusProxyDestroyed(); > >private: > void setFontSys( QFont *f = 0 ); > > void createInputContext(); > void destroyInputContext(); > void focusInputContext(); > void checkChildrenDnd(); ># 597 "/usr/qt/3/include/qwidget.h" > void setLayout( QLayout *l ); > > void setWinId( WId ); > void showWindow(); > void hideWindow(); > void showChildren( bool spontaneous ); > void hideChildren( bool spontaneous ); > void reparentSys( QWidget *parent, WFlags, const QPoint &, bool showIt); > void createTLExtra(); > void createExtra(); > void deleteExtra(); > void createSysExtra(); > void deleteSysExtra(); > void createTLSysExtra(); > void deleteTLSysExtra(); > void deactivateWidgetCleanup(); > void internalSetGeometry( int, int, int, int, bool ); > void reparentFocusWidgets( QWidget * ); > QFocusData *focusData( bool create ); > void setBackgroundFromMode(); > void setBackgroundColorDirect( const QColor & ); > void setBackgroundPixmapDirect( const QPixmap & ); > void setBackgroundModeDirect( BackgroundMode ); > void setBackgroundEmpty(); > void updateFrameStrut() const; > > void setBackgroundX11Relative(); > > > WId winid; > uint widget_state; > uint widget_flags; > uint focus_policy : 4; > uint own_font :1; > uint own_palette :1; > uint sizehint_forced :1; > uint is_closing :1; > uint in_show : 1; > uint in_show_maximized : 1; > uint fstrut_dirty : 1; > uint im_enabled : 1; > QRect crect; > QColor bg_col; > > QPalette pal; > > QFont fnt; > > QLayout *lay_out; > > QWExtra *extra; ># 678 "/usr/qt/3/include/qwidget.h" > static int instanceCounter; > static int maxInstances; > > static void createMapper(); > static void destroyMapper(); > static QWidgetList *wList(); > static QWidgetList *tlwList(); > static QWidgetMapper *mapper; > friend class QApplication; > friend class QBaseApplication; > friend class QPainter; > friend class QFontMetrics; > friend class QFontInfo; > friend class QETWidget; > friend class QLayout; > >private: > > QWidget( const QWidget & ); > QWidget &operator=( const QWidget & ); > > >public: > > void setPalette( const QPalette &p, bool ) { setPalette( p ); } > > void setFont( const QFont &f, bool ) { setFont( f ); } >}; > > >inline Qt::WState QWidget::testWState( WState s ) const >{ return (widget_state & s); } > >inline Qt::WFlags QWidget::testWFlags( WFlags f ) const >{ return (widget_flags & f); } > > >inline WId QWidget::winId() const >{ return winid; } > >inline bool QWidget::isTopLevel() const >{ return testWFlags(WType_TopLevel); } > >inline bool QWidget::isDialog() const >{ return testWFlags(WType_Dialog); } > >inline bool QWidget::isPopup() const >{ return testWFlags(WType_Popup); } > >inline bool QWidget::isDesktop() const >{ return testWFlags(WType_Desktop); } > >inline bool QWidget::isEnabled() const >{ return !testWState(WState_Disabled); } > >inline bool QWidget::isModal() const >{ return testWFlags(WShowModal); } > >inline bool QWidget::isEnabledToTLW() const >{ return isEnabled(); } > >inline const QRect &QWidget::geometry() const >{ return crect; } > >inline QSize QWidget::size() const >{ return crect.size(); } > >inline int QWidget::width() const >{ return crect.width(); } > >inline int QWidget::height() const >{ return crect.height(); } > >inline QRect QWidget::rect() const >{ return QRect(0,0,crect.width(),crect.height()); } > >inline int QWidget::minimumWidth() const >{ return minimumSize().width(); } > >inline int QWidget::minimumHeight() const >{ return minimumSize().height(); } > >inline int QWidget::maximumWidth() const >{ return maximumSize().width(); } > >inline int QWidget::maximumHeight() const >{ return maximumSize().height(); } > >inline void QWidget::setMinimumSize( const QSize &s ) >{ setMinimumSize(s.width(),s.height()); } > >inline void QWidget::setMaximumSize( const QSize &s ) >{ setMaximumSize(s.width(),s.height()); } > >inline void QWidget::setSizeIncrement( const QSize &s ) >{ setSizeIncrement(s.width(),s.height()); } > >inline void QWidget::setBaseSize( const QSize &s ) >{ setBaseSize(s.width(),s.height()); } > >inline const QColor &QWidget::eraseColor() const >{ return bg_col; } > > >inline const QPalette &QWidget::palette() const >{ return pal; } > > >inline QFont QWidget::font() const >{ return fnt; } > >inline QFontMetrics QWidget::fontMetrics() const >{ return QFontMetrics(font()); } > >inline QFontInfo QWidget::fontInfo() const >{ return QFontInfo(font()); } > >inline bool QWidget::hasMouseTracking() const >{ return testWState(WState_MouseTracking); } > >inline bool QWidget::hasMouse() const >{ return testWState(WState_HasMouse); } > >inline bool QWidget::isFocusEnabled() const >{ return (FocusPolicy)focus_policy != NoFocus; } > >inline QWidget::FocusPolicy QWidget::focusPolicy() const >{ return (FocusPolicy)focus_policy; } > >inline bool QWidget::isUpdatesEnabled() const >{ return !testWState(WState_BlockUpdates); } > >inline void QWidget::update( const QRect &r ) >{ update( r.x(), r.y(), r.width(), r.height() ); } > >inline void QWidget::repaint() >{ repaint( TRUE ); } > >inline void QWidget::repaint( const QRect &r, bool erase ) >{ repaint( r.x(), r.y(), r.width(), r.height(), erase ); } > >inline void QWidget::erase() >{ erase( 0, 0, crect.width(), crect.height() ); } > >inline void QWidget::erase( const QRect &r ) >{ erase( r.x(), r.y(), r.width(), r.height() ); } > >inline bool QWidget::close() >{ return close( FALSE ); } > >inline bool QWidget::isVisible() const >{ return testWState(WState_Visible); } > >inline bool QWidget::isVisibleToTLW() const >{ return isVisible(); } > >inline bool QWidget::isHidden() const >{ return testWState(WState_ForceHide); } > >inline bool QWidget::isShown() const >{ return !testWState(WState_ForceHide); } > >inline void QWidget::move( const QPoint &p ) >{ move( p.x(), p.y() ); } > >inline void QWidget::resize( const QSize &s ) >{ resize( s.width(), s.height()); } > >inline void QWidget::setGeometry( const QRect &r ) >{ setGeometry( r.left(), r.top(), r.width(), r.height() ); } > >inline void QWidget::drawText( const QPoint &p, const QString &s ) >{ drawText( p.x(), p.y(), s ); } > >inline QWidget *QWidget::parentWidget( bool sameWindow ) const >{ > if ( sameWindow ) > return isTopLevel() ? 0 : (QWidget *)QObject::parent(); > return (QWidget *)QObject::parent(); >} > >inline QWidgetMapper *QWidget::wmapper() >{ return mapper; } > >inline uint QWidget::getWState() const >{ return widget_state; } > >inline void QWidget::setWState( uint f ) >{ widget_state |= f; } > >inline void QWidget::clearWState( uint f ) >{ widget_state &= ~f; } > >inline Qt::WFlags QWidget::getWFlags() const >{ return widget_flags; } > >inline void QWidget::setWFlags( WFlags f ) >{ widget_flags |= f; } > >inline void QWidget::clearWFlags( WFlags f ) >{ widget_flags &= ~f; } > >inline void QWidget::constPolish() const >{ > if ( !testWState(WState_Polished) ) { > QWidget* that = (QWidget*) this; > that->polish(); > that->setWState(WState_Polished); > } >} > >inline bool QWidget::ownCursor() const >{ > return testWState( WState_OwnCursor ); >} > >inline bool QWidget::ownFont() const >{ > return own_font; >} > >inline bool QWidget::ownPalette() const >{ > return own_palette; >} > > >inline void QWidget::setSizePolicy( QSizePolicy::SizeType hor, QSizePolicy::SizeType ver, bool hfw ) >{ > setSizePolicy( QSizePolicy( hor, ver, hfw) ); >} > >inline bool QWidget::isInputMethodEnabled() const >{ > return (bool)im_enabled; >} > > > > > >class QFocusData; >class QWSManager; > > > > > > > >struct QTLWExtra { > > QString caption; > QString iconText; > QPixmap *icon; > > QFocusData *focusData; > short incw, inch; > > ulong fleft, fright, ftop, fbottom; > uint unused : 8; > > > > uint savedFlags; > short basew, baseh; > > WId parentWinId; > uint embedded : 1; > uint spont_unmapped: 1; > uint reserved: 1; > uint dnd : 1; > uint uspos : 1; > uint ussize : 1; > void *xic; ># 966 "/usr/qt/3/include/qwidget.h" > QRect normalGeometry; >}; > > > > > > >struct QWExtra { > Q_INT16 minw, minh; > Q_INT16 maxw, maxh; > QPixmap *bg_pix; > QWidget *focus_proxy; > > QCursor *curs; > > QTLWExtra *topextra; > > > > > WId xDndProxy; ># 1000 "/usr/qt/3/include/qwidget.h" > uint bg_origin : 2; > > uint children_use_dnd : 1; > uint compress_events : 1; > > > > > char bg_mode; > char bg_mode_visual; > > QStyle* style; > > QRect micro_focus_hint; > QSizePolicy size_policy; >}; > > ># 1 "/usr/qt/3/include/qwinexport.h" 1 ># 1019 "/usr/qt/3/include/qwidget.h" 2 ># 43 "/usr/qt/3/include/qdialog.h" 2 > > > > > > >class QPushButton; >class QDialogPrivate; > >class QDialog : public QWidget >{ >friend class QPushButton; > public: virtual QMetaObject *metaObject() const { return staticMetaObject(); } virtual const char *className() const; virtual void* qt_cast( const char* ); virtual bool qt_invoke( int, QUObject* ); virtual bool qt_emit( int, QUObject* ); virtual bool qt_property( int id, int f, QVariant* v); static bool qt_static_property( QObject* , int, int, QVariant* ); static QMetaObject* staticMetaObject(); QObject* qObject() { return (QObject*)this; } private: static QMetaObject *metaObj; > > > >public: > explicit QDialog( QWidget* parent=0, const char* name=0, bool modal=FALSE, > WFlags f=0 ); > ~QDialog(); > > enum DialogCode { Rejected, Accepted }; > > int result() const { return rescode; } > > void show(); > void hide(); > void move( int x, int y ); > void move( const QPoint &p ); > void resize( int w, int h ); > void resize( const QSize & ); > void setGeometry( int x, int y, int w, int h ); > void setGeometry( const QRect & ); > > void setOrientation( Orientation orientation ); > Orientation orientation() const; > > void setExtension( QWidget* extension ); > QWidget* extension() const; > > QSize sizeHint() const; > QSize minimumSizeHint() const; > > void setSizeGripEnabled( bool ); > bool isSizeGripEnabled() const; > > void setModal( bool modal ); > bool isModal() const; > > > > >public : > int exec(); > >protected : > virtual void done( int ); > virtual void accept(); > virtual void reject(); > > void showExtension( bool ); > >protected: > void setResult( int r ) { rescode = r; } > void keyPressEvent( QKeyEvent * ); > void closeEvent( QCloseEvent * ); > void resizeEvent( QResizeEvent * ); > void contextMenuEvent( QContextMenuEvent * ); > bool eventFilter( QObject *, QEvent * ); > void adjustPosition( QWidget*); > >private: > void setDefault( QPushButton * ); > void setMainDefault( QPushButton * ); > void hideDefault(); > > > > > int rescode; > uint did_move : 1; > uint has_relpos : 1; > uint did_resize : 1; > uint in_loop: 1; > void adjustPositionInternal( QWidget*, bool useRelPos = FALSE ); > QDialogPrivate* d; > >private: > > QDialog( const QDialog & ); > QDialog &operator=( const QDialog & ); > >}; ># 15 "drgeo-filter-chooserbase.h" 2 > >class QVBoxLayout; >class QHBoxLayout; >class QGridLayout; >class QSpacerItem; >class QLabel; >class KListBox; >class QListBoxItem; >class QFrame; >class KPushButton; > >class KigFilterDrgeoChooserBase : public QDialog >{ > public: virtual QMetaObject *metaObject() const { return staticMetaObject(); } virtual const char *className() const; virtual void* qt_cast( const char* ); virtual bool qt_invoke( int, QUObject* ); virtual bool qt_emit( int, QUObject* ); virtual bool qt_property( int id, int f, QVariant* v); static bool qt_static_property( QObject* , int, int, QVariant* ); static QMetaObject* staticMetaObject(); QObject* qObject() { return (QObject*)this; } private: static QMetaObject *metaObj; > >public: > KigFilterDrgeoChooserBase( QWidget* parent = 0, const char* name = 0, bool modal = FALSE, WFlags fl = 0 ); > ~KigFilterDrgeoChooserBase(); > > QLabel* ExplanationTextLabel; > KListBox* FigureListBox; > QFrame* Line1; > KPushButton* OKButton; > KPushButton* CancelButton; > >protected: > QVBoxLayout* KigFilterDrgeoChooserBaseLayout; > QHBoxLayout* Layout1; > QHBoxLayout* Layout7; > QSpacerItem* spacer; > >protected : > virtual void languageChange(); > >}; ># 23 "drgeo-filter-chooser.h" 2 > >class QListBoxItem; >class QStringList; > >class KigFilterDrgeoChooser > : public KigFilterDrgeoChooserBase >{ > public: virtual QMetaObject *metaObject() const { return staticMetaObject(); } virtual const char *className() const; virtual void* qt_cast( const char* ); virtual bool qt_invoke( int, QUObject* ); virtual bool qt_emit( int, QUObject* ); virtual bool qt_property( int id, int f, QVariant* v); static bool qt_static_property( QObject* , int, int, QVariant* ); static QMetaObject* staticMetaObject(); QObject* qObject() { return (QObject*)this; } private: static QMetaObject *metaObj; > >public: > KigFilterDrgeoChooser( const QStringList& l ); > ~KigFilterDrgeoChooser(); >public : > void slotOKPressed(); > void slotCancelPressed(); > void slotExecuted( QListBoxItem* ); >}; ># 22 "drgeo-filter.cc" 2 ># 1 "filters-common.h" 1 ># 18 "filters-common.h" >class ObjectTypeCalcer; >class Coordinate; >class ObjectCalcer; >class QCString; >class KigDocument; > > > >ObjectTypeCalcer* filtersConstructTextObject( > const Coordinate& c, ObjectCalcer* o, > const QCString& arg, const KigDocument& doc, bool needframe ); ># 23 "drgeo-filter.cc" 2 > ># 1 "../kig/kig_document.h" 1 ># 21 "../kig/kig_document.h" ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/set" 1 3 ># 64 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/set" 3 > ># 65 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/set" 3 > ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_tree.h" 1 3 ># 89 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_tree.h" 3 ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_function.h" 1 3 ># 64 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_function.h" 3 >namespace std >{ ># 101 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_function.h" 3 >template <class _Arg, class _Result> >struct unary_function { > typedef _Arg argument_type; > typedef _Result result_type; >}; > > > > >template <class _Arg1, class _Arg2, class _Result> >struct binary_function { > typedef _Arg1 first_argument_type; > typedef _Arg2 second_argument_type; > typedef _Result result_type; >}; ># 127 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_function.h" 3 >template <class _Tp> >struct plus : public binary_function<_Tp,_Tp,_Tp> { > _Tp operator()(const _Tp& __x, const _Tp& __y) const { return __x + __y; } >}; > > >template <class _Tp> >struct minus : public binary_function<_Tp,_Tp,_Tp> { > _Tp operator()(const _Tp& __x, const _Tp& __y) const { return __x - __y; } >}; > > >template <class _Tp> >struct multiplies : public binary_function<_Tp,_Tp,_Tp> { > _Tp operator()(const _Tp& __x, const _Tp& __y) const { return __x * __y; } >}; > > >template <class _Tp> >struct divides : public binary_function<_Tp,_Tp,_Tp> { > _Tp operator()(const _Tp& __x, const _Tp& __y) const { return __x / __y; } >}; > > >template <class _Tp> >struct modulus : public binary_function<_Tp,_Tp,_Tp> >{ > _Tp operator()(const _Tp& __x, const _Tp& __y) const { return __x % __y; } >}; > > >template <class _Tp> >struct negate : public unary_function<_Tp,_Tp> >{ > _Tp operator()(const _Tp& __x) const { return -__x; } >}; ># 173 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_function.h" 3 >template <class _Tp> >struct equal_to : public binary_function<_Tp,_Tp,bool> >{ > bool operator()(const _Tp& __x, const _Tp& __y) const { return __x == __y; } >}; > > >template <class _Tp> >struct not_equal_to : public binary_function<_Tp,_Tp,bool> >{ > bool operator()(const _Tp& __x, const _Tp& __y) const { return __x != __y; } >}; > > >template <class _Tp> >struct greater : public binary_function<_Tp,_Tp,bool> >{ > bool operator()(const _Tp& __x, const _Tp& __y) const { return __x > __y; } >}; > > >template <class _Tp> >struct less : public binary_function<_Tp,_Tp,bool> >{ > bool operator()(const _Tp& __x, const _Tp& __y) const { return __x < __y; } >}; > > >template <class _Tp> >struct greater_equal : public binary_function<_Tp,_Tp,bool> >{ > bool operator()(const _Tp& __x, const _Tp& __y) const { return __x >= __y; } >}; > > >template <class _Tp> >struct less_equal : public binary_function<_Tp,_Tp,bool> >{ > bool operator()(const _Tp& __x, const _Tp& __y) const { return __x <= __y; } >}; ># 222 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_function.h" 3 >template <class _Tp> >struct logical_and : public binary_function<_Tp,_Tp,bool> >{ > bool operator()(const _Tp& __x, const _Tp& __y) const { return __x && __y; } >}; > > >template <class _Tp> >struct logical_or : public binary_function<_Tp,_Tp,bool> >{ > bool operator()(const _Tp& __x, const _Tp& __y) const { return __x || __y; } >}; > > >template <class _Tp> >struct logical_not : public unary_function<_Tp,bool> >{ > bool operator()(const _Tp& __x) const { return !__x; } >}; ># 271 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_function.h" 3 >template <class _Predicate> >class unary_negate > : public unary_function<typename _Predicate::argument_type, bool> { >protected: > _Predicate _M_pred; >public: > explicit unary_negate(const _Predicate& __x) : _M_pred(__x) {} > bool operator()(const typename _Predicate::argument_type& __x) const { > return !_M_pred(__x); > } >}; > > >template <class _Predicate> >inline unary_negate<_Predicate> >not1(const _Predicate& __pred) >{ > return unary_negate<_Predicate>(__pred); >} > > >template <class _Predicate> >class binary_negate > : public binary_function<typename _Predicate::first_argument_type, > typename _Predicate::second_argument_type, > bool> { >protected: > _Predicate _M_pred; >public: > explicit binary_negate(const _Predicate& __x) : _M_pred(__x) {} > bool operator()(const typename _Predicate::first_argument_type& __x, > const typename _Predicate::second_argument_type& __y) const > { > return !_M_pred(__x, __y); > } >}; > > >template <class _Predicate> >inline binary_negate<_Predicate> >not2(const _Predicate& __pred) >{ > return binary_negate<_Predicate>(__pred); >} ># 349 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_function.h" 3 >template <class _Operation> >class binder1st > : public unary_function<typename _Operation::second_argument_type, > typename _Operation::result_type> { >protected: > _Operation op; > typename _Operation::first_argument_type value; >public: > binder1st(const _Operation& __x, > const typename _Operation::first_argument_type& __y) > : op(__x), value(__y) {} > typename _Operation::result_type > operator()(const typename _Operation::second_argument_type& __x) const { > return op(value, __x); > } > > > typename _Operation::result_type > operator()(typename _Operation::second_argument_type& __x) const { > return op(value, __x); > } > >}; > > >template <class _Operation, class _Tp> >inline binder1st<_Operation> >bind1st(const _Operation& __fn, const _Tp& __x) >{ > typedef typename _Operation::first_argument_type _Arg1_type; > return binder1st<_Operation>(__fn, _Arg1_type(__x)); >} > > >template <class _Operation> >class binder2nd > : public unary_function<typename _Operation::first_argument_type, > typename _Operation::result_type> { >protected: > _Operation op; > typename _Operation::second_argument_type value; >public: > binder2nd(const _Operation& __x, > const typename _Operation::second_argument_type& __y) > : op(__x), value(__y) {} > typename _Operation::result_type > operator()(const typename _Operation::first_argument_type& __x) const { > return op(__x, value); > } > > > typename _Operation::result_type > operator()(typename _Operation::first_argument_type& __x) const { > return op(__x, value); > } > >}; > > >template <class _Operation, class _Tp> >inline binder2nd<_Operation> >bind2nd(const _Operation& __fn, const _Tp& __x) >{ > typedef typename _Operation::second_argument_type _Arg2_type; > return binder2nd<_Operation>(__fn, _Arg2_type(__x)); >} ># 438 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_function.h" 3 >template <class _Arg, class _Result> >class pointer_to_unary_function : public unary_function<_Arg, _Result> { >protected: > _Result (*_M_ptr)(_Arg); >public: > pointer_to_unary_function() {} > explicit pointer_to_unary_function(_Result (*__x)(_Arg)) : _M_ptr(__x) {} > _Result operator()(_Arg __x) const { return _M_ptr(__x); } >}; > > >template <class _Arg, class _Result> >inline pointer_to_unary_function<_Arg, _Result> ptr_fun(_Result (*__x)(_Arg)) >{ > return pointer_to_unary_function<_Arg, _Result>(__x); >} > > >template <class _Arg1, class _Arg2, class _Result> >class pointer_to_binary_function : > public binary_function<_Arg1,_Arg2,_Result> { >protected: > _Result (*_M_ptr)(_Arg1, _Arg2); >public: > pointer_to_binary_function() {} > explicit pointer_to_binary_function(_Result (*__x)(_Arg1, _Arg2)) > : _M_ptr(__x) {} > _Result operator()(_Arg1 __x, _Arg2 __y) const { > return _M_ptr(__x, __y); > } >}; > > >template <class _Arg1, class _Arg2, class _Result> >inline pointer_to_binary_function<_Arg1,_Arg2,_Result> >ptr_fun(_Result (*__x)(_Arg1, _Arg2)) { > return pointer_to_binary_function<_Arg1,_Arg2,_Result>(__x); >} > > >template <class _Tp> >struct _Identity : public unary_function<_Tp,_Tp> { > _Tp& operator()(_Tp& __x) const { return __x; } > const _Tp& operator()(const _Tp& __x) const { return __x; } >}; > >template <class _Pair> >struct _Select1st : public unary_function<_Pair, typename _Pair::first_type> { > typename _Pair::first_type& operator()(_Pair& __x) const { > return __x.first; > } > const typename _Pair::first_type& operator()(const _Pair& __x) const { > return __x.first; > } >}; > >template <class _Pair> >struct _Select2nd : public unary_function<_Pair, typename _Pair::second_type> >{ > typename _Pair::second_type& operator()(_Pair& __x) const { > return __x.second; > } > const typename _Pair::second_type& operator()(const _Pair& __x) const { > return __x.second; > } >}; ># 528 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_function.h" 3 >template <class _Ret, class _Tp> >class mem_fun_t : public unary_function<_Tp*,_Ret> { >public: > explicit mem_fun_t(_Ret (_Tp::*__pf)()) : _M_f(__pf) {} > _Ret operator()(_Tp* __p) const { return (__p->*_M_f)(); } >private: > _Ret (_Tp::*_M_f)(); >}; > > >template <class _Ret, class _Tp> >class const_mem_fun_t : public unary_function<const _Tp*,_Ret> { >public: > explicit const_mem_fun_t(_Ret (_Tp::*__pf)() const) : _M_f(__pf) {} > _Ret operator()(const _Tp* __p) const { return (__p->*_M_f)(); } >private: > _Ret (_Tp::*_M_f)() const; >}; > > >template <class _Ret, class _Tp> >class mem_fun_ref_t : public unary_function<_Tp,_Ret> { >public: > explicit mem_fun_ref_t(_Ret (_Tp::*__pf)()) : _M_f(__pf) {} > _Ret operator()(_Tp& __r) const { return (__r.*_M_f)(); } >private: > _Ret (_Tp::*_M_f)(); >}; > > >template <class _Ret, class _Tp> >class const_mem_fun_ref_t : public unary_function<_Tp,_Ret> { >public: > explicit const_mem_fun_ref_t(_Ret (_Tp::*__pf)() const) : _M_f(__pf) {} > _Ret operator()(const _Tp& __r) const { return (__r.*_M_f)(); } >private: > _Ret (_Tp::*_M_f)() const; >}; > > >template <class _Ret, class _Tp, class _Arg> >class mem_fun1_t : public binary_function<_Tp*,_Arg,_Ret> { >public: > explicit mem_fun1_t(_Ret (_Tp::*__pf)(_Arg)) : _M_f(__pf) {} > _Ret operator()(_Tp* __p, _Arg __x) const { return (__p->*_M_f)(__x); } >private: > _Ret (_Tp::*_M_f)(_Arg); >}; > > >template <class _Ret, class _Tp, class _Arg> >class const_mem_fun1_t : public binary_function<const _Tp*,_Arg,_Ret> { >public: > explicit const_mem_fun1_t(_Ret (_Tp::*__pf)(_Arg) const) : _M_f(__pf) {} > _Ret operator()(const _Tp* __p, _Arg __x) const > { return (__p->*_M_f)(__x); } >private: > _Ret (_Tp::*_M_f)(_Arg) const; >}; > > >template <class _Ret, class _Tp, class _Arg> >class mem_fun1_ref_t : public binary_function<_Tp,_Arg,_Ret> { >public: > explicit mem_fun1_ref_t(_Ret (_Tp::*__pf)(_Arg)) : _M_f(__pf) {} > _Ret operator()(_Tp& __r, _Arg __x) const { return (__r.*_M_f)(__x); } >private: > _Ret (_Tp::*_M_f)(_Arg); >}; > > >template <class _Ret, class _Tp, class _Arg> >class const_mem_fun1_ref_t : public binary_function<_Tp,_Arg,_Ret> { >public: > explicit const_mem_fun1_ref_t(_Ret (_Tp::*__pf)(_Arg) const) : _M_f(__pf) {} > _Ret operator()(const _Tp& __r, _Arg __x) const { return (__r.*_M_f)(__x); } >private: > _Ret (_Tp::*_M_f)(_Arg) const; >}; > > >template <class _Tp> >class mem_fun_t<void, _Tp> : public unary_function<_Tp*,void> { >public: > explicit mem_fun_t(void (_Tp::*__pf)()) : _M_f(__pf) {} > void operator()(_Tp* __p) const { (__p->*_M_f)(); } >private: > void (_Tp::*_M_f)(); >}; > > >template <class _Tp> >class const_mem_fun_t<void, _Tp> : public unary_function<const _Tp*,void> { >public: > explicit const_mem_fun_t(void (_Tp::*__pf)() const) : _M_f(__pf) {} > void operator()(const _Tp* __p) const { (__p->*_M_f)(); } >private: > void (_Tp::*_M_f)() const; >}; > > >template <class _Tp> >class mem_fun_ref_t<void, _Tp> : public unary_function<_Tp,void> { >public: > explicit mem_fun_ref_t(void (_Tp::*__pf)()) : _M_f(__pf) {} > void operator()(_Tp& __r) const { (__r.*_M_f)(); } >private: > void (_Tp::*_M_f)(); >}; > > >template <class _Tp> >class const_mem_fun_ref_t<void, _Tp> : public unary_function<_Tp,void> { >public: > explicit const_mem_fun_ref_t(void (_Tp::*__pf)() const) : _M_f(__pf) {} > void operator()(const _Tp& __r) const { (__r.*_M_f)(); } >private: > void (_Tp::*_M_f)() const; >}; > > >template <class _Tp, class _Arg> >class mem_fun1_t<void, _Tp, _Arg> : public binary_function<_Tp*,_Arg,void> { >public: > explicit mem_fun1_t(void (_Tp::*__pf)(_Arg)) : _M_f(__pf) {} > void operator()(_Tp* __p, _Arg __x) const { (__p->*_M_f)(__x); } >private: > void (_Tp::*_M_f)(_Arg); >}; > > >template <class _Tp, class _Arg> >class const_mem_fun1_t<void, _Tp, _Arg> > : public binary_function<const _Tp*,_Arg,void> { >public: > explicit const_mem_fun1_t(void (_Tp::*__pf)(_Arg) const) : _M_f(__pf) {} > void operator()(const _Tp* __p, _Arg __x) const { (__p->*_M_f)(__x); } >private: > void (_Tp::*_M_f)(_Arg) const; >}; > > >template <class _Tp, class _Arg> >class mem_fun1_ref_t<void, _Tp, _Arg> > : public binary_function<_Tp,_Arg,void> { >public: > explicit mem_fun1_ref_t(void (_Tp::*__pf)(_Arg)) : _M_f(__pf) {} > void operator()(_Tp& __r, _Arg __x) const { (__r.*_M_f)(__x); } >private: > void (_Tp::*_M_f)(_Arg); >}; > > >template <class _Tp, class _Arg> >class const_mem_fun1_ref_t<void, _Tp, _Arg> > : public binary_function<_Tp,_Arg,void> { >public: > explicit const_mem_fun1_ref_t(void (_Tp::*__pf)(_Arg) const) : _M_f(__pf) {} > void operator()(const _Tp& __r, _Arg __x) const { (__r.*_M_f)(__x); } >private: > void (_Tp::*_M_f)(_Arg) const; >}; > > > > > >template <class _Ret, class _Tp> >inline mem_fun_t<_Ret,_Tp> mem_fun(_Ret (_Tp::*__f)()) > { return mem_fun_t<_Ret,_Tp>(__f); } > >template <class _Ret, class _Tp> >inline const_mem_fun_t<_Ret,_Tp> mem_fun(_Ret (_Tp::*__f)() const) > { return const_mem_fun_t<_Ret,_Tp>(__f); } > >template <class _Ret, class _Tp> >inline mem_fun_ref_t<_Ret,_Tp> mem_fun_ref(_Ret (_Tp::*__f)()) > { return mem_fun_ref_t<_Ret,_Tp>(__f); } > >template <class _Ret, class _Tp> >inline const_mem_fun_ref_t<_Ret,_Tp> mem_fun_ref(_Ret (_Tp::*__f)() const) > { return const_mem_fun_ref_t<_Ret,_Tp>(__f); } > >template <class _Ret, class _Tp, class _Arg> >inline mem_fun1_t<_Ret,_Tp,_Arg> mem_fun(_Ret (_Tp::*__f)(_Arg)) > { return mem_fun1_t<_Ret,_Tp,_Arg>(__f); } > >template <class _Ret, class _Tp, class _Arg> >inline const_mem_fun1_t<_Ret,_Tp,_Arg> mem_fun(_Ret (_Tp::*__f)(_Arg) const) > { return const_mem_fun1_t<_Ret,_Tp,_Arg>(__f); } > >template <class _Ret, class _Tp, class _Arg> >inline mem_fun1_ref_t<_Ret,_Tp,_Arg> mem_fun_ref(_Ret (_Tp::*__f)(_Arg)) > { return mem_fun1_ref_t<_Ret,_Tp,_Arg>(__f); } > >template <class _Ret, class _Tp, class _Arg> >inline const_mem_fun1_ref_t<_Ret,_Tp,_Arg> >mem_fun_ref(_Ret (_Tp::*__f)(_Arg) const) > { return const_mem_fun1_ref_t<_Ret,_Tp,_Arg>(__f); } > > > >} ># 90 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_tree.h" 2 3 > >namespace std >{ > enum _Rb_tree_color { _M_red = false, _M_black = true }; > > struct _Rb_tree_node_base > { > typedef _Rb_tree_node_base* _Base_ptr; > > _Rb_tree_color _M_color; > _Base_ptr _M_parent; > _Base_ptr _M_left; > _Base_ptr _M_right; > > static _Base_ptr > _S_minimum(_Base_ptr __x) > { > while (__x->_M_left != 0) __x = __x->_M_left; > return __x; > } > > static _Base_ptr > _S_maximum(_Base_ptr __x) > { > while (__x->_M_right != 0) __x = __x->_M_right; > return __x; > } > }; > > template<typename _Val> > struct _Rb_tree_node : public _Rb_tree_node_base > { > typedef _Rb_tree_node<_Val>* _Link_type; > _Val _M_value_field; > }; > > struct _Rb_tree_base_iterator > { > typedef _Rb_tree_node_base::_Base_ptr _Base_ptr; > typedef bidirectional_iterator_tag iterator_category; > typedef ptrdiff_t difference_type; > > _Base_ptr _M_node; > > void > _M_increment() > { > if (_M_node->_M_right != 0) > { > _M_node = _M_node->_M_right; > while (_M_node->_M_left != 0) > _M_node = _M_node->_M_left; > } > else > { > _Base_ptr __y = _M_node->_M_parent; > while (_M_node == __y->_M_right) > { > _M_node = __y; > __y = __y->_M_parent; > } > if (_M_node->_M_right != __y) > _M_node = __y; > } > } > > void > _M_decrement() > { > if (_M_node->_M_color == _M_red > && _M_node->_M_parent->_M_parent == _M_node) > _M_node = _M_node->_M_right; > else if (_M_node->_M_left != 0) > { > _Base_ptr __y = _M_node->_M_left; > while (__y->_M_right != 0) > __y = __y->_M_right; > _M_node = __y; > } > else > { > _Base_ptr __y = _M_node->_M_parent; > while (_M_node == __y->_M_left) > { > _M_node = __y; > __y = __y->_M_parent; > } > _M_node = __y; > } > } > }; > > template<typename _Val, typename _Ref, typename _Ptr> > struct _Rb_tree_iterator : public _Rb_tree_base_iterator > { > typedef _Val value_type; > typedef _Ref reference; > typedef _Ptr pointer; > typedef _Rb_tree_iterator<_Val, _Val&, _Val*> iterator; > typedef _Rb_tree_iterator<_Val, const _Val&, const _Val*> > const_iterator; > typedef _Rb_tree_iterator<_Val, _Ref, _Ptr> _Self; > typedef _Rb_tree_node<_Val>* _Link_type; > > _Rb_tree_iterator() { _M_node = 0; } > _Rb_tree_iterator(_Link_type __x) { _M_node = __x; } > _Rb_tree_iterator(const iterator& __it) { _M_node = __it._M_node; } > > reference > operator*() const { return _Link_type(_M_node)->_M_value_field; } > > pointer > operator->() const { return &(operator*()); } > > _Self& > operator++() > { > _M_increment(); > return *this; > } > > _Self > operator++(int) > { > _Self __tmp = *this; > _M_increment(); > return __tmp; > } > > _Self& > operator--() { _M_decrement(); return *this; } > > _Self > operator--(int) > { > _Self __tmp = *this; > _M_decrement(); > return __tmp; > } > }; > > template<typename _Val, typename _Ref, typename _Ptr> > inline bool > operator==(const _Rb_tree_iterator<_Val, _Ref, _Ptr>& __x, > const _Rb_tree_iterator<_Val, _Ref, _Ptr>& __y) > { return __x._M_node == __y._M_node; } > > template<typename _Val> > inline bool > operator==(const _Rb_tree_iterator<_Val, const _Val&, const _Val*>& __x, > const _Rb_tree_iterator<_Val, _Val&, _Val*>& __y) > { return __x._M_node == __y._M_node; } > > template<typename _Val> > inline bool > operator==(const _Rb_tree_iterator<_Val, _Val&, _Val*>& __x, > const _Rb_tree_iterator<_Val, const _Val&, const _Val*>& __y) > { return __x._M_node == __y._M_node; } > > template<typename _Val, typename _Ref, typename _Ptr> > inline bool > operator!=(const _Rb_tree_iterator<_Val, _Ref, _Ptr>& __x, > const _Rb_tree_iterator<_Val, _Ref, _Ptr>& __y) > { return __x._M_node != __y._M_node; } > > template<typename _Val> > inline bool > operator!=(const _Rb_tree_iterator<_Val, const _Val&, const _Val*>& __x, > const _Rb_tree_iterator<_Val, _Val&, _Val*>& __y) > { return __x._M_node != __y._M_node; } > > template<typename _Val> > inline bool > operator!=(const _Rb_tree_iterator<_Val, _Val&, _Val*>& __x, > const _Rb_tree_iterator<_Val, const _Val&, const _Val*>& __y) > { return __x._M_node != __y._M_node; } > > inline void > _Rb_tree_rotate_left(_Rb_tree_node_base* __x, _Rb_tree_node_base*& __root) > { > _Rb_tree_node_base* __y = __x->_M_right; > __x->_M_right = __y->_M_left; > if (__y->_M_left !=0) > __y->_M_left->_M_parent = __x; > __y->_M_parent = __x->_M_parent; > > if (__x == __root) > __root = __y; > else if (__x == __x->_M_parent->_M_left) > __x->_M_parent->_M_left = __y; > else > __x->_M_parent->_M_right = __y; > __y->_M_left = __x; > __x->_M_parent = __y; > } > > inline void > _Rb_tree_rotate_right(_Rb_tree_node_base* __x, _Rb_tree_node_base*& __root) > { > _Rb_tree_node_base* __y = __x->_M_left; > __x->_M_left = __y->_M_right; > if (__y->_M_right != 0) > __y->_M_right->_M_parent = __x; > __y->_M_parent = __x->_M_parent; > > if (__x == __root) > __root = __y; > else if (__x == __x->_M_parent->_M_right) > __x->_M_parent->_M_right = __y; > else > __x->_M_parent->_M_left = __y; > __y->_M_right = __x; > __x->_M_parent = __y; > } > > inline void > _Rb_tree_rebalance(_Rb_tree_node_base* __x, _Rb_tree_node_base*& __root) > { > __x->_M_color = _M_red; > while (__x != __root > && __x->_M_parent->_M_color == _M_red) > { > if (__x->_M_parent == __x->_M_parent->_M_parent->_M_left) > { > _Rb_tree_node_base* __y = __x->_M_parent->_M_parent->_M_right; > if (__y && __y->_M_color == _M_red) > { > __x->_M_parent->_M_color = _M_black; > __y->_M_color = _M_black; > __x->_M_parent->_M_parent->_M_color = _M_red; > __x = __x->_M_parent->_M_parent; > } > else > { > if (__x == __x->_M_parent->_M_right) > { > __x = __x->_M_parent; > _Rb_tree_rotate_left(__x, __root); > } > __x->_M_parent->_M_color = _M_black; > __x->_M_parent->_M_parent->_M_color = _M_red; > _Rb_tree_rotate_right(__x->_M_parent->_M_parent, __root); > } > } > else > { > _Rb_tree_node_base* __y = __x->_M_parent->_M_parent->_M_left; > if (__y && __y->_M_color == _M_red) > { > __x->_M_parent->_M_color = _M_black; > __y->_M_color = _M_black; > __x->_M_parent->_M_parent->_M_color = _M_red; > __x = __x->_M_parent->_M_parent; > } > else > { > if (__x == __x->_M_parent->_M_left) > { > __x = __x->_M_parent; > _Rb_tree_rotate_right(__x, __root); > } > __x->_M_parent->_M_color = _M_black; > __x->_M_parent->_M_parent->_M_color = _M_red; > _Rb_tree_rotate_left(__x->_M_parent->_M_parent, __root); > } > } > } > __root->_M_color = _M_black; > } > > inline _Rb_tree_node_base* > _Rb_tree_rebalance_for_erase(_Rb_tree_node_base* __z, > _Rb_tree_node_base*& __root, > _Rb_tree_node_base*& __leftmost, > _Rb_tree_node_base*& __rightmost) > { > _Rb_tree_node_base* __y = __z; > _Rb_tree_node_base* __x = 0; > _Rb_tree_node_base* __x_parent = 0; > if (__y->_M_left == 0) > __x = __y->_M_right; > else > if (__y->_M_right == 0) > __x = __y->_M_left; > else > { > > __y = __y->_M_right; > while (__y->_M_left != 0) > __y = __y->_M_left; > __x = __y->_M_right; > } > if (__y != __z) > { > > __z->_M_left->_M_parent = __y; > __y->_M_left = __z->_M_left; > if (__y != __z->_M_right) > { > __x_parent = __y->_M_parent; > if (__x) __x->_M_parent = __y->_M_parent; > __y->_M_parent->_M_left = __x; > __y->_M_right = __z->_M_right; > __z->_M_right->_M_parent = __y; > } > else > __x_parent = __y; > if (__root == __z) > __root = __y; > else if (__z->_M_parent->_M_left == __z) > __z->_M_parent->_M_left = __y; > else > __z->_M_parent->_M_right = __y; > __y->_M_parent = __z->_M_parent; > std::swap(__y->_M_color, __z->_M_color); > __y = __z; > > } > else > { > __x_parent = __y->_M_parent; > if (__x) > __x->_M_parent = __y->_M_parent; > if (__root == __z) > __root = __x; > else > if (__z->_M_parent->_M_left == __z) > __z->_M_parent->_M_left = __x; > else > __z->_M_parent->_M_right = __x; > if (__leftmost == __z) > if (__z->_M_right == 0) > __leftmost = __z->_M_parent; > > else > __leftmost = _Rb_tree_node_base::_S_minimum(__x); > if (__rightmost == __z) > if (__z->_M_left == 0) > __rightmost = __z->_M_parent; > > else > __rightmost = _Rb_tree_node_base::_S_maximum(__x); > } > if (__y->_M_color != _M_red) > { > while (__x != __root && (__x == 0 || __x->_M_color == _M_black)) > if (__x == __x_parent->_M_left) > { > _Rb_tree_node_base* __w = __x_parent->_M_right; > if (__w->_M_color == _M_red) > { > __w->_M_color = _M_black; > __x_parent->_M_color = _M_red; > _Rb_tree_rotate_left(__x_parent, __root); > __w = __x_parent->_M_right; > } > if ((__w->_M_left == 0 || > __w->_M_left->_M_color == _M_black) && > (__w->_M_right == 0 || > __w->_M_right->_M_color == _M_black)) > { > __w->_M_color = _M_red; > __x = __x_parent; > __x_parent = __x_parent->_M_parent; > } > else > { > if (__w->_M_right == 0 > || __w->_M_right->_M_color == _M_black) > { > __w->_M_left->_M_color = _M_black; > __w->_M_color = _M_red; > _Rb_tree_rotate_right(__w, __root); > __w = __x_parent->_M_right; > } > __w->_M_color = __x_parent->_M_color; > __x_parent->_M_color = _M_black; > if (__w->_M_right) > __w->_M_right->_M_color = _M_black; > _Rb_tree_rotate_left(__x_parent, __root); > break; > } > } > else > { > > _Rb_tree_node_base* __w = __x_parent->_M_left; > if (__w->_M_color == _M_red) > { > __w->_M_color = _M_black; > __x_parent->_M_color = _M_red; > _Rb_tree_rotate_right(__x_parent, __root); > __w = __x_parent->_M_left; > } > if ((__w->_M_right == 0 || > __w->_M_right->_M_color == _M_black) && > (__w->_M_left == 0 || > __w->_M_left->_M_color == _M_black)) > { > __w->_M_color = _M_red; > __x = __x_parent; > __x_parent = __x_parent->_M_parent; > } > else > { > if (__w->_M_left == 0 || __w->_M_left->_M_color == _M_black) > { > __w->_M_right->_M_color = _M_black; > __w->_M_color = _M_red; > _Rb_tree_rotate_left(__w, __root); > __w = __x_parent->_M_left; > } > __w->_M_color = __x_parent->_M_color; > __x_parent->_M_color = _M_black; > if (__w->_M_left) > __w->_M_left->_M_color = _M_black; > _Rb_tree_rotate_right(__x_parent, __root); > break; > } > } > if (__x) __x->_M_color = _M_black; > } > return __y; > } > > > > > > > > template<typename _Tp, typename _Alloc, bool _S_instanceless> > class _Rb_tree_alloc_base > { > public: > typedef typename _Alloc_traits<_Tp, _Alloc>::allocator_type allocator_type; > > allocator_type > get_allocator() const { return _M_node_allocator; } > > _Rb_tree_alloc_base(const allocator_type& __a) > : _M_node_allocator(__a), _M_header(0) {} > > protected: > typename _Alloc_traits<_Rb_tree_node<_Tp>, _Alloc>::allocator_type > _M_node_allocator; > > _Rb_tree_node<_Tp>* _M_header; > > _Rb_tree_node<_Tp>* > _M_get_node() { return _M_node_allocator.allocate(1); } > > void > _M_put_node(_Rb_tree_node<_Tp>* __p) > { _M_node_allocator.deallocate(__p, 1); } > }; > > > template<typename _Tp, typename _Alloc> > class _Rb_tree_alloc_base<_Tp, _Alloc, true> > { > public: > typedef typename _Alloc_traits<_Tp, _Alloc>::allocator_type allocator_type; > allocator_type get_allocator() const { return allocator_type(); } > > _Rb_tree_alloc_base(const allocator_type&) : _M_header(0) {} > > protected: > _Rb_tree_node<_Tp>* _M_header; > > typedef typename _Alloc_traits<_Rb_tree_node<_Tp>, _Alloc>::_Alloc_type > _Alloc_type; > > _Rb_tree_node<_Tp>* > _M_get_node() { return _Alloc_type::allocate(1); } > > void > _M_put_node(_Rb_tree_node<_Tp>* __p) { _Alloc_type::deallocate(__p, 1); } > }; > > template<typename _Tp, typename _Alloc> > struct _Rb_tree_base : public _Rb_tree_alloc_base<_Tp, _Alloc, > _Alloc_traits<_Tp, _Alloc>::_S_instanceless> > { > typedef _Rb_tree_alloc_base<_Tp, > _Alloc, _Alloc_traits<_Tp, _Alloc>::_S_instanceless> _Base; > typedef typename _Base::allocator_type allocator_type; > > _Rb_tree_base(const allocator_type& __a) > : _Base(__a) { _M_header = _M_get_node(); } > ~_Rb_tree_base() { _M_put_node(_M_header); } > }; > > > template<typename _Key, typename _Val, typename _KeyOfValue, > typename _Compare, typename _Alloc = allocator<_Val> > > class _Rb_tree : protected _Rb_tree_base<_Val, _Alloc> > { > typedef _Rb_tree_base<_Val, _Alloc> _Base; > > protected: > typedef _Rb_tree_node_base* _Base_ptr; > typedef _Rb_tree_node<_Val> _Rb_tree_node; > > public: > typedef _Key key_type; > typedef _Val value_type; > typedef value_type* pointer; > typedef const value_type* const_pointer; > typedef value_type& reference; > typedef const value_type& const_reference; > typedef _Rb_tree_node* _Link_type; > typedef size_t size_type; > typedef ptrdiff_t difference_type; > > typedef typename _Base::allocator_type allocator_type; > allocator_type get_allocator() const { return _Base::get_allocator(); } > > protected: > using _Base::_M_get_node; > using _Base::_M_put_node; > using _Base::_M_header; > > _Link_type > _M_create_node(const value_type& __x) > { > _Link_type __tmp = _M_get_node(); > if (true) > { _Construct(&__tmp->_M_value_field, __x); } > if (false) > { > _M_put_node(__tmp); > ; > } > return __tmp; > } > > _Link_type > _M_clone_node(_Link_type __x) > { > _Link_type __tmp = _M_create_node(__x->_M_value_field); > __tmp->_M_color = __x->_M_color; > __tmp->_M_left = 0; > __tmp->_M_right = 0; > return __tmp; > } > > void > destroy_node(_Link_type __p) > { > _Destroy(&__p->_M_value_field); > _M_put_node(__p); > } > > size_type _M_node_count; > _Compare _M_key_compare; > > _Link_type& > _M_root() const { return (_Link_type&) _M_header->_M_parent; } > > _Link_type& > _M_leftmost() const { return (_Link_type&) _M_header->_M_left; } > > _Link_type& > _M_rightmost() const { return (_Link_type&) _M_header->_M_right; } > > static _Link_type& > _S_left(_Link_type __x) { return (_Link_type&)(__x->_M_left); } > > static _Link_type& > _S_right(_Link_type __x) { return (_Link_type&)(__x->_M_right); } > > static _Link_type& > _S_parent(_Link_type __x) { return (_Link_type&)(__x->_M_parent); } > > static reference > _S_value(_Link_type __x) { return __x->_M_value_field; } > > static const _Key& > _S_key(_Link_type __x) { return _KeyOfValue()(_S_value(__x)); } > > static _Rb_tree_color& > _S_color(_Link_type __x) { return __x->_M_color; } > > static _Link_type& > _S_left(_Base_ptr __x) { return (_Link_type&)(__x->_M_left); } > > static _Link_type& > _S_right(_Base_ptr __x) { return (_Link_type&)(__x->_M_right); } > > static _Link_type& > _S_parent(_Base_ptr __x) { return (_Link_type&)(__x->_M_parent); } > > static reference > _S_value(_Base_ptr __x) { return ((_Link_type)__x)->_M_value_field; } > > static const _Key& > _S_key(_Base_ptr __x) { return _KeyOfValue()(_S_value(_Link_type(__x)));} > > static _Rb_tree_color& > _S_color(_Base_ptr __x) { return (_Link_type(__x)->_M_color); } > > static _Link_type > _S_minimum(_Link_type __x) > { return (_Link_type) _Rb_tree_node_base::_S_minimum(__x); } > > static _Link_type > _S_maximum(_Link_type __x) > { return (_Link_type) _Rb_tree_node_base::_S_maximum(__x); } > > public: > typedef _Rb_tree_iterator<value_type, reference, pointer> iterator; > typedef _Rb_tree_iterator<value_type, const_reference, const_pointer> > const_iterator; > > typedef std::reverse_iterator<const_iterator> const_reverse_iterator; > typedef std::reverse_iterator<iterator> reverse_iterator; > > private: > iterator > _M_insert(_Base_ptr __x, _Base_ptr __y, const value_type& __v); > > _Link_type > _M_copy(_Link_type __x, _Link_type __p); > > void > _M_erase(_Link_type __x); > > public: > > _Rb_tree() > : _Base(allocator_type()), _M_node_count(0), _M_key_compare() > { _M_empty_initialize(); } > > _Rb_tree(const _Compare& __comp) > : _Base(allocator_type()), _M_node_count(0), _M_key_compare(__comp) > { _M_empty_initialize(); } > > _Rb_tree(const _Compare& __comp, const allocator_type& __a) > : _Base(__a), _M_node_count(0), _M_key_compare(__comp) > { _M_empty_initialize(); } > > _Rb_tree(const _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>& __x) > : _Base(__x.get_allocator()), _M_node_count(0), > _M_key_compare(__x._M_key_compare) > { > if (__x._M_root() == 0) > _M_empty_initialize(); > else > { > _S_color(_M_header) = _M_red; > _M_root() = _M_copy(__x._M_root(), _M_header); > _M_leftmost() = _S_minimum(_M_root()); > _M_rightmost() = _S_maximum(_M_root()); > } > _M_node_count = __x._M_node_count; > } > > ~_Rb_tree() { clear(); } > > _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>& > operator=(const _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>& __x); > > private: > void _M_empty_initialize() > { > _S_color(_M_header) = _M_red; > > _M_root() = 0; > _M_leftmost() = _M_header; > _M_rightmost() = _M_header; > } > > public: > > _Compare > key_comp() const { return _M_key_compare; } > > iterator > begin() { return _M_leftmost(); } > > const_iterator > begin() const { return _M_leftmost(); } > > iterator > end() { return _M_header; } > > const_iterator > end() const { return _M_header; } > > reverse_iterator > rbegin() { return reverse_iterator(end()); } > > const_reverse_iterator > rbegin() const { return const_reverse_iterator(end()); } > > reverse_iterator > rend() { return reverse_iterator(begin()); } > > const_reverse_iterator > rend() const { return const_reverse_iterator(begin()); } > > bool > empty() const { return _M_node_count == 0; } > > size_type > size() const { return _M_node_count; } > > size_type > max_size() const { return size_type(-1); } > > void > swap(_Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>& __t) > { > std::swap(_M_header, __t._M_header); > std::swap(_M_node_count, __t._M_node_count); > std::swap(_M_key_compare, __t._M_key_compare); > } > > > pair<iterator,bool> > insert_unique(const value_type& __x); > > iterator > insert_equal(const value_type& __x); > > iterator > insert_unique(iterator __position, const value_type& __x); > > iterator > insert_equal(iterator __position, const value_type& __x); > > template<typename _InputIterator> > void > insert_unique(_InputIterator __first, _InputIterator __last); > > template<typename _InputIterator> > void > insert_equal(_InputIterator __first, _InputIterator __last); > > void > erase(iterator __position); > > size_type > erase(const key_type& __x); > > void > erase(iterator __first, iterator __last); > > void > erase(const key_type* __first, const key_type* __last); > > void > clear() > { > if (_M_node_count != 0) > { > _M_erase(_M_root()); > _M_leftmost() = _M_header; > _M_root() = 0; > _M_rightmost() = _M_header; > _M_node_count = 0; > } > } > > > iterator > find(const key_type& __x); > > const_iterator > find(const key_type& __x) const; > > size_type > count(const key_type& __x) const; > > iterator > lower_bound(const key_type& __x); > > const_iterator > lower_bound(const key_type& __x) const; > > iterator > upper_bound(const key_type& __x); > > const_iterator > upper_bound(const key_type& __x) const; > > pair<iterator,iterator> > equal_range(const key_type& __x); > > pair<const_iterator, const_iterator> > equal_range(const key_type& __x) const; > > > bool > __rb_verify() const; > }; > > template<typename _Key, typename _Val, typename _KeyOfValue, > typename _Compare, typename _Alloc> > inline bool > operator==(const _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>& __x, > const _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>& __y) > { > return __x.size() == __y.size() && > equal(__x.begin(), __x.end(), __y.begin()); > } > > template<typename _Key, typename _Val, typename _KeyOfValue, > typename _Compare, typename _Alloc> > inline bool > operator<(const _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>& __x, > const _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>& __y) > { > return lexicographical_compare(__x.begin(), __x.end(), > __y.begin(), __y.end()); > } > > template<typename _Key, typename _Val, typename _KeyOfValue, > typename _Compare, typename _Alloc> > inline bool > operator!=(const _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>& __x, > const _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>& __y) > { return !(__x == __y); } > > template<typename _Key, typename _Val, typename _KeyOfValue, > typename _Compare, typename _Alloc> > inline bool > operator>(const _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>& __x, > const _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>& __y) > { return __y < __x; } > > template<typename _Key, typename _Val, typename _KeyOfValue, > typename _Compare, typename _Alloc> > inline bool > operator<=(const _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>& __x, > const _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>& __y) > { return !(__y < __x); } > > template<typename _Key, typename _Val, typename _KeyOfValue, > typename _Compare, typename _Alloc> > inline bool > operator>=(const _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>& __x, > const _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>& __y) > { return !(__x < __y); } > > template<typename _Key, typename _Val, typename _KeyOfValue, > typename _Compare, typename _Alloc> > inline void > swap(_Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>& __x, > _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>& __y) > { __x.swap(__y); } > > template<typename _Key, typename _Val, typename _KeyOfValue, > typename _Compare, typename _Alloc> > _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>& > _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>:: > operator=(const _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>& __x) > { > if (this != &__x) > { > > clear(); > _M_node_count = 0; > _M_key_compare = __x._M_key_compare; > if (__x._M_root() == 0) > { > _M_root() = 0; > _M_leftmost() = _M_header; > _M_rightmost() = _M_header; > } > else > { > _M_root() = _M_copy(__x._M_root(), _M_header); > _M_leftmost() = _S_minimum(_M_root()); > _M_rightmost() = _S_maximum(_M_root()); > _M_node_count = __x._M_node_count; > } > } > return *this; > } > > template<typename _Key, typename _Val, typename _KeyOfValue, > typename _Compare, typename _Alloc> > typename _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>::iterator > _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>:: > _M_insert(_Base_ptr __x_, _Base_ptr __y_, const _Val& __v) > { > _Link_type __x = (_Link_type) __x_; > _Link_type __y = (_Link_type) __y_; > _Link_type __z; > > if (__y == _M_header || __x != 0 || > _M_key_compare(_KeyOfValue()(__v), _S_key(__y))) > { > __z = _M_create_node(__v); > _S_left(__y) = __z; > > if (__y == _M_header) > { > _M_root() = __z; > _M_rightmost() = __z; > } > else if (__y == _M_leftmost()) > _M_leftmost() = __z; > } > else > { > __z = _M_create_node(__v); > _S_right(__y) = __z; > > if (__y == _M_rightmost()) > _M_rightmost() = __z; > } > _S_parent(__z) = __y; > _S_left(__z) = 0; > _S_right(__z) = 0; > _Rb_tree_rebalance(__z, _M_header->_M_parent); > ++_M_node_count; > return iterator(__z); > } > > template<typename _Key, typename _Val, typename _KeyOfValue, > typename _Compare, typename _Alloc> > typename _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>::iterator > _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>:: > insert_equal(const _Val& __v) > { > _Link_type __y = _M_header; > _Link_type __x = _M_root(); > while (__x != 0) > { > __y = __x; > __x = _M_key_compare(_KeyOfValue()(__v), _S_key(__x)) ? > _S_left(__x) : _S_right(__x); > } > return _M_insert(__x, __y, __v); > } > > template<typename _Key, typename _Val, typename _KeyOfValue, > typename _Compare, typename _Alloc> > pair<typename _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>::iterator, > bool> > _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>:: > insert_unique(const _Val& __v) > { > _Link_type __y = _M_header; > _Link_type __x = _M_root(); > bool __comp = true; > while (__x != 0) > { > __y = __x; > __comp = _M_key_compare(_KeyOfValue()(__v), _S_key(__x)); > __x = __comp ? _S_left(__x) : _S_right(__x); > } > iterator __j = iterator(__y); > if (__comp) > if (__j == begin()) > return pair<iterator,bool>(_M_insert(__x, __y, __v), true); > else > --__j; > if (_M_key_compare(_S_key(__j._M_node), _KeyOfValue()(__v))) > return pair<iterator,bool>(_M_insert(__x, __y, __v), true); > return pair<iterator,bool>(__j, false); > } > > > template<typename _Key, typename _Val, typename _KeyOfValue, > typename _Compare, typename _Alloc> > typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator > _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: > insert_unique(iterator __position, const _Val& __v) > { > if (__position._M_node == _M_header->_M_left) > { > > if (size() > 0 && > _M_key_compare(_KeyOfValue()(__v), _S_key(__position._M_node))) > return _M_insert(__position._M_node, __position._M_node, __v); > > else > return insert_unique(__v).first; > } > else if (__position._M_node == _M_header) > { > > if (_M_key_compare(_S_key(_M_rightmost()), _KeyOfValue()(__v))) > return _M_insert(0, _M_rightmost(), __v); > else > return insert_unique(__v).first; > } > else > { > iterator __before = __position; > --__before; > if (_M_key_compare(_S_key(__before._M_node), _KeyOfValue()(__v)) > && _M_key_compare(_KeyOfValue()(__v),_S_key(__position._M_node))) > { > if (_S_right(__before._M_node) == 0) > return _M_insert(0, __before._M_node, __v); > else > return _M_insert(__position._M_node, __position._M_node, __v); > > } > else > return insert_unique(__v).first; > } > } > > template<typename _Key, typename _Val, typename _KeyOfValue, > typename _Compare, typename _Alloc> > typename _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>::iterator > _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>:: > insert_equal(iterator __position, const _Val& __v) > { > if (__position._M_node == _M_header->_M_left) > { > > if (size() > 0 && > !_M_key_compare(_S_key(__position._M_node), _KeyOfValue()(__v))) > return _M_insert(__position._M_node, __position._M_node, __v); > > else > return insert_equal(__v); > } > else if (__position._M_node == _M_header) > { > > if (!_M_key_compare(_KeyOfValue()(__v), _S_key(_M_rightmost()))) > return _M_insert(0, _M_rightmost(), __v); > else > return insert_equal(__v); > } > else > { > iterator __before = __position; > --__before; > if (!_M_key_compare(_KeyOfValue()(__v), _S_key(__before._M_node)) > && !_M_key_compare(_S_key(__position._M_node), > _KeyOfValue()(__v))) > { > if (_S_right(__before._M_node) == 0) > return _M_insert(0, __before._M_node, __v); > else > return _M_insert(__position._M_node, __position._M_node, __v); > > } > else > return insert_equal(__v); > } > } > > template<typename _Key, typename _Val, typename _KoV, > typename _Cmp, typename _Alloc> > template<class _II> > void > _Rb_tree<_Key,_Val,_KoV,_Cmp,_Alloc>:: > insert_equal(_II __first, _II __last) > { > for ( ; __first != __last; ++__first) > insert_equal(*__first); > } > > template<typename _Key, typename _Val, typename _KoV, > typename _Cmp, typename _Alloc> > template<class _II> > void > _Rb_tree<_Key,_Val,_KoV,_Cmp,_Alloc>:: > insert_unique(_II __first, _II __last) > { > for ( ; __first != __last; ++__first) > insert_unique(*__first); > } > > template<typename _Key, typename _Val, typename _KeyOfValue, > typename _Compare, typename _Alloc> > inline void > _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>::erase(iterator __position) > { > _Link_type __y = > (_Link_type) _Rb_tree_rebalance_for_erase(__position._M_node, > _M_header->_M_parent, > _M_header->_M_left, > _M_header->_M_right); > destroy_node(__y); > --_M_node_count; > } > > template<typename _Key, typename _Val, typename _KeyOfValue, > typename _Compare, typename _Alloc> > typename _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>::size_type > _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>::erase(const _Key& __x) > { > pair<iterator,iterator> __p = equal_range(__x); > size_type __n = distance(__p.first, __p.second); > erase(__p.first, __p.second); > return __n; > } > > template<typename _Key, typename _Val, typename _KoV, > typename _Compare, typename _Alloc> > typename _Rb_tree<_Key, _Val, _KoV, _Compare, _Alloc>::_Link_type > _Rb_tree<_Key,_Val,_KoV,_Compare,_Alloc>:: > _M_copy(_Link_type __x, _Link_type __p) > { > > _Link_type __top = _M_clone_node(__x); > __top->_M_parent = __p; > > if (true) > { > if (__x->_M_right) > __top->_M_right = _M_copy(_S_right(__x), __top); > __p = __top; > __x = _S_left(__x); > > while (__x != 0) > { > _Link_type __y = _M_clone_node(__x); > __p->_M_left = __y; > __y->_M_parent = __p; > if (__x->_M_right) > __y->_M_right = _M_copy(_S_right(__x), __y); > __p = __y; > __x = _S_left(__x); > } > } > if (false) > { > _M_erase(__top); > ; > } > return __top; > } > > template<typename _Key, typename _Val, typename _KeyOfValue, > typename _Compare, typename _Alloc> > void > _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>::_M_erase(_Link_type __x) > { > > while (__x != 0) > { > _M_erase(_S_right(__x)); > _Link_type __y = _S_left(__x); > destroy_node(__x); > __x = __y; > } > } > > template<typename _Key, typename _Val, typename _KeyOfValue, > typename _Compare, typename _Alloc> > void > _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>:: > erase(iterator __first, iterator __last) > { > if (__first == begin() && __last == end()) > clear(); > else > while (__first != __last) erase(__first++); > } > > template<typename _Key, typename _Val, typename _KeyOfValue, > typename _Compare, typename _Alloc> > void > _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>:: > erase(const _Key* __first, const _Key* __last) > { > while (__first != __last) > erase(*__first++); > } > > template<typename _Key, typename _Val, typename _KeyOfValue, > typename _Compare, typename _Alloc> > typename _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>::iterator > _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>::find(const _Key& __k) > { > _Link_type __y = _M_header; > _Link_type __x = _M_root(); > > while (__x != 0) > if (!_M_key_compare(_S_key(__x), __k)) > __y = __x, __x = _S_left(__x); > else > __x = _S_right(__x); > > iterator __j = iterator(__y); > return (__j == end() || _M_key_compare(__k, _S_key(__j._M_node))) ? > end() : __j; > } > > template<typename _Key, typename _Val, typename _KeyOfValue, > typename _Compare, typename _Alloc> > typename _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>::const_iterator > _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>:: > find(const _Key& __k) const > { > _Link_type __y = _M_header; > _Link_type __x = _M_root(); > > while (__x != 0) > { > if (!_M_key_compare(_S_key(__x), __k)) > __y = __x, __x = _S_left(__x); > else > __x = _S_right(__x); > } > const_iterator __j = const_iterator(__y); > return (__j == end() || _M_key_compare(__k, _S_key(__j._M_node))) ? > end() : __j; > } > > template<typename _Key, typename _Val, typename _KeyOfValue, > typename _Compare, typename _Alloc> > typename _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>::size_type > _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>:: > count(const _Key& __k) const > { > pair<const_iterator, const_iterator> __p = equal_range(__k); > size_type __n = distance(__p.first, __p.second); > return __n; > } > > template<typename _Key, typename _Val, typename _KeyOfValue, > typename _Compare, typename _Alloc> > typename _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>::iterator > _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>:: > lower_bound(const _Key& __k) > { > _Link_type __y = _M_header; > _Link_type __x = _M_root(); > > while (__x != 0) > if (!_M_key_compare(_S_key(__x), __k)) > __y = __x, __x = _S_left(__x); > else > __x = _S_right(__x); > > return iterator(__y); > } > > template<typename _Key, typename _Val, typename _KeyOfValue, > typename _Compare, typename _Alloc> > typename _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>::const_iterator > _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>:: > lower_bound(const _Key& __k) const > { > _Link_type __y = _M_header; > _Link_type __x = _M_root(); > > while (__x != 0) > if (!_M_key_compare(_S_key(__x), __k)) > __y = __x, __x = _S_left(__x); > else > __x = _S_right(__x); > > return const_iterator(__y); > } > > template<typename _Key, typename _Val, typename _KeyOfValue, > typename _Compare, typename _Alloc> > typename _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>::iterator > _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>:: > upper_bound(const _Key& __k) > { > _Link_type __y = _M_header; > _Link_type __x = _M_root(); > > while (__x != 0) > if (_M_key_compare(__k, _S_key(__x))) > __y = __x, __x = _S_left(__x); > else > __x = _S_right(__x); > > return iterator(__y); > } > > template<typename _Key, typename _Val, typename _KeyOfValue, > typename _Compare, typename _Alloc> > typename _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>::const_iterator > _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>:: > upper_bound(const _Key& __k) const > { > _Link_type __y = _M_header; > _Link_type __x = _M_root(); > > while (__x != 0) > if (_M_key_compare(__k, _S_key(__x))) > __y = __x, __x = _S_left(__x); > else > __x = _S_right(__x); > > return const_iterator(__y); > } > > template<typename _Key, typename _Val, typename _KeyOfValue, > typename _Compare, typename _Alloc> > inline > pair<typename _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>::iterator, > typename _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>::iterator> > _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>:: > equal_range(const _Key& __k) > { return pair<iterator, iterator>(lower_bound(__k), upper_bound(__k)); } > > template<typename _Key, typename _Val, typename _KoV, > typename _Compare, typename _Alloc> > inline > pair<typename _Rb_tree<_Key, _Val, _KoV, _Compare, _Alloc>::const_iterator, > typename _Rb_tree<_Key, _Val, _KoV, _Compare, _Alloc>::const_iterator> > _Rb_tree<_Key, _Val, _KoV, _Compare, _Alloc> > ::equal_range(const _Key& __k) const > { > return pair<const_iterator,const_iterator>(lower_bound(__k), > upper_bound(__k)); > } > > inline int > __black_count(_Rb_tree_node_base* __node, _Rb_tree_node_base* __root) > { > if (__node == 0) > return 0; > int __sum = 0; > do > { > if (__node->_M_color == _M_black) > ++__sum; > if (__node == __root) > break; > __node = __node->_M_parent; > } > while (1); > return __sum; > } > > template<typename _Key, typename _Val, typename _KeyOfValue, > typename _Compare, typename _Alloc> > bool > _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>::__rb_verify() const > { > if (_M_node_count == 0 || begin() == end()) > return _M_node_count == 0 && begin() == end() && > _M_header->_M_left == _M_header && _M_header->_M_right == _M_header; > > int __len = __black_count(_M_leftmost(), _M_root()); > for (const_iterator __it = begin(); __it != end(); ++__it) > { > _Link_type __x = (_Link_type) __it._M_node; > _Link_type __L = _S_left(__x); > _Link_type __R = _S_right(__x); > > if (__x->_M_color == _M_red) > if ((__L && __L->_M_color == _M_red) > || (__R && __R->_M_color == _M_red)) > return false; > > if (__L && _M_key_compare(_S_key(__x), _S_key(__L))) > return false; > if (__R && _M_key_compare(_S_key(__R), _S_key(__x))) > return false; > > if (!__L && !__R && __black_count(__x, _M_root()) != __len) > return false; > } > > if (_M_leftmost() != _Rb_tree_node_base::_S_minimum(_M_root())) > return false; > if (_M_rightmost() != _Rb_tree_node_base::_S_maximum(_M_root())) > return false; > return true; > } >} ># 67 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/set" 2 3 ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_set.h" 1 3 ># 66 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_set.h" 3 >namespace std >{ > > > >template <class _Key, class _Compare = less<_Key>, > class _Alloc = allocator<_Key> > >class set; > >template <class _Key, class _Compare, class _Alloc> >inline bool operator==(const set<_Key,_Compare,_Alloc>& __x, > const set<_Key,_Compare,_Alloc>& __y); > >template <class _Key, class _Compare, class _Alloc> >inline bool operator<(const set<_Key,_Compare,_Alloc>& __x, > const set<_Key,_Compare,_Alloc>& __y); > > >template <class _Key, class _Compare, class _Alloc> >class set >{ > > > ; > >public: > > typedef _Key key_type; > typedef _Key value_type; > typedef _Compare key_compare; > typedef _Compare value_compare; >private: > typedef _Rb_tree<key_type, value_type, > _Identity<value_type>, key_compare, _Alloc> _Rep_type; > _Rep_type _M_t; >public: > typedef typename _Alloc::pointer pointer; > typedef typename _Alloc::const_pointer const_pointer; > typedef typename _Alloc::reference reference; > typedef typename _Alloc::const_reference const_reference; > typedef typename _Rep_type::const_iterator iterator; > typedef typename _Rep_type::const_iterator const_iterator; > typedef typename _Rep_type::const_reverse_iterator reverse_iterator; > typedef typename _Rep_type::const_reverse_iterator const_reverse_iterator; > typedef typename _Rep_type::size_type size_type; > typedef typename _Rep_type::difference_type difference_type; > typedef typename _Rep_type::allocator_type allocator_type; > > > > set() : _M_t(_Compare(), allocator_type()) {} > explicit set(const _Compare& __comp, > const allocator_type& __a = allocator_type()) > : _M_t(__comp, __a) {} > > template <class _InputIterator> > set(_InputIterator __first, _InputIterator __last) > : _M_t(_Compare(), allocator_type()) > { _M_t.insert_unique(__first, __last); } > > template <class _InputIterator> > set(_InputIterator __first, _InputIterator __last, const _Compare& __comp, > const allocator_type& __a = allocator_type()) > : _M_t(__comp, __a) { _M_t.insert_unique(__first, __last); } > > set(const set<_Key,_Compare,_Alloc>& __x) : _M_t(__x._M_t) {} > set<_Key,_Compare,_Alloc>& operator=(const set<_Key, _Compare, _Alloc>& __x) > { > _M_t = __x._M_t; > return *this; > } > > > > key_compare key_comp() const { return _M_t.key_comp(); } > value_compare value_comp() const { return _M_t.key_comp(); } > allocator_type get_allocator() const { return _M_t.get_allocator(); } > > iterator begin() const { return _M_t.begin(); } > iterator end() const { return _M_t.end(); } > reverse_iterator rbegin() const { return _M_t.rbegin(); } > reverse_iterator rend() const { return _M_t.rend(); } > bool empty() const { return _M_t.empty(); } > size_type size() const { return _M_t.size(); } > size_type max_size() const { return _M_t.max_size(); } > void swap(set<_Key,_Compare,_Alloc>& __x) { _M_t.swap(__x._M_t); } > > > pair<iterator,bool> insert(const value_type& __x) { > pair<typename _Rep_type::iterator, bool> __p = _M_t.insert_unique(__x); > return pair<iterator, bool>(__p.first, __p.second); > } > iterator insert(iterator __position, const value_type& __x) { > typedef typename _Rep_type::iterator _Rep_iterator; > return _M_t.insert_unique((_Rep_iterator&)__position, __x); > } > template <class _InputIterator> > void insert(_InputIterator __first, _InputIterator __last) { > _M_t.insert_unique(__first, __last); > } > void erase(iterator __position) { > typedef typename _Rep_type::iterator _Rep_iterator; > _M_t.erase((_Rep_iterator&)__position); > } > size_type erase(const key_type& __x) { > return _M_t.erase(__x); > } > void erase(iterator __first, iterator __last) { > typedef typename _Rep_type::iterator _Rep_iterator; > _M_t.erase((_Rep_iterator&)__first, (_Rep_iterator&)__last); > } > void clear() { _M_t.clear(); } > > > > size_type count(const key_type& __x) const { > return _M_t.find(__x) == _M_t.end() ? 0 : 1; > } > > > > iterator find(const key_type& __x) { return _M_t.find(__x); } > const_iterator find(const key_type& __x) const { return _M_t.find(__x); } > iterator lower_bound(const key_type& __x) { > return _M_t.lower_bound(__x); > } > const_iterator lower_bound(const key_type& __x) const { > return _M_t.lower_bound(__x); > } > iterator upper_bound(const key_type& __x) { > return _M_t.upper_bound(__x); > } > const_iterator upper_bound(const key_type& __x) const { > return _M_t.upper_bound(__x); > } > pair<iterator,iterator> equal_range(const key_type& __x) { > return _M_t.equal_range(__x); > } > pair<const_iterator,const_iterator> equal_range(const key_type& __x) const { > return _M_t.equal_range(__x); > } ># 220 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_set.h" 3 > template <class _K1, class _C1, class _A1> > friend bool operator== (const set<_K1,_C1,_A1>&, const set<_K1,_C1,_A1>&); > template <class _K1, class _C1, class _A1> > friend bool operator< (const set<_K1,_C1,_A1>&, const set<_K1,_C1,_A1>&); >}; > >template <class _Key, class _Compare, class _Alloc> >inline bool operator==(const set<_Key,_Compare,_Alloc>& __x, > const set<_Key,_Compare,_Alloc>& __y) { > return __x._M_t == __y._M_t; >} > >template <class _Key, class _Compare, class _Alloc> >inline bool operator<(const set<_Key,_Compare,_Alloc>& __x, > const set<_Key,_Compare,_Alloc>& __y) { > return __x._M_t < __y._M_t; >} > >template <class _Key, class _Compare, class _Alloc> >inline bool operator!=(const set<_Key,_Compare,_Alloc>& __x, > const set<_Key,_Compare,_Alloc>& __y) { > return !(__x == __y); >} > >template <class _Key, class _Compare, class _Alloc> >inline bool operator>(const set<_Key,_Compare,_Alloc>& __x, > const set<_Key,_Compare,_Alloc>& __y) { > return __y < __x; >} > >template <class _Key, class _Compare, class _Alloc> >inline bool operator<=(const set<_Key,_Compare,_Alloc>& __x, > const set<_Key,_Compare,_Alloc>& __y) { > return !(__y < __x); >} > >template <class _Key, class _Compare, class _Alloc> >inline bool operator>=(const set<_Key,_Compare,_Alloc>& __x, > const set<_Key,_Compare,_Alloc>& __y) { > return !(__x < __y); >} > >template <class _Key, class _Compare, class _Alloc> >inline void swap(set<_Key,_Compare,_Alloc>& __x, > set<_Key,_Compare,_Alloc>& __y) { > __x.swap(__y); >} > >} ># 68 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/set" 2 3 ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_multiset.h" 1 3 ># 66 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_multiset.h" 3 >namespace std >{ > > > >template <class _Key, class _Compare = less<_Key>, > class _Alloc = allocator<_Key> > >class multiset; > >template <class _Key, class _Compare, class _Alloc> >inline bool operator==(const multiset<_Key,_Compare,_Alloc>& __x, > const multiset<_Key,_Compare,_Alloc>& __y); > >template <class _Key, class _Compare, class _Alloc> >inline bool operator<(const multiset<_Key,_Compare,_Alloc>& __x, > const multiset<_Key,_Compare,_Alloc>& __y); > >template <class _Key, class _Compare, class _Alloc> >class multiset >{ > > > ; > >public: > > > > typedef _Key key_type; > typedef _Key value_type; > typedef _Compare key_compare; > typedef _Compare value_compare; >private: > typedef _Rb_tree<key_type, value_type, > _Identity<value_type>, key_compare, _Alloc> _Rep_type; > _Rep_type _M_t; >public: > typedef typename _Alloc::pointer pointer; > typedef typename _Alloc::const_pointer const_pointer; > typedef typename _Alloc::reference reference; > typedef typename _Alloc::const_reference const_reference; > typedef typename _Rep_type::const_iterator iterator; > typedef typename _Rep_type::const_iterator const_iterator; > typedef typename _Rep_type::const_reverse_iterator reverse_iterator; > typedef typename _Rep_type::const_reverse_iterator const_reverse_iterator; > typedef typename _Rep_type::size_type size_type; > typedef typename _Rep_type::difference_type difference_type; > typedef typename _Rep_type::allocator_type allocator_type; > > > > multiset() : _M_t(_Compare(), allocator_type()) {} > explicit multiset(const _Compare& __comp, > const allocator_type& __a = allocator_type()) > : _M_t(__comp, __a) {} > > template <class _InputIterator> > multiset(_InputIterator __first, _InputIterator __last) > : _M_t(_Compare(), allocator_type()) > { _M_t.insert_equal(__first, __last); } > > template <class _InputIterator> > multiset(_InputIterator __first, _InputIterator __last, > const _Compare& __comp, > const allocator_type& __a = allocator_type()) > : _M_t(__comp, __a) { _M_t.insert_equal(__first, __last); } > > multiset(const multiset<_Key,_Compare,_Alloc>& __x) : _M_t(__x._M_t) {} > > multiset<_Key,_Compare,_Alloc>& > operator=(const multiset<_Key,_Compare,_Alloc>& __x) { > _M_t = __x._M_t; > return *this; > } > > > > key_compare key_comp() const { return _M_t.key_comp(); } > value_compare value_comp() const { return _M_t.key_comp(); } > allocator_type get_allocator() const { return _M_t.get_allocator(); } > > iterator begin() const { return _M_t.begin(); } > iterator end() const { return _M_t.end(); } > reverse_iterator rbegin() const { return _M_t.rbegin(); } > reverse_iterator rend() const { return _M_t.rend(); } > bool empty() const { return _M_t.empty(); } > size_type size() const { return _M_t.size(); } > size_type max_size() const { return _M_t.max_size(); } > void swap(multiset<_Key,_Compare,_Alloc>& __x) { _M_t.swap(__x._M_t); } > > > iterator insert(const value_type& __x) { > return _M_t.insert_equal(__x); > } > iterator insert(iterator __position, const value_type& __x) { > typedef typename _Rep_type::iterator _Rep_iterator; > return _M_t.insert_equal((_Rep_iterator&)__position, __x); > } > > template <class _InputIterator> > void insert(_InputIterator __first, _InputIterator __last) { > _M_t.insert_equal(__first, __last); > } > void erase(iterator __position) { > typedef typename _Rep_type::iterator _Rep_iterator; > _M_t.erase((_Rep_iterator&)__position); > } > size_type erase(const key_type& __x) { > return _M_t.erase(__x); > } > void erase(iterator __first, iterator __last) { > typedef typename _Rep_type::iterator _Rep_iterator; > _M_t.erase((_Rep_iterator&)__first, (_Rep_iterator&)__last); > } > void clear() { _M_t.clear(); } > > > > size_type count(const key_type& __x) const { return _M_t.count(__x); } > > > > iterator find(const key_type& __x) { return _M_t.find(__x); } > const_iterator find(const key_type& __x) const { return _M_t.find(__x); } > iterator lower_bound(const key_type& __x) { > return _M_t.lower_bound(__x); > } > const_iterator lower_bound(const key_type& __x) const { > return _M_t.lower_bound(__x); > } > iterator upper_bound(const key_type& __x) { > return _M_t.upper_bound(__x); > } > const_iterator upper_bound(const key_type& __x) const { > return _M_t.upper_bound(__x); > } > pair<iterator,iterator> equal_range(const key_type& __x) { > return _M_t.equal_range(__x); > } > pair<const_iterator,const_iterator> equal_range(const key_type& __x) const { > return _M_t.equal_range(__x); > } ># 221 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_multiset.h" 3 > template <class _K1, class _C1, class _A1> > friend bool operator== (const multiset<_K1,_C1,_A1>&, > const multiset<_K1,_C1,_A1>&); > template <class _K1, class _C1, class _A1> > friend bool operator< (const multiset<_K1,_C1,_A1>&, > const multiset<_K1,_C1,_A1>&); >}; > >template <class _Key, class _Compare, class _Alloc> >inline bool operator==(const multiset<_Key,_Compare,_Alloc>& __x, > const multiset<_Key,_Compare,_Alloc>& __y) { > return __x._M_t == __y._M_t; >} > >template <class _Key, class _Compare, class _Alloc> >inline bool operator<(const multiset<_Key,_Compare,_Alloc>& __x, > const multiset<_Key,_Compare,_Alloc>& __y) { > return __x._M_t < __y._M_t; >} > >template <class _Key, class _Compare, class _Alloc> >inline bool operator!=(const multiset<_Key,_Compare,_Alloc>& __x, > const multiset<_Key,_Compare,_Alloc>& __y) { > return !(__x == __y); >} > >template <class _Key, class _Compare, class _Alloc> >inline bool operator>(const multiset<_Key,_Compare,_Alloc>& __x, > const multiset<_Key,_Compare,_Alloc>& __y) { > return __y < __x; >} > >template <class _Key, class _Compare, class _Alloc> >inline bool operator<=(const multiset<_Key,_Compare,_Alloc>& __x, > const multiset<_Key,_Compare,_Alloc>& __y) { > return !(__y < __x); >} > >template <class _Key, class _Compare, class _Alloc> >inline bool operator>=(const multiset<_Key,_Compare,_Alloc>& __x, > const multiset<_Key,_Compare,_Alloc>& __y) { > return !(__x < __y); >} > >template <class _Key, class _Compare, class _Alloc> >inline void swap(multiset<_Key,_Compare,_Alloc>& __x, > multiset<_Key,_Compare,_Alloc>& __y) { > __x.swap(__y); >} > >} ># 69 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/set" 2 3 ># 22 "../kig/kig_document.h" 2 > > >class Coordinate; >class CoordinateSystem; >class KigWidget; >class ObjectHolder; >class Rect; > > > > > > >class KigDocument { > > > > > > > std::set<ObjectHolder*> mobjects; > > > > > > > CoordinateSystem* mcoordsystem; > > > > bool mshowgrid; > > > > bool mshowaxes; > > > > bool mnightvision; >public: > KigDocument(); > KigDocument( std::set<ObjectHolder*> objects, CoordinateSystem* coordsystem, > bool showgrid = true, bool showaxes = true, bool nv = false ); > ~KigDocument(); > > > > > > const CoordinateSystem& coordinateSystem() const; > const bool grid() const; > const bool axes() const; > const bool getNightVision() const; > const std::vector<ObjectHolder*> objects() const; > const std::set<ObjectHolder*>& objectsSet() const; > > > > > CoordinateSystem* switchCoordinateSystem( CoordinateSystem* s ); > > > > > void setCoordinateSystem( CoordinateSystem* s ); > > > > > void setGrid( bool showgrid ); > > > > > void setAxes( bool showaxes ); > > > > > void setNightVision( bool nv ); > > > > > std::vector<ObjectHolder*> whatAmIOn( const Coordinate& p, const KigWidget& w ) const; > > > > > std::vector<ObjectHolder*> whatIsInHere( const Rect& p, const KigWidget& ); > > > > > > Rect suggestedRect() const; > > void addObject( ObjectHolder* oObject ); > void addObjects( const std::vector<ObjectHolder*>& os); > void delObject( ObjectHolder* o ); > void delObjects( const std::vector<ObjectHolder*>& os ); >}; ># 25 "drgeo-filter.cc" 2 ># 1 "../kig/kig_part.h" 1 ># 27 "../kig/kig_part.h" ># 1 "/usr/kde/3.4/include/kparts/part.h" 1 ># 24 "/usr/kde/3.4/include/kparts/part.h" ># 1 "/usr/qt/3/include/qdom.h" 1 ># 53 "/usr/qt/3/include/qdom.h" >class QIODevice; >class QTextStream; > >class QXmlInputSource; >class QXmlReader; > >class QDomDocumentPrivate; >class QDomDocumentTypePrivate; >class QDomDocumentFragmentPrivate; >class QDomNodePrivate; >class QDomNodeListPrivate; >class QDomImplementationPrivate; >class QDomElementPrivate; >class QDomNotationPrivate; >class QDomEntityPrivate; >class QDomEntityReferencePrivate; >class QDomProcessingInstructionPrivate; >class QDomAttrPrivate; >class QDomCharacterDataPrivate; >class QDomTextPrivate; >class QDomCommentPrivate; >class QDomCDATASectionPrivate; >class QDomNamedNodeMapPrivate; >class QDomImplementationPrivate; > >class QDomNodeList; >class QDomElement; >class QDomText; >class QDomComment; >class QDomCDATASection; >class QDomProcessingInstruction; >class QDomAttr; >class QDomEntityReference; >class QDomDocument; >class QDomNamedNodeMap; >class QDomDocument; >class QDomDocumentFragment; >class QDomDocumentType; >class QDomImplementation; >class QDomNode; >class QDomEntity; >class QDomNotation; >class QDomCharacterData; > >class QDomImplementation >{ >public: > QDomImplementation(); > QDomImplementation( const QDomImplementation& ); > virtual ~QDomImplementation(); > QDomImplementation& operator= ( const QDomImplementation& ); > bool operator== ( const QDomImplementation& ) const; > bool operator!= ( const QDomImplementation& ) const; > > > virtual bool hasFeature( const QString& feature, const QString& version ); > virtual QDomDocumentType createDocumentType( const QString& qName, const QString& publicId, const QString& systemId ); > virtual QDomDocument createDocument( const QString& nsURI, const QString& qName, const QDomDocumentType& doctype ); > > > bool isNull(); > >private: > QDomImplementationPrivate* impl; > QDomImplementation( QDomImplementationPrivate* ); > > friend class QDomDocument; >}; > >class QDomNode >{ >public: > enum NodeType { > ElementNode = 1, > AttributeNode = 2, > TextNode = 3, > CDATASectionNode = 4, > EntityReferenceNode = 5, > EntityNode = 6, > ProcessingInstructionNode = 7, > CommentNode = 8, > DocumentNode = 9, > DocumentTypeNode = 10, > DocumentFragmentNode = 11, > NotationNode = 12, > BaseNode = 21, > CharacterDataNode = 22 > }; > > QDomNode(); > QDomNode( const QDomNode& ); > QDomNode& operator= ( const QDomNode& ); > bool operator== ( const QDomNode& ) const; > bool operator!= ( const QDomNode& ) const; > virtual ~QDomNode(); > > > virtual QDomNode insertBefore( const QDomNode& newChild, const QDomNode& refChild ); > virtual QDomNode insertAfter( const QDomNode& newChild, const QDomNode& refChild ); > virtual QDomNode replaceChild( const QDomNode& newChild, const QDomNode& oldChild ); > virtual QDomNode removeChild( const QDomNode& oldChild ); > virtual QDomNode appendChild( const QDomNode& newChild ); > virtual bool hasChildNodes() const; > virtual QDomNode cloneNode( bool deep = TRUE ) const; > virtual void normalize(); > virtual bool isSupported( const QString& feature, const QString& version ) const; > > > virtual QString nodeName() const; > virtual QDomNode::NodeType nodeType() const; > virtual QDomNode parentNode() const; > virtual QDomNodeList childNodes() const; > virtual QDomNode firstChild() const; > virtual QDomNode lastChild() const; > virtual QDomNode previousSibling() const; > virtual QDomNode nextSibling() const; > virtual QDomNamedNodeMap attributes() const; > virtual QDomDocument ownerDocument() const; > virtual QString namespaceURI() const; > virtual QString localName() const; > virtual bool hasAttributes() const; > > > virtual QString nodeValue() const; > virtual void setNodeValue( const QString& ); > virtual QString prefix() const; > virtual void setPrefix( const QString& pre ); > > > virtual bool isAttr() const; > virtual bool isCDATASection() const; > virtual bool isDocumentFragment() const; > virtual bool isDocument() const; > virtual bool isDocumentType() const; > virtual bool isElement() const; > virtual bool isEntityReference() const; > virtual bool isText() const; > virtual bool isEntity() const; > virtual bool isNotation() const; > virtual bool isProcessingInstruction() const; > virtual bool isCharacterData() const; > virtual bool isComment() const; > > > > > > QDomNode namedItem( const QString& name ) const; > > bool isNull() const; > void clear(); > > QDomAttr toAttr(); > QDomCDATASection toCDATASection(); > QDomDocumentFragment toDocumentFragment(); > QDomDocument toDocument(); > QDomDocumentType toDocumentType(); > QDomElement toElement(); > QDomEntityReference toEntityReference(); > QDomText toText(); > QDomEntity toEntity(); > QDomNotation toNotation(); > QDomProcessingInstruction toProcessingInstruction(); > QDomCharacterData toCharacterData(); > QDomComment toComment(); > > void save( QTextStream&, int ) const; > >protected: > QDomNodePrivate* impl; > QDomNode( QDomNodePrivate* ); > >private: > friend class QDomDocument; > friend class QDomDocumentType; > friend class QDomNodeList; > friend class QDomNamedNodeMap; >}; > >class QDomNodeList >{ >public: > QDomNodeList(); > QDomNodeList( const QDomNodeList& ); > QDomNodeList& operator= ( const QDomNodeList& ); > bool operator== ( const QDomNodeList& ) const; > bool operator!= ( const QDomNodeList& ) const; > virtual ~QDomNodeList(); > > > virtual QDomNode item( int index ) const; > > > virtual uint length() const; > uint count() const { return length(); } > >private: > QDomNodeListPrivate* impl; > QDomNodeList( QDomNodeListPrivate* ); > > friend class QDomNode; > friend class QDomElement; > friend class QDomDocument; >}; > >class QDomDocumentType : public QDomNode >{ >public: > QDomDocumentType(); > QDomDocumentType( const QDomDocumentType& x ); > QDomDocumentType& operator= ( const QDomDocumentType& ); > ~QDomDocumentType(); > > > virtual QString name() const; > virtual QDomNamedNodeMap entities() const; > virtual QDomNamedNodeMap notations() const; > virtual QString publicId() const; > virtual QString systemId() const; > virtual QString internalSubset() const; > > > QDomNode::NodeType nodeType() const; > bool isDocumentType() const; > >private: > QDomDocumentType( QDomDocumentTypePrivate* ); > > friend class QDomImplementation; > friend class QDomDocument; > friend class QDomNode; >}; > >class QDomDocument : public QDomNode >{ >public: > QDomDocument(); > explicit QDomDocument( const QString& name ); > explicit QDomDocument( const QDomDocumentType& doctype ); > QDomDocument( const QDomDocument& x ); > QDomDocument& operator= ( const QDomDocument& ); > ~QDomDocument(); > > > QDomElement createElement( const QString& tagName ); > QDomDocumentFragment createDocumentFragment(); > QDomText createTextNode( const QString& data ); > QDomComment createComment( const QString& data ); > QDomCDATASection createCDATASection( const QString& data ); > QDomProcessingInstruction createProcessingInstruction( const QString& target, const QString& data ); > QDomAttr createAttribute( const QString& name ); > QDomEntityReference createEntityReference( const QString& name ); > QDomNodeList elementsByTagName( const QString& tagname ) const; > QDomNode importNode( const QDomNode& importedNode, bool deep ); > QDomElement createElementNS( const QString& nsURI, const QString& qName ); > QDomAttr createAttributeNS( const QString& nsURI, const QString& qName ); > QDomNodeList elementsByTagNameNS( const QString& nsURI, const QString& localName ); > QDomElement elementById( const QString& elementId ); > > > QDomDocumentType doctype() const; > QDomImplementation implementation() const; > QDomElement documentElement() const; > > > bool setContent( const QCString& text, bool namespaceProcessing, QString *errorMsg=0, int *errorLine=0, int *errorColumn=0 ); > bool setContent( const QByteArray& text, bool namespaceProcessing, QString *errorMsg=0, int *errorLine=0, int *errorColumn=0 ); > bool setContent( const QString& text, bool namespaceProcessing, QString *errorMsg=0, int *errorLine=0, int *errorColumn=0 ); > bool setContent( QIODevice* dev, bool namespaceProcessing, QString *errorMsg=0, int *errorLine=0, int *errorColumn=0 ); > bool setContent( const QCString& text, QString *errorMsg=0, int *errorLine=0, int *errorColumn=0 ); > bool setContent( const QByteArray& text, QString *errorMsg=0, int *errorLine=0, int *errorColumn=0 ); > bool setContent( const QString& text, QString *errorMsg=0, int *errorLine=0, int *errorColumn=0 ); > bool setContent( QIODevice* dev, QString *errorMsg=0, int *errorLine=0, int *errorColumn=0 ); > > bool setContent( QXmlInputSource *source, QXmlReader *reader, QString *errorMsg=0, int *errorLine=0, int *errorColumn=0 ); > > > QDomNode::NodeType nodeType() const; > bool isDocument() const; > > > QString toString() const; > QString toString( int ) const; > QCString toCString() const; > QCString toCString( int ) const; > >private: > QDomDocument( QDomDocumentPrivate* ); > > friend class QDomNode; >}; > >class QDomNamedNodeMap >{ >public: > QDomNamedNodeMap(); > QDomNamedNodeMap( const QDomNamedNodeMap& ); > QDomNamedNodeMap& operator= ( const QDomNamedNodeMap& ); > bool operator== ( const QDomNamedNodeMap& ) const; > bool operator!= ( const QDomNamedNodeMap& ) const; > ~QDomNamedNodeMap(); > > > QDomNode namedItem( const QString& name ) const; > QDomNode setNamedItem( const QDomNode& newNode ); > QDomNode removeNamedItem( const QString& name ); > QDomNode item( int index ) const; > QDomNode namedItemNS( const QString& nsURI, const QString& localName ) const; > QDomNode setNamedItemNS( const QDomNode& newNode ); > QDomNode removeNamedItemNS( const QString& nsURI, const QString& localName ); > > > uint length() const; > uint count() const { return length(); } > > > bool contains( const QString& name ) const; > >private: > QDomNamedNodeMapPrivate* impl; > QDomNamedNodeMap( QDomNamedNodeMapPrivate* ); > > friend class QDomNode; > friend class QDomDocumentType; > friend class QDomElement; >}; > >class QDomDocumentFragment : public QDomNode >{ >public: > QDomDocumentFragment(); > QDomDocumentFragment( const QDomDocumentFragment& x ); > QDomDocumentFragment& operator= ( const QDomDocumentFragment& ); > ~QDomDocumentFragment(); > > > QDomNode::NodeType nodeType() const; > bool isDocumentFragment() const; > >private: > QDomDocumentFragment( QDomDocumentFragmentPrivate* ); > > friend class QDomDocument; > friend class QDomNode; >}; > >class QDomCharacterData : public QDomNode >{ >public: > QDomCharacterData(); > QDomCharacterData( const QDomCharacterData& x ); > QDomCharacterData& operator= ( const QDomCharacterData& ); > ~QDomCharacterData(); > > > virtual QString substringData( unsigned long offset, unsigned long count ); > virtual void appendData( const QString& arg ); > virtual void insertData( unsigned long offset, const QString& arg ); > virtual void deleteData( unsigned long offset, unsigned long count ); > virtual void replaceData( unsigned long offset, unsigned long count, const QString& arg ); > > > virtual uint length() const; > > > virtual QString data() const; > virtual void setData( const QString& ); > > > QDomNode::NodeType nodeType() const; > bool isCharacterData() const; > >private: > QDomCharacterData( QDomCharacterDataPrivate* ); > > friend class QDomDocument; > friend class QDomText; > friend class QDomComment; > friend class QDomNode; >}; > >class QDomAttr : public QDomNode >{ >public: > QDomAttr(); > QDomAttr( const QDomAttr& x ); > QDomAttr& operator= ( const QDomAttr& ); > ~QDomAttr(); > > > virtual QString name() const; > virtual bool specified() const; > virtual QDomElement ownerElement() const; > > > virtual QString value() const; > virtual void setValue( const QString& ); > > > QDomNode::NodeType nodeType() const; > bool isAttr() const; > >private: > QDomAttr( QDomAttrPrivate* ); > > friend class QDomDocument; > friend class QDomElement; > friend class QDomNode; >}; > >class QDomElement : public QDomNode >{ >public: > QDomElement(); > QDomElement( const QDomElement& x ); > QDomElement& operator= ( const QDomElement& ); > ~QDomElement(); > > > QString attribute( const QString& name, const QString& defValue = QString::null ) const; > void setAttribute( const QString& name, const QString& value ); > void setAttribute( const QString& name, int value ); > void setAttribute( const QString& name, uint value ); > void setAttribute( const QString& name, long value ); > void setAttribute( const QString& name, ulong value ); > void setAttribute( const QString& name, double value ); > void removeAttribute( const QString& name ); > QDomAttr attributeNode( const QString& name); > QDomAttr setAttributeNode( const QDomAttr& newAttr ); > QDomAttr removeAttributeNode( const QDomAttr& oldAttr ); > virtual QDomNodeList elementsByTagName( const QString& tagname ) const; > bool hasAttribute( const QString& name ) const; > > QString attributeNS( const QString nsURI, const QString& localName, const QString& defValue ) const; > void setAttributeNS( const QString nsURI, const QString& qName, const QString& value ); > void setAttributeNS( const QString nsURI, const QString& qName, int value ); > void setAttributeNS( const QString nsURI, const QString& qName, uint value ); > void setAttributeNS( const QString nsURI, const QString& qName, long value ); > void setAttributeNS( const QString nsURI, const QString& qName, ulong value ); > void setAttributeNS( const QString nsURI, const QString& qName, double value ); > void removeAttributeNS( const QString& nsURI, const QString& localName ); > QDomAttr attributeNodeNS( const QString& nsURI, const QString& localName ); > QDomAttr setAttributeNodeNS( const QDomAttr& newAttr ); > virtual QDomNodeList elementsByTagNameNS( const QString& nsURI, const QString& localName ) const; > bool hasAttributeNS( const QString& nsURI, const QString& localName ) const; > > > QString tagName() const; > void setTagName( const QString& name ); > > > QDomNamedNodeMap attributes() const; > QDomNode::NodeType nodeType() const; > bool isElement() const; > > QString text() const; > >private: > QDomElement( QDomElementPrivate* ); > > friend class QDomDocument; > friend class QDomNode; > friend class QDomAttr; >}; > >class QDomText : public QDomCharacterData >{ >public: > QDomText(); > QDomText( const QDomText& x ); > QDomText& operator= ( const QDomText& ); > ~QDomText(); > > > QDomText splitText( int offset ); > > > QDomNode::NodeType nodeType() const; > bool isText() const; > >private: > QDomText( QDomTextPrivate* ); > > friend class QDomCDATASection; > friend class QDomDocument; > friend class QDomNode; >}; > >class QDomComment : public QDomCharacterData >{ >public: > QDomComment(); > QDomComment( const QDomComment& x ); > QDomComment& operator= ( const QDomComment& ); > ~QDomComment(); > > > QDomNode::NodeType nodeType() const; > bool isComment() const; > >private: > QDomComment( QDomCommentPrivate* ); > > friend class QDomDocument; > friend class QDomNode; >}; > >class QDomCDATASection : public QDomText >{ >public: > QDomCDATASection(); > QDomCDATASection( const QDomCDATASection& x ); > QDomCDATASection& operator= ( const QDomCDATASection& ); > ~QDomCDATASection(); > > > QDomNode::NodeType nodeType() const; > bool isCDATASection() const; > >private: > QDomCDATASection( QDomCDATASectionPrivate* ); > > friend class QDomDocument; > friend class QDomNode; >}; > >class QDomNotation : public QDomNode >{ >public: > QDomNotation(); > QDomNotation( const QDomNotation& x ); > QDomNotation& operator= ( const QDomNotation& ); > ~QDomNotation(); > > > QString publicId() const; > QString systemId() const; > > > QDomNode::NodeType nodeType() const; > bool isNotation() const; > >private: > QDomNotation( QDomNotationPrivate* ); > > friend class QDomDocument; > friend class QDomNode; >}; > >class QDomEntity : public QDomNode >{ >public: > QDomEntity(); > QDomEntity( const QDomEntity& x ); > QDomEntity& operator= ( const QDomEntity& ); > ~QDomEntity(); > > > virtual QString publicId() const; > virtual QString systemId() const; > virtual QString notationName() const; > > > QDomNode::NodeType nodeType() const; > bool isEntity() const; > >private: > QDomEntity( QDomEntityPrivate* ); > > friend class QDomNode; >}; > >class QDomEntityReference : public QDomNode >{ >public: > QDomEntityReference(); > QDomEntityReference( const QDomEntityReference& x ); > QDomEntityReference& operator= ( const QDomEntityReference& ); > ~QDomEntityReference(); > > > QDomNode::NodeType nodeType() const; > bool isEntityReference() const; > >private: > QDomEntityReference( QDomEntityReferencePrivate* ); > > friend class QDomDocument; > friend class QDomNode; >}; > >class QDomProcessingInstruction : public QDomNode >{ >public: > QDomProcessingInstruction(); > QDomProcessingInstruction( const QDomProcessingInstruction& x ); > QDomProcessingInstruction& operator= ( const QDomProcessingInstruction& ); > ~QDomProcessingInstruction(); > > > virtual QString target() const; > > > virtual QString data() const; > virtual void setData( const QString& d ); > > > QDomNode::NodeType nodeType() const; > bool isProcessingInstruction() const; > >private: > QDomProcessingInstruction( QDomProcessingInstructionPrivate* ); > > friend class QDomDocument; > friend class QDomNode; >}; > > > QTextStream& operator<<( QTextStream&, const QDomNode& ); ># 25 "/usr/kde/3.4/include/kparts/part.h" 2 ># 1 "/usr/qt/3/include/qguardedptr.h" 1 ># 46 "/usr/qt/3/include/qguardedptr.h" >class QGuardedPtrPrivate : public QObject, public QShared >{ > public: virtual QMetaObject *metaObject() const { return staticMetaObject(); } virtual const char *className() const; virtual void* qt_cast( const char* ); virtual bool qt_invoke( int, QUObject* ); virtual bool qt_emit( int, QUObject* ); virtual bool qt_property( int id, int f, QVariant* v); static bool qt_static_property( QObject* , int, int, QVariant* ); static QMetaObject* staticMetaObject(); QObject* qObject() { return (QObject*)this; } private: static QMetaObject *metaObj; >public: > QGuardedPtrPrivate( QObject* ); > ~QGuardedPtrPrivate(); > > QObject* object() const; > void reconnect( QObject* ); > >private : > void objectDestroyed(); > >private: > QObject* obj; > > QGuardedPtrPrivate( const QGuardedPtrPrivate & ); > QGuardedPtrPrivate &operator=( const QGuardedPtrPrivate & ); > >}; > >template <class T> >class QGuardedPtr >{ >public: > QGuardedPtr() : priv( new QGuardedPtrPrivate( 0 ) ) {} > > QGuardedPtr( T* o) { > priv = new QGuardedPtrPrivate( (QObject*)o ); > } > > QGuardedPtr(const QGuardedPtr<T> &p) { > priv = p.priv; > ref(); > } > > ~QGuardedPtr() { deref(); } > > QGuardedPtr<T> &operator=(const QGuardedPtr<T> &p) { > if ( priv != p.priv ) { > deref(); > priv = p.priv; > ref(); > } > return *this; > } > > QGuardedPtr<T> &operator=(T* o) { > if ( priv && priv->count == 1 ) { > priv->reconnect( (QObject*)o ); > } else { > deref(); > priv = new QGuardedPtrPrivate( (QObject*)o ); > } > return *this; > } > > bool operator==( const QGuardedPtr<T> &p ) const { > return (T*)(*this) == (T*) p; > } > > bool operator!= ( const QGuardedPtr<T>& p ) const { > return !( *this == p ); > } > > bool isNull() const { return !priv || !priv->object(); } > > T* operator->() const { return (T*)(priv?priv->object():0); } > > T& operator*() const { return *((T*)(priv?priv->object():0)); } > > operator T*() const { return (T*)(priv?priv->object():0); } > >private: > > void ref() { if (priv) priv->ref(); } > > void deref() { > if ( priv && priv->deref() ) > delete priv; > } > > QGuardedPtrPrivate* priv; >}; > > > > >inline QObject* QGuardedPtrPrivate::object() const >{ > return obj; >} > > ># 1 "/usr/qt/3/include/qwinexport.h" 1 ># 141 "/usr/qt/3/include/qguardedptr.h" 2 ># 26 "/usr/kde/3.4/include/kparts/part.h" 2 ># 1 "/usr/kde/3.4/include/kurl.h" 1 ># 25 "/usr/kde/3.4/include/kurl.h" ># 1 "/usr/kde/3.4/include/kdelibs_export.h" 1 ># 24 "/usr/kde/3.4/include/kdelibs_export.h" ># 1 "/usr/kde/3.4/include/kdemacros.h" 1 ># 25 "/usr/kde/3.4/include/kdelibs_export.h" 2 > > ># 1 "/usr/qt/3/include/qglobal.h" 1 ># 28 "/usr/kde/3.4/include/kdelibs_export.h" 2 ># 26 "/usr/kde/3.4/include/kurl.h" 2 > >class QUrl; >class QStringList; >template <typename K, typename V> class QMap; > >class KURLPrivate; ># 122 "/usr/kde/3.4/include/kurl.h" >class KURL >{ >public: > enum AdjustementFlags > { > NoAdjustements = 0, > StripFileProtocol = 1 > }; > > > > > enum URIMode > { > > > > > Auto, > > > > > Invalid, > > > > > RawURI, > > > > URL, > > > > > > Mailto > }; > > > > > > > > class List : public QValueList<KURL> > { > public: > > > > List() { } > > > > > > List(const KURL &url); > > > > > > List(const QStringList &list); > > > > > QStringList toStringList() const; > }; > > > > KURL(); > > > > > ~KURL(); ># 220 "/usr/kde/3.4/include/kurl.h" > KURL( const QString& url, int encoding_hint = 0 ); ># 230 "/usr/kde/3.4/include/kurl.h" > KURL( const char * url, int encoding_hint = 0 ); ># 240 "/usr/kde/3.4/include/kurl.h" > KURL( const QCString& url, int encoding_hint = 0 ); > > > > > > KURL( const KURL& u ); > > > > > KURL( const QUrl &u ); ># 264 "/usr/kde/3.4/include/kurl.h" > KURL( const KURL& _baseurl, const QString& _rel_url, int encoding_hint=0 ); > > > > > > > QString protocol() const { return m_bIsMalformed ? QString::null : m_strProtocol; } > > > > > void setProtocol( const QString& _txt ); > > > > > > > int uriMode() const; > > > > > > QString user() const { return m_strUser; } > > > > > > > void setUser( const QString& _txt ); > > > > > bool hasUser() const { return !m_strUser.isEmpty(); } > > > > > > QString pass() const { return m_strPass; } ># 318 "/usr/kde/3.4/include/kurl.h" > void setPass( const QString& _txt ); > > > > > bool hasPass() const { return !m_strPass.isEmpty(); } > > > > > > QString host() const { return m_strHost; } > > > > > > > > void setHost( const QString& _txt ); > > > > > bool hasHost() const { return !m_strHost.isEmpty(); } > > > > > > > unsigned short int port() const { return m_iPort; } > > > > > void setPort( unsigned short int _p ); > > > > > > > QString path() const { return m_strPath; } ># 376 "/usr/kde/3.4/include/kurl.h" > QString path( int _trailing ) const; ># 386 "/usr/kde/3.4/include/kurl.h" > void setPath( const QString& path ); > > > > > > bool hasPath() const { return !m_strPath.isEmpty(); } ># 402 "/usr/kde/3.4/include/kurl.h" > void cleanPath(bool cleanDirSeparator = true); ># 415 "/usr/kde/3.4/include/kurl.h" > void adjustPath(int _trailing); ># 424 "/usr/kde/3.4/include/kurl.h" > void setEncodedPathAndQuery( const QString& _txt, int encoding_hint = 0 ); > > > > > > > > void setEncodedPath(const QString& _txt, int encoding_hint = 0 ); ># 451 "/usr/kde/3.4/include/kurl.h" > QString encodedPathAndQuery( int _trailing = 0, bool _no_empty_path = false, int encoding_hint = 0) const; ># 461 "/usr/kde/3.4/include/kurl.h" > void setQuery( const QString& _txt, int encoding_hint = 0); ># 471 "/usr/kde/3.4/include/kurl.h" > QString query() const; > > > > > > QString ref() const { return m_strRef_encoded; } > > > > > > void setRef( const QString& _txt ) { m_strRef_encoded = _txt; } > > > > > > > > bool hasRef() const { return !m_strRef_encoded.isNull(); } ># 500 "/usr/kde/3.4/include/kurl.h" > QString htmlRef() const; > > > > > > > QString encodedHtmlRef() const; ># 516 "/usr/kde/3.4/include/kurl.h" > void setHTMLRef( const QString& _ref ); > > > > > > > bool hasHTMLRef() const; > > > > > > > bool isValid() const { return !m_bIsMalformed; } > > > > __attribute__ ((deprecated)) bool isMalformed() const { return !isValid(); } > > > > > > > bool isLocalFile() const; > > > > > > > > void setFileEncoding(const QString &encoding); > > > > > > > > QString fileEncoding() const; > > > > > > > > bool hasSubURL() const; ># 577 "/usr/kde/3.4/include/kurl.h" > void addPath( const QString& txt ); > > > > > > QString queryItem( const QString& item ) const; ># 594 "/usr/kde/3.4/include/kurl.h" > QString queryItem( const QString& item, int encoding_hint ) const; ># 604 "/usr/kde/3.4/include/kurl.h" > enum QueryItemsOptions { CaseInsensitiveKeys = 1 }; > > > > > QMap< QString, QString > queryItems( int options=0 ) const; ># 622 "/usr/kde/3.4/include/kurl.h" > QMap< QString, QString > queryItems( int options, int encoding_hint ) const; ># 634 "/usr/kde/3.4/include/kurl.h" > void addQueryItem( const QString& _item, const QString& _value, int encoding_hint = 0 ); > > > > > > > void removeQueryItem( const QString& _item ); ># 656 "/usr/kde/3.4/include/kurl.h" > void setFileName( const QString&_txt ); ># 668 "/usr/kde/3.4/include/kurl.h" > QString fileName( bool _ignore_trailing_slash_in_path = true ) const; ># 681 "/usr/kde/3.4/include/kurl.h" > QString directory( bool _strip_trailing_slash_from_result = true, > bool _ignore_trailing_slash_in_path = true ) const; > > > > > void setDirectory(const QString &dir); ># 702 "/usr/kde/3.4/include/kurl.h" > bool cd( const QString& _dir ); ># 722 "/usr/kde/3.4/include/kurl.h" > QString url( int _trailing = 0, int encoding_hint = 0) const; ># 737 "/usr/kde/3.4/include/kurl.h" > QString prettyURL( int _trailing = 0) const; ># 753 "/usr/kde/3.4/include/kurl.h" > QString prettyURL( int _trailing, AdjustementFlags _flags) const; ># 767 "/usr/kde/3.4/include/kurl.h" > QString pathOrURL() const; > > > > > > > > QString htmlURL() const; > > > > > > > bool isEmpty() const; ># 792 "/usr/kde/3.4/include/kurl.h" > KURL upURL( ) const; > > bool operator<(const KURL& _u) const; > > KURL& operator=( const KURL& _u ); > KURL& operator=( const QString& _url ); > KURL& operator=( const char * _url ); > KURL& operator=( const QUrl & u ); > > bool operator==( const KURL& _u ) const; > bool operator==( const QString& _u ) const; > bool operator!=( const KURL& _u ) const { return !( *this == _u ); } > bool operator!=( const QString& _u ) const { return !( *this == _u ); } ># 816 "/usr/kde/3.4/include/kurl.h" > bool cmp( const KURL &u, bool ignore_trailing = false ) const __attribute__ ((deprecated)); ># 827 "/usr/kde/3.4/include/kurl.h" > bool equals( const KURL &u, bool ignore_trailing = false ) const; > > > > > > > bool isParentOf( const KURL& u ) const; ># 851 "/usr/kde/3.4/include/kurl.h" > static List split( const QString& _url ); ># 868 "/usr/kde/3.4/include/kurl.h" > static List split( const KURL& _url ); ># 877 "/usr/kde/3.4/include/kurl.h" > static KURL join( const List& _list ); ># 892 "/usr/kde/3.4/include/kurl.h" > static KURL fromPathOrURL( const QString& text ); ># 904 "/usr/kde/3.4/include/kurl.h" > static QString encode_string(const QString &str, int encoding_hint = 0); ># 916 "/usr/kde/3.4/include/kurl.h" > static QString encode_string_no_slash(const QString &str, int encoding_hint = 0); ># 928 "/usr/kde/3.4/include/kurl.h" > static QString decode_string(const QString &str, int encoding_hint = 0); ># 938 "/usr/kde/3.4/include/kurl.h" > static bool isRelativeURL(const QString &_url); ># 956 "/usr/kde/3.4/include/kurl.h" > static QString relativeURL(const KURL &base_url, const KURL &url, int encoding_hint = 0); ># 967 "/usr/kde/3.4/include/kurl.h" > static QString relativePath(const QString &base_dir, const QString &path, bool *isParent=0); > > > > > > > static URIMode uriModeForProtocol(const QString& protocol); > > > > > > > > QString filename( bool _ignore_trailing_slash_in_path = true ) const > { > return fileName(_ignore_trailing_slash_in_path); > } > >protected: > void reset(); > void parseURL( const QString& _url, int encoding_hint = 0 ); > void parseRawURI( const QString& _url, int encoding_hint = 0 ); > void parseMailto( const QString& _url, int encoding_hint = 0 ); > void parse( const QString& _url, int encoding_hint = 0 ); > >private: > void _setQuery( const QString& _txt, int encoding_hint = 0); > > QString m_strProtocol; > QString m_strUser; > QString m_strPass; > QString m_strHost; > QString m_strPath; > QString m_strRef_encoded; > QString m_strQuery_encoded; > bool m_bIsMalformed : 1; > enum URIMode m_iUriMode : 3; > uint freeForUse : 4; > unsigned short int m_iPort; > QString m_strPath_encoded; > > friend QDataStream & operator<< (QDataStream & s, const KURL & a); > friend QDataStream & operator>> (QDataStream & s, KURL & a); >private: > KURLPrivate* d; >}; ># 1023 "/usr/kde/3.4/include/kurl.h" > bool urlcmp( const QString& _url1, const QString& _url2 ); ># 1037 "/usr/kde/3.4/include/kurl.h" > bool urlcmp( const QString& _url1, const QString& _url2, bool _ignore_trailing, bool _ignore_ref ); > > QDataStream & operator<< (QDataStream & s, const KURL & a); > QDataStream & operator>> (QDataStream & s, KURL & a); ># 27 "/usr/kde/3.4/include/kparts/part.h" 2 > ># 1 "/usr/kde/3.4/include/kxmlguiclient.h" 1 ># 27 "/usr/kde/3.4/include/kxmlguiclient.h" ># 1 "/usr/kde/3.4/include/kdelibs_export.h" 1 ># 28 "/usr/kde/3.4/include/kxmlguiclient.h" 2 > >class QWidget; >class KAction; >class KActionCollection; >class KInstance; >class KXMLGUIClientPrivate; >class KXMLGUIFactory; >class KXMLGUIBuilder; > > > > > > > >class KXMLGUIClient >{ > friend class KEditToolbarWidget; >public: > > > > > > KXMLGUIClient(); ># 65 "/usr/kde/3.4/include/kxmlguiclient.h" > KXMLGUIClient( KXMLGUIClient *parent ); > > > > > virtual ~KXMLGUIClient(); > > > > > > > KAction* action( const char* name ) const; > > > > > > > virtual KAction *action( const QDomElement &element ) const; ># 95 "/usr/kde/3.4/include/kxmlguiclient.h" > virtual KActionCollection* actionCollection() const; > > > > > virtual KInstance *instance() const; > > > > > > > virtual QDomDocument domDocument() const; ># 122 "/usr/kde/3.4/include/kxmlguiclient.h" > virtual QString xmlFile() const; > > virtual QString localXMLFile() const; > > > > > void setXMLGUIBuildDocument( const QDomDocument &doc ); > > > > QDomDocument xmlguiBuildDocument() const; > > > > > > void setFactory( KXMLGUIFactory *factory ); > > > > > > KXMLGUIFactory *factory() const; > > > > > > > KXMLGUIClient *parentClient() const; > > > > > > > > void insertChildClient( KXMLGUIClient *child ); > > > > > void removeChildClient( KXMLGUIClient *child ); > > > > > const QPtrList<KXMLGUIClient> *childClients(); ># 180 "/usr/kde/3.4/include/kxmlguiclient.h" > void setClientBuilder( KXMLGUIBuilder *builder ); > > > > > > KXMLGUIBuilder *clientBuilder() const; ># 195 "/usr/kde/3.4/include/kxmlguiclient.h" > void reloadXML(); ># 237 "/usr/kde/3.4/include/kxmlguiclient.h" > void plugActionList( const QString &name, const QPtrList<KAction> &actionList ); > > > > > void unplugActionList( const QString &name ); > > static QString findMostRecentXMLFile( const QStringList &files, QString &doc ); > > void addStateActionEnabled(const QString& state, const QString& action); > > void addStateActionDisabled(const QString& state, const QString& action); > > enum ReverseStateChange { StateNoReverse, StateReverse }; > struct StateChange > { > QStringList actionsToEnable; > QStringList actionsToDisable; > }; > > StateChange getActionsToChangeForState(const QString& state); > > > void beginXMLPlug( QWidget * ); > > void endXMLPlug(); > > void prepareXMLUnplug( QWidget * ); > >protected: ># 279 "/usr/kde/3.4/include/kxmlguiclient.h" > virtual void setInstance( KInstance *instance ); ># 294 "/usr/kde/3.4/include/kxmlguiclient.h" > virtual void setXMLFile( const QString& file, bool merge = false, bool setXMLDoc = true ); > > virtual void setLocalXMLFile( const QString &file ); > > > > > > > > virtual void setXML( const QString &document, bool merge = false ); > > > > > > > > virtual void setDOMDocument( const QDomDocument &document, bool merge = false ); > > > > > > > virtual void conserveMemory(); ># 332 "/usr/kde/3.4/include/kxmlguiclient.h" > virtual void stateChanged(const QString &newstate, ReverseStateChange reverse = StateNoReverse); > > > > >private: > struct DocStruct > { > QString file; > QString data; > }; > > bool mergeXML( QDomElement &base, const QDomElement &additive, > KActionCollection *actionCollection ); > > QDomElement findMatchingElement( const QDomElement &base, > const QDomElement &additive ); > > typedef QMap<QString, QMap<QString, QString> > ActionPropertiesMap; > > static ActionPropertiesMap extractActionProperties( const QDomDocument &doc ); > > static void storeActionProperties( QDomDocument &doc, const ActionPropertiesMap &properties ); > > static QString findVersionNumber( const QString &_xml ); > > > QMap<QString,StateChange> m_actionsStateMap; > >protected: > virtual void virtual_hook( int id, void* data ); >private: > KXMLGUIClientPrivate *d; >}; ># 29 "/usr/kde/3.4/include/kparts/part.h" 2 > >class KInstance; >class QWidget; >class KAction; >class KActionCollection; >class QEvent; >struct QUnknownInterface; > >namespace KIO { > class Job; >} > >namespace KParts >{ > >class PartManager; >class Plugin; >class PartPrivate; >class PartActivateEvent; >class PartSelectEvent; >class GUIActivateEvent; >class PartBasePrivate; > > > > > > >class PartBase : virtual public KXMLGUIClient >{ > friend class PartBasePrivate; >public: > > > > > PartBase(); > > > > > virtual ~PartBase(); > > > > > > > void setPartObject( QObject *object ); > QObject *partObject() const; > >protected: > > > > > > > virtual void setInstance( KInstance *instance ); > > > > > > > > virtual void setInstance( KInstance *instance, bool loadPlugins ); > > > > > > > enum PluginLoadingMode { > > > > DoNotLoadPlugins = 0, > > > > > > > LoadPlugins = 1, > > > > > > > LoadPluginsIfEnabled = 2 > }; ># 143 "/usr/kde/3.4/include/kparts/part.h" > void loadPlugins( QObject *parent, KXMLGUIClient *parentGUIClient, KInstance *instance ); > > > > > > void setPluginLoadingMode( PluginLoadingMode loadingMode ); > >private: > PartBasePrivate *d; > QObject *m_obj; >}; ># 181 "/usr/kde/3.4/include/kparts/part.h" >class Part : public QObject, public PartBase >{ > public: virtual QMetaObject *metaObject() const { return staticMetaObject(); } virtual const char *className() const; virtual void* qt_cast( const char* ); virtual bool qt_invoke( int, QUObject* ); virtual bool qt_emit( int, QUObject* ); virtual bool qt_property( int id, int f, QVariant* v); static bool qt_static_property( QObject* , int, int, QVariant* ); static QMetaObject* staticMetaObject(); QObject* qObject() { return (QObject*)this; } private: static QMetaObject *metaObj; > >public: > > > > > > > > Part( QObject *parent = 0, const char* name = 0 ); > > > > > virtual ~Part(); ># 211 "/usr/kde/3.4/include/kparts/part.h" > virtual void embed( QWidget * parentWidget ); > > > > > virtual QWidget *widget(); > > > > > > virtual void setManager( PartManager * manager ); > > > > > PartManager * manager() const; > > > > > virtual Part *hitTest( QWidget *widget, const QPoint &globalPos ); > > > > > virtual void setSelectable( bool selectable ); > > > > > bool isSelectable() const; > >protected: > > > > > void setWindowCaption( const QString & caption ); > > > > > void setStatusBarText( const QString & text ); > >protected: > > > > > > > virtual void setWidget( QWidget * widget ); > > > > > virtual void customEvent( QCustomEvent *event ); > > > > > > > virtual void partActivateEvent( PartActivateEvent *event ); > > > > > > > > virtual void partSelectEvent( PartSelectEvent *event ); > > > > > > > > virtual void guiActivateEvent( GUIActivateEvent *event ); > > > > > > QWidget *hostContainer( const QString &containerName ); > >private : > void slotWidgetDestroyed(); > >private: > QGuardedPtr<QWidget> m_widget; > > PartManager * m_manager; > > PartPrivate *d; >}; > >class ReadWritePart; >class ReadOnlyPartPrivate; ># 330 "/usr/kde/3.4/include/kparts/part.h" >class ReadOnlyPart : public Part >{ > public: virtual QMetaObject *metaObject() const { return staticMetaObject(); } virtual const char *className() const; virtual void* qt_cast( const char* ); virtual bool qt_invoke( int, QUObject* ); virtual bool qt_emit( int, QUObject* ); virtual bool qt_property( int id, int f, QVariant* v); static bool qt_static_property( QObject* , int, int, QVariant* ); static QMetaObject* staticMetaObject(); QObject* qObject() { return (QObject*)this; } private: static QMetaObject *metaObj; > friend class ReadWritePart; >public: > > > > > ReadOnlyPart( QObject *parent = 0, const char *name = 0 ); > > > > > virtual ~ReadOnlyPart(); ># 353 "/usr/kde/3.4/include/kparts/part.h" > void setProgressInfoEnabled( bool show ); > > > > > > bool isProgressInfoEnabled() const; > > > void showProgressInfo( bool show ); > > >public : > > > > > > > > virtual bool openURL( const KURL &url ); > >public: > > > > > > KURL url() const { return m_url; } ># 391 "/usr/kde/3.4/include/kparts/part.h" > virtual bool closeURL(); > >public: ># 404 "/usr/kde/3.4/include/kparts/part.h" > bool openStream( const QString& mimeType, const KURL& url ); > > > > > > > > bool writeStream( const QByteArray& data ); > > > > > > > bool closeStream(); > >private: > > > > > > > virtual bool doOpenStream( const QString& ) { return false; } > > > > > > > virtual bool doWriteStream( const QByteArray& ) { return false; } > > > > > > virtual bool doCloseStream() { return false; } > >protected: > > > > > > void started( KIO::Job * ); > > > > > > > void completed(); ># 467 "/usr/kde/3.4/include/kparts/part.h" > void completed( bool pendingAction ); > > > > > > void canceled( const QString &errMsg ); > >protected : > void slotJobFinished( KIO::Job * job ); > >protected: > > > > > > virtual bool openFile() = 0; > > > > > void abortLoad(); ># 501 "/usr/kde/3.4/include/kparts/part.h" > virtual void guiActivateEvent( GUIActivateEvent *event ); > > > > > KURL m_url; > > > > QString m_file; > > > > bool m_bTemp; > >private: > ReadOnlyPartPrivate *d; >}; ># 535 "/usr/kde/3.4/include/kparts/part.h" >class ReadWritePart : public ReadOnlyPart >{ > public: virtual QMetaObject *metaObject() const { return staticMetaObject(); } virtual const char *className() const; virtual void* qt_cast( const char* ); virtual bool qt_invoke( int, QUObject* ); virtual bool qt_emit( int, QUObject* ); virtual bool qt_property( int id, int f, QVariant* v); static bool qt_static_property( QObject* , int, int, QVariant* ); static QMetaObject* staticMetaObject(); QObject* qObject() { return (QObject*)this; } private: static QMetaObject *metaObj; >public: > > > > > ReadWritePart( QObject *parent = 0, const char *name = 0 ); ># 552 "/usr/kde/3.4/include/kparts/part.h" > virtual ~ReadWritePart(); > > > > > bool isReadWrite() const { return m_bReadWrite; } > > > > > > virtual void setReadWrite ( bool readwrite = true ); > > > > > bool isModified() const { return m_bModified; } ># 581 "/usr/kde/3.4/include/kparts/part.h" > bool queryClose(); ># 594 "/usr/kde/3.4/include/kparts/part.h" > virtual bool closeURL(); ># 607 "/usr/kde/3.4/include/kparts/part.h" > bool closeURL( bool promptToSave ); > > > > > > > virtual bool saveAs( const KURL &url ); > > > > > virtual void setModified( bool modified ); > >protected: > > > > > > > > void sigQueryClose(bool *handled, bool* abortClosing); > >public : > > > > > > virtual void setModified(); > > > > > > > virtual bool save(); > > > > > > bool waitSaveComplete(); > >protected: ># 664 "/usr/kde/3.4/include/kparts/part.h" > virtual bool saveFile() = 0; ># 674 "/usr/kde/3.4/include/kparts/part.h" > virtual bool saveToURL(); > >protected : > > > > void slotUploadFinished( KIO::Job * job ); > >private: > void prepareSaving(); > >private: > bool m_bModified; > bool m_bReadWrite; > bool m_bClosing; >}; > >} ># 28 "../kig/kig_part.h" 2 > ># 1 "../objects/common.h" 1 ># 26 "../objects/common.h" ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/cassert" 1 3 ># 46 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/cassert" 3 > ># 47 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/cassert" 3 > ># 1 "/usr/include/assert.h" 1 3 4 ># 49 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/cassert" 2 3 ># 27 "../objects/common.h" 2 ># 1 "/usr/kde/3.4/include/klocale.h" 1 ># 26 "/usr/kde/3.4/include/klocale.h" ># 1 "/usr/kde/3.4/include/kdelibs_export.h" 1 ># 27 "/usr/kde/3.4/include/klocale.h" 2 > >class QStringList; >class QTextCodec; >class QDate; >class QTime; >class QDateTime; > >class KGlobal; >class KConfig; >class KConfigBase; >class KLocalePrivate; >class KCatalogue; >class KCalendarSystem; ># 73 "/usr/kde/3.4/include/klocale.h" > QString i18n(const char *text); ># 82 "/usr/kde/3.4/include/klocale.h" > QString i18n(const char *comment, const char *text); ># 95 "/usr/kde/3.4/include/klocale.h" > QString i18n(const char *singular, const char *plural, unsigned long n); > > > > > > > >inline QString tr2i18n(const char* message, const char* =0) { > return i18n(message); >} ># 119 "/usr/kde/3.4/include/klocale.h" >class KLocale >{ > friend class KGlobal; >public: ># 139 "/usr/kde/3.4/include/klocale.h" > KLocale( const QString& catalog, KConfig *config = 0 ); > > > > > KLocale( const KLocale & rhs ); > > > > > KLocale& operator= ( const KLocale & rhs ); > > > > > ~KLocale(); ># 174 "/usr/kde/3.4/include/klocale.h" > QString translate( const char *index ) const; ># 201 "/usr/kde/3.4/include/klocale.h" > QString translate( const char *comment, const char *fallback) const; ># 213 "/usr/kde/3.4/include/klocale.h" > QString translate( const char *singular, const char *plural, > unsigned long n) const; ># 223 "/usr/kde/3.4/include/klocale.h" > bool setEncoding(int mibEnum); ># 234 "/usr/kde/3.4/include/klocale.h" > bool setLanguage(const QString & language); ># 245 "/usr/kde/3.4/include/klocale.h" > bool setLanguage(const QStringList & languages); ># 256 "/usr/kde/3.4/include/klocale.h" > bool setCountry(const QString & country); > > > > > > enum SignPosition { ParensAround = 0, BeforeQuantityMoney = 1, > AfterQuantityMoney = 2, > BeforeMoney = 3, AfterMoney = 4 }; > > > > > > > > QString decimalSymbol() const; ># 281 "/usr/kde/3.4/include/klocale.h" > QString thousandsSeparator() const; > > > > > > > > QString currencySymbol() const; ># 298 "/usr/kde/3.4/include/klocale.h" > QString monetaryDecimalSymbol() const; ># 307 "/usr/kde/3.4/include/klocale.h" > QString monetaryThousandsSeparator() const; > > > > > > > > QString positiveSign() const; > > > > > > > > QString negativeSign() const; > > > > > > > > int fracDigits() const; > > > > > > > > bool positivePrefixCurrencySymbol() const; > > > > > > > > bool negativePrefixCurrencySymbol() const; ># 356 "/usr/kde/3.4/include/klocale.h" > SignPosition positiveMonetarySignPosition() const; ># 365 "/usr/kde/3.4/include/klocale.h" > SignPosition negativeMonetarySignPosition() const; ># 381 "/usr/kde/3.4/include/klocale.h" > QString formatMoney(double num, > const QString & currency = QString::null, > int digits = -1) const; ># 397 "/usr/kde/3.4/include/klocale.h" > QString formatNumber(double num, int precision = -1) const; ># 410 "/usr/kde/3.4/include/klocale.h" > QString formatLong(long num) const; ># 420 "/usr/kde/3.4/include/klocale.h" > bool nounDeclension() const; ># 431 "/usr/kde/3.4/include/klocale.h" > QString formatDate(const QDate &pDate, bool shortFormat = false) const; ># 440 "/usr/kde/3.4/include/klocale.h" > bool dateMonthNamePossessive() const; ># 454 "/usr/kde/3.4/include/klocale.h" > QString formatTime(const QTime &pTime, bool includeSecs, bool isDuration ) const; ># 466 "/usr/kde/3.4/include/klocale.h" > QString formatTime(const QTime &pTime, bool includeSecs = false) const; > > > > > > > bool use12Clock() const; ># 484 "/usr/kde/3.4/include/klocale.h" > bool weekStartsMonday() const __attribute__ ((deprecated)); > > > > > > > > int weekStartDay() const; ># 514 "/usr/kde/3.4/include/klocale.h" > QString monthName(int i, bool shortName = false) const __attribute__ ((deprecated)); ># 539 "/usr/kde/3.4/include/klocale.h" > QString monthNamePossessive(int i, bool shortName = false) const __attribute__ ((deprecated)); ># 551 "/usr/kde/3.4/include/klocale.h" > QString weekDayName(int i, bool shortName = false) const __attribute__ ((deprecated)); > > > > > > > > const KCalendarSystem * calendar() const; ># 568 "/usr/kde/3.4/include/klocale.h" > QString calendarType() const; ># 578 "/usr/kde/3.4/include/klocale.h" > void setCalendar(const QString & calendarType); ># 590 "/usr/kde/3.4/include/klocale.h" > QString formatDateTime(const QDateTime &pDateTime, > bool shortFormat = true, > bool includeSecs = false) const; ># 603 "/usr/kde/3.4/include/klocale.h" > double readMoney(const QString &numStr, bool * ok = 0) const; ># 614 "/usr/kde/3.4/include/klocale.h" > double readNumber(const QString &numStr, bool * ok = 0) const; ># 626 "/usr/kde/3.4/include/klocale.h" > QDate readDate(const QString &str, bool* ok = 0) const; > > > > > > QDate readDate( const QString &intstr, const QString &fmt, bool* ok = 0) const; > > enum ReadDateFlags { > NormalFormat = 1, > ShortFormat = 2 > }; ># 652 "/usr/kde/3.4/include/klocale.h" > QDate readDate(const QString &str, ReadDateFlags flags, bool *ok = 0) const; ># 666 "/usr/kde/3.4/include/klocale.h" > QTime readTime(const QString &str, bool* ok = 0) const; > > enum ReadTimeFlags { > WithSeconds = 0, > WithoutSeconds = 1 > }; ># 686 "/usr/kde/3.4/include/klocale.h" > QTime readTime(const QString &str, ReadTimeFlags flags, bool *ok = 0) const; ># 695 "/usr/kde/3.4/include/klocale.h" > QString language() const; > > > > > > > > QString country() const; ># 718 "/usr/kde/3.4/include/klocale.h" > QStringList languagesTwoAlpha() const; ># 728 "/usr/kde/3.4/include/klocale.h" > QStringList languageList() const; ># 738 "/usr/kde/3.4/include/klocale.h" > const char * encoding() const; ># 748 "/usr/kde/3.4/include/klocale.h" > int encodingMib() const; ># 757 "/usr/kde/3.4/include/klocale.h" > QTextCodec * codecForEncoding() const; ># 767 "/usr/kde/3.4/include/klocale.h" > int fileEncodingMib() const; ># 790 "/usr/kde/3.4/include/klocale.h" > void setDateFormat(const QString & format); ># 812 "/usr/kde/3.4/include/klocale.h" > void setDateFormatShort(const QString & format); > > > > > > > void setDateMonthNamePossessive(bool possessive); ># 838 "/usr/kde/3.4/include/klocale.h" > void setTimeFormat(const QString & format); ># 849 "/usr/kde/3.4/include/klocale.h" > void setWeekStartsMonday(bool start) __attribute__ ((deprecated)); > > > > > > > > void setWeekStartDay(int day); > > > > > > > QString dateFormat() const; > > > > > > > QString dateFormatShort() const; > > > > > > > QString timeFormat() const; > > > > > > > void setDecimalSymbol(const QString & symbol); > > > > > > void setThousandsSeparator(const QString & separator); > > > > > > > void setPositiveSign(const QString & sign); > > > > > > void setNegativeSign(const QString & sign); > > > > > > void setPositiveMonetarySignPosition(SignPosition signpos); > > > > > > void setNegativeMonetarySignPosition(SignPosition signpos); > > > > > > > > void setPositivePrefixCurrencySymbol(bool prefix); > > > > > > > > void setNegativePrefixCurrencySymbol(bool prefix); > > > > > > void setFracDigits(int digits); > > > > > > void setMonetaryThousandsSeparator(const QString & separator); > > > > > > > void setMonetaryDecimalSymbol(const QString & symbol); > > > > > > void setCurrencySymbol(const QString & symbol); > > > > > > > int pageSize() const; > > > > > > > void setPageSize(int paperFormat); > > > > > > enum MeasureSystem { Metric, Imperial }; > > > > > > > MeasureSystem measureSystem() const; > > > > > > > void setMeasureSystem(MeasureSystem value); ># 1003 "/usr/kde/3.4/include/klocale.h" > void insertCatalogue(const QString& catalog); > > > > > > > void removeCatalogue(const QString &catalog); > > > > > > void setActiveCatalogue(const QString &catalog); > > > > > > > > QString translateQt(const char *context, > const char *sourceText, > const char *message) const; > > > > > > > QStringList allLanguagesTwoAlpha() const; > > > > > > > > QString twoAlphaToLanguageName(const QString &code) const; > > > > > > > QStringList allCountriesTwoAlpha() const; > > > > > > > > QString twoAlphaToCountryName(const QString &code) const; ># 1067 "/usr/kde/3.4/include/klocale.h" > static void splitLocale(const QString & str, > QString & language, > QString & country, > QString & charset); ># 1080 "/usr/kde/3.4/include/klocale.h" > static void setMainCatalogue(const char *catalog); > > > > > > > > static QString langLookup(const QString &fname, const char *rtype = "html"); > > > > > > > static QString defaultLanguage(); > > > > > > > static QString defaultCountry(); > > > > > > static QString _initLanguage(KConfigBase *config); ># 1117 "/usr/kde/3.4/include/klocale.h" > QString formatMoney(const QString &numStr) const __attribute__ ((deprecated)); > > > > > > QString formatNumber(const QString &numStr) const __attribute__ ((deprecated)); > > > > > > > > QString languages() const __attribute__ ((deprecated)); > > > > > > bool setCharset(const QString & charset) __attribute__ ((deprecated)); > > > > > > QString charset() const __attribute__ ((deprecated)); > >protected: > > > > > static void initInstance(); > >private: > > > > > > > void initFormat(KConfig *config); > > > > > > > > void initMainCatalogues(const QString & catalog); ># 1177 "/usr/kde/3.4/include/klocale.h" > void initLanguageList(KConfig * config, bool useEnv); > > > > > > > void initEncoding(KConfig * config); > > > > > > void initFileNameEncoding(KConfig *config); > > > > > static QCString encodeFileNameUTF8( const QString & fileName ); > > > > > static QString decodeFileNameUTF8( const QCString & localFileName ); > > > > > > void initCatalogue( KCatalogue & catalog ); > > > > > void doFormatInit() const; > > > > > void initFormat(); > > > > > QString translate_priv(const char *index, > const char *text, > const char ** original = 0, > int* pluralType = 0) const; > > > > > bool useDefaultLanguage() const; > > > > > bool isLanguageInstalled(const QString & language) const; > > > > > > void updateCatalogues( ); > > > > > void initPluralTypes( ); > > > > > > int pluralType( const QString & language ); > > > > > > > > int pluralType( const KCatalogue& catalog ); ># 1273 "/usr/kde/3.4/include/klocale.h" > static QString catalogueFileName(const QString & language, > const KCatalogue & catalog); > > > > > > > bool isApplicationTranslatedInto( const QString & language); > >private: > > QString m_decimalSymbol; > QString m_thousandsSeparator; > QString m_currencySymbol; > QString m_monetaryDecimalSymbol; > QString m_monetaryThousandsSeparator; > QString m_positiveSign; > QString m_negativeSign; > int m_fracDigits; > SignPosition m_positiveMonetarySignPosition; > SignPosition m_negativeMonetarySignPosition; > > > QString m_timeFormat; > QString m_dateFormat; > QString m_dateFormatShort; > > QString m_language; > QString m_country; > > bool m_weekStartsMonday; > bool m_positivePrefixCurrencySymbol; > bool m_negativePrefixCurrencySymbol; > > KLocalePrivate *d; >}; ># 28 "../objects/common.h" 2 > >class Coordinate; >class KigDocument; >class KigPainter; >class KigPart; >class KigWidget; >class NormalMode; >class ObjectCalcer; >class ObjectDrawer; >class ObjectHolder; >class ObjectImp; >class ObjectImpType; >class ObjectPropertyCalcer; >class ObjectType; >class ObjectTypeCalcer; >class QDomDocument; >class QDomElement; >class Rect; >class ScreenInfo; >class Transformation; > >typedef std::vector<const ObjectImp*> Args; >typedef QValueList<QCString> QCStringList; > >template<typename T> >void delete_all( T begin, T end ) >{ > for( ; begin != end; ++begin ) > { > delete *begin; > } >} > > >std::vector<ObjectCalcer*> getAllCalcers( const std::vector<ObjectHolder*>& os ); > > >std::vector<ObjectCalcer*> getCalcers( const std::vector<ObjectHolder*>& os ); ># 91 "../objects/common.h" >class FakeClass { >public: > FakeClass( const ObjectType* ) { > }; >}; ># 30 "../kig/kig_part.h" 2 > >class KAboutData; >class KActionMenu; >class KCommandHistory; >class KPrinter; >class KSelectAction; >class KToolBar; >class KToggleAction; >class KURL; >class QWidget; > >class Coordinate; >class CoordinateSystem; >class GUIAction; >class KigGUIAction; >class KigMode; >class KigObjectsPopup; >class KigView; >class MacroWizardImpl; >class ObjectHolder; >class Rect; >class ScreenInfo; ># 62 "../kig/kig_part.h" >class KigPart : public KParts::ReadWritePart >{ > public: virtual QMetaObject *metaObject() const { return staticMetaObject(); } virtual const char *className() const; virtual void* qt_cast( const char* ); virtual bool qt_invoke( int, QUObject* ); virtual bool qt_emit( int, QUObject* ); virtual bool qt_property( int id, int f, QVariant* v); static bool qt_static_property( QObject* , int, int, QVariant* ); static QMetaObject* staticMetaObject(); QObject* qObject() { return (QObject*)this; } private: static QMetaObject *metaObj; >public: > > > > KigPart( QWidget* parentWidget, const char* widgetName, > QObject* parent = 0, const char* name = 0, > const QStringList& = QStringList() > ); > > > > > virtual ~KigPart(); > > > >protected: > > > > virtual bool openFile(); > > > > > virtual bool saveFile(); > >public: > void emitStatusBarText( const QString& text ); > void redrawScreen(); > void redrawScreen( KigWidget* w ); > >public : > void fileSaveAs(); > void fileSave(); > > void filePrint(); > void filePrintPreview(); > > void slotSelectAll(); > void slotDeselectAll(); > void slotInvertSelection(); > > void unplugActionLists(); > void plugActionLists(); > > void deleteObjects(); > void cancelConstruction(); > void showHidden(); > void newMacro(); > void editTypes(); > > void toggleGrid(); > void toggleAxes(); > void toggleNightVision(); > > > > > void setUnmodified(); > > >public: > void addWidget( KigWidget* ); > void delWidget( KigWidget* ); > > KigMode* mode() const { return mMode; }; > void setMode( KigMode* ); > void runMode( KigMode* ); > void doneMode( KigMode* ); > > void coordSystemChanged( int ); > >protected: > > > void recenterScreen(); > > >public: > > > > void addObject(ObjectHolder* inObject); > void addObjects( const std::vector<ObjectHolder*>& os ); > void delObject(ObjectHolder* inObject); > void delObjects( const std::vector<ObjectHolder*>& os ); > void hideObjects( const std::vector<ObjectHolder*>& os ); > void showObjects( const std::vector<ObjectHolder*>& os ); > > void _addObject( ObjectHolder* inObject ); > void _addObjects( const std::vector<ObjectHolder*>& o); > void _delObject( ObjectHolder* inObject ); > void _delObjects( const std::vector<ObjectHolder*>& o ); > > >protected: > bool internalSaveAs(); > >public: > static KAboutData* createAboutData(); >protected: > void setupActions(); > void setupTypes(); > void setupBuiltinMacros(); > void setupMacroTypes(); > >protected: > KigMode* mMode; > KSelectAction* aCoordSystem; > > > KCommandHistory* mhistory; > >public: ># 189 "../kig/kig_part.h" > QPtrList<KAction> aMNewSegment; > QPtrList<KAction> aMNewPoint; > QPtrList<KAction> aMNewCircle; > QPtrList<KAction> aMNewLine; > QPtrList<KAction> aMNewOther; > QPtrList<KAction> aMNewAll; > QPtrList<KAction> aMNewConic; > > > KAction* aCancelConstruction; > KAction* aSelectAll; > KAction* aDeselectAll; > KAction* aInvertSelection; > KAction* aDeleteObjects; > KAction* aNewMacro; > KAction* aShowHidden; > KAction* aConfigureTypes; > KToggleAction* aToggleGrid; > KToggleAction* aToggleAxes; > KToggleAction* aToggleNightVision; > std::vector<KigGUIAction*> aActions; ># 220 "../kig/kig_part.h" > typedef std::vector<KigGUIAction*> GUIUpdateToken; > GUIUpdateToken startGUIActionUpdate(); > void actionAdded( GUIAction* a, GUIUpdateToken& t ); > void actionRemoved( GUIAction* a, GUIUpdateToken& t ); > void endGUIActionUpdate( GUIUpdateToken& t ); > > KCommandHistory* history(); > > void enableConstructActions( bool enabled ); > >protected: > void doPrint( KPrinter& printer ); > > std::vector<KigWidget*> mwidgets; > > KigView* m_widget; > > KigDocument* mdocument; >public: > const KigDocument& document() const; > KigDocument& document(); > > > void saveTypes(); > void loadTypes(); > void deleteTypes(); > >}; ># 26 "drgeo-filter.cc" 2 ># 1 "../misc/common.h" 1 ># 25 "../misc/common.h" ># 1 "../misc/coordinate.h" 1 ># 25 "../misc/coordinate.h" >class QPoint; >class kdbgstream; > > > > > > >class Coordinate >{ >public: > static Coordinate fromQPoint( const QPoint& p ); > > > > > Coordinate( double x, double y ); > > > > Coordinate( const Coordinate& p ); > > > > > > > > Coordinate(); > ~Coordinate() {}; ># 67 "../misc/coordinate.h" > static Coordinate invalidCoord(); > > > > bool valid() const; > > > > double distance ( const Coordinate& p ) const; > > > > > double length () const; > > > > > inline double squareLength() const; > > > const Coordinate operator- () const; > > > > > > > > const Coordinate orthogonal() const; > > > > const Coordinate round() const; > > > > const Coordinate normalize( double length = 1 ) const; > QPoint toQPoint() const; > > Coordinate& operator= ( const Coordinate& c ); > > > Coordinate& operator+= ( const Coordinate& c ); > > > Coordinate& operator-= ( const Coordinate& c ); > > > Coordinate& operator*= ( double r ); > > > Coordinate& operator*= ( int r ); > > > Coordinate& operator/= ( double r ); >public: > > > double x; > > > double y; > > friend kdbgstream& operator<<( kdbgstream& s, const Coordinate& t ); > > > friend const Coordinate operator+ ( const Coordinate& a, const Coordinate& b ); > > > friend const Coordinate operator- ( const Coordinate& a, const Coordinate& b ); > > > friend const Coordinate operator* ( const Coordinate& a, double r ); > > > friend const Coordinate operator/ ( const Coordinate& a, double r ); > > > friend double operator*( const Coordinate& a, const Coordinate& b ); > > > friend bool operator==( const Coordinate&, const Coordinate& ); > > > friend bool operator!=( const Coordinate&, const Coordinate& ); >}; > >const Coordinate operator/ ( const Coordinate& a, double r ); >kdbgstream& operator<<( kdbgstream& s, const Coordinate& t ); >const Coordinate operator+ ( const Coordinate& a, const Coordinate& b ); >const Coordinate operator- ( const Coordinate& a, const Coordinate& b ); >const Coordinate operator* ( const Coordinate& a, double r ); >const Coordinate operator* ( double r, const Coordinate& a ); >double operator*( const Coordinate& a, const Coordinate& b ); > >double Coordinate::squareLength() const >{ > return x*x+y*y; >} ># 26 "../misc/common.h" 2 ># 1 "../misc/rect.h" 1 ># 28 "../misc/rect.h" ># 1 "/usr/kde/3.4/include/kdebug.h" 1 ># 26 "/usr/kde/3.4/include/kdebug.h" ># 1 "/usr/kde/3.4/include/kdelibs_export.h" 1 ># 27 "/usr/kde/3.4/include/kdebug.h" 2 > >class QWidget; >class QDateTime; >class QDate; >class QTime; >class QPoint; >class QSize; >class QRect; >class QRegion; >class KURL; >class QStringList; >class QColor; >class QPen; >class QBrush; >class QVariant; >template <class T> >class QValueList; > >class kdbgstream; >class kndbgstream; ># 55 "/usr/kde/3.4/include/kdebug.h" >typedef kdbgstream & (*KDBGFUNC)(kdbgstream &); >typedef kndbgstream & (*KNDBGFUNC)(kndbgstream &); ># 66 "/usr/kde/3.4/include/kdebug.h" >class kdbgstreamprivate; ># 80 "/usr/kde/3.4/include/kdebug.h" >class kdbgstream { > public: > > > > kdbgstream(unsigned int _area, unsigned int _level, bool _print = true) : > area(_area), level(_level), print(_print) { } > kdbgstream(const char * initialString, unsigned int _area, unsigned int _level, bool _print = true) : > output(QString::fromLatin1(initialString)), area(_area), level(_level), print(_print) { } > > kdbgstream(kdbgstream &str); > kdbgstream(const kdbgstream &str) : > output(str.output), area(str.area), level(str.level), print(str.print) {} > ~kdbgstream(); > > > > > > kdbgstream &operator<<(bool i) { > if (!print) return *this; > output += QString::fromLatin1(i ? "true" : "false"); > return *this; > } > > > > > > kdbgstream &operator<<(short i) { > if (!print) return *this; > QString tmp; tmp.setNum(i); output += tmp; > return *this; > } > > > > > > kdbgstream &operator<<(unsigned short i) { > if (!print) return *this; > QString tmp; tmp.setNum(i); output += tmp; > return *this; > } > > > > > > kdbgstream &operator<<(char ch); > > > > > > kdbgstream &operator<<(unsigned char ch) { > return operator<<( static_cast<char>( ch ) ); > } > > > > > > kdbgstream &operator<<(int i) { > if (!print) return *this; > QString tmp; tmp.setNum(i); output += tmp; > return *this; > } > > > > > > kdbgstream &operator<<(unsigned int i) { > if (!print) return *this; > QString tmp; tmp.setNum(i); output += tmp; > return *this; > } > > > > > > kdbgstream &operator<<(long i) { > if (!print) return *this; > QString tmp; tmp.setNum(i); output += tmp; > return *this; > } > > > > > > kdbgstream &operator<<(unsigned long i) { > if (!print) return *this; > QString tmp; tmp.setNum(i); output += tmp; > return *this; > } > > > > > > kdbgstream &operator<<(Q_LLONG i) { > if (!print) return *this; > QString tmp; tmp.setNum(i); output += tmp; > return *this; > } > > > > > > kdbgstream &operator<<(Q_ULLONG i) { > if (!print) return *this; > QString tmp; tmp.setNum(i); output += tmp; > return *this; > } > > > > > void flush(); > > > > > > > > kdbgstream &operator<<(QChar ch); > > > > > > kdbgstream &operator<<(const QString& string) { > if (!print) return *this; > output += string; > if (output.at(output.length() -1 ) == '\n') > flush(); > return *this; > } > > > > > > kdbgstream &operator<<(const char *string) { > if (!print) return *this; > output += QString::fromUtf8(string); > if (output.at(output.length() - 1) == '\n') > flush(); > return *this; > } > > > > > > kdbgstream &operator<<(const QCString& string) { > *this << string.data(); > return *this; > } > > > > > > kdbgstream& operator<<(const void * p) { > form("%p", p); > return *this; > } > > > > > > kdbgstream& operator<<(KDBGFUNC f) { > if (!print) return *this; > return (*f)(*this); > } > > > > > > kdbgstream& operator<<(double d) { > QString tmp; tmp.setNum(d); output += tmp; > return *this; > } > > > > > > > kdbgstream &form(const char *format, ...) > > __attribute__ ( ( format ( printf, 2, 3 ) ) ) > > ; > > > > > > > kdbgstream& operator << (const QWidget* widget); > kdbgstream& operator << (QWidget* widget); > > > > > > > kdbgstream& operator << ( const QDateTime& dateTime ); > > > > > > > kdbgstream& operator << ( const QDate& date ); > > > > > > > kdbgstream& operator << ( const QTime& time ); > > > > > > > kdbgstream& operator << ( const QPoint& point ); > > > > > > > kdbgstream& operator << ( const QSize& size ); > > > > > > > kdbgstream& operator << ( const QRect& rect); > > > > > > > kdbgstream& operator << ( const QRegion& region); > > > > > > > kdbgstream& operator << ( const KURL& url ); > > > > > > > > kdbgstream& operator << ( const QStringList& list); > > > > > > > kdbgstream& operator << ( const QColor& color); > > > > > > > > kdbgstream& operator << ( const QPen& pen ); > > > > > > > kdbgstream& operator << ( const QBrush& brush ); > > > > > > > > kdbgstream& operator << ( const QVariant& variant ); > > > > > > > > kdbgstream& operator << ( const QByteArray& data ); > > > > > > > > template <class T> > kdbgstream& operator << ( const QValueList<T> &list ); > > private: > QString output; > unsigned int area, level; > bool print; > kdbgstreamprivate* d; >}; > >template <class T> >kdbgstream &kdbgstream::operator<<( const QValueList<T> &list ) >{ > *this << "("; > typename QValueList<T>::ConstIterator it = list.begin(); > if ( !list.isEmpty() ) { > *this << *it++; > } > for ( ; it != list.end(); ++it ) { > *this << "," << *it; > } > *this << ")"; > return *this; >} > > > > > > > >inline kdbgstream &endl( kdbgstream &s) { s << "\n"; return s; } > > > > > > > >inline kdbgstream &flush( kdbgstream &s) { s.flush(); return s; } > > kdbgstream &perror( kdbgstream &s); > > > > > > > >class kndbgstream { > public: > > kndbgstream() {} > ~kndbgstream() {} > > > > > kndbgstream &operator<<(short int ) { return *this; } > > > > > kndbgstream &operator<<(unsigned short int ) { return *this; } > > > > > kndbgstream &operator<<(char ) { return *this; } > > > > > kndbgstream &operator<<(unsigned char ) { return *this; } > > > > > kndbgstream &operator<<(int ) { return *this; } > > > > > kndbgstream &operator<<(unsigned int ) { return *this; } > > > > void flush() {} > > > > > kndbgstream &operator<<(QChar) { return *this; } > > > > > kndbgstream &operator<<(const QString& ) { return *this; } > > > > > kndbgstream &operator<<(const QCString& ) { return *this; } > > > > > kndbgstream &operator<<(const char *) { return *this; } > > > > > kndbgstream& operator<<(const void *) { return *this; } > > > > > kndbgstream& operator<<(void *) { return *this; } > > > > > kndbgstream& operator<<(double) { return *this; } > > > > > kndbgstream& operator<<(long) { return *this; } > > > > > kndbgstream& operator<<(unsigned long) { return *this; } > > > > > kndbgstream& operator<<(Q_LLONG) { return *this; } > > > > > kndbgstream& operator<<(Q_ULLONG) { return *this; } > > > > > kndbgstream& operator<<(KNDBGFUNC) { return *this; } > > > > > kndbgstream& operator << (const QWidget*) { return *this; } > kndbgstream& operator << (QWidget*) { return *this; } > > > > > kndbgstream &form(const char *, ...) { return *this; } > > kndbgstream& operator<<( const QDateTime& ) { return *this; } > kndbgstream& operator<<( const QDate& ) { return *this; } > kndbgstream& operator<<( const QTime& ) { return *this; } > kndbgstream& operator<<( const QPoint & ) { return *this; } > kndbgstream& operator<<( const QSize & ) { return *this; } > kndbgstream& operator<<( const QRect & ) { return *this; } > kndbgstream& operator<<( const QRegion & ) { return *this; } > kndbgstream& operator<<( const KURL & ) { return *this; } > kndbgstream& operator<<( const QStringList & ) { return *this; } > kndbgstream& operator<<( const QColor & ) { return *this; } > kndbgstream& operator<<( const QPen & ) { return *this; } > kndbgstream& operator<<( const QBrush & ) { return *this; } > kndbgstream& operator<<( const QVariant & ) { return *this; } > kndbgstream& operator<<( const QByteArray & ) { return *this; } > > template <class T> > kndbgstream& operator<<( const QValueList<T> & ) { return *this; } >}; > > > > > > >inline kndbgstream &endl( kndbgstream & s) { return s; } > > > > > >inline kndbgstream &flush( kndbgstream & s) { return s; } >inline kndbgstream &perror( kndbgstream & s) { return s; } ># 599 "/usr/kde/3.4/include/kdebug.h" > kdbgstream kdDebug(int area = 0); > kdbgstream kdDebug(bool cond, int area = 0); > > > > > > QString kdBacktrace(); > > > > > > > > QString kdBacktrace(int levels); > > > > > >inline kndbgstream kndDebug(int area = 0) { (void)area;; return kndbgstream(); } >inline kndbgstream kndDebug(bool , int = 0) { return kndbgstream(); } >inline QString kndBacktrace() { return QString::null; } >inline QString kndBacktrace(int) { return QString::null; } > > > > > > > > kdbgstream kdWarning(int area = 0); > kdbgstream kdWarning(bool cond, int area = 0); > > > > > > > kdbgstream kdError(int area = 0); > kdbgstream kdError(bool cond, int area = 0); > > > > > > > kdbgstream kdFatal(int area = 0); > kdbgstream kdFatal(bool cond, int area = 0); > > > > > > > void kdClearDebugConfig(); ># 29 "../misc/rect.h" 2 > > > > > >class Rect >{ >public: > > > > Rect( const Coordinate bottomLeft, const Coordinate topRight ); > Rect( const Coordinate bottomLeft, const double width, const double height ); > Rect( double xa, double ya, double width, double height ); > Rect( const Rect& r ); > Rect(); > static Rect invalidRect(); > > > bool valid(); > > void setBottomLeft( const Coordinate p ); > void setTopLeft( const Coordinate p ); > void setTopRight( const Coordinate p ); > void setBottomRight( const Coordinate p ); > void setCenter( const Coordinate p ); > void setLeft( const double p); > void setRight( const double p); > void setTop( const double p ); > void setBottom( const double p ); > void setWidth( const double w ); > void setHeight( const double h ); > > > > void normalize(); > > > > void setContains( Coordinate p ); > > > > void moveBy( const Coordinate p ); > > > > Rect& operator+=( const Coordinate p ) { moveBy(p); return *this; }; > > > > void scale( const double r ); > > > > Rect& operator*=( const double r ) { scale(r); return *this; }; > Rect& operator/=( const double r ) { scale(1/r); return *this; }; > > > > > > void eat( const Rect& r ); > > > Rect& operator|=( const Rect& rhs ) { eat( rhs ); return *this; }; > > > > > > Rect matchShape( const Rect& rhs, bool shrink = false ) const; > > QRect toQRect() const; > Coordinate bottomLeft() const; > Coordinate bottomRight() const; > Coordinate topLeft() const; > Coordinate topRight() const; > Coordinate center() const; > double left() const; > double right() const; > double bottom() const; > double top() const; > double width() const; > double height() const; > bool contains( const Coordinate& p ) const; > bool contains( const Coordinate& p, double allowed_miss ) const; > bool intersects( const Rect& p ) const; > Rect normalized() const; > friend kdbgstream& operator<<( kdbgstream& s, const Rect& t ); > > static Rect fromQRect( const QRect& ); >protected: > Coordinate mBottomLeft; > double mwidth; > double mheight; >}; > >bool operator==( const Rect& r, const Rect& s ); >kdbgstream& operator<<( kdbgstream& s, const Rect& t ); > > >Rect operator|( const Rect& lhs, const Rect& rhs ); ># 27 "../misc/common.h" 2 > > > ># 1 "/usr/kde/3.4/include/kdeversion.h" 1 ># 23 "/usr/kde/3.4/include/kdeversion.h" ># 1 "/usr/kde/3.4/include/kdelibs_export.h" 1 ># 24 "/usr/kde/3.4/include/kdeversion.h" 2 ># 39 "/usr/kde/3.4/include/kdeversion.h" >namespace KDE >{ ># 49 "/usr/kde/3.4/include/kdeversion.h" > unsigned int version(); > > > > > > > unsigned int versionMajor(); > > > > > > > unsigned int versionMinor(); > > > > > > > unsigned int versionRelease(); > > > > > > const char *versionString(); >} ># 31 "../misc/common.h" 2 > > ># 1 "/usr/include/assert.h" 1 3 4 ># 34 "../misc/common.h" 2 ># 45 "../misc/common.h" >class ObjectImp; >class KigWidget; > >extern const double double_inf; > > > > > > >double getDoubleFromUser( const QString& caption, const QString& label, double value, > QWidget* parent, bool* ok, double min, double max, int decimals ); > > > > >class LineData { >public: > > > > > > LineData() : a(), b() {}; > > > > LineData( const Coordinate& na, const Coordinate& nb ) : a( na ), b( nb ) {}; > > > > Coordinate a; > > > > Coordinate b; > > > > const Coordinate dir() const { return b - a; }; > > > > double length() const { return ( b - a ).length(); }; > > > > > bool isParallelTo( const LineData& l ) const; > > > > > bool isOrthogonalTo( const LineData& l ) const; >}; > > > > >bool operator==( const LineData& l, const LineData& r ); > > > > > >Coordinate calcRotatedPoint( const Coordinate& a, const Coordinate& c, const double arc ); > > > > > >Coordinate calcPointOnPerpend( const LineData& l, const Coordinate& t ); > > > > > >Coordinate calcPointOnPerpend( const Coordinate& dir, const Coordinate& t ); > > > > > >Coordinate calcPointOnParallel( const LineData& l, const Coordinate& t ); > > > > > >Coordinate calcPointOnParallel( const Coordinate& dir, const Coordinate& t ); > > > > > >Coordinate calcIntersectionPoint( const LineData& l, const LineData& m ); ># 151 "../misc/common.h" >const Coordinate calcCircleLineIntersect( const Coordinate& c, > const double sqr, > const LineData& l, > int side ); ># 165 "../misc/common.h" >const Coordinate calcArcLineIntersect( const Coordinate& c, const double sqr, > const double sa, const double angle, > const LineData& l, int side ); > > > > > >const Coordinate calcPointProjection( const Coordinate& p, > const LineData& l ); > > > > >double calcDistancePointLine( const Coordinate& p, > const LineData& l ); > > > > > >void calcBorderPoints( Coordinate& p1, Coordinate& p2, const Rect& r ); > > > >void calcBorderPoints( double& xa, double& xb, double& ya, double& yb, const Rect& r); > > > >const LineData calcBorderPoints( const LineData& l, const Rect& r ); > > > > >void calcRayBorderPoints( const Coordinate& a, Coordinate& b, const Rect& r ); > > > > > >const Coordinate calcCenter( > const Coordinate& a, const Coordinate& b, const Coordinate& c ); > > > > >void calcRayBorderPoints( const double xa, const double xb, double& ya, > double& yb, const Rect& r ); > > > > >const Coordinate calcMirrorPoint( const LineData& l, > const Coordinate& p ); > > > > >bool areCollinear( const Coordinate& p1, const Coordinate& p2, > const Coordinate& p3 ); > > > > > >bool isSingular( const double& a, const double& b, > const double& c, const double& d ); > > > > > >bool isOnLine( const Coordinate& o, const Coordinate& a, > const Coordinate& b, const double fault ); > > > > > > >bool isOnSegment( const Coordinate& o, const Coordinate& a, > const Coordinate& b, const double fault ); > >bool isOnRay( const Coordinate& o, const Coordinate& a, > const Coordinate& b, const double fault ); > >bool isOnArc( const Coordinate& o, const Coordinate& c, const double r, > const double sa, const double a, const double fault ); > >Coordinate calcCircleRadicalStartPoint( const Coordinate& ca, > const Coordinate& cb, > double sqra, double sqrb ); > > > > > > >bool lineInRect( const Rect& r, const Coordinate& a, const Coordinate& b, > const int width, const ObjectImp* imp, const KigWidget& w ); > >template <typename T> >T kigMin( const T& a, const T& b ) >{ > return a < b ? a : b; >} > >template <typename T> >T kigMax( const T& a, const T& b ) >{ > return a > b ? a : b; >} > >template <typename T> >T kigAbs( const T& a ) >{ > return a >= 0 ? a : -a; >} > >template <typename T> >int kigSgn( const T& a ) >{ > return a == 0 ? 0 : a > 0 ? +1 : -1; >} > >extern const double test_threshold; ># 27 "drgeo-filter.cc" 2 > ># 1 "../objects/angle_type.h" 1 ># 22 "../objects/angle_type.h" ># 1 "../objects/base_type.h" 1 ># 21 "../objects/base_type.h" ># 1 "../objects/object_type.h" 1 ># 22 "../objects/object_type.h" ># 1 "../misc/argsparser.h" 1 ># 23 "../misc/argsparser.h" ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/string" 1 3 ># 43 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/string" 3 > ># 44 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/string" 3 > > > ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/char_traits.h" 1 3 ># 43 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/char_traits.h" 3 > ># 44 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/char_traits.h" 3 > > > > >namespace std >{ ># 61 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/char_traits.h" 3 > template<class _CharT> > struct char_traits > { > typedef _CharT char_type; > > typedef unsigned long int_type; > typedef streampos pos_type; > typedef streamoff off_type; > typedef mbstate_t state_type; > > static void > assign(char_type& __c1, const char_type& __c2); > > static bool > eq(const char_type& __c1, const char_type& __c2); > > static bool > lt(const char_type& __c1, const char_type& __c2); > > static int > compare(const char_type* __s1, const char_type* __s2, size_t __n); > > static size_t > length(const char_type* __s); > > static const char_type* > find(const char_type* __s, size_t __n, const char_type& __a); > > static char_type* > move(char_type* __s1, const char_type* __s2, size_t __n); > > static char_type* > copy(char_type* __s1, const char_type* __s2, size_t __n); > > static char_type* > assign(char_type* __s, size_t __n, char_type __a); > > static char_type > to_char_type(const int_type& __c); > > static int_type > to_int_type(const char_type& __c); > > static bool > eq_int_type(const int_type& __c1, const int_type& __c2); > > static int_type > eof(); > > static int_type > not_eof(const int_type& __c); > }; > > > > template<> > struct char_traits<char> > { > typedef char char_type; > typedef int int_type; > typedef streampos pos_type; > typedef streamoff off_type; > typedef mbstate_t state_type; > > static void > assign(char_type& __c1, const char_type& __c2) > { __c1 = __c2; } > > static bool > eq(const char_type& __c1, const char_type& __c2) > { return __c1 == __c2; } > > static bool > lt(const char_type& __c1, const char_type& __c2) > { return __c1 < __c2; } > > static int > compare(const char_type* __s1, const char_type* __s2, size_t __n) > { return memcmp(__s1, __s2, __n); } > > static size_t > length(const char_type* __s) > { return strlen(__s); } > > static const char_type* > find(const char_type* __s, size_t __n, const char_type& __a) > { return static_cast<const char_type*>(memchr(__s, __a, __n)); } > > static char_type* > move(char_type* __s1, const char_type* __s2, size_t __n) > { return static_cast<char_type*>(memmove(__s1, __s2, __n)); } > > static char_type* > copy(char_type* __s1, const char_type* __s2, size_t __n) > { return static_cast<char_type*>(memcpy(__s1, __s2, __n)); } > > static char_type* > assign(char_type* __s, size_t __n, char_type __a) > { return static_cast<char_type*>(memset(__s, __a, __n)); } > > static char_type > to_char_type(const int_type& __c) > { return static_cast<char_type>(__c); } > > > > static int_type > to_int_type(const char_type& __c) > { return static_cast<int_type>(static_cast<unsigned char>(__c)); } > > static bool > eq_int_type(const int_type& __c1, const int_type& __c2) > { return __c1 == __c2; } > > static int_type > eof() { return static_cast<int_type>((-1)); } > > static int_type > not_eof(const int_type& __c) > { return (__c == eof()) ? 0 : __c; } > }; > > > > > template<> > struct char_traits<wchar_t> > { > typedef wchar_t char_type; > typedef wint_t int_type; > typedef streamoff off_type; > typedef wstreampos pos_type; > typedef mbstate_t state_type; > > static void > assign(char_type& __c1, const char_type& __c2) > { __c1 = __c2; } > > static bool > eq(const char_type& __c1, const char_type& __c2) > { return __c1 == __c2; } > > static bool > lt(const char_type& __c1, const char_type& __c2) > { return __c1 < __c2; } > > static int > compare(const char_type* __s1, const char_type* __s2, size_t __n) > { return wmemcmp(__s1, __s2, __n); } > > static size_t > length(const char_type* __s) > { return wcslen(__s); } > > static const char_type* > find(const char_type* __s, size_t __n, const char_type& __a) > { return wmemchr(__s, __a, __n); } > > static char_type* > move(char_type* __s1, const char_type* __s2, int_type __n) > { return wmemmove(__s1, __s2, __n); } > > static char_type* > copy(char_type* __s1, const char_type* __s2, size_t __n) > { return wmemcpy(__s1, __s2, __n); } > > static char_type* > assign(char_type* __s, size_t __n, char_type __a) > { return wmemset(__s, __a, __n); } > > static char_type > to_char_type(const int_type& __c) { return char_type(__c); } > > static int_type > to_int_type(const char_type& __c) { return int_type(__c); } > > static bool > eq_int_type(const int_type& __c1, const int_type& __c2) > { return __c1 == __c2; } > > static int_type > eof() { return static_cast<int_type>((0xffffffffu)); } > > static int_type > not_eof(const int_type& __c) > { return eq_int_type(__c, eof()) ? 0 : __c; } > }; > > > template<typename _CharT, typename _Traits> > struct _Char_traits_match > { > _CharT _M_c; > _Char_traits_match(_CharT const& __c) : _M_c(__c) { } > > bool > operator()(_CharT const& __a) { return _Traits::eq(_M_c, __a); } > }; >} ># 48 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/string" 2 3 ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/memory" 1 3 ># 52 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/memory" 3 > ># 53 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/memory" 3 > > > > > > ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_raw_storage_iter.h" 1 3 ># 64 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_raw_storage_iter.h" 3 >namespace std >{ > > > > > template <class _ForwardIterator, class _Tp> > class raw_storage_iterator > : public iterator<output_iterator_tag, void, void, void, void> > { > protected: > _ForwardIterator _M_iter; > > public: > explicit > raw_storage_iterator(_ForwardIterator __x) : _M_iter(__x) {} > > raw_storage_iterator& > operator*() { return *this; } > > raw_storage_iterator& > operator=(const _Tp& __element) > { > _Construct(&*_M_iter, __element); > return *this; > } > > raw_storage_iterator<_ForwardIterator, _Tp>& > operator++() > { > ++_M_iter; > return *this; > } > > raw_storage_iterator<_ForwardIterator, _Tp> > operator++(int) > { > raw_storage_iterator<_ForwardIterator, _Tp> __tmp = *this; > ++_M_iter; > return __tmp; > } > }; >} ># 60 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/memory" 2 3 > >namespace std >{ ># 71 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/memory" 3 > template<typename _Tp> > pair<_Tp*, ptrdiff_t> > __get_temporary_buffer(ptrdiff_t __len, _Tp*) > { > if (__len > ptrdiff_t(2147483647 / sizeof(_Tp))) > __len = 2147483647 / sizeof(_Tp); > > while (__len > 0) > { > _Tp* __tmp = (_Tp*) std::malloc((std::size_t)__len * sizeof(_Tp)); > if (__tmp != 0) > return pair<_Tp*, ptrdiff_t>(__tmp, __len); > __len /= 2; > } > return pair<_Tp*, ptrdiff_t>((_Tp*)0, 0); > } ># 103 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/memory" 3 > template<typename _Tp> > inline pair<_Tp*,ptrdiff_t> > get_temporary_buffer(ptrdiff_t __len) > { return __get_temporary_buffer(__len, (_Tp*) 0); } ># 115 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/memory" 3 > template<typename _Tp> > void > return_temporary_buffer(_Tp* __p) > { std::free(__p); } ># 127 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/memory" 3 > template<typename _Tp1> > struct auto_ptr_ref > { > _Tp1* _M_ptr; > > explicit > auto_ptr_ref(_Tp1* __p): _M_ptr(__p) { } > }; ># 166 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/memory" 3 > template<typename _Tp> > class auto_ptr > { > private: > _Tp* _M_ptr; > > public: > > typedef _Tp element_type; > > > > > > > > explicit > auto_ptr(element_type* __p = 0) throw() : _M_ptr(__p) { } ># 192 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/memory" 3 > auto_ptr(auto_ptr& __a) throw() : _M_ptr(__a.release()) { } ># 203 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/memory" 3 > template<typename _Tp1> > auto_ptr(auto_ptr<_Tp1>& __a) throw() : _M_ptr(__a.release()) { } ># 214 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/memory" 3 > auto_ptr& > operator=(auto_ptr& __a) throw() > { > reset(__a.release()); > return *this; > } ># 231 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/memory" 3 > template<typename _Tp1> > auto_ptr& > operator=(auto_ptr<_Tp1>& __a) throw() > { > reset(__a.release()); > return *this; > } ># 251 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/memory" 3 > ~auto_ptr() { delete _M_ptr; } ># 261 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/memory" 3 > element_type& > operator*() const throw() { return *_M_ptr; } > > > > > > > > element_type* > operator->() const throw() { return _M_ptr; } ># 283 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/memory" 3 > element_type* > get() const throw() { return _M_ptr; } ># 297 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/memory" 3 > element_type* > release() throw() > { > element_type* __tmp = _M_ptr; > _M_ptr = 0; > return __tmp; > } ># 312 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/memory" 3 > void > reset(element_type* __p = 0) throw() > { > if (__p != _M_ptr) > { > delete _M_ptr; > _M_ptr = __p; > } > } ># 333 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/memory" 3 > auto_ptr(auto_ptr_ref<element_type> __ref) throw() > : _M_ptr(__ref._M_ptr) { } > > auto_ptr& > operator=(auto_ptr_ref<element_type> __ref) throw() > { > if (__ref._M_ptr != this->get()) > { > delete _M_ptr; > _M_ptr = __ref._M_ptr; > } > return *this; > } > > template<typename _Tp1> > operator auto_ptr_ref<_Tp1>() throw() > { return auto_ptr_ref<_Tp1>(this->release()); } > > template<typename _Tp1> > operator auto_ptr<_Tp1>() throw() > { return auto_ptr<_Tp1>(this->release()); } > > }; >} ># 49 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/string" 2 3 > > > > ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/basic_string.h" 1 3 ># 43 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/basic_string.h" 3 > ># 44 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/basic_string.h" 3 > > > >namespace std >{ ># 108 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/basic_string.h" 3 > template<typename _CharT, typename _Traits, typename _Alloc> > class basic_string > { > > public: > typedef _Traits traits_type; > typedef typename _Traits::char_type value_type; > typedef _Alloc allocator_type; > typedef typename _Alloc::size_type size_type; > typedef typename _Alloc::difference_type difference_type; > typedef typename _Alloc::reference reference; > typedef typename _Alloc::const_reference const_reference; > typedef typename _Alloc::pointer pointer; > typedef typename _Alloc::const_pointer const_pointer; > typedef __gnu_cxx::__normal_iterator<pointer, basic_string> iterator; > typedef __gnu_cxx::__normal_iterator<const_pointer, basic_string> > const_iterator; > typedef std::reverse_iterator<const_iterator> const_reverse_iterator; > typedef std::reverse_iterator<iterator> reverse_iterator; > > private: ># 143 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/basic_string.h" 3 > struct _Rep > { > > typedef typename _Alloc::template rebind<char>::other _Raw_bytes_alloc; ># 161 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/basic_string.h" 3 > static const size_type _S_max_size; > static const _CharT _S_terminal; > > size_type _M_length; > size_type _M_capacity; > _Atomic_word _M_references; > > bool > _M_is_leaked() const > { return _M_references < 0; } > > bool > _M_is_shared() const > { return _M_references > 0; } > > void > _M_set_leaked() > { _M_references = -1; } > > void > _M_set_sharable() > { _M_references = 0; } > > _CharT* > _M_refdata() throw() > { return reinterpret_cast<_CharT*>(this + 1); } > > _CharT& > operator[](size_t __s) throw() > { return _M_refdata() [__s]; } > > _CharT* > _M_grab(const _Alloc& __alloc1, const _Alloc& __alloc2) > { > return (!_M_is_leaked() && __alloc1 == __alloc2) > ? _M_refcopy() : _M_clone(__alloc1); > } > > > static _Rep* > _S_create(size_t, const _Alloc&); > > void > _M_dispose(const _Alloc& __a) > { > if (__exchange_and_add(&_M_references, -1) <= 0) > _M_destroy(__a); > } > > void > _M_destroy(const _Alloc&) throw(); > > _CharT* > _M_refcopy() throw() > { > __atomic_add(&_M_references, 1); > return _M_refdata(); > } > > _CharT* > _M_clone(const _Alloc&, size_type __res = 0); > }; > > > struct _Alloc_hider : _Alloc > { > _Alloc_hider(_CharT* __dat, const _Alloc& __a) > : _Alloc(__a), _M_p(__dat) { } > > _CharT* _M_p; > }; > > public: > > > > static const size_type npos = static_cast<size_type>(-1); > > private: > > mutable _Alloc_hider _M_dataplus; > > > > static size_type _S_empty_rep_storage[(sizeof(_Rep) + sizeof(_CharT) + sizeof(size_type) - 1)/sizeof(size_type)]; > > _CharT* > _M_data() const > { return _M_dataplus._M_p; } > > _CharT* > _M_data(_CharT* __p) > { return (_M_dataplus._M_p = __p); } > > _Rep* > _M_rep() const > { return &((reinterpret_cast<_Rep*> (_M_data()))[-1]); } > > > > iterator > _M_ibegin() const { return iterator(_M_data()); } > > iterator > _M_iend() const { return iterator(_M_data() + this->size()); } > > void > _M_leak() > { > if (!_M_rep()->_M_is_leaked()) > _M_leak_hard(); > } > > iterator > _M_check(size_type __pos) const > { > if (__pos > this->size()) > __throw_out_of_range("basic_string::_M_check"); > return _M_ibegin() + __pos; > } > > > iterator > _M_fold(size_type __pos, size_type __off) const > { > bool __testoff = __off < this->size() - __pos; > size_type __newoff = __testoff ? __off : this->size() - __pos; > return (_M_ibegin() + __pos + __newoff); > } > > > > template<class _Iterator> > static void > _S_copy_chars(_CharT* __p, _Iterator __k1, _Iterator __k2) > { > for (; __k1 != __k2; ++__k1, ++__p) > traits_type::assign(*__p, *__k1); > } > > static void > _S_copy_chars(_CharT* __p, iterator __k1, iterator __k2) > { _S_copy_chars(__p, __k1.base(), __k2.base()); } > > static void > _S_copy_chars(_CharT* __p, const_iterator __k1, const_iterator __k2) > { _S_copy_chars(__p, __k1.base(), __k2.base()); } > > static void > _S_copy_chars(_CharT* __p, _CharT* __k1, _CharT* __k2) > { traits_type::copy(__p, __k1, __k2 - __k1); } > > static void > _S_copy_chars(_CharT* __p, const _CharT* __k1, const _CharT* __k2) > { traits_type::copy(__p, __k1, __k2 - __k1); } > > void > _M_mutate(size_type __pos, size_type __len1, size_type __len2); > > void > _M_leak_hard(); > > static _Rep& > _S_empty_rep() > { return *reinterpret_cast<_Rep*>(&_S_empty_rep_storage); } > > public: > > > > > inline > basic_string(); > > explicit > basic_string(const _Alloc& __a); > > > basic_string(const basic_string& __str); > basic_string(const basic_string& __str, size_type __pos, > size_type __n = npos); > basic_string(const basic_string& __str, size_type __pos, > size_type __n, const _Alloc& __a); > > basic_string(const _CharT* __s, size_type __n, > const _Alloc& __a = _Alloc()); > basic_string(const _CharT* __s, const _Alloc& __a = _Alloc()); > basic_string(size_type __n, _CharT __c, const _Alloc& __a = _Alloc()); > > template<class _InputIterator> > basic_string(_InputIterator __beg, _InputIterator __end, > const _Alloc& __a = _Alloc()); > > ~basic_string() > { _M_rep()->_M_dispose(this->get_allocator()); } > > basic_string& > operator=(const basic_string& __str) { return this->assign(__str); } > > basic_string& > operator=(const _CharT* __s) { return this->assign(__s); } > > basic_string& > operator=(_CharT __c) { return this->assign(1, __c); } > > > iterator > begin() > { > _M_leak(); > return iterator(_M_data()); > } > > const_iterator > begin() const > { return const_iterator(_M_data()); } > > iterator > end() > { > _M_leak(); > return iterator(_M_data() + this->size()); > } > > const_iterator > end() const > { return const_iterator(_M_data() + this->size()); } > > reverse_iterator > rbegin() > { return reverse_iterator(this->end()); } > > const_reverse_iterator > rbegin() const > { return const_reverse_iterator(this->end()); } > > reverse_iterator > rend() > { return reverse_iterator(this->begin()); } > > const_reverse_iterator > rend() const > { return const_reverse_iterator(this->begin()); } > > public: > > size_type > size() const { return _M_rep()->_M_length; } > > size_type > length() const { return _M_rep()->_M_length; } > > size_type > max_size() const { return _Rep::_S_max_size; } > > void > resize(size_type __n, _CharT __c); > > void > resize(size_type __n) { this->resize(__n, _CharT()); } > > size_type > capacity() const { return _M_rep()->_M_capacity; } > > void > reserve(size_type __res_arg = 0); > > void > clear() { _M_mutate(0, this->size(), 0); } > > bool > empty() const { return this->size() == 0; } > > > const_reference > operator[] (size_type __pos) const > { return _M_data()[__pos]; } > > reference > operator[](size_type __pos) > { > _M_leak(); > return _M_data()[__pos]; > } > > const_reference > at(size_type __n) const > { > if (__n >= this->size()) > __throw_out_of_range("basic_string::at"); > return _M_data()[__n]; > } > > reference > at(size_type __n) > { > if (__n >= size()) > __throw_out_of_range("basic_string::at"); > _M_leak(); > return _M_data()[__n]; > } > > > basic_string& > operator+=(const basic_string& __str) { return this->append(__str); } > > basic_string& > operator+=(const _CharT* __s) { return this->append(__s); } > > basic_string& > operator+=(_CharT __c) { return this->append(size_type(1), __c); } > > basic_string& > append(const basic_string& __str); > > basic_string& > append(const basic_string& __str, size_type __pos, size_type __n); > > basic_string& > append(const _CharT* __s, size_type __n); > > basic_string& > append(const _CharT* __s) > { return this->append(__s, traits_type::length(__s)); } > > basic_string& > append(size_type __n, _CharT __c); > > template<class _InputIterator> > basic_string& > append(_InputIterator __first, _InputIterator __last) > { return this->replace(_M_iend(), _M_iend(), __first, __last); } > > void > push_back(_CharT __c) > { this->replace(_M_iend(), _M_iend(), 1, __c); } > > basic_string& > assign(const basic_string& __str); > > basic_string& > assign(const basic_string& __str, size_type __pos, size_type __n); > > basic_string& > assign(const _CharT* __s, size_type __n); > > basic_string& > assign(const _CharT* __s) > { return this->assign(__s, traits_type::length(__s)); } > > basic_string& > assign(size_type __n, _CharT __c) > { return this->replace(_M_ibegin(), _M_iend(), __n, __c); } > > template<class _InputIterator> > basic_string& > assign(_InputIterator __first, _InputIterator __last) > { return this->replace(_M_ibegin(), _M_iend(), __first, __last); } > > void > insert(iterator __p, size_type __n, _CharT __c) > { this->replace(__p, __p, __n, __c); } > > template<class _InputIterator> > void insert(iterator __p, _InputIterator __beg, _InputIterator __end) > { this->replace(__p, __p, __beg, __end); } > > basic_string& > insert(size_type __pos1, const basic_string& __str) > { return this->insert(__pos1, __str, 0, __str.size()); } > > basic_string& > insert(size_type __pos1, const basic_string& __str, > size_type __pos2, size_type __n); > > basic_string& > insert(size_type __pos, const _CharT* __s, size_type __n); > > basic_string& > insert(size_type __pos, const _CharT* __s) > { return this->insert(__pos, __s, traits_type::length(__s)); } > > basic_string& > insert(size_type __pos, size_type __n, _CharT __c) > { > this->insert(_M_check(__pos), __n, __c); > return *this; > } > > iterator > insert(iterator __p, _CharT __c = _CharT()) > { > size_type __pos = __p - _M_ibegin(); > this->insert(_M_check(__pos), size_type(1), __c); > _M_rep()->_M_set_leaked(); > return this->_M_ibegin() + __pos; > } > > basic_string& > erase(size_type __pos = 0, size_type __n = npos) > { > return this->replace(_M_check(__pos), _M_fold(__pos, __n), > _M_data(), _M_data()); > } > > iterator > erase(iterator __position) > { > size_type __i = __position - _M_ibegin(); > this->replace(__position, __position + 1, _M_data(), _M_data()); > _M_rep()->_M_set_leaked(); > return _M_ibegin() + __i; > } > > iterator > erase(iterator __first, iterator __last) > { > size_type __i = __first - _M_ibegin(); > this->replace(__first, __last, _M_data(), _M_data()); > _M_rep()->_M_set_leaked(); > return _M_ibegin() + __i; > } > > basic_string& > replace(size_type __pos, size_type __n, const basic_string& __str) > { return this->replace(__pos, __n, __str._M_data(), __str.size()); } > > basic_string& > replace(size_type __pos1, size_type __n1, const basic_string& __str, > size_type __pos2, size_type __n2); > > basic_string& > replace(size_type __pos, size_type __n1, const _CharT* __s, > size_type __n2); > > basic_string& > replace(size_type __pos, size_type __n1, const _CharT* __s) > { return this->replace(__pos, __n1, __s, traits_type::length(__s)); } > > basic_string& > replace(size_type __pos, size_type __n1, size_type __n2, _CharT __c) > { return this->replace(_M_check(__pos), _M_fold(__pos, __n1), __n2, __c); } > > basic_string& > replace(iterator __i1, iterator __i2, const basic_string& __str) > { return this->replace(__i1, __i2, __str._M_data(), __str.size()); } > > basic_string& > replace(iterator __i1, iterator __i2, > const _CharT* __s, size_type __n) > { return this->replace(__i1 - _M_ibegin(), __i2 - __i1, __s, __n); } > > basic_string& > replace(iterator __i1, iterator __i2, const _CharT* __s) > { return this->replace(__i1, __i2, __s, traits_type::length(__s)); } > > basic_string& > replace(iterator __i1, iterator __i2, size_type __n, _CharT __c); > > template<class _InputIterator> > basic_string& > replace(iterator __i1, iterator __i2, > _InputIterator __k1, _InputIterator __k2) > { return _M_replace(__i1, __i2, __k1, __k2, > typename iterator_traits<_InputIterator>::iterator_category()); } > > > > basic_string& > replace(iterator __i1, iterator __i2, _CharT* __k1, _CharT* __k2) > { return this->replace(__i1 - _M_ibegin(), __i2 - __i1, > __k1, __k2 - __k1); } > > basic_string& > replace(iterator __i1, iterator __i2, const _CharT* __k1, const _CharT* __k2) > { return this->replace(__i1 - _M_ibegin(), __i2 - __i1, > __k1, __k2 - __k1); } > > basic_string& > replace(iterator __i1, iterator __i2, iterator __k1, iterator __k2) > { return this->replace(__i1 - _M_ibegin(), __i2 - __i1, > __k1.base(), __k2 - __k1); > } > > basic_string& > replace(iterator __i1, iterator __i2, const_iterator __k1, const_iterator __k2) > { return this->replace(__i1 - _M_ibegin(), __i2 - __i1, > __k1.base(), __k2 - __k1); > } > > private: > template<class _InputIterator> > basic_string& > _M_replace(iterator __i1, iterator __i2, _InputIterator __k1, > _InputIterator __k2, input_iterator_tag); > > template<class _ForwardIterator> > basic_string& > _M_replace_safe(iterator __i1, iterator __i2, _ForwardIterator __k1, > _ForwardIterator __k2); > > > > template<class _InIter> > static _CharT* > _S_construct_aux(_InIter __beg, _InIter __end, const _Alloc& __a, > __false_type) > { > typedef typename iterator_traits<_InIter>::iterator_category _Tag; > return _S_construct(__beg, __end, __a, _Tag()); > } > > template<class _InIter> > static _CharT* > _S_construct_aux(_InIter __beg, _InIter __end, const _Alloc& __a, > __true_type) > { > return _S_construct(static_cast<size_type>(__beg), > static_cast<value_type>(__end), __a); > } > > template<class _InIter> > static _CharT* > _S_construct(_InIter __beg, _InIter __end, const _Alloc& __a) > { > typedef typename _Is_integer<_InIter>::_Integral _Integral; > return _S_construct_aux(__beg, __end, __a, _Integral()); > } > > > template<class _InIter> > static _CharT* > _S_construct(_InIter __beg, _InIter __end, const _Alloc& __a, > input_iterator_tag); > > > > template<class _FwdIter> > static _CharT* > _S_construct(_FwdIter __beg, _FwdIter __end, const _Alloc& __a, > forward_iterator_tag); > > static _CharT* > _S_construct(size_type __req, _CharT __c, const _Alloc& __a); > > public: > > size_type > copy(_CharT* __s, size_type __n, size_type __pos = 0) const; > > void > swap(basic_string<_CharT, _Traits, _Alloc>& __s); > > > const _CharT* > c_str() const > { > > size_type __n = this->size(); > traits_type::assign(_M_data()[__n], _Rep::_S_terminal); > return _M_data(); > } > > const _CharT* > data() const { return _M_data(); } > > allocator_type > get_allocator() const { return _M_dataplus; } > > size_type > find(const _CharT* __s, size_type __pos, size_type __n) const; > > size_type > find(const basic_string& __str, size_type __pos = 0) const > { return this->find(__str.data(), __pos, __str.size()); } > > size_type > find(const _CharT* __s, size_type __pos = 0) const > { return this->find(__s, __pos, traits_type::length(__s)); } > > size_type > find(_CharT __c, size_type __pos = 0) const; > > size_type > rfind(const basic_string& __str, size_type __pos = npos) const > { return this->rfind(__str.data(), __pos, __str.size()); } > > size_type > rfind(const _CharT* __s, size_type __pos, size_type __n) const; > > size_type > rfind(const _CharT* __s, size_type __pos = npos) const > { return this->rfind(__s, __pos, traits_type::length(__s)); } > > size_type > rfind(_CharT __c, size_type __pos = npos) const; > > size_type > find_first_of(const basic_string& __str, size_type __pos = 0) const > { return this->find_first_of(__str.data(), __pos, __str.size()); } > > size_type > find_first_of(const _CharT* __s, size_type __pos, size_type __n) const; > > size_type > find_first_of(const _CharT* __s, size_type __pos = 0) const > { return this->find_first_of(__s, __pos, traits_type::length(__s)); } > > size_type > find_first_of(_CharT __c, size_type __pos = 0) const > { return this->find(__c, __pos); } > > size_type > find_last_of(const basic_string& __str, size_type __pos = npos) const > { return this->find_last_of(__str.data(), __pos, __str.size()); } > > size_type > find_last_of(const _CharT* __s, size_type __pos, size_type __n) const; > > size_type > find_last_of(const _CharT* __s, size_type __pos = npos) const > { return this->find_last_of(__s, __pos, traits_type::length(__s)); } > > size_type > find_last_of(_CharT __c, size_type __pos = npos) const > { return this->rfind(__c, __pos); } > > size_type > find_first_not_of(const basic_string& __str, size_type __pos = 0) const > { return this->find_first_not_of(__str.data(), __pos, __str.size()); } > > size_type > find_first_not_of(const _CharT* __s, size_type __pos, > size_type __n) const; > > size_type > find_first_not_of(const _CharT* __s, size_type __pos = 0) const > { return this->find_first_not_of(__s, __pos, traits_type::length(__s)); } > > size_type > find_first_not_of(_CharT __c, size_type __pos = 0) const; > > size_type > find_last_not_of(const basic_string& __str, size_type __pos = npos) const > { return this->find_last_not_of(__str.data(), __pos, __str.size()); } > > size_type > find_last_not_of(const _CharT* __s, size_type __pos, > size_type __n) const; > size_type > find_last_not_of(const _CharT* __s, size_type __pos = npos) const > { return this->find_last_not_of(__s, __pos, traits_type::length(__s)); } > > size_type > find_last_not_of(_CharT __c, size_type __pos = npos) const; > > basic_string > substr(size_type __pos = 0, size_type __n = npos) const > { > if (__pos > this->size()) > __throw_out_of_range("basic_string::substr"); > return basic_string(*this, __pos, __n); > } > > int > compare(const basic_string& __str) const > { > size_type __size = this->size(); > size_type __osize = __str.size(); > size_type __len = std::min(__size, __osize); > > int __r = traits_type::compare(_M_data(), __str.data(), __len); > if (!__r) > __r = __size - __osize; > return __r; > } > > int > compare(size_type __pos, size_type __n, const basic_string& __str) const; > > int > compare(size_type __pos1, size_type __n1, const basic_string& __str, > size_type __pos2, size_type __n2) const; > > int > compare(const _CharT* __s) const; > > > > int > compare(size_type __pos, size_type __n1, const _CharT* __s) const; > > int > compare(size_type __pos, size_type __n1, const _CharT* __s, > size_type __n2) const; > }; > > > template<typename _CharT, typename _Traits, typename _Alloc> > inline basic_string<_CharT, _Traits, _Alloc>:: > basic_string() > : _M_dataplus(_S_empty_rep()._M_refcopy(), _Alloc()) { } > > > template<typename _CharT, typename _Traits, typename _Alloc> > basic_string<_CharT, _Traits, _Alloc> > operator+(const basic_string<_CharT, _Traits, _Alloc>& __lhs, > const basic_string<_CharT, _Traits, _Alloc>& __rhs) > { > basic_string<_CharT, _Traits, _Alloc> __str(__lhs); > __str.append(__rhs); > return __str; > } > > template<typename _CharT, typename _Traits, typename _Alloc> > basic_string<_CharT,_Traits,_Alloc> > operator+(const _CharT* __lhs, > const basic_string<_CharT,_Traits,_Alloc>& __rhs); > > template<typename _CharT, typename _Traits, typename _Alloc> > basic_string<_CharT,_Traits,_Alloc> > operator+(_CharT __lhs, const basic_string<_CharT,_Traits,_Alloc>& __rhs); > > template<typename _CharT, typename _Traits, typename _Alloc> > inline basic_string<_CharT, _Traits, _Alloc> > operator+(const basic_string<_CharT, _Traits, _Alloc>& __lhs, > const _CharT* __rhs) > { > basic_string<_CharT, _Traits, _Alloc> __str(__lhs); > __str.append(__rhs); > return __str; > } > > template<typename _CharT, typename _Traits, typename _Alloc> > inline basic_string<_CharT, _Traits, _Alloc> > operator+(const basic_string<_CharT, _Traits, _Alloc>& __lhs, _CharT __rhs) > { > typedef basic_string<_CharT, _Traits, _Alloc> __string_type; > typedef typename __string_type::size_type __size_type; > __string_type __str(__lhs); > __str.append(__size_type(1), __rhs); > return __str; > } > > > template<typename _CharT, typename _Traits, typename _Alloc> > inline bool > operator==(const basic_string<_CharT, _Traits, _Alloc>& __lhs, > const basic_string<_CharT, _Traits, _Alloc>& __rhs) > { return __lhs.compare(__rhs) == 0; } > > template<typename _CharT, typename _Traits, typename _Alloc> > inline bool > operator==(const _CharT* __lhs, > const basic_string<_CharT, _Traits, _Alloc>& __rhs) > { return __rhs.compare(__lhs) == 0; } > > template<typename _CharT, typename _Traits, typename _Alloc> > inline bool > operator==(const basic_string<_CharT, _Traits, _Alloc>& __lhs, > const _CharT* __rhs) > { return __lhs.compare(__rhs) == 0; } > > > template<typename _CharT, typename _Traits, typename _Alloc> > inline bool > operator!=(const basic_string<_CharT, _Traits, _Alloc>& __lhs, > const basic_string<_CharT, _Traits, _Alloc>& __rhs) > { return __rhs.compare(__lhs) != 0; } > > template<typename _CharT, typename _Traits, typename _Alloc> > inline bool > operator!=(const _CharT* __lhs, > const basic_string<_CharT, _Traits, _Alloc>& __rhs) > { return __rhs.compare(__lhs) != 0; } > > template<typename _CharT, typename _Traits, typename _Alloc> > inline bool > operator!=(const basic_string<_CharT, _Traits, _Alloc>& __lhs, > const _CharT* __rhs) > { return __lhs.compare(__rhs) != 0; } > > > template<typename _CharT, typename _Traits, typename _Alloc> > inline bool > operator<(const basic_string<_CharT, _Traits, _Alloc>& __lhs, > const basic_string<_CharT, _Traits, _Alloc>& __rhs) > { return __lhs.compare(__rhs) < 0; } > > template<typename _CharT, typename _Traits, typename _Alloc> > inline bool > operator<(const basic_string<_CharT, _Traits, _Alloc>& __lhs, > const _CharT* __rhs) > { return __lhs.compare(__rhs) < 0; } > > template<typename _CharT, typename _Traits, typename _Alloc> > inline bool > operator<(const _CharT* __lhs, > const basic_string<_CharT, _Traits, _Alloc>& __rhs) > { return __rhs.compare(__lhs) > 0; } > > > template<typename _CharT, typename _Traits, typename _Alloc> > inline bool > operator>(const basic_string<_CharT, _Traits, _Alloc>& __lhs, > const basic_string<_CharT, _Traits, _Alloc>& __rhs) > { return __lhs.compare(__rhs) > 0; } > > template<typename _CharT, typename _Traits, typename _Alloc> > inline bool > operator>(const basic_string<_CharT, _Traits, _Alloc>& __lhs, > const _CharT* __rhs) > { return __lhs.compare(__rhs) > 0; } > > template<typename _CharT, typename _Traits, typename _Alloc> > inline bool > operator>(const _CharT* __lhs, > const basic_string<_CharT, _Traits, _Alloc>& __rhs) > { return __rhs.compare(__lhs) < 0; } > > > template<typename _CharT, typename _Traits, typename _Alloc> > inline bool > operator<=(const basic_string<_CharT, _Traits, _Alloc>& __lhs, > const basic_string<_CharT, _Traits, _Alloc>& __rhs) > { return __lhs.compare(__rhs) <= 0; } > > template<typename _CharT, typename _Traits, typename _Alloc> > inline bool > operator<=(const basic_string<_CharT, _Traits, _Alloc>& __lhs, > const _CharT* __rhs) > { return __lhs.compare(__rhs) <= 0; } > > template<typename _CharT, typename _Traits, typename _Alloc> > inline bool > operator<=(const _CharT* __lhs, > const basic_string<_CharT, _Traits, _Alloc>& __rhs) > { return __rhs.compare(__lhs) >= 0; } > > > template<typename _CharT, typename _Traits, typename _Alloc> > inline bool > operator>=(const basic_string<_CharT, _Traits, _Alloc>& __lhs, > const basic_string<_CharT, _Traits, _Alloc>& __rhs) > { return __lhs.compare(__rhs) >= 0; } > > template<typename _CharT, typename _Traits, typename _Alloc> > inline bool > operator>=(const basic_string<_CharT, _Traits, _Alloc>& __lhs, > const _CharT* __rhs) > { return __lhs.compare(__rhs) >= 0; } > > template<typename _CharT, typename _Traits, typename _Alloc> > inline bool > operator>=(const _CharT* __lhs, > const basic_string<_CharT, _Traits, _Alloc>& __rhs) > { return __rhs.compare(__lhs) <= 0; } > > > template<typename _CharT, typename _Traits, typename _Alloc> > inline void > swap(basic_string<_CharT, _Traits, _Alloc>& __lhs, > basic_string<_CharT, _Traits, _Alloc>& __rhs) > { __lhs.swap(__rhs); } > > template<typename _CharT, typename _Traits, typename _Alloc> > basic_istream<_CharT, _Traits>& > operator>>(basic_istream<_CharT, _Traits>& __is, > basic_string<_CharT, _Traits, _Alloc>& __str); > > template<typename _CharT, typename _Traits, typename _Alloc> > basic_ostream<_CharT, _Traits>& > operator<<(basic_ostream<_CharT, _Traits>& __os, > const basic_string<_CharT, _Traits, _Alloc>& __str); > > template<typename _CharT, typename _Traits, typename _Alloc> > basic_istream<_CharT,_Traits>& > getline(basic_istream<_CharT, _Traits>& __is, > basic_string<_CharT, _Traits, _Alloc>& __str, _CharT __delim); > > template<typename _CharT, typename _Traits, typename _Alloc> > inline basic_istream<_CharT,_Traits>& > getline(basic_istream<_CharT, _Traits>& __is, > basic_string<_CharT, _Traits, _Alloc>& __str); >} ># 54 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/string" 2 3 > > ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/algorithm" 1 3 ># 64 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/algorithm" 3 > ># 65 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/algorithm" 3 > > > > ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_algo.h" 1 3 ># 64 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_algo.h" 3 ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_heap.h" 1 3 ># 63 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_heap.h" 3 >namespace std >{ > > > > template<typename _RandomAccessIterator, typename _Distance, typename _Tp> > void > __push_heap(_RandomAccessIterator __first, > _Distance __holeIndex, _Distance __topIndex, _Tp __value) > { > _Distance __parent = (__holeIndex - 1) / 2; > while (__holeIndex > __topIndex && *(__first + __parent) < __value) { > *(__first + __holeIndex) = *(__first + __parent); > __holeIndex = __parent; > __parent = (__holeIndex - 1) / 2; > } > *(__first + __holeIndex) = __value; > } > > template<typename _RandomAccessIterator> > inline void > push_heap(_RandomAccessIterator __first, _RandomAccessIterator __last) > { > typedef typename iterator_traits<_RandomAccessIterator>::value_type > _ValueType; > typedef typename iterator_traits<_RandomAccessIterator>::difference_type > _DistanceType; > > > > > > > __push_heap(__first, _DistanceType((__last - __first) - 1), _DistanceType(0), > _ValueType(*(__last - 1))); > } > > template<typename _RandomAccessIterator, typename _Distance, typename _Tp, > typename _Compare> > void > __push_heap(_RandomAccessIterator __first, _Distance __holeIndex, > _Distance __topIndex, _Tp __value, _Compare __comp) > { > _Distance __parent = (__holeIndex - 1) / 2; > while (__holeIndex > __topIndex && __comp(*(__first + __parent), __value)) { > *(__first + __holeIndex) = *(__first + __parent); > __holeIndex = __parent; > __parent = (__holeIndex - 1) / 2; > } > *(__first + __holeIndex) = __value; > } > > template<typename _RandomAccessIterator, typename _Compare> > inline void > push_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, > _Compare __comp) > { > typedef typename iterator_traits<_RandomAccessIterator>::value_type > _ValueType; > typedef typename iterator_traits<_RandomAccessIterator>::difference_type > _DistanceType; > > > > > > __push_heap(__first, _DistanceType((__last - __first) - 1), _DistanceType(0), > _ValueType(*(__last - 1)), __comp); > } > > template<typename _RandomAccessIterator, typename _Distance, typename _Tp> > void > __adjust_heap(_RandomAccessIterator __first, _Distance __holeIndex, > _Distance __len, _Tp __value) > { > _Distance __topIndex = __holeIndex; > _Distance __secondChild = 2 * __holeIndex + 2; > while (__secondChild < __len) { > if (*(__first + __secondChild) < *(__first + (__secondChild - 1))) > __secondChild--; > *(__first + __holeIndex) = *(__first + __secondChild); > __holeIndex = __secondChild; > __secondChild = 2 * (__secondChild + 1); > } > if (__secondChild == __len) { > *(__first + __holeIndex) = *(__first + (__secondChild - 1)); > __holeIndex = __secondChild - 1; > } > __push_heap(__first, __holeIndex, __topIndex, __value); > } > > template<typename _RandomAccessIterator, typename _Tp> > inline void > __pop_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, > _RandomAccessIterator __result, _Tp __value) > { > typedef typename iterator_traits<_RandomAccessIterator>::difference_type _Distance; > *__result = *__first; > __adjust_heap(__first, _Distance(0), _Distance(__last - __first), __value); > } > > template<typename _RandomAccessIterator> > inline void > pop_heap(_RandomAccessIterator __first, _RandomAccessIterator __last) > { > typedef typename iterator_traits<_RandomAccessIterator>::value_type _ValueType; > > > > > > > __pop_heap(__first, __last - 1, __last - 1, _ValueType(*(__last - 1))); > } > > template<typename _RandomAccessIterator, typename _Distance, > typename _Tp, typename _Compare> > void > __adjust_heap(_RandomAccessIterator __first, _Distance __holeIndex, > _Distance __len, _Tp __value, _Compare __comp) > { > _Distance __topIndex = __holeIndex; > _Distance __secondChild = 2 * __holeIndex + 2; > while (__secondChild < __len) { > if (__comp(*(__first + __secondChild), *(__first + (__secondChild - 1)))) > __secondChild--; > *(__first + __holeIndex) = *(__first + __secondChild); > __holeIndex = __secondChild; > __secondChild = 2 * (__secondChild + 1); > } > if (__secondChild == __len) { > *(__first + __holeIndex) = *(__first + (__secondChild - 1)); > __holeIndex = __secondChild - 1; > } > __push_heap(__first, __holeIndex, __topIndex, __value, __comp); > } > > template<typename _RandomAccessIterator, typename _Tp, typename _Compare> > inline void > __pop_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, > _RandomAccessIterator __result, _Tp __value, _Compare __comp) > { > typedef typename iterator_traits<_RandomAccessIterator>::difference_type _Distance; > *__result = *__first; > __adjust_heap(__first, _Distance(0), _Distance(__last - __first), > __value, __comp); > } > > template<typename _RandomAccessIterator, typename _Compare> > inline void > pop_heap(_RandomAccessIterator __first, > _RandomAccessIterator __last, _Compare __comp) > { > > > > > typedef typename iterator_traits<_RandomAccessIterator>::value_type _ValueType; > __pop_heap(__first, __last - 1, __last - 1, _ValueType(*(__last - 1)), __comp); > } > > template<typename _RandomAccessIterator> > void > make_heap(_RandomAccessIterator __first, _RandomAccessIterator __last) > { > typedef typename iterator_traits<_RandomAccessIterator>::value_type > _ValueType; > typedef typename iterator_traits<_RandomAccessIterator>::difference_type > _DistanceType; > > > > > > > if (__last - __first < 2) return; > _DistanceType __len = __last - __first; > _DistanceType __parent = (__len - 2)/2; > > while (true) { > __adjust_heap(__first, __parent, __len, _ValueType(*(__first + __parent))); > if (__parent == 0) return; > __parent--; > } > } > > template<typename _RandomAccessIterator, typename _Compare> > inline void > make_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, > _Compare __comp) > { > typedef typename iterator_traits<_RandomAccessIterator>::value_type > _ValueType; > typedef typename iterator_traits<_RandomAccessIterator>::difference_type > _DistanceType; > > > > > > if (__last - __first < 2) return; > _DistanceType __len = __last - __first; > _DistanceType __parent = (__len - 2)/2; > > while (true) { > __adjust_heap(__first, __parent, __len, > _ValueType(*(__first + __parent)), __comp); > if (__parent == 0) return; > __parent--; > } > } > > template<typename _RandomAccessIterator> > void > sort_heap(_RandomAccessIterator __first, _RandomAccessIterator __last) > { > > > > > > > while (__last - __first > 1) > pop_heap(__first, __last--); > } > > template<typename _RandomAccessIterator, typename _Compare> > void > sort_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, > _Compare __comp) > { > > > > > while (__last - __first > 1) > pop_heap(__first, __last--, __comp); > } > >} ># 65 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_algo.h" 2 3 ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_tempbuf.h" 1 3 ># 64 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_tempbuf.h" 3 >namespace std >{ ># 74 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_tempbuf.h" 3 >template <class _ForwardIterator, class _Tp> > class _Temporary_buffer >{ > > > > ptrdiff_t _M_original_len; > ptrdiff_t _M_len; > _Tp* _M_buffer; > > > void _M_allocate_buffer() { > _M_original_len = _M_len; > _M_buffer = 0; > > if (_M_len > (ptrdiff_t)(2147483647 / sizeof(_Tp))) > _M_len = 2147483647 / sizeof(_Tp); > > while (_M_len > 0) { > _M_buffer = (_Tp*) malloc(_M_len * sizeof(_Tp)); > if (_M_buffer) > break; > _M_len /= 2; > } > } > > void _M_initialize_buffer(const _Tp&, __true_type) {} > void _M_initialize_buffer(const _Tp& val, __false_type) { > uninitialized_fill_n(_M_buffer, _M_len, val); > } > >public: > > ptrdiff_t size() const { return _M_len; } > > ptrdiff_t requested_size() const { return _M_original_len; } > > _Tp* begin() { return _M_buffer; } > > _Tp* end() { return _M_buffer + _M_len; } > > _Temporary_buffer(_ForwardIterator __first, _ForwardIterator __last) { > > typedef typename __type_traits<_Tp>::has_trivial_default_constructor > _Trivial; > > if (true) { > _M_len = distance(__first, __last); > _M_allocate_buffer(); > if (_M_len > 0) > _M_initialize_buffer(*__first, _Trivial()); > } > if (false) > { > free(_M_buffer); > _M_buffer = 0; > _M_len = 0; > ; > } > } > > ~_Temporary_buffer() { > _Destroy(_M_buffer, _M_buffer + _M_len); > free(_M_buffer); > } > >private: > > _Temporary_buffer(const _Temporary_buffer&) {} > void operator=(const _Temporary_buffer&) {} >}; > >} ># 66 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_algo.h" 2 3 > > > >namespace std >{ ># 84 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_algo.h" 3 > template<typename _Tp> > inline const _Tp& > __median(const _Tp& __a, const _Tp& __b, const _Tp& __c) > { > > > if (__a < __b) > if (__b < __c) > return __b; > else if (__a < __c) > return __c; > else > return __a; > else if (__a < __c) > return __a; > else if (__b < __c) > return __c; > else > return __b; > } ># 118 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_algo.h" 3 > template<typename _Tp, typename _Compare> > inline const _Tp& > __median(const _Tp& __a, const _Tp& __b, const _Tp& __c, _Compare __comp) > { > > > if (__comp(__a, __b)) > if (__comp(__b, __c)) > return __b; > else if (__comp(__a, __c)) > return __c; > else > return __a; > else if (__comp(__a, __c)) > return __a; > else if (__comp(__b, __c)) > return __c; > else > return __b; > } ># 150 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_algo.h" 3 > template<typename _InputIter, typename _Function> > _Function > for_each(_InputIter __first, _InputIter __last, _Function __f) > { > > > for ( ; __first != __last; ++__first) > __f(*__first); > return __f; > } > > > > > > > template<typename _InputIter, typename _Tp> > inline _InputIter > find(_InputIter __first, _InputIter __last, > const _Tp& __val, > input_iterator_tag) > { > while (__first != __last && !(*__first == __val)) > ++__first; > return __first; > } > > > > > > > template<typename _InputIter, typename _Predicate> > inline _InputIter > find_if(_InputIter __first, _InputIter __last, > _Predicate __pred, > input_iterator_tag) > { > while (__first != __last && !__pred(*__first)) > ++__first; > return __first; > } > > > > > > > template<typename _RandomAccessIter, typename _Tp> > _RandomAccessIter > find(_RandomAccessIter __first, _RandomAccessIter __last, > const _Tp& __val, > random_access_iterator_tag) > { > typename iterator_traits<_RandomAccessIter>::difference_type __trip_count > = (__last - __first) >> 2; > > for ( ; __trip_count > 0 ; --__trip_count) { > if (*__first == __val) return __first; > ++__first; > > if (*__first == __val) return __first; > ++__first; > > if (*__first == __val) return __first; > ++__first; > > if (*__first == __val) return __first; > ++__first; > } > > switch(__last - __first) { > case 3: > if (*__first == __val) return __first; > ++__first; > case 2: > if (*__first == __val) return __first; > ++__first; > case 1: > if (*__first == __val) return __first; > ++__first; > case 0: > default: > return __last; > } > } > > > > > > > template<typename _RandomAccessIter, typename _Predicate> > _RandomAccessIter > find_if(_RandomAccessIter __first, _RandomAccessIter __last, > _Predicate __pred, > random_access_iterator_tag) > { > typename iterator_traits<_RandomAccessIter>::difference_type __trip_count > = (__last - __first) >> 2; > > for ( ; __trip_count > 0 ; --__trip_count) { > if (__pred(*__first)) return __first; > ++__first; > > if (__pred(*__first)) return __first; > ++__first; > > if (__pred(*__first)) return __first; > ++__first; > > if (__pred(*__first)) return __first; > ++__first; > } > > switch(__last - __first) { > case 3: > if (__pred(*__first)) return __first; > ++__first; > case 2: > if (__pred(*__first)) return __first; > ++__first; > case 1: > if (__pred(*__first)) return __first; > ++__first; > case 0: > default: > return __last; > } > } ># 289 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_algo.h" 3 > template<typename _InputIter, typename _Tp> > inline _InputIter > find(_InputIter __first, _InputIter __last, > const _Tp& __val) > { > > > > > return find(__first, __last, __val, __iterator_category(__first)); > } ># 309 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_algo.h" 3 > template<typename _InputIter, typename _Predicate> > inline _InputIter > find_if(_InputIter __first, _InputIter __last, > _Predicate __pred) > { > > > > > return find_if(__first, __last, __pred, __iterator_category(__first)); > } ># 329 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_algo.h" 3 > template<typename _ForwardIter> > _ForwardIter > adjacent_find(_ForwardIter __first, _ForwardIter __last) > { > > > > > if (__first == __last) > return __last; > _ForwardIter __next = __first; > while(++__next != __last) { > if (*__first == *__next) > return __first; > __first = __next; > } > return __last; > } ># 358 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_algo.h" 3 > template<typename _ForwardIter, typename _BinaryPredicate> > _ForwardIter > adjacent_find(_ForwardIter __first, _ForwardIter __last, > _BinaryPredicate __binary_pred) > { > > > > > > if (__first == __last) > return __last; > _ForwardIter __next = __first; > while(++__next != __last) { > if (__binary_pred(*__first, *__next)) > return __first; > __first = __next; > } > return __last; > } ># 387 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_algo.h" 3 > template<typename _InputIter, typename _Tp> > typename iterator_traits<_InputIter>::difference_type > count(_InputIter __first, _InputIter __last, const _Tp& __value) > { > > > > > > typename iterator_traits<_InputIter>::difference_type __n = 0; > for ( ; __first != __last; ++__first) > if (*__first == __value) > ++__n; > return __n; > } ># 411 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_algo.h" 3 > template<typename _InputIter, typename _Predicate> > typename iterator_traits<_InputIter>::difference_type > count_if(_InputIter __first, _InputIter __last, _Predicate __pred) > { > > > > > typename iterator_traits<_InputIter>::difference_type __n = 0; > for ( ; __first != __last; ++__first) > if (__pred(*__first)) > ++__n; > return __n; > } ># 450 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_algo.h" 3 > template<typename _ForwardIter1, typename _ForwardIter2> > _ForwardIter1 > search(_ForwardIter1 __first1, _ForwardIter1 __last1, > _ForwardIter2 __first2, _ForwardIter2 __last2) > { > > > > > > > > > if (__first1 == __last1 || __first2 == __last2) > return __first1; > > > _ForwardIter2 __tmp(__first2); > ++__tmp; > if (__tmp == __last2) > return find(__first1, __last1, *__first2); > > > > _ForwardIter2 __p1, __p; > > __p1 = __first2; ++__p1; > > _ForwardIter1 __current = __first1; > > while (__first1 != __last1) { > __first1 = find(__first1, __last1, *__first2); > if (__first1 == __last1) > return __last1; > > __p = __p1; > __current = __first1; > if (++__current == __last1) > return __last1; > > while (*__current == *__p) { > if (++__p == __last2) > return __first1; > if (++__current == __last1) > return __last1; > } > > ++__first1; > } > return __first1; > } ># 522 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_algo.h" 3 > template<typename _ForwardIter1, typename _ForwardIter2, typename _BinaryPred> > _ForwardIter1 > search(_ForwardIter1 __first1, _ForwardIter1 __last1, > _ForwardIter2 __first2, _ForwardIter2 __last2, > _BinaryPred __predicate) > { > > > > > > > > > if (__first1 == __last1 || __first2 == __last2) > return __first1; > > > _ForwardIter2 __tmp(__first2); > ++__tmp; > if (__tmp == __last2) { > while (__first1 != __last1 && !__predicate(*__first1, *__first2)) > ++__first1; > return __first1; > } > > > > _ForwardIter2 __p1, __p; > > __p1 = __first2; ++__p1; > > _ForwardIter1 __current = __first1; > > while (__first1 != __last1) { > while (__first1 != __last1) { > if (__predicate(*__first1, *__first2)) > break; > ++__first1; > } > while (__first1 != __last1 && !__predicate(*__first1, *__first2)) > ++__first1; > if (__first1 == __last1) > return __last1; > > __p = __p1; > __current = __first1; > if (++__current == __last1) return __last1; > > while (__predicate(*__current, *__p)) { > if (++__p == __last2) > return __first1; > if (++__current == __last1) > return __last1; > } > > ++__first1; > } > return __first1; > } ># 596 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_algo.h" 3 > template<typename _ForwardIter, typename _Integer, typename _Tp> > _ForwardIter > search_n(_ForwardIter __first, _ForwardIter __last, > _Integer __count, const _Tp& __val) > { > > > > > > > if (__count <= 0) > return __first; > else { > __first = find(__first, __last, __val); > while (__first != __last) { > typename iterator_traits<_ForwardIter>::difference_type __n = __count; > --__n; > _ForwardIter __i = __first; > ++__i; > while (__i != __last && __n != 0 && *__i == __val) { > ++__i; > --__n; > } > if (__n == 0) > return __first; > else > __first = find(__i, __last, __val); > } > return __last; > } > } ># 644 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_algo.h" 3 > template<typename _ForwardIter, typename _Integer, typename _Tp, > typename _BinaryPred> > _ForwardIter > search_n(_ForwardIter __first, _ForwardIter __last, > _Integer __count, const _Tp& __val, > _BinaryPred __binary_pred) > { > > > > > > if (__count <= 0) > return __first; > else { > while (__first != __last) { > if (__binary_pred(*__first, __val)) > break; > ++__first; > } > while (__first != __last) { > typename iterator_traits<_ForwardIter>::difference_type __n = __count; > --__n; > _ForwardIter __i = __first; > ++__i; > while (__i != __last && __n != 0 && __binary_pred(*__i, __val)) { > ++__i; > --__n; > } > if (__n == 0) > return __first; > else { > while (__i != __last) { > if (__binary_pred(*__i, __val)) > break; > ++__i; > } > __first = __i; > } > } > return __last; > } > } ># 699 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_algo.h" 3 > template<typename _ForwardIter1, typename _ForwardIter2> > _ForwardIter2 > swap_ranges(_ForwardIter1 __first1, _ForwardIter1 __last1, > _ForwardIter2 __first2) > { > > > > > > > > > > > for ( ; __first1 != __last1; ++__first1, ++__first2) > iter_swap(__first1, __first2); > return __first2; > } ># 734 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_algo.h" 3 > template<typename _InputIter, typename _OutputIter, typename _UnaryOperation> > _OutputIter > transform(_InputIter __first, _InputIter __last, > _OutputIter __result, _UnaryOperation __unary_op) > { > > > > > > > for ( ; __first != __last; ++__first, ++__result) > *__result = __unary_op(*__first); > return __result; > } ># 767 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_algo.h" 3 > template<typename _InputIter1, typename _InputIter2, typename _OutputIter, > typename _BinaryOperation> > _OutputIter > transform(_InputIter1 __first1, _InputIter1 __last1, > _InputIter2 __first2, _OutputIter __result, > _BinaryOperation __binary_op) > { > > > > > > > > for ( ; __first1 != __last1; ++__first1, ++__first2, ++__result) > *__result = __binary_op(*__first1, *__first2); > return __result; > } ># 798 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_algo.h" 3 > template<typename _ForwardIter, typename _Tp> > void > replace(_ForwardIter __first, _ForwardIter __last, > const _Tp& __old_value, const _Tp& __new_value) > { > > > > > > > > for ( ; __first != __last; ++__first) > if (*__first == __old_value) > *__first = __new_value; > } ># 827 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_algo.h" 3 > template<typename _ForwardIter, typename _Predicate, typename _Tp> > void > replace_if(_ForwardIter __first, _ForwardIter __last, > _Predicate __pred, const _Tp& __new_value) > { > > > > > > > > for ( ; __first != __last; ++__first) > if (__pred(*__first)) > *__first = __new_value; > } ># 858 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_algo.h" 3 > template<typename _InputIter, typename _OutputIter, typename _Tp> > _OutputIter > replace_copy(_InputIter __first, _InputIter __last, > _OutputIter __result, > const _Tp& __old_value, const _Tp& __new_value) > { > > > > > > > > for ( ; __first != __last; ++__first, ++__result) > *__result = *__first == __old_value ? __new_value : *__first; > return __result; > } ># 890 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_algo.h" 3 > template<typename _InputIter, typename _OutputIter, typename _Predicate, > typename _Tp> > _OutputIter > replace_copy_if(_InputIter __first, _InputIter __last, > _OutputIter __result, > _Predicate __pred, const _Tp& __new_value) > { > > > > > > > > for ( ; __first != __last; ++__first, ++__result) > *__result = __pred(*__first) ? __new_value : *__first; > return __result; > } ># 920 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_algo.h" 3 > template<typename _ForwardIter, typename _Generator> > void > generate(_ForwardIter __first, _ForwardIter __last, _Generator __gen) > { > > > > > > for ( ; __first != __last; ++__first) > *__first = __gen(); > } ># 944 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_algo.h" 3 > template<typename _OutputIter, typename _Size, typename _Generator> > _OutputIter > generate_n(_OutputIter __first, _Size __n, _Generator __gen) > { > > > > > > for ( ; __n > 0; --__n, ++__first) > *__first = __gen(); > return __first; > } ># 971 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_algo.h" 3 > template<typename _InputIter, typename _OutputIter, typename _Tp> > _OutputIter > remove_copy(_InputIter __first, _InputIter __last, > _OutputIter __result, const _Tp& __value) > { > > > > > > > > for ( ; __first != __last; ++__first) > if (!(*__first == __value)) { > *__result = *__first; > ++__result; > } > return __result; > } ># 1005 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_algo.h" 3 > template<typename _InputIter, typename _OutputIter, typename _Predicate> > _OutputIter > remove_copy_if(_InputIter __first, _InputIter __last, > _OutputIter __result, _Predicate __pred) > { > > > > > > > > for ( ; __first != __last; ++__first) > if (!__pred(*__first)) { > *__result = *__first; > ++__result; > } > return __result; > } ># 1041 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_algo.h" 3 > template<typename _ForwardIter, typename _Tp> > _ForwardIter > remove(_ForwardIter __first, _ForwardIter __last, > const _Tp& __value) > { > > > > > > > > __first = find(__first, __last, __value); > _ForwardIter __i = __first; > return __first == __last ? __first > : remove_copy(++__i, __last, __first, __value); > } ># 1075 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_algo.h" 3 > template<typename _ForwardIter, typename _Predicate> > _ForwardIter > remove_if(_ForwardIter __first, _ForwardIter __last, > _Predicate __pred) > { > > > > > > __first = find_if(__first, __last, __pred); > _ForwardIter __i = __first; > return __first == __last ? __first > : remove_copy_if(++__i, __last, __first, __pred); > } > > > > > > > > template<typename _InputIter, typename _OutputIter> > _OutputIter > __unique_copy(_InputIter __first, _InputIter __last, > _OutputIter __result, > output_iterator_tag) > { > > typename iterator_traits<_InputIter>::value_type __value = *__first; > *__result = __value; > while (++__first != __last) > if (!(__value == *__first)) { > __value = *__first; > *++__result = __value; > } > return ++__result; > } > > > > > > > > template<typename _InputIter, typename _ForwardIter> > _ForwardIter > __unique_copy(_InputIter __first, _InputIter __last, > _ForwardIter __result, > forward_iterator_tag) > { > > *__result = *__first; > while (++__first != __last) > if (!(*__result == *__first)) > *++__result = *__first; > return ++__result; > } ># 1147 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_algo.h" 3 > template<typename _InputIter, typename _OutputIter> > inline _OutputIter > unique_copy(_InputIter __first, _InputIter __last, > _OutputIter __result) > { > > > > > > > > typedef typename iterator_traits<_OutputIter>::iterator_category _IterType; > > if (__first == __last) return __result; > return __unique_copy(__first, __last, __result, _IterType()); > } ># 1172 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_algo.h" 3 > template<typename _InputIter, typename _OutputIter, typename _BinaryPredicate> > _OutputIter > __unique_copy(_InputIter __first, _InputIter __last, > _OutputIter __result, > _BinaryPredicate __binary_pred, > output_iterator_tag) > { > > > > > > typename iterator_traits<_InputIter>::value_type __value = *__first; > *__result = __value; > while (++__first != __last) > if (!__binary_pred(__value, *__first)) { > __value = *__first; > *++__result = __value; > } > return ++__result; > } ># 1201 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_algo.h" 3 > template<typename _InputIter, typename _ForwardIter, typename _BinaryPredicate> > _ForwardIter > __unique_copy(_InputIter __first, _InputIter __last, > _ForwardIter __result, > _BinaryPredicate __binary_pred, > forward_iterator_tag) > { > > > > > > *__result = *__first; > while (++__first != __last) > if (!__binary_pred(*__result, *__first)) *++__result = *__first; > return ++__result; > } ># 1234 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_algo.h" 3 > template<typename _InputIter, typename _OutputIter, typename _BinaryPredicate> > inline _OutputIter > unique_copy(_InputIter __first, _InputIter __last, > _OutputIter __result, > _BinaryPredicate __binary_pred) > { > > > > > > typedef typename iterator_traits<_OutputIter>::iterator_category _IterType; > > if (__first == __last) return __result; > return __unique_copy(__first, __last, >__result, __binary_pred, _IterType()); > } ># 1265 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_algo.h" 3 > template<typename _ForwardIter> > _ForwardIter > unique(_ForwardIter __first, _ForwardIter __last) > { > > > > > > __first = adjacent_find(__first, __last); > return unique_copy(__first, __last, __first); > } ># 1292 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_algo.h" 3 > template<typename _ForwardIter, typename _BinaryPredicate> > _ForwardIter > unique(_ForwardIter __first, _ForwardIter __last, > _BinaryPredicate __binary_pred) > { > > > > > > > __first = adjacent_find(__first, __last, __binary_pred); > return unique_copy(__first, __last, __first, __binary_pred); > } > > > > > > > > template<typename _BidirectionalIter> > void > __reverse(_BidirectionalIter __first, _BidirectionalIter __last, > bidirectional_iterator_tag) > { > while (true) > if (__first == __last || __first == --__last) > return; > else > iter_swap(__first++, __last); > } > > > > > > > > template<typename _RandomAccessIter> > void > __reverse(_RandomAccessIter __first, _RandomAccessIter __last, > random_access_iterator_tag) > { > while (__first < __last) > iter_swap(__first++, --__last); > } ># 1351 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_algo.h" 3 > template<typename _BidirectionalIter> > inline void > reverse(_BidirectionalIter __first, _BidirectionalIter __last) > { > > > > __reverse(__first, __last, __iterator_category(__first)); > } ># 1376 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_algo.h" 3 > template<typename _BidirectionalIter, typename _OutputIter> > _OutputIter > reverse_copy(_BidirectionalIter __first, _BidirectionalIter __last, > _OutputIter __result) > { > > > > > > while (__first != __last) { > --__last; > *__result = *__last; > ++__result; > } > return __result; > } ># 1401 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_algo.h" 3 > template<typename _EuclideanRingElement> > _EuclideanRingElement > __gcd(_EuclideanRingElement __m, _EuclideanRingElement __n) > { > while (__n != 0) { > _EuclideanRingElement __t = __m % __n; > __m = __n; > __n = __t; > } > return __m; > } > > > > > > > template<typename _ForwardIter> > void > __rotate(_ForwardIter __first, > _ForwardIter __middle, > _ForwardIter __last, > forward_iterator_tag) > { > if ((__first == __middle) || (__last == __middle)) > return; > > _ForwardIter __first2 = __middle; > do { > swap(*__first++, *__first2++); > if (__first == __middle) > __middle = __first2; > } while (__first2 != __last); > > __first2 = __middle; > > while (__first2 != __last) { > swap(*__first++, *__first2++); > if (__first == __middle) > __middle = __first2; > else if (__first2 == __last) > __first2 = __middle; > } > } > > > > > > > template<typename _BidirectionalIter> > void > __rotate(_BidirectionalIter __first, > _BidirectionalIter __middle, > _BidirectionalIter __last, > bidirectional_iterator_tag) > { > > > > > if ((__first == __middle) || (__last == __middle)) > return; > > __reverse(__first, __middle, bidirectional_iterator_tag()); > __reverse(__middle, __last, bidirectional_iterator_tag()); > > while (__first != __middle && __middle != __last) > swap (*__first++, *--__last); > > if (__first == __middle) { > __reverse(__middle, __last, bidirectional_iterator_tag()); > } > else { > __reverse(__first, __middle, bidirectional_iterator_tag()); > } > } > > > > > > > template<typename _RandomAccessIter> > void > __rotate(_RandomAccessIter __first, > _RandomAccessIter __middle, > _RandomAccessIter __last, > random_access_iterator_tag) > { > > > > > if ((__first == __middle) || (__last == __middle)) > return; > > typedef typename iterator_traits<_RandomAccessIter>::difference_type _Distance; > typedef typename iterator_traits<_RandomAccessIter>::value_type _ValueType; > > _Distance __n = __last - __first; > _Distance __k = __middle - __first; > _Distance __l = __n - __k; > > if (__k == __l) { > swap_ranges(__first, __middle, __middle); > return; > } > > _Distance __d = __gcd(__n, __k); > > for (_Distance __i = 0; __i < __d; __i++) { > _ValueType __tmp = *__first; > _RandomAccessIter __p = __first; > > if (__k < __l) { > for (_Distance __j = 0; __j < __l/__d; __j++) { > if (__p > __first + __l) { > *__p = *(__p - __l); > __p -= __l; > } > > *__p = *(__p + __k); > __p += __k; > } > } > > else { > for (_Distance __j = 0; __j < __k/__d - 1; __j ++) { > if (__p < __last - __k) { > *__p = *(__p + __k); > __p += __k; > } > > *__p = * (__p - __l); > __p -= __l; > } > } > > *__p = __tmp; > ++__first; > } > } ># 1563 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_algo.h" 3 > template<typename _ForwardIter> > inline void > rotate(_ForwardIter __first, _ForwardIter __middle, _ForwardIter __last) > { > > > > typedef typename iterator_traits<_ForwardIter>::iterator_category _IterType; > __rotate(__first, __middle, __last, _IterType()); > } ># 1591 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_algo.h" 3 > template<typename _ForwardIter, typename _OutputIter> > _OutputIter > rotate_copy(_ForwardIter __first, _ForwardIter __middle, > _ForwardIter __last, _OutputIter __result) > { > > > > > > return copy(__first, __middle, copy(__middle, __last, __result)); > } ># 1614 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_algo.h" 3 > template<typename _Distance> > inline _Distance > __random_number(_Distance __n) > { > > return lrand48() % __n; > > > > } ># 1636 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_algo.h" 3 > template<typename _RandomAccessIter> > inline void > random_shuffle(_RandomAccessIter __first, _RandomAccessIter __last) > { > > > > > if (__first == __last) return; > for (_RandomAccessIter __i = __first + 1; __i != __last; ++__i) > iter_swap(__i, __first + __random_number((__i - __first) + 1)); > } ># 1662 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_algo.h" 3 > template<typename _RandomAccessIter, typename _RandomNumberGenerator> > void > random_shuffle(_RandomAccessIter __first, _RandomAccessIter __last, > _RandomNumberGenerator& __rand) > { > > > > > if (__first == __last) return; > for (_RandomAccessIter __i = __first + 1; __i != __last; ++__i) > iter_swap(__i, __first + __rand((__i - __first) + 1)); > } > > > > > > > > template<typename _ForwardIter, typename _Predicate> > _ForwardIter > __partition(_ForwardIter __first, _ForwardIter __last, > _Predicate __pred, > forward_iterator_tag) > { > if (__first == __last) return __first; > > while (__pred(*__first)) > if (++__first == __last) return __first; > > _ForwardIter __next = __first; > > while (++__next != __last) > if (__pred(*__next)) { > swap(*__first, *__next); > ++__first; > } > > return __first; > } > > > > > > > template<typename _BidirectionalIter, typename _Predicate> > _BidirectionalIter > __partition(_BidirectionalIter __first, _BidirectionalIter __last, > _Predicate __pred, > bidirectional_iterator_tag) > { > while (true) { > while (true) > if (__first == __last) > return __first; > else if (__pred(*__first)) > ++__first; > else > break; > --__last; > while (true) > if (__first == __last) > return __first; > else if (!__pred(*__last)) > --__last; > else > break; > iter_swap(__first, __last); > ++__first; > } > } ># 1750 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_algo.h" 3 > template<typename _ForwardIter, typename _Predicate> > inline _ForwardIter > partition(_ForwardIter __first, _ForwardIter __last, > _Predicate __pred) > { > > > > > > return __partition(__first, __last, __pred, __iterator_category(__first)); > } > > > > > > > > template<typename _ForwardIter, typename _Predicate, typename _Distance> > _ForwardIter > __inplace_stable_partition(_ForwardIter __first, _ForwardIter __last, > _Predicate __pred, _Distance __len) > { > if (__len == 1) > return __pred(*__first) ? __last : __first; > _ForwardIter __middle = __first; > advance(__middle, __len / 2); > _ForwardIter __begin = __inplace_stable_partition(__first, __middle, > __pred, > __len / 2); > _ForwardIter __end = __inplace_stable_partition(__middle, __last, > __pred, > __len - __len / 2); > rotate(__begin, __middle, __end); > advance(__begin, distance(__middle, __end)); > return __begin; > } > > > > > > > template<typename _ForwardIter, typename _Pointer, typename _Predicate, > typename _Distance> > _ForwardIter > __stable_partition_adaptive(_ForwardIter __first, _ForwardIter __last, > _Predicate __pred, _Distance __len, > _Pointer __buffer, > _Distance __buffer_size) > { > if (__len <= __buffer_size) { > _ForwardIter __result1 = __first; > _Pointer __result2 = __buffer; > for ( ; __first != __last ; ++__first) > if (__pred(*__first)) { > *__result1 = *__first; > ++__result1; > } > else { > *__result2 = *__first; > ++__result2; > } > copy(__buffer, __result2, __result1); > return __result1; > } > else { > _ForwardIter __middle = __first; > advance(__middle, __len / 2); > _ForwardIter __begin = __stable_partition_adaptive(__first, __middle, > __pred, > __len / 2, > __buffer, __buffer_size); > _ForwardIter __end = __stable_partition_adaptive( __middle, __last, > __pred, > __len - __len / 2, > __buffer, __buffer_size); > rotate(__begin, __middle, __end); > advance(__begin, distance(__middle, __end)); > return __begin; > } > } ># 1850 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_algo.h" 3 > template<typename _ForwardIter, typename _Predicate> > _ForwardIter > stable_partition(_ForwardIter __first, _ForwardIter __last, > _Predicate __pred) > { > > > > > > if (__first == __last) > return __first; > else > { > typedef typename iterator_traits<_ForwardIter>::value_type _ValueType; > typedef typename iterator_traits<_ForwardIter>::difference_type _DistanceType; > > _Temporary_buffer<_ForwardIter, _ValueType> __buf(__first, __last); > if (__buf.size() > 0) > return __stable_partition_adaptive(__first, __last, __pred, > _DistanceType(__buf.requested_size()), > __buf.begin(), __buf.size()); > else > return __inplace_stable_partition(__first, __last, __pred, > _DistanceType(__buf.requested_size())); > } > } > > > > > > > template<typename _RandomAccessIter, typename _Tp> > _RandomAccessIter > __unguarded_partition(_RandomAccessIter __first, _RandomAccessIter __last, > _Tp __pivot) > { > while (true) { > while (*__first < __pivot) > ++__first; > --__last; > while (__pivot < *__last) > --__last; > if (!(__first < __last)) > return __first; > iter_swap(__first, __last); > ++__first; > } > } > > > > > > > template<typename _RandomAccessIter, typename _Tp, typename _Compare> > _RandomAccessIter > __unguarded_partition(_RandomAccessIter __first, _RandomAccessIter __last, > _Tp __pivot, _Compare __comp) > { > while (true) { > while (__comp(*__first, __pivot)) > ++__first; > --__last; > while (__comp(__pivot, *__last)) > --__last; > if (!(__first < __last)) > return __first; > iter_swap(__first, __last); > ++__first; > } > } ># 1931 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_algo.h" 3 > enum { _M_threshold = 16 }; > > > > > > > template<typename _RandomAccessIter, typename _Tp> > void > __unguarded_linear_insert(_RandomAccessIter __last, _Tp __val) > { > _RandomAccessIter __next = __last; > --__next; > while (__val < *__next) { > *__last = *__next; > __last = __next; > --__next; > } > *__last = __val; > } > > > > > > > template<typename _RandomAccessIter, typename _Tp, typename _Compare> > void > __unguarded_linear_insert(_RandomAccessIter __last, _Tp __val, _Compare __comp) > { > _RandomAccessIter __next = __last; > --__next; > while (__comp(__val, *__next)) { > *__last = *__next; > __last = __next; > --__next; > } > *__last = __val; > } > > > > > > > template<typename _RandomAccessIter> > void > __insertion_sort(_RandomAccessIter __first, _RandomAccessIter __last) > { > if (__first == __last) return; > > for (_RandomAccessIter __i = __first + 1; __i != __last; ++__i) > { > typename iterator_traits<_RandomAccessIter>::value_type __val = *__i; > if (__val < *__first) { > copy_backward(__first, __i, __i + 1); > *__first = __val; > } > else > __unguarded_linear_insert(__i, __val); > } > } > > > > > > > template<typename _RandomAccessIter, typename _Compare> > void > __insertion_sort(_RandomAccessIter __first, _RandomAccessIter __last, > _Compare __comp) > { > if (__first == __last) return; > > for (_RandomAccessIter __i = __first + 1; __i != __last; ++__i) > { > typename iterator_traits<_RandomAccessIter>::value_type __val = *__i; > if (__comp(__val, *__first)) { > copy_backward(__first, __i, __i + 1); > *__first = __val; > } > else > __unguarded_linear_insert(__i, __val, __comp); > } > } > > > > > > > template<typename _RandomAccessIter> > inline void > __unguarded_insertion_sort(_RandomAccessIter __first, _RandomAccessIter __last) > { > typedef typename iterator_traits<_RandomAccessIter>::value_type _ValueType; > > for (_RandomAccessIter __i = __first; __i != __last; ++__i) > __unguarded_linear_insert(__i, _ValueType(*__i)); > } > > > > > > > template<typename _RandomAccessIter, typename _Compare> > inline void > __unguarded_insertion_sort(_RandomAccessIter __first, _RandomAccessIter __last, > _Compare __comp) > { > typedef typename iterator_traits<_RandomAccessIter>::value_type _ValueType; > > for (_RandomAccessIter __i = __first; __i != __last; ++__i) > __unguarded_linear_insert(__i, _ValueType(*__i), __comp); > } > > > > > > > template<typename _RandomAccessIter> > void > __final_insertion_sort(_RandomAccessIter __first, _RandomAccessIter __last) > { > if (__last - __first > _M_threshold) { > __insertion_sort(__first, __first + _M_threshold); > __unguarded_insertion_sort(__first + _M_threshold, __last); > } > else > __insertion_sort(__first, __last); > } > > > > > > > template<typename _RandomAccessIter, typename _Compare> > void > __final_insertion_sort(_RandomAccessIter __first, _RandomAccessIter __last, > _Compare __comp) > { > if (__last - __first > _M_threshold) { > __insertion_sort(__first, __first + _M_threshold, __comp); > __unguarded_insertion_sort(__first + _M_threshold, __last, __comp); > } > else > __insertion_sort(__first, __last, __comp); > } > > > > > > > template<typename _Size> > inline _Size > __lg(_Size __n) > { > _Size __k; > for (__k = 0; __n != 1; __n >>= 1) ++__k; > return __k; > } > > > > > > > template<typename _RandomAccessIter, typename _Size> > void > __introsort_loop(_RandomAccessIter __first, _RandomAccessIter __last, > _Size __depth_limit) > { > typedef typename iterator_traits<_RandomAccessIter>::value_type _ValueType; > > while (__last - __first > _M_threshold) { > if (__depth_limit == 0) { > partial_sort(__first, __last, __last); > return; > } > --__depth_limit; > _RandomAccessIter __cut = > __unguarded_partition(__first, __last, > _ValueType(__median(*__first, > *(__first + (__last - __first)/2), > *(__last - 1)))); > __introsort_loop(__cut, __last, __depth_limit); > __last = __cut; > } > } > > > > > > > template<typename _RandomAccessIter, typename _Size, typename _Compare> > void > __introsort_loop(_RandomAccessIter __first, _RandomAccessIter __last, > _Size __depth_limit, _Compare __comp) > { > typedef typename iterator_traits<_RandomAccessIter>::value_type _ValueType; > > while (__last - __first > _M_threshold) { > if (__depth_limit == 0) { > partial_sort(__first, __last, __last, __comp); > return; > } > --__depth_limit; > _RandomAccessIter __cut = > __unguarded_partition(__first, __last, > _ValueType(__median(*__first, > *(__first + (__last - __first)/2), > *(__last - 1), __comp)), > __comp); > __introsort_loop(__cut, __last, __depth_limit, __comp); > __last = __cut; > } > } ># 2168 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_algo.h" 3 > template<typename _RandomAccessIter> > inline void > sort(_RandomAccessIter __first, _RandomAccessIter __last) > { > typedef typename iterator_traits<_RandomAccessIter>::value_type _ValueType; > > > > > > > if (__first != __last) { > __introsort_loop(__first, __last, __lg(__last - __first) * 2); > __final_insertion_sort(__first, __last); > } > } ># 2199 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_algo.h" 3 > template<typename _RandomAccessIter, typename _Compare> > inline void > sort(_RandomAccessIter __first, _RandomAccessIter __last, _Compare __comp) > { > typedef typename iterator_traits<_RandomAccessIter>::value_type _ValueType; > > > > > > > if (__first != __last) { > __introsort_loop(__first, __last, __lg(__last - __first) * 2, __comp); > __final_insertion_sort(__first, __last, __comp); > } > } > > > > > > > > template<typename _RandomAccessIter> > void > __inplace_stable_sort(_RandomAccessIter __first, _RandomAccessIter __last) > { > if (__last - __first < 15) { > __insertion_sort(__first, __last); > return; > } > _RandomAccessIter __middle = __first + (__last - __first) / 2; > __inplace_stable_sort(__first, __middle); > __inplace_stable_sort(__middle, __last); > __merge_without_buffer(__first, __middle, __last, > __middle - __first, > __last - __middle); > } > > > > > > > template<typename _RandomAccessIter, typename _Compare> > void > __inplace_stable_sort(_RandomAccessIter __first, _RandomAccessIter __last, > _Compare __comp) > { > if (__last - __first < 15) { > __insertion_sort(__first, __last, __comp); > return; > } > _RandomAccessIter __middle = __first + (__last - __first) / 2; > __inplace_stable_sort(__first, __middle, __comp); > __inplace_stable_sort(__middle, __last, __comp); > __merge_without_buffer(__first, __middle, __last, > __middle - __first, > __last - __middle, > __comp); > } > > template<typename _RandomAccessIter1, typename _RandomAccessIter2, > typename _Distance> > void > __merge_sort_loop(_RandomAccessIter1 __first, _RandomAccessIter1 __last, > _RandomAccessIter2 __result, _Distance __step_size) > { > _Distance __two_step = 2 * __step_size; > > while (__last - __first >= __two_step) { > __result = merge(__first, __first + __step_size, > __first + __step_size, __first + __two_step, > __result); > __first += __two_step; > } > > __step_size = min(_Distance(__last - __first), __step_size); > merge(__first, __first + __step_size, __first + __step_size, __last, > __result); > } > > template<typename _RandomAccessIter1, typename _RandomAccessIter2, > typename _Distance, typename _Compare> > void > __merge_sort_loop(_RandomAccessIter1 __first, _RandomAccessIter1 __last, > _RandomAccessIter2 __result, _Distance __step_size, > _Compare __comp) > { > _Distance __two_step = 2 * __step_size; > > while (__last - __first >= __two_step) { > __result = merge(__first, __first + __step_size, > __first + __step_size, __first + __two_step, > __result, > __comp); > __first += __two_step; > } > __step_size = min(_Distance(__last - __first), __step_size); > > merge(__first, __first + __step_size, > __first + __step_size, __last, > __result, > __comp); > } > > enum { _M_chunk_size = 7 }; > > template<typename _RandomAccessIter, typename _Distance> > void > __chunk_insertion_sort(_RandomAccessIter __first, _RandomAccessIter __last, > _Distance __chunk_size) > { > while (__last - __first >= __chunk_size) { > __insertion_sort(__first, __first + __chunk_size); > __first += __chunk_size; > } > __insertion_sort(__first, __last); > } > > template<typename _RandomAccessIter, typename _Distance, typename _Compare> > void > __chunk_insertion_sort(_RandomAccessIter __first, _RandomAccessIter __last, > _Distance __chunk_size, _Compare __comp) > { > while (__last - __first >= __chunk_size) { > __insertion_sort(__first, __first + __chunk_size, __comp); > __first += __chunk_size; > } > __insertion_sort(__first, __last, __comp); > } > > template<typename _RandomAccessIter, typename _Pointer> > void > __merge_sort_with_buffer(_RandomAccessIter __first, _RandomAccessIter __last, > _Pointer __buffer) > { > typedef typename iterator_traits<_RandomAccessIter>::difference_type _Distance; > > _Distance __len = __last - __first; > _Pointer __buffer_last = __buffer + __len; > > _Distance __step_size = _M_chunk_size; > __chunk_insertion_sort(__first, __last, __step_size); > > while (__step_size < __len) { > __merge_sort_loop(__first, __last, __buffer, __step_size); > __step_size *= 2; > __merge_sort_loop(__buffer, __buffer_last, __first, __step_size); > __step_size *= 2; > } > } > > template<typename _RandomAccessIter, typename _Pointer, typename _Compare> > void > __merge_sort_with_buffer(_RandomAccessIter __first, _RandomAccessIter __last, > _Pointer __buffer, _Compare __comp) > { > typedef typename iterator_traits<_RandomAccessIter>::difference_type _Distance; > > _Distance __len = __last - __first; > _Pointer __buffer_last = __buffer + __len; > > _Distance __step_size = _M_chunk_size; > __chunk_insertion_sort(__first, __last, __step_size, __comp); > > while (__step_size < __len) { > __merge_sort_loop(__first, __last, __buffer, __step_size, __comp); > __step_size *= 2; > __merge_sort_loop(__buffer, __buffer_last, __first, __step_size, __comp); > __step_size *= 2; > } > } > > template<typename _RandomAccessIter, typename _Pointer, typename _Distance> > void > __stable_sort_adaptive(_RandomAccessIter __first, _RandomAccessIter __last, > _Pointer __buffer, _Distance __buffer_size) > { > _Distance __len = (__last - __first + 1) / 2; > _RandomAccessIter __middle = __first + __len; > if (__len > __buffer_size) { > __stable_sort_adaptive(__first, __middle, __buffer, __buffer_size); > __stable_sort_adaptive(__middle, __last, __buffer, __buffer_size); > } > else { > __merge_sort_with_buffer(__first, __middle, __buffer); > __merge_sort_with_buffer(__middle, __last, __buffer); > } > __merge_adaptive(__first, __middle, __last, _Distance(__middle - __first), > _Distance(__last - __middle), __buffer, __buffer_size); > } > > template<typename _RandomAccessIter, typename _Pointer, typename _Distance, > typename _Compare> > void > __stable_sort_adaptive(_RandomAccessIter __first, _RandomAccessIter __last, > _Pointer __buffer, _Distance __buffer_size, > _Compare __comp) > { > _Distance __len = (__last - __first + 1) / 2; > _RandomAccessIter __middle = __first + __len; > if (__len > __buffer_size) { > __stable_sort_adaptive(__first, __middle, __buffer, __buffer_size, > __comp); > __stable_sort_adaptive(__middle, __last, __buffer, __buffer_size, > __comp); > } > else { > __merge_sort_with_buffer(__first, __middle, __buffer, __comp); > __merge_sort_with_buffer(__middle, __last, __buffer, __comp); > } > __merge_adaptive(__first, __middle, __last, _Distance(__middle - __first), > _Distance(__last - __middle), __buffer, __buffer_size, > __comp); > } ># 2432 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_algo.h" 3 > template<typename _RandomAccessIter> > inline void > stable_sort(_RandomAccessIter __first, _RandomAccessIter __last) > { > typedef typename iterator_traits<_RandomAccessIter>::value_type _ValueType; > typedef typename iterator_traits<_RandomAccessIter>::difference_type _DistanceType; > > > > > > > _Temporary_buffer<_RandomAccessIter, _ValueType> buf(__first, __last); > if (buf.begin() == 0) > __inplace_stable_sort(__first, __last); > else > __stable_sort_adaptive(__first, __last, buf.begin(), _DistanceType(buf.size())); > } ># 2468 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_algo.h" 3 > template<typename _RandomAccessIter, typename _Compare> > inline void > stable_sort(_RandomAccessIter __first, _RandomAccessIter __last, _Compare __comp) > { > typedef typename iterator_traits<_RandomAccessIter>::value_type _ValueType; > typedef typename iterator_traits<_RandomAccessIter>::difference_type _DistanceType; > > > > > > > > _Temporary_buffer<_RandomAccessIter, _ValueType> buf(__first, __last); > if (buf.begin() == 0) > __inplace_stable_sort(__first, __last, __comp); > else > __stable_sort_adaptive(__first, __last, buf.begin(), _DistanceType(buf.size()), > __comp); > } ># 2504 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_algo.h" 3 > template<typename _RandomAccessIter> > void > partial_sort(_RandomAccessIter __first, > _RandomAccessIter __middle, > _RandomAccessIter __last) > { > typedef typename iterator_traits<_RandomAccessIter>::value_type _ValueType; > > > > > > > make_heap(__first, __middle); > for (_RandomAccessIter __i = __middle; __i < __last; ++__i) > if (*__i < *__first) > __pop_heap(__first, __middle, __i, _ValueType(*__i)); > sort_heap(__first, __middle); > } ># 2542 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_algo.h" 3 > template<typename _RandomAccessIter, typename _Compare> > void > partial_sort(_RandomAccessIter __first, > _RandomAccessIter __middle, > _RandomAccessIter __last, > _Compare __comp) > { > typedef typename iterator_traits<_RandomAccessIter>::value_type _ValueType; > > > > > > > > make_heap(__first, __middle, __comp); > for (_RandomAccessIter __i = __middle; __i < __last; ++__i) > if (__comp(*__i, *__first)) > __pop_heap(__first, __middle, __i, _ValueType(*__i), __comp); > sort_heap(__first, __middle, __comp); > } ># 2581 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_algo.h" 3 > template<typename _InputIter, typename _RandomAccessIter> > _RandomAccessIter > partial_sort_copy(_InputIter __first, _InputIter __last, > _RandomAccessIter __result_first, > _RandomAccessIter __result_last) > { > typedef typename iterator_traits<_InputIter>::value_type _InputValueType; > typedef typename iterator_traits<_RandomAccessIter>::value_type _OutputValueType; > typedef typename iterator_traits<_RandomAccessIter>::difference_type _DistanceType; > > > > > > > > if (__result_first == __result_last) return __result_last; > _RandomAccessIter __result_real_last = __result_first; > while(__first != __last && __result_real_last != __result_last) { > *__result_real_last = *__first; > ++__result_real_last; > ++__first; > } > make_heap(__result_first, __result_real_last); > while (__first != __last) { > if (*__first < *__result_first) > __adjust_heap(__result_first, _DistanceType(0), > _DistanceType(__result_real_last - __result_first), > _InputValueType(*__first)); > ++__first; > } > sort_heap(__result_first, __result_real_last); > return __result_real_last; > } ># 2635 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_algo.h" 3 > template<typename _InputIter, typename _RandomAccessIter, typename _Compare> > _RandomAccessIter > partial_sort_copy(_InputIter __first, _InputIter __last, > _RandomAccessIter __result_first, > _RandomAccessIter __result_last, > _Compare __comp) > { > typedef typename iterator_traits<_InputIter>::value_type _InputValueType; > typedef typename iterator_traits<_RandomAccessIter>::value_type _OutputValueType; > typedef typename iterator_traits<_RandomAccessIter>::difference_type _DistanceType; > > > > > > > > > if (__result_first == __result_last) return __result_last; > _RandomAccessIter __result_real_last = __result_first; > while(__first != __last && __result_real_last != __result_last) { > *__result_real_last = *__first; > ++__result_real_last; > ++__first; > } > make_heap(__result_first, __result_real_last, __comp); > while (__first != __last) { > if (__comp(*__first, *__result_first)) > __adjust_heap(__result_first, _DistanceType(0), > _DistanceType(__result_real_last - __result_first), > _InputValueType(*__first), > __comp); > ++__first; > } > sort_heap(__result_first, __result_real_last, __comp); > return __result_real_last; > } ># 2688 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_algo.h" 3 > template<typename _RandomAccessIter> > void > nth_element(_RandomAccessIter __first, > _RandomAccessIter __nth, > _RandomAccessIter __last) > { > typedef typename iterator_traits<_RandomAccessIter>::value_type _ValueType; > > > > > > while (__last - __first > 3) { > _RandomAccessIter __cut = > __unguarded_partition(__first, __last, > _ValueType(__median(*__first, > *(__first + (__last - __first)/2), > *(__last - 1)))); > if (__cut <= __nth) > __first = __cut; > else > __last = __cut; > } > __insertion_sort(__first, __last); > } ># 2730 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_algo.h" 3 > template<typename _RandomAccessIter, typename _Compare> > void > nth_element(_RandomAccessIter __first, > _RandomAccessIter __nth, > _RandomAccessIter __last, > _Compare __comp) > { > typedef typename iterator_traits<_RandomAccessIter>::value_type _ValueType; > > > > > > > while (__last - __first > 3) { > _RandomAccessIter __cut = > __unguarded_partition(__first, __last, > _ValueType(__median(*__first, > *(__first + (__last - __first)/2), > *(__last - 1), > __comp)), > __comp); > if (__cut <= __nth) > __first = __cut; > else > __last = __cut; > } > __insertion_sort(__first, __last, __comp); > } ># 2770 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_algo.h" 3 > template<typename _ForwardIter, typename _Tp> > _ForwardIter > lower_bound(_ForwardIter __first, _ForwardIter __last, const _Tp& __val) > { > typedef typename iterator_traits<_ForwardIter>::value_type _ValueType; > typedef typename iterator_traits<_ForwardIter>::difference_type _DistanceType; > > > > > > > > > > > _DistanceType __len = distance(__first, __last); > _DistanceType __half; > _ForwardIter __middle; > > while (__len > 0) { > __half = __len >> 1; > __middle = __first; > advance(__middle, __half); > if (*__middle < __val) { > __first = __middle; > ++__first; > __len = __len - __half - 1; > } > else > __len = __half; > } > return __first; > } ># 2818 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_algo.h" 3 > template<typename _ForwardIter, typename _Tp, typename _Compare> > _ForwardIter > lower_bound(_ForwardIter __first, _ForwardIter __last, > const _Tp& __val, _Compare __comp) > { > typedef typename iterator_traits<_ForwardIter>::value_type _ValueType; > typedef typename iterator_traits<_ForwardIter>::difference_type _DistanceType; > > > > > > _DistanceType __len = distance(__first, __last); > _DistanceType __half; > _ForwardIter __middle; > > while (__len > 0) { > __half = __len >> 1; > __middle = __first; > advance(__middle, __half); > if (__comp(*__middle, __val)) { > __first = __middle; > ++__first; > __len = __len - __half - 1; > } > else > __len = __half; > } > return __first; > } ># 2858 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_algo.h" 3 > template<typename _ForwardIter, typename _Tp> > _ForwardIter > upper_bound(_ForwardIter __first, _ForwardIter __last, const _Tp& __val) > { > typedef typename iterator_traits<_ForwardIter>::value_type _ValueType; > typedef typename iterator_traits<_ForwardIter>::difference_type _DistanceType; > > > > > > > > _DistanceType __len = distance(__first, __last); > _DistanceType __half; > _ForwardIter __middle; > > while (__len > 0) { > __half = __len >> 1; > __middle = __first; > advance(__middle, __half); > if (__val < *__middle) > __len = __half; > else { > __first = __middle; > ++__first; > __len = __len - __half - 1; > } > } > return __first; > } ># 2903 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_algo.h" 3 > template<typename _ForwardIter, typename _Tp, typename _Compare> > _ForwardIter > upper_bound(_ForwardIter __first, _ForwardIter __last, > const _Tp& __val, _Compare __comp) > { > typedef typename iterator_traits<_ForwardIter>::value_type _ValueType; > typedef typename iterator_traits<_ForwardIter>::difference_type _DistanceType; > > > > > > _DistanceType __len = distance(__first, __last); > _DistanceType __half; > _ForwardIter __middle; > > while (__len > 0) { > __half = __len >> 1; > __middle = __first; > advance(__middle, __half); > if (__comp(__val, *__middle)) > __len = __half; > else { > __first = __middle; > ++__first; > __len = __len - __half - 1; > } > } > return __first; > } ># 2950 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_algo.h" 3 > template<typename _ForwardIter, typename _Tp> > pair<_ForwardIter, _ForwardIter> > equal_range(_ForwardIter __first, _ForwardIter __last, const _Tp& __val) > { > typedef typename iterator_traits<_ForwardIter>::value_type _ValueType; > typedef typename iterator_traits<_ForwardIter>::difference_type _DistanceType; > > > > > > > > _DistanceType __len = distance(__first, __last); > _DistanceType __half; > _ForwardIter __middle, __left, __right; > > while (__len > 0) { > __half = __len >> 1; > __middle = __first; > advance(__middle, __half); > if (*__middle < __val) { > __first = __middle; > ++__first; > __len = __len - __half - 1; > } > else if (__val < *__middle) > __len = __half; > else { > __left = lower_bound(__first, __middle, __val); > advance(__first, __len); > __right = upper_bound(++__middle, __first, __val); > return pair<_ForwardIter, _ForwardIter>(__left, __right); > } > } > return pair<_ForwardIter, _ForwardIter>(__first, __first); > } ># 3005 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_algo.h" 3 > template<typename _ForwardIter, typename _Tp, typename _Compare> > pair<_ForwardIter, _ForwardIter> > equal_range(_ForwardIter __first, _ForwardIter __last, const _Tp& __val, > _Compare __comp) > { > typedef typename iterator_traits<_ForwardIter>::value_type _ValueType; > typedef typename iterator_traits<_ForwardIter>::difference_type _DistanceType; > > > > > > > _DistanceType __len = distance(__first, __last); > _DistanceType __half; > _ForwardIter __middle, __left, __right; > > while (__len > 0) { > __half = __len >> 1; > __middle = __first; > advance(__middle, __half); > if (__comp(*__middle, __val)) { > __first = __middle; > ++__first; > __len = __len - __half - 1; > } > else if (__comp(__val, *__middle)) > __len = __half; > else { > __left = lower_bound(__first, __middle, __val, __comp); > advance(__first, __len); > __right = upper_bound(++__middle, __first, __val, __comp); > return pair<_ForwardIter, _ForwardIter>(__left, __right); > } > } > return pair<_ForwardIter, _ForwardIter>(__first, __first); > } ># 3054 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_algo.h" 3 > template<typename _ForwardIter, typename _Tp> > bool > binary_search(_ForwardIter __first, _ForwardIter __last, > const _Tp& __val) > { > > > > > > > > _ForwardIter __i = lower_bound(__first, __last, __val); > return __i != __last && !(__val < *__i); > } ># 3085 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_algo.h" 3 > template<typename _ForwardIter, typename _Tp, typename _Compare> > bool > binary_search(_ForwardIter __first, _ForwardIter __last, > const _Tp& __val, _Compare __comp) > { > > > > > > > > _ForwardIter __i = lower_bound(__first, __last, __val, __comp); > return __i != __last && !__comp(__val, *__i); > } ># 3117 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_algo.h" 3 > template<typename _InputIter1, typename _InputIter2, typename _OutputIter> > _OutputIter > merge(_InputIter1 __first1, _InputIter1 __last1, > _InputIter2 __first2, _InputIter2 __last2, > _OutputIter __result) > { > > > > > > > > > > > > while (__first1 != __last1 && __first2 != __last2) { > if (*__first2 < *__first1) { > *__result = *__first2; > ++__first2; > } > else { > *__result = *__first1; > ++__first1; > } > ++__result; > } > return copy(__first2, __last2, copy(__first1, __last1, __result)); > } ># 3168 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_algo.h" 3 > template<typename _InputIter1, typename _InputIter2, typename _OutputIter, > typename _Compare> > _OutputIter > merge(_InputIter1 __first1, _InputIter1 __last1, > _InputIter2 __first2, _InputIter2 __last2, > _OutputIter __result, _Compare __comp) > { > > > > > > > > > > > > > while (__first1 != __last1 && __first2 != __last2) { > if (__comp(*__first2, *__first1)) { > *__result = *__first2; > ++__first2; > } > else { > *__result = *__first1; > ++__first1; > } > ++__result; > } > return copy(__first2, __last2, copy(__first1, __last1, __result)); > } > > > > > > > template<typename _BidirectionalIter, typename _Distance> > void > __merge_without_buffer(_BidirectionalIter __first, > _BidirectionalIter __middle, > _BidirectionalIter __last, > _Distance __len1, _Distance __len2) > { > if (__len1 == 0 || __len2 == 0) > return; > if (__len1 + __len2 == 2) { > if (*__middle < *__first) > iter_swap(__first, __middle); > return; > } > _BidirectionalIter __first_cut = __first; > _BidirectionalIter __second_cut = __middle; > _Distance __len11 = 0; > _Distance __len22 = 0; > if (__len1 > __len2) { > __len11 = __len1 / 2; > advance(__first_cut, __len11); > __second_cut = lower_bound(__middle, __last, *__first_cut); > __len22 = distance(__middle, __second_cut); > } > else { > __len22 = __len2 / 2; > advance(__second_cut, __len22); > __first_cut = upper_bound(__first, __middle, *__second_cut); > __len11 = distance(__first, __first_cut); > } > rotate(__first_cut, __middle, __second_cut); > _BidirectionalIter __new_middle = __first_cut; > advance(__new_middle, distance(__middle, __second_cut)); > __merge_without_buffer(__first, __first_cut, __new_middle, > __len11, __len22); > __merge_without_buffer(__new_middle, __second_cut, __last, > __len1 - __len11, __len2 - __len22); > } > > > > > > > template<typename _BidirectionalIter, typename _Distance, typename _Compare> > void > __merge_without_buffer(_BidirectionalIter __first, > _BidirectionalIter __middle, > _BidirectionalIter __last, > _Distance __len1, _Distance __len2, > _Compare __comp) > { > if (__len1 == 0 || __len2 == 0) > return; > if (__len1 + __len2 == 2) { > if (__comp(*__middle, *__first)) > iter_swap(__first, __middle); > return; > } > _BidirectionalIter __first_cut = __first; > _BidirectionalIter __second_cut = __middle; > _Distance __len11 = 0; > _Distance __len22 = 0; > if (__len1 > __len2) { > __len11 = __len1 / 2; > advance(__first_cut, __len11); > __second_cut = lower_bound(__middle, __last, *__first_cut, __comp); > __len22 = distance(__middle, __second_cut); > } > else { > __len22 = __len2 / 2; > advance(__second_cut, __len22); > __first_cut = upper_bound(__first, __middle, *__second_cut, __comp); > __len11 = distance(__first, __first_cut); > } > rotate(__first_cut, __middle, __second_cut); > _BidirectionalIter __new_middle = __first_cut; > advance(__new_middle, distance(__middle, __second_cut)); > __merge_without_buffer(__first, __first_cut, __new_middle, > __len11, __len22, __comp); > __merge_without_buffer(__new_middle, __second_cut, __last, > __len1 - __len11, __len2 - __len22, __comp); > } > > > > > > > template<typename _BidirectionalIter1, typename _BidirectionalIter2, > typename _Distance> > _BidirectionalIter1 > __rotate_adaptive(_BidirectionalIter1 __first, > _BidirectionalIter1 __middle, > _BidirectionalIter1 __last, > _Distance __len1, _Distance __len2, > _BidirectionalIter2 __buffer, > _Distance __buffer_size) > { > _BidirectionalIter2 __buffer_end; > if (__len1 > __len2 && __len2 <= __buffer_size) { > __buffer_end = copy(__middle, __last, __buffer); > copy_backward(__first, __middle, __last); > return copy(__buffer, __buffer_end, __first); > } > else if (__len1 <= __buffer_size) { > __buffer_end = copy(__first, __middle, __buffer); > copy(__middle, __last, __first); > return copy_backward(__buffer, __buffer_end, __last); > } > else { > rotate(__first, __middle, __last); > advance(__first, distance(__middle, __last)); > return __first; > } > } > > > > > > > template<typename _BidirectionalIter1, typename _BidirectionalIter2, > typename _BidirectionalIter3> > _BidirectionalIter3 > __merge_backward(_BidirectionalIter1 __first1, _BidirectionalIter1 __last1, > _BidirectionalIter2 __first2, _BidirectionalIter2 __last2, > _BidirectionalIter3 __result) > { > if (__first1 == __last1) > return copy_backward(__first2, __last2, __result); > if (__first2 == __last2) > return copy_backward(__first1, __last1, __result); > --__last1; > --__last2; > while (true) { > if (*__last2 < *__last1) { > *--__result = *__last1; > if (__first1 == __last1) > return copy_backward(__first2, ++__last2, __result); > --__last1; > } > else { > *--__result = *__last2; > if (__first2 == __last2) > return copy_backward(__first1, ++__last1, __result); > --__last2; > } > } > } > > > > > > > template<typename _BidirectionalIter1, typename _BidirectionalIter2, > typename _BidirectionalIter3, typename _Compare> > _BidirectionalIter3 > __merge_backward(_BidirectionalIter1 __first1, _BidirectionalIter1 __last1, > _BidirectionalIter2 __first2, _BidirectionalIter2 __last2, > _BidirectionalIter3 __result, > _Compare __comp) > { > if (__first1 == __last1) > return copy_backward(__first2, __last2, __result); > if (__first2 == __last2) > return copy_backward(__first1, __last1, __result); > --__last1; > --__last2; > while (true) { > if (__comp(*__last2, *__last1)) { > *--__result = *__last1; > if (__first1 == __last1) > return copy_backward(__first2, ++__last2, __result); > --__last1; > } > else { > *--__result = *__last2; > if (__first2 == __last2) > return copy_backward(__first1, ++__last1, __result); > --__last2; > } > } > } > > > > > > > template<typename _BidirectionalIter, typename _Distance, typename _Pointer> > void > __merge_adaptive(_BidirectionalIter __first, > _BidirectionalIter __middle, > _BidirectionalIter __last, > _Distance __len1, _Distance __len2, > _Pointer __buffer, _Distance __buffer_size) > { > if (__len1 <= __len2 && __len1 <= __buffer_size) { > _Pointer __buffer_end = copy(__first, __middle, __buffer); > merge(__buffer, __buffer_end, __middle, __last, __first); > } > else if (__len2 <= __buffer_size) { > _Pointer __buffer_end = copy(__middle, __last, __buffer); > __merge_backward(__first, __middle, __buffer, __buffer_end, __last); > } > else { > _BidirectionalIter __first_cut = __first; > _BidirectionalIter __second_cut = __middle; > _Distance __len11 = 0; > _Distance __len22 = 0; > if (__len1 > __len2) { > __len11 = __len1 / 2; > advance(__first_cut, __len11); > __second_cut = lower_bound(__middle, __last, *__first_cut); > __len22 = distance(__middle, __second_cut); > } > else { > __len22 = __len2 / 2; > advance(__second_cut, __len22); > __first_cut = upper_bound(__first, __middle, *__second_cut); > __len11 = distance(__first, __first_cut); > } > _BidirectionalIter __new_middle = > __rotate_adaptive(__first_cut, __middle, __second_cut, > __len1 - __len11, __len22, __buffer, > __buffer_size); > __merge_adaptive(__first, __first_cut, __new_middle, __len11, > __len22, __buffer, __buffer_size); > __merge_adaptive(__new_middle, __second_cut, __last, __len1 - __len11, > __len2 - __len22, __buffer, __buffer_size); > } > } > > > > > > > template<typename _BidirectionalIter, typename _Distance, typename _Pointer, > typename _Compare> > void > __merge_adaptive(_BidirectionalIter __first, > _BidirectionalIter __middle, > _BidirectionalIter __last, > _Distance __len1, _Distance __len2, > _Pointer __buffer, _Distance __buffer_size, > _Compare __comp) > { > if (__len1 <= __len2 && __len1 <= __buffer_size) { > _Pointer __buffer_end = copy(__first, __middle, __buffer); > merge(__buffer, __buffer_end, __middle, __last, __first, __comp); > } > else if (__len2 <= __buffer_size) { > _Pointer __buffer_end = copy(__middle, __last, __buffer); > __merge_backward(__first, __middle, __buffer, __buffer_end, __last, > __comp); > } > else { > _BidirectionalIter __first_cut = __first; > _BidirectionalIter __second_cut = __middle; > _Distance __len11 = 0; > _Distance __len22 = 0; > if (__len1 > __len2) { > __len11 = __len1 / 2; > advance(__first_cut, __len11); > __second_cut = lower_bound(__middle, __last, *__first_cut, __comp); > __len22 = distance(__middle, __second_cut); > } > else { > __len22 = __len2 / 2; > advance(__second_cut, __len22); > __first_cut = upper_bound(__first, __middle, *__second_cut, __comp); > __len11 = distance(__first, __first_cut); > } > _BidirectionalIter __new_middle = > __rotate_adaptive(__first_cut, __middle, __second_cut, > __len1 - __len11, __len22, __buffer, > __buffer_size); > __merge_adaptive(__first, __first_cut, __new_middle, __len11, > __len22, __buffer, __buffer_size, __comp); > __merge_adaptive(__new_middle, __second_cut, __last, __len1 - __len11, > __len2 - __len22, __buffer, __buffer_size, __comp); > } > } ># 3510 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_algo.h" 3 > template<typename _BidirectionalIter> > void > inplace_merge(_BidirectionalIter __first, > _BidirectionalIter __middle, > _BidirectionalIter __last) > { > typedef typename iterator_traits<_BidirectionalIter>::value_type > _ValueType; > typedef typename iterator_traits<_BidirectionalIter>::difference_type > _DistanceType; > > > > > > > if (__first == __middle || __middle == __last) > return; > > _DistanceType __len1 = distance(__first, __middle); > _DistanceType __len2 = distance(__middle, __last); > > _Temporary_buffer<_BidirectionalIter, _ValueType> __buf(__first, __last); > if (__buf.begin() == 0) > __merge_without_buffer(__first, __middle, __last, __len1, __len2); > else > __merge_adaptive(__first, __middle, __last, __len1, __len2, > __buf.begin(), _DistanceType(__buf.size())); > } ># 3561 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_algo.h" 3 > template<typename _BidirectionalIter, typename _Compare> > void > inplace_merge(_BidirectionalIter __first, > _BidirectionalIter __middle, > _BidirectionalIter __last, > _Compare __comp) > { > typedef typename iterator_traits<_BidirectionalIter>::value_type > _ValueType; > typedef typename iterator_traits<_BidirectionalIter>::difference_type > _DistanceType; > > > > > > > > if (__first == __middle || __middle == __last) > return; > > _DistanceType __len1 = distance(__first, __middle); > _DistanceType __len2 = distance(__middle, __last); > > _Temporary_buffer<_BidirectionalIter, _ValueType> __buf(__first, __last); > if (__buf.begin() == 0) > __merge_without_buffer(__first, __middle, __last, __len1, __len2, __comp); > else > __merge_adaptive(__first, __middle, __last, __len1, __len2, > __buf.begin(), _DistanceType(__buf.size()), > __comp); > } > > > > > > > template<typename _InputIter1, typename _InputIter2> > bool > includes(_InputIter1 __first1, _InputIter1 __last1, > _InputIter2 __first2, _InputIter2 __last2) > { > > > > > > > > > > while (__first1 != __last1 && __first2 != __last2) > if (*__first2 < *__first1) > return false; > else if(*__first1 < *__first2) > ++__first1; > else > ++__first1, ++__first2; > > return __first2 == __last2; > } > > template<typename _InputIter1, typename _InputIter2, typename _Compare> > bool > includes(_InputIter1 __first1, _InputIter1 __last1, > _InputIter2 __first2, _InputIter2 __last2, _Compare __comp) > { > > > > > > > > > > > while (__first1 != __last1 && __first2 != __last2) > if (__comp(*__first2, *__first1)) > return false; > else if(__comp(*__first1, *__first2)) > ++__first1; > else > ++__first1, ++__first2; > > return __first2 == __last2; > } > > template<typename _InputIter1, typename _InputIter2, typename _OutputIter> > _OutputIter > set_union(_InputIter1 __first1, _InputIter1 __last1, > _InputIter2 __first2, _InputIter2 __last2, > _OutputIter __result) > { > > > > > > > > > > > > while (__first1 != __last1 && __first2 != __last2) { > if (*__first1 < *__first2) { > *__result = *__first1; > ++__first1; > } > else if (*__first2 < *__first1) { > *__result = *__first2; > ++__first2; > } > else { > *__result = *__first1; > ++__first1; > ++__first2; > } > ++__result; > } > return copy(__first2, __last2, copy(__first1, __last1, __result)); > } > > template<typename _InputIter1, typename _InputIter2, typename _OutputIter, > typename _Compare> > _OutputIter > set_union(_InputIter1 __first1, _InputIter1 __last1, > _InputIter2 __first2, _InputIter2 __last2, > _OutputIter __result, _Compare __comp) > { > > > > > > > > > > > > > while (__first1 != __last1 && __first2 != __last2) { > if (__comp(*__first1, *__first2)) { > *__result = *__first1; > ++__first1; > } > else if (__comp(*__first2, *__first1)) { > *__result = *__first2; > ++__first2; > } > else { > *__result = *__first1; > ++__first1; > ++__first2; > } > ++__result; > } > return copy(__first2, __last2, copy(__first1, __last1, __result)); > } > > template<typename _InputIter1, typename _InputIter2, typename _OutputIter> > _OutputIter > set_intersection(_InputIter1 __first1, _InputIter1 __last1, > _InputIter2 __first2, _InputIter2 __last2, > _OutputIter __result) > { > > > > > > > > > > > > while (__first1 != __last1 && __first2 != __last2) > if (*__first1 < *__first2) > ++__first1; > else if (*__first2 < *__first1) > ++__first2; > else { > *__result = *__first1; > ++__first1; > ++__first2; > ++__result; > } > return __result; > } > > template<typename _InputIter1, typename _InputIter2, typename _OutputIter, > typename _Compare> > _OutputIter > set_intersection(_InputIter1 __first1, _InputIter1 __last1, > _InputIter2 __first2, _InputIter2 __last2, > _OutputIter __result, _Compare __comp) > { > > > > > > > > > > > > > while (__first1 != __last1 && __first2 != __last2) > if (__comp(*__first1, *__first2)) > ++__first1; > else if (__comp(*__first2, *__first1)) > ++__first2; > else { > *__result = *__first1; > ++__first1; > ++__first2; > ++__result; > } > return __result; > } > > template<typename _InputIter1, typename _InputIter2, typename _OutputIter> > _OutputIter > set_difference(_InputIter1 __first1, _InputIter1 __last1, > _InputIter2 __first2, _InputIter2 __last2, > _OutputIter __result) > { > > > > > > > > > > > > while (__first1 != __last1 && __first2 != __last2) > if (*__first1 < *__first2) { > *__result = *__first1; > ++__first1; > ++__result; > } > else if (*__first2 < *__first1) > ++__first2; > else { > ++__first1; > ++__first2; > } > return copy(__first1, __last1, __result); > } > > template<typename _InputIter1, typename _InputIter2, typename _OutputIter, > typename _Compare> > _OutputIter > set_difference(_InputIter1 __first1, _InputIter1 __last1, > _InputIter2 __first2, _InputIter2 __last2, > _OutputIter __result, _Compare __comp) > { > > > > > > > > > > > > > while (__first1 != __last1 && __first2 != __last2) > if (__comp(*__first1, *__first2)) { > *__result = *__first1; > ++__first1; > ++__result; > } > else if (__comp(*__first2, *__first1)) > ++__first2; > else { > ++__first1; > ++__first2; > } > return copy(__first1, __last1, __result); > } > > template<typename _InputIter1, typename _InputIter2, typename _OutputIter> > _OutputIter > set_symmetric_difference(_InputIter1 __first1, _InputIter1 __last1, > _InputIter2 __first2, _InputIter2 __last2, > _OutputIter __result) > { > > > > > > > > > > > > while (__first1 != __last1 && __first2 != __last2) > if (*__first1 < *__first2) { > *__result = *__first1; > ++__first1; > ++__result; > } > else if (*__first2 < *__first1) { > *__result = *__first2; > ++__first2; > ++__result; > } > else { > ++__first1; > ++__first2; > } > return copy(__first2, __last2, copy(__first1, __last1, __result)); > } > > template<typename _InputIter1, typename _InputIter2, typename _OutputIter, > typename _Compare> > _OutputIter > set_symmetric_difference(_InputIter1 __first1, _InputIter1 __last1, > _InputIter2 __first2, _InputIter2 __last2, > _OutputIter __result, > _Compare __comp) > { > > > > > > > > > > > > > while (__first1 != __last1 && __first2 != __last2) > if (__comp(*__first1, *__first2)) { > *__result = *__first1; > ++__first1; > ++__result; > } > else if (__comp(*__first2, *__first1)) { > *__result = *__first2; > ++__first2; > ++__result; > } > else { > ++__first1; > ++__first2; > } > return copy(__first2, __last2, copy(__first1, __last1, __result)); > } > > > > > template<typename _ForwardIter> > _ForwardIter > max_element(_ForwardIter __first, _ForwardIter __last) > { > > > > > > if (__first == __last) return __first; > _ForwardIter __result = __first; > while (++__first != __last) > if (*__result < *__first) > __result = __first; > return __result; > } > > template<typename _ForwardIter, typename _Compare> > _ForwardIter > max_element(_ForwardIter __first, _ForwardIter __last, > _Compare __comp) > { > > > > > > > if (__first == __last) return __first; > _ForwardIter __result = __first; > while (++__first != __last) > if (__comp(*__result, *__first)) __result = __first; > return __result; > } > > template<typename _ForwardIter> > _ForwardIter > min_element(_ForwardIter __first, _ForwardIter __last) > { > > > > > > if (__first == __last) return __first; > _ForwardIter __result = __first; > while (++__first != __last) > if (*__first < *__result) > __result = __first; > return __result; > } > > template<typename _ForwardIter, typename _Compare> > _ForwardIter > min_element(_ForwardIter __first, _ForwardIter __last, > _Compare __comp) > { > > > > > > > if (__first == __last) return __first; > _ForwardIter __result = __first; > while (++__first != __last) > if (__comp(*__first, *__result)) > __result = __first; > return __result; > } > > > > > template<typename _BidirectionalIter> > bool > next_permutation(_BidirectionalIter __first, _BidirectionalIter __last) > { > > > > > > if (__first == __last) > return false; > _BidirectionalIter __i = __first; > ++__i; > if (__i == __last) > return false; > __i = __last; > --__i; > > for(;;) { > _BidirectionalIter __ii = __i; > --__i; > if (*__i < *__ii) { > _BidirectionalIter __j = __last; > while (!(*__i < *--__j)) > {} > iter_swap(__i, __j); > reverse(__ii, __last); > return true; > } > if (__i == __first) { > reverse(__first, __last); > return false; > } > } > } > > template<typename _BidirectionalIter, typename _Compare> > bool > next_permutation(_BidirectionalIter __first, _BidirectionalIter __last, > _Compare __comp) > { > > > > > > > if (__first == __last) > return false; > _BidirectionalIter __i = __first; > ++__i; > if (__i == __last) > return false; > __i = __last; > --__i; > > for(;;) { > _BidirectionalIter __ii = __i; > --__i; > if (__comp(*__i, *__ii)) { > _BidirectionalIter __j = __last; > while (!__comp(*__i, *--__j)) > {} > iter_swap(__i, __j); > reverse(__ii, __last); > return true; > } > if (__i == __first) { > reverse(__first, __last); > return false; > } > } > } > > template<typename _BidirectionalIter> > bool > prev_permutation(_BidirectionalIter __first, _BidirectionalIter __last) > { > > > > > > if (__first == __last) > return false; > _BidirectionalIter __i = __first; > ++__i; > if (__i == __last) > return false; > __i = __last; > --__i; > > for(;;) { > _BidirectionalIter __ii = __i; > --__i; > if (*__ii < *__i) { > _BidirectionalIter __j = __last; > while (!(*--__j < *__i)) > {} > iter_swap(__i, __j); > reverse(__ii, __last); > return true; > } > if (__i == __first) { > reverse(__first, __last); > return false; > } > } > } > > template<typename _BidirectionalIter, typename _Compare> > bool > prev_permutation(_BidirectionalIter __first, _BidirectionalIter __last, > _Compare __comp) > { > > > > > > > if (__first == __last) > return false; > _BidirectionalIter __i = __first; > ++__i; > if (__i == __last) > return false; > __i = __last; > --__i; > > for(;;) { > _BidirectionalIter __ii = __i; > --__i; > if (__comp(*__ii, *__i)) { > _BidirectionalIter __j = __last; > while (!__comp(*--__j, *__i)) > {} > iter_swap(__i, __j); > reverse(__ii, __last); > return true; > } > if (__i == __first) { > reverse(__first, __last); > return false; > } > } > } > > > > template<typename _InputIter, typename _ForwardIter> > _InputIter > find_first_of(_InputIter __first1, _InputIter __last1, > _ForwardIter __first2, _ForwardIter __last2) > { > > > > > > > > for ( ; __first1 != __last1; ++__first1) > for (_ForwardIter __iter = __first2; __iter != __last2; ++__iter) > if (*__first1 == *__iter) > return __first1; > return __last1; > } > > template<typename _InputIter, typename _ForwardIter, typename _BinaryPredicate> > _InputIter > find_first_of(_InputIter __first1, _InputIter __last1, > _ForwardIter __first2, _ForwardIter __last2, > _BinaryPredicate __comp) > { > > > > > > > > > > > for ( ; __first1 != __last1; ++__first1) > for (_ForwardIter __iter = __first2; __iter != __last2; ++__iter) > if (__comp(*__first1, *__iter)) > return __first1; > return __last1; > } ># 4203 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_algo.h" 3 > template<typename _ForwardIter1, typename _ForwardIter2> > _ForwardIter1 > __find_end(_ForwardIter1 __first1, _ForwardIter1 __last1, > _ForwardIter2 __first2, _ForwardIter2 __last2, > forward_iterator_tag, forward_iterator_tag) > { > if (__first2 == __last2) > return __last1; > else { > _ForwardIter1 __result = __last1; > while (1) { > _ForwardIter1 __new_result > = search(__first1, __last1, __first2, __last2); > if (__new_result == __last1) > return __result; > else { > __result = __new_result; > __first1 = __new_result; > ++__first1; > } > } > } > } > > template<typename _ForwardIter1, typename _ForwardIter2, > typename _BinaryPredicate> > _ForwardIter1 > __find_end(_ForwardIter1 __first1, _ForwardIter1 __last1, > _ForwardIter2 __first2, _ForwardIter2 __last2, > forward_iterator_tag, forward_iterator_tag, > _BinaryPredicate __comp) > { > if (__first2 == __last2) > return __last1; > else { > _ForwardIter1 __result = __last1; > while (1) { > _ForwardIter1 __new_result > = search(__first1, __last1, __first2, __last2, __comp); > if (__new_result == __last1) > return __result; > else { > __result = __new_result; > __first1 = __new_result; > ++__first1; > } > } > } > } > > > template<typename _BidirectionalIter1, typename _BidirectionalIter2> > _BidirectionalIter1 > __find_end(_BidirectionalIter1 __first1, _BidirectionalIter1 __last1, > _BidirectionalIter2 __first2, _BidirectionalIter2 __last2, > bidirectional_iterator_tag, bidirectional_iterator_tag) > { > > > > > typedef reverse_iterator<_BidirectionalIter1> _RevIter1; > typedef reverse_iterator<_BidirectionalIter2> _RevIter2; > > _RevIter1 __rlast1(__first1); > _RevIter2 __rlast2(__first2); > _RevIter1 __rresult = search(_RevIter1(__last1), __rlast1, > _RevIter2(__last2), __rlast2); > > if (__rresult == __rlast1) > return __last1; > else { > _BidirectionalIter1 __result = __rresult.base(); > advance(__result, -distance(__first2, __last2)); > return __result; > } > } > > template<typename _BidirectionalIter1, typename _BidirectionalIter2, > typename _BinaryPredicate> > _BidirectionalIter1 > __find_end(_BidirectionalIter1 __first1, _BidirectionalIter1 __last1, > _BidirectionalIter2 __first2, _BidirectionalIter2 __last2, > bidirectional_iterator_tag, bidirectional_iterator_tag, > _BinaryPredicate __comp) > { > > > > > typedef reverse_iterator<_BidirectionalIter1> _RevIter1; > typedef reverse_iterator<_BidirectionalIter2> _RevIter2; > > _RevIter1 __rlast1(__first1); > _RevIter2 __rlast2(__first2); > _RevIter1 __rresult = search(_RevIter1(__last1), __rlast1, > _RevIter2(__last2), __rlast2, > __comp); > > if (__rresult == __rlast1) > return __last1; > else { > _BidirectionalIter1 __result = __rresult.base(); > advance(__result, -distance(__first2, __last2)); > return __result; > } > } > > > > template<typename _ForwardIter1, typename _ForwardIter2> > inline _ForwardIter1 > find_end(_ForwardIter1 __first1, _ForwardIter1 __last1, > _ForwardIter2 __first2, _ForwardIter2 __last2) > { > > > > > > > > return __find_end(__first1, __last1, __first2, __last2, > __iterator_category(__first1), > __iterator_category(__first2)); > } > > template<typename _ForwardIter1, typename _ForwardIter2, > typename _BinaryPredicate> > inline _ForwardIter1 > find_end(_ForwardIter1 __first1, _ForwardIter1 __last1, > _ForwardIter2 __first2, _ForwardIter2 __last2, > _BinaryPredicate __comp) > { > > > > > > > > return __find_end(__first1, __last1, __first2, __last2, > __iterator_category(__first1), > __iterator_category(__first2), > __comp); > } > >} ># 70 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/algorithm" 2 3 ># 57 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/string" 2 3 ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/basic_string.tcc" 1 3 ># 44 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/basic_string.tcc" 3 > ># 45 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/basic_string.tcc" 3 > >namespace std >{ > template<typename _CharT, typename _Traits, typename _Alloc> > const typename basic_string<_CharT, _Traits, _Alloc>::size_type > basic_string<_CharT, _Traits, _Alloc>:: > _Rep::_S_max_size = (((npos - sizeof(_Rep))/sizeof(_CharT)) - 1) / 4; > > template<typename _CharT, typename _Traits, typename _Alloc> > const _CharT > basic_string<_CharT, _Traits, _Alloc>:: > _Rep::_S_terminal = _CharT(); > > template<typename _CharT, typename _Traits, typename _Alloc> > const typename basic_string<_CharT, _Traits, _Alloc>::size_type > basic_string<_CharT, _Traits, _Alloc>::npos; > > > > template<typename _CharT, typename _Traits, typename _Alloc> > typename basic_string<_CharT, _Traits, _Alloc>::size_type > basic_string<_CharT, _Traits, _Alloc>::_S_empty_rep_storage[ > (sizeof(_Rep) + sizeof(_CharT) + sizeof(size_type) - 1)/sizeof(size_type)]; > > > > > > template<typename _CharT, typename _Traits, typename _Alloc> > template<typename _InIter> > _CharT* > basic_string<_CharT, _Traits, _Alloc>:: > _S_construct(_InIter __beg, _InIter __end, const _Alloc& __a, > input_iterator_tag) > { > if (__beg == __end && __a == _Alloc()) > return _S_empty_rep()._M_refcopy(); > > _CharT __buf[100]; > size_type __i = 0; > while (__beg != __end && __i < sizeof(__buf) / sizeof(_CharT)) > { > __buf[__i++] = *__beg; > ++__beg; > } > _Rep* __r = _Rep::_S_create(__i, __a); > traits_type::copy(__r->_M_refdata(), __buf, __i); > __r->_M_length = __i; > if (true) > { > > > > for (;;) > { > _CharT* __p = __r->_M_refdata() + __r->_M_length; > _CharT* __last = __r->_M_refdata() + __r->_M_capacity; > for (;;) > { > if (__beg == __end) > { > __r->_M_length = __p - __r->_M_refdata(); > *__p = _Rep::_S_terminal; > return __r->_M_refdata(); > } > if (__p == __last) > break; > *__p++ = *__beg; > ++__beg; > } > > size_type __len = __p - __r->_M_refdata(); > _Rep* __another = _Rep::_S_create(__len + 1, __a); > traits_type::copy(__another->_M_refdata(), > __r->_M_refdata(), __len); > __r->_M_destroy(__a); > __r = __another; > __r->_M_length = __len; > } > } > if (false) > { > __r->_M_destroy(__a); > ; > } > return 0; > } > > template<typename _CharT, typename _Traits, typename _Alloc> > template <class _InIter> > _CharT* > basic_string<_CharT, _Traits, _Alloc>:: > _S_construct(_InIter __beg, _InIter __end, const _Alloc& __a, > forward_iterator_tag) > { > if (__beg == __end && __a == _Alloc()) > return _S_empty_rep()._M_refcopy(); > > > if (__builtin_expect(__beg == _InIter(), 0)) > __throw_logic_error("attempt to create string with null pointer"); > > size_type __dnew = static_cast<size_type>(std::distance(__beg, __end)); > > > _Rep* __r = _Rep::_S_create(__dnew, __a); > if (true) > { _S_copy_chars(__r->_M_refdata(), __beg, __end); } > if (false) > { > __r->_M_destroy(__a); > ; > } > __r->_M_length = __dnew; > > __r->_M_refdata()[__dnew] = _Rep::_S_terminal; > return __r->_M_refdata(); > } > > template<typename _CharT, typename _Traits, typename _Alloc> > _CharT* > basic_string<_CharT, _Traits, _Alloc>:: > _S_construct(size_type __n, _CharT __c, const _Alloc& __a) > { > if (__n == 0 && __a == _Alloc()) > return _S_empty_rep()._M_refcopy(); > > > _Rep* __r = _Rep::_S_create(__n, __a); > if (true) > { > if (__n) > traits_type::assign(__r->_M_refdata(), __n, __c); > } > if (false) > { > __r->_M_destroy(__a); > ; > } > __r->_M_length = __n; > __r->_M_refdata()[__n] = _Rep::_S_terminal; > return __r->_M_refdata(); > } > > template<typename _CharT, typename _Traits, typename _Alloc> > basic_string<_CharT, _Traits, _Alloc>:: > basic_string(const basic_string& __str) > : _M_dataplus(__str._M_rep()->_M_grab(_Alloc(), __str.get_allocator()), > __str.get_allocator()) > { } > > template<typename _CharT, typename _Traits, typename _Alloc> > basic_string<_CharT, _Traits, _Alloc>:: > basic_string(const _Alloc& __a) > : _M_dataplus(_S_construct(size_type(), _CharT(), __a), __a) > { } > > template<typename _CharT, typename _Traits, typename _Alloc> > basic_string<_CharT, _Traits, _Alloc>:: > basic_string(const basic_string& __str, size_type __pos, size_type __n) > : _M_dataplus(_S_construct(__str._M_check(__pos), > __str._M_fold(__pos, __n), _Alloc()), _Alloc()) > { } > > template<typename _CharT, typename _Traits, typename _Alloc> > basic_string<_CharT, _Traits, _Alloc>:: > basic_string(const basic_string& __str, size_type __pos, > size_type __n, const _Alloc& __a) > : _M_dataplus(_S_construct(__str._M_check(__pos), > __str._M_fold(__pos, __n), __a), __a) > { } > > template<typename _CharT, typename _Traits, typename _Alloc> > basic_string<_CharT, _Traits, _Alloc>:: > basic_string(const _CharT* __s, size_type __n, const _Alloc& __a) > : _M_dataplus(_S_construct(__s, __s + __n, __a), __a) > { } > > template<typename _CharT, typename _Traits, typename _Alloc> > basic_string<_CharT, _Traits, _Alloc>:: > basic_string(const _CharT* __s, const _Alloc& __a) > : _M_dataplus(_S_construct(__s, __s ? __s + traits_type::length(__s) : > __s + npos, __a), __a) > { } > > template<typename _CharT, typename _Traits, typename _Alloc> > basic_string<_CharT, _Traits, _Alloc>:: > basic_string(size_type __n, _CharT __c, const _Alloc& __a) > : _M_dataplus(_S_construct(__n, __c, __a), __a) > { } > > template<typename _CharT, typename _Traits, typename _Alloc> > template<typename _InputIter> > basic_string<_CharT, _Traits, _Alloc>:: > basic_string(_InputIter __beg, _InputIter __end, const _Alloc& __a) > : _M_dataplus(_S_construct(__beg, __end, __a), __a) > { } > > template<typename _CharT, typename _Traits, typename _Alloc> > basic_string<_CharT, _Traits, _Alloc>& > basic_string<_CharT, _Traits, _Alloc>::assign(const basic_string& __str) > { > if (_M_rep() != __str._M_rep()) > { > > allocator_type __a = this->get_allocator(); > _CharT* __tmp = __str._M_rep()->_M_grab(__a, __str.get_allocator()); > _M_rep()->_M_dispose(__a); > _M_data(__tmp); > } > return *this; > } > > template<typename _CharT, typename _Traits, typename _Alloc> > basic_string<_CharT, _Traits, _Alloc>& > basic_string<_CharT, _Traits, _Alloc>:: > assign(const basic_string& __str, size_type __pos, size_type __n) > { > const size_type __strsize = __str.size(); > if (__pos > __strsize) > __throw_out_of_range("basic_string::assign"); > const bool __testn = __n < __strsize - __pos; > const size_type __newsize = __testn ? __n : __strsize - __pos; > return this->assign(__str._M_data() + __pos, __newsize); > } > > template<typename _CharT, typename _Traits, typename _Alloc> > basic_string<_CharT, _Traits, _Alloc>& > basic_string<_CharT, _Traits, _Alloc>:: > assign(const _CharT* __s, size_type __n) > { > if (__n > this->max_size()) > __throw_length_error("basic_string::assign"); > if (_M_rep()->_M_is_shared() || less<const _CharT*>()(__s, _M_data()) > || less<const _CharT*>()(_M_data() + this->size(), __s)) > return _M_replace_safe(_M_ibegin(), _M_iend(), __s, __s + __n); > else > { > > const size_type __pos = __s - _M_data(); > if (__pos >= __n) > traits_type::copy(_M_data(), __s, __n); > else if (__pos) > traits_type::move(_M_data(), __s, __n); > _M_rep()->_M_length = __n; > _M_data()[__n] = _Rep::_S_terminal; > return *this; > } > } > > template<typename _CharT, typename _Traits, typename _Alloc> > basic_string<_CharT, _Traits, _Alloc>& > basic_string<_CharT, _Traits, _Alloc>:: > insert(size_type __pos1, const basic_string& __str, > size_type __pos2, size_type __n) > { > const size_type __strsize = __str.size(); > if (__pos2 > __strsize) > __throw_out_of_range("basic_string::insert"); > const bool __testn = __n < __strsize - __pos2; > const size_type __newsize = __testn ? __n : __strsize - __pos2; > return this->insert(__pos1, __str._M_data() + __pos2, __newsize); > } > > template<typename _CharT, typename _Traits, typename _Alloc> > basic_string<_CharT, _Traits, _Alloc>& > basic_string<_CharT, _Traits, _Alloc>:: > insert(size_type __pos, const _CharT* __s, size_type __n) > { > const size_type __size = this->size(); > if (__pos > __size) > __throw_out_of_range("basic_string::insert"); > if (__size > this->max_size() - __n) > __throw_length_error("basic_string::insert"); > if (_M_rep()->_M_is_shared() || less<const _CharT*>()(__s, _M_data()) > || less<const _CharT*>()(_M_data() + __size, __s)) > return _M_replace_safe(_M_ibegin() + __pos, _M_ibegin() + __pos, > __s, __s + __n); > else > { > > > > const size_type __off = __s - _M_data(); > _M_mutate(__pos, 0, __n); > __s = _M_data() + __off; > _CharT* __p = _M_data() + __pos; > if (__s + __n <= __p) > traits_type::copy(__p, __s, __n); > else if (__s >= __p) > traits_type::copy(__p, __s + __n, __n); > else > { > traits_type::copy(__p, __s, __p - __s); > traits_type::copy(__p + (__p-__s), __p + __n, __n - (__p-__s)); > } > return *this; > } > } > > template<typename _CharT, typename _Traits, typename _Alloc> > basic_string<_CharT, _Traits, _Alloc>& > basic_string<_CharT, _Traits, _Alloc>:: > replace(size_type __pos, size_type __n1, const _CharT* __s, > size_type __n2) > { > const size_type __size = this->size(); > if (__pos > __size) > __throw_out_of_range("basic_string::replace"); > const bool __testn1 = __n1 < __size - __pos; > const size_type __foldn1 = __testn1 ? __n1 : __size - __pos; > if (__size - __foldn1 > this->max_size() - __n2) > __throw_length_error("basic_string::replace"); > if (_M_rep()->_M_is_shared() || less<const _CharT*>()(__s, _M_data()) > || less<const _CharT*>()(_M_data() + __size, __s)) > return _M_replace_safe(_M_ibegin() + __pos, > _M_ibegin() + __pos + __foldn1, __s, __s + __n2); > > else > return _M_replace(_M_ibegin() + __pos, _M_ibegin() + __pos + __foldn1, > __s, __s + __n2, > typename iterator_traits<const _CharT*>::iterator_category()); > } > > template<typename _CharT, typename _Traits, typename _Alloc> > void > basic_string<_CharT, _Traits, _Alloc>::_Rep:: > _M_destroy(const _Alloc& __a) throw () > { > size_type __size = sizeof(_Rep) + (_M_capacity + 1) * sizeof(_CharT); > _Raw_bytes_alloc(__a).deallocate(reinterpret_cast<char*>(this), __size); > } > > template<typename _CharT, typename _Traits, typename _Alloc> > void > basic_string<_CharT, _Traits, _Alloc>::_M_leak_hard() > { > if (_M_rep()->_M_is_shared()) > _M_mutate(0, 0, 0); > _M_rep()->_M_set_leaked(); > } > > > > > > > > template<typename _CharT, typename _Traits, typename _Alloc> > void > basic_string<_CharT, _Traits, _Alloc>:: > _M_mutate(size_type __pos, size_type __len1, size_type __len2) > { > size_type __old_size = this->size(); > const size_type __new_size = __old_size + __len2 - __len1; > const _CharT* __src = _M_data() + __pos + __len1; > const size_type __how_much = __old_size - __pos - __len1; > > if (_M_rep()->_M_is_shared() || __new_size > capacity()) > { > > allocator_type __a = get_allocator(); > > > const size_type __pagesize = 4096; > const size_type __malloc_header_size = 4 * sizeof (void*); > > const size_type __page_capacity = (__pagesize - __malloc_header_size > - sizeof(_Rep) - sizeof(_CharT)) > / sizeof(_CharT); > _Rep* __r; > if (__new_size > capacity() && __new_size > __page_capacity) > > __r = _Rep::_S_create(__new_size > 2*capacity() ? > __new_size : 2*capacity(), __a); > else > __r = _Rep::_S_create(__new_size, __a); > if (true) > { > if (__pos) > traits_type::copy(__r->_M_refdata(), _M_data(), __pos); > if (__how_much) > traits_type::copy(__r->_M_refdata() + __pos + __len2, > __src, __how_much); > } > if (false) > { > __r->_M_dispose(get_allocator()); > ; > } > _M_rep()->_M_dispose(__a); > _M_data(__r->_M_refdata()); > } > else if (__how_much && __len1 != __len2) > { > > traits_type::move(_M_data() + __pos + __len2, __src, __how_much); > } > _M_rep()->_M_set_sharable(); > _M_rep()->_M_length = __new_size; > _M_data()[__new_size] = _Rep::_S_terminal; > > } > > template<typename _CharT, typename _Traits, typename _Alloc> > void > basic_string<_CharT, _Traits, _Alloc>::reserve(size_type __res) > { > if (__res > this->capacity() || _M_rep()->_M_is_shared()) > { > if (__res > this->max_size()) > __throw_length_error("basic_string::reserve"); > > if (__res < this->size()) > __res = this->size(); > allocator_type __a = get_allocator(); > _CharT* __tmp = _M_rep()->_M_clone(__a, __res - this->size()); > _M_rep()->_M_dispose(__a); > _M_data(__tmp); > } > } > > template<typename _CharT, typename _Traits, typename _Alloc> > void basic_string<_CharT, _Traits, _Alloc>::swap(basic_string& __s) > { > if (_M_rep()->_M_is_leaked()) > _M_rep()->_M_set_sharable(); > if (__s._M_rep()->_M_is_leaked()) > __s._M_rep()->_M_set_sharable(); > if (this->get_allocator() == __s.get_allocator()) > { > _CharT* __tmp = _M_data(); > _M_data(__s._M_data()); > __s._M_data(__tmp); > } > > else > { > basic_string __tmp1(_M_ibegin(), _M_iend(), __s.get_allocator()); > basic_string __tmp2(__s._M_ibegin(), __s._M_iend(), > this->get_allocator()); > *this = __tmp2; > __s = __tmp1; > } > } > > template<typename _CharT, typename _Traits, typename _Alloc> > typename basic_string<_CharT, _Traits, _Alloc>::_Rep* > basic_string<_CharT, _Traits, _Alloc>::_Rep:: > _S_create(size_t __capacity, const _Alloc& __alloc) > { > typedef basic_string<_CharT, _Traits, _Alloc> __string_type; > > > if (__capacity > _S_max_size) > > > > __throw_length_error("basic_string::_S_create"); > > > > > size_t __size = (__capacity + 1) * sizeof(_CharT) + sizeof(_Rep); ># 532 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/basic_string.tcc" 3 > const size_t __pagesize = 4096; > const size_t __subpagesize = 128; > const size_t __malloc_header_size = 4 * sizeof (void*); > if ((__size + __malloc_header_size) > __pagesize) > { > size_t __extra = > (__pagesize - ((__size + __malloc_header_size) % __pagesize)) > % __pagesize; > __capacity += __extra / sizeof(_CharT); > __size = (__capacity + 1) * sizeof(_CharT) + sizeof(_Rep); > } > else if (__size > __subpagesize) > { > size_t __extra = > (__subpagesize - ((__size + __malloc_header_size) % __subpagesize)) > % __subpagesize; > __capacity += __extra / sizeof(_CharT); > __size = (__capacity + 1) * sizeof(_CharT) + sizeof(_Rep); > } > > > > void* __place = _Raw_bytes_alloc(__alloc).allocate(__size); > _Rep *__p = new (__place) _Rep; > __p->_M_capacity = __capacity; > __p->_M_set_sharable(); > __p->_M_length = 0; > return __p; > } > > template<typename _CharT, typename _Traits, typename _Alloc> > _CharT* > basic_string<_CharT, _Traits, _Alloc>::_Rep:: > _M_clone(const _Alloc& __alloc, size_type __res) > { > > const size_type __requested_cap = _M_length + __res; > > const size_type __pagesize = 4096; > const size_type __malloc_header_size = 4 * sizeof (void*); > > const size_type __page_capacity = > (__pagesize - __malloc_header_size - sizeof(_Rep) - sizeof(_CharT)) > / sizeof(_CharT); > _Rep* __r; > if (__requested_cap > _M_capacity && __requested_cap > __page_capacity) > > __r = _Rep::_S_create(__requested_cap > 2*_M_capacity ? > __requested_cap : 2*_M_capacity, __alloc); > else > __r = _Rep::_S_create(__requested_cap, __alloc); > > if (_M_length) > { > if (true) > { traits_type::copy(__r->_M_refdata(), _M_refdata(), _M_length); } > if (false) > { > __r->_M_destroy(__alloc); > ; > } > } > __r->_M_length = _M_length; > __r->_M_refdata()[_M_length] = _Rep::_S_terminal; > return __r->_M_refdata(); > } > > template<typename _CharT, typename _Traits, typename _Alloc> > void > basic_string<_CharT, _Traits, _Alloc>::resize(size_type __n, _CharT __c) > { > if (__n > max_size()) > __throw_length_error("basic_string::resize"); > size_type __size = this->size(); > if (__size < __n) > this->append(__n - __size, __c); > else if (__n < __size) > this->erase(__n); > > } > > > > > template<typename _CharT, typename _Traits, typename _Alloc> > template<typename _InputIter> > basic_string<_CharT, _Traits, _Alloc>& > basic_string<_CharT, _Traits, _Alloc>:: > _M_replace(iterator __i1, iterator __i2, _InputIter __k1, > _InputIter __k2, input_iterator_tag) > { > > basic_string __s(__k1, __k2); > return _M_replace_safe(__i1, __i2, __s._M_ibegin(), __s._M_iend()); > } > > > > > template<typename _CharT, typename _Traits, typename _Alloc> > template<typename _ForwardIter> > basic_string<_CharT, _Traits, _Alloc>& > basic_string<_CharT, _Traits, _Alloc>:: > _M_replace_safe(iterator __i1, iterator __i2, _ForwardIter __k1, > _ForwardIter __k2) > { > size_type __dnew = static_cast<size_type>(std::distance(__k1, __k2)); > size_type __dold = __i2 - __i1; > size_type __dmax = this->max_size(); > > if (__dmax <= __dnew) > __throw_length_error("basic_string::_M_replace"); > size_type __off = __i1 - _M_ibegin(); > _M_mutate(__off, __dold, __dnew); > > > if (__dnew) > _S_copy_chars(_M_data() + __off, __k1, __k2); > > return *this; > } > > template<typename _CharT, typename _Traits, typename _Alloc> > basic_string<_CharT, _Traits, _Alloc>& > basic_string<_CharT, _Traits, _Alloc>:: > replace(size_type __pos1, size_type __n1, const basic_string& __str, > size_type __pos2, size_type __n2) > { > const size_type __strsize = __str.size(); > if (__pos2 > __strsize) > __throw_out_of_range("basic_string::replace"); > const bool __testn2 = __n2 < __strsize - __pos2; > const size_type __foldn2 = __testn2 ? __n2 : __strsize - __pos2; > return this->replace(__pos1, __n1, > __str._M_data() + __pos2, __foldn2); > } > > template<typename _CharT, typename _Traits, typename _Alloc> > basic_string<_CharT, _Traits, _Alloc>& > basic_string<_CharT, _Traits, _Alloc>:: > append(const basic_string& __str) > { > > > > size_type __size = __str.size(); > size_type __len = __size + this->size(); > if (__len > this->capacity()) > this->reserve(__len); > return _M_replace_safe(_M_iend(), _M_iend(), __str._M_ibegin(), > __str._M_iend()); > } > > template<typename _CharT, typename _Traits, typename _Alloc> > basic_string<_CharT, _Traits, _Alloc>& > basic_string<_CharT, _Traits, _Alloc>:: > append(const basic_string& __str, size_type __pos, size_type __n) > { > > > > size_type __len = std::min(size_type(__str.size() - __pos), > __n) + this->size(); > if (__len > this->capacity()) > this->reserve(__len); > return _M_replace_safe(_M_iend(), _M_iend(), __str._M_check(__pos), > __str._M_fold(__pos, __n)); > } > > template<typename _CharT, typename _Traits, typename _Alloc> > basic_string<_CharT, _Traits, _Alloc>& > basic_string<_CharT, _Traits, _Alloc>:: > append(const _CharT* __s, size_type __n) > { > size_type __len = __n + this->size(); > if (__len > this->capacity()) > this->reserve(__len); > return _M_replace_safe(_M_iend(), _M_iend(), __s, __s + __n); > } > > template<typename _CharT, typename _Traits, typename _Alloc> > basic_string<_CharT, _Traits, _Alloc>& > basic_string<_CharT, _Traits, _Alloc>:: > append(size_type __n, _CharT __c) > { > size_type __len = __n + this->size(); > if (__len > this->capacity()) > this->reserve(__len); > return this->replace(_M_iend(), _M_iend(), __n, __c); > } > > template<typename _CharT, typename _Traits, typename _Alloc> > basic_string<_CharT, _Traits, _Alloc> > operator+(const _CharT* __lhs, > const basic_string<_CharT, _Traits, _Alloc>& __rhs) > { > typedef basic_string<_CharT, _Traits, _Alloc> __string_type; > typedef typename __string_type::size_type __size_type; > __size_type __len = _Traits::length(__lhs); > __string_type __str; > __str.reserve(__len + __rhs.size()); > __str.append(__lhs, __lhs + __len); > __str.append(__rhs); > return __str; > } > > template<typename _CharT, typename _Traits, typename _Alloc> > basic_string<_CharT, _Traits, _Alloc> > operator+(_CharT __lhs, const basic_string<_CharT, _Traits, _Alloc>& __rhs) > { > typedef basic_string<_CharT, _Traits, _Alloc> __string_type; > typedef typename __string_type::size_type __size_type; > __string_type __str; > __size_type __len = __rhs.size(); > __str.reserve(__len + 1); > __str.append(__size_type(1), __lhs); > __str.append(__rhs); > return __str; > } > > template<typename _CharT, typename _Traits, typename _Alloc> > basic_string<_CharT, _Traits, _Alloc>& > basic_string<_CharT, _Traits, _Alloc>:: > replace(iterator __i1, iterator __i2, size_type __n2, _CharT __c) > { > size_type __n1 = __i2 - __i1; > size_type __off1 = __i1 - _M_ibegin(); > if (max_size() - (this->size() - __n1) <= __n2) > __throw_length_error("basic_string::replace"); > _M_mutate (__off1, __n1, __n2); > > if (__n2) > traits_type::assign(_M_data() + __off1, __n2, __c); > return *this; > } > > template<typename _CharT, typename _Traits, typename _Alloc> > typename basic_string<_CharT, _Traits, _Alloc>::size_type > basic_string<_CharT, _Traits, _Alloc>:: > copy(_CharT* __s, size_type __n, size_type __pos) const > { > if (__pos > this->size()) > __throw_out_of_range("basic_string::copy"); > > if (__n > this->size() - __pos) > __n = this->size() - __pos; > > traits_type::copy(__s, _M_data() + __pos, __n); > > return __n; > } > > template<typename _CharT, typename _Traits, typename _Alloc> > typename basic_string<_CharT, _Traits, _Alloc>::size_type > basic_string<_CharT, _Traits, _Alloc>:: > find(const _CharT* __s, size_type __pos, size_type __n) const > { > size_type __size = this->size(); > size_t __xpos = __pos; > const _CharT* __data = _M_data(); > for (; __xpos + __n <= __size; ++__xpos) > if (traits_type::compare(__data + __xpos, __s, __n) == 0) > return __xpos; > return npos; > } > > template<typename _CharT, typename _Traits, typename _Alloc> > typename basic_string<_CharT, _Traits, _Alloc>::size_type > basic_string<_CharT, _Traits, _Alloc>:: > find(_CharT __c, size_type __pos) const > { > size_type __size = this->size(); > size_type __ret = npos; > if (__pos < __size) > { > const _CharT* __data = _M_data(); > size_type __n = __size - __pos; > const _CharT* __p = traits_type::find(__data + __pos, __n, __c); > if (__p) > __ret = __p - __data; > } > return __ret; > } > > > template<typename _CharT, typename _Traits, typename _Alloc> > typename basic_string<_CharT, _Traits, _Alloc>::size_type > basic_string<_CharT, _Traits, _Alloc>:: > rfind(const _CharT* __s, size_type __pos, size_type __n) const > { > size_type __size = this->size(); > if (__n <= __size) > { > __pos = std::min(size_type(__size - __n), __pos); > const _CharT* __data = _M_data(); > do > { > if (traits_type::compare(__data + __pos, __s, __n) == 0) > return __pos; > } > while (__pos-- > 0); > } > return npos; > } > > template<typename _CharT, typename _Traits, typename _Alloc> > typename basic_string<_CharT, _Traits, _Alloc>::size_type > basic_string<_CharT, _Traits, _Alloc>:: > rfind(_CharT __c, size_type __pos) const > { > size_type __size = this->size(); > if (__size) > { > size_t __xpos = __size - 1; > if (__xpos > __pos) > __xpos = __pos; > > for (++__xpos; __xpos-- > 0; ) > if (traits_type::eq(_M_data()[__xpos], __c)) > return __xpos; > } > return npos; > } > > template<typename _CharT, typename _Traits, typename _Alloc> > typename basic_string<_CharT, _Traits, _Alloc>::size_type > basic_string<_CharT, _Traits, _Alloc>:: > find_first_of(const _CharT* __s, size_type __pos, size_type __n) const > { > for (; __n && __pos < this->size(); ++__pos) > { > const _CharT* __p = traits_type::find(__s, __n, _M_data()[__pos]); > if (__p) > return __pos; > } > return npos; > } > > template<typename _CharT, typename _Traits, typename _Alloc> > typename basic_string<_CharT, _Traits, _Alloc>::size_type > basic_string<_CharT, _Traits, _Alloc>:: > find_last_of(const _CharT* __s, size_type __pos, size_type __n) const > { > size_type __size = this->size(); > if (__size && __n) > { > if (--__size > __pos) > __size = __pos; > do > { > if (traits_type::find(__s, __n, _M_data()[__size])) > return __size; > } > while (__size-- != 0); > } > return npos; > } > > template<typename _CharT, typename _Traits, typename _Alloc> > typename basic_string<_CharT, _Traits, _Alloc>::size_type > basic_string<_CharT, _Traits, _Alloc>:: > find_first_not_of(const _CharT* __s, size_type __pos, size_type __n) const > { > size_t __xpos = __pos; > for (; __xpos < this->size(); ++__xpos) > if (!traits_type::find(__s, __n, _M_data()[__xpos])) > return __xpos; > return npos; > } > > template<typename _CharT, typename _Traits, typename _Alloc> > typename basic_string<_CharT, _Traits, _Alloc>::size_type > basic_string<_CharT, _Traits, _Alloc>:: > find_first_not_of(_CharT __c, size_type __pos) const > { > size_t __xpos = __pos; > for (; __xpos < this->size(); ++__xpos) > if (!traits_type::eq(_M_data()[__xpos], __c)) > return __xpos; > return npos; > } > > template<typename _CharT, typename _Traits, typename _Alloc> > typename basic_string<_CharT, _Traits, _Alloc>::size_type > basic_string<_CharT, _Traits, _Alloc>:: > find_last_not_of(const _CharT* __s, size_type __pos, size_type __n) const > { > size_type __size = this->size(); > if (__size) > { > if (--__size > __pos) > __size = __pos; > do > { > if (!traits_type::find(__s, __n, _M_data()[__size])) > return __size; > } > while (__size--); > } > return npos; > } > > template<typename _CharT, typename _Traits, typename _Alloc> > typename basic_string<_CharT, _Traits, _Alloc>::size_type > basic_string<_CharT, _Traits, _Alloc>:: > find_last_not_of(_CharT __c, size_type __pos) const > { > size_type __size = this->size(); > if (__size) > { > if (--__size > __pos) > __size = __pos; > do > { > if (!traits_type::eq(_M_data()[__size], __c)) > return __size; > } > while (__size--); > } > return npos; > } > > template<typename _CharT, typename _Traits, typename _Alloc> > int > basic_string<_CharT, _Traits, _Alloc>:: > compare(size_type __pos, size_type __n, const basic_string& __str) const > { > size_type __size = this->size(); > size_type __osize = __str.size(); > if (__pos > __size) > __throw_out_of_range("basic_string::compare"); > > size_type __rsize= std::min(size_type(__size - __pos), __n); > size_type __len = std::min(__rsize, __osize); > int __r = traits_type::compare(_M_data() + __pos, __str.data(), __len); > if (!__r) > __r = __rsize - __osize; > return __r; > } > > template<typename _CharT, typename _Traits, typename _Alloc> > int > basic_string<_CharT, _Traits, _Alloc>:: > compare(size_type __pos1, size_type __n1, const basic_string& __str, > size_type __pos2, size_type __n2) const > { > size_type __size = this->size(); > size_type __osize = __str.size(); > if (__pos1 > __size || __pos2 > __osize) > __throw_out_of_range("basic_string::compare"); > > size_type __rsize = std::min(size_type(__size - __pos1), __n1); > size_type __rosize = std::min(size_type(__osize - __pos2), __n2); > size_type __len = std::min(__rsize, __rosize); > int __r = traits_type::compare(_M_data() + __pos1, > __str.data() + __pos2, __len); > if (!__r) > __r = __rsize - __rosize; > return __r; > } > > > template<typename _CharT, typename _Traits, typename _Alloc> > int > basic_string<_CharT, _Traits, _Alloc>:: > compare(const _CharT* __s) const > { > size_type __size = this->size(); > size_type __osize = traits_type::length(__s); > size_type __len = std::min(__size, __osize); > int __r = traits_type::compare(_M_data(), __s, __len); > if (!__r) > __r = __size - __osize; > return __r; > } > > > template<typename _CharT, typename _Traits, typename _Alloc> > int > basic_string <_CharT, _Traits, _Alloc>:: > compare(size_type __pos, size_type __n1, const _CharT* __s) const > { > size_type __size = this->size(); > if (__pos > __size) > __throw_out_of_range("basic_string::compare"); > > size_type __osize = traits_type::length(__s); > size_type __rsize = std::min(size_type(__size - __pos), __n1); > size_type __len = std::min(__rsize, __osize); > int __r = traits_type::compare(_M_data() + __pos, __s, __len); > if (!__r) > __r = __rsize - __osize; > return __r; > } > > template<typename _CharT, typename _Traits, typename _Alloc> > int > basic_string <_CharT, _Traits, _Alloc>:: > compare(size_type __pos, size_type __n1, const _CharT* __s, > size_type __n2) const > { > size_type __size = this->size(); > if (__pos > __size) > __throw_out_of_range("basic_string::compare"); > > size_type __rsize = std::min(size_type(__size - __pos), __n1); > size_type __len = std::min(__rsize, __n2); > int __r = traits_type::compare(_M_data() + __pos, __s, __len); > if (!__r) > __r = __rsize - __n2; > return __r; > } > > template <class _CharT, class _Traits, class _Alloc> > void > _S_string_copy(const basic_string<_CharT, _Traits, _Alloc>& __str, > _CharT* __buf, typename _Alloc::size_type __bufsiz) > { > typedef typename _Alloc::size_type size_type; > size_type __strsize = __str.size(); > size_type __bytes = std::min(__strsize, __bufsiz - 1); > _Traits::copy(__buf, __str.data(), __bytes); > __buf[__bytes] = _CharT(); > } > > > > > > extern template class basic_string<char>; > extern template > basic_istream<char>& > operator>>(basic_istream<char>&, string&); > extern template > basic_ostream<char>& > operator<<(basic_ostream<char>&, const string&); > extern template > basic_istream<char>& > getline(basic_istream<char>&, string&, char); > extern template > basic_istream<char>& > getline(basic_istream<char>&, string&); > > > extern template class basic_string<wchar_t>; > extern template > basic_istream<wchar_t>& > operator>>(basic_istream<wchar_t>&, wstring&); > extern template > basic_ostream<wchar_t>& > operator<<(basic_ostream<wchar_t>&, const wstring&); > extern template > basic_istream<wchar_t>& > getline(basic_istream<wchar_t>&, wstring&, wchar_t); > extern template > basic_istream<wchar_t>& > getline(basic_istream<wchar_t>&, wstring&); > > >} ># 58 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/string" 2 3 ># 24 "../misc/argsparser.h" 2 > >class ObjectImpType; ># 106 "../misc/argsparser.h" >class ArgsParser >{ >public: > > enum { Invalid = 0, Valid = 1, Complete = 2 }; > struct spec { const ObjectImpType* type; std::string usetext; std::string selectstat; bool onOrThrough;}; >private: > > std::vector<spec> margs; > > spec findSpec( const ObjectImp* o, const Args& parents ) const; >public: > ArgsParser( const struct spec* args, int n ); > ArgsParser( const std::vector<spec>& args ); > ArgsParser(); > ~ArgsParser(); > > void initialize( const std::vector<spec>& args ); > void initialize( const struct spec* args, int n ); > > > > ArgsParser without( const ObjectImpType* type ) const; > > int check( const Args& os ) const; > int check( const std::vector<ObjectCalcer*>& os ) const; > > > > std::string usetext( const ObjectImp* o, const Args& sel ) const; > > > > std::string selectStatement( const Args& sel ) const; > > > > Args parse( const Args& os ) const; > std::vector<ObjectCalcer*> parse( const std::vector<ObjectCalcer*>& os ) const; > > > > const ObjectImpType* impRequirement( const ObjectImp* o, const Args& parents ) const; > > > > > bool isDefinedOnOrThrough( const ObjectImp* o, const Args& parents ) const; ># 167 "../misc/argsparser.h" > bool checkArgs( const std::vector<ObjectCalcer*>& os ) const; > bool checkArgs( const std::vector<ObjectCalcer*>& os, uint minobjects ) const; > bool checkArgs( const Args& os ) const; > bool checkArgs( const Args& os, uint minobjects ) const; >}; ># 23 "../objects/object_type.h" 2 > >class ObjectTypeCalcer; > > > > > > > >class ObjectType >{ > const char* mfulltypename; >protected: > ObjectType( const char fulltypename[] ); >public: > virtual ~ObjectType(); > > enum { > ID_ConstrainedPointType, > ID_LocusType, > ID_FixedPointType > }; > > virtual bool inherits( int type ) const; > > virtual ObjectImp* calc( const Args& parents, const KigDocument& d ) const = 0; > > virtual bool canMove( const ObjectTypeCalcer& ourobj ) const; > virtual bool isFreelyTranslatable( const ObjectTypeCalcer& ourobj ) const; > virtual std::vector<ObjectCalcer*> movableParents( const ObjectTypeCalcer& ourobj ) const; > virtual const Coordinate moveReferencePoint( const ObjectTypeCalcer& ourobj ) const; > virtual void move( ObjectTypeCalcer& ourobj, const Coordinate& to, > const KigDocument& d ) const; > > const char* fullName() const; > > > > > virtual const ObjectImpType* impRequirement( const ObjectImp* o, const Args& parents ) const = 0; > > > > > > virtual bool isDefinedOnOrThrough( const ObjectImp* o, const Args& parents ) const = 0; > > > > > > virtual const ObjectImpType* resultId() const = 0; > > virtual std::vector<ObjectCalcer*> sortArgs( const std::vector<ObjectCalcer*>& args ) const = 0; > > virtual Args sortArgs( const Args& args ) const = 0; > > > > > virtual bool isTransform() const; > > > > > > > > virtual QStringList specialActions() const; > > virtual void executeAction( int i, ObjectHolder& o, ObjectTypeCalcer& t, > KigPart& d, KigWidget& w, NormalMode& m ) const; >}; > > > > > >class ArgsParserObjectType > : public ObjectType >{ >protected: > const ArgsParser margsparser; > ArgsParserObjectType( const char fulltypename[], > const struct ArgsParser::spec argsspec[], > int n ); >public: > const ObjectImpType* impRequirement( const ObjectImp* o, const Args& parents ) const; > bool isDefinedOnOrThrough( const ObjectImp* o, const Args& parents ) const; > const ArgsParser& argsParser() const; > > std::vector<ObjectCalcer*> sortArgs( const std::vector<ObjectCalcer*>& args ) const; > Args sortArgs( const Args& args ) const; >}; ># 22 "../objects/base_type.h" 2 > > > >class LineData; > >class ObjectABType > : public ArgsParserObjectType >{ >protected: > ObjectABType( const char* fulltypename, const ArgsParser::spec* argsspec, int n ); > ~ObjectABType(); >public: > ObjectImp* calc( const Args& args, const KigDocument& ) const; > bool canMove( const ObjectTypeCalcer& o ) const; > bool isFreelyTranslatable( const ObjectTypeCalcer& o ) const; > std::vector<ObjectCalcer*> movableParents( const ObjectTypeCalcer& ourobj ) const; > void move( ObjectTypeCalcer& o, const Coordinate& to, > const KigDocument& d ) const; > const Coordinate moveReferencePoint( const ObjectTypeCalcer& o ) const; > > virtual ObjectImp* calc( const Coordinate& a, const Coordinate& b ) const = 0; >}; > >class ObjectLPType > : public ArgsParserObjectType >{ >protected: > ObjectLPType( const char* fullname, const ArgsParser::spec* spec, int n ); > ~ObjectLPType(); >public: > ObjectImp* calc( const Args& args, const KigDocument& ) const; > > virtual ObjectImp* calc( const LineData& a, const Coordinate& b ) const = 0; >}; ># 23 "../objects/angle_type.h" 2 > >class AngleType > : public ArgsParserObjectType >{ > AngleType(); > ~AngleType(); >public: > static const AngleType* instance(); > ObjectImp* calc( const Args& args, const KigDocument& ) const; > const ObjectImpType* resultId() const; > > QStringList specialActions() const; > void executeAction( int i, ObjectHolder& o, ObjectTypeCalcer& c, > KigPart& d, KigWidget& w, NormalMode& m ) const; >}; > >class HalfAngleType > : public ArgsParserObjectType >{ > HalfAngleType(); > ~HalfAngleType(); >public: > static const HalfAngleType* instance(); > ObjectImp* calc( const Args& args, const KigDocument& ) const; > const ObjectImpType* resultId() const; >}; ># 29 "drgeo-filter.cc" 2 ># 1 "../objects/arc_type.h" 1 ># 22 "../objects/arc_type.h" ># 1 "../misc/object_hierarchy.h" 1 ># 23 "../misc/object_hierarchy.h" ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/map" 1 3 ># 64 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/map" 3 > ># 65 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/map" 3 > > ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_map.h" 1 3 ># 66 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_map.h" 3 >namespace std >{ ># 89 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_map.h" 3 > template <typename _Key, typename _Tp, typename _Compare = less<_Key>, > typename _Alloc = allocator<pair<const _Key, _Tp> > > > class map > { > > > > > public: > typedef _Key key_type; > typedef _Tp mapped_type; > typedef pair<const _Key, _Tp> value_type; > typedef _Compare key_compare; > > class value_compare > : public binary_function<value_type, value_type, bool> > { > friend class map<_Key,_Tp,_Compare,_Alloc>; > protected: > _Compare comp; > value_compare(_Compare __c) : comp(__c) {} > public: > bool operator()(const value_type& __x, const value_type& __y) const > { return comp(__x.first, __y.first); } > }; > > private: > > typedef _Rb_tree<key_type, value_type, > _Select1st<value_type>, key_compare, _Alloc> _Rep_type; > > _Rep_type _M_t; > > public: > > > typedef typename _Rep_type::allocator_type allocator_type; > typedef typename _Rep_type::reference reference; > typedef typename _Rep_type::const_reference const_reference; > typedef typename _Rep_type::iterator iterator; > typedef typename _Rep_type::const_iterator const_iterator; > typedef typename _Rep_type::size_type size_type; > typedef typename _Rep_type::difference_type difference_type; > typedef typename _Rep_type::pointer pointer; > typedef typename _Rep_type::const_pointer const_pointer; > typedef typename _Rep_type::reverse_iterator reverse_iterator; > typedef typename _Rep_type::const_reverse_iterator const_reverse_iterator; ># 144 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_map.h" 3 > map() : _M_t(_Compare(), allocator_type()) { } > > > > > > explicit > map(const _Compare& __comp, const allocator_type& __a = allocator_type()) > : _M_t(__comp, __a) { } ># 161 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_map.h" 3 > map(const map& __x) > : _M_t(__x._M_t) { } ># 173 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_map.h" 3 > template <typename _InputIterator> > map(_InputIterator __first, _InputIterator __last) > : _M_t(_Compare(), allocator_type()) > { _M_t.insert_unique(__first, __last); } ># 189 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_map.h" 3 > template <typename _InputIterator> > map(_InputIterator __first, _InputIterator __last, > const _Compare& __comp, const allocator_type& __a = allocator_type()) > : _M_t(__comp, __a) > { _M_t.insert_unique(__first, __last); } ># 211 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_map.h" 3 > map& > operator=(const map& __x) > { > _M_t = __x._M_t; > return *this; > } > > > allocator_type > get_allocator() const { return _M_t.get_allocator(); } > > > > > > > iterator > begin() { return _M_t.begin(); } > > > > > > > const_iterator > begin() const { return _M_t.begin(); } > > > > > > iterator > end() { return _M_t.end(); } > > > > > > > const_iterator > end() const { return _M_t.end(); } > > > > > > reverse_iterator > rbegin() { return _M_t.rbegin(); } > > > > > > > const_reverse_iterator > rbegin() const { return _M_t.rbegin(); } > > > > > > > reverse_iterator > rend() { return _M_t.rend(); } > > > > > > > const_reverse_iterator > rend() const { return _M_t.rend(); } > > > > bool > empty() const { return _M_t.empty(); } > > > size_type > size() const { return _M_t.size(); } > > > size_type > max_size() const { return _M_t.max_size(); } ># 310 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_map.h" 3 > mapped_type& > operator[](const key_type& __k) > { > > > > iterator __i = lower_bound(__k); > > if (__i == end() || key_comp()(__k, (*__i).first)) > __i = insert(__i, value_type(__k, mapped_type())); > return (*__i).second; > } ># 338 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_map.h" 3 > pair<iterator,bool> > insert(const value_type& __x) > { return _M_t.insert_unique(__x); } ># 362 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_map.h" 3 > iterator > insert(iterator position, const value_type& __x) > { return _M_t.insert_unique(position, __x); } ># 374 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_map.h" 3 > template <typename _InputIterator> > void > insert(_InputIterator __first, _InputIterator __last) > { _M_t.insert_unique(__first, __last); } ># 388 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_map.h" 3 > void > erase(iterator __position) { _M_t.erase(__position); } ># 402 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_map.h" 3 > size_type > erase(const key_type& __x) { return _M_t.erase(__x); } ># 415 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_map.h" 3 > void > erase(iterator __first, iterator __last) { _M_t.erase(__first, __last); } ># 429 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_map.h" 3 > void > swap(map& __x) { _M_t.swap(__x._M_t); } > > > > > > > > void > clear() { _M_t.clear(); } > > > > > > key_compare > key_comp() const { return _M_t.key_comp(); } > > > > > > value_compare > value_comp() const { return value_compare(_M_t.key_comp()); } ># 467 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_map.h" 3 > iterator > find(const key_type& __x) { return _M_t.find(__x); } ># 481 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_map.h" 3 > const_iterator > find(const key_type& __x) const { return _M_t.find(__x); } ># 492 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_map.h" 3 > size_type > count(const key_type& __x) const > { return _M_t.find(__x) == _M_t.end() ? 0 : 1; } ># 507 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_map.h" 3 > iterator > lower_bound(const key_type& __x) { return _M_t.lower_bound(__x); } ># 521 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_map.h" 3 > const_iterator > lower_bound(const key_type& __x) const { return _M_t.lower_bound(__x); } ># 531 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_map.h" 3 > iterator > upper_bound(const key_type& __x) { return _M_t.upper_bound(__x); } ># 542 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_map.h" 3 > const_iterator > upper_bound(const key_type& __x) const > { return _M_t.upper_bound(__x); } ># 561 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_map.h" 3 > pair<iterator,iterator> > equal_range(const key_type& __x) > { return _M_t.equal_range(__x); } ># 580 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_map.h" 3 > pair<const_iterator,const_iterator> > equal_range(const key_type& __x) const > { return _M_t.equal_range(__x); } > > template <typename _K1, typename _T1, typename _C1, typename _A1> > friend bool operator== (const map<_K1,_T1,_C1,_A1>&, > const map<_K1,_T1,_C1,_A1>&); > template <typename _K1, typename _T1, typename _C1, typename _A1> > friend bool operator< (const map<_K1,_T1,_C1,_A1>&, > const map<_K1,_T1,_C1,_A1>&); > }; ># 603 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_map.h" 3 > template <typename _Key, typename _Tp, typename _Compare, typename _Alloc> > inline bool > operator==(const map<_Key,_Tp,_Compare,_Alloc>& __x, > const map<_Key,_Tp,_Compare,_Alloc>& __y) > { return __x._M_t == __y._M_t; } ># 620 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_map.h" 3 > template <typename _Key, typename _Tp, typename _Compare, typename _Alloc> > inline bool > operator<(const map<_Key,_Tp,_Compare,_Alloc>& __x, > const map<_Key,_Tp,_Compare,_Alloc>& __y) > { return __x._M_t < __y._M_t; } > > > template <typename _Key, typename _Tp, typename _Compare, typename _Alloc> > inline bool > operator!=(const map<_Key,_Tp,_Compare,_Alloc>& __x, > const map<_Key,_Tp,_Compare,_Alloc>& __y) > { return !(__x == __y); } > > > template <typename _Key, typename _Tp, typename _Compare, typename _Alloc> > inline bool > operator>(const map<_Key,_Tp,_Compare,_Alloc>& __x, > const map<_Key,_Tp,_Compare,_Alloc>& __y) > { return __y < __x; } > > > template <typename _Key, typename _Tp, typename _Compare, typename _Alloc> > inline bool > operator<=(const map<_Key,_Tp,_Compare,_Alloc>& __x, > const map<_Key,_Tp,_Compare,_Alloc>& __y) > { return !(__y < __x); } > > > template <typename _Key, typename _Tp, typename _Compare, typename _Alloc> > inline bool > operator>=(const map<_Key,_Tp,_Compare,_Alloc>& __x, > const map<_Key,_Tp,_Compare,_Alloc>& __y) > { return !(__x < __y); } > > > template <typename _Key, typename _Tp, typename _Compare, typename _Alloc> > inline void > swap(map<_Key,_Tp,_Compare,_Alloc>& __x, map<_Key,_Tp,_Compare,_Alloc>& __y) > { __x.swap(__y); } >} ># 68 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/map" 2 3 ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_multimap.h" 1 3 ># 66 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_multimap.h" 3 >namespace std >{ > > > template <typename _Key, typename _Tp, > typename _Compare = less<_Key>, > typename _Alloc = allocator<pair<const _Key, _Tp> > > > class multimap; > > template <typename _Key, typename _Tp, typename _Compare, typename _Alloc> > inline bool operator==(const multimap<_Key,_Tp,_Compare,_Alloc>& __x, > const multimap<_Key,_Tp,_Compare,_Alloc>& __y); > > template <typename _Key, typename _Tp, typename _Compare, typename _Alloc> > inline bool operator<(const multimap<_Key,_Tp,_Compare,_Alloc>& __x, > const multimap<_Key,_Tp,_Compare,_Alloc>& __y); ># 104 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_multimap.h" 3 > template <typename _Key, typename _Tp, typename _Compare, typename _Alloc> > class multimap > { > > > > > public: > typedef _Key key_type; > typedef _Tp mapped_type; > typedef pair<const _Key, _Tp> value_type; > typedef _Compare key_compare; > > class value_compare > : public binary_function<value_type, value_type, bool> > { > friend class multimap<_Key,_Tp,_Compare,_Alloc>; > protected: > _Compare comp; > value_compare(_Compare __c) : comp(__c) {} > public: > bool operator()(const value_type& __x, const value_type& __y) const > { return comp(__x.first, __y.first); } > }; > > private: > > typedef _Rb_tree<key_type, value_type, > _Select1st<value_type>, key_compare, _Alloc> _Rep_type; > > _Rep_type _M_t; > > public: > > > typedef typename _Rep_type::allocator_type allocator_type; > typedef typename _Rep_type::reference reference; > typedef typename _Rep_type::const_reference const_reference; > typedef typename _Rep_type::iterator iterator; > typedef typename _Rep_type::const_iterator const_iterator; > typedef typename _Rep_type::size_type size_type; > typedef typename _Rep_type::difference_type difference_type; > typedef typename _Rep_type::pointer pointer; > typedef typename _Rep_type::const_pointer const_pointer; > typedef typename _Rep_type::reverse_iterator reverse_iterator; > typedef typename _Rep_type::const_reverse_iterator const_reverse_iterator; > > > > > > > > multimap() : _M_t(_Compare(), allocator_type()) { } > > > > > > explicit > multimap(const _Compare& __comp, const allocator_type& __a = allocator_type()) > : _M_t(__comp, __a) { } ># 174 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_multimap.h" 3 > multimap(const multimap& __x) > : _M_t(__x._M_t) { } ># 186 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_multimap.h" 3 > template <typename _InputIterator> > multimap(_InputIterator __first, _InputIterator __last) > : _M_t(_Compare(), allocator_type()) > { _M_t.insert_equal(__first, __last); } ># 202 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_multimap.h" 3 > template <typename _InputIterator> > multimap(_InputIterator __first, _InputIterator __last, > const _Compare& __comp, > const allocator_type& __a = allocator_type()) > : _M_t(__comp, __a) > { _M_t.insert_equal(__first, __last); } ># 225 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_multimap.h" 3 > multimap& > operator=(const multimap& __x) > { > _M_t = __x._M_t; > return *this; > } > > > allocator_type > get_allocator() const { return _M_t.get_allocator(); } > > > > > > > iterator > begin() { return _M_t.begin(); } > > > > > > > const_iterator > begin() const { return _M_t.begin(); } > > > > > > iterator > end() { return _M_t.end(); } > > > > > > > const_iterator > end() const { return _M_t.end(); } > > > > > > > reverse_iterator > rbegin() { return _M_t.rbegin(); } > > > > > > > const_reverse_iterator > rbegin() const { return _M_t.rbegin(); } > > > > > > > reverse_iterator > rend() { return _M_t.rend(); } > > > > > > > const_reverse_iterator > rend() const { return _M_t.rend(); } > > > > bool > empty() const { return _M_t.empty(); } > > > size_type > size() const { return _M_t.size(); } > > > size_type > max_size() const { return _M_t.max_size(); } ># 325 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_multimap.h" 3 > iterator > insert(const value_type& __x) { return _M_t.insert_equal(__x); } ># 348 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_multimap.h" 3 > iterator > insert(iterator __position, const value_type& __x) > { return _M_t.insert_equal(__position, __x); } ># 360 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_multimap.h" 3 > template <typename _InputIterator> > void > insert(_InputIterator __first, _InputIterator __last) > { _M_t.insert_equal(__first, __last); } ># 374 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_multimap.h" 3 > void > erase(iterator __position) { _M_t.erase(__position); } ># 388 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_multimap.h" 3 > size_type > erase(const key_type& __x) { return _M_t.erase(__x); } ># 401 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_multimap.h" 3 > void > erase(iterator __first, iterator __last) { _M_t.erase(__first, __last); } ># 415 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_multimap.h" 3 > void > swap(multimap& __x) { _M_t.swap(__x._M_t); } > > > > > > > > void > clear() { _M_t.clear(); } > > > > > > > key_compare > key_comp() const { return _M_t.key_comp(); } > > > > > > value_compare > value_comp() const { return value_compare(_M_t.key_comp()); } ># 454 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_multimap.h" 3 > iterator > find(const key_type& __x) { return _M_t.find(__x); } ># 468 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_multimap.h" 3 > const_iterator > find(const key_type& __x) const { return _M_t.find(__x); } > > > > > > > size_type > count(const key_type& __x) const { return _M_t.count(__x); } ># 490 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_multimap.h" 3 > iterator > lower_bound(const key_type& __x) { return _M_t.lower_bound(__x); } ># 504 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_multimap.h" 3 > const_iterator > lower_bound(const key_type& __x) const { return _M_t.lower_bound(__x); } > > > > > > > iterator > upper_bound(const key_type& __x) { return _M_t.upper_bound(__x); } > > > > > > > > const_iterator > upper_bound(const key_type& __x) const { return _M_t.upper_bound(__x); } ># 537 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_multimap.h" 3 > pair<iterator,iterator> > equal_range(const key_type& __x) { return _M_t.equal_range(__x); } ># 553 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_multimap.h" 3 > pair<const_iterator,const_iterator> > equal_range(const key_type& __x) const { return _M_t.equal_range(__x); } > > template <typename _K1, typename _T1, typename _C1, typename _A1> > friend bool operator== (const multimap<_K1,_T1,_C1,_A1>&, > const multimap<_K1,_T1,_C1,_A1>&); > template <typename _K1, typename _T1, typename _C1, typename _A1> > friend bool operator< (const multimap<_K1,_T1,_C1,_A1>&, > const multimap<_K1,_T1,_C1,_A1>&); > }; ># 575 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_multimap.h" 3 > template <typename _Key, typename _Tp, typename _Compare, typename _Alloc> > inline bool > operator==(const multimap<_Key,_Tp,_Compare,_Alloc>& __x, > const multimap<_Key,_Tp,_Compare,_Alloc>& __y) > { > return __x._M_t == __y._M_t; > } ># 594 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/stl_multimap.h" 3 > template <typename _Key, typename _Tp, typename _Compare, typename _Alloc> > inline bool > operator<(const multimap<_Key,_Tp,_Compare,_Alloc>& __x, > const multimap<_Key,_Tp,_Compare,_Alloc>& __y) > { return __x._M_t < __y._M_t; } > > > template <typename _Key, typename _Tp, typename _Compare, typename _Alloc> > inline bool > operator!=(const multimap<_Key,_Tp,_Compare,_Alloc>& __x, > const multimap<_Key,_Tp,_Compare,_Alloc>& __y) > { return !(__x == __y); } > > > template <typename _Key, typename _Tp, typename _Compare, typename _Alloc> > inline bool > operator>(const multimap<_Key,_Tp,_Compare,_Alloc>& __x, > const multimap<_Key,_Tp,_Compare,_Alloc>& __y) > { return __y < __x; } > > > template <typename _Key, typename _Tp, typename _Compare, typename _Alloc> > inline bool > operator<=(const multimap<_Key,_Tp,_Compare,_Alloc>& __x, > const multimap<_Key,_Tp,_Compare,_Alloc>& __y) > { return !(__y < __x); } > > > template <typename _Key, typename _Tp, typename _Compare, typename _Alloc> > inline bool > operator>=(const multimap<_Key,_Tp,_Compare,_Alloc>& __x, > const multimap<_Key,_Tp,_Compare,_Alloc>& __y) > { return !(__x < __y); } > > > template <typename _Key, typename _Tp, typename _Compare, typename _Alloc> > inline void > swap(multimap<_Key,_Tp,_Compare,_Alloc>& __x, > multimap<_Key,_Tp,_Compare,_Alloc>& __y) > { __x.swap(__y); } >} ># 69 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/map" 2 3 ># 24 "../misc/object_hierarchy.h" 2 > > > >class ObjectImpType; >class ArgsParser; > >class ObjectHierarchy >{ >public: > class Node; >private: > std::vector<Node*> mnodes; > uint mnumberofargs; > uint mnumberofresults; > std::vector<const ObjectImpType*> margrequirements; > std::vector<std::string> musetexts; > std::vector<std::string> mselectstatements; > > > int visit( const ObjectCalcer* o, std::map<const ObjectCalcer*, int>&, > bool needed, bool neededatend = false); > int storeObject( const ObjectCalcer*, const std::vector<ObjectCalcer*>& po, std::vector<int>& pl, > std::map<const ObjectCalcer*, int>& seenmap ); > > friend bool operator==( const ObjectHierarchy& lhs, const ObjectHierarchy& rhs ); > > void init( const std::vector<ObjectCalcer*>& from, const std::vector<ObjectCalcer*>& to ); > > > > ObjectHierarchy(); > >public: > ObjectHierarchy( const ObjectCalcer* from, const ObjectCalcer* to ); > ObjectHierarchy( const std::vector<ObjectCalcer*>& from, const ObjectCalcer* to ); > ObjectHierarchy( const std::vector<ObjectCalcer*>& from, const std::vector<ObjectCalcer*>& to ); > ObjectHierarchy( const ObjectHierarchy& h ); > ~ObjectHierarchy(); > > > > ObjectHierarchy withFixedArgs( const Args& a ) const; > > std::vector<ObjectImp*> calc( const Args& a, const KigDocument& doc ) const; > > > void serialize( QDomElement& parent, QDomDocument& doc ) const; > > > > > > static ObjectHierarchy* ObjectHierarchy::buildSafeObjectHierarchy( const QDomElement& parent, QString& error ); > > > > > > > > std::vector<ObjectCalcer*> buildObjects( const std::vector<ObjectCalcer*>& os, const KigDocument& ) const; > > ArgsParser argParser() const; > > uint numberOfArgs() const { return mnumberofargs; }; > uint numberOfResults() const { return mnumberofresults; }; > > const ObjectImpType* idOfLastResult() const; > > bool resultDoesNotDependOnGiven() const; > bool allGivenObjectsUsed() const; > > ObjectHierarchy transformFinalObject( const Transformation& t ) const; >}; > >bool operator==( const ObjectHierarchy& lhs, const ObjectHierarchy& rhs ); ># 23 "../objects/arc_type.h" 2 > > > > >class ArcBTPType > : public ArgsParserObjectType >{ > typedef ArgsParserObjectType Parent; > ArcBTPType(); > ~ArcBTPType(); >public: > static const ArcBTPType* instance(); > > ObjectImp* calc( const Args& args, const KigDocument& ) const; > > const ObjectImpType* impRequirement( const ObjectImp* o, const Args& parents ) const; > > bool inherits( int type ) const; > const ObjectImpType* resultId() const; >}; > > > > >class ArcBCPAType > : public ArgsParserObjectType >{ > typedef ArgsParserObjectType Parent; > ArcBCPAType(); > ~ArcBCPAType(); >public: > static const ArcBCPAType* instance(); > > ObjectImp* calc( const Args& args, const KigDocument& ) const; > > const ObjectImpType* impRequirement( const ObjectImp* o, const Args& parents ) const; > > bool inherits( int type ) const; > const ObjectImpType* resultId() const; >}; ># 30 "drgeo-filter.cc" 2 ># 1 "../objects/bogus_imp.h" 1 ># 21 "../objects/bogus_imp.h" ># 1 "../objects/object_imp.h" 1 ># 23 "../objects/object_imp.h" >class IntImp; >class DoubleImp; >class StringImp; >class InvalidImp; >class HierarchyImp; >class TransformationImp; >class TestResultImp; >class CurveImp; >class LineImp; >class PointImp; >class TextImp; >class AngleImp; >class VectorImp; >class LocusImp; >class CircleImp; >class ConicImp; >class CubicImp; >class SegmentImp; >class RayImp; >class ArcImp; >class PolygonImp; ># 53 "../objects/object_imp.h" >class ObjectImpVisitor >{ >public: > virtual ~ObjectImpVisitor(); > void visit( const ObjectImp* imp ); > virtual void visit( const IntImp* imp ); > virtual void visit( const DoubleImp* imp ); > virtual void visit( const StringImp* imp ); > virtual void visit( const InvalidImp* imp ); > virtual void visit( const HierarchyImp* imp ); > virtual void visit( const TransformationImp* imp ); > virtual void visit( const TestResultImp* imp ); > virtual void visit( const LineImp* imp ); > virtual void visit( const PointImp* imp ); > virtual void visit( const TextImp* imp ); > virtual void visit( const AngleImp* imp ); > virtual void visit( const VectorImp* imp ); > virtual void visit( const LocusImp* imp ); > virtual void visit( const CircleImp* imp ); > virtual void visit( const ConicImp* imp ); > virtual void visit( const CubicImp* imp ); > virtual void visit( const SegmentImp* imp ); > virtual void visit( const RayImp* imp ); > virtual void visit( const ArcImp* imp ); > virtual void visit( const PolygonImp* imp ); >}; > >typedef unsigned int uint; > > > > > > > >class ObjectImpType >{ > const ObjectImpType* mparent; > const char* minternalname; > const char* mtranslatedname; > const char* mselectstatement; > const char* mselectnamestatement; > const char* mremoveastatement; > const char* maddastatement; > const char* mmoveastatement; > const char* mattachtothisstatement; > const char* mshowastatement; > const char* mhideastatement; > class StaticPrivate; > static StaticPrivate* sd(); >public: > > > > > > > > static const ObjectImpType* typeFromInternalName( const char* n ); ># 133 "../objects/object_imp.h" > ObjectImpType( > const ObjectImpType* parent, const char* internalname, > const char* translatedname, > const char* selectstatement, > const char* selectnamestatement, > const char* removeastatement, > const char* addastatement, > const char* moveastatement, > const char* attachtothisstatement, > const char* showastatement, > const char* hideastatement ); > ~ObjectImpType(); > > > > > > bool inherits( const ObjectImpType* t ) const; > > > > > > > const char* internalName() const; > > > > QString translatedName() const; > > > > > > const char* selectStatement() const; > > > > > > > > const char* selectNameStatement() const; > > > > > > QString removeAStatement() const; > > > > > QString addAStatement() const; > > > > > QString moveAStatement() const; > > > > > > QString attachToThisStatement() const; > > > > > > QString showAStatement() const; > > > > > > QString hideAStatement() const; >}; > > > > > > > >class ObjectImp >{ >protected: > ObjectImp(); >public: > > > > > static const ObjectImpType* stype(); > > virtual ~ObjectImp(); ># 245 "../objects/object_imp.h" > bool inherits( const ObjectImpType* t ) const; ># 263 "../objects/object_imp.h" > virtual Coordinate attachPoint( ) const = 0; > > > > > virtual ObjectImp* transform( const Transformation& t ) const = 0; > > virtual void draw( KigPainter& p ) const = 0; > virtual bool contains( const Coordinate& p, int width, > const KigWidget& si ) const = 0; > virtual bool inRect( const Rect& r, int width, > const KigWidget& si ) const = 0; > virtual Rect surroundingRect() const = 0; > > > > > > > bool valid() const; > > virtual const uint numberOfProperties() const; > > > virtual const QCStringList properties() const; > > > > virtual const QCStringList propertiesInternalNames() const; > virtual ObjectImp* property( uint which, const KigDocument& d ) const; > > > > virtual const ObjectImpType* impRequirementForProperty( uint which ) const; > > > > virtual bool isPropertyDefinedOnOrThroughThisImp( uint which ) const; > > virtual const char* iconForProperty( uint which ) const; ># 319 "../objects/object_imp.h" > virtual const ObjectImpType* type() const = 0; > virtual void visit( ObjectImpVisitor* vtor ) const = 0; > > > > > > > virtual ObjectImp* copy() const = 0; ># 338 "../objects/object_imp.h" > virtual bool canFillInNextEscape() const; > virtual void fillInNextEscape( QString& s, const KigDocument& ) const; ># 348 "../objects/object_imp.h" > virtual bool equals( const ObjectImp& rhs ) const = 0; ># 358 "../objects/object_imp.h" > virtual bool isCache() const; >}; ># 22 "../objects/bogus_imp.h" 2 > ># 1 "../misc/kigtransform.h" 1 ># 28 "../misc/kigtransform.h" >class LineData; ># 37 "../misc/kigtransform.h" >class Transformation >{ > double mdata[3][3]; > bool mIsHomothety; > bool mIsAffine; > Transformation(); >public: > ~Transformation(); > Transformation( double data[3][3], bool ishomothety ); > > > > > > > > const Coordinate apply( const double x0, const double x1, const double x2 ) const; > const Coordinate apply( const Coordinate& c ) const; > const Coordinate apply0( const Coordinate& c ) const; > > > > > bool isHomothetic() const; > bool isAffine() const; > double getProjectiveIndicator( const Coordinate& c ) const; > double getAffineDeterminant() const; > double getRotationAngle() const; > const Coordinate apply2by2only( const Coordinate& c ) const; ># 74 "../misc/kigtransform.h" > double apply( double length ) const; > double data( int r, int c ) const; > > > > > const Transformation inverse( bool& valid ) const; > > > > > > static const Transformation identity(); > > > > > static const Transformation scalingOverPoint( double factor, const Coordinate& center = Coordinate() ); > > > > > > static const Transformation scalingOverLine( double factor, const LineData& l ); > > > > static const Transformation translation( const Coordinate& c ); > > > > > static const Transformation rotation( double angle, const Coordinate& center = Coordinate() ); > > > > > static const Transformation pointReflection( const Coordinate& c ); > > > > > static const Transformation lineReflection( const LineData& l ); > > > > > > static const Transformation harmonicHomology( const Coordinate& center, > const LineData& axis ); > > > > > static const Transformation affinityGI3P( > const std::vector<Coordinate>& FromPoints, > const std::vector<Coordinate>& ToPoints, > bool& valid ); > > > > > static const Transformation projectivityGI4P( > const std::vector<Coordinate>& FromPoints, > const std::vector<Coordinate>& ToPoints, > bool& valid ); > > > > > > static const Transformation castShadow( const Coordinate& ls, > const LineData& d ); > > > > > static const Transformation projectiveRotation( double alpha, > const Coordinate& d, > const Coordinate& t ); > > > > > > static const Transformation similitude( > const Coordinate& center, double theta, double factor ); > > > > > > friend const Transformation operator*( const Transformation& a, const Transformation& b ); > > > > > friend bool operator==( const Transformation& lhs, const Transformation& rhs ); >}; > >const Transformation operator*( const Transformation&, const Transformation& ); >bool operator==( const Transformation& lhs, const Transformation& rhs ); ># 24 "../objects/bogus_imp.h" 2 ># 37 "../objects/bogus_imp.h" >class BogusImp > : public ObjectImp >{ > typedef ObjectImp Parent; >public: > > > > static const ObjectImpType* stype(); > > Coordinate attachPoint( ) const; > void draw( KigPainter& p ) const; > bool contains( const Coordinate& p, int width, const KigWidget& w ) const; > bool inRect( const Rect& r, int width, const KigWidget& w ) const; > Rect surroundingRect() const; > > ObjectImp* transform( const Transformation& ) const; >}; > > > > > > >class InvalidImp > : public BogusImp >{ >public: > > > > static const ObjectImpType* stype(); > typedef BogusImp Parent; > > > > > InvalidImp(); > InvalidImp* copy() const; > > const ObjectImpType* type() const; > void visit( ObjectImpVisitor* vtor ) const; > > bool canFillInNextEscape() const; > void fillInNextEscape( QString& s, const KigDocument& ) const; > > bool equals( const ObjectImp& rhs ) const; >}; > > > > >class DoubleImp > : public BogusImp >{ > double mdata; >public: > > > > static const ObjectImpType* stype(); > typedef BogusImp Parent; > > > > > DoubleImp( const double d ); > > > > > double data() const { return mdata; }; > > > > void setData( double d ) { mdata = d; }; > > DoubleImp* copy() const; > > const ObjectImpType* type() const; > void visit( ObjectImpVisitor* vtor ) const; > > bool canFillInNextEscape() const; > void fillInNextEscape( QString& s, const KigDocument& ) const; > > bool equals( const ObjectImp& rhs ) const; >}; > > > > >class IntImp > : public BogusImp >{ > int mdata; >public: > > > > static const ObjectImpType* stype(); > typedef BogusImp Parent; > > > > > IntImp( const int d ); > > > > > int data() const { return mdata; }; > > > > void setData( int d ) { mdata = d; } > > IntImp* copy() const; > > const ObjectImpType* type() const; > void visit( ObjectImpVisitor* vtor ) const; > > bool canFillInNextEscape() const; > void fillInNextEscape( QString& s, const KigDocument& ) const; > > bool equals( const ObjectImp& rhs ) const; >}; > > > > >class StringImp > : public BogusImp >{ > QString mdata; >public: > > > > static const ObjectImpType* stype(); > typedef BogusImp Parent; > > > > > StringImp( const QString& d ); > > > > > const QString& data() const { return mdata; }; > > > > void setData( const QString& s ) { mdata = s; } > > StringImp* copy() const; > > const ObjectImpType* type() const; > void visit( ObjectImpVisitor* vtor ) const; > > bool canFillInNextEscape() const; > void fillInNextEscape( QString& s, const KigDocument& ) const; > > bool equals( const ObjectImp& rhs ) const; >}; > >class HierarchyImp > : public BogusImp >{ > ObjectHierarchy mdata; >public: > static const ObjectImpType* stype(); > typedef BogusImp Parent; > > HierarchyImp( const ObjectHierarchy& h ); > > const ObjectHierarchy& data() const { return mdata; }; > void setData( const ObjectHierarchy& h ) { mdata = h; }; > > HierarchyImp* copy() const; > const char* baseName() const; > > const ObjectImpType* type() const; > void visit( ObjectImpVisitor* vtor ) const; > > bool equals( const ObjectImp& rhs ) const; >}; ># 232 "../objects/bogus_imp.h" >class TransformationImp > : public BogusImp >{ > Transformation mdata; >public: > static const ObjectImpType* stype(); > typedef BogusImp Parent; > > TransformationImp( const Transformation& h ); > > const Transformation& data() const { return mdata; }; > void setData( const Transformation& h ) { mdata = h; }; > > TransformationImp* copy() const; > > const ObjectImpType* type() const; > void visit( ObjectImpVisitor* vtor ) const; > > bool equals( const ObjectImp& rhs ) const; >}; > >class TestResultImp > : public BogusImp >{ > const QString mdata; >public: > static const ObjectImpType* stype(); > typedef BogusImp Parent; > > TestResultImp( const QString& s ); > > TestResultImp* copy() const; > > const QString& data() const { return mdata; }; > > const ObjectImpType* type() const; > void visit( ObjectImpVisitor* vtor ) const; > > const uint numberOfProperties() const; > const QCStringList properties() const; > const QCStringList propertiesInternalNames() const; > ObjectImp* property( uint which, const KigDocument& d ) const; > const char* iconForProperty( uint which ) const; > const ObjectImpType* impRequirementForProperty( uint which ) const; > bool isPropertyDefinedOnOrThroughThisImp( uint which ) const; > > bool equals( const ObjectImp& rhs ) const; >}; ># 31 "drgeo-filter.cc" 2 ># 1 "../objects/circle_imp.h" 1 ># 21 "../objects/circle_imp.h" ># 1 "../objects/conic_imp.h" 1 ># 21 "../objects/conic_imp.h" ># 1 "../objects/curve_imp.h" 1 ># 27 "../objects/curve_imp.h" >class CurveImp > : public ObjectImp >{ >public: > typedef ObjectImp Parent; > > > > > static const ObjectImpType* stype(); > > Coordinate attachPoint() const; > > > > > > virtual double getParam( const Coordinate& point, const KigDocument& ) const = 0; > > > > > virtual const Coordinate getPoint( double param, const KigDocument& ) const = 0; > > virtual CurveImp* copy() const = 0; > > > > > > > > virtual bool containsPoint( const Coordinate& p, const KigDocument& ) const = 0; >}; ># 22 "../objects/conic_imp.h" 2 > ># 1 "../misc/conic-common.h" 1 ># 26 "../misc/conic-common.h" ># 1 "../misc/kignumerics.h" 1 ># 24 "../misc/kignumerics.h" ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/cmath" 1 3 ># 47 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/cmath" 3 > ># 48 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/cmath" 3 > > > ># 1 "/usr/include/math.h" 1 3 4 ># 29 "/usr/include/math.h" 3 4 >extern "C" { > > > ># 1 "/usr/include/bits/huge_val.h" 1 3 4 ># 34 "/usr/include/math.h" 2 3 4 > ># 1 "/usr/include/bits/huge_valf.h" 1 3 4 ># 36 "/usr/include/math.h" 2 3 4 ># 1 "/usr/include/bits/huge_vall.h" 1 3 4 ># 37 "/usr/include/math.h" 2 3 4 > > ># 1 "/usr/include/bits/inf.h" 1 3 4 ># 40 "/usr/include/math.h" 2 3 4 > > ># 1 "/usr/include/bits/nan.h" 1 3 4 ># 43 "/usr/include/math.h" 2 3 4 > > > ># 1 "/usr/include/bits/mathdef.h" 1 3 4 ># 36 "/usr/include/bits/mathdef.h" 3 4 >typedef long double float_t; > >typedef long double double_t; ># 47 "/usr/include/math.h" 2 3 4 ># 70 "/usr/include/math.h" 3 4 ># 1 "/usr/include/bits/mathcalls.h" 1 3 4 ># 53 "/usr/include/bits/mathcalls.h" 3 4 > > >extern double acos (double __x) throw (); extern double __acos (double __x) throw (); > >extern double asin (double __x) throw (); extern double __asin (double __x) throw (); > >extern double atan (double __x) throw (); extern double __atan (double __x) throw (); > >extern double atan2 (double __y, double __x) throw (); extern double __atan2 (double __y, double __x) throw (); > > >extern double cos (double __x) throw (); extern double __cos (double __x) throw (); > >extern double sin (double __x) throw (); extern double __sin (double __x) throw (); > >extern double tan (double __x) throw (); extern double __tan (double __x) throw (); > > > > >extern double cosh (double __x) throw (); extern double __cosh (double __x) throw (); > >extern double sinh (double __x) throw (); extern double __sinh (double __x) throw (); > >extern double tanh (double __x) throw (); extern double __tanh (double __x) throw (); > > > > >extern void sincos (double __x, double *__sinx, double *__cosx) throw (); extern void __sincos (double __x, double *__sinx, double *__cosx) throw (); > > > > > > >extern double acosh (double __x) throw (); extern double __acosh (double __x) throw (); > >extern double asinh (double __x) throw (); extern double __asinh (double __x) throw (); > >extern double atanh (double __x) throw (); extern double __atanh (double __x) throw (); > > > > > > > >extern double exp (double __x) throw (); extern double __exp (double __x) throw (); > > >extern double frexp (double __x, int *__exponent) throw (); extern double __frexp (double __x, int *__exponent) throw (); > > >extern double ldexp (double __x, int __exponent) throw (); extern double __ldexp (double __x, int __exponent) throw (); > > >extern double log (double __x) throw (); extern double __log (double __x) throw (); > > >extern double log10 (double __x) throw (); extern double __log10 (double __x) throw (); > > >extern double modf (double __x, double *__iptr) throw (); extern double __modf (double __x, double *__iptr) throw (); > > > > >extern double exp10 (double __x) throw (); extern double __exp10 (double __x) throw (); > >extern double pow10 (double __x) throw (); extern double __pow10 (double __x) throw (); > > > > > >extern double expm1 (double __x) throw (); extern double __expm1 (double __x) throw (); > > >extern double log1p (double __x) throw (); extern double __log1p (double __x) throw (); > > >extern double logb (double __x) throw (); extern double __logb (double __x) throw (); > > > > > > >extern double exp2 (double __x) throw (); extern double __exp2 (double __x) throw (); > > >extern double log2 (double __x) throw (); extern double __log2 (double __x) throw (); > > > > > > > > >extern double pow (double __x, double __y) throw (); extern double __pow (double __x, double __y) throw (); > > >extern double sqrt (double __x) throw (); extern double __sqrt (double __x) throw (); > > > > > >extern double hypot (double __x, double __y) throw (); extern double __hypot (double __x, double __y) throw (); > > > > > > >extern double cbrt (double __x) throw (); extern double __cbrt (double __x) throw (); > > > > > > > > >extern double ceil (double __x) throw () __attribute__ ((__const__)); extern double __ceil (double __x) throw () __attribute__ ((__const__)); > > >extern double fabs (double __x) throw () __attribute__ ((__const__)); extern double __fabs (double __x) throw () __attribute__ ((__const__)); > > >extern double floor (double __x) throw () __attribute__ ((__const__)); extern double __floor (double __x) throw () __attribute__ ((__const__)); > > >extern double fmod (double __x, double __y) throw (); extern double __fmod (double __x, double __y) throw (); > > > > >extern int __isinf (double __value) throw () __attribute__ ((__const__)); > > >extern int __finite (double __value) throw () __attribute__ ((__const__)); > > > > > >extern int isinf (double __value) throw () __attribute__ ((__const__)); > > >extern int finite (double __value) throw () __attribute__ ((__const__)); > > >extern double drem (double __x, double __y) throw (); extern double __drem (double __x, double __y) throw (); > > > >extern double significand (double __x) throw (); extern double __significand (double __x) throw (); > > > > > >extern double copysign (double __x, double __y) throw () __attribute__ ((__const__)); extern double __copysign (double __x, double __y) throw () __attribute__ ((__const__)); > > > > > > >extern double nan (__const char *__tagb) throw () __attribute__ ((__const__)); extern double __nan (__const char *__tagb) throw () __attribute__ ((__const__)); > > > > > >extern int __isnan (double __value) throw () __attribute__ ((__const__)); > > > >extern int isnan (double __value) throw () __attribute__ ((__const__)); > > >extern double j0 (double) throw (); extern double __j0 (double) throw (); >extern double j1 (double) throw (); extern double __j1 (double) throw (); >extern double jn (int, double) throw (); extern double __jn (int, double) throw (); >extern double y0 (double) throw (); extern double __y0 (double) throw (); >extern double y1 (double) throw (); extern double __y1 (double) throw (); >extern double yn (int, double) throw (); extern double __yn (int, double) throw (); > > > > > > >extern double erf (double) throw (); extern double __erf (double) throw (); >extern double erfc (double) throw (); extern double __erfc (double) throw (); >extern double lgamma (double) throw (); extern double __lgamma (double) throw (); > > > > > > >extern double tgamma (double) throw (); extern double __tgamma (double) throw (); > > > > > >extern double gamma (double) throw (); extern double __gamma (double) throw (); > > > > > > >extern double lgamma_r (double, int *__signgamp) throw (); extern double __lgamma_r (double, int *__signgamp) throw (); > > > > > > > >extern double rint (double __x) throw (); extern double __rint (double __x) throw (); > > >extern double nextafter (double __x, double __y) throw () __attribute__ ((__const__)); extern double __nextafter (double __x, double __y) throw () __attribute__ ((__const__)); > >extern double nexttoward (double __x, long double __y) throw () __attribute__ ((__const__)); extern double __nexttoward (double __x, long double __y) throw () __attribute__ ((__const__)); > > > >extern double remainder (double __x, double __y) throw (); extern double __remainder (double __x, double __y) throw (); > > > >extern double scalbn (double __x, int __n) throw (); extern double __scalbn (double __x, int __n) throw (); > > > >extern int ilogb (double __x) throw (); extern int __ilogb (double __x) throw (); > > > > >extern double scalbln (double __x, long int __n) throw (); extern double __scalbln (double __x, long int __n) throw (); > > > >extern double nearbyint (double __x) throw (); extern double __nearbyint (double __x) throw (); > > > >extern double round (double __x) throw () __attribute__ ((__const__)); extern double __round (double __x) throw () __attribute__ ((__const__)); > > > >extern double trunc (double __x) throw () __attribute__ ((__const__)); extern double __trunc (double __x) throw () __attribute__ ((__const__)); > > > > >extern double remquo (double __x, double __y, int *__quo) throw (); extern double __remquo (double __x, double __y, int *__quo) throw (); > > > > > > >extern long int lrint (double __x) throw (); extern long int __lrint (double __x) throw (); >extern long long int llrint (double __x) throw (); extern long long int __llrint (double __x) throw (); > > > >extern long int lround (double __x) throw (); extern long int __lround (double __x) throw (); >extern long long int llround (double __x) throw (); extern long long int __llround (double __x) throw (); > > > >extern double fdim (double __x, double __y) throw (); extern double __fdim (double __x, double __y) throw (); > > >extern double fmax (double __x, double __y) throw (); extern double __fmax (double __x, double __y) throw (); > > >extern double fmin (double __x, double __y) throw (); extern double __fmin (double __x, double __y) throw (); > > > >extern int __fpclassify (double __value) throw () > __attribute__ ((__const__)); > > >extern int __signbit (double __value) throw () > __attribute__ ((__const__)); > > > >extern double fma (double __x, double __y, double __z) throw (); extern double __fma (double __x, double __y, double __z) throw (); > > > > >extern double scalb (double __x, double __n) throw (); extern double __scalb (double __x, double __n) throw (); ># 71 "/usr/include/math.h" 2 3 4 ># 93 "/usr/include/math.h" 3 4 ># 1 "/usr/include/bits/mathcalls.h" 1 3 4 ># 53 "/usr/include/bits/mathcalls.h" 3 4 > > >extern float acosf (float __x) throw (); extern float __acosf (float __x) throw (); > >extern float asinf (float __x) throw (); extern float __asinf (float __x) throw (); > >extern float atanf (float __x) throw (); extern float __atanf (float __x) throw (); > >extern float atan2f (float __y, float __x) throw (); extern float __atan2f (float __y, float __x) throw (); > > >extern float cosf (float __x) throw (); extern float __cosf (float __x) throw (); > >extern float sinf (float __x) throw (); extern float __sinf (float __x) throw (); > >extern float tanf (float __x) throw (); extern float __tanf (float __x) throw (); > > > > >extern float coshf (float __x) throw (); extern float __coshf (float __x) throw (); > >extern float sinhf (float __x) throw (); extern float __sinhf (float __x) throw (); > >extern float tanhf (float __x) throw (); extern float __tanhf (float __x) throw (); > > > > >extern void sincosf (float __x, float *__sinx, float *__cosx) throw (); extern void __sincosf (float __x, float *__sinx, float *__cosx) throw (); > > > > > > >extern float acoshf (float __x) throw (); extern float __acoshf (float __x) throw (); > >extern float asinhf (float __x) throw (); extern float __asinhf (float __x) throw (); > >extern float atanhf (float __x) throw (); extern float __atanhf (float __x) throw (); > > > > > > > >extern float expf (float __x) throw (); extern float __expf (float __x) throw (); > > >extern float frexpf (float __x, int *__exponent) throw (); extern float __frexpf (float __x, int *__exponent) throw (); > > >extern float ldexpf (float __x, int __exponent) throw (); extern float __ldexpf (float __x, int __exponent) throw (); > > >extern float logf (float __x) throw (); extern float __logf (float __x) throw (); > > >extern float log10f (float __x) throw (); extern float __log10f (float __x) throw (); > > >extern float modff (float __x, float *__iptr) throw (); extern float __modff (float __x, float *__iptr) throw (); > > > > >extern float exp10f (float __x) throw (); extern float __exp10f (float __x) throw (); > >extern float pow10f (float __x) throw (); extern float __pow10f (float __x) throw (); > > > > > >extern float expm1f (float __x) throw (); extern float __expm1f (float __x) throw (); > > >extern float log1pf (float __x) throw (); extern float __log1pf (float __x) throw (); > > >extern float logbf (float __x) throw (); extern float __logbf (float __x) throw (); > > > > > > >extern float exp2f (float __x) throw (); extern float __exp2f (float __x) throw (); > > >extern float log2f (float __x) throw (); extern float __log2f (float __x) throw (); > > > > > > > > >extern float powf (float __x, float __y) throw (); extern float __powf (float __x, float __y) throw (); > > >extern float sqrtf (float __x) throw (); extern float __sqrtf (float __x) throw (); > > > > > >extern float hypotf (float __x, float __y) throw (); extern float __hypotf (float __x, float __y) throw (); > > > > > > >extern float cbrtf (float __x) throw (); extern float __cbrtf (float __x) throw (); > > > > > > > > >extern float ceilf (float __x) throw () __attribute__ ((__const__)); extern float __ceilf (float __x) throw () __attribute__ ((__const__)); > > >extern float fabsf (float __x) throw () __attribute__ ((__const__)); extern float __fabsf (float __x) throw () __attribute__ ((__const__)); > > >extern float floorf (float __x) throw () __attribute__ ((__const__)); extern float __floorf (float __x) throw () __attribute__ ((__const__)); > > >extern float fmodf (float __x, float __y) throw (); extern float __fmodf (float __x, float __y) throw (); > > > > >extern int __isinff (float __value) throw () __attribute__ ((__const__)); > > >extern int __finitef (float __value) throw () __attribute__ ((__const__)); > > > > > >extern int isinff (float __value) throw () __attribute__ ((__const__)); > > >extern int finitef (float __value) throw () __attribute__ ((__const__)); > > >extern float dremf (float __x, float __y) throw (); extern float __dremf (float __x, float __y) throw (); > > > >extern float significandf (float __x) throw (); extern float __significandf (float __x) throw (); > > > > > >extern float copysignf (float __x, float __y) throw () __attribute__ ((__const__)); extern float __copysignf (float __x, float __y) throw () __attribute__ ((__const__)); > > > > > > >extern float nanf (__const char *__tagb) throw () __attribute__ ((__const__)); extern float __nanf (__const char *__tagb) throw () __attribute__ ((__const__)); > > > > > >extern int __isnanf (float __value) throw () __attribute__ ((__const__)); > > > >extern int isnanf (float __value) throw () __attribute__ ((__const__)); > > >extern float j0f (float) throw (); extern float __j0f (float) throw (); >extern float j1f (float) throw (); extern float __j1f (float) throw (); >extern float jnf (int, float) throw (); extern float __jnf (int, float) throw (); >extern float y0f (float) throw (); extern float __y0f (float) throw (); >extern float y1f (float) throw (); extern float __y1f (float) throw (); >extern float ynf (int, float) throw (); extern float __ynf (int, float) throw (); > > > > > > >extern float erff (float) throw (); extern float __erff (float) throw (); >extern float erfcf (float) throw (); extern float __erfcf (float) throw (); >extern float lgammaf (float) throw (); extern float __lgammaf (float) throw (); > > > > > > >extern float tgammaf (float) throw (); extern float __tgammaf (float) throw (); > > > > > >extern float gammaf (float) throw (); extern float __gammaf (float) throw (); > > > > > > >extern float lgammaf_r (float, int *__signgamp) throw (); extern float __lgammaf_r (float, int *__signgamp) throw (); > > > > > > > >extern float rintf (float __x) throw (); extern float __rintf (float __x) throw (); > > >extern float nextafterf (float __x, float __y) throw () __attribute__ ((__const__)); extern float __nextafterf (float __x, float __y) throw () __attribute__ ((__const__)); > >extern float nexttowardf (float __x, long double __y) throw () __attribute__ ((__const__)); extern float __nexttowardf (float __x, long double __y) throw () __attribute__ ((__const__)); > > > >extern float remainderf (float __x, float __y) throw (); extern float __remainderf (float __x, float __y) throw (); > > > >extern float scalbnf (float __x, int __n) throw (); extern float __scalbnf (float __x, int __n) throw (); > > > >extern int ilogbf (float __x) throw (); extern int __ilogbf (float __x) throw (); > > > > >extern float scalblnf (float __x, long int __n) throw (); extern float __scalblnf (float __x, long int __n) throw (); > > > >extern float nearbyintf (float __x) throw (); extern float __nearbyintf (float __x) throw (); > > > >extern float roundf (float __x) throw () __attribute__ ((__const__)); extern float __roundf (float __x) throw () __attribute__ ((__const__)); > > > >extern float truncf (float __x) throw () __attribute__ ((__const__)); extern float __truncf (float __x) throw () __attribute__ ((__const__)); > > > > >extern float remquof (float __x, float __y, int *__quo) throw (); extern float __remquof (float __x, float __y, int *__quo) throw (); > > > > > > >extern long int lrintf (float __x) throw (); extern long int __lrintf (float __x) throw (); >extern long long int llrintf (float __x) throw (); extern long long int __llrintf (float __x) throw (); > > > >extern long int lroundf (float __x) throw (); extern long int __lroundf (float __x) throw (); >extern long long int llroundf (float __x) throw (); extern long long int __llroundf (float __x) throw (); > > > >extern float fdimf (float __x, float __y) throw (); extern float __fdimf (float __x, float __y) throw (); > > >extern float fmaxf (float __x, float __y) throw (); extern float __fmaxf (float __x, float __y) throw (); > > >extern float fminf (float __x, float __y) throw (); extern float __fminf (float __x, float __y) throw (); > > > >extern int __fpclassifyf (float __value) throw () > __attribute__ ((__const__)); > > >extern int __signbitf (float __value) throw () > __attribute__ ((__const__)); > > > >extern float fmaf (float __x, float __y, float __z) throw (); extern float __fmaf (float __x, float __y, float __z) throw (); > > > > >extern float scalbf (float __x, float __n) throw (); extern float __scalbf (float __x, float __n) throw (); ># 94 "/usr/include/math.h" 2 3 4 ># 114 "/usr/include/math.h" 3 4 ># 1 "/usr/include/bits/mathcalls.h" 1 3 4 ># 53 "/usr/include/bits/mathcalls.h" 3 4 > > >extern long double acosl (long double __x) throw (); extern long double __acosl (long double __x) throw (); > >extern long double asinl (long double __x) throw (); extern long double __asinl (long double __x) throw (); > >extern long double atanl (long double __x) throw (); extern long double __atanl (long double __x) throw (); > >extern long double atan2l (long double __y, long double __x) throw (); extern long double __atan2l (long double __y, long double __x) throw (); > > >extern long double cosl (long double __x) throw (); extern long double __cosl (long double __x) throw (); > >extern long double sinl (long double __x) throw (); extern long double __sinl (long double __x) throw (); > >extern long double tanl (long double __x) throw (); extern long double __tanl (long double __x) throw (); > > > > >extern long double coshl (long double __x) throw (); extern long double __coshl (long double __x) throw (); > >extern long double sinhl (long double __x) throw (); extern long double __sinhl (long double __x) throw (); > >extern long double tanhl (long double __x) throw (); extern long double __tanhl (long double __x) throw (); > > > > >extern void sincosl (long double __x, long double *__sinx, long double *__cosx) throw (); extern void __sincosl (long double __x, long double *__sinx, long double *__cosx) throw (); > > > > > > >extern long double acoshl (long double __x) throw (); extern long double __acoshl (long double __x) throw (); > >extern long double asinhl (long double __x) throw (); extern long double __asinhl (long double __x) throw (); > >extern long double atanhl (long double __x) throw (); extern long double __atanhl (long double __x) throw (); > > > > > > > >extern long double expl (long double __x) throw (); extern long double __expl (long double __x) throw (); > > >extern long double frexpl (long double __x, int *__exponent) throw (); extern long double __frexpl (long double __x, int *__exponent) throw (); > > >extern long double ldexpl (long double __x, int __exponent) throw (); extern long double __ldexpl (long double __x, int __exponent) throw (); > > >extern long double logl (long double __x) throw (); extern long double __logl (long double __x) throw (); > > >extern long double log10l (long double __x) throw (); extern long double __log10l (long double __x) throw (); > > >extern long double modfl (long double __x, long double *__iptr) throw (); extern long double __modfl (long double __x, long double *__iptr) throw (); > > > > >extern long double exp10l (long double __x) throw (); extern long double __exp10l (long double __x) throw (); > >extern long double pow10l (long double __x) throw (); extern long double __pow10l (long double __x) throw (); > > > > > >extern long double expm1l (long double __x) throw (); extern long double __expm1l (long double __x) throw (); > > >extern long double log1pl (long double __x) throw (); extern long double __log1pl (long double __x) throw (); > > >extern long double logbl (long double __x) throw (); extern long double __logbl (long double __x) throw (); > > > > > > >extern long double exp2l (long double __x) throw (); extern long double __exp2l (long double __x) throw (); > > >extern long double log2l (long double __x) throw (); extern long double __log2l (long double __x) throw (); > > > > > > > > >extern long double powl (long double __x, long double __y) throw (); extern long double __powl (long double __x, long double __y) throw (); > > >extern long double sqrtl (long double __x) throw (); extern long double __sqrtl (long double __x) throw (); > > > > > >extern long double hypotl (long double __x, long double __y) throw (); extern long double __hypotl (long double __x, long double __y) throw (); > > > > > > >extern long double cbrtl (long double __x) throw (); extern long double __cbrtl (long double __x) throw (); > > > > > > > > >extern long double ceill (long double __x) throw () __attribute__ ((__const__)); extern long double __ceill (long double __x) throw () __attribute__ ((__const__)); > > >extern long double fabsl (long double __x) throw () __attribute__ ((__const__)); extern long double __fabsl (long double __x) throw () __attribute__ ((__const__)); > > >extern long double floorl (long double __x) throw () __attribute__ ((__const__)); extern long double __floorl (long double __x) throw () __attribute__ ((__const__)); > > >extern long double fmodl (long double __x, long double __y) throw (); extern long double __fmodl (long double __x, long double __y) throw (); > > > > >extern int __isinfl (long double __value) throw () __attribute__ ((__const__)); > > >extern int __finitel (long double __value) throw () __attribute__ ((__const__)); > > > > > >extern int isinfl (long double __value) throw () __attribute__ ((__const__)); > > >extern int finitel (long double __value) throw () __attribute__ ((__const__)); > > >extern long double dreml (long double __x, long double __y) throw (); extern long double __dreml (long double __x, long double __y) throw (); > > > >extern long double significandl (long double __x) throw (); extern long double __significandl (long double __x) throw (); > > > > > >extern long double copysignl (long double __x, long double __y) throw () __attribute__ ((__const__)); extern long double __copysignl (long double __x, long double __y) throw () __attribute__ ((__const__)); > > > > > > >extern long double nanl (__const char *__tagb) throw () __attribute__ ((__const__)); extern long double __nanl (__const char *__tagb) throw () __attribute__ ((__const__)); > > > > > >extern int __isnanl (long double __value) throw () __attribute__ ((__const__)); > > > >extern int isnanl (long double __value) throw () __attribute__ ((__const__)); > > >extern long double j0l (long double) throw (); extern long double __j0l (long double) throw (); >extern long double j1l (long double) throw (); extern long double __j1l (long double) throw (); >extern long double jnl (int, long double) throw (); extern long double __jnl (int, long double) throw (); >extern long double y0l (long double) throw (); extern long double __y0l (long double) throw (); >extern long double y1l (long double) throw (); extern long double __y1l (long double) throw (); >extern long double ynl (int, long double) throw (); extern long double __ynl (int, long double) throw (); > > > > > > >extern long double erfl (long double) throw (); extern long double __erfl (long double) throw (); >extern long double erfcl (long double) throw (); extern long double __erfcl (long double) throw (); >extern long double lgammal (long double) throw (); extern long double __lgammal (long double) throw (); > > > > > > >extern long double tgammal (long double) throw (); extern long double __tgammal (long double) throw (); > > > > > >extern long double gammal (long double) throw (); extern long double __gammal (long double) throw (); > > > > > > >extern long double lgammal_r (long double, int *__signgamp) throw (); extern long double __lgammal_r (long double, int *__signgamp) throw (); > > > > > > > >extern long double rintl (long double __x) throw (); extern long double __rintl (long double __x) throw (); > > >extern long double nextafterl (long double __x, long double __y) throw () __attribute__ ((__const__)); extern long double __nextafterl (long double __x, long double __y) throw () __attribute__ ((__const__)); > >extern long double nexttowardl (long double __x, long double __y) throw () __attribute__ ((__const__)); extern long double __nexttowardl (long double __x, long double __y) throw () __attribute__ ((__const__)); > > > >extern long double remainderl (long double __x, long double __y) throw (); extern long double __remainderl (long double __x, long double __y) throw (); > > > >extern long double scalbnl (long double __x, int __n) throw (); extern long double __scalbnl (long double __x, int __n) throw (); > > > >extern int ilogbl (long double __x) throw (); extern int __ilogbl (long double __x) throw (); > > > > >extern long double scalblnl (long double __x, long int __n) throw (); extern long double __scalblnl (long double __x, long int __n) throw (); > > > >extern long double nearbyintl (long double __x) throw (); extern long double __nearbyintl (long double __x) throw (); > > > >extern long double roundl (long double __x) throw () __attribute__ ((__const__)); extern long double __roundl (long double __x) throw () __attribute__ ((__const__)); > > > >extern long double truncl (long double __x) throw () __attribute__ ((__const__)); extern long double __truncl (long double __x) throw () __attribute__ ((__const__)); > > > > >extern long double remquol (long double __x, long double __y, int *__quo) throw (); extern long double __remquol (long double __x, long double __y, int *__quo) throw (); > > > > > > >extern long int lrintl (long double __x) throw (); extern long int __lrintl (long double __x) throw (); >extern long long int llrintl (long double __x) throw (); extern long long int __llrintl (long double __x) throw (); > > > >extern long int lroundl (long double __x) throw (); extern long int __lroundl (long double __x) throw (); >extern long long int llroundl (long double __x) throw (); extern long long int __llroundl (long double __x) throw (); > > > >extern long double fdiml (long double __x, long double __y) throw (); extern long double __fdiml (long double __x, long double __y) throw (); > > >extern long double fmaxl (long double __x, long double __y) throw (); extern long double __fmaxl (long double __x, long double __y) throw (); > > >extern long double fminl (long double __x, long double __y) throw (); extern long double __fminl (long double __x, long double __y) throw (); > > > >extern int __fpclassifyl (long double __value) throw () > __attribute__ ((__const__)); > > >extern int __signbitl (long double __value) throw () > __attribute__ ((__const__)); > > > >extern long double fmal (long double __x, long double __y, long double __z) throw (); extern long double __fmal (long double __x, long double __y, long double __z) throw (); > > > > >extern long double scalbl (long double __x, long double __n) throw (); extern long double __scalbl (long double __x, long double __n) throw (); ># 115 "/usr/include/math.h" 2 3 4 ># 130 "/usr/include/math.h" 3 4 >extern int signgam; ># 171 "/usr/include/math.h" 3 4 >enum > { > FP_NAN, > > FP_INFINITE, > > FP_ZERO, > > FP_SUBNORMAL, > > FP_NORMAL > > }; ># 257 "/usr/include/math.h" 3 4 >typedef enum >{ > _IEEE_ = -1, > _SVID_, > _XOPEN_, > _POSIX_, > _ISOC_ >} _LIB_VERSION_TYPE; > > > > >extern _LIB_VERSION_TYPE _LIB_VERSION; ># 280 "/usr/include/math.h" 3 4 >struct __exception > > > > { > int type; > char *name; > double arg1; > double arg2; > double retval; > }; > > >extern int matherr (struct __exception *__exc) throw (); ># 382 "/usr/include/math.h" 3 4 ># 1 "/usr/include/bits/mathinline.h" 1 3 4 ># 127 "/usr/include/bits/mathinline.h" 3 4 >__inline int >__signbitf (float __x) throw () >{ > __extension__ union { float __f; int __i; } __u = { __f: __x }; > return __u.__i < 0; >} >__inline int >__signbit (double __x) throw () >{ > __extension__ union { double __d; int __i[2]; } __u = { __d: __x }; > return __u.__i[1] < 0; >} >__inline int >__signbitl (long double __x) throw () >{ > __extension__ union { long double __l; int __i[3]; } __u = { __l: __x }; > return (__u.__i[2] & 0x8000) != 0; >} ># 383 "/usr/include/math.h" 2 3 4 ># 438 "/usr/include/math.h" 3 4 >} ># 52 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/cmath" 2 3 ># 80 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/cmath" 3 >namespace __gnu_cxx >{ > namespace __c99_binding > { ># 107 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/cmath" 3 > using ::acosf; > > > using ::asinf; > > > using ::atanf; > > > using ::atan2f; > > > using ::ceilf; > > > using ::coshf; > > > using ::expf; > > > using ::floorf; > > > using ::fmodf; > > > using ::frexpf; > > > using ::ldexpf; > > > using ::logf; > > > using ::log10f; > > > using ::modff; > > > using ::powf; > > > using ::sinhf; > > > using ::tanf; > > > using ::tanhf; > > > } >} > >namespace std >{ > > > template<typename _Tp> _Tp __cmath_power(_Tp, unsigned int); > > inline double > abs(double __x) > { return __builtin_fabs(__x); } > > inline float > abs(float __x) > { return __builtin_fabsf(__x); } > > inline long double > abs(long double __x) > { return __builtin_fabsl(__x); } > > > inline float > acos(float __x) { return __gnu_cxx::__c99_binding::acosf(__x); } > > > > > > using ::acos; > > > inline long double > acos(long double __x) { return ::acosl(__x); } > > > > > > using ::asin; > > > inline float > asin(float __x) { return __gnu_cxx::__c99_binding::asinf(__x); } > > > > > > > inline long double > asin(long double __x) { return ::asinl(__x); } > > > > > > using ::atan; > > > inline float > atan(float __x) { return __gnu_cxx::__c99_binding::atanf(__x); } > > > > > > > inline long double > atan(long double __x) { return ::atanl(__x); } > > > > > > using ::atan2; > > > inline float > atan2(float __y, float __x) { return __gnu_cxx::__c99_binding::atan2f(__y, __x); } > > > > > > > > inline long double > atan2(long double __y, long double __x) { return ::atan2l(__y, __x); } > > > > > > > using ::ceil; > > > inline float > ceil(float __x) { return __gnu_cxx::__c99_binding::ceilf(__x); } > > > > > > > inline long double > ceil(long double __x) { return ::ceill(__x); } > > > > > > using ::cos; > > inline float > cos(float __x) > { return __builtin_cosf(__x); } > > inline long double > cos(long double __x) > { return __builtin_cosl(__x); } > > using ::cosh; > > > inline float > cosh(float __x) { return __gnu_cxx::__c99_binding::coshf(__x); } > > > > > > > inline long double > cosh(long double __x) { return ::coshl(__x); } > > > > > > using ::exp; > > > inline float > exp(float __x) { return __gnu_cxx::__c99_binding::expf(__x); } > > > > > > > inline long double > exp(long double __x) { return ::expl(__x); } > > > > > > using ::fabs; > > inline float > fabs(float __x) > { return __builtin_fabsf(__x); } > > inline long double > fabs(long double __x) > { return __builtin_fabsl(__x); } > > using ::floor; > > > inline float > floor(float __x) { return __gnu_cxx::__c99_binding::floorf(__x); } > > > > > > > inline long double > floor(long double __x) { return ::floorl(__x); } > > > > > > using ::fmod; > > > inline float > fmod(float __x, float __y) { return __gnu_cxx::__c99_binding::fmodf(__x, __y); } > > > > > > > > inline long double > fmod(long double __x, long double __y) { return ::fmodl(__x, __y); } > > > > > > > using ::frexp; > > > inline float > frexp(float __x, int* __exp) { return __gnu_cxx::__c99_binding::frexpf(__x, __exp); } > > > > > > > inline long double > frexp(long double __x, int* __exp) { return ::frexpl(__x, __exp); } > > > > > > > using ::ldexp; > > > inline float > ldexp(float __x, int __exp) { return __gnu_cxx::__c99_binding::ldexpf(__x, __exp); } > > > > > > > > inline long double > ldexp(long double __x, int __exp) { return ::ldexpl(__x, __exp); } > > > > > > > using ::log; > > > inline float > log(float __x) { return __gnu_cxx::__c99_binding::logf(__x); } > > > > > > > inline long double > log(long double __x) { return ::logl(__x); } > > > > > > using ::log10; > > > inline float > log10(float __x) { return __gnu_cxx::__c99_binding::log10f(__x); } > > > > > > > inline long double > log10(long double __x) { return ::log10l(__x); } > > > > > > using ::modf; > > > inline float > modf(float __x, float* __iptr) { return __gnu_cxx::__c99_binding::modff(__x, __iptr); } ># 460 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/cmath" 3 > inline long double > modf(long double __x, long double* __iptr) { return ::modfl(__x, __iptr); } ># 473 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/cmath" 3 > template<typename _Tp> > inline _Tp > __pow_helper(_Tp __x, int __n) > { > return __n < 0 > ? _Tp(1)/__cmath_power(__x, -__n) > : __cmath_power(__x, __n); > } > > using ::pow; > > > inline float > pow(float __x, float __y) { return __gnu_cxx::__c99_binding::powf(__x, __y); } > > > > > > > > inline long double > pow(long double __x, long double __y) { return ::powl(__x, __y); } > > > > > > > inline double > pow(double __x, int __i) > { return __pow_helper(__x, __i); } > > inline float > pow(float __x, int __n) > { return __pow_helper(__x, __n); } > > inline long double > pow(long double __x, int __n) > { return __pow_helper(__x, __n); } > > using ::sin; > > inline float > sin(float __x) > { return __builtin_sinf(__x); } > > inline long double > sin(long double __x) > { return __builtin_sinl(__x); } > > using ::sinh; > > > inline float > sinh(float __x) { return __gnu_cxx::__c99_binding::sinhf(__x); } > > > > > > > inline long double > sinh(long double __x) { return ::sinhl(__x); } > > > > > > using ::sqrt; > > inline float > sqrt(float __x) > { return __builtin_sqrtf(__x); } > > inline long double > sqrt(long double __x) > { return __builtin_sqrtl(__x); } > > using ::tan; > > > inline float > tan(float __x) { return __gnu_cxx::__c99_binding::tanf(__x); } > > > > > > > inline long double > tan(long double __x) { return ::tanl(__x); } > > > > > > using ::tanh; > > > inline float > tanh(float __x) { return __gnu_cxx::__c99_binding::tanhf(__x); } > > > > > > > inline long double > tanh(long double __x) { return ::tanhl(__x); } > > > > >} > > > > > > > >namespace __gnu_cxx >{ > template<typename _Tp> > int > __capture_fpclassify(_Tp __f) { return (sizeof (__f) == sizeof (float) ? __fpclassifyf (__f) : sizeof (__f) == sizeof (double) ? __fpclassify (__f) : __fpclassifyl (__f)); } > > template<typename _Tp> > int > __capture_isfinite(_Tp __f) { return (sizeof (__f) == sizeof (float) ? __finitef (__f) : sizeof (__f) == sizeof (double) ? __finite (__f) : __finitel (__f)); } > > template<typename _Tp> > int > __capture_isinf(_Tp __f) { return (sizeof (__f) == sizeof (float) ? __isinff (__f) : sizeof (__f) == sizeof (double) ? __isinf (__f) : __isinfl (__f)); } > > template<typename _Tp> > int > __capture_isnan(_Tp __f) { return (sizeof (__f) == sizeof (float) ? __isnanf (__f) : sizeof (__f) == sizeof (double) ? __isnan (__f) : __isnanl (__f)); } > > template<typename _Tp> > int > __capture_isnormal(_Tp __f) { return ((sizeof (__f) == sizeof (float) ? __fpclassifyf (__f) : sizeof (__f) == sizeof (double) ? __fpclassify (__f) : __fpclassifyl (__f)) == FP_NORMAL); } > > template<typename _Tp> > int > __capture_signbit(_Tp __f) { return (sizeof (__f) == sizeof (float) ? __signbitf (__f) : sizeof (__f) == sizeof (double) ? __signbit (__f) : __signbitl (__f)); } > > template<typename _Tp> > int > __capture_isgreater(_Tp __f1, _Tp __f2) > { return __builtin_isgreater(__f1, __f2); } > > template<typename _Tp> > int > __capture_isgreaterequal(_Tp __f1, _Tp __f2) > { return __builtin_isgreaterequal(__f1, __f2); } > > template<typename _Tp> > int > __capture_isless(_Tp __f1, _Tp __f2) { return __builtin_isless(__f1, __f2); } > > template<typename _Tp> > int > __capture_islessequal(_Tp __f1, _Tp __f2) > { return __builtin_islessequal(__f1, __f2); } > > template<typename _Tp> > int > __capture_islessgreater(_Tp __f1, _Tp __f2) > { return __builtin_islessgreater(__f1, __f2); } > > template<typename _Tp> > int > __capture_isunordered(_Tp __f1, _Tp __f2) > { return __builtin_isunordered(__f1, __f2); } >} ># 668 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/cmath" 3 >namespace __gnu_cxx >{ > template<typename _Tp> > int > fpclassify(_Tp __f) { return __capture_fpclassify(__f); } > > template<typename _Tp> > int > isfinite(_Tp __f) { return __capture_isfinite(__f); } > > template<typename _Tp> > int > isinf(_Tp __f) { return __capture_isinf(__f); } > > template<typename _Tp> > int > isnan(_Tp __f) { return __capture_isnan(__f); } > > template<typename _Tp> > int > isnormal(_Tp __f) { return __capture_isnormal(__f); } > > template<typename _Tp> > int > signbit(_Tp __f) { return __capture_signbit(__f); } > > template<typename _Tp> > int > isgreater(_Tp __f1, _Tp __f2) { return __capture_isgreater(__f1, __f2); } > > template<typename _Tp> > int > isgreaterequal(_Tp __f1, _Tp __f2) > { return __capture_isgreaterequal(__f1, __f2); } > > template<typename _Tp> > int > isless(_Tp __f1, _Tp __f2) { return __capture_isless(__f1, __f2); } > > template<typename _Tp> > int > islessequal(_Tp __f1, _Tp __f2) > { return __capture_islessequal(__f1, __f2); } > > template<typename _Tp> > int > islessgreater(_Tp __f1, _Tp __f2) > { return __capture_islessgreater(__f1, __f2); } > > template<typename _Tp> > int > isunordered(_Tp __f1, _Tp __f2) > { return __capture_isunordered(__f1, __f2); } >} > >namespace std >{ > using __gnu_cxx::fpclassify; > using __gnu_cxx::isfinite; > using __gnu_cxx::isinf; > using __gnu_cxx::isnan; > using __gnu_cxx::isnormal; > using __gnu_cxx::signbit; > using __gnu_cxx::isgreater; > using __gnu_cxx::isgreaterequal; > using __gnu_cxx::isless; > using __gnu_cxx::islessequal; > using __gnu_cxx::islessgreater; > using __gnu_cxx::isunordered; >} > > > > > ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/cmath.tcc" 1 3 ># 35 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/bits/cmath.tcc" 3 >namespace std >{ > template<typename _Tp> > _Tp > __cmath_power(_Tp __x, unsigned int __n) > { > _Tp __y = __n % 2 ? __x : 1; > > while (__n >>= 1) > { > __x = __x * __x; > if (__n % 2) > __y = __y * __x; > } > > return __y; > } >} ># 744 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/cmath" 2 3 ># 25 "../misc/kignumerics.h" 2 > >double calcCubicRoot ( double xmin, double xmax, double a, > double b, double c, double d, int root, bool& valid, int& numroots ); > >int calcCubicVariations (double x, double a, double b, double c, > double d, double p1a, double p1b, double p0a); > >double calcCubicRootwithNewton ( double ymin, double ymax, double a, > double b, double c, double d, double tol ); > > > >bool GaussianElimination( double *matrix[], int numrows, int numcols, > int scambio[] ); > >void BackwardSubstitution( double *matrix[], int numrows, int numcols, > int scambio[], double solution[] ); > >bool Invert3by3matrix ( const double m[3][3], double inv[3][3] ); ># 27 "../misc/conic-common.h" 2 > >class ConicPolarData; >class Transformation; >class LineData; > > > > > > >class ConicCartesianData >{ >public: > double coeffs[6]; > ConicCartesianData(); > > > > > > explicit ConicCartesianData( const ConicPolarData& d ); > > > > > > ConicCartesianData( double a, double b, double c, > double d, double e, double f ) > { > coeffs[0] = a; > coeffs[1] = b; > coeffs[2] = c; > coeffs[3] = d; > coeffs[4] = e; > coeffs[5] = f; > }; > ConicCartesianData( const double incoeffs[6] ); > > > > > > > static ConicCartesianData invalidData(); > > > > > > bool valid() const; >}; ># 86 "../misc/conic-common.h" >class ConicPolarData >{ >public: > > > > > > > explicit ConicPolarData( const ConicCartesianData& data ); > explicit ConicPolarData(); > > > > > ConicPolarData( const Coordinate& focus1, double dimen, > double ecostheta0, double esintheta0 ); > > > > > Coordinate focus1; > > > > double pdimen; > > > > double ecostheta0; > > > > double esintheta0; >}; > >bool operator==( const ConicPolarData& lhs, const ConicPolarData& rhs ); ># 138 "../misc/conic-common.h" >enum LinearConstraints { > noconstraint, zerotilt, parabolaifzt, circleifzt, > equilateral, ysymmetry, xsymmetry >}; ># 154 "../misc/conic-common.h" >const ConicCartesianData calcConicThroughPoints ( > const std::vector<Coordinate>& points, > const LinearConstraints c1 = noconstraint, > const LinearConstraints c2 = noconstraint, > const LinearConstraints c3 = noconstraint, > const LinearConstraints c4 = noconstraint, > const LinearConstraints c5 = noconstraint); ># 170 "../misc/conic-common.h" >const ConicPolarData calcConicBFFP( > const std::vector<Coordinate>& args, > int type ); > > > > > >const ConicPolarData calcConicBDFP( > const LineData& d, const Coordinate& f, const Coordinate& p ); > > > > > >const ConicCartesianData calcConicByAsymptotes( > const LineData& line1, > const LineData& line2, > const Coordinate& p ); ># 198 "../misc/conic-common.h" >const LineData calcConicPolarLine ( > const ConicCartesianData& data, > const Coordinate& cpole, > bool& valid ); ># 211 "../misc/conic-common.h" >const Coordinate calcConicPolarPoint ( > const ConicCartesianData& data, > const LineData& polar ); ># 231 "../misc/conic-common.h" >const Coordinate calcConicLineIntersect( const ConicCartesianData& c, > const LineData& l, > double knownparam, > int which ); ># 245 "../misc/conic-common.h" >const LineData calcConicAsymptote( > const ConicCartesianData data, > int which, bool &valid ); ># 262 "../misc/conic-common.h" >const LineData calcConicRadical( const ConicCartesianData& cequation1, > const ConicCartesianData& cequation2, > int which, int zeroindex, bool& valid ); ># 275 "../misc/conic-common.h" >const ConicCartesianData calcConicTransformation ( > const ConicCartesianData& data, > const Transformation& t, bool& valid ); ># 24 "../objects/conic_imp.h" 2 ># 38 "../objects/conic_imp.h" >class ConicImp > : public CurveImp >{ >protected: > ConicImp(); > ~ConicImp(); >public: > typedef CurveImp Parent; > > > > static const ObjectImpType* stype(); > > ObjectImp* transform( const Transformation& ) const; > > void draw( KigPainter& p ) const; > bool contains( const Coordinate& p, int width, const KigWidget& ) const; > bool inRect( const Rect& r, int width, const KigWidget& ) const; > bool valid() const; > Rect surroundingRect() const; > > const uint numberOfProperties() const; > const ObjectImpType* impRequirementForProperty( uint which ) const; > bool isPropertyDefinedOnOrThroughThisImp( uint which ) const; > const QCStringList properties() const; > const QCStringList propertiesInternalNames() const; > const char* iconForProperty( uint which ) const; > ObjectImp* property( uint which, const KigDocument& w ) const; > > double getParam( const Coordinate& point, const KigDocument& ) const; > const Coordinate getPoint( double param, const KigDocument& ) const; ># 81 "../objects/conic_imp.h" > virtual int conicType() const; > > > > virtual QString conicTypeString() const; > > > > > virtual QString cartesianEquationString( const KigDocument& w ) const; > > > > > > virtual QString polarEquationString( const KigDocument& w ) const; > > > > virtual const ConicCartesianData cartesianData() const; > > > > virtual const ConicPolarData polarData() const = 0; > > > > virtual Coordinate focus1() const; > > > > virtual Coordinate focus2() const; > > const ObjectImpType* type() const; > void visit( ObjectImpVisitor* vtor ) const; > > bool equals( const ObjectImp& rhs ) const; > > bool containsPoint( const Coordinate& p, const KigDocument& doc ) const; > bool internalContainsPoint( const Coordinate& p, double threshold ) const; >}; > > > > > >class ConicImpCart > : public ConicImp >{ > ConicCartesianData mcartdata; > ConicPolarData mpolardata; >public: > ConicImpCart( const ConicCartesianData& data ); > ~ConicImpCart(); > ConicImpCart* copy() const; > > const ConicCartesianData cartesianData() const; > const ConicPolarData polarData() const; >}; > > > > > >class ConicImpPolar > : public ConicImp >{ > ConicPolarData mdata; >public: > ConicImpPolar( const ConicPolarData& data ); > ~ConicImpPolar(); > ConicImpPolar* copy() const; > > const ConicPolarData polarData() const; >}; ># 22 "../objects/circle_imp.h" 2 > > > > > >class CircleImp > : public ConicImp >{ > Coordinate mcenter; > double mradius; >public: > typedef ConicImp Parent; > > > > static const ObjectImpType* stype(); > > > > > CircleImp( const Coordinate& center, double radius ); > ~CircleImp(); > CircleImp* copy() const; > > ObjectImp* transform( const Transformation& ) const; > > void draw( KigPainter& p ) const; > bool contains( const Coordinate& p, int width, const KigWidget& ) const; > bool inRect( const Rect& r, int width, const KigWidget& ) const; > bool valid() const; > Rect surroundingRect() const; > > double getParam( const Coordinate& point, const KigDocument& ) const; > const Coordinate getPoint( double param, const KigDocument& ) const; > > const uint numberOfProperties() const; > const QCStringList properties() const; > const QCStringList propertiesInternalNames() const; > ObjectImp* property( uint which, const KigDocument& w ) const; > const char* iconForProperty( uint which ) const; > const ObjectImpType* impRequirementForProperty( uint which ) const; > bool isPropertyDefinedOnOrThroughThisImp( uint which ) const; > > const ObjectImpType* type() const; > void visit( ObjectImpVisitor* vtor ) const; > > > > > const Coordinate center() const; > > > > double radius() const; > > > > > double squareRadius() const; > > > > double surface() const; > > > > double circumference() const; > > > > > > int conicType() const; > const ConicCartesianData cartesianData() const; > const ConicPolarData polarData() const; > > > > Coordinate focus1() const; > > > > Coordinate focus2() const; > > > > > > QString cartesianEquationString( const KigDocument& w ) const; > > > > > QString simplyCartesianEquationString( const KigDocument& w ) const; > > > > > QString polarEquationString( const KigDocument& w ) const; > > bool equals( const ObjectImp& rhs ) const; >}; ># 32 "drgeo-filter.cc" 2 ># 1 "../objects/circle_type.h" 1 ># 26 "../objects/circle_type.h" >class CircleBCPType > : public ObjectABType >{ > CircleBCPType(); > ~CircleBCPType(); >public: > static const CircleBCPType* instance(); > > ObjectImp* calc( const Coordinate& a, const Coordinate& b ) const; > const ObjectImpType* resultId() const; >}; > > > > >class CircleBPRType > : public ArgsParserObjectType >{ > CircleBPRType(); > ~CircleBPRType(); >public: > static const CircleBPRType* instance(); > > ObjectImp* calc( const Args& args, const KigDocument& ) const; > const ObjectImpType* resultId() const; >}; > > > > >class CircleBTPType > : public ArgsParserObjectType >{ > CircleBTPType(); > ~CircleBTPType(); > >public: > static const CircleBTPType* instance(); > > ObjectImp* calc( const Args& args, const KigDocument& ) const; > const ObjectImpType* resultId() const; >}; ># 33 "drgeo-filter.cc" 2 > ># 1 "../objects/conic_types.h" 1 ># 23 "../objects/conic_types.h" >class ConicB5PType > : public ArgsParserObjectType >{ > ConicB5PType(); > ~ConicB5PType(); >public: > static const ConicB5PType* instance(); > ObjectImp* calc( const Args& parents, const KigDocument& ) const; > const ObjectImpType* resultId() const; >}; > >class ConicBAAPType > : public ArgsParserObjectType >{ > ConicBAAPType(); > ~ConicBAAPType(); >public: > static const ConicBAAPType* instance(); > ObjectImp* calc( const Args& parents, const KigDocument& ) const; > const ObjectImpType* resultId() const; >}; > >class ConicBFFPType > : public ArgsParserObjectType >{ >protected: > ConicBFFPType( const char* fullname, const ArgsParser::spec*, int n ); > ~ConicBFFPType(); >public: > ObjectImp* calc( const Args& parents, const KigDocument& ) const; > > > virtual int type() const = 0; > const ObjectImpType* resultId() const; >}; > >class EllipseBFFPType > : public ConicBFFPType >{ > EllipseBFFPType(); > ~EllipseBFFPType(); >public: > static const EllipseBFFPType* instance(); > int type() const; >}; > >class HyperbolaBFFPType > : public ConicBFFPType >{ > HyperbolaBFFPType(); > ~HyperbolaBFFPType(); >public: > static const HyperbolaBFFPType* instance(); > int type() const; >}; > >class ConicBDFPType > : public ArgsParserObjectType >{ > ConicBDFPType(); > ~ConicBDFPType(); >public: > static const ConicBDFPType* instance(); > ObjectImp* calc( const Args& parents, const KigDocument& ) const; > const ObjectImpType* resultId() const; >}; > >class ParabolaBTPType > : public ArgsParserObjectType >{ > ParabolaBTPType(); > ~ParabolaBTPType(); >public: > static const ParabolaBTPType* instance(); > ObjectImp* calc( const Args& parents, const KigDocument& ) const; > const ObjectImpType* resultId() const; >}; > >class EquilateralHyperbolaB4PType > : public ArgsParserObjectType >{ > EquilateralHyperbolaB4PType(); > ~EquilateralHyperbolaB4PType(); >public: > static const EquilateralHyperbolaB4PType* instance(); > ObjectImp* calc( const Args& parents, const KigDocument& ) const; > const ObjectImpType* resultId() const; >}; > >class ConicPolarPointType > : public ArgsParserObjectType >{ > ConicPolarPointType(); > ~ConicPolarPointType(); >public: > static const ConicPolarPointType* instance(); > ObjectImp* calc( const Args& parents, const KigDocument& ) const; > const ObjectImpType* resultId() const; >}; > >class ConicPolarLineType > : public ArgsParserObjectType >{ > ConicPolarLineType(); > ~ConicPolarLineType(); >public: > static const ConicPolarLineType* instance(); > ObjectImp* calc( const Args& parents, const KigDocument& ) const; > const ObjectImpType* resultId() const; >}; > >class ConicDirectrixType > : public ArgsParserObjectType >{ > ConicDirectrixType(); > ~ConicDirectrixType(); >public: > static const ConicDirectrixType* instance(); > ObjectImp* calc( const Args& parents, const KigDocument& ) const; > const ObjectImpType* resultId() const; >}; > >class ParabolaBDPType > : public ObjectLPType >{ > ParabolaBDPType(); > ~ParabolaBDPType(); >public: > static const ParabolaBDPType* instance(); > ObjectImp* calc( const LineData& l, const Coordinate& c ) const; > const ObjectImpType* resultId() const; >}; > >class ConicAsymptoteType > : public ArgsParserObjectType >{ > ConicAsymptoteType(); > ~ConicAsymptoteType(); >public: > static const ConicAsymptoteType* instance(); > ObjectImp* calc( const Args& parents, const KigDocument& ) const; > const ObjectImpType* resultId() const; >}; > >class ConicRadicalType > : public ArgsParserObjectType >{ > ConicRadicalType(); > ~ConicRadicalType(); >public: > static const ConicRadicalType* instance(); > ObjectImp* calc( const Args& parents, const KigDocument& ) const; > const ObjectImpType* resultId() const; > QStringList specialActions() const; > void executeAction( int i, ObjectHolder& o, ObjectTypeCalcer& t, > KigPart& d, KigWidget& w, NormalMode& m ) const; >}; ># 35 "drgeo-filter.cc" 2 > ># 1 "../objects/intersection_types.h" 1 ># 32 "../objects/intersection_types.h" >class ConicLineIntersectionType > : public ArgsParserObjectType >{ > ConicLineIntersectionType(); > ~ConicLineIntersectionType(); >public: > static const ConicLineIntersectionType* instance(); > ObjectImp* calc( const Args& parents, const KigDocument& ) const; > const ObjectImpType* resultId() const; >}; > > > > > >class ConicLineOtherIntersectionType > : public ArgsParserObjectType >{ > ConicLineOtherIntersectionType(); > ~ConicLineOtherIntersectionType(); >public: > static const ConicLineOtherIntersectionType* instance(); > ObjectImp* calc( const Args& parents, const KigDocument& ) const; > const ObjectImpType* resultId() const; >}; > >class LineLineIntersectionType > : public ArgsParserObjectType >{ > LineLineIntersectionType(); > ~LineLineIntersectionType(); >public: > static const LineLineIntersectionType* instance(); > ObjectImp* calc( const Args& parents, const KigDocument& ) const; > const ObjectImpType* resultId() const; >}; > >class LineCubicIntersectionType > : public ArgsParserObjectType >{ > LineCubicIntersectionType(); > ~LineCubicIntersectionType(); >public: > static const LineCubicIntersectionType* instance(); > ObjectImp* calc( const Args& parents, const KigDocument& ) const; > const ObjectImpType* resultId() const; >}; > >class CircleCircleIntersectionType > : public ArgsParserObjectType >{ > CircleCircleIntersectionType(); > ~CircleCircleIntersectionType(); >public: > static const CircleCircleIntersectionType* instance(); > ObjectImp* calc( const Args& parents, const KigDocument& ) const; > const ObjectImpType* resultId() const; >}; > > > > >class ArcLineIntersectionType > : public ArgsParserObjectType >{ > ArcLineIntersectionType(); > ~ArcLineIntersectionType(); >public: > static const ArcLineIntersectionType* instance(); > ObjectImp* calc( const Args& parents, const KigDocument& ) const; > const ObjectImpType* resultId() const; >}; ># 37 "drgeo-filter.cc" 2 ># 1 "../objects/line_imp.h" 1 ># 25 "../objects/line_imp.h" >class LineData; > > > > > >class AbstractLineImp > : public CurveImp >{ >protected: > LineData mdata; > AbstractLineImp( const LineData& d ); > AbstractLineImp( const Coordinate& a, const Coordinate& b ); > >public: > typedef CurveImp Parent; > > > > > static const ObjectImpType* stype(); > > ~AbstractLineImp(); > > bool inRect( const Rect& r, int width, const KigWidget& ) const; > > const uint numberOfProperties() const; > const QCStringList properties() const; > const QCStringList propertiesInternalNames() const; > ObjectImp* property( uint which, const KigDocument& d ) const; > const char* iconForProperty( uint which ) const; > const ObjectImpType* impRequirementForProperty( uint which ) const; > bool isPropertyDefinedOnOrThroughThisImp( uint which ) const; > > > > > > > double slope() const; > > > > > const QString equationString() const; > > > > LineData data() const; > > bool equals( const ObjectImp& rhs ) const; >}; > > > > >class SegmentImp > : public AbstractLineImp >{ >public: > typedef AbstractLineImp Parent; > > > > > static const ObjectImpType* stype(); > > > > > SegmentImp( const Coordinate& a, const Coordinate& b ); > > > > SegmentImp( const LineData& d ); > > void draw( KigPainter& p ) const; > bool contains( const Coordinate& p, int width, const KigWidget& si ) const; > Rect surroundingRect() const; > > ObjectImp* transform( const Transformation& ) const; > > const Coordinate getPoint( double param, const KigDocument& ) const; > double getParam( const Coordinate&, const KigDocument& ) const; > > const uint numberOfProperties() const; > const QCStringList properties() const; > const QCStringList propertiesInternalNames() const; > ObjectImp* property( uint which, const KigDocument& d ) const; > const char* iconForProperty( uint which ) const; > const ObjectImpType* impRequirementForProperty( uint which ) const; > > SegmentImp* copy() const; > > > > > double length() const; > > const ObjectImpType* type() const; > void visit( ObjectImpVisitor* vtor ) const; > > bool containsPoint( const Coordinate& p, const KigDocument& doc ) const; > bool internalContainsPoint( const Coordinate& p, double threshold ) const; >}; > > > > > > >class RayImp > : public AbstractLineImp >{ >public: > typedef AbstractLineImp Parent; > > > > > static const ObjectImpType* stype(); > > > > > RayImp( const Coordinate& a, const Coordinate& b ); > > > > RayImp( const LineData& d ); > > void draw( KigPainter& p ) const; > bool contains( const Coordinate& p, int width, const KigWidget& si ) const; > Rect surroundingRect() const; > > ObjectImp* transform( const Transformation& ) const; > > const Coordinate getPoint( double param, const KigDocument& ) const; > double getParam( const Coordinate&, const KigDocument& ) const; > > RayImp* copy() const; > > const ObjectImpType* type() const; > void visit( ObjectImpVisitor* vtor ) const; > > bool containsPoint( const Coordinate& p, const KigDocument& doc ) const; > bool internalContainsPoint( const Coordinate& p, double threshold ) const; >}; > > > > >class LineImp > : public AbstractLineImp >{ >public: > typedef AbstractLineImp Parent; > > > > > > static const ObjectImpType* stype(); > > > > > LineImp( const Coordinate& a, const Coordinate& b ); > > > > LineImp( const LineData& d ); > void draw( KigPainter& p ) const; > bool contains( const Coordinate& p, int width, const KigWidget& si ) const; > Rect surroundingRect() const; > > ObjectImp* transform( const Transformation& ) const; > > const Coordinate getPoint( double param, const KigDocument& ) const; > double getParam( const Coordinate&, const KigDocument& ) const; > > LineImp* copy() const; > > const ObjectImpType* type() const; > void visit( ObjectImpVisitor* vtor ) const; > > bool containsPoint( const Coordinate& p, const KigDocument& doc ) const; > bool internalContainsPoint( const Coordinate& p, double threshold ) const; >}; ># 38 "drgeo-filter.cc" 2 ># 1 "../objects/line_type.h" 1 ># 23 "../objects/line_type.h" >class LineData; > >class SegmentABType > : public ObjectABType >{ > SegmentABType(); > ~SegmentABType(); >public: > static const SegmentABType* instance(); > > ObjectImp* calc( const Coordinate& a, const Coordinate& b ) const; > const ObjectImpType* resultId() const; > > QStringList specialActions() const; > > void executeAction( int i, ObjectHolder& o, ObjectTypeCalcer& c, > KigPart& d, KigWidget& w, NormalMode& m ) const; >}; > >class LineABType > : public ObjectABType >{ > LineABType(); > ~LineABType(); >public: > static const LineABType* instance(); > ObjectImp* calc( const Coordinate& a, const Coordinate& b ) const; > const ObjectImpType* resultId() const; >}; > >class RayABType > : public ObjectABType >{ > RayABType(); > ~RayABType(); >public: > static const RayABType* instance(); > ObjectImp* calc( const Coordinate& a, const Coordinate& b ) const; > const ObjectImpType* resultId() const; >}; > >class LinePerpendLPType > : public ObjectLPType >{ > LinePerpendLPType(); > ~LinePerpendLPType(); >public: > static LinePerpendLPType* instance(); > ObjectImp* calc( const LineData& a, const Coordinate& b ) const; > const ObjectImpType* resultId() const; >}; > >class LineParallelLPType > : public ObjectLPType >{ > LineParallelLPType(); > ~LineParallelLPType(); >public: > static LineParallelLPType* instance(); > ObjectImp* calc( const LineData& a, const Coordinate& b ) const; > const ObjectImpType* resultId() const; >}; > >class LineByVectorType > : public ArgsParserObjectType >{ > LineByVectorType(); > ~LineByVectorType(); >public: > static const LineByVectorType* instance(); > ObjectImp* calc( const Args& args, const KigDocument& ) const; > const ObjectImpType* resultId() const; >}; > >class HalflineByVectorType > : public ArgsParserObjectType >{ > HalflineByVectorType(); > ~HalflineByVectorType(); >public: > static const HalflineByVectorType* instance(); > ObjectImp* calc( const Args& args, const KigDocument& ) const; > const ObjectImpType* resultId() const; >}; ># 39 "drgeo-filter.cc" 2 ># 1 "../objects/object_calcer.h" 1 ># 22 "../objects/object_calcer.h" ># 1 "../misc/boost_intrusive_pointer.hpp" 1 ># 40 "../misc/boost_intrusive_pointer.hpp" ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/functional" 1 3 ># 52 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/functional" 3 > ># 53 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/g++-v3/functional" 3 ># 41 "../misc/boost_intrusive_pointer.hpp" 2 > > > >namespace myboost >{ ># 62 "../misc/boost_intrusive_pointer.hpp" >template<class T> class intrusive_ptr >{ >private: > > typedef intrusive_ptr this_type; > >public: > > typedef T element_type; > > intrusive_ptr(): p_(0) > { > } > > intrusive_ptr(T * p, bool add_ref = true): p_(p) > { > if(p_ != 0 && add_ref) intrusive_ptr_add_ref(p_); > } > > > > template<class U> intrusive_ptr(intrusive_ptr<U> const & rhs): p_(rhs.get()) > { > if(p_ != 0) intrusive_ptr_add_ref(p_); > } > > > > intrusive_ptr(intrusive_ptr const & rhs): p_(rhs.p_) > { > if(p_ != 0) intrusive_ptr_add_ref(p_); > } > > ~intrusive_ptr() > { > if(p_ != 0) intrusive_ptr_release(p_); > } > > > > template<class U> intrusive_ptr & operator=(intrusive_ptr<U> const & rhs) > { > this_type(rhs).swap(*this); > return *this; > } > > > > intrusive_ptr & operator=(intrusive_ptr const & rhs) > { > this_type(rhs).swap(*this); > return *this; > } > > intrusive_ptr & operator=(T * rhs) > { > this_type(rhs).swap(*this); > return *this; > } > > T * get() const > { > return p_; > } > > T & operator*() const > { > return *p_; > } > > T * operator->() const > { > return p_; > } > > typedef T * (intrusive_ptr::*unspecified_bool_type) () const; > > operator unspecified_bool_type () const > { > return p_ == 0? 0: &intrusive_ptr::get; > } > > > bool operator! () const > { > return p_ == 0; > } > > void swap(intrusive_ptr & rhs) > { > T * tmp = p_; > p_ = rhs.p_; > rhs.p_ = tmp; > } > >private: > > T * p_; >}; > >template<class T, class U> inline bool operator==(intrusive_ptr<T> const & a, intrusive_ptr<U> const & b) >{ > return a.get() == b.get(); >} > >template<class T, class U> inline bool operator!=(intrusive_ptr<T> const & a, intrusive_ptr<U> const & b) >{ > return a.get() != b.get(); >} > >template<class T> inline bool operator==(intrusive_ptr<T> const & a, T * b) >{ > return a.get() == b; >} > >template<class T> inline bool operator!=(intrusive_ptr<T> const & a, T * b) >{ > return a.get() != b; >} > >template<class T> inline bool operator==(T * a, intrusive_ptr<T> const & b) >{ > return a == b.get(); >} > >template<class T> inline bool operator!=(T * a, intrusive_ptr<T> const & b) >{ > return a != b.get(); >} ># 203 "../misc/boost_intrusive_pointer.hpp" >template<class T> inline bool operator<(intrusive_ptr<T> const & a, intrusive_ptr<T> const & b) >{ > return std::less<T *>()(a.get(), b.get()); >} > >template<class T> void swap(intrusive_ptr<T> & lhs, intrusive_ptr<T> & rhs) >{ > lhs.swap(rhs); >} > > > >template<class T> T * get_pointer(intrusive_ptr<T> const & p) >{ > return p.get(); >} > >template<class T, class U> intrusive_ptr<T> static_pointer_cast(intrusive_ptr<U> const & p) >{ > return static_cast<T *>(p.get()); >} > >template<class T, class U> intrusive_ptr<T> dynamic_pointer_cast(intrusive_ptr<U> const & p) >{ > return dynamic_cast<T *>(p.get()); >} ># 242 "../misc/boost_intrusive_pointer.hpp" >template<class E, class T, class Y> std::basic_ostream<E, T> & operator<< (std::basic_ostream<E, T> & os, intrusive_ptr<Y> const & p) >{ > os << p.get(); > return os; >} > > > >} ># 23 "../objects/object_calcer.h" 2 > >class ObjectCalcer; > >void intrusive_ptr_add_ref( ObjectCalcer* p ); >void intrusive_ptr_release( ObjectCalcer* p ); ># 65 "../objects/object_calcer.h" >class ObjectCalcer >{ >protected: > > > > > > > friend void intrusive_ptr_add_ref( ObjectCalcer* p ); > friend void intrusive_ptr_release( ObjectCalcer* p ); > int refcount; > void ref(); > void deref(); > > > > > std::vector<ObjectCalcer*> mchildren; > > ObjectCalcer(); >public: > > > void addChild( ObjectCalcer* c ); > > > > void delChild( ObjectCalcer* c ); > > > typedef myboost::intrusive_ptr<ObjectCalcer> shared_ptr; > > > > > std::vector<ObjectCalcer*> children() const; > > virtual ~ObjectCalcer(); > > > > virtual std::vector<ObjectCalcer*> parents() const = 0; > > > > virtual const ObjectImp* imp() const = 0; > > > > > virtual void calc( const KigDocument& ) = 0; ># 128 "../objects/object_calcer.h" > virtual const ObjectImpType* impRequirement( > ObjectCalcer* o, const std::vector<ObjectCalcer*>& os ) const = 0; > > > > > virtual bool canMove() const; > > > > > > virtual bool isFreelyTranslatable() const; > > > > > > > virtual std::vector<ObjectCalcer*> movableParents() const; > > > > > > > virtual Coordinate moveReferencePoint() const; > > > > > > > > virtual void move( const Coordinate& to, const KigDocument& doc ); > > > > > > > > virtual bool isDefinedOnOrThrough( const ObjectCalcer* o ) const = 0; >}; > > > > > > >class ObjectTypeCalcer > : public ObjectCalcer >{ > std::vector<ObjectCalcer*> mparents; > const ObjectType* mtype; > ObjectImp* mimp; >public: > typedef myboost::intrusive_ptr<ObjectTypeCalcer> shared_ptr; ># 194 "../objects/object_calcer.h" > ObjectTypeCalcer( const ObjectType* type, const std::vector<ObjectCalcer*>& parents, bool sort=true ); > ~ObjectTypeCalcer(); > > const ObjectImp* imp() const; > std::vector<ObjectCalcer*> parents() const; > void calc( const KigDocument& doc ); > > > > > > > void setParents( const std::vector<ObjectCalcer*> np ); > void setType( const ObjectType* t ); > > const ObjectType* type() const; > > const ObjectImpType* impRequirement( > ObjectCalcer* o, const std::vector<ObjectCalcer*>& os ) const; > bool isDefinedOnOrThrough( const ObjectCalcer* o ) const; > bool canMove() const; > bool isFreelyTranslatable() const; > std::vector<ObjectCalcer*> movableParents() const; > Coordinate moveReferencePoint() const; > void move( const Coordinate& to, const KigDocument& doc ); >}; > > > > > > > >class ObjectConstCalcer > : public ObjectCalcer >{ > ObjectImp* mimp; >public: > typedef myboost::intrusive_ptr<ObjectConstCalcer> shared_ptr; ># 242 "../objects/object_calcer.h" > ObjectConstCalcer( ObjectImp* imp ); > ~ObjectConstCalcer(); > > const ObjectImp* imp() const; > void calc( const KigDocument& doc ); > std::vector<ObjectCalcer*> parents() const; > > > > > > void setImp( ObjectImp* newimp ); > > > > > ObjectImp* switchImp( ObjectImp* newimp ); > > const ObjectImpType* impRequirement( > ObjectCalcer* o, const std::vector<ObjectCalcer*>& os ) const; > bool isDefinedOnOrThrough( const ObjectCalcer* o ) const; >}; > > > > > > > >class ObjectPropertyCalcer > : public ObjectCalcer >{ > ObjectImp* mimp; > ObjectCalcer* mparent; > int mpropid; >public: > > > > > ObjectPropertyCalcer( ObjectCalcer* parent, int propid ); > ~ObjectPropertyCalcer(); > > const ObjectImp* imp() const; > std::vector<ObjectCalcer*> parents() const; > void calc( const KigDocument& doc ); > > int propId() const; > ObjectCalcer* parent() const; > > const ObjectImpType* impRequirement( > ObjectCalcer* o, const std::vector<ObjectCalcer*>& os ) const; > bool isDefinedOnOrThrough( const ObjectCalcer* o ) const; >}; ># 40 "drgeo-filter.cc" 2 ># 1 "../objects/object_drawer.h" 1 ># 24 "../objects/object_drawer.h" >class ObjectImp; >class KigPainter; >class Coordinate; >class KigWidget; >class Rect; ># 46 "../objects/object_drawer.h" >class ObjectDrawer >{ > QColor mcolor; > bool mshown; > int mwidth; > Qt::PenStyle mstyle; > int mpointstyle; >public: > > > > > > ObjectDrawer(); > ObjectDrawer( const QColor& color, int width = -1, bool shown = true, Qt::PenStyle = Qt::SolidLine, int pointStyle = 0 ); > > > void draw( const ObjectImp& imp, KigPainter& p, bool selected ) const; > > > > bool contains( const ObjectImp& imp, const Coordinate& pt, const KigWidget& w, bool nv = false ) const; > > > bool inRect( const ObjectImp& imp, const Rect& r, const KigWidget& w ) const; > > > > bool shown( ) const; > > QColor color() const; > > int width() const; > > Qt::PenStyle style() const; > > int pointStyle() const; > > QString pointStyleToString() const; > > QString styleToString() const; > > > ObjectDrawer* getCopyShown( bool s ) const; > > > ObjectDrawer* getCopyColor( const QColor& c ) const; > > > ObjectDrawer* getCopyWidth( int w ) const; > > > ObjectDrawer* getCopyStyle( Qt::PenStyle s ) const; > > > ObjectDrawer* getCopyPointStyle( int p ) const; > > > > static int pointStyleFromString( const QString& style ); > > > > static Qt::PenStyle styleFromString( const QString& style ); >}; ># 41 "drgeo-filter.cc" 2 ># 1 "../objects/object_factory.h" 1 ># 23 "../objects/object_factory.h" >class ObjectFactory >{ >public: > > static const ObjectFactory* instance(); > > > > ObjectHolder* fixedPoint( const Coordinate& c ) const; > ObjectTypeCalcer* fixedPointCalcer( const Coordinate& c ) const; > > > > > > ObjectTypeCalcer* cursorPointCalcer( const Coordinate& c ) const; > > > > ObjectTypeCalcer* relativePointCalcer( ObjectCalcer* o, const Coordinate& loc ) const; > > > > ObjectHolder* constrainedPoint( ObjectCalcer* curve, double param ) const; > ObjectTypeCalcer* constrainedPointCalcer( ObjectCalcer* curve, double param ) const; > > > ObjectTypeCalcer* constrainedPointCalcer( > ObjectCalcer* curve, const Coordinate& c, const KigDocument& ) const; > ObjectHolder* constrainedPoint( > ObjectCalcer* curve, const Coordinate& c, const KigDocument& ) const; ># 62 "../objects/object_factory.h" > ObjectTypeCalcer* sensiblePointCalcer( > const Coordinate& c, const KigDocument& d, const KigWidget& w ) const; > ObjectHolder* sensiblePoint( > const Coordinate& c, const KigDocument& d, const KigWidget& w ) const; > > > void redefinePoint( ObjectTypeCalcer* point, const Coordinate& c, > KigDocument& d, const KigWidget& w ) const; > > > > > > > > ObjectTypeCalcer* locusCalcer( ObjectCalcer* a, ObjectCalcer* b ) const; > ObjectHolder* locus( ObjectCalcer* a, ObjectCalcer* b ) const; > > > > ObjectHolder* label( > const QString& s, const Coordinate& loc, > bool needframe, const std::vector<ObjectCalcer*>& parents, > const KigDocument& doc ) const; > ObjectTypeCalcer* labelCalcer( > const QString& s, const Coordinate& loc, > bool needframe, const std::vector<ObjectCalcer*>& parents, > const KigDocument& doc ) const; > > > > ObjectTypeCalcer* attachedLabelCalcer( > const QString& s, ObjectCalcer* locationparent, > const Coordinate& loc, bool needframe, > const std::vector<ObjectCalcer*>& parents, > const KigDocument& doc ) const; > ObjectHolder* attachedLabel( > const QString& s, ObjectCalcer* locationparent, > const Coordinate& loc, bool needframe, > const std::vector<ObjectCalcer*>& parents, > const KigDocument& doc ) const; > > > > > > ObjectPropertyCalcer* propertyObjectCalcer( ObjectCalcer* o, const char* p ) const; > ObjectHolder* propertyObject( ObjectCalcer* o, const char* p ) const; >}; ># 42 "drgeo-filter.cc" 2 ># 1 "../objects/object_holder.h" 1 ># 40 "../objects/object_holder.h" >class ObjectHolder >{ > ObjectCalcer::shared_ptr mcalcer; > ObjectDrawer* mdrawer; > ObjectConstCalcer::shared_ptr mnamecalcer; > >public: > > > > > ObjectHolder( ObjectCalcer* calcer, ObjectDrawer* drawer, ObjectConstCalcer* namecalcer ); > > > > > ObjectHolder( ObjectCalcer* calcer, ObjectDrawer* drawer ); > > > > > ObjectHolder( ObjectCalcer* calcer ); > ~ObjectHolder(); > > const ObjectImp* imp() const; > const ObjectCalcer* calcer() const; > ObjectCalcer* calcer(); > const ObjectDrawer* drawer() const; > ObjectDrawer* drawer(); > > const ObjectConstCalcer* nameCalcer() const; > ObjectConstCalcer* nameCalcer(); > > > > void setNameCalcer( ObjectConstCalcer* namecalcer ); > > > const QString name() const; > > > > > void setDrawer( ObjectDrawer* d ); > > > > > ObjectDrawer* switchDrawer( ObjectDrawer* d ); > > > > > void calc( const KigDocument& ); > > > > > void draw( KigPainter& p, bool selected ) const; > > > > bool contains( const Coordinate& p, const KigWidget& w, bool nv = false ) const; > > > > bool inRect( const Rect& r, const KigWidget& w ) const; > > > > bool shown( ) const; > > > > > > const Coordinate moveReferencePoint() const; > > > > > void move( const Coordinate& to, const KigDocument& ); > > > > > bool canMove() const; > > > > > bool isFreelyTranslatable() const; > > > > > > > QString selectStatement() const; >}; ># 43 "drgeo-filter.cc" 2 > ># 1 "../objects/other_imp.h" 1 ># 28 "../objects/other_imp.h" >class AngleImp > : public ObjectImp >{ > const Coordinate mpoint; > const double mstartangle; > const double mangle; >public: > typedef ObjectImp Parent; > > > > static const ObjectImpType* stype(); > > > > > > AngleImp( const Coordinate& pt, double start_angle_in_radials, > double angle_in_radials ); > ~AngleImp(); > > ObjectImp* transform( const Transformation& ) const; > > void draw( KigPainter& p ) const; > bool contains( const Coordinate& p, int width, const KigWidget& ) const; > bool inRect( const Rect& r, int width, const KigWidget& ) const; > Rect surroundingRect() const; > > Coordinate attachPoint() const; > const uint numberOfProperties() const; > const QCStringList properties() const; > const QCStringList propertiesInternalNames() const; > ObjectImp* property( uint which, const KigDocument& w ) const; > const char* iconForProperty( uint which ) const; > const ObjectImpType* impRequirementForProperty( uint which ) const; > bool isPropertyDefinedOnOrThroughThisImp( uint which ) const; > > ObjectImp* copy() const; > > > > > const double size() const; > const ObjectImpType* type() const; > void visit( ObjectImpVisitor* vtor ) const; > > > > > const Coordinate point() const { return mpoint; }; > > > > const double startAngle() const { return mstartangle; }; > > > > const double angle() const { return mangle; }; > > bool equals( const ObjectImp& rhs ) const; >}; > > > > >class VectorImp > : public CurveImp >{ > LineData mdata; >public: > typedef CurveImp Parent; > > > > static const ObjectImpType* stype(); > > > > > VectorImp( const Coordinate& a, const Coordinate& b ); > ~VectorImp(); > > ObjectImp* transform( const Transformation& ) const; > > const Coordinate getPoint( double param, const KigDocument& ) const; > double getParam( const Coordinate&, const KigDocument& ) const; > > void draw( KigPainter& p ) const; > bool contains( const Coordinate& p, int width, const KigWidget& ) const; > bool inRect( const Rect& r, int width, const KigWidget& ) const; > Rect surroundingRect() const; > > const uint numberOfProperties() const; > const QCStringList properties() const; > const QCStringList propertiesInternalNames() const; > ObjectImp* property( uint which, const KigDocument& w ) const; > const char* iconForProperty( uint which ) const; > const ObjectImpType* impRequirementForProperty( uint which ) const; > bool isPropertyDefinedOnOrThroughThisImp( uint which ) const; > > VectorImp* copy() const; > > > > > const Coordinate dir() const; > > > > const Coordinate a() const; > > > > const Coordinate b() const; > > > > const double length() const; > > > > LineData data() const; > > const ObjectImpType* type() const; > void visit( ObjectImpVisitor* vtor ) const; > > bool equals( const ObjectImp& rhs ) const; > > bool containsPoint( const Coordinate& p, const KigDocument& doc ) const; > bool internalContainsPoint( const Coordinate& p, double threshold ) const; >}; > > > > >class ArcImp > : public CurveImp >{ > Coordinate mcenter; > double mradius; > double msa; > double ma; >public: > typedef CurveImp Parent; > > > > static const ObjectImpType* stype(); > > > > > > ArcImp( const Coordinate& center, const double radius, > const double startangle, const double angle ); > ~ArcImp(); > ArcImp* copy() const; > > ObjectImp* transform( const Transformation& t ) const; > > void draw( KigPainter& p ) const; > bool contains( const Coordinate& p, int width, const KigWidget& w ) const; > bool inRect( const Rect& r, int width, const KigWidget& si ) const; > Rect surroundingRect() const; > bool valid() const; > > const uint numberOfProperties() const; > const QCStringList properties() const; > const QCStringList propertiesInternalNames() const; > ObjectImp* property( uint which, const KigDocument& d ) const; > const char* iconForProperty( uint which ) const; > const ObjectImpType* impRequirementForProperty( uint which ) const; > bool isPropertyDefinedOnOrThroughThisImp( uint which ) const; > > const ObjectImpType* type() const; > void visit( ObjectImpVisitor* vtor ) const; > > double getParam( const Coordinate& c, const KigDocument& d ) const; > const Coordinate getPoint( double p, const KigDocument& d ) const; > > > > > const Coordinate center() const; > > > > double radius() const; > > > > double startAngle() const; > > > > double angle() const; > > > > Coordinate firstEndPoint() const; > > > > Coordinate secondEndPoint() const; > > > > const double sectorSurface() const; > > bool equals( const ObjectImp& rhs ) const; > > bool containsPoint( const Coordinate& p, const KigDocument& doc ) const; > bool internalContainsPoint( const Coordinate& p, double threshold ) const; >}; ># 45 "drgeo-filter.cc" 2 ># 1 "../objects/other_type.h" 1 ># 24 "../objects/other_type.h" >class LocusType > : public ArgsParserObjectType >{ > typedef ArgsParserObjectType Parent; > LocusType(); > ~LocusType(); >public: > static const LocusType* instance(); > > ObjectImp* calc( const Args& args, const KigDocument& ) const; > > const ObjectImpType* impRequirement( const ObjectImp* o, const Args& parents ) const; > > bool inherits( int type ) const; > const ObjectImpType* resultId() const; > > std::vector<ObjectCalcer*> sortArgs( const std::vector<ObjectCalcer*>& args ) const; > Args sortArgs( const Args& args ) const; >}; > >class CopyObjectType > : public ObjectType >{ >protected: > CopyObjectType(); > ~CopyObjectType(); >public: > static CopyObjectType* instance(); > bool inherits( int type ) const; > ObjectImp* calc( const Args& parents, const KigDocument& d ) const; > const ObjectImpType* impRequirement( const ObjectImp* o, const Args& parents ) const; > bool isDefinedOnOrThrough( const ObjectImp* o, const Args& parents ) const; > const ObjectImpType* resultId() const; > std::vector<ObjectCalcer*> sortArgs( const std::vector<ObjectCalcer*>& os ) const; > Args sortArgs( const Args& args ) const; >}; ># 46 "drgeo-filter.cc" 2 ># 1 "../objects/point_imp.h" 1 ># 27 "../objects/point_imp.h" >class PointImp > : public ObjectImp >{ > Coordinate mc; >public: > typedef ObjectImp Parent; > > > > static const ObjectImpType* stype(); > > > > > PointImp( const Coordinate& c ); > ~PointImp(); > > Rect surroundingRect() const; > Coordinate attachPoint() const; > > > > > const Coordinate& coordinate() const { return mc; }; > > > > void setCoordinate( const Coordinate& c ); > > void draw( KigPainter& p ) const; > bool contains( const Coordinate& p, int width, const KigWidget& ) const; > bool inRect( const Rect& r, int width, const KigWidget& ) const; > > const uint numberOfProperties() const; > const QCStringList properties() const; > const QCStringList propertiesInternalNames() const; > ObjectImp* property( uint which, const KigDocument& d ) const; > const char* iconForProperty( uint which ) const; > const ObjectImpType* impRequirementForProperty( uint which ) const; > bool isPropertyDefinedOnOrThroughThisImp( uint which ) const; > > ObjectImp* transform( const Transformation& ) const; > > PointImp* copy() const; > > const ObjectImpType* type() const; > void visit( ObjectImpVisitor* vtor ) const; > > void fillInNextEscape( QString& s, const KigDocument& ) const; > bool canFillInNextEscape() const; > > bool equals( const ObjectImp& rhs ) const; >}; > >class BogusPointImp > : public PointImp >{ >public: > BogusPointImp( const Coordinate& c ); > ~BogusPointImp(); > static const ObjectImpType* stype(); > const ObjectImpType* type() const; >}; ># 47 "drgeo-filter.cc" 2 ># 1 "../objects/point_type.h" 1 ># 25 "../objects/point_type.h" >class FixedPointType > : public ArgsParserObjectType >{ > FixedPointType(); > ~FixedPointType(); > > static const ArgsParser::spec argsspec[1]; >public: > static const FixedPointType* instance(); > > bool inherits( int type ) const; > > ObjectImp* calc( const Args& parents, const KigDocument& ) const; > bool canMove( const ObjectTypeCalcer& ourobj ) const; > bool isFreelyTranslatable( const ObjectTypeCalcer& ourobj ) const; > std::vector<ObjectCalcer*> movableParents( const ObjectTypeCalcer& ourobj ) const; > const Coordinate moveReferencePoint( const ObjectTypeCalcer& ourobj ) const; > void move( ObjectTypeCalcer& ourobj, const Coordinate& to, > const KigDocument& ) const; > const ObjectImpType* resultId() const; > > QStringList specialActions() const; > void executeAction( int i, ObjectHolder& o, ObjectTypeCalcer& t, > KigPart& d, KigWidget& w, NormalMode& m ) const; >}; > >class RelativePointType > : public ArgsParserObjectType >{ > RelativePointType(); > ~RelativePointType(); > > static const ArgsParser::spec argsspec[1]; >public: > static const RelativePointType* instance(); > > ObjectImp* calc( const Args& parents, const KigDocument& ) const; > bool canMove( const ObjectTypeCalcer& ourobj ) const; > bool isFreelyTranslatable( const ObjectTypeCalcer& ourobj ) const; > std::vector<ObjectCalcer*> movableParents( const ObjectTypeCalcer& ourobj ) const; > const Coordinate moveReferencePoint( const ObjectTypeCalcer& ourobj ) const; > void move( ObjectTypeCalcer& ourobj, const Coordinate& to, > const KigDocument& ) const; > const ObjectImpType* resultId() const; > > > > >}; > >class CursorPointType > : public ObjectType >{ > CursorPointType(); > ~CursorPointType(); > >public: > static const CursorPointType* instance(); > ObjectImp* calc( const Args& parents, const KigDocument& ) const; > > const ObjectImpType* impRequirement( const ObjectImp* o, const Args& parents ) const; > bool isDefinedOnOrThrough( const ObjectImp* o, const Args& parents ) const; > std::vector<ObjectCalcer*> sortArgs( const std::vector<ObjectCalcer*>& args ) const; > Args sortArgs( const Args& args ) const; > bool canMove( const ObjectTypeCalcer& ourobj ) const; > void move( ObjectTypeCalcer& ourobj, const Coordinate& to, > const KigDocument& ) const; > const ObjectImpType* resultId() const; >}; > >class ConstrainedPointType > : public ArgsParserObjectType >{ > ConstrainedPointType(); > ~ConstrainedPointType(); >public: > static const ConstrainedPointType* instance(); > > bool inherits( int type ) const; > > ObjectImp* calc( const Args& parents, const KigDocument& ) const; > > bool canMove( const ObjectTypeCalcer& ourobj ) const; > bool isFreelyTranslatable( const ObjectTypeCalcer& ourobj ) const; > std::vector<ObjectCalcer*> movableParents( const ObjectTypeCalcer& ourobj ) const; > const Coordinate moveReferencePoint( const ObjectTypeCalcer& ourobj ) const; > void move( ObjectTypeCalcer& ourobj, const Coordinate& to, > const KigDocument& ) const; > const ObjectImpType* resultId() const; > > QStringList specialActions() const; > void executeAction( int i, ObjectHolder&, ObjectTypeCalcer& o, KigPart& d, KigWidget& w, > NormalMode& m ) const; >}; > >class MidPointType > : public ObjectABType >{ > MidPointType(); > ~MidPointType(); >public: > static const MidPointType* instance(); > ObjectImp* calc( const Coordinate& a, const Coordinate& b ) const; > const ObjectImpType* resultId() const; >}; > >class MeasureTransportType > : public ObjectType >{ > MeasureTransportType(); > ~MeasureTransportType(); >public: > static const MeasureTransportType* instance(); > > ObjectImp* calc( const Args& parents, const KigDocument& ) const; > const ObjectImpType* resultId() const; > const ObjectImpType* impRequirement( const ObjectImp* o, const Args& parents ) const; > bool isDefinedOnOrThrough( const ObjectImp* o, const Args& parents ) const; > std::vector<ObjectCalcer*> sortArgs( const std::vector<ObjectCalcer*>& args )const; > Args sortArgs( const Args& args ) const; >}; > >class MeasureTransportTypeOld > : public ArgsParserObjectType >{ > MeasureTransportTypeOld(); > ~MeasureTransportTypeOld(); >public: > static const MeasureTransportTypeOld* instance(); > > ObjectImp* calc( const Args& parents, const KigDocument& ) const; > const ObjectImpType* resultId() const; >}; ># 48 "drgeo-filter.cc" 2 ># 1 "../objects/polygon_type.h" 1 ># 26 "../objects/polygon_type.h" >class TriangleB3PType > : public ArgsParserObjectType >{ > TriangleB3PType(); > ~TriangleB3PType(); >public: > static const TriangleB3PType* instance(); > > ObjectImp* calc( const Args& parents, const KigDocument& ) const; > const ObjectImpType* resultId() const; > bool canMove( const ObjectTypeCalcer& o ) const; > bool isFreelyTranslatable( const ObjectTypeCalcer& o ) const; > std::vector<ObjectCalcer*> movableParents( const ObjectTypeCalcer& ourobj ) const; > void move( ObjectTypeCalcer& o, const Coordinate& to, > const KigDocument& d ) const; > const Coordinate moveReferencePoint( const ObjectTypeCalcer& o ) const; >}; > > > > >class PolygonBNPType > : public ObjectType >{ > PolygonBNPType(); > ~PolygonBNPType(); >public: > static const PolygonBNPType* instance(); > > ObjectImp* calc( const Args& parents, const KigDocument& ) const; > const ObjectImpType* resultId() const; > const ObjectImpType* impRequirement( const ObjectImp* o, const Args& parents ) const; > bool isDefinedOnOrThrough( const ObjectImp* o, const Args& parents ) const; > std::vector<ObjectCalcer*> sortArgs( const std::vector<ObjectCalcer*>& args ) const; > Args sortArgs( const Args& args ) const; > > bool canMove( const ObjectTypeCalcer& o ) const; > bool isFreelyTranslatable( const ObjectTypeCalcer& o ) const; > std::vector<ObjectCalcer*> movableParents( const ObjectTypeCalcer& ourobj ) const; > void move( ObjectTypeCalcer& o, const Coordinate& to, > const KigDocument& d ) const; > const Coordinate moveReferencePoint( const ObjectTypeCalcer& o ) const; >}; > > > > >class PolygonBCVType > : public ObjectType >{ > PolygonBCVType(); > ~PolygonBCVType(); >public: > static const PolygonBCVType* instance(); > > ObjectImp* calc( const Args& parents, const KigDocument& ) const; > const ObjectImpType* resultId() const; > > const ObjectImpType* impRequirement( const ObjectImp* o, const Args& parents ) const; > bool isDefinedOnOrThrough( const ObjectImp* o, const Args& parents ) const; > std::vector<ObjectCalcer*> sortArgs( const std::vector<ObjectCalcer*>& args ) const; > Args sortArgs( const Args& args ) const; > bool canMove( const ObjectTypeCalcer& o ) const; > bool isFreelyTranslatable( const ObjectTypeCalcer& o ) const; > std::vector<ObjectCalcer*> movableParents( const ObjectTypeCalcer& ourobj ) const; > void move( ObjectTypeCalcer& o, const Coordinate& to, > const KigDocument& d ) const; > const Coordinate moveReferencePoint( const ObjectTypeCalcer& o ) const; >}; > >class PolygonLineIntersectionType > : public ArgsParserObjectType >{ > PolygonLineIntersectionType(); > ~PolygonLineIntersectionType(); >public: > static const PolygonLineIntersectionType* instance(); > ObjectImp* calc( const Args& parents, const KigDocument& ) const; > const ObjectImpType* resultId() const; >}; > >class PolygonVertexType > : public ArgsParserObjectType >{ > PolygonVertexType(); > ~PolygonVertexType(); >public: > static const PolygonVertexType* instance(); > ObjectImp* calc( const Args& parents, const KigDocument& ) const; > const ObjectImpType* resultId() const; >}; > >class PolygonSideType > : public ArgsParserObjectType >{ > PolygonSideType(); > ~PolygonSideType(); >public: > static const PolygonSideType* instance(); > ObjectImp* calc( const Args& parents, const KigDocument& ) const; > const ObjectImpType* resultId() const; >}; > >class ConvexHullType > : public ArgsParserObjectType >{ > ConvexHullType(); > ~ConvexHullType(); >public: > static const ConvexHullType* instance(); > ObjectImp* calc( const Args& parents, const KigDocument& ) const; > const ObjectImpType* resultId() const; >}; ># 49 "drgeo-filter.cc" 2 ># 1 "../objects/transform_types.h" 1 ># 23 "../objects/transform_types.h" >class TranslatedType > : public ArgsParserObjectType >{ > TranslatedType(); > ~TranslatedType(); >public: > static const TranslatedType* instance(); > ObjectImp* calc( const Args& args, const KigDocument& ) const; > const ObjectImpType* resultId() const; > > bool isTransform() const; >}; > >class PointReflectionType > : public ArgsParserObjectType >{ > PointReflectionType(); > ~PointReflectionType(); >public: > static const PointReflectionType* instance(); > ObjectImp* calc( const Args& args, const KigDocument& ) const; > const ObjectImpType* resultId() const; > > bool isTransform() const; >}; > >class LineReflectionType > : public ArgsParserObjectType >{ > LineReflectionType(); > ~LineReflectionType(); >public: > static const LineReflectionType* instance(); > ObjectImp* calc( const Args& args, const KigDocument& ) const; > const ObjectImpType* resultId() const; > > bool isTransform() const; >}; > >class RotationType > : public ArgsParserObjectType >{ > RotationType(); > ~RotationType(); >public: > static const RotationType* instance(); > ObjectImp* calc( const Args& args, const KigDocument& ) const; > const ObjectImpType* resultId() const; > > bool isTransform() const; >}; > >class ScalingOverCenterType > : public ArgsParserObjectType >{ > ScalingOverCenterType(); > ~ScalingOverCenterType(); >public: > static const ScalingOverCenterType* instance(); > ObjectImp* calc( const Args& args, const KigDocument& ) const; > const ObjectImpType* resultId() const; > > bool isTransform() const; >}; > >class ScalingOverCenter2Type > : public ArgsParserObjectType >{ > ScalingOverCenter2Type(); > ~ScalingOverCenter2Type(); >public: > static const ScalingOverCenter2Type* instance(); > ObjectImp* calc( const Args& args, const KigDocument& ) const; > const ObjectImpType* resultId() const; > > bool isTransform() const; >}; > >class ScalingOverLineType > : public ArgsParserObjectType >{ > ScalingOverLineType(); > ~ScalingOverLineType(); >public: > static const ScalingOverLineType* instance(); > ObjectImp* calc( const Args& args, const KigDocument& ) const; > const ObjectImpType* resultId() const; > > bool isTransform() const; >}; > >class ScalingOverLine2Type > : public ArgsParserObjectType >{ > ScalingOverLine2Type(); > ~ScalingOverLine2Type(); >public: > static const ScalingOverLine2Type* instance(); > ObjectImp* calc( const Args& args, const KigDocument& ) const; > const ObjectImpType* resultId() const; > > bool isTransform() const; >}; > >class ProjectiveRotationType > : public ArgsParserObjectType >{ > ProjectiveRotationType(); > ~ProjectiveRotationType(); >public: > static const ProjectiveRotationType* instance(); > ObjectImp* calc( const Args& args, const KigDocument& ) const; > const ObjectImpType* resultId() const; > > bool isTransform() const; >}; > >class HarmonicHomologyType > : public ArgsParserObjectType >{ > HarmonicHomologyType(); > ~HarmonicHomologyType(); >public: > static const HarmonicHomologyType* instance(); > ObjectImp* calc( const Args& args, const KigDocument& ) const; > const ObjectImpType* resultId() const; > > bool isTransform() const; >}; > >class AffinityB2TrType > : public ArgsParserObjectType >{ > AffinityB2TrType(); > ~AffinityB2TrType(); >public: > static const AffinityB2TrType* instance(); > ObjectImp* calc( const Args& args, const KigDocument& ) const; > const ObjectImpType* resultId() const; > > bool isTransform() const; >}; > >class AffinityGI3PType > : public ArgsParserObjectType >{ > AffinityGI3PType(); > ~AffinityGI3PType(); >public: > static const AffinityGI3PType* instance(); > ObjectImp* calc( const Args& args, const KigDocument& ) const; > const ObjectImpType* resultId() const; > > bool isTransform() const; >}; > >class ProjectivityB2QuType > : public ArgsParserObjectType >{ > ProjectivityB2QuType(); > ~ProjectivityB2QuType(); >public: > static const ProjectivityB2QuType* instance(); > ObjectImp* calc( const Args& args, const KigDocument& ) const; > const ObjectImpType* resultId() const; > > bool isTransform() const; >}; > >class ProjectivityGI4PType > : public ArgsParserObjectType >{ > ProjectivityGI4PType(); > ~ProjectivityGI4PType(); >public: > static const ProjectivityGI4PType* instance(); > ObjectImp* calc( const Args& args, const KigDocument& ) const; > const ObjectImpType* resultId() const; > > bool isTransform() const; >}; > >class CastShadowType > : public ArgsParserObjectType >{ > CastShadowType(); > ~CastShadowType(); >public: > static const CastShadowType* instance(); > ObjectImp* calc( const Args& args, const KigDocument& ) const; > const ObjectImpType* resultId() const; > > bool isTransform() const; >}; > >class ApplyTransformationObjectType > : public ArgsParserObjectType >{ > ApplyTransformationObjectType(); > ~ApplyTransformationObjectType(); >public: > static const ApplyTransformationObjectType* instance(); > ObjectImp* calc( const Args& args, const KigDocument& ) const; > const ObjectImpType* resultId() const; > bool isTransform() const; >}; > >class SimilitudeType > : public ArgsParserObjectType >{ > SimilitudeType(); > ~SimilitudeType(); >public: > static const SimilitudeType* instance(); > ObjectImp* calc( const Args& args, const KigDocument& ) const; > const ObjectImpType* resultId() const; > > bool isTransform() const; >}; ># 50 "drgeo-filter.cc" 2 ># 1 "../objects/vector_type.h" 1 ># 23 "../objects/vector_type.h" >class VectorType > : public ObjectABType >{ > VectorType(); > ~VectorType(); >public: > static const VectorType* instance(); > ObjectImp* calc( const Coordinate& a, const Coordinate& b ) const; > const ObjectImpType* resultId() const; >}; > >class VectorSumType > : public ArgsParserObjectType >{ > VectorSumType(); > ~VectorSumType(); >public: > static const VectorSumType* instance(); > ObjectImp* calc( const Args& args, const KigDocument& ) const; > const ObjectImpType* resultId() const; >}; ># 51 "drgeo-filter.cc" 2 > > > ># 1 "/usr/qt/3/include/qfile.h" 1 ># 47 "/usr/qt/3/include/qfile.h" >class QDir; >class QFilePrivate; > >class QFile : public QIODevice >{ >public: > QFile(); > QFile( const QString &name ); > ~QFile(); > > QString name() const; > void setName( const QString &name ); > > typedef QCString (*EncoderFn)( const QString &fileName ); > typedef QString (*DecoderFn)( const QCString &localfileName ); > static QCString encodeName( const QString &fileName ); > static QString decodeName( const QCString &localFileName ); > static void setEncodingFunction( EncoderFn ); > static void setDecodingFunction( DecoderFn ); > > bool exists() const; > static bool exists( const QString &fileName ); > > bool remove(); > static bool remove( const QString &fileName ); > > bool open( int ); > bool open( int, FILE * ); > bool open( int, int ); > void close(); > void flush(); > > Offset size() const; > Offset at() const; > bool at( Offset ); > bool atEnd() const; > > Q_LONG readBlock( char *data, Q_ULONG len ); > Q_LONG writeBlock( const char *data, Q_ULONG len ); > Q_LONG writeBlock( const QByteArray& data ) > { return QIODevice::writeBlock(data); } > Q_LONG readLine( char *data, Q_ULONG maxlen ); > Q_LONG readLine( QString &, Q_ULONG maxlen ); > > int getch(); > int putch( int ); > int ungetch( int ); > > int handle() const; > > QString errorString() const; > >protected: > void setErrorString( const QString& ); > QString fn; > FILE *fh; > int fd; > Offset length; > bool ext_f; > QFilePrivate *d; > >private: > void init(); > void setErrorStringErrno( int ); > QCString ungetchBuffer; > >private: > > QFile( const QFile & ); > QFile &operator=( const QFile & ); > >}; > > >inline QString QFile::name() const >{ return fn; } > >inline QIODevice::Offset QFile::at() const >{ return ioIndex; } ># 55 "drgeo-filter.cc" 2 > > > > > > > >struct DrGeoHierarchyElement >{ > QString id; > std::vector<QString> parents; >}; > >KigFilterDrgeo::KigFilterDrgeo() >{ >} > >KigFilterDrgeo::~KigFilterDrgeo() >{ >} > >bool KigFilterDrgeo::supportMime( const QString& mime ) >{ > return mime == "application/x-drgeo"; >} > >KigDocument* KigFilterDrgeo::load( const QString& file ) >{ > QFile f( file ); > if ( ! f.open( 0x0001 ) ) > { > fileNotFound( file ); > return 0; > } > > QStringList figures; > QDomDocument doc( "drgenius" ); > if ( !doc.setContent( &f ) ) > { QString locs = i18n( "An error was encountered at " "line %1 in file %2." ) .arg( 93 ).arg( "drgeo-filter.cc" ); parseError( file, locs ); return 0; }; > QDomElement main = doc.documentElement(); > int nmacros = 0; > > for ( QDomNode n = main.firstChild(); ! n.isNull(); n = n.nextSibling() ) > { > QDomElement e = n.toElement(); > if ( e.isNull() ) continue; > else if ( e.tagName() == "drgeo" ) > figures.append( e.attribute( "name" ) ); > else if ( e.tagName() == "macro" ) > nmacros++; > } > if ( figures.isEmpty() ) { > if( nmacros > 0 ) > warning( i18n( "The Dr. Geo file \"%1\" is a macro file so it contains no " > "figures." ).arg( file ) ); > else > warning( i18n( "There are no figures in Dr. Geo file \"%1\"." ).arg( file ) ); > return false; > } > > int nfig = figures.count(); > > if ( nfig == 0 ) > return 0; > > int myfig = 0; > > if ( nfig > 1 ) > { > > KigFilterDrgeoChooser* c = new KigFilterDrgeoChooser( figures ); > myfig = c->exec(); > delete c; > } > > > > > int curfig = -1; > > for ( QDomNode n = main.firstChild(); ! n.isNull(); n = n.nextSibling() ) > { > QDomElement e = n.toElement(); > if ( e.isNull() ) continue; > else if ( e.tagName() == "drgeo" ) > { > curfig += 1; > if ( curfig == myfig ) > { > > > > bool grid = !e.attribute( "grid" ).isEmpty() && > ( e.attribute( "grid" ) != "False" ); > return importFigure( e.firstChild(), file, grid ); > } > } > } > > return 0; >} > >int convertDrgeoIndex( const std::vector<DrGeoHierarchyElement> es, const QString myid ) >{ > for ( uint i = 0; i < es.size(); ++i ) > if ( es[i].id == myid ) > return i; > return -1; >} > >const Coordinate convertDrgeoLineParam( const double param, const LineData& line ) >{ > const double n = ( param - 0.5 ) * 3.14159265358979323846; > const Coordinate c = line.dir() / line.dir().length(); > const Coordinate p = line.a + tan( n ) * c; > return p; >} > >const Coordinate convertDrgeoHalflineParam( const double param, const LineData& line ) >{ > const double n = param * 3.14159265358979323846 * 0.5; > const Coordinate c = line.dir() / line.dir().length(); > const Coordinate p = line.a + tan( n ) * c; > return p; >} > >KigDocument* KigFilterDrgeo::importFigure( QDomNode f, const QString& file, const bool grid ) >{ > KigDocument* ret = new KigDocument(); > > using namespace std; > std::vector<DrGeoHierarchyElement> elems; > int withoutid = 0; > > > for (QDomNode a = f; ! a.isNull(); a = a.nextSibling() ) > { > QDomElement domelem = a.toElement(); > if ( domelem.isNull() ) continue; > else > { > DrGeoHierarchyElement elem; > > > > for ( QDomNode c = domelem.firstChild(); ! c.isNull(); c = c.nextSibling() ) > { > QDomElement ce = c.toElement(); > if ( ce.isNull() ) continue; > else if ( ce.tagName() == "parent" ) > elem.parents.push_back( ce.attribute( "ref" ) ); > } > QString curid = domelem.attribute( "id" ); > elem.id = !curid.isNull() ? curid : QString::number( withoutid++ ) ; > elems.push_back( elem ); > } > } ># 228 "drgeo-filter.cc" > int curid = 0; > const ObjectFactory* fact = ObjectFactory::instance(); > std::vector<ObjectHolder*> holders; > std::vector<ObjectHolder*> holders2; > ObjectTypeCalcer* oc = 0; > ObjectCalcer* oc2 = 0; > int nignored = 0; > > > > for (QDomNode a = f; ! a.isNull(); a = a.nextSibling() ) > { > > > > const DrGeoHierarchyElement& el = elems[curid]; > std::vector<ObjectCalcer*> parents; > for ( uint j = 0; j < el.parents.size(); ++j ) > { > int parentid = convertDrgeoIndex( elems, el.parents[j] ); > if ( parentid == -1 ) > { QString locs = i18n( "An error was encountered at " "line %1 in file %2." ) .arg( 249 ).arg( "drgeo-filter.cc" ); parseError( file, locs ); return 0; }; > parents.push_back( holders[parentid-nignored]->calcer() ); > }; > QDomElement domelem = a.toElement(); ># 266 "drgeo-filter.cc" > if ( domelem.isNull() ) continue; > else if ( domelem.tagName() == "point" ) > { > QString xs; > QString ys; > QString values; > for ( QDomNode c = domelem.firstChild(); ! c.isNull(); c = c.nextSibling() ) > { > QDomElement ce = c.toElement(); > if ( ce.isNull() ) continue; > else if ( ce.tagName() == "x" ) > xs = ce.text(); > else if ( ce.tagName() == "y" ) > ys = ce.text(); > else if ( ce.tagName() == "value" ) > values = ce.text(); > } > if ( domelem.attribute( "type" ) == "Free" ) > { > bool ok; > bool ok2; > double x = xs.toDouble( &ok ); > double y = ys.toDouble( &ok2 ); > if ( ! ( ok && ok2 ) ) > { QString locs = i18n( "An error was encountered at " "line %1 in file %2." ) .arg( 290 ).arg( "drgeo-filter.cc" ); parseError( file, locs ); return 0; }; > oc = fact->fixedPointCalcer( Coordinate( x, y ) ); > } > else if ( domelem.attribute( "type" ) == "Middle_2pts" ) > oc = new ObjectTypeCalcer( MidPointType::instance(), parents ); > else if ( domelem.attribute( "type" ) == "Middle_segment" ) > { > if ( parents.size() != 1 ) { QString locs = i18n( "An error was encountered at " "line %1 in file %2." ) .arg( 297 ).arg( "drgeo-filter.cc" ); parseError( file, locs ); return 0; }; > if ( !parents[0]->imp()->inherits( SegmentImp::stype() ) ) > { QString locs = i18n( "An error was encountered at " "line %1 in file %2." ) .arg( 299 ).arg( "drgeo-filter.cc" ); parseError( file, locs ); return 0; }; > ObjectPropertyCalcer* o1 = fact->propertyObjectCalcer( parents[0], "end-point-A" ); > o1->calc( *ret ); > ObjectPropertyCalcer* o2 = fact->propertyObjectCalcer( parents[0], "end-point-B" ); > o2->calc( *ret ); > std::vector<ObjectCalcer*> args; > args.push_back( o1 ); > args.push_back( o2 ); > oc = new ObjectTypeCalcer( MidPointType::instance(), args ); > } > else if ( domelem.attribute( "type" ) == "On_curve" ) > { > bool ok3; > double value = values.toDouble( &ok3 ); > if ( ! ok3 ) > { QString locs = i18n( "An error was encountered at " "line %1 in file %2." ) .arg( 314 ).arg( "drgeo-filter.cc" ); parseError( file, locs ); return 0; }; > if ( ( parents[0]->imp()->inherits( CircleImp::stype() ) ) || > ( parents[0]->imp()->inherits( SegmentImp::stype() ) ) ) > oc = fact->constrainedPointCalcer( parents[0], value ); > else if ( parents[0]->imp()->inherits( LineImp::stype() ) ) > { > const LineData l = static_cast<const LineImp*>( parents[0]->imp() )->data(); > const Coordinate p = convertDrgeoLineParam( value, l ); > oc = fact->constrainedPointCalcer( parents[0], p, *ret ); > } > else if ( parents[0]->imp()->inherits( RayImp::stype() ) ) > { > const LineData l = static_cast<const RayImp*>( parents[0]->imp() )->data(); > const Coordinate p = convertDrgeoHalflineParam( value, l ); > oc = fact->constrainedPointCalcer( parents[0], p, *ret ); > } > else if ( parents[0]->imp()->inherits( ArcImp::stype() ) ) > oc = fact->constrainedPointCalcer( parents[0], 1 - value ); > else > { > > notSupported( file, i18n( "This Dr. Geo file contains a \"%1 %2\" object, " > "which Kig does not currently support." ).arg( domelem.tagName() ).arg( > domelem.attribute( "type" ) ) ); > return false; > } > } > else if ( domelem.attribute( "type" ) == "Intersection" ) > { > if ( ( parents[0]->imp()->inherits( AbstractLineImp::stype() ) ) && > ( parents[1]->imp()->inherits( AbstractLineImp::stype() ) ) ) > oc = new ObjectTypeCalcer( LineLineIntersectionType::instance(), parents ); > else > { > bool ok; > int which = domelem.attribute( "extra" ).toInt( &ok ); > if ( !ok ) { QString locs = i18n( "An error was encountered at " "line %1 in file %2." ) .arg( 350 ).arg( "drgeo-filter.cc" ); parseError( file, locs ); return 0; }; > if ( which == 1 ) which = -1; > else if ( which == 0 ) which = 1; > else { QString locs = i18n( "An error was encountered at " "line %1 in file %2." ) .arg( 353 ).arg( "drgeo-filter.cc" ); parseError( file, locs ); return 0; }; > std::vector<ObjectCalcer*> args = parents; > const ObjectType* type = 0; > args.push_back( new ObjectConstCalcer( new IntImp( which ) ) ); > if ( ( parents[0]->imp()->inherits( CircleImp::stype() ) ) && > ( parents[1]->imp()->inherits( CircleImp::stype() ) ) ) > type = CircleCircleIntersectionType::instance(); > else if ( ( parents[0]->imp()->inherits( CircleImp::stype() ) && > parents[1]->imp()->inherits( AbstractLineImp::stype() ) ) || > ( parents[1]->imp()->inherits( CircleImp::stype() ) && > parents[0]->imp()->inherits( AbstractLineImp::stype() ) ) ) > type = ConicLineIntersectionType::instance(); > else if ( ( parents[0]->imp()->inherits( ArcImp::stype() ) && > parents[1]->imp()->inherits( AbstractLineImp::stype() ) ) || > ( parents[1]->imp()->inherits( ArcImp::stype() ) && > parents[0]->imp()->inherits( AbstractLineImp::stype() ) ) ) > type = ArcLineIntersectionType::instance(); > else > { > notSupported( file, i18n( "This Dr. Geo file contains an intersection type, " > "which Kig does not currently support." ) ); > return false; > } > oc = new ObjectTypeCalcer( type, args ); > } > } > else if ( domelem.attribute( "type" ) == "Reflexion" ) > oc = new ObjectTypeCalcer( LineReflectionType::instance(), parents ); > else if ( domelem.attribute( "type" ) == "Symmetry" ) > oc = new ObjectTypeCalcer( PointReflectionType::instance(), parents ); > else if ( domelem.attribute( "type" ) == "Translation" ) > oc = new ObjectTypeCalcer( TranslatedType::instance(), parents ); > else if ( domelem.attribute( "type" ) == "Rotation" ) > oc = new ObjectTypeCalcer( RotationType::instance(), parents ); > else > { > notSupported( file, i18n( "This Dr. Geo file contains a \"%1 %2\" object, " > "which Kig does not currently support." ).arg( domelem.tagName() ).arg( > domelem.attribute( "type" ) ) ); > return false; > } > > > > } > else if( ( domelem.tagName() == "line" ) || > ( domelem.tagName() == "halfLine" ) || > ( domelem.tagName() == "segment" ) || > ( domelem.tagName() == "vector" ) || > ( domelem.tagName() == "circle" ) || > ( domelem.tagName() == "arcCircle" ) || > ( domelem.tagName() == "polygon" ) ) > { > const ObjectType* type = 0; > if ( domelem.attribute( "type" ) == "2pts" ) > { > if( domelem.tagName() == "line" ) > type = LineABType::instance(); > else if( domelem.tagName() == "halfLine" ) > type = RayABType::instance(); > else if( domelem.tagName() == "segment" ) > type = SegmentABType::instance(); > else if( domelem.tagName() == "vector" ) > type = VectorType::instance(); > else if( domelem.tagName() == "circle" ) > type = CircleBCPType::instance(); > else > { > notSupported( file, i18n( "This Dr. Geo file contains a \"%1 %2\" object, " > "which Kig does not currently support." ).arg( domelem.tagName() ).arg( > domelem.attribute( "type" ) ) ); > return false; > } > oc = new ObjectTypeCalcer( type, parents ); > } > else if( domelem.attribute( "type" ) == "3pts" ) > { > if( domelem.tagName() == "arcCircle" ) > type = ArcBTPType::instance(); > else > { > notSupported( file, i18n( "This Dr. Geo file contains a \"%1 %2\" object, " > "which Kig does not currently support." ).arg( domelem.tagName() ).arg( > domelem.attribute( "type" ) ) ); > return false; > } > oc = new ObjectTypeCalcer( type, parents ); > } > else if( domelem.attribute( "type" ) == "segment" ) > { > if( domelem.tagName() == "circle" ) > { > type = CircleBPRType::instance(); > ObjectPropertyCalcer* o = fact->propertyObjectCalcer( parents[1], "length" ); > o->calc( *ret ); > ObjectCalcer* a = parents[0]; > parents.clear(); > parents.push_back( a ); > parents.push_back( o ); > } > else > { > notSupported( file, i18n( "This Dr. Geo file contains a \"%1 %2\" object, " > "which Kig does not currently support." ).arg( domelem.tagName() ).arg( > domelem.attribute( "type" ) ) ); > return false; > } > oc = new ObjectTypeCalcer( type, parents ); > } > else if( domelem.attribute( "type" ) == "npts" ) > { > if( domelem.tagName() == "polygon" ) > { > if ( parents.size() < 3 ) { QString locs = i18n( "An error was encountered at " "line %1 in file %2." ) .arg( 466 ).arg( "drgeo-filter.cc" ); parseError( file, locs ); return 0; }; > type = PolygonBNPType::instance(); > } > else > { > notSupported( file, i18n( "This Dr. Geo file contains a \"%1 %2\" object, " > "which Kig does not currently support." ).arg( domelem.tagName() ).arg( > domelem.attribute( "type" ) ) ); > return false; > } > oc = new ObjectTypeCalcer( type, parents ); > } > else if ( domelem.attribute( "type" ) == "perpendicular" ) > oc = new ObjectTypeCalcer( LinePerpendLPType::instance(), parents ); > else if ( domelem.attribute( "type" ) == "parallel" ) > oc = new ObjectTypeCalcer( LineParallelLPType::instance(), parents ); > else if ( domelem.attribute( "type" ) == "Reflexion" ) > oc = new ObjectTypeCalcer( LineReflectionType::instance(), parents ); > else if ( domelem.attribute( "type" ) == "Symmetry" ) > oc = new ObjectTypeCalcer( PointReflectionType::instance(), parents ); > else if ( domelem.attribute( "type" ) == "Translation" ) > oc = new ObjectTypeCalcer( TranslatedType::instance(), parents ); > else if ( domelem.attribute( "type" ) == "Rotation" ) > oc = new ObjectTypeCalcer( RotationType::instance(), parents ); > else > { > notSupported( file, i18n( "This Dr. Geo file contains a \"%1 %2\" object, " > "which Kig does not currently support." ).arg( domelem.tagName() ).arg( > domelem.attribute( "type" ) ) ); > return false; > } > > > > } > else if( ( domelem.tagName() == "numeric" ) || > ( domelem.tagName() == "equation" ) ) > { > QString xs; > QString ys; > QString value; > for ( QDomNode c = domelem.firstChild(); ! c.isNull(); c = c.nextSibling() ) > { > QDomElement ce = c.toElement(); > if ( ce.isNull() ) continue; > else if ( ce.tagName() == "x" ) > xs = ce.text(); > else if ( ce.tagName() == "y" ) > ys = ce.text(); > else if ( ce.tagName() == "value" ) > value = ce.text(); > } > bool ok; > bool ok2; > double x = xs.toDouble( &ok ); > double y = ys.toDouble( &ok2 ); > if ( ! ( ok && ok2 ) ) > { QString locs = i18n( "An error was encountered at " "line %1 in file %2." ) .arg( 523 ).arg( "drgeo-filter.cc" ); parseError( file, locs ); return 0; }; > Coordinate m( x, y ); > > > if ( domelem.attribute( "type" ) == "value" ) > { > bool ok3; > double dvalue = value.toDouble( &ok3 ); > if ( ok3 ) > value = QString( "%1" ).arg( dvalue, 0, 'g', 3 ); > oc = fact->labelCalcer( value, m, false, std::vector<ObjectCalcer*>(), *ret ); > } > else if ( domelem.attribute( "type" ) == "pt_abscissa" ) > { > if ( parents.size() != 1 ) { QString locs = i18n( "An error was encountered at " "line %1 in file %2." ) .arg( 537 ).arg( "drgeo-filter.cc" ); parseError( file, locs ); return 0; }; > oc = filtersConstructTextObject( m, parents[0], "coordinate-x", *ret, false ); > } > else if ( domelem.attribute( "type" ) == "pt_ordinate" ) > { > if ( parents.size() != 1 ) { QString locs = i18n( "An error was encountered at " "line %1 in file %2." ) .arg( 542 ).arg( "drgeo-filter.cc" ); parseError( file, locs ); return 0; }; > oc = filtersConstructTextObject( m, parents[0], "coordinate-y", *ret, false ); > } > else if ( domelem.attribute( "type" ) == "segment_length" ) > { > if ( parents.size() != 1 ) { QString locs = i18n( "An error was encountered at " "line %1 in file %2." ) .arg( 547 ).arg( "drgeo-filter.cc" ); parseError( file, locs ); return 0; }; > oc = filtersConstructTextObject( m, parents[0], "length", *ret, false ); > } > else if ( domelem.attribute( "type" ) == "circle_perimeter" ) > { > if ( parents.size() != 1 ) { QString locs = i18n( "An error was encountered at " "line %1 in file %2." ) .arg( 552 ).arg( "drgeo-filter.cc" ); parseError( file, locs ); return 0; }; > oc = filtersConstructTextObject( m, parents[0], "circumference", *ret, false ); > } > else if ( domelem.attribute( "type" ) == "arc_length" ) > { > if ( parents.size() != 1 ) { QString locs = i18n( "An error was encountered at " "line %1 in file %2." ) .arg( 557 ).arg( "drgeo-filter.cc" ); parseError( file, locs ); return 0; }; > oc = filtersConstructTextObject( m, parents[0], "arc-length", *ret, false ); > } > else if ( domelem.attribute( "type" ) == "distance_2pts" ) > { > if ( parents.size() != 2 ) { QString locs = i18n( "An error was encountered at " "line %1 in file %2." ) .arg( 562 ).arg( "drgeo-filter.cc" ); parseError( file, locs ); return 0; }; > ObjectTypeCalcer* so = new ObjectTypeCalcer( SegmentABType::instance(), parents ); > so->calc( *ret ); > oc = filtersConstructTextObject( m, so, "length", *ret, false ); > } > else if ( domelem.attribute( "type" ) == "vector_norm" ) > { > if ( parents.size() != 1 ) { QString locs = i18n( "An error was encountered at " "line %1 in file %2." ) .arg( 569 ).arg( "drgeo-filter.cc" ); parseError( file, locs ); return 0; }; > oc = filtersConstructTextObject( m, parents[0], "length", *ret, false ); > } > else if ( domelem.attribute( "type" ) == "vector_abscissa" ) > { > if ( parents.size() != 1 ) { QString locs = i18n( "An error was encountered at " "line %1 in file %2." ) .arg( 574 ).arg( "drgeo-filter.cc" ); parseError( file, locs ); return 0; }; > oc = filtersConstructTextObject( m, parents[0], "length-x", *ret, false ); > } > else if ( domelem.attribute( "type" ) == "vector_ordinate" ) > { > if ( parents.size() != 1 ) { QString locs = i18n( "An error was encountered at " "line %1 in file %2." ) .arg( 579 ).arg( "drgeo-filter.cc" ); parseError( file, locs ); return 0; }; > oc = filtersConstructTextObject( m, parents[0], "length-y", *ret, false ); > } > else if ( domelem.attribute( "type" ) == "slope" ) > { > if ( parents.size() != 1 ) { QString locs = i18n( "An error was encountered at " "line %1 in file %2." ) .arg( 584 ).arg( "drgeo-filter.cc" ); parseError( file, locs ); return 0; }; > oc = filtersConstructTextObject( m, parents[0], "slope", *ret, false ); > } > else if ( domelem.attribute( "type" ) == "distance_pt_line" ) > { > if ( parents.size() != 2 ) { QString locs = i18n( "An error was encountered at " "line %1 in file %2." ) .arg( 589 ).arg( "drgeo-filter.cc" ); parseError( file, locs ); return 0; }; > std::vector<ObjectCalcer*> args; > args.push_back( parents[1] ); > args.push_back( parents[0] ); > ObjectTypeCalcer* po = new ObjectTypeCalcer( LinePerpendLPType::instance(), args ); > po->calc( *ret ); > args.clear(); > args.push_back( parents[1] ); > args.push_back( po ); > ObjectTypeCalcer* io = new ObjectTypeCalcer( LineLineIntersectionType::instance(), args ); > io->calc( *ret ); > args.clear(); > args.push_back( parents[0] ); > args.push_back( io ); > ObjectTypeCalcer* so = new ObjectTypeCalcer( SegmentABType::instance(), args ); > so->calc( *ret ); > oc = filtersConstructTextObject( m, so, "length", *ret, false ); > } > > else if ( domelem.attribute( "type" ) == "line" ) > { > if ( parents.size() != 1 ) { QString locs = i18n( "An error was encountered at " "line %1 in file %2." ) .arg( 610 ).arg( "drgeo-filter.cc" ); parseError( file, locs ); return 0; }; > oc = filtersConstructTextObject( m, parents[0], "equation", *ret, false ); > } > else if ( domelem.attribute( "type" ) == "circle" ) > { > if ( parents.size() != 1 ) { QString locs = i18n( "An error was encountered at " "line %1 in file %2." ) .arg( 615 ).arg( "drgeo-filter.cc" ); parseError( file, locs ); return 0; }; > oc = filtersConstructTextObject( m, parents[0], "simply-cartesian-equation", *ret, false ); > } > else > { > notSupported( file, i18n( "This Dr. Geo file contains a \"%1 %2\" object, " > "which Kig does not currently support." ).arg( domelem.tagName() ).arg( > domelem.attribute( "type" ) ) ); > return false; > } > > > > } > else if ( domelem.tagName() == "angle" ) > { > if ( domelem.attribute( "type" ) == "3pts" ) > { > if ( parents.size() != 3 ) { QString locs = i18n( "An error was encountered at " "line %1 in file %2." ) .arg( 633 ).arg( "drgeo-filter.cc" ); parseError( file, locs ); return 0; }; > oc = new ObjectTypeCalcer( HalfAngleType::instance(), parents ); > } > else > { > notSupported( file, i18n( "This Dr. Geo file contains a \"%1 %2\" object, " > "which Kig does not currently support." ).arg( domelem.tagName() ).arg( > domelem.attribute( "type" ) ) ); > return false; > } > > > > } > else if ( domelem.tagName() == "script" ) > { > QString xs; > QString ys; > QString text; > for ( QDomNode c = domelem.firstChild(); ! c.isNull(); c = c.nextSibling() ) > { > QDomElement ce = c.toElement(); > if ( ce.isNull() ) continue; > else if ( ce.tagName() == "x" ) > xs = ce.text(); > else if ( ce.tagName() == "y" ) > ys = ce.text(); > else if ( ce.tagName() == "code" ) > text = ce.text(); > } > bool ok; > bool ok2; > double x = xs.toDouble( &ok ); > double y = ys.toDouble( &ok2 ); > if ( ! ( ok && ok2 ) ) > { QString locs = i18n( "An error was encountered at " "line %1 in file %2." ) .arg( 668 ).arg( "drgeo-filter.cc" ); parseError( file, locs ); return 0; }; > > > > > > > if ( domelem.attribute( "type" ) == "nitems" ) > oc = fact->labelCalcer( text, Coordinate( x, y ), false, std::vector<ObjectCalcer*>(), *ret ); > else > { > notSupported( file, i18n( "This Dr. Geo file contains a \"%1 %2\" object, " > "which Kig does not currently support." ).arg( domelem.tagName() ).arg( > domelem.attribute( "type" ) ) ); > return false; > } > } > else if ( domelem.tagName() == "locus" ) > { > if ( domelem.attribute( "type" ) == "None" ) > oc = fact->locusCalcer( parents[0], parents[1] ); > else > { > notSupported( file, i18n( "This Dr. Geo file contains a \"%1 %2\" object, " > "which Kig does not currently support." ).arg( domelem.tagName() ).arg( > domelem.attribute( "type" ) ) ); > return false; > } > > > > } > else if ( ( domelem.tagName() == "boundingBox" ) || > ( domelem.tagName() == "customUI" ) ) > { > > nignored++; > } > else > { > > > > notSupported( file, i18n( "This Dr. Geo file contains a \"%1 %2\" object, " > "which Kig does not currently support." ).arg( domelem.tagName() ).arg( > domelem.attribute( "type" ) ) ); > return false; > } > curid++; > if ( oc == 0 ) > continue; > > > QColor co( domelem.attribute( "color" ) ); > if ( ! co.isValid() ) > if ( domelem.attribute( "color" ) == "Bordeaux" ) > co.setRgb( 145, 0, 0 ); > else > co = Qt::blue; > > > > > int w = -1; > Qt::PenStyle s = Qt::SolidLine; > if ( domelem.tagName() == "point" ) > { > if ( domelem.attribute( "thickness" ) == "Normal" ) > w = 7; > else if ( domelem.attribute( "thickness" ) == "Thick" ) > w = 9; > } > else > { > if ( domelem.attribute( "thickness" ) == "Dashed" ) > s = Qt::DotLine; > if ( domelem.attribute( "thickness" ) == "Thick" ) > w = 2; > } > QString ps = domelem.attribute( "style" ); > int pointstyle = ObjectDrawer::pointStyleFromString( ps ); > > bool show = ( ( domelem.attribute( "masked" ) != "True" ) && > ( domelem.attribute( "masked" ) != "Alway" ) ); > > ObjectDrawer* d = new ObjectDrawer( co, w, show, s, pointstyle ); > > QString strname = domelem.attribute( "name" ); > ObjectConstCalcer* name = new ObjectConstCalcer( new StringImp( strname ) ); > > > ObjectHolder* o = new ObjectHolder( oc, d, name ); > holders.push_back( o ); > > > > > holders[curid-1-nignored]->calc( *ret ); > > if ( domelem.tagName() == "point" ) > { > if ( !strname.isEmpty() ) > { > std::vector<ObjectCalcer*> args2; > args2.push_back( o->nameCalcer() ); > oc2 = fact->attachedLabelCalcer( QString::fromLatin1( "%1" ), oc, > static_cast<const PointImp*>( oc->imp() )->coordinate(), > false, args2, *ret ); > co = Qt::black; > } > } > else if ( domelem.tagName() == "angle" ) > { > oc2 = filtersConstructTextObject( > static_cast<const PointImp*>( holders[curid-1-nignored]->calcer()->parents()[1]->imp() )->coordinate(), > holders[curid-1-nignored]->calcer(), "angle-degrees", *ret, false ); > } > > oc = 0; > > if ( oc2 != 0 ) > { > oc2->calc( *ret ); > ObjectDrawer* d2 = new ObjectDrawer( co ); > ObjectHolder* o2 = new ObjectHolder( oc2, d2 ); > holders2.push_back( o2 ); > oc2 = 0; > } > } > > ret->addObjects( holders ); > ret->addObjects( holders2 ); > ret->setGrid( grid ); > ret->setAxes( grid ); > return ret; >} > >KigFilterDrgeo* KigFilterDrgeo::instance() >{ > static KigFilterDrgeo f; > return &f; >}
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Raw
Actions:
View
Attachments on
bug 111488
: 72119