# 1 "meta/src/TClass.cxx" # 1 "" # 1 "" # 1 "meta/src/TClass.cxx" # 27 "meta/src/TClass.cxx" # 1 "include/TClass.h" 1 # 25 "include/TClass.h" # 1 "include/TDictionary.h" 1 # 45 "include/TDictionary.h" # 1 "include/TNamed.h" 1 # 26 "include/TNamed.h" # 1 "include/TObject.h" 1 # 31 "include/TObject.h" # 1 "include/Rtypes.h" 1 # 24 "include/Rtypes.h" # 1 "include/RConfig.h" 1 # 23 "include/RConfig.h" # 1 "include/RVersion.h" 1 # 24 "include/RConfig.h" 2 # 180 "include/RConfig.h" # 1 "/usr/include/features.h" 1 3 4 # 296 "/usr/include/features.h" 3 4 # 1 "/usr/include/sys/cdefs.h" 1 3 4 # 297 "/usr/include/features.h" 2 3 4 # 319 "/usr/include/features.h" 3 4 # 1 "/usr/include/gnu/stubs.h" 1 3 4 # 320 "/usr/include/features.h" 2 3 4 # 181 "include/RConfig.h" 2 # 25 "include/Rtypes.h" 2 # 1 "include/DllImport.h" 1 # 28 "include/Rtypes.h" 2 # 1 "include/Rtypeinfo.h" 1 # 32 "include/Rtypeinfo.h" # 1 "/usr/include/g++/typeinfo" 1 3 # 38 "/usr/include/g++/typeinfo" 3 # 1 "/usr/include/g++/exception" 1 3 # 40 "/usr/include/g++/exception" 3 extern "C++" { namespace std { # 52 "/usr/include/g++/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/include/g++/exception" 3 bool uncaught_exception() throw(); } namespace __gnu_cxx { # 113 "/usr/include/g++/exception" 3 void __verbose_terminate_handler (); } } # 39 "/usr/include/g++/typeinfo" 2 3 extern "C++" { namespace __cxxabiv1 { class __class_type_info; } # 55 "/usr/include/g++/typeinfo" 3 namespace std { class type_info { public: virtual ~type_info(); private: type_info& operator=(const type_info&); type_info(const type_info&); protected: const char *__name; protected: explicit type_info(const char *__n): __name(__n) { } public: const char* name() const { return __name; } # 101 "/usr/include/g++/typeinfo" 3 bool before(const type_info& __arg) const { return __name < __arg.__name; } bool operator==(const type_info& __arg) const { return __name == __arg.__name; } bool operator!=(const type_info& __arg) const { return !operator==(__arg); } public: virtual bool __is_pointer_p() const; virtual bool __is_function_p() const; virtual bool __do_catch(const type_info *__thr_type, void **__thr_obj, unsigned __outer) const; virtual bool __do_upcast(const __cxxabiv1::__class_type_info *__target, void **__obj_ptr) const; }; class bad_cast : public exception { public: bad_cast() throw() { } virtual ~bad_cast() throw(); }; class bad_typeid : public exception { public: bad_typeid () throw() { } virtual ~bad_typeid() throw(); }; } } # 33 "include/Rtypeinfo.h" 2 using std::type_info; # 31 "include/Rtypes.h" 2 # 1 "/usr/include/stdio.h" 1 3 4 # 30 "/usr/include/stdio.h" 3 4 extern "C" { # 1 "/usr/lib/gcc-lib/i586-suse-linux/3.3.4/include/stddef.h" 1 3 4 # 213 "/usr/lib/gcc-lib/i586-suse-linux/3.3.4/include/stddef.h" 3 4 typedef unsigned int size_t; # 35 "/usr/include/stdio.h" 2 3 4 # 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/i586-suse-linux/3.3.4/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 unsigned long long int __dev_t; __extension__ typedef unsigned int __uid_t; __extension__ typedef unsigned int __gid_t; __extension__ typedef unsigned long int __ino_t; __extension__ typedef unsigned long long int __ino64_t; __extension__ typedef unsigned int __mode_t; __extension__ typedef unsigned int __nlink_t; __extension__ typedef long int __off_t; __extension__ typedef long long int __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 unsigned long long int __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 long long int __blkcnt64_t; __extension__ typedef unsigned long int __fsblkcnt_t; __extension__ typedef unsigned long long int __fsblkcnt64_t; __extension__ typedef unsigned long int __fsfilcnt_t; __extension__ typedef unsigned long long int __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; # 37 "/usr/include/stdio.h" 2 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/i586-suse-linux/3.3.4/include/stddef.h" 1 3 4 # 354 "/usr/lib/gcc-lib/i586-suse-linux/3.3.4/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/i586-suse-linux/3.3.4/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/i586-suse-linux/3.3.4/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/i586-suse-linux/3.3.4/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/i586-suse-linux/3.3.4/include/stdarg.h" 1 3 4 # 43 "/usr/lib/gcc-lib/i586-suse-linux/3.3.4/include/stdarg.h" 3 4 typedef __builtin_va_list __gnuc_va_list; # 54 "/usr/include/libio.h" 2 3 4 # 163 "/usr/include/libio.h" 3 4 struct _IO_jump_t; struct _IO_FILE; # 173 "/usr/include/libio.h" 3 4 typedef void _IO_lock_t; struct _IO_marker { struct _IO_marker *_next; struct _IO_FILE *_sbuf; int _pos; # 196 "/usr/include/libio.h" 3 4 }; enum __codecvt_result { __codecvt_ok, __codecvt_partial, __codecvt_error, __codecvt_noconv }; # 264 "/usr/include/libio.h" 3 4 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; # 312 "/usr/include/libio.h" 3 4 __off64_t _offset; void *__pad1; void *__pad2; 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_; # 351 "/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 (); # 441 "/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 (); # 471 "/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 (); # 529 "/usr/include/libio.h" 3 4 } # 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); # 176 "/usr/include/stdio.h" 3 4 extern FILE *tmpfile64 (void); extern char *tmpnam (char *__s) throw (); extern char *tmpnam_r (char *__s) throw (); # 198 "/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); # 223 "/usr/include/stdio.h" 3 4 extern int fflush_unlocked (FILE *__stream); # 233 "/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); # 264 "/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); # 456 "/usr/include/stdio.h" 3 4 extern int getc_unlocked (FILE *__stream); extern int getchar_unlocked (void); # 467 "/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); # 500 "/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); # 545 "/usr/include/stdio.h" 3 4 extern char *fgets_unlocked (char *__restrict __s, int __n, FILE *__restrict __stream); # 561 "/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); # 622 "/usr/include/stdio.h" 3 4 extern int fputs_unlocked (__const char *__restrict __s, FILE *__restrict __stream); # 633 "/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); # 669 "/usr/include/stdio.h" 3 4 extern int fseeko (FILE *__stream, __off_t __off, int __whence); extern __off_t ftello (FILE *__stream); # 688 "/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); # 711 "/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[]; # 750 "/usr/include/stdio.h" 2 3 4 extern int fileno (FILE *__stream) throw (); extern int fileno_unlocked (FILE *__stream) throw (); # 769 "/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 (); # 830 "/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); } # 831 "/usr/include/stdio.h" 2 3 4 } # 34 "include/Rtypes.h" 2 class TClass; class TBuffer; class TMemberInspector; class TObject; class TNamed; class TRootIOCtor; typedef char Char_t; typedef unsigned char UChar_t; typedef short Short_t; typedef unsigned short UShort_t; typedef int Int_t; typedef unsigned int UInt_t; typedef int Seek_t; typedef long Long_t; typedef unsigned long ULong_t; typedef float Float_t; typedef double Double_t; typedef double Double32_t; typedef char Text_t; typedef bool Bool_t; typedef unsigned char Byte_t; typedef short Version_t; typedef const char Option_t; typedef int Ssiz_t; typedef float Real_t; typedef long long Long64_t; typedef unsigned long long ULong64_t; typedef double Axis_t; typedef double Stat_t; typedef short Font_t; typedef short Style_t; typedef short Marker_t; typedef short Width_t; typedef short Color_t; typedef short SCoord_t; typedef double Coord_t; typedef float Angle_t; typedef float Size_t; enum EColor { kWhite =0, kBlack =1, kGray=920 ,kRed =632, kGreen =416, kBlue=600, kYellow=400, kMagenta=616, kCyan=432 ,kOrange=800, kSpring=820, kTeal=840, kAzure =860, kViolet =880, kPink=900}; class TClassStreamer; class TMemberStreamer; typedef void (*ClassStreamerFunc_t)(TBuffer&, void*); typedef void (*MemberStreamerFunc_t)(TBuffer&, void*, Int_t); class TVirtualCollectionProxy; typedef void (*VoidFuncPtr_t)(); # 120 "include/Rtypes.h" const Bool_t kTRUE = true; const Bool_t kFALSE = false; const Int_t kMaxUChar = 256; const Int_t kMaxChar = kMaxUChar >> 1; const Int_t kMinChar = -kMaxChar - 1; const Int_t kMaxUShort = 65534; const Int_t kMaxShort = kMaxUShort >> 1; const Int_t kMinShort = -kMaxShort - 1; const UInt_t kMaxUInt = UInt_t(~0); const Int_t kMaxInt = Int_t(kMaxUInt >> 1); const Int_t kMinInt = -kMaxInt - 1; const ULong_t kMaxULong = ULong_t(~0); const Long_t kMaxLong = Long_t(kMaxULong >> 1); const Long_t kMinLong = -kMaxLong - 1; const ULong64_t kMaxULong64 = ULong64_t(~0LL); const Long64_t kMaxLong64 = Long64_t(kMaxULong64 >> 1); const Long64_t kMinLong64 = -kMaxLong64 - 1; const size_t kBitsPerByte = 8; const Ssiz_t kNPOS = ~(Ssiz_t)0; # 157 "include/Rtypes.h" extern Int_t gDebug; typedef void (*ShowMembersFunc_t)(void *obj, TMemberInspector &R__insp, char *R__parent); class TVirtualIsAProxy; typedef TClass *(*IsAGlobalFunc_t)(const TClass*, const void *obj); template TBuffer &operator>>(TBuffer &buf, Tmpl *&obj); template TBuffer &operator<<(TBuffer &buf, const Tmpl *obj); namespace ROOT { class TGenericClassInfo; typedef void *(*NewFunc_t)(void *); typedef void *(*NewArrFunc_t)(Long_t size, void *arena); typedef void (*DelFunc_t)(void *); typedef void (*DelArrFunc_t)(void *); typedef void (*DesFunc_t)(void *); template Short_t SetClassVersion(RootClass *); extern TClass *CreateClass(const char *cname, Version_t id, const type_info &info, TVirtualIsAProxy *isa, ShowMembersFunc_t show, const char *dfil, const char *ifil, Int_t dl, Int_t il); extern void AddClass(const char *cname, Version_t id, const type_info &info, VoidFuncPtr_t dict, Int_t pragmabits); extern void RemoveClass(const char *cname); extern void ResetClassVersion(TClass*, const char*, Short_t); extern TNamed *RegisterClassTemplate(const char *name, const char *file, Int_t line); # 208 "include/Rtypes.h" class TInitBehavior { public: virtual ~TInitBehavior() { } virtual void Register(const char *cname, Version_t id, const type_info &info, VoidFuncPtr_t dict, Int_t pragmabits) const = 0; virtual void Unregister(const char *classname) const = 0; virtual TClass *CreateClass(const char *cname, Version_t id, const type_info &info, TVirtualIsAProxy *isa, ShowMembersFunc_t show, const char *dfil, const char *ifil, Int_t dl, Int_t il) const = 0; }; class TDefaultInitBehavior : public TInitBehavior { public: virtual void Register(const char *cname, Version_t id, const type_info &info, VoidFuncPtr_t dict, Int_t pragmabits) const { ROOT::AddClass(cname, id, info, dict, pragmabits); } virtual void Unregister(const char *classname) const { ROOT::RemoveClass(classname); } virtual TClass *CreateClass(const char *cname, Version_t id, const type_info &info, TVirtualIsAProxy *isa, ShowMembersFunc_t show, const char *dfil, const char *ifil, Int_t dl, Int_t il) const { return ROOT::CreateClass(cname, id, info, isa, show, dfil, ifil, dl, il); } }; const TInitBehavior *DefineBehavior(void * , void * ); } # 1 "include/TGenericClassInfo.h" 1 # 16 "include/TGenericClassInfo.h" class TVirtualIsAProxy; namespace ROOT { class TCollectionProxyInfo; class TGenericClassInfo { const TInitBehavior *fAction; TClass *fClass; const char *fClassName; const char *fDeclFileName; Int_t fDeclFileLine; VoidFuncPtr_t fDictionary; const type_info &fInfo; const char *fImplFileName; Int_t fImplFileLine; TVirtualIsAProxy *fIsA; void *fShowMembers; Int_t fVersion; NewFunc_t fNew; NewArrFunc_t fNewArray; DelFunc_t fDelete; DelArrFunc_t fDeleteArray; DesFunc_t fDestructor; TClassStreamer *fStreamer; TVirtualCollectionProxy *fCollectionProxy; Int_t fSizeof; TCollectionProxyInfo *fCollectionProxyInfo; TCollectionProxyInfo *fCollectionStreamerInfo; public: TGenericClassInfo(const char *fullClassname, const char *declFileName, Int_t declFileLine, const type_info &info, const TInitBehavior *action, void *showmembers, VoidFuncPtr_t dictionary, TVirtualIsAProxy *isa, Int_t pragmabits, Int_t sizof); TGenericClassInfo(const char *fullClassname, Int_t version, const char *declFileName, Int_t declFileLine, const type_info &info, const TInitBehavior *action, void *showmembers, VoidFuncPtr_t dictionary, TVirtualIsAProxy *isa, Int_t pragmabits, Int_t sizof); TGenericClassInfo(const char *fullClassname, Int_t version, const char *declFileName, Int_t declFileLine, const type_info &info, const TInitBehavior *action, VoidFuncPtr_t dictionary, TVirtualIsAProxy *isa, Int_t pragmabits, Int_t sizof); TGenericClassInfo(const char *fullClassname, Int_t version, const char *declFileName, Int_t declFileLine, const TInitBehavior *action, VoidFuncPtr_t dictionary, Int_t pragmabits); void Init(Int_t pragmabits); ~TGenericClassInfo(); const TInitBehavior &GetAction() const; TClass *GetClass(); const char *GetClassName() const; TCollectionProxyInfo *GetCollectionProxyInfo() const; TCollectionProxyInfo *GetCollectionStreamerInfo() const; const char *GetDeclFileName() const; Int_t GetDeclFileLine() const; DelFunc_t GetDelete() const; DelArrFunc_t GetDeleteArray() const; DesFunc_t GetDestructor() const; const char *GetImplFileName(); Int_t GetImplFileLine(); const type_info &GetInfo() const; TVirtualIsAProxy *GetIsA() const; NewFunc_t GetNew() const; NewArrFunc_t GetNewArray() const; void *GetShowMembers() const; Int_t GetVersion() const; TClass *IsA(const void *obj); Short_t AdoptStreamer(TClassStreamer*); Short_t AdoptCollectionProxy(TVirtualCollectionProxy*); void AdoptCollectionProxyInfo(TCollectionProxyInfo*); void AdoptCollectionStreamerInfo(TCollectionProxyInfo*); Int_t SetDeclFile(const char *file, Int_t line); void SetDelete(DelFunc_t deleteFunc); void SetDeleteArray(DelArrFunc_t deleteArrayFunc); void SetDestructor(DesFunc_t destructorFunc); void SetFromTemplate(); Int_t SetImplFile(const char *file, Int_t line); void SetNew(NewFunc_t newFunc); void SetNewArray(NewArrFunc_t newArrayFunc); Short_t SetStreamer(ClassStreamerFunc_t); Short_t SetVersion(Short_t version); private: TGenericClassInfo(const TGenericClassInfo&); TGenericClassInfo& operator=(const TGenericClassInfo&); private: TGenericClassInfo(); }; } # 251 "include/Rtypes.h" 2 # 32 "include/TObject.h" 2 # 1 "include/TStorage.h" 1 # 28 "include/TStorage.h" typedef void (*FreeHookFun_t)(void*, void *addr, size_t); typedef void *(*ReAllocFun_t)(void*, size_t); typedef void *(*ReAllocCFun_t)(void*, size_t, size_t); class TStorage { private: static ULong_t fgHeapBegin; static ULong_t fgHeapEnd; static size_t fgMaxBlockSize; static FreeHookFun_t fgFreeHook; static void *fgFreeHookData; static ReAllocFun_t fgReAllocHook; static ReAllocCFun_t fgReAllocCHook; static Bool_t fgHasCustomNewDelete; public: virtual ~TStorage() { } static ULong_t GetHeapBegin(); static ULong_t GetHeapEnd(); static FreeHookFun_t GetFreeHook(); static void *GetFreeHookData(); static size_t GetMaxBlockSize(); static void *Alloc(size_t size); static void Dealloc(void *ptr); static void *ReAlloc(void *vp, size_t size); static void *ReAlloc(void *vp, size_t size, size_t oldsize); static char *ReAllocChar(char *vp, size_t size, size_t oldsize); static Int_t *ReAllocInt(Int_t *vp, size_t size, size_t oldsize); static void *ObjectAlloc(size_t size); static void *ObjectAlloc(size_t size, void *vp); static void ObjectDealloc(void *vp); static void ObjectDealloc(void *vp, void *ptr); static void EnterStat(size_t size, void *p); static void RemoveStat(void *p); static void PrintStatistics(); static void SetMaxBlockSize(size_t size); static void SetFreeHook(FreeHookFun_t func, void *data); static void SetReAllocHooks(ReAllocFun_t func1, ReAllocCFun_t func2); static void SetCustomNewDelete(); static void EnableStatistics(int size= -1, int ix= -1); static Bool_t HasCustomNewDelete(); static void AddToHeap(ULong_t begin, ULong_t end); static Bool_t IsOnHeap(void *p); private: static TClass *fgIsA; public: static TClass *Class(); static const char *Class_Name(); static Version_t Class_Version() { return 0; } static void Dictionary(); virtual TClass *IsA() const { return TStorage::Class(); } virtual void ShowMembers(TMemberInspector &insp, char *parent); virtual void Streamer(TBuffer &b); void StreamerNVirtual(TBuffer &b) { TStorage::Streamer(b); } static const char *DeclFileName() { return "include/TStorage.h"; } static int ImplFileLine(); static const char *ImplFileName(); static int DeclFileLine() { return 79; } }; inline void TStorage::AddToHeap(ULong_t begin, ULong_t end) { if (begin < fgHeapBegin) fgHeapBegin = begin; if (end > fgHeapEnd) fgHeapEnd = end; } inline Bool_t TStorage::IsOnHeap(void *p) { return (ULong_t)p >= fgHeapBegin && (ULong_t)p < fgHeapEnd; } inline size_t TStorage::GetMaxBlockSize() { return fgMaxBlockSize; } inline void TStorage::SetMaxBlockSize(size_t size) { fgMaxBlockSize = size; } inline FreeHookFun_t TStorage::GetFreeHook() { return fgFreeHook; } # 35 "include/TObject.h" 2 # 1 "include/TVersionCheck.h" 1 # 28 "include/TVersionCheck.h" class TVersionCheck { public: TVersionCheck(int versionCode); }; static TVersionCheck gVersionCheck(331776); # 38 "include/TObject.h" 2 # 1 "include/Riosfwd.h" 1 # 33 "include/Riosfwd.h" # 1 "/usr/include/g++/iosfwd" 1 3 # 43 "/usr/include/g++/iosfwd" 3 # 44 "/usr/include/g++/iosfwd" 3 # 1 "/usr/include/g++/i586-suse-linux/bits/c++config.h" 1 3 # 35 "/usr/include/g++/i586-suse-linux/bits/c++config.h" 3 # 1 "/usr/include/g++/i586-suse-linux/bits/os_defines.h" 1 3 # 36 "/usr/include/g++/i586-suse-linux/bits/c++config.h" 2 3 # 46 "/usr/include/g++/iosfwd" 2 3 # 1 "/usr/include/g++/i586-suse-linux/bits/c++locale.h" 1 3 # 39 "/usr/include/g++/i586-suse-linux/bits/c++locale.h" 3 # 40 "/usr/include/g++/i586-suse-linux/bits/c++locale.h" 3 # 1 "/usr/include/g++/clocale" 1 3 # 47 "/usr/include/g++/clocale" 3 # 48 "/usr/include/g++/clocale" 3 # 1 "/usr/include/locale.h" 1 3 4 # 29 "/usr/include/locale.h" 3 4 # 1 "/usr/lib/gcc-lib/i586-suse-linux/3.3.4/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 (); # 146 "/usr/include/locale.h" 3 4 # 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; # 147 "/usr/include/locale.h" 2 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/include/g++/clocale" 2 3 namespace std { using ::lconv; using ::setlocale; using ::localeconv; } # 42 "/usr/include/g++/i586-suse-linux/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); extern char *catgets (nl_catd __catalog, int __set, int __number, __const char *__string) throw (); extern int catclose (nl_catd __catalog) throw (); } # 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/include/g++/i586-suse-linux/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/i586-suse-linux/3.3.4/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/include/g++/i586-suse-linux/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/include/g++/i586-suse-linux/bits/c++locale.h" 2 3 namespace __gnu_cxx { extern "C" __typeof(uselocale) __uselocale; } namespace std { typedef __locale_t __c_locale; template 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/include/g++/i586-suse-linux/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/include/g++/i586-suse-linux/bits/c++locale.h" 3 __gnu_cxx::__uselocale(__old); return __ret; } } # 47 "/usr/include/g++/iosfwd" 2 3 # 1 "/usr/include/g++/cctype" 1 3 # 46 "/usr/include/g++/cctype" 3 # 47 "/usr/include/g++/cctype" 3 # 1 "/usr/include/ctype.h" 1 3 4 # 30 "/usr/include/ctype.h" 3 4 extern "C" { # 41 "/usr/include/ctype.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 # 42 "/usr/include/ctype.h" 2 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/include/g++/cctype" 2 3 # 66 "/usr/include/g++/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/include/g++/iosfwd" 2 3 # 1 "/usr/include/g++/bits/stringfwd.h" 1 3 # 42 "/usr/include/g++/bits/stringfwd.h" 3 # 43 "/usr/include/g++/bits/stringfwd.h" 3 namespace std { template class allocator; template struct char_traits; template, typename _Alloc = allocator<_CharT> > class basic_string; template<> struct char_traits; typedef basic_string string; template<> struct char_traits; typedef basic_string wstring; } # 49 "/usr/include/g++/iosfwd" 2 3 # 1 "/usr/include/g++/bits/fpos.h" 1 3 # 42 "/usr/include/g++/bits/fpos.h" 3 # 43 "/usr/include/g++/bits/fpos.h" 3 # 1 "/usr/include/g++/i586-suse-linux/bits/c++io.h" 1 3 # 35 "/usr/include/g++/i586-suse-linux/bits/c++io.h" 3 # 1 "/usr/include/g++/cstdio" 1 3 # 47 "/usr/include/g++/cstdio" 3 # 48 "/usr/include/g++/cstdio" 3 # 1 "/usr/include/g++/cstddef" 1 3 # 46 "/usr/include/g++/cstddef" 3 # 47 "/usr/include/g++/cstddef" 3 # 1 "/usr/lib/gcc-lib/i586-suse-linux/3.3.4/include/stddef.h" 1 3 4 # 151 "/usr/lib/gcc-lib/i586-suse-linux/3.3.4/include/stddef.h" 3 4 typedef int ptrdiff_t; # 49 "/usr/include/g++/cstddef" 2 3 namespace std { using ::ptrdiff_t; using ::size_t; } # 51 "/usr/include/g++/cstdio" 2 3 # 97 "/usr/include/g++/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/include/g++/cstdio" 3 namespace __gnu_cxx { # 167 "/usr/include/g++/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/include/g++/i586-suse-linux/bits/c++io.h" 2 3 # 1 "/usr/include/g++/i586-suse-linux/bits/gthr.h" 1 3 # 98 "/usr/include/g++/i586-suse-linux/bits/gthr.h" 3 # 1 "/usr/include/g++/i586-suse-linux/bits/gthr-default.h" 1 3 # 37 "/usr/include/g++/i586-suse-linux/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 # 118 "/usr/include/time.h" 3 4 struct timespec { __time_t tv_sec; long int tv_nsec; }; # 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 (); } struct __sched_param { int __sched_priority; }; # 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/i586-suse-linux/3.3.4/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 # 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; # 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; typedef __pid_t pid_t; 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 # 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; # 34 "/usr/include/signal.h" 2 3 4 # 50 "/usr/include/signal.h" 3 4 typedef __sigset_t sigset_t; # 394 "/usr/include/signal.h" 3 4 } # 25 "/usr/include/pthread.h" 2 3 4 # 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 # 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; # 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/include/g++/i586-suse-linux/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 # 23 "/usr/include/bits/environments.h" 3 4 # 1 "/usr/include/bits/wordsize.h" 1 3 4 # 24 "/usr/include/bits/environments.h" 2 3 4 # 176 "/usr/include/unistd.h" 2 3 4 # 189 "/usr/include/unistd.h" 3 4 typedef __ssize_t ssize_t; # 1 "/usr/lib/gcc-lib/i586-suse-linux/3.3.4/include/stddef.h" 1 3 4 # 196 "/usr/include/unistd.h" 2 3 4 typedef __gid_t gid_t; typedef __uid_t uid_t; typedef __off_t off_t; typedef __off64_t off64_t; typedef __useconds_t useconds_t; # 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 (); extern int euidaccess (__const char *__name, int __type) throw (); # 286 "/usr/include/unistd.h" 3 4 extern __off_t lseek (int __fd, __off_t __offset, int __whence) throw (); # 297 "/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); # 327 "/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); # 355 "/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 (); # 377 "/usr/include/unistd.h" 3 4 extern unsigned int alarm (unsigned int __seconds) throw (); # 389 "/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); # 413 "/usr/include/unistd.h" 3 4 extern int pause (void); extern int chown (__const char *__file, __uid_t __owner, __gid_t __group) throw (); 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 (); extern int chdir (__const char *__path) throw (); extern int fchdir (int __fd) throw (); # 447 "/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 (); 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 (); extern int fexecve (int __fd, char *__const __argv[], char *__const __envp[]) throw (); extern int execv (__const char *__path, char *__const __argv[]) throw (); extern int execle (__const char *__path, __const char *__arg, ...) throw (); extern int execl (__const char *__path, __const char *__arg, ...) throw (); extern int execvp (__const char *__file, char *__const __argv[]) throw (); extern int execlp (__const char *__file, __const char *__arg, ...) throw (); 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 }; 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 }; # 525 "/usr/include/unistd.h" 2 3 4 extern long int pathconf (__const char *__path, int __name) throw (); 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 (); # 560 "/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 (); # 586 "/usr/include/unistd.h" 3 4 extern int setpgrp (void) throw (); # 603 "/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 (); extern int isatty (int __fd) throw (); extern int ttyslot (void) throw (); extern int link (__const char *__from, __const char *__to) throw (); extern int symlink (__const char *__from, __const char *__to) throw (); extern int readlink (__const char *__restrict __path, char *__restrict __buf, size_t __len) throw (); extern int unlink (__const char *__name) throw (); extern int rmdir (__const char *__path) throw (); 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); extern int setlogin (__const char *__name) throw (); # 773 "/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 } # 774 "/usr/include/unistd.h" 2 3 4 extern int gethostname (char *__name, size_t __len) throw (); extern int sethostname (__const char *__name, size_t __len) throw (); extern int sethostid (long int __id) throw (); extern int getdomainname (char *__name, size_t __len) throw (); extern int setdomainname (__const char *__name, size_t __len) throw (); extern int vhangup (void) throw (); extern int revoke (__const char *__file) throw (); extern int profil (unsigned short int *__sample_buffer, size_t __size, size_t __offset, unsigned int __scale) throw (); extern int acct (__const char *__name) throw (); 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 (); extern char *getpass (__const char *__prompt); # 855 "/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 truncate (__const char *__file, __off_t __length) throw (); # 886 "/usr/include/unistd.h" 3 4 extern int truncate64 (__const char *__file, __off64_t __length) throw (); extern int ftruncate (int __fd, __off_t __length) throw (); # 901 "/usr/include/unistd.h" 3 4 extern int ftruncate64 (int __fd, __off64_t __length) throw (); extern int getdtablesize (void) throw (); # 916 "/usr/include/unistd.h" 3 4 extern int brk (void *__addr) throw (); extern void *sbrk (intptr_t __delta) throw (); # 937 "/usr/include/unistd.h" 3 4 extern long int syscall (long int __sysno, ...) throw (); # 960 "/usr/include/unistd.h" 3 4 extern int lockf (int __fd, int __cmd, __off_t __len); # 970 "/usr/include/unistd.h" 3 4 extern int lockf64 (int __fd, int __cmd, __off64_t __len); # 991 "/usr/include/unistd.h" 3 4 extern int fdatasync (int __fildes) throw (); extern char *crypt (__const char *__key, __const char *__salt) throw (); extern void encrypt (char *__block, int __edflag) throw (); extern void swab (__const void *__restrict __from, void *__restrict __to, ssize_t __n) throw (); extern char *ctermid (char *__s) throw (); } # 39 "/usr/include/g++/i586-suse-linux/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/include/g++/i586-suse-linux/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/include/g++/i586-suse-linux/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/include/g++/i586-suse-linux/bits/gthr.h" 2 3 # 38 "/usr/include/g++/i586-suse-linux/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/include/g++/bits/fpos.h" 2 3 # 1 "/usr/include/g++/cwchar" 1 3 # 47 "/usr/include/g++/cwchar" 3 # 48 "/usr/include/g++/cwchar" 3 # 1 "/usr/include/g++/ctime" 1 3 # 47 "/usr/include/g++/ctime" 3 # 48 "/usr/include/g++/ctime" 3 # 64 "/usr/include/g++/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/include/g++/cwchar" 2 3 # 1 "/usr/include/wchar.h" 1 3 4 # 40 "/usr/include/wchar.h" 3 4 # 1 "/usr/lib/gcc-lib/i586-suse-linux/3.3.4/include/stdarg.h" 1 3 4 # 41 "/usr/include/wchar.h" 2 3 4 # 1 "/usr/lib/gcc-lib/i586-suse-linux/3.3.4/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/include/g++/cwchar" 2 3 # 69 "/usr/include/g++/cwchar" 3 namespace std { using ::mbstate_t; } # 133 "/usr/include/g++/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 ::wcsftime; 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(__p), __c); } using ::wcspbrk; inline wchar_t* wcspbrk(wchar_t* __s1, wchar_t* __s2) { return wcspbrk(const_cast(__s1), __s2); } using ::wcsrchr; inline wchar_t* wcsrchr(wchar_t* __p, wchar_t __c) { return wcsrchr(const_cast(__p), __c); } using ::wcsstr; inline wchar_t* wcsstr(wchar_t* __s1, wchar_t* __s2) { return wcsstr(const_cast(__s1), __s2); } using ::wmemchr; inline wchar_t* wmemchr(wchar_t* __p, wchar_t __c, size_t __n) { return wmemchr(const_cast(__p), __c, __n); } } namespace __gnu_cxx { using ::wcstold; # 242 "/usr/include/g++/cwchar" 3 using ::wcstoll; using ::wcstoull; } namespace std { using __gnu_cxx::wcstold; using __gnu_cxx::wcstoll; using __gnu_cxx::wcstoull; } # 46 "/usr/include/g++/bits/fpos.h" 2 3 namespace std { template 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 streampos; typedef fpos wstreampos; } # 50 "/usr/include/g++/iosfwd" 2 3 # 1 "/usr/include/g++/bits/functexcept.h" 1 3 # 34 "/usr/include/g++/bits/functexcept.h" 3 # 1 "/usr/include/g++/exception_defines.h" 1 3 # 35 "/usr/include/g++/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/include/g++/iosfwd" 2 3 namespace std { template > class basic_ios; template > class basic_streambuf; template > class basic_istream; template > class basic_ostream; template > class basic_iostream; template, typename _Alloc = allocator<_CharT> > class basic_stringbuf; template, typename _Alloc = allocator<_CharT> > class basic_istringstream; template, typename _Alloc = allocator<_CharT> > class basic_ostringstream; template, typename _Alloc = allocator<_CharT> > class basic_stringstream; template > class basic_filebuf; template > class basic_ifstream; template > class basic_ofstream; template > class basic_fstream; template > class istreambuf_iterator; template > class ostreambuf_iterator; class ios_base; # 136 "/usr/include/g++/iosfwd" 3 typedef basic_ios ios; typedef basic_streambuf streambuf; typedef basic_istream istream; typedef basic_ostream ostream; typedef basic_iostream iostream; typedef basic_stringbuf stringbuf; typedef basic_istringstream istringstream; typedef basic_ostringstream ostringstream; typedef basic_stringstream stringstream; typedef basic_filebuf filebuf; typedef basic_ifstream ifstream; typedef basic_ofstream ofstream; typedef basic_fstream fstream; typedef basic_ios wios; typedef basic_streambuf wstreambuf; typedef basic_istream wistream; typedef basic_ostream wostream; typedef basic_iostream wiostream; typedef basic_stringbuf wstringbuf; typedef basic_istringstream wistringstream; typedef basic_ostringstream wostringstream; typedef basic_stringstream wstringstream; typedef basic_filebuf wfilebuf; typedef basic_ifstream wifstream; typedef basic_ofstream wofstream; typedef basic_fstream wfstream; } # 34 "include/Riosfwd.h" 2 using std::istream; using std::ostream; using std::fstream; using std::ifstream; using std::ofstream; # 41 "include/TObject.h" 2 # 1 "/usr/lib/gcc-lib/i586-suse-linux/3.3.4/include/stdarg.h" 1 3 4 # 43 "include/TObject.h" 2 class TList; class TBrowser; class TBuffer; class TObjArray; class TMethod; class TTimer; class TObject { private: UInt_t fUniqueID; UInt_t fBits; static Long_t fgDtorOnly; static Bool_t fgObjectStat; protected: void MakeZombie() { fBits |= kZombie; } virtual void DoError(int level, const char *location, const char *fmt, va_list va) const; public: enum EStatusBits { kCanDelete = (1 << (0)), kMustCleanup = (1 << (3)), kObjInCanvas = (1 << (3)), kIsReferenced = (1 << (4)), kHasUUID = (1 << (5)), kCannotPick = (1 << (6)), kNoContextMenu = (1 << (8)), kInvalidObject = (1 << (13)) }; enum { kIsOnHeap = 0x01000000, kNotDeleted = 0x02000000, kZombie = 0x04000000, kBitMask = 0x00ffffff }; enum { kSingleKey = (1 << (0)), kOverwrite = (1 << (1)), kWriteDelete = (1 << (2)) }; TObject(); TObject(const TObject &object); TObject &operator=(const TObject &rhs); virtual ~TObject(); virtual void AppendPad(Option_t *option=""); virtual void Browse(TBrowser *b); virtual const char *ClassName() const; virtual void Clear(Option_t * ="") { } virtual TObject *Clone(const char *newname="") const; virtual Int_t Compare(const TObject *obj) const; virtual void Copy(TObject &object) const; virtual void Delete(Option_t *option=""); virtual Int_t DistancetoPrimitive(Int_t px, Int_t py); virtual void Draw(Option_t *option=""); virtual void DrawClass() const; virtual TObject *DrawClone(Option_t *option="") const; virtual void Dump() const; virtual void Execute(const char *method, const char *params, Int_t *error=0); virtual void Execute(TMethod *method, TObjArray *params, Int_t *error=0); virtual void ExecuteEvent(Int_t event, Int_t px, Int_t py); virtual TObject *FindObject(const char *name) const; virtual TObject *FindObject(const TObject *obj) const; virtual Option_t *GetDrawOption() const; virtual UInt_t GetUniqueID() const; virtual const char *GetName() const; virtual const char *GetIconName() const; virtual Option_t *GetOption() const { return ""; } virtual char *GetObjectInfo(Int_t px, Int_t py) const; virtual const char *GetTitle() const; virtual Bool_t HandleTimer(TTimer *timer); virtual ULong_t Hash() const; virtual Bool_t InheritsFrom(const char *classname) const; virtual Bool_t InheritsFrom(const TClass *cl) const; virtual void Inspect() const; virtual Bool_t IsFolder() const; virtual Bool_t IsEqual(const TObject *obj) const; virtual Bool_t IsSortable() const { return kFALSE; } Bool_t IsOnHeap() const { return TestBit(kIsOnHeap); } Bool_t IsZombie() const { return TestBit(kZombie); } virtual Bool_t Notify(); virtual void ls(Option_t *option="") const; virtual void Paint(Option_t *option=""); virtual void Pop(); virtual void Print(Option_t *option="") const; virtual Int_t Read(const char *name); virtual void RecursiveRemove(TObject *obj); virtual void SaveAs(const char *filename="",Option_t *option="") const; virtual void SavePrimitive(ostream &out, Option_t *option = ""); virtual void SetDrawOption(Option_t *option=""); virtual void SetUniqueID(UInt_t uid); virtual void UseCurrentStyle(); virtual Int_t Write(const char *name=0, Int_t option=0, Int_t bufsize=0); virtual Int_t Write(const char *name=0, Int_t option=0, Int_t bufsize=0) const; void *operator new(size_t sz) { return TStorage::ObjectAlloc(sz); } void *operator new[](size_t sz) { return TStorage::ObjectAlloc(sz); } void *operator new(size_t sz, void *vp) { return TStorage::ObjectAlloc(sz, vp); } void *operator new[](size_t sz, void *vp) { return TStorage::ObjectAlloc(sz, vp); } void operator delete(void *ptr); void operator delete[](void *ptr); void operator delete(void *ptr, void *vp); void operator delete[](void *ptr, void *vp); void SetBit(UInt_t f, Bool_t set); void SetBit(UInt_t f) { fBits |= f & kBitMask; } void ResetBit(UInt_t f) { fBits &= ~(f & kBitMask); } Bool_t TestBit(UInt_t f) const { return (Bool_t) ((fBits & f) != 0); } Int_t TestBits(UInt_t f) const { return (Int_t) (fBits & f); } void InvertBit(UInt_t f) { fBits ^= f & kBitMask; } virtual void Info(const char *method, const char *msgfmt, ...) const; virtual void Warning(const char *method, const char *msgfmt, ...) const; virtual void Error(const char *method, const char *msgfmt, ...) const; virtual void SysError(const char *method, const char *msgfmt, ...) const; virtual void Fatal(const char *method, const char *msgfmt, ...) const; void AbstractMethod(const char *method) const; void MayNotUse(const char *method) const; static Long_t GetDtorOnly(); static void SetDtorOnly(void *obj); static Bool_t GetObjectStat(); static void SetObjectStat(Bool_t stat); private: static TClass *fgIsA; public: static TClass *Class(); static const char *Class_Name(); static Version_t Class_Version() { return 1; } static void Dictionary(); virtual TClass *IsA() const { return TObject::Class(); } virtual void ShowMembers(TMemberInspector &insp, char *parent); virtual void Streamer(TBuffer &b); void StreamerNVirtual(TBuffer &b) { TObject::Streamer(b); } static const char *DeclFileName() { return "include/TObject.h"; } static int ImplFileLine(); static const char *ImplFileName(); static int DeclFileLine() { return 191; } }; enum EObjBits { kCanDelete = TObject::kCanDelete, kMustCleanup = TObject::kMustCleanup, kObjInCanvas = TObject::kObjInCanvas, kIsReferenced = TObject::kIsReferenced, kHasUUID = TObject::kHasUUID, kCannotPick = TObject::kCannotPick, kNoContextMenu = TObject::kNoContextMenu, kInvalidObject = TObject::kInvalidObject }; # 1 "include/TBuffer.h" 1 # 28 "include/TBuffer.h" class TVirtualStreamerInfo; class TStreamerElement; class TClass; class TString; class TProcessID; class TClonesArray; class TRefTable; class TBuffer : public TObject { protected: Bool_t fMode; Int_t fVersion; Int_t fBufSize; char *fBuffer; char *fBufCur; char *fBufMax; TObject *fParent; TBuffer() : TObject(), fMode(0), fVersion(0), fBufSize(0), fBuffer(0), fBufCur(0), fBufMax(0), fParent(0) {} TBuffer(const TBuffer &); void operator=(const TBuffer &); void Expand(Int_t newsize); Int_t Read(const char *name) { return TObject::Read(name); } Int_t Write(const char *name, Int_t opt, Int_t bufs) { return TObject::Write(name, opt, bufs); } Int_t Write(const char *name, Int_t opt, Int_t bufs) const { return TObject::Write(name, opt, bufs); } public: enum EMode { kRead = 0, kWrite = 1 }; enum { kIsOwner = (1 << (16)) }; enum { kCannotHandleMemberWiseStreaming = (1 << (17))}; enum { kInitialSize = 1024, kMinimalSize = 128 }; TBuffer(EMode mode); TBuffer(EMode mode, Int_t bufsiz); TBuffer(EMode mode, Int_t bufsiz, void *buf, Bool_t adopt = kTRUE); virtual ~TBuffer(); Int_t GetBufferVersion() const { return fVersion; } Bool_t IsReading() const { return (fMode & kWrite) == 0; } Bool_t IsWriting() const { return (fMode & kWrite) != 0; } void SetReadMode(); void SetWriteMode(); void SetBuffer(void *buf, UInt_t bufsiz = 0, Bool_t adopt = kTRUE); void SetBufferOffset(Int_t offset = 0) { fBufCur = fBuffer+offset; } void SetParent(TObject *parent); TObject *GetParent() const; char *Buffer() const { return fBuffer; } Int_t BufferSize() const { return fBufSize; } void DetachBuffer() { fBuffer = 0; } Int_t Length() const { return (Int_t)(fBufCur - fBuffer); } virtual Bool_t CheckObject(const TObject *obj) = 0; virtual Bool_t CheckObject(const void *obj, const TClass *ptrClass) = 0; virtual Int_t ReadBuf(void *buf, Int_t max) = 0; virtual void WriteBuf(const void *buf, Int_t max) = 0; virtual char *ReadString(char *s, Int_t max) = 0; virtual void WriteString(const char *s) = 0; virtual Int_t GetVersionOwner() const = 0; virtual Int_t GetMapCount() const = 0; virtual void GetMappedObject(UInt_t tag, void* &ptr, TClass* &ClassPtr) const = 0; virtual void MapObject(const TObject *obj, UInt_t offset = 1) = 0; virtual void MapObject(const void *obj, const TClass *cl, UInt_t offset = 1) = 0; virtual void Reset() = 0; virtual void InitMap() = 0; virtual void ResetMap() = 0; virtual void SetReadParam(Int_t mapsize) = 0; virtual void SetWriteParam(Int_t mapsize) = 0; virtual Int_t CheckByteCount(UInt_t startpos, UInt_t bcnt, const TClass *clss) = 0; virtual Int_t CheckByteCount(UInt_t startpos, UInt_t bcnt, const char *classname) = 0; virtual void SetByteCount(UInt_t cntpos, Bool_t packInVersion = kFALSE)= 0; virtual Version_t ReadVersion(UInt_t *start = 0, UInt_t *bcnt = 0, const TClass *cl = 0) = 0; virtual UInt_t WriteVersion(const TClass *cl, Bool_t useBcnt = kFALSE) = 0; virtual UInt_t WriteVersionMemberWise(const TClass *cl, Bool_t useBcnt = kFALSE) = 0; virtual void *ReadObjectAny(const TClass* cast) = 0; virtual void SkipObjectAny() = 0; virtual void IncrementLevel(TVirtualStreamerInfo* info) = 0; virtual void SetStreamerElementNumber(Int_t) = 0; virtual void DecrementLevel(TVirtualStreamerInfo*) = 0; virtual void ClassBegin(const TClass*, Version_t = -1) = 0; virtual void ClassEnd(const TClass*) = 0; virtual void ClassMember(const char*, const char* = 0, Int_t = -1, Int_t = -1) = 0; virtual TVirtualStreamerInfo *GetInfo() = 0; virtual TClass *ReadClass(const TClass *cl = 0, UInt_t *objTag = 0) = 0; virtual void WriteClass(const TClass *cl) = 0; virtual TObject *ReadObject(const TClass *cl) = 0; virtual void WriteObject(const TObject *obj) = 0; virtual Int_t WriteObjectAny(const void *obj, const TClass *ptrClass) = 0; virtual UShort_t GetPidOffset() const = 0; virtual void SetPidOffset(UShort_t offset) = 0; virtual Int_t GetBufferDisplacement() const = 0; virtual void SetBufferDisplacement() = 0; virtual void SetBufferDisplacement(Int_t skipped) = 0; virtual void ReadDouble32 (Double_t *d, TStreamerElement *ele=0) = 0; virtual void WriteDouble32(Double_t *d, TStreamerElement *ele=0) = 0; virtual Int_t ReadArray(Bool_t *&b) = 0; virtual Int_t ReadArray(Char_t *&c) = 0; virtual Int_t ReadArray(UChar_t *&c) = 0; virtual Int_t ReadArray(Short_t *&h) = 0; virtual Int_t ReadArray(UShort_t *&h) = 0; virtual Int_t ReadArray(Int_t *&i) = 0; virtual Int_t ReadArray(UInt_t *&i) = 0; virtual Int_t ReadArray(Long_t *&l) = 0; virtual Int_t ReadArray(ULong_t *&l) = 0; virtual Int_t ReadArray(Long64_t *&l) = 0; virtual Int_t ReadArray(ULong64_t *&l) = 0; virtual Int_t ReadArray(Float_t *&f) = 0; virtual Int_t ReadArray(Double_t *&d) = 0; virtual Int_t ReadArrayDouble32(Double_t *&d, TStreamerElement *ele=0) = 0; virtual Int_t ReadStaticArray(Bool_t *b) = 0; virtual Int_t ReadStaticArray(Char_t *c) = 0; virtual Int_t ReadStaticArray(UChar_t *c) = 0; virtual Int_t ReadStaticArray(Short_t *h) = 0; virtual Int_t ReadStaticArray(UShort_t *h) = 0; virtual Int_t ReadStaticArray(Int_t *i) = 0; virtual Int_t ReadStaticArray(UInt_t *i) = 0; virtual Int_t ReadStaticArray(Long_t *l) = 0; virtual Int_t ReadStaticArray(ULong_t *l) = 0; virtual Int_t ReadStaticArray(Long64_t *l) = 0; virtual Int_t ReadStaticArray(ULong64_t *l) = 0; virtual Int_t ReadStaticArray(Float_t *f) = 0; virtual Int_t ReadStaticArray(Double_t *d) = 0; virtual Int_t ReadStaticArrayDouble32(Double_t *d, TStreamerElement *ele=0) = 0; virtual void ReadFastArray(Bool_t *b, Int_t n) = 0; virtual void ReadFastArray(Char_t *c, Int_t n) = 0; virtual void ReadFastArrayString(Char_t *c, Int_t n) = 0; virtual void ReadFastArray(UChar_t *c, Int_t n) = 0; virtual void ReadFastArray(Short_t *h, Int_t n) = 0; virtual void ReadFastArray(UShort_t *h, Int_t n) = 0; virtual void ReadFastArray(Int_t *i, Int_t n) = 0; virtual void ReadFastArray(UInt_t *i, Int_t n) = 0; virtual void ReadFastArray(Long_t *l, Int_t n) = 0; virtual void ReadFastArray(ULong_t *l, Int_t n) = 0; virtual void ReadFastArray(Long64_t *l, Int_t n) = 0; virtual void ReadFastArray(ULong64_t *l, Int_t n) = 0; virtual void ReadFastArray(Float_t *f, Int_t n) = 0; virtual void ReadFastArray(Double_t *d, Int_t n) = 0; virtual void ReadFastArrayDouble32(Double_t *d, Int_t n, TStreamerElement *ele=0) = 0; virtual void ReadFastArray(void *start , const TClass *cl, Int_t n=1, TMemberStreamer *s=0) = 0; virtual void ReadFastArray(void **startp, const TClass *cl, Int_t n=1, Bool_t isPreAlloc=kFALSE, TMemberStreamer *s=0) = 0; virtual void WriteArray(const Bool_t *b, Int_t n) = 0; virtual void WriteArray(const Char_t *c, Int_t n) = 0; virtual void WriteArray(const UChar_t *c, Int_t n) = 0; virtual void WriteArray(const Short_t *h, Int_t n) = 0; virtual void WriteArray(const UShort_t *h, Int_t n) = 0; virtual void WriteArray(const Int_t *i, Int_t n) = 0; virtual void WriteArray(const UInt_t *i, Int_t n) = 0; virtual void WriteArray(const Long_t *l, Int_t n) = 0; virtual void WriteArray(const ULong_t *l, Int_t n) = 0; virtual void WriteArray(const Long64_t *l, Int_t n) = 0; virtual void WriteArray(const ULong64_t *l, Int_t n) = 0; virtual void WriteArray(const Float_t *f, Int_t n) = 0; virtual void WriteArray(const Double_t *d, Int_t n) = 0; virtual void WriteArrayDouble32(const Double_t *d, Int_t n, TStreamerElement *ele=0) = 0; virtual void WriteFastArray(const Bool_t *b, Int_t n) = 0; virtual void WriteFastArray(const Char_t *c, Int_t n) = 0; virtual void WriteFastArrayString(const Char_t *c, Int_t n) = 0; virtual void WriteFastArray(const UChar_t *c, Int_t n) = 0; virtual void WriteFastArray(const Short_t *h, Int_t n) = 0; virtual void WriteFastArray(const UShort_t *h, Int_t n) = 0; virtual void WriteFastArray(const Int_t *i, Int_t n) = 0; virtual void WriteFastArray(const UInt_t *i, Int_t n) = 0; virtual void WriteFastArray(const Long_t *l, Int_t n) = 0; virtual void WriteFastArray(const ULong_t *l, Int_t n) = 0; virtual void WriteFastArray(const Long64_t *l, Int_t n) = 0; virtual void WriteFastArray(const ULong64_t *l, Int_t n) = 0; virtual void WriteFastArray(const Float_t *f, Int_t n) = 0; virtual void WriteFastArray(const Double_t *d, Int_t n) = 0; virtual void WriteFastArrayDouble32(const Double_t *d, Int_t n, TStreamerElement *ele=0) = 0; virtual void WriteFastArray(void *start, const TClass *cl, Int_t n=1, TMemberStreamer *s=0) = 0; virtual Int_t WriteFastArray(void **startp, const TClass *cl, Int_t n=1, Bool_t isPreAlloc=kFALSE, TMemberStreamer *s=0) = 0; virtual void StreamObject(void *obj, const type_info &typeinfo) = 0; virtual void StreamObject(void *obj, const char *className) = 0; virtual void StreamObject(void *obj, const TClass *cl) = 0; virtual void StreamObject(TObject *obj) = 0; virtual void ReadBool(Bool_t &b) = 0; virtual void ReadChar(Char_t &c) = 0; virtual void ReadUChar(UChar_t &c) = 0; virtual void ReadShort(Short_t &s) = 0; virtual void ReadUShort(UShort_t &s) = 0; virtual void ReadInt(Int_t &i) = 0; virtual void ReadUInt(UInt_t &i) = 0; virtual void ReadLong(Long_t &l) = 0; virtual void ReadULong(ULong_t &l) = 0; virtual void ReadLong64(Long64_t &l) = 0; virtual void ReadULong64(ULong64_t &l) = 0; virtual void ReadFloat(Float_t &f) = 0; virtual void ReadDouble(Double_t &d) = 0; virtual void ReadCharP(Char_t *c) = 0; virtual void ReadTString(TString &s) = 0; virtual void WriteBool(Bool_t b) = 0; virtual void WriteChar(Char_t c) = 0; virtual void WriteUChar(UChar_t c) = 0; virtual void WriteShort(Short_t s) = 0; virtual void WriteUShort(UShort_t s) = 0; virtual void WriteInt(Int_t i) = 0; virtual void WriteUInt(UInt_t i) = 0; virtual void WriteLong(Long_t l) = 0; virtual void WriteULong(ULong_t l) = 0; virtual void WriteLong64(Long64_t l) = 0; virtual void WriteULong64(ULong64_t l) = 0; virtual void WriteFloat(Float_t f) = 0; virtual void WriteDouble(Double_t d) = 0; virtual void WriteCharP(const Char_t *c) = 0; virtual void WriteTString(const TString &s) = 0; virtual TProcessID *GetLastProcessID(TRefTable *reftable) const = 0; virtual UInt_t GetTRefExecId() = 0; virtual TProcessID *ReadProcessID(UShort_t pidf) = 0; virtual UShort_t WriteProcessID(TProcessID *pid) = 0; virtual void ForceWriteInfo(TClonesArray *a) = 0; virtual Int_t ReadClones (TClonesArray *a, Int_t nobjects, Version_t objvers) = 0; virtual Int_t WriteClones(TClonesArray *a, Int_t nobjects) = 0; virtual Int_t ReadClassEmulated(TClass *cl, void *object) = 0; virtual Int_t ReadClassBuffer(TClass *cl, void *pointer) = 0; virtual Int_t ReadClassBuffer(TClass *cl, void *pointer, Int_t version, UInt_t start, UInt_t count) = 0; virtual Int_t WriteClassBuffer(TClass *cl, void *pointer) = 0; static TClass *GetClass(const type_info &typeinfo); static TClass *GetClass(const char *className); private: static TClass *fgIsA; public: static TClass *Class(); static const char *Class_Name(); static Version_t Class_Version() { return 0; } static void Dictionary(); virtual TClass *IsA() const { return TBuffer::Class(); } virtual void ShowMembers(TMemberInspector &insp, char *parent); virtual void Streamer(TBuffer &b); void StreamerNVirtual(TBuffer &b) { TBuffer::Streamer(b); } static const char *DeclFileName() { return "include/TBuffer.h"; } static int ImplFileLine(); static const char *ImplFileName(); static int DeclFileLine() { return 284; } }; inline TBuffer &operator>>(TBuffer &buf, Bool_t &b) { buf.ReadBool(b); return buf; } inline TBuffer &operator>>(TBuffer &buf, Char_t &c) { buf.ReadChar(c); return buf; } inline TBuffer &operator>>(TBuffer &buf, UChar_t &c) { buf.ReadUChar(c); return buf; } inline TBuffer &operator>>(TBuffer &buf, Short_t &s) { buf.ReadShort(s); return buf; } inline TBuffer &operator>>(TBuffer &buf, UShort_t &s) { buf.ReadUShort(s); return buf; } inline TBuffer &operator>>(TBuffer &buf, Int_t &i) { buf.ReadInt(i); return buf; } inline TBuffer &operator>>(TBuffer &buf, UInt_t &i) { buf.ReadUInt(i); return buf; } inline TBuffer &operator>>(TBuffer &buf, Long_t &l) { buf.ReadLong(l); return buf; } inline TBuffer &operator>>(TBuffer &buf, ULong_t &l) { buf.ReadULong(l); return buf; } inline TBuffer &operator>>(TBuffer &buf, Long64_t &l) { buf.ReadLong64(l); return buf; } inline TBuffer &operator>>(TBuffer &buf, ULong64_t &l){ buf.ReadULong64(l);return buf; } inline TBuffer &operator>>(TBuffer &buf, Float_t &f) { buf.ReadFloat(f); return buf; } inline TBuffer &operator>>(TBuffer &buf, Double_t &d) { buf.ReadDouble(d); return buf; } inline TBuffer &operator>>(TBuffer &buf, Char_t *c) { buf.ReadCharP(c); return buf; } inline TBuffer &operator>>(TBuffer &buf, TString &s) { buf.ReadTString(s);return buf; } inline TBuffer &operator<<(TBuffer &buf, Bool_t b) { buf.WriteBool(b); return buf; } inline TBuffer &operator<<(TBuffer &buf, Char_t c) { buf.WriteChar(c); return buf; } inline TBuffer &operator<<(TBuffer &buf, UChar_t c) { buf.WriteUChar(c); return buf; } inline TBuffer &operator<<(TBuffer &buf, Short_t s) { buf.WriteShort(s); return buf; } inline TBuffer &operator<<(TBuffer &buf, UShort_t s) { buf.WriteUShort(s); return buf; } inline TBuffer &operator<<(TBuffer &buf, Int_t i) { buf.WriteInt(i); return buf; } inline TBuffer &operator<<(TBuffer &buf, UInt_t i) { buf.WriteUInt(i); return buf; } inline TBuffer &operator<<(TBuffer &buf, Long_t l) { buf.WriteLong(l); return buf; } inline TBuffer &operator<<(TBuffer &buf, ULong_t l) { buf.WriteULong(l); return buf; } inline TBuffer &operator<<(TBuffer &buf, Long64_t l) { buf.WriteLong64(l); return buf; } inline TBuffer &operator<<(TBuffer &buf, ULong64_t l){ buf.WriteULong64(l);return buf; } inline TBuffer &operator<<(TBuffer &buf, Float_t f) { buf.WriteFloat(f); return buf; } inline TBuffer &operator<<(TBuffer &buf, Double_t d) { buf.WriteDouble(d); return buf; } inline TBuffer &operator<<(TBuffer &buf, const Char_t *c) { buf.WriteCharP(c); return buf; } inline TBuffer &operator<<(TBuffer &buf, const TString &s) { buf.WriteTString(s);return buf; } # 328 "include/TBuffer.h" template TBuffer &operator>>(TBuffer &buf, Tmpl *&obj) { # 339 "include/TBuffer.h" TClass *cl = TBuffer::GetClass(typeid(Tmpl)); obj = (Tmpl *) ( (void*) buf.ReadObjectAny(cl) ); return buf; } template TBuffer &operator<<(TBuffer &buf, const Tmpl *obj) { TClass *cl = (obj) ? TBuffer::GetClass(typeid(*obj)) : 0; buf.WriteObjectAny(obj, cl); return buf; } # 359 "include/TBuffer.h" inline TBuffer &operator<<(TBuffer &buf, const TObject *obj) { buf.WriteObjectAny(obj, TObject::Class()); return buf; } # 210 "include/TObject.h" 2 # 27 "include/TNamed.h" 2 # 1 "include/TString.h" 1 # 27 "include/TString.h" # 1 "/usr/include/string.h" 1 3 4 # 28 "/usr/include/string.h" 3 4 extern "C" { # 1 "/usr/lib/gcc-lib/i586-suse-linux/3.3.4/include/stddef.h" 1 3 4 # 34 "/usr/include/string.h" 2 3 4 extern void *memcpy (void *__restrict __dest, __const void *__restrict __src, size_t __n) throw (); extern void *memmove (void *__dest, __const void *__src, size_t __n) throw (); extern void *memccpy (void *__restrict __dest, __const void *__restrict __src, int __c, size_t __n) throw (); extern void *memset (void *__s, int __c, size_t __n) throw (); extern int memcmp (__const void *__s1, __const void *__s2, size_t __n) throw () __attribute__ ((__pure__)); extern void *memchr (__const void *__s, int __c, size_t __n) throw () __attribute__ ((__pure__)); extern void *rawmemchr (__const void *__s, int __c) throw () __attribute__ ((__pure__)); extern void *memrchr (__const void *__s, int __c, size_t __n) throw () __attribute__ ((__pure__)); extern char *strcpy (char *__restrict __dest, __const char *__restrict __src) throw (); extern char *strncpy (char *__restrict __dest, __const char *__restrict __src, size_t __n) throw (); extern char *strcat (char *__restrict __dest, __const char *__restrict __src) throw (); extern char *strncat (char *__restrict __dest, __const char *__restrict __src, size_t __n) throw (); extern int strcmp (__const char *__s1, __const char *__s2) throw () __attribute__ ((__pure__)); extern int strncmp (__const char *__s1, __const char *__s2, size_t __n) throw () __attribute__ ((__pure__)); extern int strcoll (__const char *__s1, __const char *__s2) throw () __attribute__ ((__pure__)); extern size_t strxfrm (char *__restrict __dest, __const char *__restrict __src, size_t __n) throw (); # 117 "/usr/include/string.h" 3 4 extern int strcoll_l (__const char *__s1, __const char *__s2, __locale_t __l) throw () __attribute__ ((__pure__)); extern size_t strxfrm_l (char *__dest, __const char *__src, size_t __n, __locale_t __l) throw (); extern char *strdup (__const char *__s) throw () __attribute__ ((__malloc__)); extern char *strndup (__const char *__string, size_t __n) throw () __attribute__ ((__malloc__)); # 160 "/usr/include/string.h" 3 4 extern char *strchr (__const char *__s, int __c) throw () __attribute__ ((__pure__)); extern char *strrchr (__const char *__s, int __c) throw () __attribute__ ((__pure__)); extern char *strchrnul (__const char *__s, int __c) throw () __attribute__ ((__pure__)); extern size_t strcspn (__const char *__s, __const char *__reject) throw () __attribute__ ((__pure__)); extern size_t strspn (__const char *__s, __const char *__accept) throw () __attribute__ ((__pure__)); extern char *strpbrk (__const char *__s, __const char *__accept) throw () __attribute__ ((__pure__)); extern char *strstr (__const char *__haystack, __const char *__needle) throw () __attribute__ ((__pure__)); extern char *strtok (char *__restrict __s, __const char *__restrict __delim) throw (); extern char *__strtok_r (char *__restrict __s, __const char *__restrict __delim, char **__restrict __save_ptr) throw (); extern char *strtok_r (char *__restrict __s, __const char *__restrict __delim, char **__restrict __save_ptr) throw (); extern char *strcasestr (__const char *__haystack, __const char *__needle) throw () __attribute__ ((__pure__)); extern void *memmem (__const void *__haystack, size_t __haystacklen, __const void *__needle, size_t __needlelen) throw () __attribute__ ((__pure__)); extern void *__mempcpy (void *__restrict __dest, __const void *__restrict __src, size_t __n) throw (); extern void *mempcpy (void *__restrict __dest, __const void *__restrict __src, size_t __n) throw (); extern size_t strlen (__const char *__s) throw () __attribute__ ((__pure__)); extern size_t strnlen (__const char *__string, size_t __maxlen) throw () __attribute__ ((__pure__)); extern char *strerror (int __errnum) throw (); # 268 "/usr/include/string.h" 3 4 extern char *strerror_r (int __errnum, char *__buf, size_t __buflen) throw (); extern void __bzero (void *__s, size_t __n) throw (); extern void bcopy (__const void *__src, void *__dest, size_t __n) throw (); extern void bzero (void *__s, size_t __n) throw (); extern int bcmp (__const void *__s1, __const void *__s2, size_t __n) throw () __attribute__ ((__pure__)); extern char *index (__const char *__s, int __c) throw () __attribute__ ((__pure__)); extern char *rindex (__const char *__s, int __c) throw () __attribute__ ((__pure__)); 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__)); extern int strncasecmp (__const char *__s1, __const char *__s2, size_t __n) throw () __attribute__ ((__pure__)); extern int strcasecmp_l (__const char *__s1, __const char *__s2, __locale_t __loc) throw () __attribute__ ((__pure__)); extern int strncasecmp_l (__const char *__s1, __const char *__s2, size_t __n, __locale_t __loc) throw () __attribute__ ((__pure__)); extern char *strsep (char **__restrict __stringp, __const char *__restrict __delim) throw (); extern int strverscmp (__const char *__s1, __const char *__s2) throw () __attribute__ ((__pure__)); extern char *strsignal (int __sig) throw (); extern char *__stpcpy (char *__restrict __dest, __const char *__restrict __src) throw (); extern char *stpcpy (char *__restrict __dest, __const char *__restrict __src) throw (); extern char *__stpncpy (char *__restrict __dest, __const char *__restrict __src, size_t __n) throw (); extern char *stpncpy (char *__restrict __dest, __const char *__restrict __src, size_t __n) throw (); extern char *strfry (char *__string) throw (); extern void *memfrob (void *__s, size_t __n) throw (); extern char *basename (__const char *__filename) throw (); # 400 "/usr/include/string.h" 3 4 } # 28 "include/TString.h" 2 # 1 "include/TRefCnt.h" 1 # 29 "include/TRefCnt.h" class TRefCnt { protected: UInt_t fRefs; public: enum EReferenceFlag { kStaticInit }; TRefCnt(Int_t initRef = 0) : fRefs((UInt_t)initRef-1) { } TRefCnt(EReferenceFlag); virtual ~TRefCnt() { } UInt_t References() const { return fRefs+1; } void SetRefCount(UInt_t r) { fRefs = r-1; } void AddReference() { fRefs++; } UInt_t RemoveReference() { return fRefs--; } }; # 33 "include/TString.h" 2 # 1 "include/TMathBase.h" 1 # 33 "include/TMathBase.h" namespace TMath { inline Short_t Abs(Short_t d); inline Int_t Abs(Int_t d); inline Long_t Abs(Long_t d); inline Long64_t Abs(Long64_t d); inline Float_t Abs(Float_t d); inline Double_t Abs(Double_t d); inline Bool_t Even(Long_t a); inline Bool_t Odd(Long_t a); inline Short_t Sign(Short_t a, Short_t b); inline Int_t Sign(Int_t a, Int_t b); inline Long_t Sign(Long_t a, Long_t b); inline Long64_t Sign(Long64_t a, Long64_t b); inline Float_t Sign(Float_t a, Float_t b); inline Double_t Sign(Double_t a, Double_t b); inline Short_t Min(Short_t a, Short_t b); inline UShort_t Min(UShort_t a, UShort_t b); inline Int_t Min(Int_t a, Int_t b); inline UInt_t Min(UInt_t a, UInt_t b); inline Long_t Min(Long_t a, Long_t b); inline ULong_t Min(ULong_t a, ULong_t b); inline Long64_t Min(Long64_t a, Long64_t b); inline ULong64_t Min(ULong64_t a, ULong64_t b); inline Float_t Min(Float_t a, Float_t b); inline Double_t Min(Double_t a, Double_t b); inline Short_t Max(Short_t a, Short_t b); inline UShort_t Max(UShort_t a, UShort_t b); inline Int_t Max(Int_t a, Int_t b); inline UInt_t Max(UInt_t a, UInt_t b); inline Long_t Max(Long_t a, Long_t b); inline ULong_t Max(ULong_t a, ULong_t b); inline Long64_t Max(Long64_t a, Long64_t b); inline ULong64_t Max(ULong64_t a, ULong64_t b); inline Float_t Max(Float_t a, Float_t b); inline Double_t Max(Double_t a, Double_t b); inline Short_t Range(Short_t lb, Short_t ub, Short_t x); inline Int_t Range(Int_t lb, Int_t ub, Int_t x); inline Long_t Range(Long_t lb, Long_t ub, Long_t x); inline ULong_t Range(ULong_t lb, ULong_t ub, ULong_t x); inline Double_t Range(Double_t lb, Double_t ub, Double_t x); Long_t NextPrime(Long_t x); } inline Bool_t TMath::Even(Long_t a) { return ! (a & 1); } inline Bool_t TMath::Odd(Long_t a) { return (a & 1); } inline Short_t TMath::Abs(Short_t d) { return (d >= 0) ? d : -d; } inline Int_t TMath::Abs(Int_t d) { return (d >= 0) ? d : -d; } inline Long_t TMath::Abs(Long_t d) { return (d >= 0) ? d : -d; } inline Long64_t TMath::Abs(Long64_t d) { return (d >= 0) ? d : -d; } inline Float_t TMath::Abs(Float_t d) { return (d >= 0) ? d : -d; } inline Double_t TMath::Abs(Double_t d) { return (d >= 0) ? d : -d; } inline Short_t TMath::Sign(Short_t a, Short_t b) { return (b >= 0) ? Abs(a) : -Abs(a); } inline Int_t TMath::Sign(Int_t a, Int_t b) { return (b >= 0) ? Abs(a) : -Abs(a); } inline Long_t TMath::Sign(Long_t a, Long_t b) { return (b >= 0) ? Abs(a) : -Abs(a); } inline Long64_t TMath::Sign(Long64_t a, Long64_t b) { return (b >= 0) ? Abs(a) : -Abs(a); } inline Float_t TMath::Sign(Float_t a, Float_t b) { return (b >= 0) ? Abs(a) : -Abs(a); } inline Double_t TMath::Sign(Double_t a, Double_t b) { return (b >= 0) ? Abs(a) : -Abs(a); } inline Short_t TMath::Min(Short_t a, Short_t b) { return a <= b ? a : b; } inline UShort_t TMath::Min(UShort_t a, UShort_t b) { return a <= b ? a : b; } inline Int_t TMath::Min(Int_t a, Int_t b) { return a <= b ? a : b; } inline UInt_t TMath::Min(UInt_t a, UInt_t b) { return a <= b ? a : b; } inline Long_t TMath::Min(Long_t a, Long_t b) { return a <= b ? a : b; } inline ULong_t TMath::Min(ULong_t a, ULong_t b) { return a <= b ? a : b; } inline Long64_t TMath::Min(Long64_t a, Long64_t b) { return a <= b ? a : b; } inline ULong64_t TMath::Min(ULong64_t a, ULong64_t b) { return a <= b ? a : b; } inline Float_t TMath::Min(Float_t a, Float_t b) { return a <= b ? a : b; } inline Double_t TMath::Min(Double_t a, Double_t b) { return a <= b ? a : b; } inline Short_t TMath::Max(Short_t a, Short_t b) { return a >= b ? a : b; } inline UShort_t TMath::Max(UShort_t a, UShort_t b) { return a >= b ? a : b; } inline Int_t TMath::Max(Int_t a, Int_t b) { return a >= b ? a : b; } inline UInt_t TMath::Max(UInt_t a, UInt_t b) { return a >= b ? a : b; } inline Long_t TMath::Max(Long_t a, Long_t b) { return a >= b ? a : b; } inline ULong_t TMath::Max(ULong_t a, ULong_t b) { return a >= b ? a : b; } inline Long64_t TMath::Max(Long64_t a, Long64_t b) { return a >= b ? a : b; } inline ULong64_t TMath::Max(ULong64_t a, ULong64_t b) { return a >= b ? a : b; } inline Float_t TMath::Max(Float_t a, Float_t b) { return a >= b ? a : b; } inline Double_t TMath::Max(Double_t a, Double_t b) { return a >= b ? a : b; } inline Short_t TMath::Range(Short_t lb, Short_t ub, Short_t x) { return x < lb ? lb : (x > ub ? ub : x); } inline Int_t TMath::Range(Int_t lb, Int_t ub, Int_t x) { return x < lb ? lb : (x > ub ? ub : x); } inline Long_t TMath::Range(Long_t lb, Long_t ub, Long_t x) { return x < lb ? lb : (x > ub ? ub : x); } inline ULong_t TMath::Range(ULong_t lb, ULong_t ub, ULong_t x) { return x < lb ? lb : (x > ub ? ub : x); } inline Double_t TMath::Range(Double_t lb, Double_t ub, Double_t x) { return x < lb ? lb : (x > ub ? ub : x); } # 41 "include/TString.h" 2 # 1 "/usr/include/g++/string" 1 3 # 43 "/usr/include/g++/string" 3 # 44 "/usr/include/g++/string" 3 # 1 "/usr/include/g++/bits/char_traits.h" 1 3 # 43 "/usr/include/g++/bits/char_traits.h" 3 # 44 "/usr/include/g++/bits/char_traits.h" 3 # 1 "/usr/include/g++/cstring" 1 3 # 47 "/usr/include/g++/cstring" 3 # 48 "/usr/include/g++/cstring" 3 # 77 "/usr/include/g++/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(__p), __c, __n); } using ::strchr; inline char* strchr(char* __s1, int __n) { return __builtin_strchr(const_cast(__s1), __n); } using ::strpbrk; inline char* strpbrk(char* __s1, const char* __s2) { return __builtin_strpbrk(const_cast(__s1), __s2); } using ::strrchr; inline char* strrchr(char* __s1, int __n) { return __builtin_strrchr(const_cast(__s1), __n); } using ::strstr; inline char* strstr(char* __s1, const char* __s2) { return __builtin_strstr(const_cast(__s1), __s2); } } # 46 "/usr/include/g++/bits/char_traits.h" 2 3 namespace std { # 61 "/usr/include/g++/bits/char_traits.h" 3 template 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 { 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(memchr(__s, __a, __n)); } static char_type* move(char_type* __s1, const char_type* __s2, size_t __n) { return static_cast(memmove(__s1, __s2, __n)); } static char_type* copy(char_type* __s1, const char_type* __s2, size_t __n) { return static_cast(memcpy(__s1, __s2, __n)); } static char_type* assign(char_type* __s, size_t __n, char_type __a) { return static_cast(memset(__s, __a, __n)); } static char_type to_char_type(const int_type& __c) { return static_cast(__c); } static int_type to_int_type(const char_type& __c) { return static_cast(static_cast(__c)); } static bool eq_int_type(const int_type& __c1, const int_type& __c2) { return __c1 == __c2; } static int_type eof() { return static_cast((-1)); } static int_type not_eof(const int_type& __c) { return (__c == eof()) ? 0 : __c; } }; template<> struct char_traits { 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((0xffffffffu)); } static int_type not_eof(const int_type& __c) { return eq_int_type(__c, eof()) ? 0 : __c; } }; template 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/include/g++/string" 2 3 # 1 "/usr/include/g++/memory" 1 3 # 52 "/usr/include/g++/memory" 3 # 53 "/usr/include/g++/memory" 3 # 1 "/usr/include/g++/bits/stl_algobase.h" 1 3 # 66 "/usr/include/g++/bits/stl_algobase.h" 3 # 1 "/usr/include/g++/climits" 1 3 # 47 "/usr/include/g++/climits" 3 # 48 "/usr/include/g++/climits" 3 # 1 "/usr/lib/gcc-lib/i586-suse-linux/3.3.4/include/limits.h" 1 3 4 # 11 "/usr/lib/gcc-lib/i586-suse-linux/3.3.4/include/limits.h" 3 4 # 1 "/usr/lib/gcc-lib/i586-suse-linux/3.3.4/include/syslimits.h" 1 3 4 # 1 "/usr/lib/gcc-lib/i586-suse-linux/3.3.4/include/limits.h" 1 3 4 # 122 "/usr/lib/gcc-lib/i586-suse-linux/3.3.4/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/i586-suse-linux/3.3.4/include/limits.h" 2 3 4 # 8 "/usr/lib/gcc-lib/i586-suse-linux/3.3.4/include/syslimits.h" 2 3 4 # 12 "/usr/lib/gcc-lib/i586-suse-linux/3.3.4/include/limits.h" 2 3 4 # 50 "/usr/include/g++/climits" 2 3 # 67 "/usr/include/g++/bits/stl_algobase.h" 2 3 # 1 "/usr/include/g++/cstdlib" 1 3 # 47 "/usr/include/g++/cstdlib" 3 # 48 "/usr/include/g++/cstdlib" 3 # 1 "/usr/include/stdlib.h" 1 3 4 # 33 "/usr/include/stdlib.h" 3 4 # 1 "/usr/lib/gcc-lib/i586-suse-linux/3.3.4/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 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 # 93 "/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; # 137 "/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__)); extern int atoi (__const char *__nptr) throw () __attribute__ ((__pure__)); extern long int atol (__const char *__nptr) throw () __attribute__ ((__pure__)); __extension__ extern long long int atoll (__const char *__nptr) throw () __attribute__ ((__pure__)); extern double strtod (__const char *__restrict __nptr, char **__restrict __endptr) throw (); extern float strtof (__const char *__restrict __nptr, char **__restrict __endptr) throw (); extern long double strtold (__const char *__restrict __nptr, char **__restrict __endptr) throw (); extern long int strtol (__const char *__restrict __nptr, char **__restrict __endptr, int __base) throw (); extern unsigned long int strtoul (__const char *__restrict __nptr, char **__restrict __endptr, int __base) throw (); __extension__ extern long long int strtoq (__const char *__restrict __nptr, char **__restrict __endptr, int __base) throw (); __extension__ extern unsigned long long int strtouq (__const char *__restrict __nptr, char **__restrict __endptr, int __base) throw (); __extension__ extern long long int strtoll (__const char *__restrict __nptr, char **__restrict __endptr, int __base) throw (); __extension__ extern unsigned long long int strtoull (__const char *__restrict __nptr, char **__restrict __endptr, int __base) throw (); # 229 "/usr/include/stdlib.h" 3 4 extern long int strtol_l (__const char *__restrict __nptr, char **__restrict __endptr, int __base, __locale_t __loc) throw (); extern unsigned long int strtoul_l (__const char *__restrict __nptr, char **__restrict __endptr, int __base, __locale_t __loc) throw (); __extension__ extern long long int strtoll_l (__const char *__restrict __nptr, char **__restrict __endptr, int __base, __locale_t __loc) throw (); __extension__ extern unsigned long long int strtoull_l (__const char *__restrict __nptr, char **__restrict __endptr, int __base, __locale_t __loc) throw (); extern double strtod_l (__const char *__restrict __nptr, char **__restrict __endptr, __locale_t __loc) throw (); extern float strtof_l (__const char *__restrict __nptr, char **__restrict __endptr, __locale_t __loc) throw (); extern long double strtold_l (__const char *__restrict __nptr, char **__restrict __endptr, __locale_t __loc) throw (); extern double __strtod_internal (__const char *__restrict __nptr, char **__restrict __endptr, int __group) throw (); extern float __strtof_internal (__const char *__restrict __nptr, char **__restrict __endptr, int __group) throw (); extern long double __strtold_internal (__const char *__restrict __nptr, char **__restrict __endptr, int __group) throw (); extern long int __strtol_internal (__const char *__restrict __nptr, char **__restrict __endptr, int __base, int __group) throw (); extern unsigned long int __strtoul_internal (__const char *__restrict __nptr, char **__restrict __endptr, int __base, int __group) throw (); __extension__ extern long long int __strtoll_internal (__const char *__restrict __nptr, char **__restrict __endptr, int __base, int __group) throw (); __extension__ extern unsigned long long int __strtoull_internal (__const char * __restrict __nptr, char **__restrict __endptr, int __base, int __group) throw (); 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); } # 408 "/usr/include/stdlib.h" 3 4 extern char *l64a (long int __n) throw (); extern long int a64l (__const char *__s) throw () __attribute__ ((__pure__)); # 1 "/usr/include/sys/types.h" 1 3 4 # 29 "/usr/include/sys/types.h" 3 4 extern "C" { 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; # 72 "/usr/include/sys/types.h" 3 4 typedef __mode_t mode_t; typedef __nlink_t nlink_t; # 105 "/usr/include/sys/types.h" 3 4 typedef __id_t id_t; # 116 "/usr/include/sys/types.h" 3 4 typedef __daddr_t daddr_t; typedef __caddr_t caddr_t; typedef __key_t key_t; # 141 "/usr/include/sys/types.h" 3 4 typedef __suseconds_t suseconds_t; # 1 "/usr/lib/gcc-lib/i586-suse-linux/3.3.4/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 # 35 "/usr/include/sys/select.h" 2 3 4 # 46 "/usr/include/sys/select.h" 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 # 267 "/usr/include/sys/types.h" 2 3 4 } # 417 "/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 (); extern char *setstate (char *__statebuf) throw (); 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 (); extern int srandom_r (unsigned int __seed, struct random_data *__buf) throw (); extern int initstate_r (unsigned int __seed, char *__restrict __statebuf, size_t __statelen, struct random_data *__restrict __buf) throw (); extern int setstate_r (char *__restrict __statebuf, struct random_data *__restrict __buf) throw (); 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 (); extern long int lrand48 (void) throw (); extern long int nrand48 (unsigned short int __xsubi[3]) throw (); extern long int mrand48 (void) throw (); extern long int jrand48 (unsigned short int __xsubi[3]) throw (); extern void srand48 (long int __seedval) throw (); extern unsigned short int *seed48 (unsigned short int __seed16v[3]) throw (); extern void lcong48 (unsigned short int __param[7]) throw (); 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 (); extern int erand48_r (unsigned short int __xsubi[3], struct drand48_data *__restrict __buffer, double *__restrict __result) throw (); extern int lrand48_r (struct drand48_data *__restrict __buffer, long int *__restrict __result) throw (); extern int nrand48_r (unsigned short int __xsubi[3], struct drand48_data *__restrict __buffer, long int *__restrict __result) throw (); extern int mrand48_r (struct drand48_data *__restrict __buffer, long int *__restrict __result) throw (); extern int jrand48_r (unsigned short int __xsubi[3], struct drand48_data *__restrict __buffer, long int *__restrict __result) throw (); extern int srand48_r (long int __seedval, struct drand48_data *__buffer) throw (); extern int seed48_r (unsigned short int __seed16v[3], struct drand48_data *__buffer) throw (); extern int lcong48_r (unsigned short int __param[7], struct drand48_data *__buffer) throw (); 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/i586-suse-linux/3.3.4/include/stddef.h" 1 3 4 # 26 "/usr/include/alloca.h" 2 3 4 extern "C" { extern void *alloca (size_t __size) throw (); } # 579 "/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__)); extern void abort (void) throw () __attribute__ ((__noreturn__)); extern int atexit (void (*__func) (void)) throw (); extern int on_exit (void (*__func) (int __status, void *__arg), void *__arg) throw (); extern void exit (int __status) throw () __attribute__ ((__noreturn__)); extern void _Exit (int __status) throw () __attribute__ ((__noreturn__)); extern char *getenv (__const char *__name) throw (); extern char *__secure_getenv (__const char *__name) throw (); extern int putenv (char *__string) throw (); extern int setenv (__const char *__name, __const char *__value, int __replace) throw (); extern int unsetenv (__const char *__name) throw (); extern int clearenv (void) throw (); # 663 "/usr/include/stdlib.h" 3 4 extern char *mktemp (char *__template) throw (); # 674 "/usr/include/stdlib.h" 3 4 extern int mkstemp (char *__template); # 683 "/usr/include/stdlib.h" 3 4 extern int mkstemp64 (char *__template); # 693 "/usr/include/stdlib.h" 3 4 extern char *mkdtemp (char *__template) throw (); extern int system (__const char *__command); extern char *canonicalize_file_name (__const char *__name) throw (); # 720 "/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); extern void qsort (void *__base, size_t __nmemb, size_t __size, __compar_fn_t __compar); 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__)); # 784 "/usr/include/stdlib.h" 3 4 extern char *ecvt (double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign) throw (); extern char *fcvt (double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign) throw (); extern char *gcvt (double __value, int __ndigit, char *__buf) throw (); extern char *qecvt (long double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign) throw (); extern char *qfcvt (long double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign) throw (); extern char *qgcvt (long double __value, int __ndigit, char *__buf) throw (); extern int ecvt_r (double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign, char *__restrict __buf, size_t __len) throw (); extern int fcvt_r (double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign, char *__restrict __buf, size_t __len) throw (); extern int qecvt_r (long double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign, char *__restrict __buf, size_t __len) throw (); extern int qfcvt_r (long double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign, char *__restrict __buf, size_t __len) throw (); 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 (); # 866 "/usr/include/stdlib.h" 3 4 extern int getsubopt (char **__restrict __optionp, char *__const *__restrict __tokens, char **__restrict __valuep) throw (); extern void setkey (__const char *__key) throw (); 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 (); extern int getpt (void); extern int getloadavg (double __loadavg[], int __nelem) throw (); } # 53 "/usr/include/g++/cstdlib" 2 3 # 84 "/usr/include/g++/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); } } # 136 "/usr/include/g++/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; } # 172 "/usr/include/g++/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/include/g++/bits/stl_algobase.h" 2 3 # 1 "/usr/include/g++/new" 1 3 # 44 "/usr/include/g++/new" 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/include/g++/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/include/g++/bits/stl_algobase.h" 2 3 # 1 "/usr/include/g++/bits/stl_pair.h" 1 3 # 64 "/usr/include/g++/bits/stl_pair.h" 3 namespace std { template 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 pair(const pair<_U1, _U2>& __p) : first(__p.first), second(__p.second) {} }; template inline bool operator==(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) { return __x.first == __y.first && __x.second == __y.second; } template 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 inline bool operator!=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) { return !(__x == __y); } template inline bool operator>(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) { return __y < __x; } template inline bool operator<=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) { return !(__y < __x); } template inline bool operator>=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) { return !(__x < __y); } # 140 "/usr/include/g++/bits/stl_pair.h" 3 template inline pair<_T1, _T2> make_pair(_T1 __x, _T2 __y) { return pair<_T1, _T2>(__x, __y); } } # 72 "/usr/include/g++/bits/stl_algobase.h" 2 3 # 1 "/usr/include/g++/bits/type_traits.h" 1 3 # 52 "/usr/include/g++/bits/type_traits.h" 3 # 53 "/usr/include/g++/bits/type_traits.h" 3 # 90 "/usr/include/g++/bits/type_traits.h" 3 struct __true_type {}; struct __false_type {}; template struct __type_traits { typedef __true_type this_dummy_member_must_be_first; # 113 "/usr/include/g++/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 { 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 { 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 { 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 { 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 { 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 { 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 { 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 { 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 { 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 { 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 { 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 { 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 { 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 { 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 { 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 { 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<_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 struct _Is_integer { typedef __false_type _Integral; }; template<> struct _Is_integer { typedef __true_type _Integral; }; template<> struct _Is_integer { typedef __true_type _Integral; }; template<> struct _Is_integer { typedef __true_type _Integral; }; template<> struct _Is_integer { typedef __true_type _Integral; }; template<> struct _Is_integer { typedef __true_type _Integral; }; template<> struct _Is_integer { typedef __true_type _Integral; }; template<> struct _Is_integer { typedef __true_type _Integral; }; template<> struct _Is_integer { typedef __true_type _Integral; }; template<> struct _Is_integer { typedef __true_type _Integral; }; template<> struct _Is_integer { typedef __true_type _Integral; }; template<> struct _Is_integer { typedef __true_type _Integral; }; template<> struct _Is_integer { typedef __true_type _Integral; }; template<> struct _Is_integer { typedef __true_type _Integral; }; template struct _Is_normal_iterator { typedef __false_type _Normal; }; namespace __gnu_cxx { template class __normal_iterator; } template struct _Is_normal_iterator< __gnu_cxx::__normal_iterator<_Iterator, _Container> > { typedef __true_type _Normal; }; # 73 "/usr/include/g++/bits/stl_algobase.h" 2 3 # 1 "/usr/include/g++/bits/stl_iterator_base_types.h" 1 3 # 67 "/usr/include/g++/bits/stl_iterator_base_types.h" 3 # 68 "/usr/include/g++/bits/stl_iterator_base_types.h" 3 namespace std { # 80 "/usr/include/g++/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/include/g++/bits/stl_iterator_base_types.h" 3 template struct iterator { typedef _Category iterator_category; typedef _Tp value_type; typedef _Distance difference_type; typedef _Pointer pointer; typedef _Reference reference; }; template 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 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 struct iterator_traits { 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 inline typename iterator_traits<_Iter>::iterator_category __iterator_category(const _Iter&) { return typename iterator_traits<_Iter>::iterator_category(); } } # 74 "/usr/include/g++/bits/stl_algobase.h" 2 3 # 1 "/usr/include/g++/bits/stl_iterator_base_funcs.h" 1 3 # 67 "/usr/include/g++/bits/stl_iterator_base_funcs.h" 3 # 68 "/usr/include/g++/bits/stl_iterator_base_funcs.h" 3 # 1 "/usr/include/g++/bits/concept_check.h" 1 3 # 38 "/usr/include/g++/bits/concept_check.h" 3 # 39 "/usr/include/g++/bits/concept_check.h" 3 # 69 "/usr/include/g++/bits/stl_iterator_base_funcs.h" 2 3 namespace std { template 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 inline typename iterator_traits<_RandomAccessIterator>::difference_type __distance(_RandomAccessIterator __first, _RandomAccessIterator __last, random_access_iterator_tag) { return __last - __first; } # 109 "/usr/include/g++/bits/stl_iterator_base_funcs.h" 3 template inline typename iterator_traits<_InputIterator>::difference_type distance(_InputIterator __first, _InputIterator __last) { return __distance(__first, __last, __iterator_category(__first)); } template inline void __advance(_InputIter& __i, _Distance __n, input_iterator_tag) { while (__n--) ++__i; } template inline void __advance(_BidirectionalIterator& __i, _Distance __n, bidirectional_iterator_tag) { if (__n > 0) while (__n--) ++__i; else while (__n++) --__i; } template inline void __advance(_RandomAccessIterator& __i, _Distance __n, random_access_iterator_tag) { __i += __n; } # 162 "/usr/include/g++/bits/stl_iterator_base_funcs.h" 3 template inline void advance(_InputIterator& __i, _Distance __n) { __advance(__i, __n, __iterator_category(__i)); } } # 75 "/usr/include/g++/bits/stl_algobase.h" 2 3 # 1 "/usr/include/g++/bits/stl_iterator.h" 1 3 # 68 "/usr/include/g++/bits/stl_iterator.h" 3 namespace std { # 89 "/usr/include/g++/bits/stl_iterator.h" 3 template class reverse_iterator : public 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 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/include/g++/bits/stl_iterator.h" 3 template inline bool operator==(const reverse_iterator<_Iterator>& __x, const reverse_iterator<_Iterator>& __y) { return __x.base() == __y.base(); } template inline bool operator<(const reverse_iterator<_Iterator>& __x, const reverse_iterator<_Iterator>& __y) { return __y.base() < __x.base(); } template inline bool operator!=(const reverse_iterator<_Iterator>& __x, const reverse_iterator<_Iterator>& __y) { return !(__x == __y); } template inline bool operator>(const reverse_iterator<_Iterator>& __x, const reverse_iterator<_Iterator>& __y) { return __y < __x; } template inline bool operator<=(const reverse_iterator<_Iterator>& __x, const reverse_iterator<_Iterator>& __y) { return !(__y < __x); } template inline bool operator>=(const reverse_iterator<_Iterator>& __x, const reverse_iterator<_Iterator>& __y) { return !(__x < __y); } template inline typename reverse_iterator<_Iterator>::difference_type operator-(const reverse_iterator<_Iterator>& __x, const reverse_iterator<_Iterator>& __y) { return __y.base() - __x.base(); } template 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/include/g++/bits/stl_iterator.h" 3 template class back_insert_iterator : public iterator { protected: _Container* container; public: typedef _Container container_type; explicit back_insert_iterator(_Container& __x) : container(&__x) { } # 358 "/usr/include/g++/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/include/g++/bits/stl_iterator.h" 3 template inline back_insert_iterator<_Container> back_inserter(_Container& __x) { return back_insert_iterator<_Container>(__x); } # 404 "/usr/include/g++/bits/stl_iterator.h" 3 template class front_insert_iterator : public iterator { protected: _Container* container; public: typedef _Container container_type; explicit front_insert_iterator(_Container& __x) : container(&__x) { } # 429 "/usr/include/g++/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/include/g++/bits/stl_iterator.h" 3 template inline front_insert_iterator<_Container> front_inserter(_Container& __x) { return front_insert_iterator<_Container>(__x); } # 479 "/usr/include/g++/bits/stl_iterator.h" 3 template class insert_iterator : public iterator { 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/include/g++/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/include/g++/bits/stl_iterator.h" 3 template 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 class __normal_iterator : public 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 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/include/g++/bits/stl_iterator.h" 3 template inline bool operator==(const __normal_iterator<_IteratorL, _Container>& __lhs, const __normal_iterator<_IteratorR, _Container>& __rhs) { return __lhs.base() == __rhs.base(); } template inline bool operator==(const __normal_iterator<_Iterator, _Container>& __lhs, const __normal_iterator<_Iterator, _Container>& __rhs) { return __lhs.base() == __rhs.base(); } template inline bool operator!=(const __normal_iterator<_IteratorL, _Container>& __lhs, const __normal_iterator<_IteratorR, _Container>& __rhs) { return __lhs.base() != __rhs.base(); } template inline bool operator!=(const __normal_iterator<_Iterator, _Container>& __lhs, const __normal_iterator<_Iterator, _Container>& __rhs) { return __lhs.base() != __rhs.base(); } template inline bool operator<(const __normal_iterator<_IteratorL, _Container>& __lhs, const __normal_iterator<_IteratorR, _Container>& __rhs) { return __lhs.base() < __rhs.base(); } template inline bool operator<(const __normal_iterator<_Iterator, _Container>& __lhs, const __normal_iterator<_Iterator, _Container>& __rhs) { return __lhs.base() < __rhs.base(); } template inline bool operator>(const __normal_iterator<_IteratorL, _Container>& __lhs, const __normal_iterator<_IteratorR, _Container>& __rhs) { return __lhs.base() > __rhs.base(); } template inline bool operator>(const __normal_iterator<_Iterator, _Container>& __lhs, const __normal_iterator<_Iterator, _Container>& __rhs) { return __lhs.base() > __rhs.base(); } template inline bool operator<=(const __normal_iterator<_IteratorL, _Container>& __lhs, const __normal_iterator<_IteratorR, _Container>& __rhs) { return __lhs.base() <= __rhs.base(); } template inline bool operator<=(const __normal_iterator<_Iterator, _Container>& __lhs, const __normal_iterator<_Iterator, _Container>& __rhs) { return __lhs.base() <= __rhs.base(); } template inline bool operator>=(const __normal_iterator<_IteratorL, _Container>& __lhs, const __normal_iterator<_IteratorR, _Container>& __rhs) { return __lhs.base() >= __rhs.base(); } template inline bool operator>=(const __normal_iterator<_Iterator, _Container>& __lhs, const __normal_iterator<_Iterator, _Container>& __rhs) { return __lhs.base() >= __rhs.base(); } template 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 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/include/g++/bits/stl_algobase.h" 2 3 namespace std { # 91 "/usr/include/g++/bits/stl_algobase.h" 3 template 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/include/g++/bits/stl_algobase.h" 3 template inline void swap(_Tp& __a, _Tp& __b) { _Tp __tmp = __a; __a = __b; __b = __tmp; } # 146 "/usr/include/g++/bits/stl_algobase.h" 3 template inline const _Tp& min(const _Tp& __a, const _Tp& __b) { if (__b < __a) return __b; return __a; } # 166 "/usr/include/g++/bits/stl_algobase.h" 3 template inline const _Tp& max(const _Tp& __a, const _Tp& __b) { if (__a < __b) return __b; return __a; } # 186 "/usr/include/g++/bits/stl_algobase.h" 3 template inline const _Tp& min(const _Tp& __a, const _Tp& __b, _Compare __comp) { if (__comp(__b, __a)) return __b; return __a; } # 204 "/usr/include/g++/bits/stl_algobase.h" 3 template inline const _Tp& max(const _Tp& __a, const _Tp& __b, _Compare __comp) { if (__comp(__a, __b)) return __b; return __a; } # 221 "/usr/include/g++/bits/stl_algobase.h" 3 template inline _OutputIter __copy(_InputIter __first, _InputIter __last, _OutputIter __result, input_iterator_tag) { for ( ; __first != __last; ++__result, ++__first) *__result = *__first; return __result; } template 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 inline _Tp* __copy_trivial(const _Tp* __first, const _Tp* __last, _Tp* __result) { memmove(__result, __first, sizeof(_Tp) * (__last - __first)); return __result + (__last - __first); } template inline _OutputIter __copy_aux2(_InputIter __first, _InputIter __last, _OutputIter __result, __false_type) { return __copy(__first, __last, __result, __iterator_category(__first)); } template inline _OutputIter __copy_aux2(_InputIter __first, _InputIter __last, _OutputIter __result, __true_type) { return __copy(__first, __last, __result, __iterator_category(__first)); } template inline _Tp* __copy_aux2(_Tp* __first, _Tp* __last, _Tp* __result, __true_type) { return __copy_trivial(__first, __last, __result); } template inline _Tp* __copy_aux2(const _Tp* __first, const _Tp* __last, _Tp* __result, __true_type) { return __copy_trivial(__first, __last, __result); } template 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 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 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 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/include/g++/bits/stl_algobase.h" 3 template 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 inline _BidirectionalIter2 __copy_backward(_BidirectionalIter1 __first, _BidirectionalIter1 __last, _BidirectionalIter2 __result, bidirectional_iterator_tag) { while (__first != __last) *--__result = *--__last; return __result; } template 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 struct __copy_backward_dispatch { static _BidirectionalIter2 copy(_BidirectionalIter1 __first, _BidirectionalIter1 __last, _BidirectionalIter2 __result) { return __copy_backward(__first, __last, __result, __iterator_category(__first)); } }; template 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 struct __copy_backward_dispatch { static _Tp* copy(const _Tp* __first, const _Tp* __last, _Tp* __result) { return __copy_backward_dispatch<_Tp*, _Tp*, __true_type> ::copy(__first, __last, __result); } }; template inline _BI2 __copy_backward_aux(_BI1 __first, _BI1 __last, _BI2 __result) { typedef typename __type_traits::value_type> ::has_trivial_assignment_operator _Trivial; return __copy_backward_dispatch<_BI1, _BI2, _Trivial> ::copy(__first, __last, __result); } template 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 inline _BI2 __copy_backward_output_normal_iterator(_BI1 __first, _BI1 __last, _BI2 __result, __false_type) { return __copy_backward_aux(__first, __last, __result); } template 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 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/include/g++/bits/stl_algobase.h" 3 template 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/include/g++/bits/stl_algobase.h" 3 template void fill(_ForwardIter __first, _ForwardIter __last, const _Tp& __value) { for ( ; __first != __last; ++__first) *__first = __value; } # 531 "/usr/include/g++/bits/stl_algobase.h" 3 template _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(__tmp), __last - __first); } inline void fill(char* __first, char* __last, const char& __c) { char __tmp = __c; memset(__first, static_cast(__tmp), __last - __first); } template inline unsigned char* fill_n(unsigned char* __first, _Size __n, const unsigned char& __c) { fill(__first, __first + __n, __c); return __first + __n; } template inline signed char* fill_n(char* __first, _Size __n, const signed char& __c) { fill(__first, __first + __n, __c); return __first + __n; } template inline char* fill_n(char* __first, _Size __n, const char& __c) { fill(__first, __first + __n, __c); return __first + __n; } # 606 "/usr/include/g++/bits/stl_algobase.h" 3 template 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/include/g++/bits/stl_algobase.h" 3 template 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/include/g++/bits/stl_algobase.h" 3 template inline bool equal(_InputIter1 __first1, _InputIter1 __last1, _InputIter2 __first2) { for ( ; __first1 != __last1; ++__first1, ++__first2) if (!(*__first1 == *__first2)) return false; return true; } # 699 "/usr/include/g++/bits/stl_algobase.h" 3 template 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/include/g++/bits/stl_algobase.h" 3 template 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/include/g++/bits/stl_algobase.h" 3 template 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); } } # 55 "/usr/include/g++/memory" 2 3 # 1 "/usr/include/g++/bits/stl_alloc.h" 1 3 # 88 "/usr/include/g++/bits/stl_alloc.h" 3 # 1 "/usr/include/g++/bits/functexcept.h" 1 3 # 34 "/usr/include/g++/bits/functexcept.h" 3 # 1 "/usr/include/g++/exception_defines.h" 1 3 # 35 "/usr/include/g++/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/include/g++/bits/stl_alloc.h" 2 3 # 1 "/usr/include/g++/bits/stl_threads.h" 1 3 # 54 "/usr/include/g++/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/include/g++/bits/stl_threads.h" 3 template struct _Swap_lock_struct { static __gthread_mutex_t _S_swap_lock; }; template __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/include/g++/bits/stl_threads.h" 3 namespace std { struct _STL_mutex_lock { __gthread_mutex_t _M_lock; void _M_initialize() { # 192 "/usr/include/g++/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/include/g++/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/include/g++/bits/stl_alloc.h" 2 3 # 1 "/usr/include/g++/i586-suse-linux/bits/atomicity.h" 1 3 # 33 "/usr/include/g++/i586-suse-linux/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) : "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) : "memory"); } # 92 "/usr/include/g++/bits/stl_alloc.h" 2 3 namespace std { # 103 "/usr/include/g++/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/include/g++/bits/stl_alloc.h" 3 template 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 void (* __malloc_alloc_template<__inst>::__malloc_alloc_oom_handler)() = 0; template 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 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/include/g++/bits/stl_alloc.h" 3 template 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/include/g++/bits/stl_alloc.h" 3 template 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/include/g++/bits/stl_alloc.h" 3 template 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 _Atomic_word __default_alloc_template<__threads, __inst>::_S_force_new = 0; template inline bool operator==(const __default_alloc_template<__threads,__inst>&, const __default_alloc_template<__threads,__inst>&) { return true; } template inline bool operator!=(const __default_alloc_template<__threads,__inst>&, const __default_alloc_template<__threads,__inst>&) { return false; } template 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 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 void* __default_alloc_template:: 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 _STL_mutex_lock __default_alloc_template<__threads,__inst>::_S_node_allocator_lock = { {0, 0, 0, PTHREAD_MUTEX_TIMED_NP, { 0, 0 }} }; template char* __default_alloc_template<__threads,__inst>::_S_start_free = 0; template char* __default_alloc_template<__threads,__inst>::_S_end_free = 0; template size_t __default_alloc_template<__threads,__inst>::_S_heap_size = 0; template typename __default_alloc_template<__threads,__inst>::_Obj* volatile __default_alloc_template<__threads,__inst>::_S_free_list[_NFREELISTS]; typedef __default_alloc_template __alloc; typedef __default_alloc_template __single_client_alloc; # 635 "/usr/include/g++/bits/stl_alloc.h" 3 template 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 struct rebind { typedef allocator<_Tp1> other; }; allocator() throw() {} allocator(const allocator&) throw() {} template 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 { public: typedef size_t size_type; typedef ptrdiff_t difference_type; typedef void* pointer; typedef const void* const_pointer; typedef void value_type; template struct rebind { typedef allocator<_Tp1> other; }; }; template inline bool operator==(const allocator<_T1>&, const allocator<_T2>&) { return true; } template inline bool operator!=(const allocator<_T1>&, const allocator<_T2>&) { return false; } # 735 "/usr/include/g++/bits/stl_alloc.h" 3 template 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 struct rebind { typedef __allocator<_Tp1, _Alloc> other; }; __allocator() throw() {} __allocator(const __allocator& __a) throw() : __underlying_alloc(__a.__underlying_alloc) {} template __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 struct __allocator { typedef size_t size_type; typedef ptrdiff_t difference_type; typedef void* pointer; typedef const void* const_pointer; typedef void value_type; template struct rebind { typedef __allocator<_Tp1, _Alloc> other; }; }; template inline bool operator==(const __allocator<_Tp,_Alloc>& __a1, const __allocator<_Tp,_Alloc>& __a2) { return __a1.__underlying_alloc == __a2.__underlying_alloc; } template inline bool operator!=(const __allocator<_Tp, _Alloc>& __a1, const __allocator<_Tp, _Alloc>& __a2) { return __a1.__underlying_alloc != __a2.__underlying_alloc; } template inline bool operator==(const __malloc_alloc_template&, const __malloc_alloc_template&) { return true; } template inline bool operator!=(const __malloc_alloc_template<__inst>&, const __malloc_alloc_template<__inst>&) { return false; } template inline bool operator==(const __debug_alloc<_Alloc>&, const __debug_alloc<_Alloc>&) { return true; } template inline bool operator!=(const __debug_alloc<_Alloc>&, const __debug_alloc<_Alloc>&) { return false; } # 891 "/usr/include/g++/bits/stl_alloc.h" 3 template struct _Alloc_traits { static const bool _S_instanceless = false; typedef typename _Allocator::template rebind<_Tp>::other allocator_type; }; template const bool _Alloc_traits<_Tp, _Allocator>::_S_instanceless; template 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 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 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 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 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 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 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; extern template class allocator; extern template class __default_alloc_template; } # 56 "/usr/include/g++/memory" 2 3 # 1 "/usr/include/g++/bits/stl_construct.h" 1 3 # 67 "/usr/include/g++/bits/stl_construct.h" 3 namespace std { template inline void _Construct(_T1* __p, const _T2& __value) { ::new (static_cast(__p)) _T1(__value); } template inline void _Construct(_T1* __p) { ::new (static_cast(__p)) _T1(); } # 106 "/usr/include/g++/bits/stl_construct.h" 3 template inline void __destroy_aux(_ForwardIterator __first, _ForwardIterator __last, __false_type) { for ( ; __first != __last; ++__first) _Destroy(&*__first); } # 120 "/usr/include/g++/bits/stl_construct.h" 3 template inline void __destroy_aux(_ForwardIterator, _ForwardIterator, __true_type) { } template inline void _Destroy(_Tp* __pointer) { __pointer->~_Tp(); } # 142 "/usr/include/g++/bits/stl_construct.h" 3 template 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()); } } # 57 "/usr/include/g++/memory" 2 3 # 1 "/usr/include/g++/bits/stl_uninitialized.h" 1 3 # 66 "/usr/include/g++/bits/stl_uninitialized.h" 3 namespace std { template inline _ForwardIter __uninitialized_copy_aux(_InputIter __first, _InputIter __last, _ForwardIter __result, __true_type) { return copy(__first, __last, __result); } template _ForwardIter __uninitialized_copy_aux(_InputIter __first, _InputIter __last, _ForwardIter __result, __false_type) { _ForwardIter __cur = __result; try { for ( ; __first != __last; ++__first, ++__cur) _Construct(&*__cur, *__first); return __cur; } catch(...) { _Destroy(__result, __cur); throw; } } # 106 "/usr/include/g++/bits/stl_uninitialized.h" 3 template 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 inline void __uninitialized_fill_aux(_ForwardIter __first, _ForwardIter __last, const _Tp& __x, __true_type) { fill(__first, __last, __x); } template void __uninitialized_fill_aux(_ForwardIter __first, _ForwardIter __last, const _Tp& __x, __false_type) { _ForwardIter __cur = __first; try { for ( ; __cur != __last; ++__cur) _Construct(&*__cur, __x); } catch(...) { _Destroy(__first, __cur); throw; } } # 164 "/usr/include/g++/bits/stl_uninitialized.h" 3 template 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 inline _ForwardIter __uninitialized_fill_n_aux(_ForwardIter __first, _Size __n, const _Tp& __x, __true_type) { return fill_n(__first, __n, __x); } template _ForwardIter __uninitialized_fill_n_aux(_ForwardIter __first, _Size __n, const _Tp& __x, __false_type) { _ForwardIter __cur = __first; try { for ( ; __n > 0; --__n, ++__cur) _Construct(&*__cur, __x); return __cur; } catch(...) { _Destroy(__first, __cur); throw; } } # 210 "/usr/include/g++/bits/stl_uninitialized.h" 3 template 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/include/g++/bits/stl_uninitialized.h" 3 template inline _ForwardIter __uninitialized_copy_copy(_InputIter1 __first1, _InputIter1 __last1, _InputIter2 __first2, _InputIter2 __last2, _ForwardIter __result) { _ForwardIter __mid = uninitialized_copy(__first1, __last1, __result); try { return uninitialized_copy(__first2, __last2, __mid); } catch(...) { _Destroy(__result, __mid); throw; } } template inline _ForwardIter __uninitialized_fill_copy(_ForwardIter __result, _ForwardIter __mid, const _Tp& __x, _InputIter __first, _InputIter __last) { uninitialized_fill(__result, __mid, __x); try { return uninitialized_copy(__first, __last, __mid); } catch(...) { _Destroy(__result, __mid); throw; } } template inline void __uninitialized_copy_fill(_InputIter __first1, _InputIter __last1, _ForwardIter __first2, _ForwardIter __last2, const _Tp& __x) { _ForwardIter __mid2 = uninitialized_copy(__first1, __last1, __first2); try { uninitialized_fill(__mid2, __last2, __x); } catch(...) { _Destroy(__first2, __mid2); throw; } } } # 59 "/usr/include/g++/memory" 2 3 # 1 "/usr/include/g++/bits/stl_raw_storage_iter.h" 1 3 # 64 "/usr/include/g++/bits/stl_raw_storage_iter.h" 3 namespace std { template class raw_storage_iterator : public iterator { 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/include/g++/memory" 2 3 namespace std { # 71 "/usr/include/g++/memory" 3 template 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/include/g++/memory" 3 template inline pair<_Tp*,ptrdiff_t> get_temporary_buffer(ptrdiff_t __len) { return __get_temporary_buffer(__len, (_Tp*) 0); } # 115 "/usr/include/g++/memory" 3 template void return_temporary_buffer(_Tp* __p) { std::free(__p); } # 127 "/usr/include/g++/memory" 3 template struct auto_ptr_ref { _Tp1* _M_ptr; explicit auto_ptr_ref(_Tp1* __p): _M_ptr(__p) { } }; # 166 "/usr/include/g++/memory" 3 template 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/include/g++/memory" 3 auto_ptr(auto_ptr& __a) throw() : _M_ptr(__a.release()) { } # 203 "/usr/include/g++/memory" 3 template auto_ptr(auto_ptr<_Tp1>& __a) throw() : _M_ptr(__a.release()) { } # 214 "/usr/include/g++/memory" 3 auto_ptr& operator=(auto_ptr& __a) throw() { reset(__a.release()); return *this; } # 231 "/usr/include/g++/memory" 3 template auto_ptr& operator=(auto_ptr<_Tp1>& __a) throw() { reset(__a.release()); return *this; } # 251 "/usr/include/g++/memory" 3 ~auto_ptr() { delete _M_ptr; } # 261 "/usr/include/g++/memory" 3 element_type& operator*() const throw() { return *_M_ptr; } element_type* operator->() const throw() { return _M_ptr; } # 283 "/usr/include/g++/memory" 3 element_type* get() const throw() { return _M_ptr; } # 297 "/usr/include/g++/memory" 3 element_type* release() throw() { element_type* __tmp = _M_ptr; _M_ptr = 0; return __tmp; } # 312 "/usr/include/g++/memory" 3 void reset(element_type* __p = 0) throw() { if (__p != _M_ptr) { delete _M_ptr; _M_ptr = __p; } } # 333 "/usr/include/g++/memory" 3 auto_ptr(auto_ptr_ref __ref) throw() : _M_ptr(__ref._M_ptr) { } auto_ptr& operator=(auto_ptr_ref __ref) throw() { if (__ref._M_ptr != this->get()) { delete _M_ptr; _M_ptr = __ref._M_ptr; } return *this; } template operator auto_ptr_ref<_Tp1>() throw() { return auto_ptr_ref<_Tp1>(this->release()); } template operator auto_ptr<_Tp1>() throw() { return auto_ptr<_Tp1>(this->release()); } }; } # 49 "/usr/include/g++/string" 2 3 # 1 "/usr/include/g++/bits/stl_function.h" 1 3 # 64 "/usr/include/g++/bits/stl_function.h" 3 namespace std { # 101 "/usr/include/g++/bits/stl_function.h" 3 template struct unary_function { typedef _Arg argument_type; typedef _Result result_type; }; template struct binary_function { typedef _Arg1 first_argument_type; typedef _Arg2 second_argument_type; typedef _Result result_type; }; # 127 "/usr/include/g++/bits/stl_function.h" 3 template struct plus : public binary_function<_Tp,_Tp,_Tp> { _Tp operator()(const _Tp& __x, const _Tp& __y) const { return __x + __y; } }; template struct minus : public binary_function<_Tp,_Tp,_Tp> { _Tp operator()(const _Tp& __x, const _Tp& __y) const { return __x - __y; } }; template struct multiplies : public binary_function<_Tp,_Tp,_Tp> { _Tp operator()(const _Tp& __x, const _Tp& __y) const { return __x * __y; } }; template struct divides : public binary_function<_Tp,_Tp,_Tp> { _Tp operator()(const _Tp& __x, const _Tp& __y) const { return __x / __y; } }; template struct modulus : public binary_function<_Tp,_Tp,_Tp> { _Tp operator()(const _Tp& __x, const _Tp& __y) const { return __x % __y; } }; template struct negate : public unary_function<_Tp,_Tp> { _Tp operator()(const _Tp& __x) const { return -__x; } }; # 173 "/usr/include/g++/bits/stl_function.h" 3 template struct equal_to : public binary_function<_Tp,_Tp,bool> { bool operator()(const _Tp& __x, const _Tp& __y) const { return __x == __y; } }; template struct not_equal_to : public binary_function<_Tp,_Tp,bool> { bool operator()(const _Tp& __x, const _Tp& __y) const { return __x != __y; } }; template struct greater : public binary_function<_Tp,_Tp,bool> { bool operator()(const _Tp& __x, const _Tp& __y) const { return __x > __y; } }; template struct less : public binary_function<_Tp,_Tp,bool> { bool operator()(const _Tp& __x, const _Tp& __y) const { return __x < __y; } }; template struct greater_equal : public binary_function<_Tp,_Tp,bool> { bool operator()(const _Tp& __x, const _Tp& __y) const { return __x >= __y; } }; template struct less_equal : public binary_function<_Tp,_Tp,bool> { bool operator()(const _Tp& __x, const _Tp& __y) const { return __x <= __y; } }; # 222 "/usr/include/g++/bits/stl_function.h" 3 template struct logical_and : public binary_function<_Tp,_Tp,bool> { bool operator()(const _Tp& __x, const _Tp& __y) const { return __x && __y; } }; template struct logical_or : public binary_function<_Tp,_Tp,bool> { bool operator()(const _Tp& __x, const _Tp& __y) const { return __x || __y; } }; template struct logical_not : public unary_function<_Tp,bool> { bool operator()(const _Tp& __x) const { return !__x; } }; # 271 "/usr/include/g++/bits/stl_function.h" 3 template class unary_negate : public unary_function { 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 inline unary_negate<_Predicate> not1(const _Predicate& __pred) { return unary_negate<_Predicate>(__pred); } template class binary_negate : public binary_function { 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 inline binary_negate<_Predicate> not2(const _Predicate& __pred) { return binary_negate<_Predicate>(__pred); } # 349 "/usr/include/g++/bits/stl_function.h" 3 template class binder1st : public unary_function { 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 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 binder2nd : public unary_function { 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 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/include/g++/bits/stl_function.h" 3 template 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 inline pointer_to_unary_function<_Arg, _Result> ptr_fun(_Result (*__x)(_Arg)) { return pointer_to_unary_function<_Arg, _Result>(__x); } template 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 inline pointer_to_binary_function<_Arg1,_Arg2,_Result> ptr_fun(_Result (*__x)(_Arg1, _Arg2)) { return pointer_to_binary_function<_Arg1,_Arg2,_Result>(__x); } template struct _Identity : public unary_function<_Tp,_Tp> { _Tp& operator()(_Tp& __x) const { return __x; } const _Tp& operator()(const _Tp& __x) const { return __x; } }; template 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 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/include/g++/bits/stl_function.h" 3 template 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 const_mem_fun_t : public unary_function { 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 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 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 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 const_mem_fun1_t : public binary_function { 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 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 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 mem_fun_t : 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 const_mem_fun_t : public unary_function { 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 mem_fun_ref_t : 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 const_mem_fun_ref_t : 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 mem_fun1_t : 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 const_mem_fun1_t : public binary_function { 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 mem_fun1_ref_t : 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 const_mem_fun1_ref_t : 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 inline mem_fun_t<_Ret,_Tp> mem_fun(_Ret (_Tp::*__f)()) { return mem_fun_t<_Ret,_Tp>(__f); } template inline const_mem_fun_t<_Ret,_Tp> mem_fun(_Ret (_Tp::*__f)() const) { return const_mem_fun_t<_Ret,_Tp>(__f); } template inline mem_fun_ref_t<_Ret,_Tp> mem_fun_ref(_Ret (_Tp::*__f)()) { return mem_fun_ref_t<_Ret,_Tp>(__f); } template 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 inline mem_fun1_t<_Ret,_Tp,_Arg> mem_fun(_Ret (_Tp::*__f)(_Arg)) { return mem_fun1_t<_Ret,_Tp,_Arg>(__f); } template 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 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 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); } } # 53 "/usr/include/g++/string" 2 3 # 1 "/usr/include/g++/bits/basic_string.h" 1 3 # 43 "/usr/include/g++/bits/basic_string.h" 3 # 44 "/usr/include/g++/bits/basic_string.h" 3 namespace std { # 108 "/usr/include/g++/bits/basic_string.h" 3 template 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 iterator; typedef __gnu_cxx::__normal_iterator const_iterator; typedef std::reverse_iterator const_reverse_iterator; typedef std::reverse_iterator reverse_iterator; private: # 143 "/usr/include/g++/bits/basic_string.h" 3 struct _Rep { typedef typename _Alloc::template rebind::other _Raw_bytes_alloc; # 161 "/usr/include/g++/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(-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 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 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 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 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 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 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 basic_string& _M_replace(iterator __i1, iterator __i2, _InputIterator __k1, _InputIterator __k2, input_iterator_tag); template basic_string& _M_replace_safe(iterator __i1, iterator __i2, _ForwardIterator __k1, _ForwardIterator __k2); template 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 static _CharT* _S_construct_aux(_InIter __beg, _InIter __end, const _Alloc& __a, __true_type) { return _S_construct(static_cast(__beg), static_cast(__end), __a); } template 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 static _CharT* _S_construct(_InIter __beg, _InIter __end, const _Alloc& __a, input_iterator_tag); template 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 { 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 inline basic_string<_CharT, _Traits, _Alloc>:: basic_string() : _M_dataplus(_S_empty_rep()._M_refcopy(), _Alloc()) { } template 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 basic_string<_CharT,_Traits,_Alloc> operator+(const _CharT* __lhs, const basic_string<_CharT,_Traits,_Alloc>& __rhs); template basic_string<_CharT,_Traits,_Alloc> operator+(_CharT __lhs, const basic_string<_CharT,_Traits,_Alloc>& __rhs); template 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 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 inline bool operator==(const basic_string<_CharT, _Traits, _Alloc>& __lhs, const basic_string<_CharT, _Traits, _Alloc>& __rhs) { return __lhs.compare(__rhs) == 0; } template inline bool operator==(const _CharT* __lhs, const basic_string<_CharT, _Traits, _Alloc>& __rhs) { return __rhs.compare(__lhs) == 0; } template inline bool operator==(const basic_string<_CharT, _Traits, _Alloc>& __lhs, const _CharT* __rhs) { return __lhs.compare(__rhs) == 0; } template inline bool operator!=(const basic_string<_CharT, _Traits, _Alloc>& __lhs, const basic_string<_CharT, _Traits, _Alloc>& __rhs) { return __rhs.compare(__lhs) != 0; } template inline bool operator!=(const _CharT* __lhs, const basic_string<_CharT, _Traits, _Alloc>& __rhs) { return __rhs.compare(__lhs) != 0; } template inline bool operator!=(const basic_string<_CharT, _Traits, _Alloc>& __lhs, const _CharT* __rhs) { return __lhs.compare(__rhs) != 0; } template inline bool operator<(const basic_string<_CharT, _Traits, _Alloc>& __lhs, const basic_string<_CharT, _Traits, _Alloc>& __rhs) { return __lhs.compare(__rhs) < 0; } template inline bool operator<(const basic_string<_CharT, _Traits, _Alloc>& __lhs, const _CharT* __rhs) { return __lhs.compare(__rhs) < 0; } template inline bool operator<(const _CharT* __lhs, const basic_string<_CharT, _Traits, _Alloc>& __rhs) { return __rhs.compare(__lhs) > 0; } template inline bool operator>(const basic_string<_CharT, _Traits, _Alloc>& __lhs, const basic_string<_CharT, _Traits, _Alloc>& __rhs) { return __lhs.compare(__rhs) > 0; } template inline bool operator>(const basic_string<_CharT, _Traits, _Alloc>& __lhs, const _CharT* __rhs) { return __lhs.compare(__rhs) > 0; } template inline bool operator>(const _CharT* __lhs, const basic_string<_CharT, _Traits, _Alloc>& __rhs) { return __rhs.compare(__lhs) < 0; } template inline bool operator<=(const basic_string<_CharT, _Traits, _Alloc>& __lhs, const basic_string<_CharT, _Traits, _Alloc>& __rhs) { return __lhs.compare(__rhs) <= 0; } template inline bool operator<=(const basic_string<_CharT, _Traits, _Alloc>& __lhs, const _CharT* __rhs) { return __lhs.compare(__rhs) <= 0; } template inline bool operator<=(const _CharT* __lhs, const basic_string<_CharT, _Traits, _Alloc>& __rhs) { return __rhs.compare(__lhs) >= 0; } template inline bool operator>=(const basic_string<_CharT, _Traits, _Alloc>& __lhs, const basic_string<_CharT, _Traits, _Alloc>& __rhs) { return __lhs.compare(__rhs) >= 0; } template inline bool operator>=(const basic_string<_CharT, _Traits, _Alloc>& __lhs, const _CharT* __rhs) { return __lhs.compare(__rhs) >= 0; } template inline bool operator>=(const _CharT* __lhs, const basic_string<_CharT, _Traits, _Alloc>& __rhs) { return __rhs.compare(__lhs) <= 0; } template inline void swap(basic_string<_CharT, _Traits, _Alloc>& __lhs, basic_string<_CharT, _Traits, _Alloc>& __rhs) { __lhs.swap(__rhs); } template basic_istream<_CharT, _Traits>& operator>>(basic_istream<_CharT, _Traits>& __is, basic_string<_CharT, _Traits, _Alloc>& __str); template basic_ostream<_CharT, _Traits>& operator<<(basic_ostream<_CharT, _Traits>& __os, const basic_string<_CharT, _Traits, _Alloc>& __str); template basic_istream<_CharT,_Traits>& getline(basic_istream<_CharT, _Traits>& __is, basic_string<_CharT, _Traits, _Alloc>& __str, _CharT __delim); template inline basic_istream<_CharT,_Traits>& getline(basic_istream<_CharT, _Traits>& __is, basic_string<_CharT, _Traits, _Alloc>& __str); } # 54 "/usr/include/g++/string" 2 3 # 1 "/usr/include/g++/algorithm" 1 3 # 64 "/usr/include/g++/algorithm" 3 # 65 "/usr/include/g++/algorithm" 3 # 1 "/usr/include/g++/bits/stl_algo.h" 1 3 # 64 "/usr/include/g++/bits/stl_algo.h" 3 # 1 "/usr/include/g++/bits/stl_heap.h" 1 3 # 63 "/usr/include/g++/bits/stl_heap.h" 3 namespace std { template 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 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 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 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 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 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 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 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 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 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 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 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 void sort_heap(_RandomAccessIterator __first, _RandomAccessIterator __last) { while (__last - __first > 1) pop_heap(__first, __last--); } template void sort_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, _Compare __comp) { while (__last - __first > 1) pop_heap(__first, __last--, __comp); } } # 65 "/usr/include/g++/bits/stl_algo.h" 2 3 # 1 "/usr/include/g++/bits/stl_tempbuf.h" 1 3 # 64 "/usr/include/g++/bits/stl_tempbuf.h" 3 namespace std { # 74 "/usr/include/g++/bits/stl_tempbuf.h" 3 template 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; try { _M_len = distance(__first, __last); _M_allocate_buffer(); if (_M_len > 0) _M_initialize_buffer(*__first, _Trivial()); } catch(...) { free(_M_buffer); _M_buffer = 0; _M_len = 0; throw; } } ~_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/include/g++/bits/stl_algo.h" 2 3 namespace std { # 84 "/usr/include/g++/bits/stl_algo.h" 3 template 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/include/g++/bits/stl_algo.h" 3 template 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/include/g++/bits/stl_algo.h" 3 template _Function for_each(_InputIter __first, _InputIter __last, _Function __f) { for ( ; __first != __last; ++__first) __f(*__first); return __f; } template inline _InputIter find(_InputIter __first, _InputIter __last, const _Tp& __val, input_iterator_tag) { while (__first != __last && !(*__first == __val)) ++__first; return __first; } template inline _InputIter find_if(_InputIter __first, _InputIter __last, _Predicate __pred, input_iterator_tag) { while (__first != __last && !__pred(*__first)) ++__first; return __first; } template _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 _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/include/g++/bits/stl_algo.h" 3 template inline _InputIter find(_InputIter __first, _InputIter __last, const _Tp& __val) { return find(__first, __last, __val, __iterator_category(__first)); } # 309 "/usr/include/g++/bits/stl_algo.h" 3 template inline _InputIter find_if(_InputIter __first, _InputIter __last, _Predicate __pred) { return find_if(__first, __last, __pred, __iterator_category(__first)); } # 329 "/usr/include/g++/bits/stl_algo.h" 3 template _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/include/g++/bits/stl_algo.h" 3 template _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/include/g++/bits/stl_algo.h" 3 template 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/include/g++/bits/stl_algo.h" 3 template 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/include/g++/bits/stl_algo.h" 3 template _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/include/g++/bits/stl_algo.h" 3 template _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/include/g++/bits/stl_algo.h" 3 template _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/include/g++/bits/stl_algo.h" 3 template _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/include/g++/bits/stl_algo.h" 3 template _ForwardIter2 swap_ranges(_ForwardIter1 __first1, _ForwardIter1 __last1, _ForwardIter2 __first2) { for ( ; __first1 != __last1; ++__first1, ++__first2) iter_swap(__first1, __first2); return __first2; } # 734 "/usr/include/g++/bits/stl_algo.h" 3 template _OutputIter transform(_InputIter __first, _InputIter __last, _OutputIter __result, _UnaryOperation __unary_op) { for ( ; __first != __last; ++__first, ++__result) *__result = __unary_op(*__first); return __result; } # 767 "/usr/include/g++/bits/stl_algo.h" 3 template _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/include/g++/bits/stl_algo.h" 3 template 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/include/g++/bits/stl_algo.h" 3 template 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/include/g++/bits/stl_algo.h" 3 template _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/include/g++/bits/stl_algo.h" 3 template _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/include/g++/bits/stl_algo.h" 3 template void generate(_ForwardIter __first, _ForwardIter __last, _Generator __gen) { for ( ; __first != __last; ++__first) *__first = __gen(); } # 944 "/usr/include/g++/bits/stl_algo.h" 3 template _OutputIter generate_n(_OutputIter __first, _Size __n, _Generator __gen) { for ( ; __n > 0; --__n, ++__first) *__first = __gen(); return __first; } # 971 "/usr/include/g++/bits/stl_algo.h" 3 template _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/include/g++/bits/stl_algo.h" 3 template _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/include/g++/bits/stl_algo.h" 3 template _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/include/g++/bits/stl_algo.h" 3 template _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 _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 _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/include/g++/bits/stl_algo.h" 3 template 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/include/g++/bits/stl_algo.h" 3 template _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/include/g++/bits/stl_algo.h" 3 template _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/include/g++/bits/stl_algo.h" 3 template 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/include/g++/bits/stl_algo.h" 3 template _ForwardIter unique(_ForwardIter __first, _ForwardIter __last) { __first = adjacent_find(__first, __last); return unique_copy(__first, __last, __first); } # 1292 "/usr/include/g++/bits/stl_algo.h" 3 template _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 void __reverse(_BidirectionalIter __first, _BidirectionalIter __last, bidirectional_iterator_tag) { while (true) if (__first == __last || __first == --__last) return; else iter_swap(__first++, __last); } template void __reverse(_RandomAccessIter __first, _RandomAccessIter __last, random_access_iterator_tag) { while (__first < __last) iter_swap(__first++, --__last); } # 1351 "/usr/include/g++/bits/stl_algo.h" 3 template inline void reverse(_BidirectionalIter __first, _BidirectionalIter __last) { __reverse(__first, __last, __iterator_category(__first)); } # 1376 "/usr/include/g++/bits/stl_algo.h" 3 template _OutputIter reverse_copy(_BidirectionalIter __first, _BidirectionalIter __last, _OutputIter __result) { while (__first != __last) { --__last; *__result = *__last; ++__result; } return __result; } # 1401 "/usr/include/g++/bits/stl_algo.h" 3 template _EuclideanRingElement __gcd(_EuclideanRingElement __m, _EuclideanRingElement __n) { while (__n != 0) { _EuclideanRingElement __t = __m % __n; __m = __n; __n = __t; } return __m; } template 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 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 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/include/g++/bits/stl_algo.h" 3 template inline void rotate(_ForwardIter __first, _ForwardIter __middle, _ForwardIter __last) { typedef typename iterator_traits<_ForwardIter>::iterator_category _IterType; __rotate(__first, __middle, __last, _IterType()); } # 1591 "/usr/include/g++/bits/stl_algo.h" 3 template _OutputIter rotate_copy(_ForwardIter __first, _ForwardIter __middle, _ForwardIter __last, _OutputIter __result) { return copy(__first, __middle, copy(__middle, __last, __result)); } # 1614 "/usr/include/g++/bits/stl_algo.h" 3 template inline _Distance __random_number(_Distance __n) { return lrand48() % __n; } # 1636 "/usr/include/g++/bits/stl_algo.h" 3 template inline void random_shuffle(_RandomAccessIter __first, _RandomAccessIter __last) { if (__first == __last) return; for (_RandomAccessIter __i = __first + 1; __i != __last; ++__i) iter_swap(__i, __first + (rand() % ((__i - __first) + 1))); } # 1662 "/usr/include/g++/bits/stl_algo.h" 3 template 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 _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 _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/include/g++/bits/stl_algo.h" 3 template inline _ForwardIter partition(_ForwardIter __first, _ForwardIter __last, _Predicate __pred) { return __partition(__first, __last, __pred, __iterator_category(__first)); } template _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 _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/include/g++/bits/stl_algo.h" 3 template _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 _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 _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/include/g++/bits/stl_algo.h" 3 enum { _M_threshold = 16 }; template void __unguarded_linear_insert(_RandomAccessIter __last, _Tp __val) { _RandomAccessIter __next = __last; --__next; while (__val < *__next) { *__last = *__next; __last = __next; --__next; } *__last = __val; } template 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 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 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 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 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 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 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 inline _Size __lg(_Size __n) { _Size __k; for (__k = 0; __n != 1; __n >>= 1) ++__k; return __k; } template 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 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/include/g++/bits/stl_algo.h" 3 template 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/include/g++/bits/stl_algo.h" 3 template 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 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 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 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 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 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 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 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 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 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 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/include/g++/bits/stl_algo.h" 3 template 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/include/g++/bits/stl_algo.h" 3 template 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/include/g++/bits/stl_algo.h" 3 template 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/include/g++/bits/stl_algo.h" 3 template 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/include/g++/bits/stl_algo.h" 3 template _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/include/g++/bits/stl_algo.h" 3 template _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/include/g++/bits/stl_algo.h" 3 template 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/include/g++/bits/stl_algo.h" 3 template 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/include/g++/bits/stl_algo.h" 3 template _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/include/g++/bits/stl_algo.h" 3 template _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/include/g++/bits/stl_algo.h" 3 template _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/include/g++/bits/stl_algo.h" 3 template _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/include/g++/bits/stl_algo.h" 3 template 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/include/g++/bits/stl_algo.h" 3 template 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/include/g++/bits/stl_algo.h" 3 template bool binary_search(_ForwardIter __first, _ForwardIter __last, const _Tp& __val) { _ForwardIter __i = lower_bound(__first, __last, __val); return __i != __last && !(__val < *__i); } # 3085 "/usr/include/g++/bits/stl_algo.h" 3 template 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/include/g++/bits/stl_algo.h" 3 template _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/include/g++/bits/stl_algo.h" 3 template _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 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 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 _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 _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 _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 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 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/include/g++/bits/stl_algo.h" 3 template 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/include/g++/bits/stl_algo.h" 3 template 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 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 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 _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 _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 _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 _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 _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 _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 _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 _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 _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 _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 _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 _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 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 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 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 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 _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 _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/include/g++/bits/stl_algo.h" 3 template _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 _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 _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 _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 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 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/include/g++/algorithm" 2 3 # 57 "/usr/include/g++/string" 2 3 # 1 "/usr/include/g++/bits/basic_string.tcc" 1 3 # 44 "/usr/include/g++/bits/basic_string.tcc" 3 # 45 "/usr/include/g++/bits/basic_string.tcc" 3 namespace std { template 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 const _CharT basic_string<_CharT, _Traits, _Alloc>:: _Rep::_S_terminal = _CharT(); template const typename basic_string<_CharT, _Traits, _Alloc>::size_type basic_string<_CharT, _Traits, _Alloc>::npos; template 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 template _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; try { 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; } } catch(...) { __r->_M_destroy(__a); throw; } return 0; } template template _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(std::distance(__beg, __end)); _Rep* __r = _Rep::_S_create(__dnew, __a); try { _S_copy_chars(__r->_M_refdata(), __beg, __end); } catch(...) { __r->_M_destroy(__a); throw; } __r->_M_length = __dnew; __r->_M_refdata()[__dnew] = _Rep::_S_terminal; return __r->_M_refdata(); } template _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 (__n) traits_type::assign(__r->_M_refdata(), __n, __c); __r->_M_length = __n; __r->_M_refdata()[__n] = _Rep::_S_terminal; return __r->_M_refdata(); } template 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()), __str.get_allocator()) { } template basic_string<_CharT, _Traits, _Alloc>:: basic_string(const _Alloc& __a) : _M_dataplus(_S_construct(size_type(), _CharT(), __a), __a) { } template 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 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 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 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 basic_string<_CharT, _Traits, _Alloc>:: basic_string(size_type __n, _CharT __c, const _Alloc& __a) : _M_dataplus(_S_construct(__n, __c, __a), __a) { } template template basic_string<_CharT, _Traits, _Alloc>:: basic_string(_InputIter __beg, _InputIter __end, const _Alloc& __a) : _M_dataplus(_S_construct(__beg, __end, __a), __a) { } template 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 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 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()(__s, _M_data()) || less()(_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_set_sharable(); _M_rep()->_M_length = __n; _M_data()[__n] = _Rep::_S_terminal; return *this; } } template 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 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()(__s, _M_data()) || less()(_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 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()(__s, _M_data()) || less()(_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::iterator_category()); } template 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(this), __size); } template 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 void basic_string<_CharT, _Traits, _Alloc>:: _M_mutate(size_type __pos, size_type __len1, size_type __len2) { const size_type __old_size = this->size(); const size_type __new_size = __old_size + __len2 - __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 (__pos) traits_type::copy(__r->_M_refdata(), _M_data(), __pos); if (__how_much) traits_type::copy(__r->_M_refdata() + __pos + __len2, _M_data() + __pos + __len1, __how_much); _M_rep()->_M_dispose(__a); _M_data(__r->_M_refdata()); } else if (__how_much && __len1 != __len2) { traits_type::move(_M_data() + __pos + __len2, _M_data() + __pos + __len1, __how_much); } _M_rep()->_M_set_sharable(); _M_rep()->_M_length = __new_size; _M_data()[__new_size] = _Rep::_S_terminal; } template 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 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 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); # 521 "/usr/include/g++/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) { const size_t __extra = (__pagesize - ((__size + __malloc_header_size) % __pagesize)) % __pagesize; __capacity += __extra / sizeof(_CharT); if (__capacity > _S_max_size) __capacity = _S_max_size; __size = (__capacity + 1) * sizeof(_CharT) + sizeof(_Rep); } else if (__size > __subpagesize) { const 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 _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) traits_type::copy(__r->_M_refdata(), _M_refdata(), _M_length); __r->_M_length = _M_length; __r->_M_refdata()[_M_length] = _Rep::_S_terminal; return __r->_M_refdata(); } template 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 template 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 template 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(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 == 1) _M_data()[__off] = *__k1; else if (__dnew) _S_copy_chars(_M_data() + __off, __k1, __k2); return *this; } template 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 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 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 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 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 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 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 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 == 1) _M_data()[__off1] = __c; else if (__n2) traits_type::assign(_M_data() + __off1, __n2, __c); return *this; } template 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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; extern template basic_istream& operator>>(basic_istream&, string&); extern template basic_ostream& operator<<(basic_ostream&, const string&); extern template basic_istream& getline(basic_istream&, string&, char); extern template basic_istream& getline(basic_istream&, string&); extern template class basic_string; extern template basic_istream& operator>>(basic_istream&, wstring&); extern template basic_ostream& operator<<(basic_ostream&, const wstring&); extern template basic_istream& getline(basic_istream&, wstring&, wchar_t); extern template basic_istream& getline(basic_istream&, wstring&); } # 58 "/usr/include/g++/string" 2 3 # 45 "include/TString.h" 2 class TRegexp; class TPRegexp; class TString; class TSubString; class TObjArray; class TVirtualMutex; extern TVirtualMutex *gStringMutex; TString operator+(const TString &s1, const TString &s2); TString operator+(const TString &s, const char *cs); TString operator+(const char *cs, const TString &s); TString operator+(const TString &s, char c); TString operator+(const TString &s, Long_t i); TString operator+(const TString &s, ULong_t i); TString operator+(const TString &s, Long64_t i); TString operator+(const TString &s, ULong64_t i); TString operator+(char c, const TString &s); TString operator+(Long_t i, const TString &s); TString operator+(ULong_t i, const TString &s); TString operator+(Long64_t i, const TString &s); TString operator+(ULong64_t i, const TString &s); Bool_t operator==(const TString &s1, const TString &s2); Bool_t operator==(const TString &s1, const char *s2); Bool_t operator==(const TSubString &s1, const TSubString &s2); Bool_t operator==(const TSubString &s1, const TString &s2); Bool_t operator==(const TSubString &s1, const char *s2); # 88 "include/TString.h" class TStringRef : public TRefCnt { friend class TString; friend class TStringLong; friend class TSubString; private: Ssiz_t fCapacity; Ssiz_t fNchars; void UnLink(); Ssiz_t Length() const { return fNchars; } Ssiz_t Capacity() const { return fCapacity; } char *Data() const { return (char*)(this+1); } char &operator[](Ssiz_t i) { return ((char*)(this+1))[i]; } char operator[](Ssiz_t i) const { return ((char*)(this+1))[i]; } Ssiz_t First(char c) const; Ssiz_t First(const char *s) const; UInt_t Hash() const; UInt_t HashFoldCase() const; Ssiz_t Last(char) const; static TStringRef *GetRep(Ssiz_t capac, Ssiz_t nchar); }; # 125 "include/TString.h" class TSubString { friend class TStringLong; friend class TString; friend Bool_t operator==(const TSubString &s1, const TSubString &s2); friend Bool_t operator==(const TSubString &s1, const TString &s2); friend Bool_t operator==(const TSubString &s1, const char *s2); private: TString &fStr; Ssiz_t fBegin; Ssiz_t fExtent; TSubString(const TString &s, Ssiz_t start, Ssiz_t len); protected: void SubStringError(Ssiz_t, Ssiz_t, Ssiz_t) const; void AssertElement(Ssiz_t i) const; public: TSubString(const TSubString &s) : fStr(s.fStr), fBegin(s.fBegin), fExtent(s.fExtent) { } TSubString &operator=(const char *s); TSubString &operator=(const TString &s); TSubString &operator=(const TSubString &s); char &operator()(Ssiz_t i); char &operator[](Ssiz_t i); char operator()(Ssiz_t i) const; char operator[](Ssiz_t i) const; const char *Data() const; Ssiz_t Length() const { return fExtent; } Ssiz_t Start() const { return fBegin; } TString& String() { return fStr; } void ToLower(); void ToUpper(); Bool_t IsNull() const { return fBegin == kNPOS; } int operator!() const { return fBegin == kNPOS; } }; class TString { friend class TSubString; friend class TStringRef; friend TString operator+(const TString &s1, const TString &s2); friend TString operator+(const TString &s, const char *cs); friend TString operator+(const char *cs, const TString &s); friend TString operator+(const TString &s, char c); friend TString operator+(const TString &s, Long_t i); friend TString operator+(const TString &s, ULong_t i); friend TString operator+(const TString &s, Long64_t i); friend TString operator+(const TString &s, ULong64_t i); friend TString operator+(char c, const TString &s); friend TString operator+(Long_t i, const TString &s); friend TString operator+(ULong_t i, const TString &s); friend TString operator+(Long64_t i, const TString &s); friend TString operator+(ULong64_t i, const TString &s); friend Bool_t operator==(const TString &s1, const TString &s2); friend Bool_t operator==(const TString &s1, const char *s2); private: static Ssiz_t fgInitialCapac; static Ssiz_t fgResizeInc; static Ssiz_t fgFreeboard; void Clone(); void Clone(Ssiz_t nc); void FormImp(const char *fmt, va_list ap); protected: char *fData; TString(const char *a1, Ssiz_t n1, const char *a2, Ssiz_t n2); TStringRef *Pref() const { return (((TStringRef*) fData) - 1); } void AssertElement(Ssiz_t nc) const; void Clobber(Ssiz_t nc); void Cow(); void Cow(Ssiz_t nc); static Ssiz_t AdjustCapacity(Ssiz_t nc); void InitChar(char c); public: enum EStripType { kLeading = 0x1, kTrailing = 0x2, kBoth = 0x3 }; enum ECaseCompare { kExact, kIgnoreCase }; TString(); TString(Ssiz_t ic); TString(const TString &s) : fData(s.fData) { Pref()->AddReference(); } TString(const char *s); TString(const char *s, Ssiz_t n); TString(const std::string &s); TString(char c) : fData(0) { InitChar(c); } TString(char c, Ssiz_t s); TString(const TSubString &sub); virtual ~TString(); virtual void FillBuffer(char *&buffer); virtual void ReadBuffer(char *&buffer); virtual Int_t Sizeof() const; static TString *ReadString(TBuffer &b, const TClass *clReq); static void WriteString(TBuffer &b, const TString *a); friend TBuffer &operator<<(TBuffer &b, const TString *obj); Bool_t Gets(FILE *fp, Bool_t chop=kTRUE); void Puts(FILE *fp); operator const char*() const { return fData; } TString &operator=(char s); TString &operator=(const char *s); TString &operator=(const TString &s); TString &operator=(const std::string &s); TString &operator=(const TSubString &s); TString &operator+=(const char *s); TString &operator+=(const TString &s); TString &operator+=(char c); TString &operator+=(Short_t i); TString &operator+=(UShort_t i); TString &operator+=(Int_t i); TString &operator+=(UInt_t i); TString &operator+=(Long_t i); TString &operator+=(ULong_t i); TString &operator+=(Float_t f); TString &operator+=(Double_t f); TString &operator+=(Long64_t i); TString &operator+=(ULong64_t i); char &operator[](Ssiz_t i); char &operator()(Ssiz_t i); TSubString operator()(Ssiz_t start, Ssiz_t len); TSubString operator()(const TRegexp &re); TSubString operator()(const TRegexp &re, Ssiz_t start); TSubString operator()(TPRegexp &re); TSubString operator()(TPRegexp &re, Ssiz_t start); TSubString SubString(const char *pat, Ssiz_t start = 0, ECaseCompare cmp = kExact); char operator[](Ssiz_t i) const; char operator()(Ssiz_t i) const; TSubString operator()(Ssiz_t start, Ssiz_t len) const; TSubString operator()(const TRegexp &re) const; TSubString operator()(const TRegexp &re, Ssiz_t start) const; TSubString operator()(TPRegexp &re) const; TSubString operator()(TPRegexp &re, Ssiz_t start) const; TSubString SubString(const char *pat, Ssiz_t start = 0, ECaseCompare cmp = kExact) const; TString &Append(const char *cs); TString &Append(const char *cs, Ssiz_t n); TString &Append(const TString &s); TString &Append(const TString &s, Ssiz_t n); TString &Append(char c, Ssiz_t rep = 1); Int_t Atoi() const; Long64_t Atoll() const; Double_t Atof() const; Bool_t BeginsWith(const char *s, ECaseCompare cmp = kExact) const; Bool_t BeginsWith(const TString &pat, ECaseCompare cmp = kExact) const; Ssiz_t Capacity() const { return Pref()->Capacity(); } Ssiz_t Capacity(Ssiz_t n); TString &Chop(); int CompareTo(const char *cs, ECaseCompare cmp = kExact) const; int CompareTo(const TString &st, ECaseCompare cmp = kExact) const; Bool_t Contains(const char *pat, ECaseCompare cmp = kExact) const; Bool_t Contains(const TString &pat, ECaseCompare cmp = kExact) const; Bool_t Contains(const TRegexp &pat) const; Bool_t Contains(TPRegexp &pat) const; Int_t CountChar(Int_t c) const; TString Copy() const; const char *Data() const { return fData; } Bool_t EndsWith(const char *pat, ECaseCompare cmp = kExact) const; Ssiz_t First(char c) const { return Pref()->First(c); } Ssiz_t First(const char *cs) const { return Pref()->First(cs); } void Form(const char *fmt, ...); UInt_t Hash(ECaseCompare cmp = kExact) const; Ssiz_t Index(const char *pat, Ssiz_t i = 0, ECaseCompare cmp = kExact) const; Ssiz_t Index(const TString &s, Ssiz_t i = 0, ECaseCompare cmp = kExact) const; Ssiz_t Index(const char *pat, Ssiz_t patlen, Ssiz_t i, ECaseCompare cmp) const; Ssiz_t Index(const TString &s, Ssiz_t patlen, Ssiz_t i, ECaseCompare cmp) const; Ssiz_t Index(const TRegexp &pat, Ssiz_t i = 0) const; Ssiz_t Index(const TRegexp &pat, Ssiz_t *ext, Ssiz_t i = 0) const; Ssiz_t Index(TPRegexp &pat, Ssiz_t i = 0) const; Ssiz_t Index(TPRegexp &pat, Ssiz_t *ext, Ssiz_t i = 0) const; TString &Insert(Ssiz_t pos, const char *s); TString &Insert(Ssiz_t pos, const char *s, Ssiz_t extent); TString &Insert(Ssiz_t pos, const TString &s); TString &Insert(Ssiz_t pos, const TString &s, Ssiz_t extent); Bool_t IsAscii() const; Bool_t IsAlpha() const; Bool_t IsAlnum() const; Bool_t IsDigit() const; Bool_t IsFloat() const; Bool_t IsHex() const; Bool_t IsNull() const { return Pref()->fNchars == 0; } Bool_t IsWhitespace() const { return (Length() == CountChar(' ')); } Ssiz_t Last(char c) const { return Pref()->Last(c); } Ssiz_t Length() const { return Pref()->fNchars; } Bool_t MaybeRegexp() const; Bool_t MaybeWildcard() const; TString &Prepend(const char *cs); TString &Prepend(const char *cs, Ssiz_t n); TString &Prepend(const TString &s); TString &Prepend(const TString &s, Ssiz_t n); TString &Prepend(char c, Ssiz_t rep = 1); istream &ReadFile(istream &str); istream &ReadLine(istream &str, Bool_t skipWhite = kTRUE); istream &ReadString(istream &str); istream &ReadToDelim(istream &str, char delim = '\n'); istream &ReadToken(istream &str); TString &Remove(Ssiz_t pos); TString &Remove(Ssiz_t pos, Ssiz_t n); TString &Remove(EStripType s, char c); TString &Replace(Ssiz_t pos, Ssiz_t n, const char *s); TString &Replace(Ssiz_t pos, Ssiz_t n, const char *s, Ssiz_t ns); TString &Replace(Ssiz_t pos, Ssiz_t n, const TString &s); TString &Replace(Ssiz_t pos, Ssiz_t n1, const TString &s, Ssiz_t n2); TString &ReplaceAll(const TString &s1, const TString &s2); TString &ReplaceAll(const TString &s1, const char *s2); TString &ReplaceAll(const char *s1, const TString &s2); TString &ReplaceAll(const char *s1, const char *s2); TString &ReplaceAll(const char *s1, Ssiz_t ls1, const char *s2, Ssiz_t ls2); void Resize(Ssiz_t n); TSubString Strip(EStripType s = kTrailing, char c = ' '); TSubString Strip(EStripType s = kTrailing, char c = ' ') const; void ToLower(); void ToUpper(); TObjArray *Tokenize(const TString &delim) const; Bool_t Tokenize(TString &tok, Ssiz_t &from, const char *delim = " ") const; static ULong_t Hash(const void *txt, Int_t ntxt); static Ssiz_t InitialCapacity(Ssiz_t ic = 15); static Ssiz_t MaxWaste(Ssiz_t mw = 15); static Ssiz_t ResizeIncrement(Ssiz_t ri = 16); static Ssiz_t GetInitialCapacity(); static Ssiz_t GetResizeIncrement(); static Ssiz_t GetMaxWaste(); static TString Format(const char *fmt, ...); private: static TClass *fgIsA; public: static TClass *Class(); static const char *Class_Name(); static Version_t Class_Version() { return 1; } static void Dictionary(); virtual TClass *IsA() const { return TString::Class(); } virtual void ShowMembers(TMemberInspector &insp, char *parent); virtual void Streamer(TBuffer &b); void StreamerNVirtual(TBuffer &b) { TString::Streamer(b); } static const char *DeclFileName() { return "include/TString.h"; } static int ImplFileLine(); static const char *ImplFileName(); static int DeclFileLine() { return 391; } }; istream &operator>>(istream &str, TString &s); ostream &operator<<(ostream &str, const TString &s); TBuffer &operator>>(TBuffer &buf, TString *&sp); TString ToLower(const TString &s); TString ToUpper(const TString &s); inline UInt_t Hash(const TString &s) { return s.Hash(); } inline UInt_t Hash(const TString *s) { return s->Hash(); } UInt_t Hash(const char *s); extern char *Form(const char *fmt, ...); extern void Printf(const char *fmt, ...); extern char *Strip(const char *str, char c = ' '); extern char *StrDup(const char *str); extern char *Compress(const char *str); extern int EscChar(const char *src, char *dst, int dstlen, char *specchars, char escchar); extern int UnEscChar(const char *src, char *dst, int dstlen, char *specchars, char escchar); # 431 "include/TString.h" inline void TStringRef::UnLink() { if (RemoveReference() == 0) delete [] (char*)this; } inline void TString::Cow() { if (Pref()->References() > 1) Clone(); } inline void TString::Cow(Ssiz_t nc) { if (Pref()->References() > 1 || Capacity() < nc) Clone(nc); } inline TString &TString::Append(const char *cs) { return Replace(Length(), 0, cs, cs ? strlen(cs) : 0); } inline TString &TString::Append(const char *cs, Ssiz_t n) { return Replace(Length(), 0, cs, n); } inline TString &TString::Append(const TString &s) { return Replace(Length(), 0, s.Data(), s.Length()); } inline TString &TString::Append(const TString &s, Ssiz_t n) { return Replace(Length(), 0, s.Data(), TMath::Min(n, s.Length())); } inline TString &TString::operator+=(const char *cs) { return Append(cs, cs ? strlen(cs) : 0); } inline TString &TString::operator+=(const TString &s) { return Append(s.Data(), s.Length()); } inline TString &TString::operator+=(char c) { return Append(c); } inline TString &TString::operator+=(Long_t i) { return operator+=(::Form("%ld", i)); } inline TString &TString::operator+=(ULong_t i) { return operator+=(::Form("%lu", i)); } inline TString &TString::operator+=(Short_t i) { return operator+=((Long_t) i); } inline TString &TString::operator+=(UShort_t i) { return operator+=((ULong_t) i); } inline TString &TString::operator+=(Int_t i) { return operator+=((Long_t) i); } inline TString &TString::operator+=(UInt_t i) { return operator+=((ULong_t) i); } inline TString &TString::operator+=(Double_t f) { return operator+=(::Form("%9.9g", f)); } inline TString &TString::operator+=(Float_t f) { return operator+=((Double_t) f); } inline TString &TString::operator+=(Long64_t l) { return operator+=(::Form("%lld", l)); } inline TString &TString::operator+=(ULong64_t ul) { return operator+=(::Form("%llu", ul)); } inline Bool_t TString::BeginsWith(const char *s, ECaseCompare cmp) const { return Index(s, s ? strlen(s) : (Ssiz_t)0, (Ssiz_t)0, cmp) == 0; } inline Bool_t TString::BeginsWith(const TString &pat, ECaseCompare cmp) const { return Index(pat.Data(), pat.Length(), (Ssiz_t)0, cmp) == 0; } inline Bool_t TString::Contains(const TString &pat, ECaseCompare cmp) const { return Index(pat.Data(), pat.Length(), (Ssiz_t)0, cmp) != kNPOS; } inline Bool_t TString::Contains(const char *s, ECaseCompare cmp) const { return Index(s, s ? strlen(s) : 0, (Ssiz_t)0, cmp) != kNPOS; } inline Bool_t TString::Contains(const TRegexp &pat) const { return Index(pat, (Ssiz_t)0) != kNPOS; } inline Bool_t TString::Contains(TPRegexp &pat) const { return Index(pat, (Ssiz_t)0) != kNPOS; } inline Ssiz_t TString::Index(const char *s, Ssiz_t i, ECaseCompare cmp) const { return Index(s, s ? strlen(s) : 0, i, cmp); } inline Ssiz_t TString::Index(const TString &s, Ssiz_t i, ECaseCompare cmp) const { return Index(s.Data(), s.Length(), i, cmp); } inline Ssiz_t TString::Index(const TString &pat, Ssiz_t patlen, Ssiz_t i, ECaseCompare cmp) const { return Index(pat.Data(), patlen, i, cmp); } inline TString &TString::Insert(Ssiz_t pos, const char *cs) { return Replace(pos, 0, cs, cs ? strlen(cs) : 0); } inline TString &TString::Insert(Ssiz_t pos, const char *cs, Ssiz_t n) { return Replace(pos, 0, cs, n); } inline TString &TString::Insert(Ssiz_t pos, const TString &s) { return Replace(pos, 0, s.Data(), s.Length()); } inline TString &TString::Insert(Ssiz_t pos, const TString &s, Ssiz_t n) { return Replace(pos, 0, s.Data(), TMath::Min(n, s.Length())); } inline TString &TString::Prepend(const char *cs) { return Replace(0, 0, cs, cs ? strlen(cs) : 0); } inline TString &TString::Prepend(const char *cs, Ssiz_t n) { return Replace(0, 0, cs, n); } inline TString &TString::Prepend(const TString &s) { return Replace(0, 0, s.Data(), s.Length()); } inline TString &TString::Prepend(const TString &s, Ssiz_t n) { return Replace(0, 0, s.Data(), TMath::Min(n, s.Length())); } inline TString &TString::Remove(Ssiz_t pos) { return Replace(pos, TMath::Max(0, Length()-pos), 0, 0); } inline TString &TString::Remove(Ssiz_t pos, Ssiz_t n) { return Replace(pos, n, 0, 0); } inline TString &TString::Chop() { return Remove(TMath::Max(0, Length()-1)); } inline TString &TString::Replace(Ssiz_t pos, Ssiz_t n, const char *cs) { return Replace(pos, n, cs, cs ? strlen(cs) : 0); } inline TString &TString::Replace(Ssiz_t pos, Ssiz_t n, const TString& s) { return Replace(pos, n, s.Data(), s.Length()); } inline TString &TString::Replace(Ssiz_t pos, Ssiz_t n1, const TString &s, Ssiz_t n2) { return Replace(pos, n1, s.Data(), TMath::Min(s.Length(), n2)); } inline TString &TString::ReplaceAll(const TString &s1, const TString &s2) { return ReplaceAll(s1.Data(), s1.Length(), s2.Data(), s2.Length()) ; } inline TString &TString::ReplaceAll(const TString &s1, const char *s2) { return ReplaceAll(s1.Data(), s1.Length(), s2, s2 ? strlen(s2) : 0); } inline TString &TString::ReplaceAll(const char *s1, const TString &s2) { return ReplaceAll(s1, s1 ? strlen(s1) : 0, s2.Data(), s2.Length()); } inline TString &TString::ReplaceAll(const char *s1,const char *s2) { return ReplaceAll(s1, s1 ? strlen(s1) : 0, s2, s2 ? strlen(s2) : 0); } inline char &TString::operator()(Ssiz_t i) { Cow(); return fData[i]; } inline char TString::operator[](Ssiz_t i) const { AssertElement(i); return fData[i]; } inline char TString::operator()(Ssiz_t i) const { return fData[i]; } inline const char *TSubString::Data() const { return fStr.Data() + fBegin; } inline char TSubString::operator[](Ssiz_t i) const { AssertElement(i); return fStr.fData[fBegin+i]; } inline char TSubString::operator()(Ssiz_t i) const { return fStr.fData[fBegin+i]; } inline TSubString &TSubString::operator=(const TSubString &s) { fStr = s.fStr; fBegin = s.fBegin; fExtent = s.fExtent; return *this; } inline Bool_t operator==(const TString &s1, const TString &s2) { return ((s1.Length() == s2.Length()) && !memcmp(s1.Data(), s2.Data(), s1.Length())); } inline Bool_t operator!=(const TString &s1, const TString &s2) { return !(s1 == s2); } inline Bool_t operator<(const TString &s1, const TString &s2) { return s1.CompareTo(s2) < 0; } inline Bool_t operator>(const TString &s1, const TString &s2) { return s1.CompareTo(s2) > 0; } inline Bool_t operator<=(const TString &s1, const TString &s2) { return s1.CompareTo(s2) <= 0; } inline Bool_t operator>=(const TString &s1, const TString &s2) { return s1.CompareTo(s2) >= 0; } inline Bool_t operator!=(const TString &s1, const char *s2) { return !(s1 == s2); } inline Bool_t operator<(const TString &s1, const char *s2) { return s1.CompareTo(s2) < 0; } inline Bool_t operator>(const TString &s1, const char *s2) { return s1.CompareTo(s2) > 0; } inline Bool_t operator<=(const TString &s1, const char *s2) { return s1.CompareTo(s2) <= 0; } inline Bool_t operator>=(const TString &s1, const char *s2) { return s1.CompareTo(s2) >= 0; } inline Bool_t operator==(const char *s1, const TString &s2) { return (s2 == s1); } inline Bool_t operator!=(const char *s1, const TString &s2) { return !(s2 == s1); } inline Bool_t operator<(const char *s1, const TString &s2) { return s2.CompareTo(s1) > 0; } inline Bool_t operator>(const char *s1, const TString &s2) { return s2.CompareTo(s1) < 0; } inline Bool_t operator<=(const char *s1, const TString &s2) { return s2.CompareTo(s1) >= 0; } inline Bool_t operator>=(const char *s1, const TString &s2) { return s2.CompareTo(s1) <= 0; } inline Bool_t operator==(const TString &s1, const TSubString &s2) { return (s2 == s1); } inline Bool_t operator==(const char *s1, const TSubString &s2) { return (s2 == s1); } inline Bool_t operator!=(const TSubString &s1, const char *s2) { return !(s1 == s2); } inline Bool_t operator!=(const TSubString &s1, const TString &s2) { return !(s1 == s2); } inline Bool_t operator!=(const TSubString &s1, const TSubString &s2) { return !(s1 == s2); } inline Bool_t operator!=(const TString &s1, const TSubString &s2) { return !(s2 == s1); } inline Bool_t operator!=(const char *s1, const TSubString &s2) { return !(s2 == s1); } # 30 "include/TNamed.h" 2 class TNamed : public TObject { protected: TString fName; TString fTitle; public: TNamed(): fName(), fTitle() { } TNamed(const char *name, const char *title) : fName(name), fTitle(title) { } TNamed(const TString &name, const TString &title) : fName(name), fTitle(title) { } TNamed(const TNamed &named); TNamed& operator=(const TNamed& rhs); virtual ~TNamed() { } virtual void Clear(Option_t *option =""); virtual TObject *Clone(const char *newname="") const; virtual Int_t Compare(const TObject *obj) const; virtual void Copy(TObject &named) const; virtual void FillBuffer(char *&buffer); virtual const char *GetName() const { return fName; } virtual const char *GetTitle() const { return fTitle; } virtual ULong_t Hash() const { return fName.Hash(); } virtual Bool_t IsSortable() const { return kTRUE; } virtual void SetName(const char *name); virtual void SetNameTitle(const char *name, const char *title); virtual void SetTitle(const char *title=""); virtual void ls(Option_t *option="") const; virtual void Print(Option_t *option="") const; virtual Int_t Sizeof() const; private: static TClass *fgIsA; public: static TClass *Class(); static const char *Class_Name(); static Version_t Class_Version() { return 1; } static void Dictionary(); virtual TClass *IsA() const { return TNamed::Class(); } virtual void ShowMembers(TMemberInspector &insp, char *parent); virtual void Streamer(TBuffer &b); void StreamerNVirtual(TBuffer &b) { TNamed::Streamer(b); } static const char *DeclFileName() { return "include/TNamed.h"; } static int ImplFileLine(); static const char *ImplFileName(); static int DeclFileLine() { return 62; } }; # 46 "include/TDictionary.h" 2 # 1 "include/Property.h" 1 # 49 "include/TDictionary.h" 2 enum EProperty { kIsClass = 0x00000001, kIsStruct = 0x00000002, kIsUnion = 0x00000004, kIsEnum = 0x00000008, kIsNamespace = 0x08000000, kIsTypedef = 0x00000010, kIsFundamental = 0x00000020, kIsAbstract = 0x00000040, kIsVirtual = 0x00000080, kIsPureVirtual = 0x00000100, kIsPublic = 0x00000200, kIsProtected = 0x00000400, kIsPrivate = 0x00000800, kIsPointer = 0x00001000, kIsArray = 0x00002000, kIsStatic = 0x00004000, kIsDefault = 0x00008000, kIsReference = 0x00010000, kIsConstant = 0x00100000, kIsConstPointer = 0x00400000, kIsMethConst = 0x10000000 }; class TDictionary : public TNamed { public: TDictionary() { } virtual ~TDictionary() { } virtual Long_t Property() const = 0; enum ESTLType {kNone=0, kVector=1, kList, kDeque, kMap, kMultimap, kSet, kMultiset}; private: static TClass *fgIsA; public: static TClass *Class(); static const char *Class_Name(); static Version_t Class_Version() { return 0; } static void Dictionary(); virtual TClass *IsA() const { return TDictionary::Class(); } virtual void ShowMembers(TMemberInspector &insp, char *parent); virtual void Streamer(TBuffer &b); void StreamerNVirtual(TBuffer &b) { TDictionary::Streamer(b); } static const char *DeclFileName() { return "include/TDictionary.h"; } static int ImplFileLine(); static const char *ImplFileName(); static int DeclFileLine() { return 86; } }; # 26 "include/TClass.h" 2 # 1 "include/TObjArray.h" 1 # 26 "include/TObjArray.h" # 1 "include/TSeqCollection.h" 1 # 26 "include/TSeqCollection.h" # 1 "include/TCollection.h" 1 # 30 "include/TCollection.h" # 1 "include/TIterator.h" 1 # 29 "include/TIterator.h" class TCollection; class TObject; class TIterator { protected: TIterator() { } TIterator(const TIterator &) { } public: virtual TIterator &operator=(const TIterator &) { return *this; } virtual ~TIterator() { } virtual const TCollection *GetCollection() const = 0; virtual Option_t *GetOption() const { return ""; } virtual TObject *Next() = 0; virtual void Reset() = 0; TObject *operator()() { return Next(); } private: static TClass *fgIsA; public: static TClass *Class(); static const char *Class_Name(); static Version_t Class_Version() { return 0; } static void Dictionary(); virtual TClass *IsA() const { return TIterator::Class(); } virtual void ShowMembers(TMemberInspector &insp, char *parent); virtual void Streamer(TBuffer &b); void StreamerNVirtual(TBuffer &b) { TIterator::Streamer(b); } static const char *DeclFileName() { return "include/TIterator.h"; } static int ImplFileLine(); static const char *ImplFileName(); static int DeclFileLine() { return 47; } }; # 31 "include/TCollection.h" 2 class TClass; class TObjectTable; class TVirtualMutex; const Bool_t kIterForward = kTRUE; const Bool_t kIterBackward = !kIterForward; extern TVirtualMutex *gCollectionMutex; class TCollection : public TObject { private: static TCollection *fgCurrentCollection; static TObjectTable *fgGarbageCollection; static Bool_t fgEmptyingGarbage; static Int_t fgGarbageStack; TCollection(const TCollection &); void operator=(const TCollection &); protected: enum { kIsOwner = (1 << (14)) }; TString fName; Int_t fSize; TCollection() : fName(), fSize(0) { } public: enum { kInitCapacity = 16, kInitHashTableCapacity = 17 }; virtual ~TCollection() { } virtual void Add(TObject *obj) = 0; void AddVector(TObject *obj1, ...); virtual void AddAll(const TCollection *col); Bool_t AssertClass(TClass *cl) const; void Browse(TBrowser *b); Int_t Capacity() const { return fSize; } virtual void Clear(Option_t *option="") = 0; Int_t Compare(const TObject *obj) const; Bool_t Contains(const char *name) const { return FindObject(name) != 0; } Bool_t Contains(const TObject *obj) const { return FindObject(obj) != 0; } virtual void Delete(Option_t *option="") = 0; virtual void Draw(Option_t *option=""); virtual void Dump() const ; virtual TObject *FindObject(const char *name) const; TObject *operator()(const char *name) const; virtual TObject *FindObject(const TObject *obj) const; virtual Int_t GetEntries() const { return GetSize(); } virtual const char *GetName() const; virtual TObject **GetObjectRef(const TObject *obj) const = 0; virtual Int_t GetSize() const { return fSize; } virtual Int_t GrowBy(Int_t delta) const; ULong_t Hash() const { return fName.Hash(); } Bool_t IsArgNull(const char *where, const TObject *obj) const; virtual Bool_t IsEmpty() const { return GetSize() <= 0; } virtual Bool_t IsFolder() const { return kTRUE; } Bool_t IsOwner() const { return TestBit(kIsOwner); } Bool_t IsSortable() const { return kTRUE; } virtual void ls(Option_t *option="") const ; virtual TIterator *MakeIterator(Bool_t dir = kIterForward) const = 0; virtual TIterator *MakeReverseIterator() const { return MakeIterator(kIterBackward); } virtual void Paint(Option_t *option=""); virtual void Print(Option_t *wildcard="") const; virtual void Print(Option_t *wildcard, Option_t *option) const; virtual void RecursiveRemove(TObject *obj); virtual TObject *Remove(TObject *obj) = 0; virtual void RemoveAll(TCollection *col); void RemoveAll() { Clear(); } void SetCurrentCollection(); void SetName(const char *name) { fName = name; } virtual void SetOwner(Bool_t enable = kTRUE); virtual Int_t Write(const char *name=0, Int_t option=0, Int_t bufsize=0); virtual Int_t Write(const char *name=0, Int_t option=0, Int_t bufsize=0) const; static TCollection *GetCurrentCollection(); static void StartGarbageCollection(); static void GarbageCollect(TObject *obj); static void EmptyGarbageCollection(); private: static TClass *fgIsA; public: static TClass *Class(); static const char *Class_Name(); static Version_t Class_Version() { return 3; } static void Dictionary(); virtual TClass *IsA() const { return TCollection::Class(); } virtual void ShowMembers(TMemberInspector &insp, char *parent); virtual void Streamer(TBuffer &b); void StreamerNVirtual(TBuffer &b) { TCollection::Streamer(b); } static const char *DeclFileName() { return "include/TCollection.h"; } static int ImplFileLine(); static const char *ImplFileName(); static int DeclFileLine() { return 117; } }; # 130 "include/TCollection.h" class TIter { private: TIterator *fIterator; protected: TIter() : fIterator(0) { } public: TIter(const TCollection *col, Bool_t dir = kIterForward) : fIterator(col ? col->MakeIterator(dir) : 0) { } TIter(TIterator *it) : fIterator(it) { } TIter(const TIter &iter); TIter &operator=(const TIter &rhs); virtual ~TIter() { { if (fIterator) { delete fIterator; fIterator = 0; } } } TObject *operator()() { return fIterator ? fIterator->Next() : 0; } TObject *Next() { return fIterator ? fIterator->Next() : 0; } const TCollection *GetCollection() const { return fIterator ? fIterator->GetCollection() : 0; } Option_t *GetOption() const { return fIterator ? fIterator->GetOption() : ""; } void Reset() { if (fIterator) fIterator->Reset(); } private: static TClass *fgIsA; public: static TClass *Class(); static const char *Class_Name(); static Version_t Class_Version() { return 0; } static void Dictionary(); virtual TClass *IsA() const { return TIter::Class(); } virtual void ShowMembers(TMemberInspector &insp, char *parent); virtual void Streamer(TBuffer &b); void StreamerNVirtual(TBuffer &b) { TIter::Streamer(b); } static const char *DeclFileName() { return "include/TCollection.h"; } static int ImplFileLine(); static const char *ImplFileName(); static int DeclFileLine() { return 151; } }; # 27 "include/TSeqCollection.h" 2 class TSeqCollection : public TCollection { protected: Bool_t fSorted; TSeqCollection() : fSorted(kFALSE) { } virtual void Changed() { fSorted = kFALSE; } public: virtual ~TSeqCollection() { } virtual void Add(TObject *obj) { AddLast(obj); } virtual void AddFirst(TObject *obj) = 0; virtual void AddLast(TObject *obj) = 0; virtual void AddAt(TObject *obj, Int_t idx) = 0; virtual void AddAfter(const TObject *after, TObject *obj) = 0; virtual void AddBefore(const TObject *before, TObject *obj) = 0; virtual void RemoveFirst() { Remove(First()); } virtual void RemoveLast() { Remove(Last()); } virtual TObject *RemoveAt(Int_t idx) { return Remove(At(idx)); } virtual void RemoveAfter(TObject *after) { Remove(After(after)); } virtual void RemoveBefore(TObject *before) { Remove(Before(before)); } virtual TObject *At(Int_t idx) const = 0; virtual TObject *Before(const TObject *obj) const = 0; virtual TObject *After(const TObject *obj) const = 0; virtual TObject *First() const = 0; virtual TObject *Last() const = 0; Int_t LastIndex() const { return GetSize() - 1; } virtual Int_t IndexOf(const TObject *obj) const; virtual Bool_t IsSorted() const { return fSorted; } void UnSort() { fSorted = kFALSE; } static Int_t ObjCompare(TObject *a, TObject *b); static void QSort(TObject **a, Int_t first, Int_t last); static void QSort(TObject **a, TObject **b, Int_t first, Int_t last); private: static TClass *fgIsA; public: static TClass *Class(); static const char *Class_Name(); static Version_t Class_Version() { return 0; } static void Dictionary(); virtual TClass *IsA() const { return TSeqCollection::Class(); } virtual void ShowMembers(TMemberInspector &insp, char *parent); virtual void Streamer(TBuffer &b); void StreamerNVirtual(TBuffer &b) { TSeqCollection::Streamer(b); } static const char *DeclFileName() { return "include/TSeqCollection.h"; } static int ImplFileLine(); static const char *ImplFileName(); static int DeclFileLine() { return 66; } }; # 27 "include/TObjArray.h" 2 class TObjArray : public TSeqCollection { friend class TObjArrayIter; friend class TClonesArray; protected: TObject **fCont; Int_t fLowerBound; Int_t fLast; Bool_t BoundsOk(const char *where, Int_t at) const; void Init(Int_t s, Int_t lowerBound); Bool_t OutOfBoundsError(const char *where, Int_t i) const; Int_t GetAbsLast() const; public: TObjArray(Int_t s = TCollection::kInitCapacity, Int_t lowerBound = 0); TObjArray(const TObjArray &a); virtual ~TObjArray(); TObjArray& operator=(const TObjArray&); virtual void Clear(Option_t *option=""); virtual void Compress(); virtual void Delete(Option_t *option=""); virtual void Expand(Int_t newSize); Int_t GetEntries() const; Int_t GetEntriesFast() const {return GetAbsLast()+1;} Int_t GetLast() const; TObject **GetObjectRef(const TObject *obj) const; Bool_t IsEmpty() const { return GetAbsLast() == -1; } TIterator *MakeIterator(Bool_t dir = kIterForward) const; void Add(TObject *obj) { AddLast(obj); } virtual void AddFirst(TObject *obj); virtual void AddLast(TObject *obj); virtual void AddAt(TObject *obj, Int_t idx); virtual void AddAtAndExpand(TObject *obj, Int_t idx); virtual Int_t AddAtFree(TObject *obj); virtual void AddAfter(const TObject *after, TObject *obj); virtual void AddBefore(const TObject *before, TObject *obj); virtual TObject *FindObject(const char *name) const; virtual TObject *FindObject(const TObject *obj) const; virtual TObject *RemoveAt(Int_t idx); virtual TObject *Remove(TObject *obj); TObject *At(Int_t idx) const; TObject *UncheckedAt(Int_t i) const { return fCont[i-fLowerBound]; } TObject *Before(const TObject *obj) const; TObject *After(const TObject *obj) const; TObject *First() const; TObject *Last() const; virtual TObject *&operator[](Int_t i); virtual TObject *operator[](Int_t i) const; Int_t LowerBound() const { return fLowerBound; } Int_t IndexOf(const TObject *obj) const; void SetLast(Int_t last); virtual void Randomize(Int_t ntimes=1); virtual void Sort(Int_t upto = kMaxInt); virtual Int_t BinarySearch(TObject *obj, Int_t upto = kMaxInt); private: static TClass *fgIsA; public: static TClass *Class(); static const char *Class_Name(); static Version_t Class_Version() { return 3; } static void Dictionary(); virtual TClass *IsA() const { return TObjArray::Class(); } virtual void ShowMembers(TMemberInspector &insp, char *parent); virtual void Streamer(TBuffer &b); void StreamerNVirtual(TBuffer &b) { TObjArray::Streamer(b); } static const char *DeclFileName() { return "include/TObjArray.h"; } static int ImplFileLine(); static const char *ImplFileName(); static int DeclFileLine() { return 90; } }; # 102 "include/TObjArray.h" class TObjArrayIter : public TIterator { private: const TObjArray *fArray; Int_t fCursor; Bool_t fDirection; TObjArrayIter() : fArray(0), fCursor(0), fDirection(kTRUE) { } public: TObjArrayIter(const TObjArray *arr, Bool_t dir = kIterForward); TObjArrayIter(const TObjArrayIter &iter); ~TObjArrayIter() { } TIterator &operator=(const TIterator &rhs); TObjArrayIter &operator=(const TObjArrayIter &rhs); const TCollection *GetCollection() const { return fArray; } TObject *Next(); void Reset(); private: static TClass *fgIsA; public: static TClass *Class(); static const char *Class_Name(); static Version_t Class_Version() { return 0; } static void Dictionary(); virtual TClass *IsA() const { return TObjArrayIter::Class(); } virtual void ShowMembers(TMemberInspector &insp, char *parent); virtual void Streamer(TBuffer &b); void StreamerNVirtual(TBuffer &b) { TObjArrayIter::Streamer(b); } static const char *DeclFileName() { return "include/TObjArray.h"; } static int ImplFileLine(); static const char *ImplFileName(); static int DeclFileLine() { return 122; } }; inline Bool_t TObjArray::BoundsOk(const char *where, Int_t at) const { return (at < fLowerBound || at-fLowerBound >= fSize) ? OutOfBoundsError(where, at) : kTRUE; } inline TObject *TObjArray::At(Int_t i) const { int j = i-fLowerBound; if (j >= 0 && j < fSize) return fCont[j]; BoundsOk("At", i); return 0; } # 32 "include/TClass.h" 2 class TBaseClass; class TBrowser; class TDataMember; class TClassRef; class TMethod; class TRealData; class TCint; class TBuffer; namespace Cint { class G__ClassInfo; } using namespace Cint; class TVirtualStreamerInfo; class TVirtualCollectionProxy; class TMethodCall; class TVirtualIsAProxy; class TVirtualRefProxy; namespace ROOT { class TGenericClassInfo; class TCollectionProxyInfo; } namespace ROOT { class TMapTypeToTClass; } typedef ROOT::TMapTypeToTClass IdMap_t; class TClass : public TDictionary { friend class TCint; friend void ROOT::ResetClassVersion(TClass*, const char*, Short_t); friend class ROOT::TGenericClassInfo; public: enum { kClassSaved = (1 << (12)), kIgnoreTObjectStreamer = (1 << (15)), kUnloaded = (1 << (16)), kIsTObject = (1 << (17)), kIsForeign = (1 << (18)), kIsEmulation = (1 << (19)), kStartWithTObject = (1 << (20)), kWarned = (1 << (21)) }; enum ENewType { kRealNew = 0, kClassNew, kDummyNew }; private: TObjArray *fStreamerInfo; TList *fRealData; TList *fBase; TList *fData; TList *fMethod; TList *fAllPubData; TList *fAllPubMethod; const char *fDeclFileName; const char *fImplFileName; Short_t fDeclFileLine; Short_t fImplFileLine; UInt_t fInstanceCount; UInt_t fOnHeap; UInt_t fCheckSum; TVirtualCollectionProxy *fCollectionProxy; Version_t fClassVersion; G__ClassInfo *fClassInfo; TString fContextMenuTitle; TList *fClassMenuList; const type_info *fTypeInfo; ShowMembersFunc_t fShowMembers; TClassStreamer *fStreamer; TString fSharedLibs; TVirtualIsAProxy *fIsA; IsAGlobalFunc_t fGlobalIsA; TMethodCall *fIsAMethod; ROOT::NewFunc_t fNew; ROOT::NewArrFunc_t fNewArray; ROOT::DelFunc_t fDelete; ROOT::DelArrFunc_t fDeleteArray; ROOT::DesFunc_t fDestructor; Int_t fSizeof; Bool_t fVersionUsed; Long_t fProperty; void *fInterStreamer; Long_t fOffsetStreamer; Int_t fStreamerType; TVirtualStreamerInfo *fCurrentInfo; TClassRef *fRefStart; TVirtualRefProxy *fRefProxy; TMethod *GetClassMethod(Long_t faddr); TMethod *GetClassMethod(const char *name, const char *signature); Int_t GetBaseClassOffsetRecurse(const TClass *base); void Init(const char *name, Version_t cversion, const type_info *info, TVirtualIsAProxy *isa, ShowMembersFunc_t showmember, const char *dfil, const char *ifil, Int_t dl, Int_t il); void SetClassVersion(Version_t version) { fClassVersion = version; fCurrentInfo = 0; } void SetClassSize(Int_t sizof) { fSizeof = sizof; } static IdMap_t *fgIdMap; static ENewType fgCallingNew; static Int_t fgClassCount; enum { kLoading = (1 << (14)) }; enum {kDefault=0, kEmulated=1, kTObject=2, kInstrumented=4, kForeign=8, kExternal=16}; protected: TClass(const TClass& tc); TClass& operator=(const TClass&); public: TClass(); TClass(const char *name); TClass(const char *name, Version_t cversion, const char *dfil = 0, const char *ifil = 0, Int_t dl = 0, Int_t il = 0); TClass(const char *name, Version_t cversion, const type_info &info, TVirtualIsAProxy *isa, ShowMembersFunc_t showmember, const char *dfil, const char *ifil, Int_t dl, Int_t il); virtual ~TClass(); void AddInstance(Bool_t heap = kFALSE) { fInstanceCount++; if (heap) fOnHeap++; } void AddImplFile(const char *filename, int line); void AddRef(TClassRef *ref); virtual void Browse(TBrowser *b); void BuildRealData(void *pointer=0); void BuildEmulatedRealData(const char *name, Long_t offset, TClass *cl); Bool_t CanSplit() const; Bool_t CanIgnoreTObjectStreamer() { return TestBit(kIgnoreTObjectStreamer);} void CopyCollectionProxy(const TVirtualCollectionProxy&); void Draw(Option_t *option=""); void Dump() const { TDictionary::Dump(); } void Dump(void *obj) const; char *EscapeChars(const char *text) const; TVirtualStreamerInfo *FindStreamerInfo(UInt_t checksum) const; Bool_t HasDefaultConstructor() const; UInt_t GetCheckSum(UInt_t code=0) const; TVirtualCollectionProxy *GetCollectionProxy() const; TVirtualIsAProxy *GetIsAProxy() const; Version_t GetClassVersion() const { ((TClass*)this)->fVersionUsed = kTRUE; return (fClassVersion>=0) ? fClassVersion : (-fClassVersion); } TDataMember *GetDataMember(const char *datamember) const; Long_t GetDataMemberOffset(const char *membername) const; const char *GetDeclFileName() const { return fDeclFileName; } Short_t GetDeclFileLine() const { return fDeclFileLine; } ROOT::DelFunc_t GetDelete() const; ROOT::DesFunc_t GetDestructor() const; ROOT::DelArrFunc_t GetDeleteArray() const; G__ClassInfo *GetClassInfo() const { return fClassInfo; } const char *GetContextMenuTitle() const { return fContextMenuTitle; } TVirtualStreamerInfo *GetCurrentStreamerInfo() { if (fCurrentInfo) return fCurrentInfo; else return (fCurrentInfo=(TVirtualStreamerInfo*)(fStreamerInfo->At(fClassVersion))); } TList *GetListOfDataMembers(); TList *GetListOfBases(); TList *GetListOfMethods(); TList *GetListOfRealData() const { return fRealData; } TList *GetListOfAllPublicMethods(); TList *GetListOfAllPublicDataMembers(); const char *GetImplFileName() const { return fImplFileName; } Short_t GetImplFileLine() const { return fImplFileLine; } TClass *GetActualClass(const void *object) const; TClass *GetBaseClass(const char *classname); TClass *GetBaseClass(const TClass *base); Int_t GetBaseClassOffset(const TClass *base); TClass *GetBaseDataMember(const char *datamember); UInt_t GetInstanceCount() const { return fInstanceCount; } UInt_t GetHeapInstanceCount() const { return fOnHeap; } void GetMenuItems(TList *listitems); TList *GetMenuList() const { return fClassMenuList; } TMethod *GetMethod(const char *method, const char *params); TMethod *GetMethodWithPrototype(const char *method, const char *proto); TMethod *GetMethodAny(const char *method); TMethod *GetMethodAllAny(const char *method); Int_t GetNdata(); ROOT::NewFunc_t GetNew() const; ROOT::NewArrFunc_t GetNewArray() const; Int_t GetNmethods(); TRealData *GetRealData(const char *name) const; TVirtualRefProxy *GetReferenceProxy() const { return fRefProxy; } const char *GetSharedLibs(); ShowMembersFunc_t GetShowMembersWrapper() const { return fShowMembers; } TClassStreamer *GetStreamer() const; TObjArray *GetStreamerInfos() const { return fStreamerInfo; } TVirtualStreamerInfo *GetStreamerInfo(Int_t version=0); const type_info *GetTypeInfo() const { return fTypeInfo; }; void IgnoreTObjectStreamer(Bool_t ignore=kTRUE); Bool_t InheritsFrom(const char *cl) const; Bool_t InheritsFrom(const TClass *cl) const; Bool_t IsFolder() const { return kTRUE; } Bool_t IsLoaded() const; Bool_t IsForeign() const; Bool_t IsStartingWithTObject() const; Bool_t IsTObject() const; void MakeCustomMenuList(); void Move(void *arenaFrom, void *arenaTo) const; void *New(ENewType defConstructor = kClassNew); void *New(void *arena, ENewType defConstructor = kClassNew); void *NewArray(Long_t nElements, ENewType defConstructor = kClassNew); void *NewArray(Long_t nElements, void *arena, ENewType defConstructor = kClassNew); virtual void PostLoadCheck(); Long_t Property() const; Int_t ReadBuffer(TBuffer &b, void *pointer, Int_t version, UInt_t start, UInt_t count); Int_t ReadBuffer(TBuffer &b, void *pointer); void RemoveRef(TClassRef *ref); void ReplaceWith(TClass *newcl, Bool_t recurse = kTRUE) const; void ResetClassInfo(Long_t tagnum); void ResetInstanceCount() { fInstanceCount = fOnHeap = 0; } void ResetMenuList(); Int_t Size() const; void SetCollectionProxy(const ROOT::TCollectionProxyInfo&); void SetContextMenuTitle(const char *title); void SetCurrentStreamerInfo(TVirtualStreamerInfo *info); void SetGlobalIsA(IsAGlobalFunc_t); void SetDeclFile(const char *name, int line) { fDeclFileName = name; fDeclFileLine = line; } void SetDelete(ROOT::DelFunc_t deleteFunc); void SetDeleteArray(ROOT::DelArrFunc_t deleteArrayFunc); void SetDestructor(ROOT::DesFunc_t destructorFunc); void SetImplFileName(const char *implFileName) { fImplFileName = implFileName; } void SetNew(ROOT::NewFunc_t newFunc); void SetNewArray(ROOT::NewArrFunc_t newArrayFunc); TVirtualStreamerInfo *SetStreamerInfo(Int_t version, const char *info=""); void SetUnloaded(); Int_t WriteBuffer(TBuffer &b, void *pointer, const char *info=""); void AdoptReferenceProxy(TVirtualRefProxy* proxy); void AdoptStreamer(TClassStreamer *strm); void AdoptMemberStreamer(const char *name, TMemberStreamer *strm); void SetMemberStreamer(const char *name, MemberStreamerFunc_t strm); static void AddClass(TClass *cl); static void RemoveClass(TClass *cl); static TClass *GetClass(const char *name, Bool_t load = kTRUE); static TClass *GetClass(const type_info &typeinfo, Bool_t load = kTRUE); static VoidFuncPtr_t GetDict (const char *cname); static VoidFuncPtr_t GetDict (const type_info &info); static Int_t AutoBrowse(TObject *obj, TBrowser *browser); static ENewType IsCallingNew(); static TClass *Load(TBuffer &b); void Store(TBuffer &b) const; Int_t Browse(void *obj, TBrowser *b) const; void DeleteArray(void *ary, Bool_t dtorOnly = kFALSE); void Destructor(void *obj, Bool_t dtorOnly = kFALSE); void *DynamicCast(const TClass *base, void *obj, Bool_t up = kTRUE); Bool_t IsFolder(void *obj) const; void Streamer(void *obj, TBuffer &b); private: static TClass *fgIsA; public: static TClass *Class(); static const char *Class_Name(); static Version_t Class_Version() { return 0; } static void Dictionary(); virtual TClass *IsA() const { return TClass::Class(); } virtual void ShowMembers(TMemberInspector &insp, char *parent); virtual void Streamer(TBuffer &b); void StreamerNVirtual(TBuffer &b) { TClass::Streamer(b); } static const char *DeclFileName() { return "include/TClass.h"; } static int ImplFileLine(); static const char *ImplFileName(); static int DeclFileLine() { return 290; } }; namespace ROOT { template struct IsPointer { enum { kVal = 0 }; }; template struct IsPointer { enum { kVal = 1 }; }; template TClass* GetClass( T* ) { return TClass::GetClass(typeid(T)); } template TClass* GetClass(const T* ) { return TClass::GetClass(typeid(T)); } template TClass* GetClass( T** ) { return GetClass((T*)0); } template TClass* GetClass(const T** ) { return GetClass((T*)0); } template TClass* GetClass( T* const* ) { return GetClass((T*)0); } template TClass* GetClass(const T* const* ) { return GetClass((T*)0); } extern TClass *CreateClass(const char *cname, Version_t id, const char *dfil, const char *ifil, Int_t dl, Int_t il); } # 28 "meta/src/TClass.cxx" 2 # 1 "include/Api.h" 1 # 25 "include/Api.h" # 1 "include/G__ci.h" 1 # 387 "include/G__ci.h" typedef long long G__int64; typedef unsigned long long G__uint64; # 470 "include/G__ci.h" typedef char G__SIGNEDCHAR_T; # 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 # 29 "/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; } # 291 "/usr/include/bits/mathinline.h" 3 4 __inline double __sgn (double) throw (); __inline double __sgn (double __x) throw () { return __x == 0.0 ? 0.0 : (__x > 0.0 ? 1.0 : -1.0); } __inline float __sgnf (float) throw (); __inline float __sgnf (float __x) throw () { return __x == 0.0 ? 0.0 : (__x > 0.0 ? 1.0 : -1.0); } __inline long double __sgnl (long double) throw (); __inline long double __sgnl (long double __x) throw () { return __x == 0.0 ? 0.0 : (__x > 0.0 ? 1.0 : -1.0); } # 445 "/usr/include/bits/mathinline.h" 3 4 __inline long double __atan2l (long double __y, long double __x) throw () { register long double __value; __asm __volatile__ ("fpatan" : "=t" (__value) : "0" (__x), "u" (__y) : "st(1)"); return __value; } # 473 "/usr/include/bits/mathinline.h" 3 4 __inline double fabs (double __x) throw () { return __builtin_fabs (__x); } __inline float fabsf (float __x) throw () { return __builtin_fabsf (__x); } __inline long double fabsl (long double __x) throw () { return __builtin_fabsl (__x); } __inline long double __fabsl (long double __x) throw () { return __builtin_fabsl (__x); } # 506 "/usr/include/bits/mathinline.h" 3 4 __inline long double __sgn1l (long double) throw (); __inline long double __sgn1l (long double __x) throw () { __extension__ union { long double __xld; unsigned int __xi[3]; } __n = { __xld: __x }; __n.__xi[2] = (__n.__xi[2] & 0x8000) | 0x3fff; __n.__xi[1] = 0x80000000; __n.__xi[0] = 0; return __n.__xld; } # 530 "/usr/include/bits/mathinline.h" 3 4 __inline double floor (double __x) throw () { register long double __value; __volatile unsigned short int __cw; __volatile unsigned short int __cwtmp; __asm __volatile ("fnstcw %0" : "=m" (__cw)); __cwtmp = (__cw & 0xf3ff) | 0x0400; __asm __volatile ("fldcw %0" : : "m" (__cwtmp)); __asm __volatile ("frndint" : "=t" (__value) : "0" (__x)); __asm __volatile ("fldcw %0" : : "m" (__cw)); return __value; } __inline float floorf (float __x) throw () { register long double __value; __volatile unsigned short int __cw; __volatile unsigned short int __cwtmp; __asm __volatile ("fnstcw %0" : "=m" (__cw)); __cwtmp = (__cw & 0xf3ff) | 0x0400; __asm __volatile ("fldcw %0" : : "m" (__cwtmp)); __asm __volatile ("frndint" : "=t" (__value) : "0" (__x)); __asm __volatile ("fldcw %0" : : "m" (__cw)); return __value; } __inline long double floorl (long double __x) throw () { register long double __value; __volatile unsigned short int __cw; __volatile unsigned short int __cwtmp; __asm __volatile ("fnstcw %0" : "=m" (__cw)); __cwtmp = (__cw & 0xf3ff) | 0x0400; __asm __volatile ("fldcw %0" : : "m" (__cwtmp)); __asm __volatile ("frndint" : "=t" (__value) : "0" (__x)); __asm __volatile ("fldcw %0" : : "m" (__cw)); return __value; } # 541 "/usr/include/bits/mathinline.h" 3 4 __inline double ceil (double __x) throw () { register long double __value; __volatile unsigned short int __cw; __volatile unsigned short int __cwtmp; __asm __volatile ("fnstcw %0" : "=m" (__cw)); __cwtmp = (__cw & 0xf3ff) | 0x0800; __asm __volatile ("fldcw %0" : : "m" (__cwtmp)); __asm __volatile ("frndint" : "=t" (__value) : "0" (__x)); __asm __volatile ("fldcw %0" : : "m" (__cw)); return __value; } __inline float ceilf (float __x) throw () { register long double __value; __volatile unsigned short int __cw; __volatile unsigned short int __cwtmp; __asm __volatile ("fnstcw %0" : "=m" (__cw)); __cwtmp = (__cw & 0xf3ff) | 0x0800; __asm __volatile ("fldcw %0" : : "m" (__cwtmp)); __asm __volatile ("frndint" : "=t" (__value) : "0" (__x)); __asm __volatile ("fldcw %0" : : "m" (__cw)); return __value; } __inline long double ceill (long double __x) throw () { register long double __value; __volatile unsigned short int __cw; __volatile unsigned short int __cwtmp; __asm __volatile ("fnstcw %0" : "=m" (__cw)); __cwtmp = (__cw & 0xf3ff) | 0x0800; __asm __volatile ("fldcw %0" : : "m" (__cwtmp)); __asm __volatile ("frndint" : "=t" (__value) : "0" (__x)); __asm __volatile ("fldcw %0" : : "m" (__cw)); return __value; } # 653 "/usr/include/bits/mathinline.h" 3 4 __inline long int lrintf (float __x) throw () { long int __lrintres; __asm__ __volatile__ ("fistpl %0" : "=m" (__lrintres) : "t" (__x) : "st"); return __lrintres; } __inline long int lrint (double __x) throw () { long int __lrintres; __asm__ __volatile__ ("fistpl %0" : "=m" (__lrintres) : "t" (__x) : "st"); return __lrintres; } __inline long int lrintl (long double __x) throw () { long int __lrintres; __asm__ __volatile__ ("fistpl %0" : "=m" (__lrintres) : "t" (__x) : "st"); return __lrintres; } # 676 "/usr/include/bits/mathinline.h" 3 4 __inline long long int llrintf (float __x) throw () { long long int __llrintres; __asm__ __volatile__ ("fistpll %0" : "=m" (__llrintres) : "t" (__x) : "st"); return __llrintres; } __inline long long int llrint (double __x) throw () { long long int __llrintres; __asm__ __volatile__ ("fistpll %0" : "=m" (__llrintres) : "t" (__x) : "st"); return __llrintres; } __inline long long int llrintl (long double __x) throw () { long long int __llrintres; __asm__ __volatile__ ("fistpll %0" : "=m" (__llrintres) : "t" (__x) : "st"); return __llrintres; } # 713 "/usr/include/bits/mathinline.h" 3 4 __inline int __finite (double __x) throw () { return (__extension__ (((((union { double __d; int __i[2]; }) {__d: __x}).__i[1] | 0x800fffffu) + 1) >> 31)); } # 383 "/usr/include/math.h" 2 3 4 # 438 "/usr/include/math.h" 3 4 } # 474 "include/G__ci.h" 2 # 1 "/usr/lib/gcc-lib/i586-suse-linux/3.3.4/include/stddef.h" 1 3 4 # 477 "include/G__ci.h" 2 # 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 # 103 "/usr/include/bits/sigset.h" 3 4 extern int __sigismember (__const __sigset_t *, int); extern int __sigaddset (__sigset_t *, int); extern int __sigdelset (__sigset_t *, int); # 117 "/usr/include/bits/sigset.h" 3 4 extern __inline int __sigismember (__const __sigset_t *__set, int __sig) { unsigned long int __mask = (((unsigned long int) 1) << (((__sig) - 1) % (8 * sizeof (unsigned long int)))); unsigned long int __word = (((__sig) - 1) / (8 * sizeof (unsigned long int))); return (__set->__val[__word] & __mask) ? 1 : 0; } extern __inline int __sigaddset ( __sigset_t *__set, int __sig) { unsigned long int __mask = (((unsigned long int) 1) << (((__sig) - 1) % (8 * sizeof (unsigned long int)))); unsigned long int __word = (((__sig) - 1) / (8 * sizeof (unsigned long int))); return ((__set->__val[__word] |= __mask), 0); } extern __inline int __sigdelset ( __sigset_t *__set, int __sig) { unsigned long int __mask = (((unsigned long int) 1) << (((__sig) - 1) % (8 * sizeof (unsigned long int)))); unsigned long int __word = (((__sig) - 1) / (8 * sizeof (unsigned long int))); return ((__set->__val[__word] &= ~__mask), 0); } # 34 "/usr/include/signal.h" 2 3 4 typedef __sig_atomic_t sig_atomic_t; # 58 "/usr/include/signal.h" 3 4 # 1 "/usr/include/bits/signum.h" 1 3 4 # 59 "/usr/include/signal.h" 2 3 4 # 75 "/usr/include/signal.h" 3 4 typedef void (*__sighandler_t) (int); extern __sighandler_t __sysv_signal (int __sig, __sighandler_t __handler) throw (); extern __sighandler_t sysv_signal (int __sig, __sighandler_t __handler) throw (); extern __sighandler_t signal (int __sig, __sighandler_t __handler) throw (); # 103 "/usr/include/signal.h" 3 4 extern __sighandler_t bsd_signal (int __sig, __sighandler_t __handler) throw (); extern int kill (__pid_t __pid, int __sig) throw (); extern int killpg (__pid_t __pgrp, int __sig) throw (); extern int raise (int __sig) throw (); extern __sighandler_t ssignal (int __sig, __sighandler_t __handler) throw (); extern int gsignal (int __sig) throw (); extern void psignal (int __sig, __const char *__s); # 150 "/usr/include/signal.h" 3 4 extern int __sigpause (int __sig_or_mask, int __is_sig); # 160 "/usr/include/signal.h" 3 4 extern int sigpause (int __sig) __asm__ ("__xpg_sigpause"); # 179 "/usr/include/signal.h" 3 4 extern int sigblock (int __mask) throw (); extern int sigsetmask (int __mask) throw (); extern int siggetmask (void) throw (); # 194 "/usr/include/signal.h" 3 4 typedef __sighandler_t sighandler_t; typedef __sighandler_t sig_t; # 210 "/usr/include/signal.h" 3 4 # 1 "/usr/include/bits/siginfo.h" 1 3 4 # 25 "/usr/include/bits/siginfo.h" 3 4 # 1 "/usr/include/bits/wordsize.h" 1 3 4 # 26 "/usr/include/bits/siginfo.h" 2 3 4 typedef union sigval { int sival_int; void *sival_ptr; } sigval_t; # 51 "/usr/include/bits/siginfo.h" 3 4 typedef struct siginfo { int si_signo; int si_errno; int si_code; union { int _pad[((128 / sizeof (int)) - 3)]; struct { __pid_t si_pid; __uid_t si_uid; } _kill; struct { int si_tid; int si_overrun; sigval_t si_sigval; } _timer; struct { __pid_t si_pid; __uid_t si_uid; sigval_t si_sigval; } _rt; struct { __pid_t si_pid; __uid_t si_uid; int si_status; __clock_t si_utime; __clock_t si_stime; } _sigchld; struct { void *si_addr; } _sigfault; struct { long int si_band; int si_fd; } _sigpoll; } _sifields; } siginfo_t; # 129 "/usr/include/bits/siginfo.h" 3 4 enum { SI_ASYNCNL = -60, SI_TKILL = -6, SI_SIGIO, SI_ASYNCIO, SI_MESGQ, SI_TIMER, SI_QUEUE, SI_USER, SI_KERNEL = 0x80 }; enum { ILL_ILLOPC = 1, ILL_ILLOPN, ILL_ILLADR, ILL_ILLTRP, ILL_PRVOPC, ILL_PRVREG, ILL_COPROC, ILL_BADSTK }; enum { FPE_INTDIV = 1, FPE_INTOVF, FPE_FLTDIV, FPE_FLTOVF, FPE_FLTUND, FPE_FLTRES, FPE_FLTINV, FPE_FLTSUB }; enum { SEGV_MAPERR = 1, SEGV_ACCERR }; enum { BUS_ADRALN = 1, BUS_ADRERR, BUS_OBJERR }; enum { TRAP_BRKPT = 1, TRAP_TRACE }; enum { CLD_EXITED = 1, CLD_KILLED, CLD_DUMPED, CLD_TRAPPED, CLD_STOPPED, CLD_CONTINUED }; enum { POLL_IN = 1, POLL_OUT, POLL_MSG, POLL_ERR, POLL_PRI, POLL_HUP }; # 273 "/usr/include/bits/siginfo.h" 3 4 typedef struct sigevent { sigval_t sigev_value; int sigev_signo; int sigev_notify; union { int _pad[((64 / sizeof (int)) - 3)]; __pid_t _tid; struct { void (*_function) (sigval_t); void *_attribute; } _sigev_thread; } _sigev_un; } sigevent_t; enum { SIGEV_SIGNAL = 0, SIGEV_NONE, SIGEV_THREAD, SIGEV_THREAD_ID = 4 }; # 211 "/usr/include/signal.h" 2 3 4 extern int sigemptyset (sigset_t *__set) throw (); extern int sigfillset (sigset_t *__set) throw (); extern int sigaddset (sigset_t *__set, int __signo) throw (); extern int sigdelset (sigset_t *__set, int __signo) throw (); extern int sigismember (__const sigset_t *__set, int __signo) throw (); extern int sigisemptyset (__const sigset_t *__set) throw (); extern int sigandset (sigset_t *__set, __const sigset_t *__left, __const sigset_t *__right) throw (); extern int sigorset (sigset_t *__set, __const sigset_t *__left, __const sigset_t *__right) throw (); # 1 "/usr/include/bits/sigaction.h" 1 3 4 # 25 "/usr/include/bits/sigaction.h" 3 4 struct sigaction { union { __sighandler_t sa_handler; void (*sa_sigaction) (int, siginfo_t *, void *); } __sigaction_handler; __sigset_t sa_mask; int sa_flags; void (*sa_restorer) (void); }; # 244 "/usr/include/signal.h" 2 3 4 extern int sigprocmask (int __how, __const sigset_t *__restrict __set, sigset_t *__restrict __oset) throw (); extern int sigsuspend (__const sigset_t *__set); extern int sigaction (int __sig, __const struct sigaction *__restrict __act, struct sigaction *__restrict __oact) throw (); extern int sigpending (sigset_t *__set) throw (); extern int sigwait (__const sigset_t *__restrict __set, int *__restrict __sig); extern int sigwaitinfo (__const sigset_t *__restrict __set, siginfo_t *__restrict __info); extern int sigtimedwait (__const sigset_t *__restrict __set, siginfo_t *__restrict __info, __const struct timespec *__restrict __timeout); extern int sigqueue (__pid_t __pid, int __sig, __const union sigval __val) throw (); # 299 "/usr/include/signal.h" 3 4 extern __const char *__const _sys_siglist[65]; extern __const char *__const sys_siglist[65]; struct sigvec { __sighandler_t sv_handler; int sv_mask; int sv_flags; }; # 323 "/usr/include/signal.h" 3 4 extern int sigvec (int __sig, __const struct sigvec *__vec, struct sigvec *__ovec) throw (); # 1 "/usr/include/bits/sigcontext.h" 1 3 4 # 28 "/usr/include/bits/sigcontext.h" 3 4 # 1 "/usr/include/asm/sigcontext.h" 1 3 4 # 1 "/usr/include/linux/compiler.h" 1 3 4 # 5 "/usr/include/asm/sigcontext.h" 2 3 4 # 20 "/usr/include/asm/sigcontext.h" 3 4 struct _fpreg { unsigned short significand[4]; unsigned short exponent; }; struct _fpxreg { unsigned short significand[4]; unsigned short exponent; unsigned short padding[3]; }; struct _xmmreg { unsigned long element[4]; }; struct _fpstate { unsigned long cw; unsigned long sw; unsigned long tag; unsigned long ipoff; unsigned long cssel; unsigned long dataoff; unsigned long datasel; struct _fpreg _st[8]; unsigned short status; unsigned short magic; unsigned long _fxsr_env[6]; unsigned long mxcsr; unsigned long reserved; struct _fpxreg _fxsr_st[8]; struct _xmmreg _xmm[8]; unsigned long padding[56]; }; struct sigcontext { unsigned short gs, __gsh; unsigned short fs, __fsh; unsigned short es, __esh; unsigned short ds, __dsh; unsigned long edi; unsigned long esi; unsigned long ebp; unsigned long esp; unsigned long ebx; unsigned long edx; unsigned long ecx; unsigned long eax; unsigned long trapno; unsigned long err; unsigned long eip; unsigned short cs, __csh; unsigned long eflags; unsigned long esp_at_signal; unsigned short ss, __ssh; struct _fpstate * fpstate; unsigned long oldmask; unsigned long cr2; }; # 29 "/usr/include/bits/sigcontext.h" 2 3 4 # 329 "/usr/include/signal.h" 2 3 4 extern int sigreturn (struct sigcontext *__scp) throw (); # 341 "/usr/include/signal.h" 3 4 extern int siginterrupt (int __sig, int __interrupt) throw (); # 1 "/usr/include/bits/sigstack.h" 1 3 4 # 26 "/usr/include/bits/sigstack.h" 3 4 struct sigstack { void *ss_sp; int ss_onstack; }; enum { SS_ONSTACK = 1, SS_DISABLE }; # 50 "/usr/include/bits/sigstack.h" 3 4 typedef struct sigaltstack { void *ss_sp; int ss_flags; size_t ss_size; } stack_t; # 344 "/usr/include/signal.h" 2 3 4 # 1 "/usr/include/sys/ucontext.h" 1 3 4 # 27 "/usr/include/sys/ucontext.h" 3 4 # 1 "/usr/include/bits/sigcontext.h" 1 3 4 # 28 "/usr/include/sys/ucontext.h" 2 3 4 typedef int greg_t; typedef greg_t gregset_t[19]; enum { REG_GS = 0, REG_FS, REG_ES, REG_DS, REG_EDI, REG_ESI, REG_EBP, REG_ESP, REG_EBX, REG_EDX, REG_ECX, REG_EAX, REG_TRAPNO, REG_ERR, REG_EIP, REG_CS, REG_EFL, REG_UESP, REG_SS }; struct _libc_fpreg { unsigned short int significand[4]; unsigned short int exponent; }; struct _libc_fpstate { unsigned long int cw; unsigned long int sw; unsigned long int tag; unsigned long int ipoff; unsigned long int cssel; unsigned long int dataoff; unsigned long int datasel; struct _libc_fpreg _st[8]; unsigned long int status; }; typedef struct _libc_fpstate *fpregset_t; typedef struct { gregset_t gregs; fpregset_t fpregs; unsigned long int oldmask; unsigned long int cr2; } mcontext_t; typedef struct ucontext { unsigned long int uc_flags; struct ucontext *uc_link; stack_t uc_stack; mcontext_t uc_mcontext; __sigset_t uc_sigmask; struct _libc_fpstate __fpregs_mem; } ucontext_t; # 347 "/usr/include/signal.h" 2 3 4 extern int sigstack (struct sigstack *__ss, struct sigstack *__oss) throw (); extern int sigaltstack (__const struct sigaltstack *__restrict __ss, struct sigaltstack *__restrict __oss) throw (); extern int sighold (int __sig) throw (); extern int sigrelse (int __sig) throw (); extern int sigignore (int __sig) throw (); extern __sighandler_t sigset (int __sig, __sighandler_t __disp) throw (); # 1 "/usr/include/bits/pthreadtypes.h" 1 3 4 # 381 "/usr/include/signal.h" 2 3 4 extern int __libc_current_sigrtmin (void) throw (); extern int __libc_current_sigrtmax (void) throw (); } # 479 "include/G__ci.h" 2 # 1 "/usr/include/assert.h" 1 3 4 # 65 "/usr/include/assert.h" 3 4 extern "C" { extern void __assert_fail (__const char *__assertion, __const char *__file, unsigned int __line, __const char *__function) throw () __attribute__ ((__noreturn__)); extern void __assert_perror_fail (int __errnum, __const char *__file, unsigned int __line, __const char *__function) throw () __attribute__ ((__noreturn__)); extern void __assert (const char *__assertion, const char *__file, int __line) throw () __attribute__ ((__noreturn__)); } # 480 "include/G__ci.h" 2 # 1 "/usr/lib/gcc-lib/i586-suse-linux/3.3.4/include/limits.h" 1 3 4 # 481 "include/G__ci.h" 2 # 1 "/usr/include/setjmp.h" 1 3 4 # 28 "/usr/include/setjmp.h" 3 4 extern "C" { # 1 "/usr/include/bits/setjmp.h" 1 3 4 # 38 "/usr/include/bits/setjmp.h" 3 4 typedef int __jmp_buf[6]; # 31 "/usr/include/setjmp.h" 2 3 4 # 1 "/usr/include/bits/sigset.h" 1 3 4 # 32 "/usr/include/setjmp.h" 2 3 4 typedef struct __jmp_buf_tag { __jmp_buf __jmpbuf; int __mask_was_saved; __sigset_t __saved_mask; } jmp_buf[1]; extern int setjmp (jmp_buf __env) throw (); extern int __sigsetjmp (struct __jmp_buf_tag __env[1], int __savemask) throw (); extern int _setjmp (struct __jmp_buf_tag __env[1]) throw (); # 76 "/usr/include/setjmp.h" 3 4 extern void longjmp (struct __jmp_buf_tag __env[1], int __val) throw () __attribute__ ((__noreturn__)); extern void _longjmp (struct __jmp_buf_tag __env[1], int __val) throw () __attribute__ ((__noreturn__)); typedef struct __jmp_buf_tag sigjmp_buf[1]; # 108 "/usr/include/setjmp.h" 3 4 extern void siglongjmp (sigjmp_buf __env, int __val) throw () __attribute__ ((__noreturn__)); } # 482 "include/G__ci.h" 2 # 1 "/usr/include/fcntl.h" 1 3 4 # 29 "/usr/include/fcntl.h" 3 4 extern "C" { # 1 "/usr/include/bits/fcntl.h" 1 3 4 # 138 "/usr/include/bits/fcntl.h" 3 4 struct flock { short int l_type; short int l_whence; __off_t l_start; __off_t l_len; __pid_t l_pid; }; struct flock64 { short int l_type; short int l_whence; __off64_t l_start; __off64_t l_len; __pid_t l_pid; }; # 183 "/usr/include/bits/fcntl.h" 3 4 extern "C" { extern ssize_t readahead (int __fd, __off64_t __offset, size_t __count) throw (); } # 34 "/usr/include/fcntl.h" 2 3 4 # 1 "/usr/include/sys/stat.h" 1 3 4 # 103 "/usr/include/sys/stat.h" 3 4 extern "C" { # 1 "/usr/include/bits/stat.h" 1 3 4 # 36 "/usr/include/bits/stat.h" 3 4 struct stat { __dev_t st_dev; unsigned short int __pad1; __ino_t st_ino; __mode_t st_mode; __nlink_t st_nlink; __uid_t st_uid; __gid_t st_gid; __dev_t st_rdev; unsigned short int __pad2; __off_t st_size; __blksize_t st_blksize; __blkcnt_t st_blocks; # 70 "/usr/include/bits/stat.h" 3 4 struct timespec st_atim; struct timespec st_mtim; struct timespec st_ctim; # 85 "/usr/include/bits/stat.h" 3 4 unsigned long int __unused4; unsigned long int __unused5; }; struct stat64 { __dev_t st_dev; unsigned int __pad1; __ino_t __st_ino; __mode_t st_mode; __nlink_t st_nlink; __uid_t st_uid; __gid_t st_gid; __dev_t st_rdev; unsigned int __pad2; __off64_t st_size; __blksize_t st_blksize; __blkcnt64_t st_blocks; struct timespec st_atim; struct timespec st_mtim; struct timespec st_ctim; # 127 "/usr/include/bits/stat.h" 3 4 __ino64_t st_ino; }; # 106 "/usr/include/sys/stat.h" 2 3 4 # 207 "/usr/include/sys/stat.h" 3 4 extern int stat (__const char *__restrict __file, struct stat *__restrict __buf) throw (); extern int fstat (int __fd, struct stat *__buf) throw (); # 224 "/usr/include/sys/stat.h" 3 4 extern int stat64 (__const char *__restrict __file, struct stat64 *__restrict __buf) throw (); extern int fstat64 (int __fd, struct stat64 *__buf) throw (); extern int lstat (__const char *__restrict __file, struct stat *__restrict __buf) throw (); # 245 "/usr/include/sys/stat.h" 3 4 extern int lstat64 (__const char *__restrict __file, struct stat64 *__restrict __buf) throw (); extern int chmod (__const char *__file, __mode_t __mode) throw (); extern int lchmod (__const char *__file, __mode_t __mode) throw (); extern int fchmod (int __fd, __mode_t __mode) throw (); extern __mode_t umask (__mode_t __mask) throw (); extern __mode_t getumask (void) throw (); extern int mkdir (__const char *__path, __mode_t __mode) throw (); extern int mknod (__const char *__path, __mode_t __mode, __dev_t __dev) throw (); extern int mkfifo (__const char *__path, __mode_t __mode) throw (); # 316 "/usr/include/sys/stat.h" 3 4 extern int __fxstat (int __ver, int __fildes, struct stat *__stat_buf) throw (); extern int __xstat (int __ver, __const char *__filename, struct stat *__stat_buf) throw (); extern int __lxstat (int __ver, __const char *__filename, struct stat *__stat_buf) throw (); # 338 "/usr/include/sys/stat.h" 3 4 extern int __fxstat64 (int __ver, int __fildes, struct stat64 *__stat_buf) throw (); extern int __xstat64 (int __ver, __const char *__filename, struct stat64 *__stat_buf) throw (); extern int __lxstat64 (int __ver, __const char *__filename, struct stat64 *__stat_buf) throw (); extern int __xmknod (int __ver, __const char *__path, __mode_t __mode, __dev_t *__dev) throw (); extern __inline__ int stat (__const char *__path, struct stat *__statbuf) throw () { return __xstat (3, __path, __statbuf); } extern __inline__ int lstat (__const char *__path, struct stat *__statbuf) throw () { return __lxstat (3, __path, __statbuf); } extern __inline__ int fstat (int __fd, struct stat *__statbuf) throw () { return __fxstat (3, __fd, __statbuf); } extern __inline__ int mknod (__const char *__path, __mode_t __mode, __dev_t __dev) throw () { return __xmknod (1, __path, __mode, &__dev); } extern __inline__ int stat64 (__const char *__path, struct stat64 *__statbuf) throw () { return __xstat64 (3, __path, __statbuf); } extern __inline__ int lstat64 (__const char *__path, struct stat64 *__statbuf) throw () { return __lxstat64 (3, __path, __statbuf); } extern __inline__ int fstat64 (int __fd, struct stat64 *__statbuf) throw () { return __fxstat64 (3, __fd, __statbuf); } } # 38 "/usr/include/fcntl.h" 2 3 4 # 63 "/usr/include/fcntl.h" 3 4 extern int fcntl (int __fd, int __cmd, ...); # 72 "/usr/include/fcntl.h" 3 4 extern int open (__const char *__file, int __oflag, ...); # 81 "/usr/include/fcntl.h" 3 4 extern int open64 (__const char *__file, int __oflag, ...); # 90 "/usr/include/fcntl.h" 3 4 extern int creat (__const char *__file, __mode_t __mode); # 100 "/usr/include/fcntl.h" 3 4 extern int creat64 (__const char *__file, __mode_t __mode); # 136 "/usr/include/fcntl.h" 3 4 extern int posix_fadvise (int __fd, __off_t __offset, __off_t __len, int __advise) throw (); # 148 "/usr/include/fcntl.h" 3 4 extern int posix_fadvise64 (int __fd, __off64_t __offset, __off64_t __len, int __advise) throw (); # 158 "/usr/include/fcntl.h" 3 4 extern int posix_fallocate (int __fd, __off_t __offset, __off_t __len); # 169 "/usr/include/fcntl.h" 3 4 extern int posix_fallocate64 (int __fd, __off64_t __offset, __off64_t __len); } # 485 "include/G__ci.h" 2 extern "C" { # 886 "include/G__ci.h" struct G__StoreEnv { long store_struct_offset; int store_tagnum; int store_memberfunc_tagnum; int store_exec_memberfunc; }; # 905 "include/G__ci.h" struct G__p2p { long i; int reftype; }; struct G__DUMMY_FOR_CINT7 { void* fTypeName; unsigned int fModifiers; }; typedef struct { union { double d; long i; struct G__p2p reftype; char ch; short sh; int in; float fl; unsigned char uch; unsigned short ush; unsigned int uin; unsigned long ulo; G__int64 ll; G__uint64 ull; long double ld; } obj; int type; int tagnum; int typenum; char dummyForCint7[sizeof(struct G__DUMMY_FOR_CINT7) - sizeof(int)]; long ref; G__SIGNEDCHAR_T isconst; } G__value ; # 995 "include/G__ci.h" extern G__value G__null; # 1068 "include/G__ci.h" struct G__ifunc_table; struct G__var_array; struct G__dictposition; struct G__comment_info; struct G__friendtag; struct G__bytecodefunc; struct G__funcentry; struct G__ifunc_table; struct G__inheritance; struct G__var_array; struct G__tagtable; struct G__input_file; struct G__tempobject_list; struct G__va_list_para; # 1104 "include/G__ci.h" struct G__ifunc_table; struct G__var_array; struct G__dictposition { struct G__var_array *var; int ig15; int tagnum; struct G__ConstStringList *conststringpos; int typenum; struct G__ifunc_table *ifunc; int ifn; struct G__includepath *ipath; int allsl; struct G__Preprocessfilekey *preprocessfilekey; int nfile; struct G__Deffuncmacro *deffuncmacro; struct G__Definedtemplateclass *definedtemplateclass; struct G__Definetemplatefunc *definedtemplatefunc; char* ptype; }; struct G__comment_info { union { char *com; fpos_t pos; } p; int filenum; }; # 1162 "include/G__ci.h" struct G__RootSpecial { char* deffile; int defline; char* impfile; int impline; int version; unsigned int instancecount; unsigned int heapinstancecount; void* defaultconstructor; }; struct G__friendtag { short tagnum; struct G__friendtag *next; }; # 1196 "include/G__ci.h" struct G__param { int paran; G__value para[40]; char parameter[40][512]; }; } # 1225 "include/G__ci.h" typedef int (*G__InterfaceMethod)(G__value*,const char*,struct G__param*,int); typedef void (*G__incsetup)(void); # 1241 "include/G__ci.h" extern "C" { # 1257 "include/G__ci.h" struct G__input_file { FILE *fp; int line_number; short filenum; char name[1024]; char *str; unsigned long pos; int vindex; }; # 1281 "include/G__ci.h" typedef struct { const char *tagname; char tagtype; short tagnum; } G__linked_taginfo; typedef struct { char *name; void (*pfunc)(); } G__COMPLETIONLIST; struct G__IntList { long i; struct G__IntList *prev; struct G__IntList *next; }; struct G__Definedtemplatememfunc { int line; int filenum; FILE *def_fp; fpos_t def_pos; struct G__Definedtemplatememfunc *next; }; struct G__Templatearg { int type; char *string; char *default_parameter; struct G__Templatearg *next; }; struct G__Definedtemplateclass { char *name; int hash; int line; int filenum; FILE *def_fp; fpos_t def_pos; struct G__Templatearg *def_para; struct G__Definedtemplatememfunc memfunctmplt; struct G__Definedtemplateclass *next; int parent_tagnum; struct G__IntList *instantiatedtagnum; int isforwarddecl; int friendtagnum; struct G__Definedtemplateclass *specialization; struct G__Templatearg *spec_arg; }; struct G__includepath { char *pathname; struct G__includepath *next; }; extern void (*G__atpause)(); extern void (*G__aterror)(); # 1417 "include/G__ci.h" extern unsigned long G__uint (G__value buf); # 1427 "include/G__ci.h" extern int G__fgetline (char *string); extern int G__load (char *commandfile); extern G__value (*G__GetSpecialObject) (char *name,void **ptr,void** ppdict); extern int G__call_setup_funcs (void); extern void G__reset_setup_funcs (void); extern char *G__cint_version (void); extern void G__init_garbagecollection (void); extern int G__garbagecollection (void); extern void G__add_alloctable (void* allocedmem,int type,int tagnum); extern int G__del_alloctable (void* allocmem); extern int G__add_refcount (void* allocedmem,void** storedmem); extern int G__del_refcount (void* allocedmem,void** storedmem); extern int G__disp_garbagecollection (FILE* fout); struct G__ifunc_table *G__get_methodhandle (char *funcname,char *argtype ,struct G__ifunc_table *p_ifunc ,long *pifn,long *poffset ,int withConversion ,int withInheritance); struct G__ifunc_table *G__get_methodhandle2 (char *funcname ,struct G__param* libp ,struct G__ifunc_table *p_ifunc ,long *pifn,long *poffset ,int withConversion ,int withInheritance); struct G__var_array *G__searchvariable (char *varname,int varhash ,struct G__var_array *varlocal ,struct G__var_array *varglobal ,long *pG__struct_offset ,long *pstore_struct_offset ,int *pig15 ,int isdecl); # 1461 "include/G__ci.h" struct G__ifunc_table* G__p2f2funchandle (void* p2f,struct G__ifunc_table* p_ifunc,int* pindex); char* G__p2f2funcname (void *p2f); int G__isinterpretedp2f (void* p2f); int G__compile_bytecode (struct G__ifunc_table* ifunc,int index); # 1473 "include/G__ci.h" typedef struct { union { char d[1024]; long i[1024/sizeof(long)]; } x; } G__va_arg_buf; # 1569 "include/G__ci.h" struct G__va_list_para { struct G__param *libp; int i; }; void G__va_arg_setalign (int n); void G__va_arg_copyvalue (int t,void* p,G__value* pval,int objsize); # 1589 "include/G__ci.h" extern void G__Set_RTLD_NOW (void); extern void G__Set_RTLD_LAZY (void); extern int (*G__ScriptCompiler) (const char*,const char*); extern void G__RegisterScriptCompiler (int(*p2f)(const char*,const char*)); # 1605 "include/G__ci.h" extern int G__defined_tagname (const char* tagname,int noerror); extern struct G__Definedtemplateclass *G__defined_templateclass (char *name); int G__deleteglobal (void* p); int G__deletevariable (const char* varname); extern int G__optimizemode (int optimizemode); extern int G__getoptimizemode (void); G__value G__string2type_body (const char *typenamin,int noerror); G__value G__string2type (const char *typenamin); extern void* G__findsym (const char *fname); extern int G__IsInMacro (void); extern void G__storerewindposition (void); extern void G__rewinddictionary (void); extern void G__SetCriticalSectionEnv (void); extern void G__storelasterror (void); extern void G__set_smartunload (int smartunload); extern void G__set_autoloading (int (*p2f) (char*)); extern void G__set_class_autoloading_callback (int (*p2f) (char*,char*)); extern void G__set_class_autoloading_table (char* classname,char* libname); extern int G__set_class_autoloading (int newvalue); typedef int (*G__IgnoreInclude) (const char* fname,const char* expandedfname); # 1641 "include/G__ci.h" extern int G__getexitcode (void); extern int G__get_return (int *exitval); extern int G__fprinterr (FILE* fp,char* fmt,...); extern int G__fputerr (int c); extern void G__SetUseCINTSYSDIR (int UseCINTSYSDIR); extern void G__SetCINTSYSDIR (char* cintsysdir); extern void G__set_eolcallback (void* eolcallback); typedef void G__parse_hook_t (); extern G__parse_hook_t* G__set_beforeparse_hook (G__parse_hook_t* hook); extern void G__set_ioctortype_handler (int (*p2f) (const char*)); extern void G__SetCatchException (int mode); extern int G__exec_bytecode (G__value *result7,const char *funcname,struct G__param *libp,int hash); # 1677 "include/G__ci.h" extern int G__fprintf (FILE* fp,char* fmt,...); extern int G__setmasksignal (int); extern void G__settemplevel (int val); extern void G__clearstack (void); extern int G__lasterror (void) ; extern void G__reset_lasterror (void); extern int G__gettempfilenum (void); extern void G__LockCpp (void); extern void G__set_sym_underscore (int x); extern int G__get_sym_underscore (void); extern void* G__get_errmsgcallback (void); extern void G__mask_errmsg (char* msg); extern int G__main (int argc,char **argv); extern void G__setothermain (int othermain); extern void G__exit (int rtn); extern int G__getnumbaseclass (int tagnum); extern void G__setnewtype (int globalcomp,const char* comment,int nindex); extern void G__setnewtypeindex (int j,int index); extern void G__resetplocal (void); extern long G__getgvp (void); extern void G__resetglobalenv (void); extern void G__lastifuncposition (void); extern void G__resetifuncposition (void); extern void G__setnull (G__value* result); extern long G__getstructoffset (void); extern int G__getaryconstruct (void); extern long G__gettempbufpointer (void); extern void G__setsizep2memfunc (int sizep2memfunc); extern int G__getsizep2memfunc (void); extern int G__get_linked_tagnum (G__linked_taginfo *p); extern int G__get_linked_tagnum_fwd (G__linked_taginfo *p); extern int G__tagtable_setup (int tagnum,int size,int cpplink,int isabstract,const char *comment,G__incsetup setup_memvar,G__incsetup setup_memfunc); extern int G__search_tagname (const char *tagname,int type); extern int G__search_typename (const char *typenamein,int typein,int tagnum,int reftype); extern int G__defined_typename (const char* typenamein); extern int G__tag_memvar_setup (int tagnum); extern int G__memvar_setup (void *p,int type,int reftype,int constvar,int tagnum,int typenum,int statictype,int access,const char *expr,int definemacro,const char *comment); extern int G__tag_memvar_reset (void); extern int G__tag_memfunc_setup (int tagnum); extern int G__memfunc_setup (const char *funcname,int hash,G__InterfaceMethod funcp,int type ,int tagnum,int typenum,int reftype,int para_nu,int ansi,int access,int isconst,const char *paras,const char *comment,void* tp2f,int isvirtual); extern int G__memfunc_next (void); extern int G__memfunc_para_setup (int ifn,int type,int tagnum,int typenum,int reftype,G__value *para_default,char *para_def,char *para_name); extern int G__tag_memfunc_reset (void); extern void G__letint (G__value *buf,int type,long value); extern void G__letdouble (G__value *buf,int type,double value); extern void G__store_tempobject (G__value reg); extern int G__inheritance_setup (int tagnum,int basetagnum,long baseoffset,int baseaccess,int property); extern void G__add_compiledheader (const char *headerfile); extern void G__add_ipath (const char *ipath); extern int G__delete_ipath (const char *ipath); extern struct G__includepath *G__getipathentry(); extern void G__add_macro (const char *macro); extern void G__check_setup_version (int version,const char *func); extern long G__int (G__value buf); extern long G__int_cast (G__value buf); extern double G__double (G__value buf); extern G__value G__calc (const char *expr); extern int G__loadfile (const char* filename); extern int G__unloadfile (const char* filename); extern int G__init_cint (const char* command); extern void G__scratch_all (void); extern void G__setdouble (G__value *pbuf,double d,void* pd,int type,int tagnum,int typenum,int reftype); extern void G__setint (G__value *pbuf,long d,void* pd,int type,int tagnum,int typenum,int reftype); extern void G__stubstoreenv (struct G__StoreEnv *env,void* p,int tagnum); extern void G__stubrestoreenv (struct G__StoreEnv *env); extern int G__getstream (char *source,int *isrc,char *string,char *endmark); extern char *G__type2string (int type,int tagnum,int typenum,int reftype,int isconst); extern void G__alloc_tempobject (int tagnum,int typenum); extern void G__set_p2fsetup (void (*p2f)()); extern void G__free_p2fsetup (void); extern int G__genericerror (const char *message); extern char* G__tmpnam (char* name); extern int G__setTMPDIR (char* badname); extern void G__setPrerun (int prerun); extern int G__readline (FILE *fp,char *line,char *argbuf,int *argn,char *arg[]); extern int G__getFuncNow (void); extern G__value G__getfunction (char *item,int *known3,int memfunc_flag); extern FILE* G__getIfileFp (void); extern void G__incIfileLineNumber (void); extern struct G__input_file* G__get_ifile (void); extern void G__setReturn (int rtn); extern int G__getPrerun (void); extern short G__getDispsource (void); extern FILE* G__getSerr (void); extern int G__getIsMain (void); extern void G__setIsMain (int ismain); extern void G__setStep (int step); extern int G__getStepTrace (void); extern void G__setDebug (int dbg); extern int G__getDebugTrace (void); extern void G__set_asm_noverflow (int novfl); extern int G__get_no_exec (void); extern int G__get_no_exec_compile (void); extern void G__setdebugcond (void); extern int G__init_process_cmd (void); extern int G__process_cmd (char *line,char *prompt,int *more,int *err,G__value *rslt); extern int G__pause (void); extern char* G__input (char* prompt); extern int G__split (char *line,char *string,int *argc,char **argv); extern int G__getIfileLineNumber (void); extern void G__addpragma (char* comname,void (*p2f) (char*) ); extern void G__add_setup_func (const char *libname, G__incsetup func); extern void G__remove_setup_func (const char *libname); extern void G__setgvp (long gvp); extern void G__set_stdio_handle (FILE* sout,FILE* serr,FILE* sin); extern void G__setautoconsole (int autoconsole); extern int G__AllocConsole (void); extern int G__FreeConsole (void); extern int G__getcintready (void); extern int G__security_recover (FILE* fout); extern void G__breakkey (int signame); extern int G__stepmode (int stepmode); extern int G__tracemode (int tracemode); extern int G__setbreakpoint (char *breakline,char *breakfile); extern int G__getstepmode (void); extern int G__gettracemode (void); extern int G__printlinenum (void); extern int G__search_typename2 (const char *typenamein,int typein,int tagnum,int reftype,int parent_tagnum); extern void G__set_atpause (void (*p2f)()); extern void G__set_aterror (void (*p2f)()); extern void G__p2f_void_void (void* p2f); extern void G__setglobalcomp (int globalcomp); extern char *G__getmakeinfo (char *item); extern char *G__getmakeinfo1 (char *item); extern int G__get_security_error (void); extern char* G__map_cpp_name (char *in); extern char* G__Charref (G__value *buf); extern short* G__Shortref (G__value *buf); extern int* G__Intref (G__value *buf); extern long* G__Longref (G__value *buf); extern unsigned char* G__UCharref (G__value *buf); extern unsigned char* G__Boolref (G__value *buf); extern unsigned short* G__UShortref (G__value *buf); extern unsigned int* G__UIntref (G__value *buf); extern unsigned long* G__ULongref (G__value *buf); extern float* G__Floatref (G__value *buf); extern double* G__Doubleref (G__value *buf); extern int G__loadsystemfile (const char* filename); extern void G__set_ignoreinclude (G__IgnoreInclude ignoreinclude); extern G__value G__exec_tempfile_fp (FILE *fp); extern G__value G__exec_tempfile (const char *file); extern G__value G__exec_text (const char *unnamedmacro); extern char* G__exec_text_str (const char *unnamedmacro,char* result); extern char* G__lasterror_filename (void); extern int G__lasterror_linenum (void); extern void G__va_arg_put (G__va_arg_buf* pbuf,struct G__param* libp,int n); extern char* G__load_text (const char *namedmacro); extern void G__set_emergencycallback (void (*p2f)()); extern void G__set_errmsgcallback(void* p); extern void G__letLonglong (G__value* buf,int type,G__int64 value); extern void G__letULonglong (G__value* buf,int type,G__uint64 value); extern void G__letLongdouble (G__value* buf,int type,long double value); extern G__int64 G__Longlong (G__value buf); extern G__uint64 G__ULonglong (G__value buf); extern long double G__Longdouble (G__value buf); extern G__int64* G__Longlongref (G__value *buf); extern G__uint64* G__ULonglongref (G__value *buf); extern long double* G__Longdoubleref (G__value *buf); extern void G__exec_alloc_lock(); extern void G__exec_alloc_unlock(); extern int G__clearfilebusy (int); extern void G__CurrentCall(int, void*, long*); extern int G__close_inputfiles (void); extern int G__const_resetnoerror (void); extern int G__const_setnoerror (void); extern int G__const_whatnoerror (void); extern int G__close_inputfiles (void); extern void G__scratch_globals_upto (struct G__dictposition *dictpos); extern void G__scratch_upto (struct G__dictposition *dictpos); extern void G__store_dictposition (struct G__dictposition* dictpos); extern int G__printf (char* fmt,...); extern void G__free_tempobject (void); extern int G__display_class(FILE *fout,char *name,int base,int start); extern int G__display_includepath(FILE *fout); extern void G__set_alloclockfunc(void(*)()); extern void G__set_allocunlockfunc(void(*)()); extern int G__usermemfunc_setup(char *funcname,int hash,int (*funcp)(),int type, int tagnum,int typenum,int reftype, int para_nu,int ansi,int accessin,int isconst, char *paras, char *comment ,void *truep2f,int isvirtual ,void *userparam); extern char *G__fulltagname(int tagnum,int mask_dollar); extern void G__loadlonglong(int* ptag,int* ptype,int which); extern int G__isanybase(int basetagnum,int derivedtagnum,long pobject); extern int G__pop_tempobject(void); extern int G__pop_tempobject_nodel(void); extern char* G__stripfilename(char* filename); extern int G__sizeof (G__value *object); extern struct G__ifunc_table_internal *G__get_ifunc_internal(struct G__ifunc_table* iref); # 2455 "include/G__ci.h" extern G__int64 G__expr_strtoll (const char *nptr,char **endptr, register int base); extern G__uint64 G__expr_strtoull (const char *nptr, char **endptr, register int base); } # 26 "include/Api.h" 2 # 38 "include/Api.h" # 1 "include/Class.h" 1 # 20 "include/Class.h" # 1 "include/Api.h" 1 # 21 "include/Class.h" 2 namespace Cint { class G__MethodInfo; class G__DataMemberInfo; class G__FriendInfo; class G__ClassInfo { public: virtual ~G__ClassInfo() {} G__ClassInfo(): tagnum(0), class_property(0) { Init(); } void Init(); G__ClassInfo(const char *classname): tagnum(0), class_property(0){ Init(classname); } void Init(const char *classname); G__ClassInfo(int tagnumin): tagnum(0), class_property(0) { Init(tagnumin); } void Init(int tagnumin); int operator==(const G__ClassInfo& a); int operator!=(const G__ClassInfo& a); const char *Name() ; const char *Fullname(); const char *Title() ; int Size() ; long Property(); int NDataMembers(); int NMethods(); long IsBase(const char *classname); long IsBase(G__ClassInfo& a); long Tagnum() const { return(tagnum); } G__ClassInfo EnclosingClass() ; G__ClassInfo EnclosingSpace() ; struct G__friendtag* GetFriendInfo(); void SetGlobalcomp(int globalcomp); void SetProtectedAccess(int protectedaccess); int IsValid(); int IsLoaded(); int SetFilePos(const char *fname); int Next(); int Linkage(); const char *FileName() ; int LineNumber() ; int IsTmplt(); const char* TmpltName(); const char* TmpltArg(); protected: long tagnum; long class_property; public: void SetDefFile(char *deffilein); void SetDefLine(int deflinein); void SetImpFile(char *impfilein); void SetImpLine(int implinein); void SetVersion(int versionin); const char *DefFile(); int DefLine(); const char *ImpFile(); int ImpLine(); int Version(); void *New(); void *New(int n); void *New(void *arena); void *New(int n, void* arena); void Delete(void* p) const ; void Destruct(void* p) const ; void DeleteArray(void* ary, int dtorOnly = 0); int InstanceCount(); void ResetInstanceCount(); void IncInstanceCount(); int HeapInstanceCount(); void IncHeapInstanceCount(); void ResetHeapInstanceCount(); int RootFlag(); enum MatchMode { ExactMatch=0, ConversionMatch=1, ConversionMatchBytecode=2}; enum InheritanceMode { InThisScope=0, WithInheritance=1 }; G__InterfaceMethod GetInterfaceMethod(const char *fname,const char *arg ,long* poffset ,MatchMode mode=ConversionMatch ,InheritanceMode imode=WithInheritance ); G__MethodInfo GetMethod(const char *fname,const char *arg,long* poffset ,MatchMode mode=ConversionMatch ,InheritanceMode imode=WithInheritance ); G__MethodInfo GetMethod(const char *fname,struct G__param* libp,long* poffset ,MatchMode mode=ConversionMatch ,InheritanceMode imode=WithInheritance ); G__MethodInfo GetDefaultConstructor(); G__MethodInfo GetCopyConstructor(); G__MethodInfo GetDestructor(); G__MethodInfo GetAssignOperator(); G__MethodInfo AddMethod(const char* typenam,const char* fname,const char *arg ,int isstatic=0,int isvirtual=0,void *methodAddress=0); G__DataMemberInfo GetDataMember(const char *name,long* poffset); int HasMethod(const char *fname); int HasDataMember(const char *name); int HasDefaultConstructor(); private: void CheckValidRootInfo(); public: long ClassProperty(); unsigned char FuncFlag(); }; class G__FriendInfo { public: G__FriendInfo(struct G__friendtag *pin=0): pfriendtag(__null), cls() { Init(pin); } G__FriendInfo(const G__FriendInfo& x): pfriendtag(x.pfriendtag), cls(x.cls) { Init(x.pfriendtag); } G__FriendInfo& operator=(const G__FriendInfo& x) { Init(x.pfriendtag); return *this; } void Init(struct G__friendtag* pin) { pfriendtag = pin; if(pfriendtag) cls.Init(pfriendtag->tagnum); else cls.Init(-1); } G__ClassInfo* FriendOf() { return(&cls); } int Next() { if(pfriendtag) { pfriendtag=pfriendtag->next; Init(pfriendtag); return(IsValid()); } else { return(0); } } int IsValid() { if(pfriendtag) return(1); else return(0); } private: G__friendtag *pfriendtag; G__ClassInfo cls; }; } using namespace Cint; # 39 "include/Api.h" 2 # 1 "include/BaseCls.h" 1 # 24 "include/BaseCls.h" namespace Cint { class G__BaseClassInfo : public G__ClassInfo { public: ~G__BaseClassInfo() {} G__BaseClassInfo(G__ClassInfo &a); void Init(G__ClassInfo &a); long Offset() ; long Property(); int IsValid(); int Next(); int Next(int onlydirect); int Prev(); int Prev(int onlydirect); private: long basep; long derivedtagnum; }; } using namespace Cint; # 40 "include/Api.h" 2 # 1 "include/Type.h" 1 # 21 "include/Type.h" namespace Cint { class G__TypeInfo : public G__ClassInfo { friend class G__DataMemberInfo; friend class G__MethodInfo; friend class G__MethodArgInfo; public: ~G__TypeInfo(); G__TypeInfo(const char* typenamein); G__TypeInfo(); void Init(const char* typenamein); G__TypeInfo(G__value); void Init(G__value&); void Init(struct G__var_array*, int); G__TypeInfo(const G__TypeInfo&); G__TypeInfo& operator=(const G__TypeInfo&); int operator==(const G__TypeInfo&); int operator!=(const G__TypeInfo&); const char* Name(); const char* TrueName(); int Size() const; long Property(); int IsValid(); void* New(); int Typenum() const; int Type() const; int Reftype() const; int Isconst() const; G__value Value() const; protected: long type; long typenum; long reftype; long isconst; private: int Next(); }; } using namespace Cint; # 41 "include/Api.h" 2 # 1 "include/Method.h" 1 # 22 "include/Method.h" namespace Cint { class G__MethodInfo { friend class G__MethodArgInfo; public: ~G__MethodInfo() {} G__MethodInfo() : handle(0), index(0), usingIndex(0), belongingclass(__null), type() { Init(); } G__MethodInfo(G__ClassInfo &a) : handle(0), index(0), usingIndex(0), belongingclass(__null), type() { Init(a); } G__MethodInfo(const G__MethodInfo& mi) : handle(mi.handle), index(mi.index), usingIndex(mi.usingIndex), belongingclass(mi.belongingclass), type(mi.type) {} G__MethodInfo& operator=(const G__MethodInfo& mi) { handle=mi.handle; index=mi.index; usingIndex=mi.usingIndex; belongingclass=mi.belongingclass; type=mi.type; return *this;} void Init(); void Init(G__ClassInfo &a); void Init(long handlein,long indexin,G__ClassInfo *belongingclassin); void Init(G__ClassInfo *belongingclassin,long funcpage,long indexin); const char *Name() ; int Hash() ; struct G__ifunc_table* ifunc(); long Handle() { return(handle); } int Index() { return ((int)index); } const char *Title() ; G__TypeInfo* Type() { return(&type); } long Property(); int NArg(); int NDefaultArg(); int HasVarArgs(); G__InterfaceMethod InterfaceMethod(); struct G__bytecodefunc *GetBytecode(); G__DataMemberInfo GetLocalVariable(); void* PointerToFunc(); G__ClassInfo* MemberOf() { return(belongingclass); } int GetDefiningScopeTagnum(); struct G__friendtag* GetFriendInfo(); void SetGlobalcomp(int globalcomp); int IsValid(); int SetFilePos(const char* fname); int Next(); const char *FileName(); int LineNumber(); int Size(); int IsBusy(); FILE* FilePointer(); long FilePosition(); char* GetPrototype(); char* GetMangledName(); int LoadDLLDirect(const char* filename,const char* funcname); void SetVtblIndex(int vtblindex); void SetIsVirtual(int isvirtual); void SetVtblBasetagnum(int basetagnum); void SetUserParam(void*); void *GetUserParam(); long GetThisPointerOffset(); protected: long handle; long index; long usingIndex; G__ClassInfo* belongingclass; G__TypeInfo type; }; } using namespace Cint; # 42 "include/Api.h" 2 # 1 "include/MethodAr.h" 1 # 22 "include/MethodAr.h" namespace Cint { class G__MethodArgInfo { public: ~G__MethodArgInfo() {} void Init(class G__MethodInfo &a); G__MethodArgInfo(class G__MethodInfo &a) : argn(0), belongingmethod(__null), type() { Init(a); } G__MethodArgInfo(const G__MethodArgInfo& mai) : argn(mai.argn), belongingmethod(mai.belongingmethod), type(mai.type) { } G__MethodArgInfo& operator=(const G__MethodArgInfo& mai) { argn=mai.argn; belongingmethod=mai.belongingmethod; type=mai.type; return *this;} const char *Name(); G__TypeInfo* Type() { return(&type); } long Property(); char *DefaultValue(); G__MethodInfo* ArgOf() { return(belongingmethod); } int IsValid(); int Next(); private: long argn; G__MethodInfo *belongingmethod; G__TypeInfo type; public: G__MethodArgInfo(): argn(0), belongingmethod(__null), type() {} }; } using namespace Cint; # 43 "include/Api.h" 2 # 1 "include/DataMbr.h" 1 # 22 "include/DataMbr.h" namespace Cint { class G__DataMemberInfo { public: ~G__DataMemberInfo() {} G__DataMemberInfo(): handle(0), index(0), belongingclass(__null), type() { Init(); } G__DataMemberInfo(const G__DataMemberInfo& dmi): handle(dmi.handle), index(dmi.index), belongingclass(dmi.belongingclass), type(dmi.type) {} G__DataMemberInfo(class G__ClassInfo &a): handle(0), index(0), belongingclass(__null), type() { Init(a); } G__DataMemberInfo& operator=(const G__DataMemberInfo& dmi) { handle=dmi.handle; index=dmi.index; belongingclass=dmi.belongingclass; type=dmi.type; return *this;} void Init(); void Init(class G__ClassInfo &a); void Init(long handlinin,long indexin,G__ClassInfo *belongingclassin); long Handle() { return(handle); } int Index() { return ((int)index); } const char *Name() ; const char *Title() ; G__TypeInfo* Type() { return(&type); } long Property(); long Offset() ; int Bitfield(); int ArrayDim() ; int MaxIndex(int dim) ; G__ClassInfo* MemberOf() { return(belongingclass); } void SetGlobalcomp(int globalcomp); int IsValid(); int SetFilePos(const char* fname); int Next(); int Prev(); enum error_code { VALID, NOT_INT, NOT_DEF, IS_PRIVATE, UNKNOWN }; const char *ValidArrayIndex(int *errnum = 0, char **errstr = 0); const char *FileName(); int LineNumber(); private: long handle; long index; G__ClassInfo *belongingclass; G__TypeInfo type; }; } using namespace Cint; # 44 "include/Api.h" 2 # 1 "include/CallFunc.h" 1 # 23 "include/CallFunc.h" namespace Cint { class G__CallFunc { public: ~G__CallFunc() {} G__CallFunc() ; G__CallFunc(const G__CallFunc& cf) :pfunc(cf.pfunc), result(cf.result), bytecode(cf.bytecode), method(cf.method), para(cf.para) {} G__CallFunc& operator=(const G__CallFunc& cf) { pfunc=cf.pfunc; result=cf.result; bytecode=cf.bytecode; method=cf.method; para=cf.para; return *this;} void Init() ; enum MatchMode { ExactMatch=0, ConversionMatch=1 }; void SetFunc(G__ClassInfo* cls,const char* fname,const char* args ,long* poffset,MatchMode mode=ConversionMatch); void SetFuncProto(G__ClassInfo* cls,const char* fname,const char* argtype,long* poffset); void SetFunc(G__InterfaceMethod f); void SetFunc(G__MethodInfo m); void SetBytecode(struct G__bytecodefunc* bc); int IsValid() { return(method.IsValid());} void SetArgArray(long *p,int narg= -1); void ResetArg() { para.paran=0; } void SetArg(long l) ; void SetArg(unsigned long ul) ; void SetArg(double d) ; void SetArgRef(long& l) ; void SetArgRef(double& d) ; void SetArg( G__value ); void SetArg(G__int64 ll); void SetArg(G__uint64 ull); void SetArg(long double ld); void SetArgRef(G__int64& ll); void SetArgRef(G__uint64& ull); void SetArgRef(long double& ld); G__value Execute(void *pobject ); void Exec(void *pobject) { Execute(pobject); } long ExecInt(void *pobject) { return G__int(Execute(pobject)); } double ExecDouble(void *pobject) { return G__double(Execute(pobject)); } G__int64 ExecInt64(void *pobject) { return G__Longlong(Execute(pobject)); } G__InterfaceMethod InterfaceMethod() { return pfunc; } void SetArgs(const char* args); G__MethodInfo GetMethodInfo() { return method; } private: void SetFuncType(); G__InterfaceMethod pfunc; G__value result; struct G__bytecodefunc *bytecode; G__MethodInfo method; struct G__param para; int ExecInterpretedFunc(G__value* presult); }; } using namespace Cint; # 45 "include/Api.h" 2 # 1 "include/Typedf.h" 1 # 23 "include/Typedf.h" namespace Cint { class G__TypedefInfo : public G__TypeInfo { public: ~G__TypedefInfo() {} G__TypedefInfo() { Init(); } void Init(); G__TypedefInfo(const char *typenamein) { Init(typenamein); } void Init(const char *typenamein); G__TypedefInfo(int typenumin) { Init(typenumin); } void Init(int typenumin); G__ClassInfo EnclosingClassOfTypedef(); const char *Title() ; void SetGlobalcomp(int globalcomp); int IsValid(); int SetFilePos(const char* fname); int Next(); const char *FileName(); int LineNumber(); }; } using namespace Cint; # 46 "include/Api.h" 2 # 1 "include/Token.h" 1 # 23 "include/Token.h" namespace Cint { class G__ClassInfo; class G__MethodInfo; class G__TokenInfo { public: enum G__TokenType { t_invalid , t_class , t_typedef, t_fundamental , t_enum , t_memberfunc, t_globalfunc , t_datamember, t_local, t_global, t_enumelement }; enum G__TokenProperty {p_invalid , p_type , p_data, p_func}; ~G__TokenInfo() {} G__TokenInfo() : tokentype(t_invalid), tokenproperty(p_invalid), methodscope(), bytecode(__null), localvar(__null), glob(), nextscope(), tinfo() { Init(); } G__TokenInfo(const G__TokenInfo& tki); G__TokenInfo& operator=(const G__TokenInfo& tki); void Init(); G__MethodInfo MakeLocalTable(G__ClassInfo& tag_scope ,const char* fname,const char* paramtype); int Query(G__ClassInfo& tag_scope,G__MethodInfo& func_scope ,const char* preopr,const char* name,const char* postopr); enum G__TokenType GetTokenType() { return(tokentype); } enum G__TokenProperty GetTokenProperty() { return(tokenproperty); } G__ClassInfo GetNextScope() { return(nextscope); } private: enum G__TokenType tokentype; enum G__TokenProperty tokenproperty; G__MethodInfo methodscope; struct G__bytecodefunc *bytecode; struct G__var_array *localvar; G__ClassInfo glob; G__ClassInfo nextscope; G__TypeInfo tinfo; int SearchTypeName(const char* name,const char* postopr); int SearchLocalVariable(const char* name,G__MethodInfo& func_scope ,const char* postopr); int SearchDataMember(const char* name,G__ClassInfo& tag_scope ,const char* postopr); int SearchGlobalVariable(const char* name,const char* postopr); int SearchMemberFunction(const char* name,G__ClassInfo& tag_scope); int SearchGlobalFunction(const char* name); void GetNextscope(const char* name,G__ClassInfo& tag_scope); }; } # 128 "include/Token.h" using namespace Cint; # 47 "include/Api.h" 2 struct G__includepath; namespace Cint { # 70 "include/Api.h" typedef void *(*G__pMethodSpecialObject)(char *item,G__ClassInfo *typeinfo ,void** pptr,void** ppdict); void G__InitGetSpecialObject(G__pMethodSpecialObject pmethod); typedef void (*G__pMethodSpecialValue)(char *item,G__TypeInfo *typeinfo ,long *pl,double *pd,void** pptr ,void** ppdict); void G__InitGetSpecialValue(G__pMethodSpecialValue pmethod); int G__SetGlobalcomp(char *funcname,char *param,int globalcomp); int G__ForceBytecodecompilation(char *funcname,char *param); typedef void (*G__pMethodUpdateClassInfo)(char *item,long tagnum); void G__InitUpdateClassInfo(G__pMethodUpdateClassInfo pmethod); void* G__new_interpreted_object(int size); void G__delete_interpreted_object(void* p); class G__SourceFileInfo { public: G__SourceFileInfo(): filen(0) { Init(); } G__SourceFileInfo(int filenin): filen(filenin) { } G__SourceFileInfo(const char* fname): filen(0) { Init(fname); } ~G__SourceFileInfo() { } void Init() { filen = -1; } void Init(const char* fname); const char *Name(); const char *Prepname(); FILE* fp(); int MaxLine(); G__SourceFileInfo& IncludedFrom(); long Property(); int IsValid(); int Next(); private: int filen; }; class G__IncludePathInfo { public: G__IncludePathInfo(): p(__null) { Init(); } G__IncludePathInfo(const G__IncludePathInfo& ipf): p(ipf.p) {} ~G__IncludePathInfo() { } void Init() { p=(struct G__includepath*)__null; } const char *Name(); long Property(); int IsValid(); int Next(); private: G__IncludePathInfo& operator=(const G__IncludePathInfo&); struct G__includepath *p; }; # 187 "include/Api.h" unsigned long G__long_random(unsigned long limit); } using namespace Cint; # 30 "meta/src/TClass.cxx" 2 # 1 "include/Riostream.h" 1 # 31 "include/Riostream.h" # 1 "/usr/include/g++/fstream" 1 3 # 43 "/usr/include/g++/fstream" 3 # 44 "/usr/include/g++/fstream" 3 # 1 "/usr/include/g++/istream" 1 3 # 42 "/usr/include/g++/istream" 3 # 43 "/usr/include/g++/istream" 3 # 1 "/usr/include/g++/ios" 1 3 # 42 "/usr/include/g++/ios" 3 # 43 "/usr/include/g++/ios" 3 # 1 "/usr/include/g++/bits/localefwd.h" 1 3 # 43 "/usr/include/g++/bits/localefwd.h" 3 # 44 "/usr/include/g++/bits/localefwd.h" 3 # 1 "/usr/include/g++/bits/functexcept.h" 1 3 # 34 "/usr/include/g++/bits/functexcept.h" 3 # 1 "/usr/include/g++/exception_defines.h" 1 3 # 35 "/usr/include/g++/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); } # 49 "/usr/include/g++/bits/localefwd.h" 2 3 namespace std { class locale; template __inline__ bool isspace(_CharT, const locale&); template __inline__ bool isprint(_CharT, const locale&); template __inline__ bool iscntrl(_CharT, const locale&); template __inline__ bool isupper(_CharT, const locale&); template __inline__ bool islower(_CharT, const locale&); template __inline__ bool isalpha(_CharT, const locale&); template __inline__ bool isdigit(_CharT, const locale&); template __inline__ bool ispunct(_CharT, const locale&); template __inline__ bool isxdigit(_CharT, const locale&); template __inline__ bool isalnum(_CharT, const locale&); template __inline__ bool isgraph(_CharT, const locale&); template __inline__ _CharT toupper(_CharT, const locale&); template __inline__ _CharT tolower(_CharT, const locale&); class ctype_base; template class ctype; template<> class ctype; template<> class ctype; template class ctype_byname; class codecvt_base; class __enc_traits; template class codecvt; template<> class codecvt; template<> class codecvt; template class codecvt_byname; template > class num_get; template > class num_put; template class numpunct; template class numpunct_byname; template class collate; template class collate_byname; class time_base; template > class time_get; template > class time_get_byname; template > class time_put; template > class time_put_byname; class money_base; template > class money_get; template > class money_put; template class moneypunct; template class moneypunct_byname; class messages_base; template class messages; template class messages_byname; template const _Facet& use_facet(const locale& __loc); template bool has_facet(const locale& __loc) throw(); } # 49 "/usr/include/g++/ios" 2 3 # 1 "/usr/include/g++/bits/ios_base.h" 1 3 # 43 "/usr/include/g++/bits/ios_base.h" 3 # 44 "/usr/include/g++/bits/ios_base.h" 3 # 1 "/usr/include/g++/bits/locale_classes.h" 1 3 # 43 "/usr/include/g++/bits/locale_classes.h" 3 # 44 "/usr/include/g++/bits/locale_classes.h" 3 namespace std { class __locale_cache_base; template class __locale_cache; class locale { public: typedef unsigned int category; class facet; class id; class _Impl; friend class facet; friend class _Impl; template friend const _Facet& use_facet(const locale&); template friend bool has_facet(const locale&) throw(); template friend const __locale_cache<_Facet>& __use_cache(const locale&); static const category none = 0; static const category ctype = 1L << 0; static const category numeric = 1L << 1; static const category collate = 1L << 2; static const category time = 1L << 3; static const category monetary = 1L << 4; static const category messages = 1L << 5; static const category all = (ctype | numeric | collate | time | monetary | messages); locale() throw(); locale(const locale& __other) throw(); explicit locale(const char* __s); locale(const locale& __base, const char* __s, category __cat); locale(const locale& __base, const locale& __add, category __cat); template locale(const locale& __other, _Facet* __f); ~locale() throw(); const locale& operator=(const locale& __other) throw(); template locale combine(const locale& __other) const; string name() const; bool operator==(const locale& __other) const throw (); __inline__ bool operator!=(const locale& __other) const throw () { return !(this->operator==(__other)); } template bool operator()(const basic_string<_Char, _Traits, _Alloc>& __s1, const basic_string<_Char, _Traits, _Alloc>& __s2) const; static locale global(const locale&); static const locale& classic(); private: _Impl* _M_impl; static _Impl* _S_classic; static _Impl* _S_global; static const size_t _S_categories_size = 6; static const size_t _S_extra_categories_size = 6; static const char* _S_categories[_S_categories_size + _S_extra_categories_size]; explicit locale(_Impl*) throw(); static __inline__ void _S_initialize() { if (!_S_classic) classic(); } static category _S_normalize_category(category); void _M_coalesce(const locale& __base, const locale& __add, category __cat); }; class locale::_Impl { public: friend class locale; friend class locale::facet; template friend const _Facet& use_facet(const locale&); template friend bool has_facet(const locale&) throw(); template friend const __locale_cache<_Facet>& __use_cache(const locale&); private: _Atomic_word _M_references; facet** _M_facets; size_t _M_facets_size; char* _M_names[_S_categories_size + _S_extra_categories_size]; static const locale::id* const _S_id_ctype[]; static const locale::id* const _S_id_numeric[]; static const locale::id* const _S_id_collate[]; static const locale::id* const _S_id_time[]; static const locale::id* const _S_id_monetary[]; static const locale::id* const _S_id_messages[]; static const locale::id* const* const _S_facet_categories[]; __inline__ void _M_add_reference() throw() { __atomic_add(&_M_references, 1); } __inline__ void _M_remove_reference() throw() { if (__exchange_and_add(&_M_references, -1) == 1) { try { delete this; } catch(...) { } } } _Impl(const _Impl&, size_t); _Impl(const char*, size_t); _Impl(facet**, size_t, bool); ~_Impl() throw(); _Impl(const _Impl&); void operator=(const _Impl&); __inline__ bool _M_check_same_name() { bool __ret = true; for (size_t __i = 0; __ret && __i < _S_categories_size + _S_extra_categories_size - 1; ++__i) __ret = strcmp(_M_names[__i], _M_names[__i + 1]) == 0; return __ret; } void _M_replace_categories(const _Impl*, category); void _M_replace_category(const _Impl*, const locale::id* const*); void _M_replace_facet(const _Impl*, const locale::id*); void _M_install_facet(const locale::id*, facet*); template __inline__ void _M_init_facet(_Facet* __facet) { _M_install_facet(&_Facet::id, __facet); } __inline__ __locale_cache_base* _M_get_cache(size_t __index) { return (__locale_cache_base*)_M_facets[__index + _M_facets_size]; } void _M_install_cache(__locale_cache_base* __cache, int __id) { _M_facets[__id + _M_facets_size] = reinterpret_cast(__cache); } }; template locale::locale(const locale& __other, _Facet* __f) { _M_impl = new _Impl(*__other._M_impl, 1); char* _M_tmp_names[_S_categories_size + _S_extra_categories_size]; size_t __i = 0; try { for (; __i < _S_categories_size + _S_extra_categories_size; ++__i) { _M_tmp_names[__i] = new char[2]; strcpy(_M_tmp_names[__i], "*"); } _M_impl->_M_install_facet(&_Facet::id, __f); } catch(...) { _M_impl->_M_remove_reference(); for (size_t __j = 0; __j < __i; ++__j) delete [] _M_tmp_names[__j]; throw; } for (size_t __k = 0; __k < _S_categories_size + _S_extra_categories_size; ++__k) { delete [] _M_impl->_M_names[__k]; _M_impl->_M_names[__k] = _M_tmp_names[__k]; } } class locale::facet { private: friend class locale; friend class locale::_Impl; _Atomic_word _M_references; protected: static __c_locale _S_c_locale; static char _S_c_name[2]; explicit facet(size_t __refs = 0) throw(); virtual ~facet(); static void _S_create_c_locale(__c_locale& __cloc, const char* __s, __c_locale __old = 0); static __c_locale _S_clone_c_locale(__c_locale& __cloc); static void _S_destroy_c_locale(__c_locale& __cloc); private: void _M_add_reference() throw(); void _M_remove_reference() throw(); facet(const facet&); void operator=(const facet&); }; class locale::id { private: friend class locale; friend class locale::_Impl; template friend const _Facet& use_facet(const locale&); template friend bool has_facet(const locale&) throw (); mutable size_t _M_index; static _Atomic_word _S_highwater; void operator=(const id&); id(const id&); public: id(); __inline__ size_t _M_id() const { if (!_M_index) _M_index = 1 + __exchange_and_add(&_S_highwater, 1); return _M_index - 1; } }; } # 48 "/usr/include/g++/bits/ios_base.h" 2 3 namespace std { enum _Ios_Fmtflags { _M_ios_fmtflags_end = 1L << 16 }; __inline__ _Ios_Fmtflags operator&(_Ios_Fmtflags __a, _Ios_Fmtflags __b) { return _Ios_Fmtflags(static_cast(__a) & static_cast(__b)); } __inline__ _Ios_Fmtflags operator|(_Ios_Fmtflags __a, _Ios_Fmtflags __b) { return _Ios_Fmtflags(static_cast(__a) | static_cast(__b)); } __inline__ _Ios_Fmtflags operator^(_Ios_Fmtflags __a, _Ios_Fmtflags __b) { return _Ios_Fmtflags(static_cast(__a) ^ static_cast(__b)); } __inline__ _Ios_Fmtflags operator|=(_Ios_Fmtflags& __a, _Ios_Fmtflags __b) { return __a = __a | __b; } __inline__ _Ios_Fmtflags operator&=(_Ios_Fmtflags& __a, _Ios_Fmtflags __b) { return __a = __a & __b; } __inline__ _Ios_Fmtflags operator^=(_Ios_Fmtflags& __a, _Ios_Fmtflags __b) { return __a = __a ^ __b; } __inline__ _Ios_Fmtflags operator~(_Ios_Fmtflags __a) { return _Ios_Fmtflags(~static_cast(__a)); } enum _Ios_Openmode { _M_ios_openmode_end = 1L << 16 }; __inline__ _Ios_Openmode operator&(_Ios_Openmode __a, _Ios_Openmode __b) { return _Ios_Openmode(static_cast(__a) & static_cast(__b)); } __inline__ _Ios_Openmode operator|(_Ios_Openmode __a, _Ios_Openmode __b) { return _Ios_Openmode(static_cast(__a) | static_cast(__b)); } __inline__ _Ios_Openmode operator^(_Ios_Openmode __a, _Ios_Openmode __b) { return _Ios_Openmode(static_cast(__a) ^ static_cast(__b)); } __inline__ _Ios_Openmode operator|=(_Ios_Openmode& __a, _Ios_Openmode __b) { return __a = __a | __b; } __inline__ _Ios_Openmode operator&=(_Ios_Openmode& __a, _Ios_Openmode __b) { return __a = __a & __b; } __inline__ _Ios_Openmode operator^=(_Ios_Openmode& __a, _Ios_Openmode __b) { return __a = __a ^ __b; } __inline__ _Ios_Openmode operator~(_Ios_Openmode __a) { return _Ios_Openmode(~static_cast(__a)); } enum _Ios_Iostate { _M_ios_iostate_end = 1L << 16 }; __inline__ _Ios_Iostate operator&(_Ios_Iostate __a, _Ios_Iostate __b) { return _Ios_Iostate(static_cast(__a) & static_cast(__b)); } __inline__ _Ios_Iostate operator|(_Ios_Iostate __a, _Ios_Iostate __b) { return _Ios_Iostate(static_cast(__a) | static_cast(__b)); } __inline__ _Ios_Iostate operator^(_Ios_Iostate __a, _Ios_Iostate __b) { return _Ios_Iostate(static_cast(__a) ^ static_cast(__b)); } __inline__ _Ios_Iostate operator|=(_Ios_Iostate& __a, _Ios_Iostate __b) { return __a = __a | __b; } __inline__ _Ios_Iostate operator&=(_Ios_Iostate& __a, _Ios_Iostate __b) { return __a = __a & __b; } __inline__ _Ios_Iostate operator^=(_Ios_Iostate& __a, _Ios_Iostate __b) { return __a = __a ^ __b; } __inline__ _Ios_Iostate operator~(_Ios_Iostate __a) { return _Ios_Iostate(~static_cast(__a)); } enum _Ios_Seekdir { _M_ios_seekdir_end = 1L << 16 }; # 158 "/usr/include/g++/bits/ios_base.h" 3 class ios_base { public: class failure : public exception { public: explicit failure(const string& __str) throw(); virtual ~failure() throw(); virtual const char* what() const throw(); private: enum { _M_bufsize = 256 }; char _M_name[_M_bufsize]; }; # 212 "/usr/include/g++/bits/ios_base.h" 3 typedef _Ios_Fmtflags fmtflags; static const fmtflags boolalpha = fmtflags(__ios_flags::_S_boolalpha); static const fmtflags dec = fmtflags(__ios_flags::_S_dec); static const fmtflags fixed = fmtflags(__ios_flags::_S_fixed); static const fmtflags hex = fmtflags(__ios_flags::_S_hex); static const fmtflags internal = fmtflags(__ios_flags::_S_internal); static const fmtflags left = fmtflags(__ios_flags::_S_left); static const fmtflags oct = fmtflags(__ios_flags::_S_oct); static const fmtflags right = fmtflags(__ios_flags::_S_right); static const fmtflags scientific = fmtflags(__ios_flags::_S_scientific); static const fmtflags showbase = fmtflags(__ios_flags::_S_showbase); static const fmtflags showpoint = fmtflags(__ios_flags::_S_showpoint); static const fmtflags showpos = fmtflags(__ios_flags::_S_showpos); static const fmtflags skipws = fmtflags(__ios_flags::_S_skipws); static const fmtflags unitbuf = fmtflags(__ios_flags::_S_unitbuf); static const fmtflags uppercase = fmtflags(__ios_flags::_S_uppercase); static const fmtflags adjustfield = fmtflags(__ios_flags::_S_adjustfield); static const fmtflags basefield = fmtflags(__ios_flags::_S_basefield); static const fmtflags floatfield = fmtflags(__ios_flags::_S_floatfield); # 269 "/usr/include/g++/bits/ios_base.h" 3 typedef _Ios_Iostate iostate; static const iostate badbit = iostate(__ios_flags::_S_badbit); static const iostate eofbit = iostate(__ios_flags::_S_eofbit); static const iostate failbit = iostate(__ios_flags::_S_failbit); static const iostate goodbit = iostate(0); # 296 "/usr/include/g++/bits/ios_base.h" 3 typedef _Ios_Openmode openmode; static const openmode app = openmode(__ios_flags::_S_app); static const openmode ate = openmode(__ios_flags::_S_ate); static const openmode binary = openmode(__ios_flags::_S_bin); static const openmode in = openmode(__ios_flags::_S_in); static const openmode out = openmode(__ios_flags::_S_out); static const openmode trunc = openmode(__ios_flags::_S_trunc); # 323 "/usr/include/g++/bits/ios_base.h" 3 typedef _Ios_Seekdir seekdir; static const seekdir beg = seekdir(0); static const seekdir cur = seekdir(1); static const seekdir end = seekdir(2); # 345 "/usr/include/g++/bits/ios_base.h" 3 enum event { erase_event, imbue_event, copyfmt_event }; typedef void (*event_callback) (event, ios_base&, int); void register_callback(event_callback __fn, int __index); protected: streamsize _M_precision; streamsize _M_width; fmtflags _M_flags; iostate _M_exception; iostate _M_streambuf_state; struct _Callback_list { _Callback_list* _M_next; ios_base::event_callback _M_fn; int _M_index; _Atomic_word _M_refcount; _Callback_list(ios_base::event_callback __fn, int __index, _Callback_list* __cb) : _M_next(__cb), _M_fn(__fn), _M_index(__index), _M_refcount(0) { } void _M_add_reference() { __atomic_add(&_M_refcount, 1); } int _M_remove_reference() { return __exchange_and_add(&_M_refcount, -1); } }; _Callback_list* _M_callbacks; void _M_call_callbacks(event __ev) throw(); void _M_dispose_callbacks(void); struct _Words { void* _M_pword; long _M_iword; _Words() : _M_pword(0), _M_iword(0) { } }; _Words _M_word_zero; static const int _S_local_word_size = 8; _Words _M_local_word[_S_local_word_size]; int _M_word_size; _Words* _M_word; _Words& _M_grow_words(int __index); locale _M_ios_locale; void _M_init(); public: class Init { friend class ios_base; public: Init(); ~Init(); static void _S_ios_create(bool __sync); static void _S_ios_destroy(); static bool _S_initialized() { return _S_ios_base_init; } private: static int _S_ios_base_init; static bool _S_synced_with_stdio; }; __inline__ fmtflags flags() const { return _M_flags; } # 481 "/usr/include/g++/bits/ios_base.h" 3 __inline__ fmtflags flags(fmtflags __fmtfl) { fmtflags __old = _M_flags; _M_flags = __fmtfl; return __old; } # 497 "/usr/include/g++/bits/ios_base.h" 3 __inline__ fmtflags setf(fmtflags __fmtfl) { fmtflags __old = _M_flags; _M_flags |= __fmtfl; return __old; } # 514 "/usr/include/g++/bits/ios_base.h" 3 __inline__ fmtflags setf(fmtflags __fmtfl, fmtflags __mask) { fmtflags __old = _M_flags; _M_flags &= ~__mask; _M_flags |= (__fmtfl & __mask); return __old; } __inline__ void unsetf(fmtflags __mask) { _M_flags &= ~__mask; } # 541 "/usr/include/g++/bits/ios_base.h" 3 __inline__ streamsize precision() const { return _M_precision; } __inline__ streamsize precision(streamsize __prec) { streamsize __old = _M_precision; _M_precision = __prec; return __old; } __inline__ streamsize width() const { return _M_width; } __inline__ streamsize width(streamsize __wide) { streamsize __old = _M_width; _M_width = __wide; return __old; } # 590 "/usr/include/g++/bits/ios_base.h" 3 static bool sync_with_stdio(bool __sync = true); # 602 "/usr/include/g++/bits/ios_base.h" 3 locale imbue(const locale& __loc); # 613 "/usr/include/g++/bits/ios_base.h" 3 __inline__ locale getloc() const { return _M_ios_locale; } # 623 "/usr/include/g++/bits/ios_base.h" 3 __inline__ const locale& _M_getloc() const { return _M_ios_locale; } static int xalloc() throw(); __inline__ long& iword(int __ix) { _Words& __word = (__ix < _M_word_size) ? _M_word[__ix] : _M_grow_words(__ix); return __word._M_iword; } __inline__ void*& pword(int __ix) { _Words& __word = (__ix < _M_word_size) ? _M_word[__ix] : _M_grow_words(__ix); return __word._M_pword; } ~ios_base(); protected: ios_base(); private: ios_base(const ios_base&); ios_base& operator=(const ios_base&); }; __inline__ ios_base& boolalpha(ios_base& __base) { __base.setf(ios_base::boolalpha); return __base; } __inline__ ios_base& noboolalpha(ios_base& __base) { __base.unsetf(ios_base::boolalpha); return __base; } __inline__ ios_base& showbase(ios_base& __base) { __base.setf(ios_base::showbase); return __base; } __inline__ ios_base& noshowbase(ios_base& __base) { __base.unsetf(ios_base::showbase); return __base; } __inline__ ios_base& showpoint(ios_base& __base) { __base.setf(ios_base::showpoint); return __base; } __inline__ ios_base& noshowpoint(ios_base& __base) { __base.unsetf(ios_base::showpoint); return __base; } __inline__ ios_base& showpos(ios_base& __base) { __base.setf(ios_base::showpos); return __base; } __inline__ ios_base& noshowpos(ios_base& __base) { __base.unsetf(ios_base::showpos); return __base; } __inline__ ios_base& skipws(ios_base& __base) { __base.setf(ios_base::skipws); return __base; } __inline__ ios_base& noskipws(ios_base& __base) { __base.unsetf(ios_base::skipws); return __base; } __inline__ ios_base& uppercase(ios_base& __base) { __base.setf(ios_base::uppercase); return __base; } __inline__ ios_base& nouppercase(ios_base& __base) { __base.unsetf(ios_base::uppercase); return __base; } __inline__ ios_base& unitbuf(ios_base& __base) { __base.setf(ios_base::unitbuf); return __base; } __inline__ ios_base& nounitbuf(ios_base& __base) { __base.unsetf(ios_base::unitbuf); return __base; } __inline__ ios_base& internal(ios_base& __base) { __base.setf(ios_base::internal, ios_base::adjustfield); return __base; } __inline__ ios_base& left(ios_base& __base) { __base.setf(ios_base::left, ios_base::adjustfield); return __base; } __inline__ ios_base& right(ios_base& __base) { __base.setf(ios_base::right, ios_base::adjustfield); return __base; } __inline__ ios_base& dec(ios_base& __base) { __base.setf(ios_base::dec, ios_base::basefield); return __base; } __inline__ ios_base& hex(ios_base& __base) { __base.setf(ios_base::hex, ios_base::basefield); return __base; } __inline__ ios_base& oct(ios_base& __base) { __base.setf(ios_base::oct, ios_base::basefield); return __base; } __inline__ ios_base& fixed(ios_base& __base) { __base.setf(ios_base::fixed, ios_base::floatfield); return __base; } __inline__ ios_base& scientific(ios_base& __base) { __base.setf(ios_base::scientific, ios_base::floatfield); return __base; } } # 50 "/usr/include/g++/ios" 2 3 # 1 "/usr/include/g++/streambuf" 1 3 # 43 "/usr/include/g++/streambuf" 3 # 44 "/usr/include/g++/streambuf" 3 namespace std { template streamsize __copy_streambufs(basic_ios<_CharT, _Traits>& _ios, basic_streambuf<_CharT, _Traits>* __sbin, basic_streambuf<_CharT, _Traits>* __sbout); # 124 "/usr/include/g++/streambuf" 3 template class basic_streambuf { public: typedef _CharT char_type; typedef _Traits traits_type; typedef typename traits_type::int_type int_type; typedef typename traits_type::pos_type pos_type; typedef typename traits_type::off_type off_type; # 147 "/usr/include/g++/streambuf" 3 typedef ctype __ctype_type; typedef basic_streambuf __streambuf_type; typedef typename traits_type::state_type __state_type; friend class basic_ios; friend class basic_istream; friend class basic_ostream; friend class istreambuf_iterator; friend class ostreambuf_iterator; friend streamsize __copy_streambufs<>(basic_ios& __ios, __streambuf_type* __sbin,__streambuf_type* __sbout); protected: # 171 "/usr/include/g++/streambuf" 3 char_type* _M_buf; size_t _M_buf_size; size_t _M_buf_size_opt; bool _M_buf_unified; # 205 "/usr/include/g++/streambuf" 3 char_type* _M_in_beg; char_type* _M_in_cur; char_type* _M_in_end; char_type* _M_out_beg; char_type* _M_out_cur; char_type* _M_out_end; ios_base::openmode _M_mode; locale _M_buf_locale; bool _M_buf_locale_init; # 245 "/usr/include/g++/streambuf" 3 static const size_t _S_pback_size = 1; char_type _M_pback[_S_pback_size]; char_type* _M_pback_cur_save; char_type* _M_pback_end_save; bool _M_pback_init; fpos<__state_type> _M_pos; void _M_pback_create() { if (!_M_pback_init) { size_t __dist = _M_in_end - _M_in_cur; size_t __len = min(_S_pback_size, __dist); traits_type::copy(_M_pback, _M_in_cur, __len); _M_pback_cur_save = _M_in_cur; _M_pback_end_save = _M_in_end; this->setg(_M_pback, _M_pback, _M_pback + __len); _M_pback_init = true; } } void _M_pback_destroy() throw() { if (_M_pback_init) { size_t __off_cur = _M_in_cur - _M_pback; size_t __off_end = 0; size_t __pback_len = _M_in_end - _M_pback; size_t __save_len = _M_pback_end_save - _M_buf; if (__pback_len > __save_len) __off_end = __pback_len - __save_len; this->setg(_M_buf, _M_pback_cur_save + __off_cur, _M_pback_end_save + __off_end); _M_pback_cur_save = __null; _M_pback_end_save = __null; _M_pback_init = false; } } void _M_in_cur_move(off_type __n) { bool __testout = _M_out_cur; _M_in_cur += __n; if (__testout && _M_buf_unified) _M_out_cur += __n; } # 322 "/usr/include/g++/streambuf" 3 void _M_out_cur_move(off_type __n) { bool __testin = _M_in_cur; _M_out_cur += __n; if (__testin && _M_buf_unified) _M_in_cur += __n; if (_M_out_cur > _M_out_end) { _M_out_end = _M_out_cur; if (__testin) _M_in_end += __n; } } off_type _M_out_buf_size() { off_type __ret = 0; if (_M_out_cur) { if (_M_out_beg == _M_buf) __ret = _M_out_beg + _M_buf_size - _M_out_cur; else __ret = _M_out_end - _M_out_cur; } return __ret; } public: virtual ~basic_streambuf() { _M_buf_unified = false; _M_buf_size = 0; _M_buf_size_opt = 0; _M_mode = ios_base::openmode(0); } # 377 "/usr/include/g++/streambuf" 3 locale pubimbue(const locale &__loc) { locale __tmp(this->getloc()); this->imbue(__loc); _M_buf_locale = __loc; return __tmp; } # 394 "/usr/include/g++/streambuf" 3 locale getloc() const { return _M_buf_locale; } # 407 "/usr/include/g++/streambuf" 3 __streambuf_type* pubsetbuf(char_type* __s, streamsize __n) { return this->setbuf(__s, __n); } pos_type pubseekoff(off_type __off, ios_base::seekdir __way, ios_base::openmode __mode = ios_base::in | ios_base::out) { return this->seekoff(__off, __way, __mode); } pos_type pubseekpos(pos_type __sp, ios_base::openmode __mode = ios_base::in | ios_base::out) { return this->seekpos(__sp, __mode); } int pubsync() { return this->sync(); } # 434 "/usr/include/g++/streambuf" 3 streamsize in_avail() { streamsize __ret; if (_M_in_cur && _M_in_cur < _M_in_end) { if (_M_pback_init) { size_t __save_len = _M_pback_end_save - _M_pback_cur_save; size_t __pback_len = _M_in_cur - _M_pback; __ret = __save_len - __pback_len; } else __ret = this->egptr() - this->gptr(); } else __ret = this->showmanyc(); return __ret; } # 461 "/usr/include/g++/streambuf" 3 int_type snextc() { int_type __eof = traits_type::eof(); return (traits_type::eq_int_type(this->sbumpc(), __eof) ? __eof : this->sgetc()); } # 477 "/usr/include/g++/streambuf" 3 int_type sbumpc(); # 488 "/usr/include/g++/streambuf" 3 int_type sgetc() { int_type __ret; if (_M_in_cur && _M_in_cur < _M_in_end) __ret = traits_type::to_int_type(*(this->gptr())); else __ret = this->underflow(); return __ret; } # 507 "/usr/include/g++/streambuf" 3 streamsize sgetn(char_type* __s, streamsize __n) { return this->xsgetn(__s, __n); } # 521 "/usr/include/g++/streambuf" 3 int_type sputbackc(char_type __c); # 533 "/usr/include/g++/streambuf" 3 int_type sungetc(); # 549 "/usr/include/g++/streambuf" 3 int_type sputc(char_type __c); # 563 "/usr/include/g++/streambuf" 3 streamsize sputn(const char_type* __s, streamsize __n) { return this->xsputn(__s, __n); } protected: # 577 "/usr/include/g++/streambuf" 3 basic_streambuf() : _M_buf(__null), _M_buf_size(0), _M_buf_size_opt(8192), _M_buf_unified(false), _M_in_beg(0), _M_in_cur(0), _M_in_end(0), _M_out_beg(0), _M_out_cur(0), _M_out_end(0), _M_mode(ios_base::openmode(0)), _M_buf_locale(locale()), _M_pback_cur_save(0), _M_pback_end_save(0), _M_pback_init(false) { } # 598 "/usr/include/g++/streambuf" 3 char_type* eback() const { return _M_in_beg; } char_type* gptr() const { return _M_in_cur; } char_type* egptr() const { return _M_in_end; } # 614 "/usr/include/g++/streambuf" 3 void gbump(int __n) { _M_in_cur += __n; } # 625 "/usr/include/g++/streambuf" 3 void setg(char_type* __gbeg, char_type* __gnext, char_type* __gend) { _M_in_beg = __gbeg; _M_in_cur = __gnext; _M_in_end = __gend; if (!(_M_mode & ios_base::in) && __gbeg && __gnext && __gend) _M_mode = _M_mode | ios_base::in; } # 647 "/usr/include/g++/streambuf" 3 char_type* pbase() const { return _M_out_beg; } char_type* pptr() const { return _M_out_cur; } char_type* epptr() const { return _M_out_end; } # 663 "/usr/include/g++/streambuf" 3 void pbump(int __n) { _M_out_cur += __n; } # 673 "/usr/include/g++/streambuf" 3 void setp(char_type* __pbeg, char_type* __pend) { _M_out_beg = _M_out_cur = __pbeg; _M_out_end = __pend; if (!(_M_mode & ios_base::out) && __pbeg && __pend) _M_mode = _M_mode | ios_base::out; } # 696 "/usr/include/g++/streambuf" 3 virtual void imbue(const locale&) { } # 711 "/usr/include/g++/streambuf" 3 virtual basic_streambuf* setbuf(char_type*, streamsize) { return this; } # 722 "/usr/include/g++/streambuf" 3 virtual pos_type seekoff(off_type, ios_base::seekdir, ios_base::openmode = ios_base::in | ios_base::out) { return pos_type(off_type(-1)); } # 734 "/usr/include/g++/streambuf" 3 virtual pos_type seekpos(pos_type, ios_base::openmode = ios_base::in | ios_base::out) { return pos_type(off_type(-1)); } # 747 "/usr/include/g++/streambuf" 3 virtual int sync() { return 0; } # 769 "/usr/include/g++/streambuf" 3 virtual streamsize showmanyc() { return 0; } # 785 "/usr/include/g++/streambuf" 3 virtual streamsize xsgetn(char_type* __s, streamsize __n); # 807 "/usr/include/g++/streambuf" 3 virtual int_type underflow() { return traits_type::eof(); } # 820 "/usr/include/g++/streambuf" 3 virtual int_type uflow() { int_type __ret = traits_type::eof(); bool __testeof = traits_type::eq_int_type(this->underflow(), __ret); bool __testpending = _M_in_cur && _M_in_cur < _M_in_end; if (!__testeof && __testpending) { __ret = traits_type::to_int_type(*_M_in_cur); ++_M_in_cur; if (_M_buf_unified && _M_mode & ios_base::out) ++_M_out_cur; } return __ret; } # 846 "/usr/include/g++/streambuf" 3 virtual int_type pbackfail(int_type = traits_type::eof()) { return traits_type::eof(); } # 864 "/usr/include/g++/streambuf" 3 virtual streamsize xsputn(const char_type* __s, streamsize __n); # 889 "/usr/include/g++/streambuf" 3 virtual int_type overflow(int_type = traits_type::eof()) { return traits_type::eof(); } # 920 "/usr/include/g++/streambuf" 3 private: basic_streambuf(const __streambuf_type&) { }; __streambuf_type& operator=(const __streambuf_type&) { return *this; }; }; } # 1 "/usr/include/g++/bits/streambuf.tcc" 1 3 # 38 "/usr/include/g++/bits/streambuf.tcc" 3 # 39 "/usr/include/g++/bits/streambuf.tcc" 3 namespace std { template const size_t basic_streambuf<_CharT, _Traits>::_S_pback_size; template typename basic_streambuf<_CharT, _Traits>::int_type basic_streambuf<_CharT, _Traits>:: sbumpc() { int_type __ret; if (_M_in_cur && _M_in_cur < _M_in_end) { char_type __c = *(this->gptr()); _M_in_cur_move(1); __ret = traits_type::to_int_type(__c); } else __ret = this->uflow(); return __ret; } template typename basic_streambuf<_CharT, _Traits>::int_type basic_streambuf<_CharT, _Traits>:: sputbackc(char_type __c) { int_type __ret; bool __testpos = _M_in_cur && _M_in_beg < _M_in_cur; if (!__testpos || !traits_type::eq(__c, this->gptr()[-1])) __ret = this->pbackfail(traits_type::to_int_type(__c)); else { _M_in_cur_move(-1); __ret = traits_type::to_int_type(*this->gptr()); } return __ret; } template typename basic_streambuf<_CharT, _Traits>::int_type basic_streambuf<_CharT, _Traits>:: sungetc() { int_type __ret; if (_M_in_cur && _M_in_beg < _M_in_cur) { _M_in_cur_move(-1); __ret = traits_type::to_int_type(*_M_in_cur); } else __ret = this->pbackfail(); return __ret; } template typename basic_streambuf<_CharT, _Traits>::int_type basic_streambuf<_CharT, _Traits>:: sputc(char_type __c) { int_type __ret; if (_M_out_buf_size()) { *_M_out_cur = __c; _M_out_cur_move(1); __ret = traits_type::to_int_type(__c); } else __ret = this->overflow(traits_type::to_int_type(__c)); return __ret; } template streamsize basic_streambuf<_CharT, _Traits>:: xsgetn(char_type* __s, streamsize __n) { streamsize __ret = 0; while (__ret < __n) { size_t __buf_len = _M_in_end - _M_in_cur; if (__buf_len > 0) { size_t __remaining = __n - __ret; size_t __len = min(__buf_len, __remaining); traits_type::copy(__s, _M_in_cur, __len); __ret += __len; __s += __len; _M_in_cur_move(__len); } if (__ret < __n) { int_type __c = this->uflow(); if (!traits_type::eq_int_type(__c, traits_type::eof())) { traits_type::assign(*__s++, traits_type::to_char_type(__c)); ++__ret; } else break; } } return __ret; } template streamsize basic_streambuf<_CharT, _Traits>:: xsputn(const char_type* __s, streamsize __n) { streamsize __ret = 0; while (__ret < __n) { off_type __buf_len = _M_out_buf_size(); if (__buf_len > 0) { off_type __remaining = __n - __ret; off_type __len = min(__buf_len, __remaining); traits_type::copy(_M_out_cur, __s, __len); __ret += __len; __s += __len; _M_out_cur_move(__len); } if (__ret < __n) { int_type __c = this->overflow(traits_type::to_int_type(*__s)); if (!traits_type::eq_int_type(__c, traits_type::eof())) { ++__ret; ++__s; } else break; } } return __ret; } template streamsize __copy_streambufs(basic_ios<_CharT, _Traits>&, basic_streambuf<_CharT, _Traits>* __sbin, basic_streambuf<_CharT, _Traits>* __sbout) { streamsize __ret = 0; typename _Traits::int_type __c = __sbin->sgetc(); while (!_Traits::eq_int_type(__c, _Traits::eof())) { const size_t __n = __sbin->_M_in_end - __sbin->_M_in_cur; if (__n > 1) { const size_t __wrote = __sbout->sputn(__sbin->_M_in_cur, __n); __sbin->_M_in_cur_move(__wrote); __ret += __wrote; if (__wrote < __n) break; __c = __sbin->underflow(); } else { __c = __sbout->sputc(_Traits::to_char_type(__c)); if (_Traits::eq_int_type(__c, _Traits::eof())) break; ++__ret; __c = __sbin->snextc(); } } return __ret; } extern template class basic_streambuf; extern template streamsize __copy_streambufs(basic_ios&, basic_streambuf*, basic_streambuf*); extern template class basic_streambuf; extern template streamsize __copy_streambufs(basic_ios&, basic_streambuf*, basic_streambuf*); } # 934 "/usr/include/g++/streambuf" 2 3 # 51 "/usr/include/g++/ios" 2 3 # 1 "/usr/include/g++/bits/basic_ios.h" 1 3 # 39 "/usr/include/g++/bits/basic_ios.h" 3 # 40 "/usr/include/g++/bits/basic_ios.h" 3 # 1 "/usr/include/g++/bits/streambuf_iterator.h" 1 3 # 39 "/usr/include/g++/bits/streambuf_iterator.h" 3 # 40 "/usr/include/g++/bits/streambuf_iterator.h" 3 namespace std { template class istreambuf_iterator : public iterator { public: typedef _CharT char_type; typedef _Traits traits_type; typedef typename _Traits::int_type int_type; typedef basic_streambuf<_CharT, _Traits> streambuf_type; typedef basic_istream<_CharT, _Traits> istream_type; private: mutable streambuf_type* _M_sbuf; int_type _M_c; public: istreambuf_iterator() throw() : _M_sbuf(0), _M_c(traits_type::eof()) { } istreambuf_iterator(istream_type& __s) throw() : _M_sbuf(__s.rdbuf()), _M_c(traits_type::eof()) { } istreambuf_iterator(streambuf_type* __s) throw() : _M_sbuf(__s), _M_c(traits_type::eof()) { } char_type operator*() const { return traits_type::to_char_type(_M_get()); } istreambuf_iterator& operator++() { const int_type __eof = traits_type::eof(); if (_M_sbuf && traits_type::eq_int_type(_M_sbuf->sbumpc(), __eof)) _M_sbuf = 0; else _M_c = __eof; return *this; } istreambuf_iterator operator++(int) { const int_type __eof = traits_type::eof(); istreambuf_iterator __old = *this; if (_M_sbuf && traits_type::eq_int_type((__old._M_c = _M_sbuf->sbumpc()), __eof)) _M_sbuf = 0; else _M_c = __eof; return __old; } bool equal(const istreambuf_iterator& __b) const { const int_type __eof = traits_type::eof(); bool __thiseof = traits_type::eq_int_type(_M_get(), __eof); bool __beof = traits_type::eq_int_type(__b._M_get(), __eof); return (__thiseof && __beof || (!__thiseof && !__beof)); } private: int_type _M_get() const { const int_type __eof = traits_type::eof(); int_type __ret = __eof; if (_M_sbuf) { if (!traits_type::eq_int_type(_M_c, __eof)) __ret = _M_c; else if (traits_type::eq_int_type((__ret = _M_sbuf->sgetc()), __eof)) _M_sbuf = 0; } return __ret; } }; template __inline__ bool operator==(const istreambuf_iterator<_CharT, _Traits>& __a, const istreambuf_iterator<_CharT, _Traits>& __b) { return __a.equal(__b); } template __inline__ bool operator!=(const istreambuf_iterator<_CharT, _Traits>& __a, const istreambuf_iterator<_CharT, _Traits>& __b) { return !__a.equal(__b); } template class ostreambuf_iterator : public iterator { public: typedef _CharT char_type; typedef _Traits traits_type; typedef basic_streambuf<_CharT, _Traits> streambuf_type; typedef basic_ostream<_CharT, _Traits> ostream_type; private: streambuf_type* _M_sbuf; bool _M_failed; public: ostreambuf_iterator(ostream_type& __s) throw () : _M_sbuf(__s.rdbuf()), _M_failed(!_M_sbuf) { } ostreambuf_iterator(streambuf_type* __s) throw () : _M_sbuf(__s), _M_failed(!_M_sbuf) { } ostreambuf_iterator& operator=(_CharT __c) { if (!_M_failed && _Traits::eq_int_type(_M_sbuf->sputc(__c), _Traits::eof())) _M_failed = true; return *this; } ostreambuf_iterator& operator*() throw() { return *this; } ostreambuf_iterator& operator++(int) throw() { return *this; } ostreambuf_iterator& operator++() throw() { return *this; } bool failed() const throw() { return _M_failed; } ostreambuf_iterator& _M_put(const _CharT* __ws, streamsize __len) { if (__builtin_expect(!_M_failed, true) && __builtin_expect(this->_M_sbuf->sputn(__ws, __len) != __len, false)) _M_failed = true; return *this; } }; } # 42 "/usr/include/g++/bits/basic_ios.h" 2 3 # 1 "/usr/include/g++/bits/locale_facets.h" 1 3 # 43 "/usr/include/g++/bits/locale_facets.h" 3 # 44 "/usr/include/g++/bits/locale_facets.h" 3 # 1 "/usr/include/g++/cwctype" 1 3 # 47 "/usr/include/g++/cwctype" 3 # 48 "/usr/include/g++/cwctype" 3 # 1 "/usr/include/wctype.h" 1 3 4 # 35 "/usr/include/wctype.h" 3 4 # 1 "/usr/lib/gcc-lib/i586-suse-linux/3.3.4/include/stddef.h" 1 3 4 # 36 "/usr/include/wctype.h" 2 3 4 # 45 "/usr/include/wctype.h" 3 4 # 64 "/usr/include/wctype.h" 3 4 typedef unsigned long int wctype_t; # 86 "/usr/include/wctype.h" 3 4 enum { __ISwupper = 0, __ISwlower = 1, __ISwalpha = 2, __ISwdigit = 3, __ISwxdigit = 4, __ISwspace = 5, __ISwprint = 6, __ISwgraph = 7, __ISwblank = 8, __ISwcntrl = 9, __ISwpunct = 10, __ISwalnum = 11, _ISwupper = ((__ISwupper) < 8 ? (int) ((1UL << (__ISwupper)) << 24) : ((__ISwupper) < 16 ? (int) ((1UL << (__ISwupper)) << 8) : ((__ISwupper) < 24 ? (int) ((1UL << (__ISwupper)) >> 8) : (int) ((1UL << (__ISwupper)) >> 24)))), _ISwlower = ((__ISwlower) < 8 ? (int) ((1UL << (__ISwlower)) << 24) : ((__ISwlower) < 16 ? (int) ((1UL << (__ISwlower)) << 8) : ((__ISwlower) < 24 ? (int) ((1UL << (__ISwlower)) >> 8) : (int) ((1UL << (__ISwlower)) >> 24)))), _ISwalpha = ((__ISwalpha) < 8 ? (int) ((1UL << (__ISwalpha)) << 24) : ((__ISwalpha) < 16 ? (int) ((1UL << (__ISwalpha)) << 8) : ((__ISwalpha) < 24 ? (int) ((1UL << (__ISwalpha)) >> 8) : (int) ((1UL << (__ISwalpha)) >> 24)))), _ISwdigit = ((__ISwdigit) < 8 ? (int) ((1UL << (__ISwdigit)) << 24) : ((__ISwdigit) < 16 ? (int) ((1UL << (__ISwdigit)) << 8) : ((__ISwdigit) < 24 ? (int) ((1UL << (__ISwdigit)) >> 8) : (int) ((1UL << (__ISwdigit)) >> 24)))), _ISwxdigit = ((__ISwxdigit) < 8 ? (int) ((1UL << (__ISwxdigit)) << 24) : ((__ISwxdigit) < 16 ? (int) ((1UL << (__ISwxdigit)) << 8) : ((__ISwxdigit) < 24 ? (int) ((1UL << (__ISwxdigit)) >> 8) : (int) ((1UL << (__ISwxdigit)) >> 24)))), _ISwspace = ((__ISwspace) < 8 ? (int) ((1UL << (__ISwspace)) << 24) : ((__ISwspace) < 16 ? (int) ((1UL << (__ISwspace)) << 8) : ((__ISwspace) < 24 ? (int) ((1UL << (__ISwspace)) >> 8) : (int) ((1UL << (__ISwspace)) >> 24)))), _ISwprint = ((__ISwprint) < 8 ? (int) ((1UL << (__ISwprint)) << 24) : ((__ISwprint) < 16 ? (int) ((1UL << (__ISwprint)) << 8) : ((__ISwprint) < 24 ? (int) ((1UL << (__ISwprint)) >> 8) : (int) ((1UL << (__ISwprint)) >> 24)))), _ISwgraph = ((__ISwgraph) < 8 ? (int) ((1UL << (__ISwgraph)) << 24) : ((__ISwgraph) < 16 ? (int) ((1UL << (__ISwgraph)) << 8) : ((__ISwgraph) < 24 ? (int) ((1UL << (__ISwgraph)) >> 8) : (int) ((1UL << (__ISwgraph)) >> 24)))), _ISwblank = ((__ISwblank) < 8 ? (int) ((1UL << (__ISwblank)) << 24) : ((__ISwblank) < 16 ? (int) ((1UL << (__ISwblank)) << 8) : ((__ISwblank) < 24 ? (int) ((1UL << (__ISwblank)) >> 8) : (int) ((1UL << (__ISwblank)) >> 24)))), _ISwcntrl = ((__ISwcntrl) < 8 ? (int) ((1UL << (__ISwcntrl)) << 24) : ((__ISwcntrl) < 16 ? (int) ((1UL << (__ISwcntrl)) << 8) : ((__ISwcntrl) < 24 ? (int) ((1UL << (__ISwcntrl)) >> 8) : (int) ((1UL << (__ISwcntrl)) >> 24)))), _ISwpunct = ((__ISwpunct) < 8 ? (int) ((1UL << (__ISwpunct)) << 24) : ((__ISwpunct) < 16 ? (int) ((1UL << (__ISwpunct)) << 8) : ((__ISwpunct) < 24 ? (int) ((1UL << (__ISwpunct)) >> 8) : (int) ((1UL << (__ISwpunct)) >> 24)))), _ISwalnum = ((__ISwalnum) < 8 ? (int) ((1UL << (__ISwalnum)) << 24) : ((__ISwalnum) < 16 ? (int) ((1UL << (__ISwalnum)) << 8) : ((__ISwalnum) < 24 ? (int) ((1UL << (__ISwalnum)) >> 8) : (int) ((1UL << (__ISwalnum)) >> 24)))) }; extern "C" { extern int iswalnum (wint_t __wc) throw (); extern int iswalpha (wint_t __wc) throw (); extern int iswcntrl (wint_t __wc) throw (); extern int iswdigit (wint_t __wc) throw (); extern int iswgraph (wint_t __wc) throw (); extern int iswlower (wint_t __wc) throw (); extern int iswprint (wint_t __wc) throw (); extern int iswpunct (wint_t __wc) throw (); extern int iswspace (wint_t __wc) throw (); extern int iswupper (wint_t __wc) throw (); extern int iswxdigit (wint_t __wc) throw (); extern int iswblank (wint_t __wc) throw (); # 186 "/usr/include/wctype.h" 3 4 extern wctype_t wctype (__const char *__property) throw (); extern int iswctype (wint_t __wc, wctype_t __desc) throw (); typedef __const __int32_t *wctrans_t; extern wint_t towlower (wint_t __wc) throw (); extern wint_t towupper (wint_t __wc) throw (); } # 228 "/usr/include/wctype.h" 3 4 extern "C" { extern wctrans_t wctrans (__const char *__property) throw (); extern wint_t towctrans (wint_t __wc, wctrans_t __desc) throw (); extern int iswalnum_l (wint_t __wc, __locale_t __locale) throw (); extern int iswalpha_l (wint_t __wc, __locale_t __locale) throw (); extern int iswcntrl_l (wint_t __wc, __locale_t __locale) throw (); extern int iswdigit_l (wint_t __wc, __locale_t __locale) throw (); extern int iswgraph_l (wint_t __wc, __locale_t __locale) throw (); extern int iswlower_l (wint_t __wc, __locale_t __locale) throw (); extern int iswprint_l (wint_t __wc, __locale_t __locale) throw (); extern int iswpunct_l (wint_t __wc, __locale_t __locale) throw (); extern int iswspace_l (wint_t __wc, __locale_t __locale) throw (); extern int iswupper_l (wint_t __wc, __locale_t __locale) throw (); extern int iswxdigit_l (wint_t __wc, __locale_t __locale) throw (); extern int iswblank_l (wint_t __wc, __locale_t __locale) throw (); extern wctype_t wctype_l (__const char *__property, __locale_t __locale) throw (); extern int iswctype_l (wint_t __wc, wctype_t __desc, __locale_t __locale) throw (); extern wint_t towlower_l (wint_t __wc, __locale_t __locale) throw (); extern wint_t towupper_l (wint_t __wc, __locale_t __locale) throw (); extern wctrans_t wctrans_l (__const char *__property, __locale_t __locale) throw (); extern wint_t towctrans_l (wint_t __wc, wctrans_t __desc, __locale_t __locale) throw (); } # 53 "/usr/include/g++/cwctype" 2 3 # 77 "/usr/include/g++/cwctype" 3 namespace std { using ::wint_t; using ::wctype_t; using ::wctrans_t; using ::iswalnum; using ::iswalpha; using ::iswblank; using ::iswcntrl; using ::iswdigit; using ::iswgraph; using ::iswlower; using ::iswprint; using ::iswprint; using ::iswpunct; using ::iswspace; using ::iswupper; using ::iswxdigit; using ::iswctype; using ::towlower; using ::towupper; using ::towctrans; using ::wctrans; using ::wctype; } # 47 "/usr/include/g++/bits/locale_facets.h" 2 3 namespace std { # 63 "/usr/include/g++/bits/locale_facets.h" 3 template void __convert_to_v(const char* __in, _Tv& __out, ios_base::iostate& __err, const __c_locale& __cloc, int __base = 10); template<> void __convert_to_v(const char*, long&, ios_base::iostate&, const __c_locale&, int); template<> void __convert_to_v(const char*, unsigned long&, ios_base::iostate&, const __c_locale&, int); template<> void __convert_to_v(const char*, long long&, ios_base::iostate&, const __c_locale&, int); template<> void __convert_to_v(const char*, unsigned long long&, ios_base::iostate&, const __c_locale&, int); template<> void __convert_to_v(const char*, float&, ios_base::iostate&, const __c_locale&, int); template<> void __convert_to_v(const char*, double&, ios_base::iostate&, const __c_locale&, int); template<> void __convert_to_v(const char*, long double&, ios_base::iostate&, const __c_locale&, int); template struct __pad { static void _S_pad(ios_base& __io, _CharT __fill, _CharT* __news, const _CharT* __olds, const streamsize __newlen, const streamsize __oldlen, const bool __num); }; # 125 "/usr/include/g++/bits/locale_facets.h" 3 template bool __verify_grouping(const basic_string<_CharT>& __grouping, basic_string<_CharT>& __grouping_tmp); template _CharT* __add_grouping(_CharT* __s, _CharT __sep, const char* __gbeg, const char* __gend, const _CharT* __first, const _CharT* __last); template __inline__ ostreambuf_iterator<_CharT> __write(ostreambuf_iterator<_CharT> __s, const _CharT* __ws, int __len) { __s._M_put(__ws, __len); return __s; } template __inline__ _OutIter __write(_OutIter __s, const _CharT* __ws, int __len) { for (int __j = 0; __j < __len; __j++, ++__s) *__s = __ws[__j]; return __s; } # 1 "/usr/include/g++/i586-suse-linux/bits/ctype_base.h" 1 3 # 36 "/usr/include/g++/i586-suse-linux/bits/ctype_base.h" 3 struct ctype_base { typedef const int* __to_type; typedef unsigned short mask; static const mask upper = _ISupper; static const mask lower = _ISlower; static const mask alpha = _ISalpha; static const mask digit = _ISdigit; static const mask xdigit = _ISxdigit; static const mask space = _ISspace; static const mask print = _ISprint; static const mask graph = _ISgraph; static const mask cntrl = _IScntrl; static const mask punct = _ISpunct; static const mask alnum = _ISalnum; }; # 167 "/usr/include/g++/bits/locale_facets.h" 2 3 template class __ctype_abstract_base : public locale::facet, public ctype_base { public: typedef _CharT char_type; bool is(mask __m, char_type __c) const { return this->do_is(__m, __c); } const char_type* is(const char_type *__lo, const char_type *__hi, mask *__vec) const { return this->do_is(__lo, __hi, __vec); } const char_type* scan_is(mask __m, const char_type* __lo, const char_type* __hi) const { return this->do_scan_is(__m, __lo, __hi); } const char_type* scan_not(mask __m, const char_type* __lo, const char_type* __hi) const { return this->do_scan_not(__m, __lo, __hi); } char_type toupper(char_type __c) const { return this->do_toupper(__c); } const char_type* toupper(char_type *__lo, const char_type* __hi) const { return this->do_toupper(__lo, __hi); } char_type tolower(char_type __c) const { return this->do_tolower(__c); } const char_type* tolower(char_type* __lo, const char_type* __hi) const { return this->do_tolower(__lo, __hi); } char_type widen(char __c) const { return this->do_widen(__c); } const char* widen(const char* __lo, const char* __hi, char_type* __to) const { return this->do_widen(__lo, __hi, __to); } char narrow(char_type __c, char __dfault) const { return this->do_narrow(__c, __dfault); } const char_type* narrow(const char_type* __lo, const char_type* __hi, char __dfault, char *__to) const { return this->do_narrow(__lo, __hi, __dfault, __to); } protected: explicit __ctype_abstract_base(size_t __refs = 0): locale::facet(__refs) { } virtual ~__ctype_abstract_base() { } virtual bool do_is(mask __m, char_type __c) const = 0; virtual const char_type* do_is(const char_type* __lo, const char_type* __hi, mask* __vec) const = 0; virtual const char_type* do_scan_is(mask __m, const char_type* __lo, const char_type* __hi) const = 0; virtual const char_type* do_scan_not(mask __m, const char_type* __lo, const char_type* __hi) const = 0; virtual char_type do_toupper(char_type) const = 0; virtual const char_type* do_toupper(char_type* __lo, const char_type* __hi) const = 0; virtual char_type do_tolower(char_type) const = 0; virtual const char_type* do_tolower(char_type* __lo, const char_type* __hi) const = 0; virtual char_type do_widen(char) const = 0; virtual const char* do_widen(const char* __lo, const char* __hi, char_type* __dest) const = 0; virtual char do_narrow(char_type, char __dfault) const = 0; virtual const char_type* do_narrow(const char_type* __lo, const char_type* __hi, char __dfault, char* __dest) const = 0; }; template class ctype : public __ctype_abstract_base<_CharT> { public: typedef _CharT char_type; typedef typename ctype::mask mask; static locale::id id; explicit ctype(size_t __refs = 0) : __ctype_abstract_base<_CharT>(__refs) { } protected: virtual ~ctype(); virtual bool do_is(mask __m, char_type __c) const; virtual const char_type* do_is(const char_type* __lo, const char_type* __hi, mask* __vec) const; virtual const char_type* do_scan_is(mask __m, const char_type* __lo, const char_type* __hi) const; virtual const char_type* do_scan_not(mask __m, const char_type* __lo, const char_type* __hi) const; virtual char_type do_toupper(char_type __c) const; virtual const char_type* do_toupper(char_type* __lo, const char_type* __hi) const; virtual char_type do_tolower(char_type __c) const; virtual const char_type* do_tolower(char_type* __lo, const char_type* __hi) const; virtual char_type do_widen(char __c) const; virtual const char* do_widen(const char* __lo, const char* __hi, char_type* __dest) const; virtual char do_narrow(char_type, char __dfault) const; virtual const char_type* do_narrow(const char_type* __lo, const char_type* __hi, char __dfault, char* __dest) const; }; template locale::id ctype<_CharT>::id; template<> class ctype : public __ctype_abstract_base { public: typedef char char_type; protected: __c_locale _M_c_locale_ctype; bool _M_del; __to_type _M_toupper; __to_type _M_tolower; const mask* _M_table; public: static locale::id id; static const size_t table_size = 1 + static_cast(-1); explicit ctype(const mask* __table = 0, bool __del = false, size_t __refs = 0); explicit ctype(__c_locale __cloc, const mask* __table = 0, bool __del = false, size_t __refs = 0); __inline__ bool is(mask __m, char __c) const; __inline__ const char* is(const char* __lo, const char* __hi, mask* __vec) const; __inline__ const char* scan_is(mask __m, const char* __lo, const char* __hi) const; __inline__ const char* scan_not(mask __m, const char* __lo, const char* __hi) const; protected: const mask* table() const throw() { return _M_table; } static const mask* classic_table() throw(); virtual ~ctype(); virtual bool do_is(mask __m, char_type __c) const; virtual const char_type* do_is(const char_type* __lo, const char_type* __hi, mask* __vec) const; virtual const char_type* do_scan_is(mask __m, const char_type* __lo, const char_type* __hi) const; virtual const char_type* do_scan_not(mask __m, const char_type* __lo, const char_type* __hi) const; virtual char_type do_toupper(char_type) const; virtual const char_type* do_toupper(char_type* __lo, const char_type* __hi) const; virtual char_type do_tolower(char_type) const; virtual const char_type* do_tolower(char_type* __lo, const char_type* __hi) const; virtual char_type do_widen(char) const; virtual const char* do_widen(const char* __lo, const char* __hi, char_type* __dest) const; virtual char do_narrow(char_type, char __dfault) const; virtual const char_type* do_narrow(const char_type* __lo, const char_type* __hi, char __dfault, char* __dest) const; }; template<> const ctype& use_facet >(const locale& __loc); template<> class ctype : public __ctype_abstract_base { public: typedef wchar_t char_type; typedef wctype_t __wmask_type; protected: __c_locale _M_c_locale_ctype; public: static locale::id id; explicit ctype(size_t __refs = 0); explicit ctype(__c_locale __cloc, size_t __refs = 0); protected: __wmask_type _M_convert_to_wmask(const mask __m) const; virtual ~ctype(); virtual bool do_is(mask __m, char_type __c) const; virtual const char_type* do_is(const char_type* __lo, const char_type* __hi, mask* __vec) const; virtual const char_type* do_scan_is(mask __m, const char_type* __lo, const char_type* __hi) const; virtual const char_type* do_scan_not(mask __m, const char_type* __lo, const char_type* __hi) const; virtual char_type do_toupper(char_type) const; virtual const char_type* do_toupper(char_type* __lo, const char_type* __hi) const; virtual char_type do_tolower(char_type) const; virtual const char_type* do_tolower(char_type* __lo, const char_type* __hi) const; virtual char_type do_widen(char) const; virtual const char* do_widen(const char* __lo, const char* __hi, char_type* __dest) const; virtual char do_narrow(char_type, char __dfault) const; virtual const char_type* do_narrow(const char_type* __lo, const char_type* __hi, char __dfault, char* __dest) const; }; template<> const ctype& use_facet >(const locale& __loc); # 1 "/usr/include/g++/i586-suse-linux/bits/ctype_inline.h" 1 3 # 37 "/usr/include/g++/i586-suse-linux/bits/ctype_inline.h" 3 bool ctype:: is(mask __m, char __c) const { return _M_table[static_cast(__c)] & __m; } const char* ctype:: is(const char* __low, const char* __high, mask* __vec) const { while (__low < __high) *__vec++ = _M_table[static_cast(*__low++)]; return __high; } const char* ctype:: scan_is(mask __m, const char* __low, const char* __high) const { while (__low < __high && !(_M_table[static_cast(*__low)] & __m)) ++__low; return __low; } const char* ctype:: scan_not(mask __m, const char* __low, const char* __high) const { while (__low < __high && (_M_table[static_cast(*__low)] & __m) != 0) ++__low; return __low; } # 504 "/usr/include/g++/bits/locale_facets.h" 2 3 template class ctype_byname : public ctype<_CharT> { public: typedef _CharT char_type; explicit ctype_byname(const char* __s, size_t __refs = 0); protected: virtual ~ctype_byname() { }; }; template<> ctype_byname::ctype_byname(const char*, size_t refs); template<> ctype_byname::ctype_byname(const char*, size_t refs); # 1 "/usr/include/g++/bits/codecvt.h" 1 3 # 44 "/usr/include/g++/bits/codecvt.h" 3 # 45 "/usr/include/g++/bits/codecvt.h" 3 class codecvt_base { public: enum result { ok, partial, error, noconv }; }; template class __codecvt_abstract_base : public locale::facet, public codecvt_base { public: typedef codecvt_base::result result; typedef _InternT intern_type; typedef _ExternT extern_type; typedef _StateT state_type; result out(state_type& __state, const intern_type* __from, const intern_type* __from_end, const intern_type*& __from_next, extern_type* __to, extern_type* __to_end, extern_type*& __to_next) const { return this->do_out(__state, __from, __from_end, __from_next, __to, __to_end, __to_next); } result unshift(state_type& __state, extern_type* __to, extern_type* __to_end, extern_type*& __to_next) const { return this->do_unshift(__state, __to,__to_end,__to_next); } result in(state_type& __state, const extern_type* __from, const extern_type* __from_end, const extern_type*& __from_next, intern_type* __to, intern_type* __to_end, intern_type*& __to_next) const { return this->do_in(__state, __from, __from_end, __from_next, __to, __to_end, __to_next); } int encoding() const throw() { return this->do_encoding(); } bool always_noconv() const throw() { return this->do_always_noconv(); } int length(const state_type& __state, const extern_type* __from, const extern_type* __end, size_t __max) const { return this->do_length(__state, __from, __end, __max); } int max_length() const throw() { return this->do_max_length(); } protected: explicit __codecvt_abstract_base(size_t __refs = 0) : locale::facet(__refs) { } virtual ~__codecvt_abstract_base() { } virtual result do_out(state_type& __state, const intern_type* __from, const intern_type* __from_end, const intern_type*& __from_next, extern_type* __to, extern_type* __to_end, extern_type*& __to_next) const = 0; virtual result do_unshift(state_type& __state, extern_type* __to, extern_type* __to_end, extern_type*& __to_next) const = 0; virtual result do_in(state_type& __state, const extern_type* __from, const extern_type* __from_end, const extern_type*& __from_next, intern_type* __to, intern_type* __to_end, intern_type*& __to_next) const = 0; virtual int do_encoding() const throw() = 0; virtual bool do_always_noconv() const throw() = 0; virtual int do_length(const state_type&, const extern_type* __from, const extern_type* __end, size_t __max) const = 0; virtual int do_max_length() const throw() = 0; }; template class codecvt : public __codecvt_abstract_base<_InternT, _ExternT, _StateT> { public: typedef codecvt_base::result result; typedef _InternT intern_type; typedef _ExternT extern_type; typedef _StateT state_type; public: static locale::id id; explicit codecvt(size_t __refs = 0) : __codecvt_abstract_base<_InternT, _ExternT, _StateT> (__refs) { } protected: virtual ~codecvt() { } virtual result do_out(state_type& __state, const intern_type* __from, const intern_type* __from_end, const intern_type*& __from_next, extern_type* __to, extern_type* __to_end, extern_type*& __to_next) const; virtual result do_unshift(state_type& __state, extern_type* __to, extern_type* __to_end, extern_type*& __to_next) const; virtual result do_in(state_type& __state, const extern_type* __from, const extern_type* __from_end, const extern_type*& __from_next, intern_type* __to, intern_type* __to_end, intern_type*& __to_next) const; virtual int do_encoding() const throw(); virtual bool do_always_noconv() const throw(); virtual int do_length(const state_type&, const extern_type* __from, const extern_type* __end, size_t __max) const; virtual int do_max_length() const throw(); }; template locale::id codecvt<_InternT, _ExternT, _StateT>::id; template<> class codecvt : public __codecvt_abstract_base { public: typedef char intern_type; typedef char extern_type; typedef mbstate_t state_type; public: static locale::id id; explicit codecvt(size_t __refs = 0); protected: virtual ~codecvt(); virtual result do_out(state_type& __state, const intern_type* __from, const intern_type* __from_end, const intern_type*& __from_next, extern_type* __to, extern_type* __to_end, extern_type*& __to_next) const; virtual result do_unshift(state_type& __state, extern_type* __to, extern_type* __to_end, extern_type*& __to_next) const; virtual result do_in(state_type& __state, const extern_type* __from, const extern_type* __from_end, const extern_type*& __from_next, intern_type* __to, intern_type* __to_end, intern_type*& __to_next) const; virtual int do_encoding() const throw(); virtual bool do_always_noconv() const throw(); virtual int do_length(const state_type&, const extern_type* __from, const extern_type* __end, size_t __max) const; virtual int do_max_length() const throw(); }; template<> class codecvt : public __codecvt_abstract_base { public: typedef wchar_t intern_type; typedef char extern_type; typedef mbstate_t state_type; public: static locale::id id; explicit codecvt(size_t __refs = 0); protected: virtual ~codecvt(); virtual result do_out(state_type& __state, const intern_type* __from, const intern_type* __from_end, const intern_type*& __from_next, extern_type* __to, extern_type* __to_end, extern_type*& __to_next) const; virtual result do_unshift(state_type& __state, extern_type* __to, extern_type* __to_end, extern_type*& __to_next) const; virtual result do_in(state_type& __state, const extern_type* __from, const extern_type* __from_end, const extern_type*& __from_next, intern_type* __to, intern_type* __to_end, intern_type*& __to_next) const; virtual int do_encoding() const throw(); virtual bool do_always_noconv() const throw(); virtual int do_length(const state_type&, const extern_type* __from, const extern_type* __end, size_t __max) const; virtual int do_max_length() const throw(); }; template class codecvt_byname : public codecvt<_InternT, _ExternT, _StateT> { public: explicit codecvt_byname(const char*, size_t __refs = 0) : codecvt<_InternT, _ExternT, _StateT>(__refs) { } protected: virtual ~codecvt_byname() { } }; # 1 "/usr/include/g++/i586-suse-linux/bits/codecvt_specializations.h" 1 3 # 46 "/usr/include/g++/i586-suse-linux/bits/codecvt_specializations.h" 3 class __enc_traits { public: typedef iconv_t __desc_type; protected: static const int _S_max_size = 32; char _M_int_enc[_S_max_size]; char _M_ext_enc[_S_max_size]; __desc_type _M_in_desc; __desc_type _M_out_desc; int _M_ext_bom; int _M_int_bom; public: explicit __enc_traits() : _M_in_desc(0), _M_out_desc(0), _M_ext_bom(0), _M_int_bom(0) { memset(_M_int_enc, 0, _S_max_size); memset(_M_ext_enc, 0, _S_max_size); } explicit __enc_traits(const char* __int, const char* __ext, int __ibom = 0, int __ebom = 0) : _M_in_desc(0), _M_out_desc(0), _M_ext_bom(0), _M_int_bom(0) { strncpy(_M_int_enc, __int, _S_max_size); strncpy(_M_ext_enc, __ext, _S_max_size); } __enc_traits(const __enc_traits& __obj): _M_in_desc(0), _M_out_desc(0) { strncpy(_M_int_enc, __obj._M_int_enc, _S_max_size); strncpy(_M_ext_enc, __obj._M_ext_enc, _S_max_size); _M_ext_bom = __obj._M_ext_bom; _M_int_bom = __obj._M_int_bom; } __enc_traits& operator=(const __enc_traits& __obj) { strncpy(_M_int_enc, __obj._M_int_enc, _S_max_size); strncpy(_M_ext_enc, __obj._M_ext_enc, _S_max_size); _M_in_desc = 0; _M_out_desc = 0; _M_ext_bom = __obj._M_ext_bom; _M_int_bom = __obj._M_int_bom; return *this; } ~__enc_traits() { __desc_type __err = reinterpret_cast(-1); if (_M_in_desc && _M_in_desc != __err) iconv_close(_M_in_desc); if (_M_out_desc && _M_out_desc != __err) iconv_close(_M_out_desc); } void _M_init() { const __desc_type __err = reinterpret_cast(-1); if (!_M_in_desc) { _M_in_desc = iconv_open(_M_int_enc, _M_ext_enc); if (_M_in_desc == __err) __throw_runtime_error("creating iconv input descriptor failed."); } if (!_M_out_desc) { _M_out_desc = iconv_open(_M_ext_enc, _M_int_enc); if (_M_out_desc == __err) __throw_runtime_error("creating iconv output descriptor failed."); } } bool _M_good() { const __desc_type __err = reinterpret_cast(-1); bool __test = _M_in_desc && _M_in_desc != __err; __test &= _M_out_desc && _M_out_desc != __err; return __test; } const __desc_type* _M_get_in_descriptor() { return &_M_in_desc; } const __desc_type* _M_get_out_descriptor() { return &_M_out_desc; } int _M_get_external_bom() { return _M_ext_bom; } int _M_get_internal_bom() { return _M_int_bom; } const char* _M_get_internal_enc() { return _M_int_enc; } const char* _M_get_external_enc() { return _M_ext_enc; } }; template class codecvt<_InternT, _ExternT, __enc_traits> : public __codecvt_abstract_base<_InternT, _ExternT, __enc_traits> { public: typedef codecvt_base::result result; typedef _InternT intern_type; typedef _ExternT extern_type; typedef __enc_traits state_type; typedef __enc_traits::__desc_type __desc_type; typedef __enc_traits __enc_type; static locale::id id; explicit codecvt(size_t __refs = 0) : __codecvt_abstract_base(__refs) { } explicit codecvt(__enc_type* __enc, size_t __refs = 0) : __codecvt_abstract_base(__refs) { } protected: virtual ~codecvt() { } virtual result do_out(state_type& __state, const intern_type* __from, const intern_type* __from_end, const intern_type*& __from_next, extern_type* __to, extern_type* __to_end, extern_type*& __to_next) const; virtual result do_unshift(state_type& __state, extern_type* __to, extern_type* __to_end, extern_type*& __to_next) const; virtual result do_in(state_type& __state, const extern_type* __from, const extern_type* __from_end, const extern_type*& __from_next, intern_type* __to, intern_type* __to_end, intern_type*& __to_next) const; virtual int do_encoding() const throw(); virtual bool do_always_noconv() const throw(); virtual int do_length(const state_type&, const extern_type* __from, const extern_type* __end, size_t __max) const; virtual int do_max_length() const throw(); }; template locale::id codecvt<_InternT, _ExternT, __enc_traits>::id; template __inline__ size_t __iconv_adaptor(size_t(*__func)(iconv_t, _T, size_t*, char**, size_t*), iconv_t __cd, char** __inbuf, size_t* __inbytes, char** __outbuf, size_t* __outbytes) { return __func(__cd, (_T)__inbuf, __inbytes, __outbuf, __outbytes); } template codecvt_base::result codecvt<_InternT, _ExternT, __enc_traits>:: do_out(state_type& __state, const intern_type* __from, const intern_type* __from_end, const intern_type*& __from_next, extern_type* __to, extern_type* __to_end, extern_type*& __to_next) const { result __ret = codecvt_base::error; if (__state._M_good()) { typedef state_type::__desc_type __desc_type; const __desc_type* __desc = __state._M_get_out_descriptor(); const size_t __fmultiple = sizeof(intern_type); size_t __fbytes = __fmultiple * (__from_end - __from); const size_t __tmultiple = sizeof(extern_type); size_t __tbytes = __tmultiple * (__to_end - __to); char* __cto = reinterpret_cast(__to); char* __cfrom; size_t __conv; int __int_bom = __state._M_get_internal_bom(); if (__int_bom) { size_t __size = __from_end - __from; intern_type* __cfixed = static_cast(__builtin_alloca(sizeof(intern_type) * (__size + 1))); __cfixed[0] = static_cast(__int_bom); char_traits::copy(__cfixed + 1, __from, __size); __cfrom = reinterpret_cast(__cfixed); __conv = __iconv_adaptor(iconv, *__desc, &__cfrom, &__fbytes, &__cto, &__tbytes); } else { intern_type* __cfixed = const_cast(__from); __cfrom = reinterpret_cast(__cfixed); __conv = __iconv_adaptor(iconv, *__desc, &__cfrom, &__fbytes, &__cto, &__tbytes); } if (__conv != size_t(-1)) { __from_next = reinterpret_cast(__cfrom); __to_next = reinterpret_cast(__cto); __ret = codecvt_base::ok; } else { if (__fbytes < __fmultiple * (__from_end - __from)) { __from_next = reinterpret_cast(__cfrom); __to_next = reinterpret_cast(__cto); __ret = codecvt_base::partial; } else __ret = codecvt_base::error; } } return __ret; } template codecvt_base::result codecvt<_InternT, _ExternT, __enc_traits>:: do_unshift(state_type& __state, extern_type* __to, extern_type* __to_end, extern_type*& __to_next) const { result __ret = codecvt_base::error; if (__state._M_good()) { typedef state_type::__desc_type __desc_type; const __desc_type* __desc = __state._M_get_in_descriptor(); const size_t __tmultiple = sizeof(intern_type); size_t __tlen = __tmultiple * (__to_end - __to); char* __cto = reinterpret_cast(__to); size_t __conv = __iconv_adaptor(iconv,*__desc, __null, __null, &__cto, &__tlen); if (__conv != size_t(-1)) { __to_next = reinterpret_cast(__cto); if (__tlen == __tmultiple * (__to_end - __to)) __ret = codecvt_base::noconv; else if (__tlen == 0) __ret = codecvt_base::ok; else __ret = codecvt_base::partial; } else __ret = codecvt_base::error; } return __ret; } template codecvt_base::result codecvt<_InternT, _ExternT, __enc_traits>:: do_in(state_type& __state, const extern_type* __from, const extern_type* __from_end, const extern_type*& __from_next, intern_type* __to, intern_type* __to_end, intern_type*& __to_next) const { result __ret = codecvt_base::error; if (__state._M_good()) { typedef state_type::__desc_type __desc_type; const __desc_type* __desc = __state._M_get_in_descriptor(); const size_t __fmultiple = sizeof(extern_type); size_t __flen = __fmultiple * (__from_end - __from); const size_t __tmultiple = sizeof(intern_type); size_t __tlen = __tmultiple * (__to_end - __to); char* __cto = reinterpret_cast(__to); char* __cfrom; size_t __conv; int __ext_bom = __state._M_get_external_bom(); if (__ext_bom) { size_t __size = __from_end - __from; extern_type* __cfixed = static_cast(__builtin_alloca(sizeof(extern_type) * (__size + 1))); __cfixed[0] = static_cast(__ext_bom); char_traits::copy(__cfixed + 1, __from, __size); __cfrom = reinterpret_cast(__cfixed); __conv = __iconv_adaptor(iconv, *__desc, &__cfrom, &__flen, &__cto, &__tlen); } else { extern_type* __cfixed = const_cast(__from); __cfrom = reinterpret_cast(__cfixed); __conv = __iconv_adaptor(iconv, *__desc, &__cfrom, &__flen, &__cto, &__tlen); } if (__conv != size_t(-1)) { __from_next = reinterpret_cast(__cfrom); __to_next = reinterpret_cast(__cto); __ret = codecvt_base::ok; } else { if (__flen < static_cast(__from_end - __from)) { __from_next = reinterpret_cast(__cfrom); __to_next = reinterpret_cast(__cto); __ret = codecvt_base::partial; } else __ret = codecvt_base::error; } } return __ret; } template int codecvt<_InternT, _ExternT, __enc_traits>:: do_encoding() const throw() { int __ret = 0; if (sizeof(_ExternT) <= sizeof(_InternT)) __ret = sizeof(_InternT)/sizeof(_ExternT); return __ret; } template bool codecvt<_InternT, _ExternT, __enc_traits>:: do_always_noconv() const throw() { return false; } template int codecvt<_InternT, _ExternT, __enc_traits>:: do_length(const state_type&, const extern_type* __from, const extern_type* __end, size_t __max) const { return min(__max, static_cast(__end - __from)); } template int codecvt<_InternT, _ExternT, __enc_traits>:: do_max_length() const throw() { return 1; } # 335 "/usr/include/g++/bits/codecvt.h" 2 3 # 529 "/usr/include/g++/bits/locale_facets.h" 2 3 class __num_base { public: enum { _S_minus, _S_plus, _S_x, _S_X, _S_digits, _S_digits_end = _S_digits + 16, _S_udigits = _S_digits_end, _S_udigits_end = _S_udigits + 16, _S_e = _S_digits + 14, _S_E = _S_udigits + 14, _S_end = _S_udigits_end }; static const char* _S_atoms_out; protected: static const char* _S_atoms_in; enum { _M_zero, _M_e = _M_zero + 10, _M_E = _M_zero + 11, _M_size = 21 + 1 }; static void _S_format_float(const ios_base& __io, char* __fptr, char __mod, streamsize __prec); static void _S_format_int(const ios_base& __io, char* __fptr, char __mod, char __modl); }; template class __locale_cache; template class numpunct : public locale::facet { public: typedef _CharT char_type; typedef basic_string<_CharT> string_type; friend class __locale_cache >; static locale::id id; private: char_type _M_decimal_point; char_type _M_thousands_sep; const char* _M_grouping; const char_type* _M_truename; const char_type* _M_falsename; public: explicit numpunct(size_t __refs = 0) : locale::facet(__refs) { _M_initialize_numpunct(); } explicit numpunct(__c_locale __cloc, size_t __refs = 0) : locale::facet(__refs) { _M_initialize_numpunct(__cloc); } char_type decimal_point() const { return this->do_decimal_point(); } char_type thousands_sep() const { return this->do_thousands_sep(); } string grouping() const { return this->do_grouping(); } string_type truename() const { return this->do_truename(); } string_type falsename() const { return this->do_falsename(); } protected: virtual ~numpunct(); virtual char_type do_decimal_point() const { return _M_decimal_point; } virtual char_type do_thousands_sep() const { return _M_thousands_sep; } virtual string do_grouping() const { return _M_grouping; } virtual string_type do_truename() const { return _M_truename; } virtual string_type do_falsename() const { return _M_falsename; } void _M_initialize_numpunct(__c_locale __cloc = __null); }; template locale::id numpunct<_CharT>::id; template<> numpunct::~numpunct(); template<> void numpunct::_M_initialize_numpunct(__c_locale __cloc); template<> numpunct::~numpunct(); template<> void numpunct::_M_initialize_numpunct(__c_locale __cloc); template class numpunct_byname : public numpunct<_CharT> { __c_locale _M_c_locale_numpunct; public: typedef _CharT char_type; typedef basic_string<_CharT> string_type; explicit numpunct_byname(const char* __s, size_t __refs = 0) : numpunct<_CharT>(__refs) { _S_create_c_locale(_M_c_locale_numpunct, __s); _M_initialize_numpunct(_M_c_locale_numpunct); } protected: virtual ~numpunct_byname() { _S_destroy_c_locale(_M_c_locale_numpunct); } }; template class num_get : public locale::facet, public __num_base { public: typedef _CharT char_type; typedef _InIter iter_type; static locale::id id; explicit num_get(size_t __refs = 0) : locale::facet(__refs) { } iter_type get(iter_type __in, iter_type __end, ios_base& __io, ios_base::iostate& __err, bool& __v) const { return this->do_get(__in, __end, __io, __err, __v); } iter_type get(iter_type __in, iter_type __end, ios_base& __io, ios_base::iostate& __err, long& __v) const { return this->do_get(__in, __end, __io, __err, __v); } iter_type get(iter_type __in, iter_type __end, ios_base& __io, ios_base::iostate& __err, unsigned short& __v) const { return this->do_get(__in, __end, __io, __err, __v); } iter_type get(iter_type __in, iter_type __end, ios_base& __io, ios_base::iostate& __err, unsigned int& __v) const { return this->do_get(__in, __end, __io, __err, __v); } iter_type get(iter_type __in, iter_type __end, ios_base& __io, ios_base::iostate& __err, unsigned long& __v) const { return this->do_get(__in, __end, __io, __err, __v); } iter_type get(iter_type __in, iter_type __end, ios_base& __io, ios_base::iostate& __err, long long& __v) const { return this->do_get(__in, __end, __io, __err, __v); } iter_type get(iter_type __in, iter_type __end, ios_base& __io, ios_base::iostate& __err, unsigned long long& __v) const { return this->do_get(__in, __end, __io, __err, __v); } iter_type get(iter_type __in, iter_type __end, ios_base& __io, ios_base::iostate& __err, float& __v) const { return this->do_get(__in, __end, __io, __err, __v); } iter_type get(iter_type __in, iter_type __end, ios_base& __io, ios_base::iostate& __err, double& __v) const { return this->do_get(__in, __end, __io, __err, __v); } iter_type get(iter_type __in, iter_type __end, ios_base& __io, ios_base::iostate& __err, long double& __v) const { return this->do_get(__in, __end, __io, __err, __v); } iter_type get(iter_type __in, iter_type __end, ios_base& __io, ios_base::iostate& __err, void*& __v) const { return this->do_get(__in, __end, __io, __err, __v); } protected: virtual ~num_get() { } iter_type _M_extract_float(iter_type, iter_type, ios_base&, ios_base::iostate&, string& __xtrc) const; iter_type _M_extract_int(iter_type, iter_type, ios_base&, ios_base::iostate&, string& __xtrc, int& __base) const; virtual iter_type do_get(iter_type, iter_type, ios_base&, ios_base::iostate&, bool&) const; virtual iter_type do_get(iter_type, iter_type, ios_base&, ios_base::iostate&, long&) const; virtual iter_type do_get(iter_type, iter_type, ios_base&, ios_base::iostate& __err, unsigned short&) const; virtual iter_type do_get(iter_type, iter_type, ios_base&, ios_base::iostate& __err, unsigned int&) const; virtual iter_type do_get(iter_type, iter_type, ios_base&, ios_base::iostate& __err, unsigned long&) const; virtual iter_type do_get(iter_type, iter_type, ios_base&, ios_base::iostate& __err, long long&) const; virtual iter_type do_get(iter_type, iter_type, ios_base&, ios_base::iostate& __err, unsigned long long&) const; virtual iter_type do_get(iter_type, iter_type, ios_base&, ios_base::iostate& __err, float&) const; virtual iter_type do_get(iter_type, iter_type, ios_base&, ios_base::iostate& __err, double&) const; virtual iter_type do_get(iter_type, iter_type, ios_base&, ios_base::iostate& __err, long double&) const; virtual iter_type do_get(iter_type, iter_type, ios_base&, ios_base::iostate& __err, void*&) const; }; template locale::id num_get<_CharT, _InIter>::id; # 853 "/usr/include/g++/bits/locale_facets.h" 3 template class num_put : public locale::facet, public __num_base { public: typedef _CharT char_type; typedef _OutIter iter_type; static locale::id id; explicit num_put(size_t __refs = 0) : locale::facet(__refs) { } iter_type put(iter_type __s, ios_base& __f, char_type __fill, bool __v) const { return this->do_put(__s, __f, __fill, __v); } iter_type put(iter_type __s, ios_base& __f, char_type __fill, long __v) const { return this->do_put(__s, __f, __fill, __v); } iter_type put(iter_type __s, ios_base& __f, char_type __fill, unsigned long __v) const { return this->do_put(__s, __f, __fill, __v); } iter_type put(iter_type __s, ios_base& __f, char_type __fill, long long __v) const { return this->do_put(__s, __f, __fill, __v); } iter_type put(iter_type __s, ios_base& __f, char_type __fill, unsigned long long __v) const { return this->do_put(__s, __f, __fill, __v); } iter_type put(iter_type __s, ios_base& __f, char_type __fill, double __v) const { return this->do_put(__s, __f, __fill, __v); } iter_type put(iter_type __s, ios_base& __f, char_type __fill, long double __v) const { return this->do_put(__s, __f, __fill, __v); } iter_type put(iter_type __s, ios_base& __f, char_type __fill, const void* __v) const { return this->do_put(__s, __f, __fill, __v); } protected: template iter_type _M_convert_float(iter_type, ios_base& __io, char_type __fill, char __mod, _ValueT __v) const; void _M_group_float(const string& __grouping, char_type __sep, const char_type* __p, char_type* __new, char_type* __cs, int& __len) const; template iter_type _M_convert_int(iter_type, ios_base& __io, char_type __fill, _ValueT __v) const; void _M_group_int(const string& __grouping, char_type __sep, ios_base& __io, char_type* __new, char_type* __cs, int& __len) const; void _M_pad(char_type __fill, streamsize __w, ios_base& __io, char_type* __new, const char_type* __cs, int& __len) const; template iter_type _M_convert_int(iter_type, ios_base& __io, char_type __fill, char __mod, char __modl, _ValueT __v) const; iter_type _M_widen_float(iter_type, ios_base& __io, char_type __fill, char* __cs, int __len) const; iter_type _M_widen_int(iter_type, ios_base& __io, char_type __fill, char* __cs, int __len) const; iter_type _M_insert(iter_type, ios_base& __io, char_type __fill, const char_type* __ws, int __len) const; virtual ~num_put() { }; virtual iter_type do_put(iter_type, ios_base&, char_type __fill, bool __v) const; virtual iter_type do_put(iter_type, ios_base&, char_type __fill, long __v) const; virtual iter_type do_put(iter_type, ios_base&, char_type __fill, unsigned long) const; virtual iter_type do_put(iter_type, ios_base&, char_type __fill, long long __v) const; virtual iter_type do_put(iter_type, ios_base&, char_type __fill, unsigned long long) const; virtual iter_type do_put(iter_type, ios_base&, char_type __fill, double __v) const; virtual iter_type do_put(iter_type, ios_base&, char_type __fill, long double __v) const; virtual iter_type do_put(iter_type, ios_base&, char_type __fill, const void* __v) const; }; template locale::id num_put<_CharT, _OutIter>::id; template class collate : public locale::facet { public: typedef _CharT char_type; typedef basic_string<_CharT> string_type; protected: __c_locale _M_c_locale_collate; public: static locale::id id; explicit collate(size_t __refs = 0) : locale::facet(__refs) { _M_c_locale_collate = _S_c_locale; } explicit collate(__c_locale __cloc, size_t __refs = 0) : locale::facet(__refs) { _M_c_locale_collate = _S_clone_c_locale(__cloc); } int compare(const _CharT* __lo1, const _CharT* __hi1, const _CharT* __lo2, const _CharT* __hi2) const { return this->do_compare(__lo1, __hi1, __lo2, __hi2); } string_type transform(const _CharT* __lo, const _CharT* __hi) const { return this->do_transform(__lo, __hi); } long hash(const _CharT* __lo, const _CharT* __hi) const { return this->do_hash(__lo, __hi); } int _M_compare(const _CharT*, const _CharT*) const; size_t _M_transform(_CharT*, const _CharT*, size_t) const; protected: virtual ~collate() { _S_destroy_c_locale(_M_c_locale_collate); } virtual int do_compare(const _CharT* __lo1, const _CharT* __hi1, const _CharT* __lo2, const _CharT* __hi2) const; virtual string_type do_transform(const _CharT* __lo, const _CharT* __hi) const; virtual long do_hash(const _CharT* __lo, const _CharT* __hi) const; }; template locale::id collate<_CharT>::id; template<> int collate::_M_compare(const char*, const char*) const; template<> size_t collate::_M_transform(char*, const char*, size_t) const; template<> int collate::_M_compare(const wchar_t*, const wchar_t*) const; template<> size_t collate::_M_transform(wchar_t*, const wchar_t*, size_t) const; template class collate_byname : public collate<_CharT> { public: typedef _CharT char_type; typedef basic_string<_CharT> string_type; explicit collate_byname(const char* __s, size_t __refs = 0) : collate<_CharT>(__refs) { _S_destroy_c_locale(_M_c_locale_collate); _S_create_c_locale(_M_c_locale_collate, __s); } protected: virtual ~collate_byname() { } }; class time_base { public: enum dateorder { no_order, dmy, mdy, ymd, ydm }; }; template class __timepunct : public locale::facet { public: typedef _CharT __char_type; typedef basic_string<_CharT> __string_type; static locale::id id; static const _CharT* _S_timezones[14]; protected: __c_locale _M_c_locale_timepunct; char* _M_name_timepunct; const _CharT* _M_date_format; const _CharT* _M_date_era_format; const _CharT* _M_time_format; const _CharT* _M_time_era_format; const _CharT* _M_date_time_format; const _CharT* _M_date_time_era_format; const _CharT* _M_am; const _CharT* _M_pm; const _CharT* _M_am_pm_format; const _CharT* _M_day1; const _CharT* _M_day2; const _CharT* _M_day3; const _CharT* _M_day4; const _CharT* _M_day5; const _CharT* _M_day6; const _CharT* _M_day7; const _CharT* _M_day_a1; const _CharT* _M_day_a2; const _CharT* _M_day_a3; const _CharT* _M_day_a4; const _CharT* _M_day_a5; const _CharT* _M_day_a6; const _CharT* _M_day_a7; const _CharT* _M_month01; const _CharT* _M_month02; const _CharT* _M_month03; const _CharT* _M_month04; const _CharT* _M_month05; const _CharT* _M_month06; const _CharT* _M_month07; const _CharT* _M_month08; const _CharT* _M_month09; const _CharT* _M_month10; const _CharT* _M_month11; const _CharT* _M_month12; const _CharT* _M_month_a01; const _CharT* _M_month_a02; const _CharT* _M_month_a03; const _CharT* _M_month_a04; const _CharT* _M_month_a05; const _CharT* _M_month_a06; const _CharT* _M_month_a07; const _CharT* _M_month_a08; const _CharT* _M_month_a09; const _CharT* _M_month_a10; const _CharT* _M_month_a11; const _CharT* _M_month_a12; public: explicit __timepunct(size_t __refs = 0); explicit __timepunct(__c_locale __cloc, const char* __s, size_t __refs = 0); void _M_put(_CharT* __s, size_t __maxlen, const _CharT* __format, const tm* __tm) const; void _M_date_formats(const _CharT** __date) const { __date[0] = _M_date_format; __date[1] = _M_date_era_format; } void _M_time_formats(const _CharT** __time) const { __time[0] = _M_time_format; __time[1] = _M_time_era_format; } void _M_ampm(const _CharT** __ampm) const { __ampm[0] = _M_am; __ampm[1] = _M_pm; } void _M_date_time_formats(const _CharT** __dt) const { __dt[0] = _M_date_time_format; __dt[1] = _M_date_time_era_format; } void _M_days(const _CharT** __days) const { __days[0] = _M_day1; __days[1] = _M_day2; __days[2] = _M_day3; __days[3] = _M_day4; __days[4] = _M_day5; __days[5] = _M_day6; __days[6] = _M_day7; } void _M_days_abbreviated(const _CharT** __days) const { __days[0] = _M_day_a1; __days[1] = _M_day_a2; __days[2] = _M_day_a3; __days[3] = _M_day_a4; __days[4] = _M_day_a5; __days[5] = _M_day_a6; __days[6] = _M_day_a7; } void _M_months(const _CharT** __months) const { __months[0] = _M_month01; __months[1] = _M_month02; __months[2] = _M_month03; __months[3] = _M_month04; __months[4] = _M_month05; __months[5] = _M_month06; __months[6] = _M_month07; __months[7] = _M_month08; __months[8] = _M_month09; __months[9] = _M_month10; __months[10] = _M_month11; __months[11] = _M_month12; } void _M_months_abbreviated(const _CharT** __months) const { __months[0] = _M_month_a01; __months[1] = _M_month_a02; __months[2] = _M_month_a03; __months[3] = _M_month_a04; __months[4] = _M_month_a05; __months[5] = _M_month_a06; __months[6] = _M_month_a07; __months[7] = _M_month_a08; __months[8] = _M_month_a09; __months[9] = _M_month_a10; __months[10] = _M_month_a11; __months[11] = _M_month_a12; } protected: virtual ~__timepunct(); void _M_initialize_timepunct(__c_locale __cloc = __null); }; template locale::id __timepunct<_CharT>::id; template<> const char* __timepunct::_S_timezones[14]; template<> void __timepunct::_M_initialize_timepunct(__c_locale __cloc); template<> void __timepunct::_M_put(char*, size_t, const char*, const tm*) const; template<> const wchar_t* __timepunct::_S_timezones[14]; template<> void __timepunct::_M_initialize_timepunct(__c_locale __cloc); template<> void __timepunct::_M_put(wchar_t*, size_t, const wchar_t*, const tm*) const; template const _CharT* __timepunct<_CharT>::_S_timezones[14]; # 1 "/usr/include/g++/i586-suse-linux/bits/time_members.h" 1 3 # 37 "/usr/include/g++/i586-suse-linux/bits/time_members.h" 3 template __timepunct<_CharT>::__timepunct(size_t __refs) : locale::facet(__refs) { _M_initialize_timepunct(); } template __timepunct<_CharT>::__timepunct(__c_locale __cloc, const char* __s, size_t __refs) : locale::facet(__refs) { _M_initialize_timepunct(__cloc); } template __timepunct<_CharT>::~__timepunct() { _S_destroy_c_locale(_M_c_locale_timepunct); } # 1311 "/usr/include/g++/bits/locale_facets.h" 2 3 template class time_get : public locale::facet, public time_base { public: typedef _CharT char_type; typedef _InIter iter_type; typedef basic_string<_CharT> __string_type; static locale::id id; explicit time_get(size_t __refs = 0) : locale::facet (__refs) { } dateorder date_order() const { return this->do_date_order(); } iter_type get_time(iter_type __beg, iter_type __end, ios_base& __io, ios_base::iostate& __err, tm* __tm) const { return this->do_get_time(__beg, __end, __io, __err, __tm); } iter_type get_date(iter_type __beg, iter_type __end, ios_base& __io, ios_base::iostate& __err, tm* __tm) const { return this->do_get_date(__beg, __end, __io, __err, __tm); } iter_type get_weekday(iter_type __beg, iter_type __end, ios_base& __io, ios_base::iostate& __err, tm* __tm) const { return this->do_get_weekday(__beg, __end, __io, __err, __tm); } iter_type get_monthname(iter_type __beg, iter_type __end, ios_base& __io, ios_base::iostate& __err, tm* __tm) const { return this->do_get_monthname(__beg, __end, __io, __err, __tm); } iter_type get_year(iter_type __beg, iter_type __end, ios_base& __io, ios_base::iostate& __err, tm* __tm) const { return this->do_get_year(__beg, __end, __io, __err, __tm); } protected: virtual ~time_get() { } virtual dateorder do_date_order() const; virtual iter_type do_get_time(iter_type __beg, iter_type __end, ios_base& __io, ios_base::iostate& __err, tm* __tm) const; virtual iter_type do_get_date(iter_type __beg, iter_type __end, ios_base& __io, ios_base::iostate& __err, tm* __tm) const; virtual iter_type do_get_weekday(iter_type __beg, iter_type __end, ios_base&, ios_base::iostate& __err, tm* __tm) const; virtual iter_type do_get_monthname(iter_type __beg, iter_type __end, ios_base&, ios_base::iostate& __err, tm* __tm) const; virtual iter_type do_get_year(iter_type __beg, iter_type __end, ios_base& __io, ios_base::iostate& __err, tm* __tm) const; void _M_extract_num(iter_type& __beg, iter_type& __end, int& __member, int __min, int __max, size_t __len, const ctype<_CharT>& __ctype, ios_base::iostate& __err) const; void _M_extract_name(iter_type& __beg, iter_type& __end, int& __member, const _CharT** __names, size_t __indexlen, ios_base::iostate& __err) const; void _M_extract_via_format(iter_type& __beg, iter_type& __end, ios_base& __io, ios_base::iostate& __err, tm* __tm, const _CharT* __format) const; }; template locale::id time_get<_CharT, _InIter>::id; template class time_get_byname : public time_get<_CharT, _InIter> { public: typedef _CharT char_type; typedef _InIter iter_type; explicit time_get_byname(const char*, size_t __refs = 0) : time_get<_CharT, _InIter>(__refs) { } protected: virtual ~time_get_byname() { } }; template class time_put : public locale::facet, public time_base { public: typedef _CharT char_type; typedef _OutIter iter_type; static locale::id id; explicit time_put(size_t __refs = 0) : locale::facet(__refs) { } iter_type put(iter_type __s, ios_base& __io, char_type __fill, const tm* __tm, const _CharT* __beg, const _CharT* __end) const; iter_type put(iter_type __s, ios_base& __io, char_type __fill, const tm* __tm, char __format, char __mod = 0) const { return this->do_put(__s, __io, __fill, __tm, __format, __mod); } protected: virtual ~time_put() { } virtual iter_type do_put(iter_type __s, ios_base& __io, char_type __fill, const tm* __tm, char __format, char __mod) const; }; template locale::id time_put<_CharT, _OutIter>::id; template class time_put_byname : public time_put<_CharT, _OutIter> { public: typedef _CharT char_type; typedef _OutIter iter_type; explicit time_put_byname(const char* , size_t __refs = 0) : time_put<_CharT, _OutIter>(__refs) { }; protected: virtual ~time_put_byname() { } }; class money_base { public: enum part { none, space, symbol, sign, value }; struct pattern { char field[4]; }; static const pattern _S_default_pattern; static pattern _S_construct_pattern(char __precedes, char __space, char __posn); }; template class moneypunct : public locale::facet, public money_base { public: typedef _CharT char_type; typedef basic_string<_CharT> string_type; static const bool intl = _Intl; static locale::id id; private: const char* _M_grouping; char_type _M_decimal_point; char_type _M_thousands_sep; const char_type* _M_curr_symbol; const char_type* _M_positive_sign; const char_type* _M_negative_sign; int _M_frac_digits; pattern _M_pos_format; pattern _M_neg_format; public: explicit moneypunct(size_t __refs = 0) : locale::facet(__refs) { _M_initialize_moneypunct(); } explicit moneypunct(__c_locale __cloc, const char* __s, size_t __refs = 0) : locale::facet(__refs) { _M_initialize_moneypunct(__cloc, __s); } char_type decimal_point() const { return this->do_decimal_point(); } char_type thousands_sep() const { return this->do_thousands_sep(); } string grouping() const { return this->do_grouping(); } string_type curr_symbol() const { return this->do_curr_symbol(); } string_type positive_sign() const { return this->do_positive_sign(); } string_type negative_sign() const { return this->do_negative_sign(); } int frac_digits() const { return this->do_frac_digits(); } pattern pos_format() const { return this->do_pos_format(); } pattern neg_format() const { return this->do_neg_format(); } protected: virtual ~moneypunct(); virtual char_type do_decimal_point() const { return _M_decimal_point; } virtual char_type do_thousands_sep() const { return _M_thousands_sep; } virtual string do_grouping() const { return _M_grouping; } virtual string_type do_curr_symbol() const { return _M_curr_symbol; } virtual string_type do_positive_sign() const { return _M_positive_sign; } virtual string_type do_negative_sign() const { return _M_negative_sign; } virtual int do_frac_digits() const { return _M_frac_digits; } virtual pattern do_pos_format() const { return _M_pos_format; } virtual pattern do_neg_format() const { return _M_neg_format; } void _M_initialize_moneypunct(__c_locale __cloc = __null, const char* __name = __null); }; template locale::id moneypunct<_CharT, _Intl>::id; template const bool moneypunct<_CharT, _Intl>::intl; template<> moneypunct::~moneypunct(); template<> moneypunct::~moneypunct(); template<> void moneypunct::_M_initialize_moneypunct(__c_locale, const char*); template<> void moneypunct::_M_initialize_moneypunct(__c_locale, const char*); template<> moneypunct::~moneypunct(); template<> moneypunct::~moneypunct(); template<> void moneypunct::_M_initialize_moneypunct(__c_locale, const char*); template<> void moneypunct::_M_initialize_moneypunct(__c_locale, const char*); template class moneypunct_byname : public moneypunct<_CharT, _Intl> { __c_locale _M_c_locale_moneypunct; public: typedef _CharT char_type; typedef basic_string<_CharT> string_type; static const bool intl = _Intl; explicit moneypunct_byname(const char* __s, size_t __refs = 0) : moneypunct<_CharT, _Intl>(__refs) { _S_create_c_locale(_M_c_locale_moneypunct, __s); _M_initialize_moneypunct(_M_c_locale_moneypunct); } protected: virtual ~moneypunct_byname() { _S_destroy_c_locale(_M_c_locale_moneypunct); } }; template const bool moneypunct_byname<_CharT, _Intl>::intl; template class money_get : public locale::facet { public: typedef _CharT char_type; typedef _InIter iter_type; typedef basic_string<_CharT> string_type; static locale::id id; explicit money_get(size_t __refs = 0) : locale::facet(__refs) { } iter_type get(iter_type __s, iter_type __end, bool __intl, ios_base& __io, ios_base::iostate& __err, long double& __units) const { return this->do_get(__s, __end, __intl, __io, __err, __units); } iter_type get(iter_type __s, iter_type __end, bool __intl, ios_base& __io, ios_base::iostate& __err, string_type& __digits) const { return this->do_get(__s, __end, __intl, __io, __err, __digits); } protected: virtual ~money_get() { } virtual iter_type do_get(iter_type __s, iter_type __end, bool __intl, ios_base& __io, ios_base::iostate& __err, long double& __units) const; virtual iter_type do_get(iter_type __s, iter_type __end, bool __intl, ios_base& __io, ios_base::iostate& __err, string_type& __digits) const; }; template locale::id money_get<_CharT, _InIter>::id; template class money_put : public locale::facet { public: typedef _CharT char_type; typedef _OutIter iter_type; typedef basic_string<_CharT> string_type; static locale::id id; explicit money_put(size_t __refs = 0) : locale::facet(__refs) { } iter_type put(iter_type __s, bool __intl, ios_base& __io, char_type __fill, long double __units) const { return this->do_put(__s, __intl, __io, __fill, __units); } iter_type put(iter_type __s, bool __intl, ios_base& __io, char_type __fill, const string_type& __digits) const { return this->do_put(__s, __intl, __io, __fill, __digits); } protected: virtual ~money_put() { } virtual iter_type do_put(iter_type __s, bool __intl, ios_base& __io, char_type __fill, long double __units) const; virtual iter_type do_put(iter_type __s, bool __intl, ios_base& __io, char_type __fill, const string_type& __digits) const; }; template locale::id money_put<_CharT, _OutIter>::id; struct messages_base { typedef int catalog; }; template class messages : public locale::facet, public messages_base { public: typedef _CharT char_type; typedef basic_string<_CharT> string_type; protected: __c_locale _M_c_locale_messages; char* _M_name_messages; public: static locale::id id; explicit messages(size_t __refs = 0); explicit messages(__c_locale __cloc, const char* __s, size_t __refs = 0); catalog open(const basic_string& __s, const locale& __loc) const { return this->do_open(__s, __loc); } catalog open(const basic_string&, const locale&, const char*) const; string_type get(catalog __c, int __set, int __msgid, const string_type& __s) const { return this->do_get(__c, __set, __msgid, __s); } void close(catalog __c) const { return this->do_close(__c); } protected: virtual ~messages(); virtual catalog do_open(const basic_string&, const locale&) const; virtual string_type do_get(catalog, int, int, const string_type& __dfault) const; virtual void do_close(catalog) const; char* _M_convert_to_char(const string_type& __msg) const { return reinterpret_cast(const_cast<_CharT*>(__msg.c_str())); } string_type _M_convert_from_char(char* __msg) const { size_t __len = char_traits::length(__msg) - 1; # 1856 "/usr/include/g++/bits/locale_facets.h" 3 return string_type(); } }; template locale::id messages<_CharT>::id; template<> string messages::do_get(catalog, int, int, const string&) const; template<> wstring messages::do_get(catalog, int, int, const wstring&) const; template class messages_byname : public messages<_CharT> { public: typedef _CharT char_type; typedef basic_string<_CharT> string_type; explicit messages_byname(const char* __s, size_t __refs = 0); protected: virtual ~messages_byname() { } }; # 1 "/usr/include/g++/i586-suse-linux/bits/messages_members.h" 1 3 # 37 "/usr/include/g++/i586-suse-linux/bits/messages_members.h" 3 template messages<_CharT>::messages(size_t __refs) : locale::facet(__refs) { _M_c_locale_messages = _S_c_locale; } template messages<_CharT>::messages(__c_locale __cloc, const char* __s, size_t __refs) : locale::facet(__refs) { _M_c_locale_messages = _S_clone_c_locale(__cloc); } template typename messages<_CharT>::catalog messages<_CharT>::open(const basic_string& __s, const locale& __loc, const char* __dir) const { bindtextdomain(__s.c_str(), __dir); return this->do_open(__s, __loc); } template messages<_CharT>::~messages() { _S_destroy_c_locale(_M_c_locale_messages); } template typename messages<_CharT>::catalog messages<_CharT>::do_open(const basic_string& __s, const locale&) const { textdomain(__s.c_str()); return 0; } template void messages<_CharT>::do_close(catalog) const { } template messages_byname<_CharT>::messages_byname(const char* __s, size_t __refs) : messages<_CharT>(__refs) { _S_destroy_c_locale(_M_c_locale_messages); _S_create_c_locale(_M_c_locale_messages, __s); } # 1892 "/usr/include/g++/bits/locale_facets.h" 2 3 template __inline__ bool isspace(_CharT __c, const locale& __loc) { return use_facet >(__loc).is(ctype_base::space, __c); } template __inline__ bool isprint(_CharT __c, const locale& __loc) { return use_facet >(__loc).is(ctype_base::print, __c); } template __inline__ bool iscntrl(_CharT __c, const locale& __loc) { return use_facet >(__loc).is(ctype_base::cntrl, __c); } template __inline__ bool isupper(_CharT __c, const locale& __loc) { return use_facet >(__loc).is(ctype_base::upper, __c); } template __inline__ bool islower(_CharT __c, const locale& __loc) { return use_facet >(__loc).is(ctype_base::lower, __c); } template __inline__ bool isalpha(_CharT __c, const locale& __loc) { return use_facet >(__loc).is(ctype_base::alpha, __c); } template __inline__ bool isdigit(_CharT __c, const locale& __loc) { return use_facet >(__loc).is(ctype_base::digit, __c); } template __inline__ bool ispunct(_CharT __c, const locale& __loc) { return use_facet >(__loc).is(ctype_base::punct, __c); } template __inline__ bool isxdigit(_CharT __c, const locale& __loc) { return use_facet >(__loc).is(ctype_base::xdigit, __c); } template __inline__ bool isalnum(_CharT __c, const locale& __loc) { return use_facet >(__loc).is(ctype_base::alnum, __c); } template __inline__ bool isgraph(_CharT __c, const locale& __loc) { return use_facet >(__loc).is(ctype_base::graph, __c); } template __inline__ _CharT toupper(_CharT __c, const locale& __loc) { return use_facet >(__loc).toupper(__c); } template __inline__ _CharT tolower(_CharT __c, const locale& __loc) { return use_facet >(__loc).tolower(__c); } # 1973 "/usr/include/g++/bits/locale_facets.h" 3 class __locale_cache_base { friend class std::locale::_Impl; friend class locale; public: virtual ~__locale_cache_base() { } }; template class __locale_cache : public __locale_cache_base { __locale_cache(const locale&) {} }; template class __locale_cache > : public __locale_cache_base { typedef _CharT char_type; typedef char_traits<_CharT> traits_type; typedef basic_string<_CharT> string_type; public: _CharT _M_decimal_point; _CharT _M_thousands_sep; const _CharT* _M_truename; const _CharT* _M_falsename; bool _M_use_grouping; const char* _M_grouping; # 2035 "/usr/include/g++/bits/locale_facets.h" 3 _CharT _M_atoms_out[__num_base::_S_end]; __locale_cache(const locale& __loc); __locale_cache(const locale& __loc, bool); ~__locale_cache() { delete [] _M_truename; delete [] _M_falsename; delete [] _M_grouping; } }; } # 45 "/usr/include/g++/bits/basic_ios.h" 2 3 namespace std { template class basic_ios : public ios_base { public: typedef _CharT char_type; typedef typename _Traits::int_type int_type; typedef typename _Traits::pos_type pos_type; typedef typename _Traits::off_type off_type; typedef _Traits traits_type; # 78 "/usr/include/g++/bits/basic_ios.h" 3 typedef ctype<_CharT> __ctype_type; typedef ostreambuf_iterator<_CharT, _Traits> __ostreambuf_iter; typedef num_put<_CharT, __ostreambuf_iter> __numput_type; typedef istreambuf_iterator<_CharT, _Traits> __istreambuf_iter; typedef num_get<_CharT, __istreambuf_iter> __numget_type; friend void ios_base::Init::_S_ios_create(bool); protected: basic_ostream<_CharT, _Traits>* _M_tie; mutable char_type _M_fill; mutable bool _M_fill_init; basic_streambuf<_CharT, _Traits>* _M_streambuf; const __ctype_type* _M_fctype; const __numput_type* _M_fnumput; const __numget_type* _M_fnumget; public: operator void*() const { return this->fail() ? 0 : const_cast(this); } bool operator!() const { return this->fail(); } # 124 "/usr/include/g++/bits/basic_ios.h" 3 iostate rdstate() const { return _M_streambuf_state; } # 135 "/usr/include/g++/bits/basic_ios.h" 3 void clear(iostate __state = goodbit); void setstate(iostate __state) { this->clear(this->rdstate() | __state); } void _M_setstate(iostate __state) { _M_streambuf_state |= __state; if (this->exceptions() & __state) throw; } bool good() const { return this->rdstate() == 0; } bool eof() const { return (this->rdstate() & eofbit) != 0; } # 188 "/usr/include/g++/bits/basic_ios.h" 3 bool fail() const { return (this->rdstate() & (badbit | failbit)) != 0; } bool bad() const { return (this->rdstate() & badbit) != 0; } # 209 "/usr/include/g++/bits/basic_ios.h" 3 iostate exceptions() const { return _M_exception; } # 244 "/usr/include/g++/bits/basic_ios.h" 3 void exceptions(iostate __except) { _M_exception = __except; this->clear(_M_streambuf_state); } explicit basic_ios(basic_streambuf<_CharT, _Traits>* __sb) : ios_base(), _M_fctype(0), _M_fnumput(0), _M_fnumget(0) { this->init(__sb); } virtual ~basic_ios() { } # 281 "/usr/include/g++/bits/basic_ios.h" 3 basic_ostream<_CharT, _Traits>* tie() const { return _M_tie; } # 293 "/usr/include/g++/bits/basic_ios.h" 3 basic_ostream<_CharT, _Traits>* tie(basic_ostream<_CharT, _Traits>* __tiestr) { basic_ostream<_CharT, _Traits>* __old = _M_tie; _M_tie = __tiestr; return __old; } basic_streambuf<_CharT, _Traits>* rdbuf() const { return _M_streambuf; } # 326 "/usr/include/g++/bits/basic_ios.h" 3 basic_streambuf<_CharT, _Traits>* rdbuf(basic_streambuf<_CharT, _Traits>* __sb); basic_ios& copyfmt(const basic_ios& __rhs); char_type fill() const { if (!_M_fill_init) { _M_fill = this->widen(' '); _M_fill_init = true; } return _M_fill; } # 361 "/usr/include/g++/bits/basic_ios.h" 3 char_type fill(char_type __ch) { char_type __old = this->fill(); _M_fill = __ch; return __old; } # 381 "/usr/include/g++/bits/basic_ios.h" 3 locale imbue(const locale& __loc); # 401 "/usr/include/g++/bits/basic_ios.h" 3 char narrow(char_type __c, char __dfault) const; # 419 "/usr/include/g++/bits/basic_ios.h" 3 char_type widen(char __c) const; protected: basic_ios() : ios_base() { } # 441 "/usr/include/g++/bits/basic_ios.h" 3 void init(basic_streambuf<_CharT, _Traits>* __sb); bool _M_check_facet(const locale::facet* __f) const { if (!__f) __throw_bad_cast(); return true; } void _M_cache_locale(const locale& __loc); void _M_cache_facets(const locale& __loc); }; } # 1 "/usr/include/g++/bits/basic_ios.tcc" 1 3 # 33 "/usr/include/g++/bits/basic_ios.tcc" 3 # 34 "/usr/include/g++/bits/basic_ios.tcc" 3 namespace std { template void basic_ios<_CharT, _Traits>::clear(iostate __state) { if (this->rdbuf()) _M_streambuf_state = __state; else _M_streambuf_state = __state | badbit; if ((this->rdstate() & this->exceptions())) __throw_ios_failure("basic_ios::clear(iostate) caused exception"); } template basic_streambuf<_CharT, _Traits>* basic_ios<_CharT, _Traits>::rdbuf(basic_streambuf<_CharT, _Traits>* __sb) { basic_streambuf<_CharT, _Traits>* __old = _M_streambuf; _M_streambuf = __sb; this->clear(); return __old; } template basic_ios<_CharT, _Traits>& basic_ios<_CharT, _Traits>::copyfmt(const basic_ios& __rhs) { if (this != &__rhs) { _Words* __words = (__rhs._M_word_size <= _S_local_word_size) ? _M_local_word : new _Words[__rhs._M_word_size]; _Callback_list* __cb = __rhs._M_callbacks; if (__cb) __cb->_M_add_reference(); _M_call_callbacks(erase_event); if (_M_word != _M_local_word) { delete [] _M_word; _M_word = 0; } _M_dispose_callbacks(); _M_callbacks = __cb; for (int __i = 0; __i < __rhs._M_word_size; ++__i) __words[__i] = __rhs._M_word[__i]; if (_M_word != _M_local_word) { delete [] _M_word; _M_word = 0; } _M_word = __words; _M_word_size = __rhs._M_word_size; this->flags(__rhs.flags()); this->width(__rhs.width()); this->precision(__rhs.precision()); this->tie(__rhs.tie()); this->fill(__rhs.fill()); _M_ios_locale = __rhs.getloc(); _M_call_callbacks(copyfmt_event); _M_cache_locale(_M_ios_locale); this->exceptions(__rhs.exceptions()); } return *this; } template char basic_ios<_CharT, _Traits>::narrow(char_type __c, char __dfault) const { char __ret = __dfault; if (_M_check_facet(_M_fctype)) __ret = _M_fctype->narrow(__c, __dfault); return __ret; } template _CharT basic_ios<_CharT, _Traits>::widen(char __c) const { char_type __ret = char_type(); if (_M_check_facet(_M_fctype)) __ret = _M_fctype->widen(__c); return __ret; } template locale basic_ios<_CharT, _Traits>::imbue(const locale& __loc) { locale __old(this->getloc()); ios_base::imbue(__loc); _M_cache_locale(__loc); if (this->rdbuf() != 0) this->rdbuf()->pubimbue(__loc); return __old; } template void basic_ios<_CharT, _Traits>::init(basic_streambuf<_CharT, _Traits>* __sb) { ios_base::_M_init(); _M_cache_locale(_M_ios_locale); _M_tie = 0; # 170 "/usr/include/g++/bits/basic_ios.tcc" 3 _M_fill = _CharT(); _M_fill_init = false; _M_exception = goodbit; _M_streambuf = __sb; _M_streambuf_state = __sb ? goodbit : badbit; } template void basic_ios<_CharT, _Traits>::_M_cache_locale(const locale& __loc) { if (__builtin_expect(has_facet<__ctype_type>(__loc), true)) _M_fctype = &use_facet<__ctype_type>(__loc); else _M_fctype = 0; if (__builtin_expect(has_facet<__numput_type>(__loc), true)) _M_fnumput = &use_facet<__numput_type>(__loc); else _M_fnumput = 0; if (__builtin_expect(has_facet<__numget_type>(__loc), true)) _M_fnumget = &use_facet<__numget_type>(__loc); else _M_fnumget = 0; } template void basic_ios<_CharT, _Traits>::_M_cache_facets(const locale& __loc) { if (__builtin_expect(has_facet<__ctype_type>(__loc), true)) _M_fctype = &use_facet<__ctype_type>(__loc); if (__builtin_expect(has_facet<__numput_type>(__loc), true)) _M_fnumput = &use_facet<__numput_type>(__loc); if (__builtin_expect(has_facet<__numget_type>(__loc), true)) _M_fnumget = &use_facet<__numget_type>(__loc); } extern template class basic_ios; extern template class basic_ios; } # 466 "/usr/include/g++/bits/basic_ios.h" 2 3 # 52 "/usr/include/g++/ios" 2 3 # 45 "/usr/include/g++/istream" 2 3 # 1 "/usr/include/g++/limits" 1 3 # 46 "/usr/include/g++/limits" 3 # 47 "/usr/include/g++/limits" 3 # 150 "/usr/include/g++/limits" 3 namespace std { enum float_round_style { round_indeterminate = -1, round_toward_zero = 0, round_to_nearest = 1, round_toward_infinity = 2, round_toward_neg_infinity = 3 }; enum float_denorm_style { denorm_indeterminate = -1, denorm_absent = 0, denorm_present = 1 }; struct __numeric_limits_base { static const bool is_specialized = false; static const int digits = 0; static const int digits10 = 0; static const bool is_signed = false; static const bool is_integer = false; static const bool is_exact = false; static const int radix = 0; static const int min_exponent = 0; static const int min_exponent10 = 0; static const int max_exponent = 0; static const int max_exponent10 = 0; static const bool has_infinity = false; static const bool has_quiet_NaN = false; static const bool has_signaling_NaN = false; static const float_denorm_style has_denorm = denorm_absent; static const bool has_denorm_loss = false; static const bool is_iec559 = false; static const bool is_bounded = false; static const bool is_modulo = false; static const bool traps = false; static const bool tinyness_before = false; static const float_round_style round_style = round_toward_zero; }; template struct numeric_limits : public __numeric_limits_base { static _Tp min() throw() { return static_cast<_Tp>(0); } static _Tp max() throw() { return static_cast<_Tp>(0); } static _Tp epsilon() throw() { return static_cast<_Tp>(0); } static _Tp round_error() throw() { return static_cast<_Tp>(0); } static _Tp infinity() throw() { return static_cast<_Tp>(0); } static _Tp quiet_NaN() throw() { return static_cast<_Tp>(0); } static _Tp signaling_NaN() throw() { return static_cast<_Tp>(0); } static _Tp denorm_min() throw() { return static_cast<_Tp>(0); } }; template<> struct numeric_limits { static const bool is_specialized = true; static bool min() throw() { return false; } static bool max() throw() { return true; } static const int digits = 1; static const int digits10 = 0; static const bool is_signed = false; static const bool is_integer = true; static const bool is_exact = true; static const int radix = 2; static bool epsilon() throw() { return false; } static bool round_error() throw() { return false; } static const int min_exponent = 0; static const int min_exponent10 = 0; static const int max_exponent = 0; static const int max_exponent10 = 0; static const bool has_infinity = false; static const bool has_quiet_NaN = false; static const bool has_signaling_NaN = false; static const float_denorm_style has_denorm = denorm_absent; static const bool has_denorm_loss = false; static bool infinity() throw() { return false; } static bool quiet_NaN() throw() { return false; } static bool signaling_NaN() throw() { return false; } static bool denorm_min() throw() { return false; } static const bool is_iec559 = false; static const bool is_bounded = true; static const bool is_modulo = false; static const bool traps = true; static const bool tinyness_before = false; static const float_round_style round_style = round_toward_zero; }; template<> struct numeric_limits { static const bool is_specialized = true; static char min() throw() { return (((char)(-1) < 0) ? (char)1 << (sizeof(char) * 8 - ((char)(-1) < 0)) : (char)0); } static char max() throw() { return (((char)(-1) < 0) ? ((char)1 << (sizeof(char) * 8 - ((char)(-1) < 0))) - 1 : ~(char)0); } static const int digits = (sizeof(char) * 8 - ((char)(-1) < 0)); static const int digits10 = ((sizeof(char) * 8 - ((char)(-1) < 0)) * 643 / 2136); static const bool is_signed = ((char)(-1) < 0); static const bool is_integer = true; static const bool is_exact = true; static const int radix = 2; static char epsilon() throw() { return 0; } static char round_error() throw() { return 0; } static const int min_exponent = 0; static const int min_exponent10 = 0; static const int max_exponent = 0; static const int max_exponent10 = 0; static const bool has_infinity = false; static const bool has_quiet_NaN = false; static const bool has_signaling_NaN = false; static const float_denorm_style has_denorm = denorm_absent; static const bool has_denorm_loss = false; static char infinity() throw() { return char(); } static char quiet_NaN() throw() { return char(); } static char signaling_NaN() throw() { return char(); } static char denorm_min() throw() { return static_cast(0); } static const bool is_iec559 = false; static const bool is_bounded = true; static const bool is_modulo = true; static const bool traps = true; static const bool tinyness_before = false; static const float_round_style round_style = round_toward_zero; }; template<> struct numeric_limits { static const bool is_specialized = true; static signed char min() throw() { return -127 - 1; } static signed char max() throw() { return 127; } static const int digits = (sizeof(signed char) * 8 - ((signed char)(-1) < 0)); static const int digits10 = ((sizeof(signed char) * 8 - ((signed char)(-1) < 0)) * 643 / 2136); static const bool is_signed = true; static const bool is_integer = true; static const bool is_exact = true; static const int radix = 2; static signed char epsilon() throw() { return 0; } static signed char round_error() throw() { return 0; } static const int min_exponent = 0; static const int min_exponent10 = 0; static const int max_exponent = 0; static const int max_exponent10 = 0; static const bool has_infinity = false; static const bool has_quiet_NaN = false; static const bool has_signaling_NaN = false; static const float_denorm_style has_denorm = denorm_absent; static const bool has_denorm_loss = false; static signed char infinity() throw() { return static_cast(0); } static signed char quiet_NaN() throw() { return static_cast(0); } static signed char signaling_NaN() throw() { return static_cast(0); } static signed char denorm_min() throw() { return static_cast(0); } static const bool is_iec559 = false; static const bool is_bounded = true; static const bool is_modulo = true; static const bool traps = true; static const bool tinyness_before = false; static const float_round_style round_style = round_toward_zero; }; template<> struct numeric_limits { static const bool is_specialized = true; static unsigned char min() throw() { return 0; } static unsigned char max() throw() { return 127 * 2U + 1; } static const int digits = (sizeof(unsigned char) * 8 - ((unsigned char)(-1) < 0)); static const int digits10 = ((sizeof(unsigned char) * 8 - ((unsigned char)(-1) < 0)) * 643 / 2136); static const bool is_signed = false; static const bool is_integer = true; static const bool is_exact = true; static const int radix = 2; static unsigned char epsilon() throw() { return 0; } static unsigned char round_error() throw() { return 0; } static const int min_exponent = 0; static const int min_exponent10 = 0; static const int max_exponent = 0; static const int max_exponent10 = 0; static const bool has_infinity = false; static const bool has_quiet_NaN = false; static const bool has_signaling_NaN = false; static const float_denorm_style has_denorm = denorm_absent; static const bool has_denorm_loss = false; static unsigned char infinity() throw() { return static_cast(0); } static unsigned char quiet_NaN() throw() { return static_cast(0); } static unsigned char signaling_NaN() throw() { return static_cast(0); } static unsigned char denorm_min() throw() { return static_cast(0); } static const bool is_iec559 = false; static const bool is_bounded = true; static const bool is_modulo = true; static const bool traps = true; static const bool tinyness_before = false; static const float_round_style round_style = round_toward_zero; }; template<> struct numeric_limits { static const bool is_specialized = true; static wchar_t min() throw() { return (((wchar_t)(-1) < 0) ? (wchar_t)1 << (sizeof(wchar_t) * 8 - ((wchar_t)(-1) < 0)) : (wchar_t)0); } static wchar_t max() throw() { return (((wchar_t)(-1) < 0) ? ((wchar_t)1 << (sizeof(wchar_t) * 8 - ((wchar_t)(-1) < 0))) - 1 : ~(wchar_t)0); } static const int digits = (sizeof(wchar_t) * 8 - ((wchar_t)(-1) < 0)); static const int digits10 = ((sizeof(wchar_t) * 8 - ((wchar_t)(-1) < 0)) * 643 / 2136); static const bool is_signed = ((wchar_t)(-1) < 0); static const bool is_integer = true; static const bool is_exact = true; static const int radix = 2; static wchar_t epsilon() throw() { return 0; } static wchar_t round_error() throw() { return 0; } static const int min_exponent = 0; static const int min_exponent10 = 0; static const int max_exponent = 0; static const int max_exponent10 = 0; static const bool has_infinity = false; static const bool has_quiet_NaN = false; static const bool has_signaling_NaN = false; static const float_denorm_style has_denorm = denorm_absent; static const bool has_denorm_loss = false; static wchar_t infinity() throw() { return wchar_t(); } static wchar_t quiet_NaN() throw() { return wchar_t(); } static wchar_t signaling_NaN() throw() { return wchar_t(); } static wchar_t denorm_min() throw() { return wchar_t(); } static const bool is_iec559 = false; static const bool is_bounded = true; static const bool is_modulo = true; static const bool traps = true; static const bool tinyness_before = false; static const float_round_style round_style = round_toward_zero; }; template<> struct numeric_limits { static const bool is_specialized = true; static short min() throw() { return -32767 - 1; } static short max() throw() { return 32767; } static const int digits = (sizeof(short) * 8 - ((short)(-1) < 0)); static const int digits10 = ((sizeof(short) * 8 - ((short)(-1) < 0)) * 643 / 2136); static const bool is_signed = true; static const bool is_integer = true; static const bool is_exact = true; static const int radix = 2; static short epsilon() throw() { return 0; } static short round_error() throw() { return 0; } static const int min_exponent = 0; static const int min_exponent10 = 0; static const int max_exponent = 0; static const int max_exponent10 = 0; static const bool has_infinity = false; static const bool has_quiet_NaN = false; static const bool has_signaling_NaN = false; static const float_denorm_style has_denorm = denorm_absent; static const bool has_denorm_loss = false; static short infinity() throw() { return short(); } static short quiet_NaN() throw() { return short(); } static short signaling_NaN() throw() { return short(); } static short denorm_min() throw() { return short(); } static const bool is_iec559 = false; static const bool is_bounded = true; static const bool is_modulo = true; static const bool traps = true; static const bool tinyness_before = false; static const float_round_style round_style = round_toward_zero; }; template<> struct numeric_limits { static const bool is_specialized = true; static unsigned short min() throw() { return 0; } static unsigned short max() throw() { return 32767 * 2U + 1; } static const int digits = (sizeof(unsigned short) * 8 - ((unsigned short)(-1) < 0)); static const int digits10 = ((sizeof(unsigned short) * 8 - ((unsigned short)(-1) < 0)) * 643 / 2136); static const bool is_signed = false; static const bool is_integer = true; static const bool is_exact = true; static const int radix = 2; static unsigned short epsilon() throw() { return 0; } static unsigned short round_error() throw() { return 0; } static const int min_exponent = 0; static const int min_exponent10 = 0; static const int max_exponent = 0; static const int max_exponent10 = 0; static const bool has_infinity = false; static const bool has_quiet_NaN = false; static const bool has_signaling_NaN = false; static const float_denorm_style has_denorm = denorm_absent; static const bool has_denorm_loss = false; static unsigned short infinity() throw() { return static_cast(0); } static unsigned short quiet_NaN() throw() { return static_cast(0); } static unsigned short signaling_NaN() throw() { return static_cast(0); } static unsigned short denorm_min() throw() { return static_cast(0); } static const bool is_iec559 = false; static const bool is_bounded = true; static const bool is_modulo = true; static const bool traps = true; static const bool tinyness_before = false; static const float_round_style round_style = round_toward_zero; }; template<> struct numeric_limits { static const bool is_specialized = true; static int min() throw() { return -2147483647 - 1; } static int max() throw() { return 2147483647; } static const int digits = (sizeof(int) * 8 - ((int)(-1) < 0)); static const int digits10 = ((sizeof(int) * 8 - ((int)(-1) < 0)) * 643 / 2136); static const bool is_signed = true; static const bool is_integer = true; static const bool is_exact = true; static const int radix = 2; static int epsilon() throw() { return 0; } static int round_error() throw() { return 0; } static const int min_exponent = 0; static const int min_exponent10 = 0; static const int max_exponent = 0; static const int max_exponent10 = 0; static const bool has_infinity = false; static const bool has_quiet_NaN = false; static const bool has_signaling_NaN = false; static const float_denorm_style has_denorm = denorm_absent; static const bool has_denorm_loss = false; static int infinity() throw() { return static_cast(0); } static int quiet_NaN() throw() { return static_cast(0); } static int signaling_NaN() throw() { return static_cast(0); } static int denorm_min() throw() { return static_cast(0); } static const bool is_iec559 = false; static const bool is_bounded = true; static const bool is_modulo = true; static const bool traps = true; static const bool tinyness_before = false; static const float_round_style round_style = round_toward_zero; }; template<> struct numeric_limits { static const bool is_specialized = true; static unsigned int min() throw() { return 0; } static unsigned int max() throw() { return 2147483647 * 2U + 1; } static const int digits = (sizeof(unsigned int) * 8 - ((unsigned int)(-1) < 0)); static const int digits10 = ((sizeof(unsigned int) * 8 - ((unsigned int)(-1) < 0)) * 643 / 2136); static const bool is_signed = false; static const bool is_integer = true; static const bool is_exact = true; static const int radix = 2; static unsigned int epsilon() throw() { return 0; } static unsigned int round_error() throw() { return 0; } static const int min_exponent = 0; static const int min_exponent10 = 0; static const int max_exponent = 0; static const int max_exponent10 = 0; static const bool has_infinity = false; static const bool has_quiet_NaN = false; static const bool has_signaling_NaN = false; static const float_denorm_style has_denorm = denorm_absent; static const bool has_denorm_loss = false; static unsigned int infinity() throw() { return static_cast(0); } static unsigned int quiet_NaN() throw() { return static_cast(0); } static unsigned int signaling_NaN() throw() { return static_cast(0); } static unsigned int denorm_min() throw() { return static_cast(0); } static const bool is_iec559 = false; static const bool is_bounded = true; static const bool is_modulo = true; static const bool traps = true; static const bool tinyness_before = false; static const float_round_style round_style = round_toward_zero; }; template<> struct numeric_limits { static const bool is_specialized = true; static long min() throw() { return -2147483647L - 1; } static long max() throw() { return 2147483647L; } static const int digits = (sizeof(long) * 8 - ((long)(-1) < 0)); static const int digits10 = ((sizeof(long) * 8 - ((long)(-1) < 0)) * 643 / 2136); static const bool is_signed = true; static const bool is_integer = true; static const bool is_exact = true; static const int radix = 2; static long epsilon() throw() { return 0; } static long round_error() throw() { return 0; } static const int min_exponent = 0; static const int min_exponent10 = 0; static const int max_exponent = 0; static const int max_exponent10 = 0; static const bool has_infinity = false; static const bool has_quiet_NaN = false; static const bool has_signaling_NaN = false; static const float_denorm_style has_denorm = denorm_absent; static const bool has_denorm_loss = false; static long infinity() throw() { return static_cast(0); } static long quiet_NaN() throw() { return static_cast(0); } static long signaling_NaN() throw() { return static_cast(0); } static long denorm_min() throw() { return static_cast(0); } static const bool is_iec559 = false; static const bool is_bounded = true; static const bool is_modulo = true; static const bool traps = true; static const bool tinyness_before = false; static const float_round_style round_style = round_toward_zero; }; template<> struct numeric_limits { static const bool is_specialized = true; static unsigned long min() throw() { return 0; } static unsigned long max() throw() { return 2147483647L * 2UL + 1; } static const int digits = (sizeof(unsigned long) * 8 - ((unsigned long)(-1) < 0)); static const int digits10 = ((sizeof(unsigned long) * 8 - ((unsigned long)(-1) < 0)) * 643 / 2136); static const bool is_signed = false; static const bool is_integer = true; static const bool is_exact = true; static const int radix = 2; static unsigned long epsilon() throw() { return 0; } static unsigned long round_error() throw() { return 0; } static const int min_exponent = 0; static const int min_exponent10 = 0; static const int max_exponent = 0; static const int max_exponent10 = 0; static const bool has_infinity = false; static const bool has_quiet_NaN = false; static const bool has_signaling_NaN = false; static const float_denorm_style has_denorm = denorm_absent; static const bool has_denorm_loss = false; static unsigned long infinity() throw() { return static_cast(0); } static unsigned long quiet_NaN() throw() { return static_cast(0); } static unsigned long signaling_NaN() throw() { return static_cast(0); } static unsigned long denorm_min() throw() { return static_cast(0); } static const bool is_iec559 = false; static const bool is_bounded = true; static const bool is_modulo = true; static const bool traps = true; static const bool tinyness_before = false; static const float_round_style round_style = round_toward_zero; }; template<> struct numeric_limits { static const bool is_specialized = true; static long long min() throw() { return -9223372036854775807LL - 1; } static long long max() throw() { return 9223372036854775807LL; } static const int digits = (sizeof(long long) * 8 - ((long long)(-1) < 0)); static const int digits10 = ((sizeof(long long) * 8 - ((long long)(-1) < 0)) * 643 / 2136); static const bool is_signed = true; static const bool is_integer = true; static const bool is_exact = true; static const int radix = 2; static long long epsilon() throw() { return 0; } static long long round_error() throw() { return 0; } static const int min_exponent = 0; static const int min_exponent10 = 0; static const int max_exponent = 0; static const int max_exponent10 = 0; static const bool has_infinity = false; static const bool has_quiet_NaN = false; static const bool has_signaling_NaN = false; static const float_denorm_style has_denorm = denorm_absent; static const bool has_denorm_loss = false; static long long infinity() throw() { return static_cast(0); } static long long quiet_NaN() throw() { return static_cast(0); } static long long signaling_NaN() throw() { return static_cast(0); } static long long denorm_min() throw() { return static_cast(0); } static const bool is_iec559 = false; static const bool is_bounded = true; static const bool is_modulo = true; static const bool traps = true; static const bool tinyness_before = false; static const float_round_style round_style = round_toward_zero; }; template<> struct numeric_limits { static const bool is_specialized = true; static unsigned long long min() throw() { return 0; } static unsigned long long max() throw() { return 9223372036854775807LL * 2ULL + 1; } static const int digits = (sizeof(unsigned long long) * 8 - ((unsigned long long)(-1) < 0)); static const int digits10 = ((sizeof(unsigned long long) * 8 - ((unsigned long long)(-1) < 0)) * 643 / 2136); static const bool is_signed = false; static const bool is_integer = true; static const bool is_exact = true; static const int radix = 2; static unsigned long long epsilon() throw() { return 0; } static unsigned long long round_error() throw() { return 0; } static const int min_exponent = 0; static const int min_exponent10 = 0; static const int max_exponent = 0; static const int max_exponent10 = 0; static const bool has_infinity = false; static const bool has_quiet_NaN = false; static const bool has_signaling_NaN = false; static const float_denorm_style has_denorm = denorm_absent; static const bool has_denorm_loss = false; static unsigned long long infinity() throw() { return static_cast(0); } static unsigned long long quiet_NaN() throw() { return static_cast(0); } static unsigned long long signaling_NaN() throw() { return static_cast(0); } static unsigned long long denorm_min() throw() { return static_cast(0); } static const bool is_iec559 = false; static const bool is_bounded = true; static const bool is_modulo = true; static const bool traps = true; static const bool tinyness_before = false; static const float_round_style round_style = round_toward_zero; }; template<> struct numeric_limits { static const bool is_specialized = true; static float min() throw() { return 1.17549435e-38F; } static float max() throw() { return 3.40282347e+38F; } static const int digits = 24; static const int digits10 = 6; static const bool is_signed = true; static const bool is_integer = false; static const bool is_exact = false; static const int radix = 2; static float epsilon() throw() { return 1.19209290e-7F; } static float round_error() throw() { return 0.5F; } static const int min_exponent = (-125); static const int min_exponent10 = (-37); static const int max_exponent = 128; static const int max_exponent10 = 38; static const bool has_infinity = __builtin_huge_valf () / 2 == __builtin_huge_valf (); static const bool has_quiet_NaN = __builtin_nanf ("") != __builtin_nanf (""); static const bool has_signaling_NaN = has_quiet_NaN; static const float_denorm_style has_denorm = 1.40129846e-45F ? denorm_present : denorm_absent; static const bool has_denorm_loss = false; static float infinity() throw() { return __builtin_huge_valf (); } static float quiet_NaN() throw() { return __builtin_nanf (""); } static float signaling_NaN() throw() { return __builtin_nansf (""); } static float denorm_min() throw() { return 1.40129846e-45F; } static const bool is_iec559 = has_infinity && has_quiet_NaN && has_denorm == denorm_present; static const bool is_bounded = true; static const bool is_modulo = false; static const bool traps = false; static const bool tinyness_before = false; static const float_round_style round_style = round_to_nearest; }; template<> struct numeric_limits { static const bool is_specialized = true; static double min() throw() { return 2.2250738585072014e-308; } static double max() throw() { return 1.7976931348623157e+308; } static const int digits = 53; static const int digits10 = 15; static const bool is_signed = true; static const bool is_integer = false; static const bool is_exact = false; static const int radix = 2; static double epsilon() throw() { return 2.2204460492503131e-16; } static double round_error() throw() { return 0.5; } static const int min_exponent = (-1021); static const int min_exponent10 = (-307); static const int max_exponent = 1024; static const int max_exponent10 = 308; static const bool has_infinity = __builtin_huge_val () / 2 == __builtin_huge_val (); static const bool has_quiet_NaN = __builtin_nan ("") != __builtin_nan (""); static const bool has_signaling_NaN = has_quiet_NaN; static const float_denorm_style has_denorm = 4.9406564584124654e-324 ? denorm_present : denorm_absent; static const bool has_denorm_loss = false; static double infinity() throw() { return __builtin_huge_val(); } static double quiet_NaN() throw() { return __builtin_nan (""); } static double signaling_NaN() throw() { return __builtin_nans (""); } static double denorm_min() throw() { return 4.9406564584124654e-324; } static const bool is_iec559 = has_infinity && has_quiet_NaN && has_denorm == denorm_present; static const bool is_bounded = true; static const bool is_modulo = false; static const bool traps = false; static const bool tinyness_before = false; static const float_round_style round_style = round_to_nearest; }; template<> struct numeric_limits { static const bool is_specialized = true; static long double min() throw() { return 3.36210314311209350626e-4932L; } static long double max() throw() { return 1.18973149535723176502e+4932L; } static const int digits = 64; static const int digits10 = 18; static const bool is_signed = true; static const bool is_integer = false; static const bool is_exact = false; static const int radix = 2; static long double epsilon() throw() { return 1.08420217248550443401e-19L; } static long double round_error() throw() { return 0.5L; } static const int min_exponent = (-16381); static const int min_exponent10 = (-4931); static const int max_exponent = 16384; static const int max_exponent10 = 4932; static const bool has_infinity = __builtin_huge_vall () / 2 == __builtin_huge_vall (); static const bool has_quiet_NaN = __builtin_nanl ("") != __builtin_nanl (""); static const bool has_signaling_NaN = has_quiet_NaN; static const float_denorm_style has_denorm = 3.64519953188247460253e-4951L ? denorm_present : denorm_absent; static const bool has_denorm_loss = false; static long double infinity() throw() { return __builtin_huge_vall (); } static long double quiet_NaN() throw() { return __builtin_nanl (""); } static long double signaling_NaN() throw() { return __builtin_nansl (""); } static long double denorm_min() throw() { return 3.64519953188247460253e-4951L; } static const bool is_iec559 = has_infinity && has_quiet_NaN && has_denorm == denorm_present; static const bool is_bounded = true; static const bool is_modulo = false; static const bool traps = false; static const bool tinyness_before = false; static const float_round_style round_style = round_to_nearest; }; } # 46 "/usr/include/g++/istream" 2 3 namespace std { # 57 "/usr/include/g++/istream" 3 template class basic_istream : virtual public basic_ios<_CharT, _Traits> { public: typedef _CharT char_type; typedef typename _Traits::int_type int_type; typedef typename _Traits::pos_type pos_type; typedef typename _Traits::off_type off_type; typedef _Traits traits_type; typedef basic_streambuf<_CharT, _Traits> __streambuf_type; typedef basic_ios<_CharT, _Traits> __ios_type; typedef basic_istream<_CharT, _Traits> __istream_type; typedef istreambuf_iterator<_CharT, _Traits> __istreambuf_iter; typedef num_get<_CharT, __istreambuf_iter> __numget_type; typedef ctype<_CharT> __ctype_type; template friend basic_istream<_CharT2, _Traits2>& operator>>(basic_istream<_CharT2, _Traits2>&, _CharT2&); template friend basic_istream<_CharT2, _Traits2>& operator>>(basic_istream<_CharT2, _Traits2>&, _CharT2*); protected: streamsize _M_gcount; public: # 103 "/usr/include/g++/istream" 3 explicit basic_istream(__streambuf_type* __sb) { this->init(__sb); _M_gcount = streamsize(0); } virtual ~basic_istream() { _M_gcount = streamsize(0); } class sentry; friend class sentry; # 133 "/usr/include/g++/istream" 3 __inline__ __istream_type& operator>>(__istream_type& (*__pf)(__istream_type&)); __inline__ __istream_type& operator>>(__ios_type& (*__pf)(__ios_type&)); __inline__ __istream_type& operator>>(ios_base& (*__pf)(ios_base&)); # 171 "/usr/include/g++/istream" 3 __istream_type& operator>>(bool& __n); __istream_type& operator>>(short& __n); __istream_type& operator>>(unsigned short& __n); __istream_type& operator>>(int& __n); __istream_type& operator>>(unsigned int& __n); __istream_type& operator>>(long& __n); __istream_type& operator>>(unsigned long& __n); __istream_type& operator>>(long long& __n); __istream_type& operator>>(unsigned long long& __n); __istream_type& operator>>(float& __f); __istream_type& operator>>(double& __f); __istream_type& operator>>(long double& __f); __istream_type& operator>>(void*& __p); # 232 "/usr/include/g++/istream" 3 __istream_type& operator>>(__streambuf_type* __sb); # 242 "/usr/include/g++/istream" 3 __inline__ streamsize gcount() const { return _M_gcount; } # 274 "/usr/include/g++/istream" 3 int_type get(); # 288 "/usr/include/g++/istream" 3 __istream_type& get(char_type& __c); # 315 "/usr/include/g++/istream" 3 __istream_type& get(char_type* __s, streamsize __n, char_type __delim); # 326 "/usr/include/g++/istream" 3 __inline__ __istream_type& get(char_type* __s, streamsize __n) { return this->get(__s, __n, this->widen('\n')); } # 349 "/usr/include/g++/istream" 3 __istream_type& get(__streambuf_type& __sb, char_type __delim); # 359 "/usr/include/g++/istream" 3 __inline__ __istream_type& get(__streambuf_type& __sb) { return this->get(__sb, this->widen('\n')); } # 388 "/usr/include/g++/istream" 3 __istream_type& getline(char_type* __s, streamsize __n, char_type __delim); # 399 "/usr/include/g++/istream" 3 __inline__ __istream_type& getline(char_type* __s, streamsize __n) { return this->getline(__s, __n, this->widen('\n')); } # 418 "/usr/include/g++/istream" 3 __istream_type& ignore(streamsize __n = 1, int_type __delim = traits_type::eof()); # 429 "/usr/include/g++/istream" 3 int_type peek(); # 447 "/usr/include/g++/istream" 3 __istream_type& read(char_type* __s, streamsize __n); # 466 "/usr/include/g++/istream" 3 streamsize readsome(char_type* __s, streamsize __n); # 482 "/usr/include/g++/istream" 3 __istream_type& putback(char_type __c); # 497 "/usr/include/g++/istream" 3 __istream_type& unget(); # 515 "/usr/include/g++/istream" 3 int sync(); # 529 "/usr/include/g++/istream" 3 pos_type tellg(); # 544 "/usr/include/g++/istream" 3 __istream_type& seekg(pos_type); # 560 "/usr/include/g++/istream" 3 __istream_type& seekg(off_type, ios_base::seekdir); }; # 576 "/usr/include/g++/istream" 3 template class basic_istream<_CharT, _Traits>::sentry { public: typedef _Traits traits_type; typedef basic_streambuf<_CharT, _Traits> __streambuf_type; typedef basic_istream<_CharT, _Traits> __istream_type; typedef typename __istream_type::__ctype_type __ctype_type; typedef typename _Traits::int_type __int_type; # 608 "/usr/include/g++/istream" 3 explicit sentry(basic_istream<_CharT, _Traits>& __is, bool __noskipws = false); # 618 "/usr/include/g++/istream" 3 operator bool() { return _M_ok; } private: bool _M_ok; }; # 637 "/usr/include/g++/istream" 3 template basic_istream<_CharT, _Traits>& operator>>(basic_istream<_CharT, _Traits>& __in, _CharT& __c); template basic_istream& operator>>(basic_istream& __in, unsigned char& __c) { return (__in >> reinterpret_cast(__c)); } template basic_istream& operator>>(basic_istream& __in, signed char& __c) { return (__in >> reinterpret_cast(__c)); } # 678 "/usr/include/g++/istream" 3 template basic_istream<_CharT, _Traits>& operator>>(basic_istream<_CharT, _Traits>& __in, _CharT* __s); template basic_istream& operator>>(basic_istream& __in, unsigned char* __s) { return (__in >> reinterpret_cast(__s)); } template basic_istream& operator>>(basic_istream& __in, signed char* __s) { return (__in >> reinterpret_cast(__s)); } # 700 "/usr/include/g++/istream" 3 template class basic_iostream : public basic_istream<_CharT, _Traits>, public basic_ostream<_CharT, _Traits> { public: typedef _CharT char_type; typedef typename _Traits::int_type int_type; typedef typename _Traits::pos_type pos_type; typedef typename _Traits::off_type off_type; typedef _Traits traits_type; typedef basic_istream<_CharT, _Traits> __istream_type; typedef basic_ostream<_CharT, _Traits> __ostream_type; explicit basic_iostream(basic_streambuf<_CharT, _Traits>* __sb) : __istream_type(__sb), __ostream_type(__sb) { } virtual ~basic_iostream() { } }; # 759 "/usr/include/g++/istream" 3 template basic_istream<_CharT, _Traits>& ws(basic_istream<_CharT, _Traits>& __is); } # 1 "/usr/include/g++/bits/istream.tcc" 1 3 # 35 "/usr/include/g++/bits/istream.tcc" 3 # 36 "/usr/include/g++/bits/istream.tcc" 3 # 1 "/usr/include/g++/locale" 1 3 # 42 "/usr/include/g++/locale" 3 # 43 "/usr/include/g++/locale" 3 # 1 "/usr/include/g++/bits/locale_facets.tcc" 1 3 # 36 "/usr/include/g++/bits/locale_facets.tcc" 3 # 37 "/usr/include/g++/bits/locale_facets.tcc" 3 # 1 "/usr/include/g++/cerrno" 1 3 # 46 "/usr/include/g++/cerrno" 3 # 47 "/usr/include/g++/cerrno" 3 # 1 "/usr/include/errno.h" 1 3 4 # 32 "/usr/include/errno.h" 3 4 extern "C" { # 1 "/usr/include/bits/errno.h" 1 3 4 # 25 "/usr/include/bits/errno.h" 3 4 # 1 "/usr/include/linux/errno.h" 1 3 4 # 1 "/usr/include/asm/errno.h" 1 3 4 # 1 "/usr/include/asm-generic/errno.h" 1 3 4 # 1 "/usr/include/asm-generic/errno-base.h" 1 3 4 # 5 "/usr/include/asm-generic/errno.h" 2 3 4 # 5 "/usr/include/asm/errno.h" 2 3 4 # 5 "/usr/include/linux/errno.h" 2 3 4 # 26 "/usr/include/bits/errno.h" 2 3 4 # 38 "/usr/include/bits/errno.h" 3 4 extern int *__errno_location (void) throw () __attribute__ ((__const__)); # 37 "/usr/include/errno.h" 2 3 4 # 55 "/usr/include/errno.h" 3 4 extern char *program_invocation_name, *program_invocation_short_name; } # 69 "/usr/include/errno.h" 3 4 typedef int error_t; # 49 "/usr/include/g++/cerrno" 2 3 # 39 "/usr/include/g++/bits/locale_facets.tcc" 2 3 # 1 "/usr/include/g++/cmath" 1 3 # 47 "/usr/include/g++/cmath" 3 # 48 "/usr/include/g++/cmath" 3 # 80 "/usr/include/g++/cmath" 3 namespace __gnu_cxx { namespace __c99_binding { # 107 "/usr/include/g++/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 _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/include/g++/cmath" 3 __inline__ long double modf(long double __x, long double* __iptr) { return ::modfl(__x, __iptr); } # 473 "/usr/include/g++/cmath" 3 template __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 int __capture_fpclassify(_Tp __f) { return (sizeof (__f) == sizeof (float) ? __fpclassifyf (__f) : sizeof (__f) == sizeof (double) ? __fpclassify (__f) : __fpclassifyl (__f)); } template int __capture_isfinite(_Tp __f) { return (sizeof (__f) == sizeof (float) ? __finitef (__f) : sizeof (__f) == sizeof (double) ? __finite (__f) : __finitel (__f)); } template int __capture_isinf(_Tp __f) { return (sizeof (__f) == sizeof (float) ? __isinff (__f) : sizeof (__f) == sizeof (double) ? __isinf (__f) : __isinfl (__f)); } template int __capture_isnan(_Tp __f) { return (sizeof (__f) == sizeof (float) ? __isnanf (__f) : sizeof (__f) == sizeof (double) ? __isnan (__f) : __isnanl (__f)); } template int __capture_isnormal(_Tp __f) { return ((sizeof (__f) == sizeof (float) ? __fpclassifyf (__f) : sizeof (__f) == sizeof (double) ? __fpclassify (__f) : __fpclassifyl (__f)) == FP_NORMAL); } template int __capture_signbit(_Tp __f) { return (sizeof (__f) == sizeof (float) ? __signbitf (__f) : sizeof (__f) == sizeof (double) ? __signbit (__f) : __signbitl (__f)); } template int __capture_isgreater(_Tp __f1, _Tp __f2) { return __builtin_isgreater(__f1, __f2); } template int __capture_isgreaterequal(_Tp __f1, _Tp __f2) { return __builtin_isgreaterequal(__f1, __f2); } template int __capture_isless(_Tp __f1, _Tp __f2) { return __builtin_isless(__f1, __f2); } template int __capture_islessequal(_Tp __f1, _Tp __f2) { return __builtin_islessequal(__f1, __f2); } template int __capture_islessgreater(_Tp __f1, _Tp __f2) { return __builtin_islessgreater(__f1, __f2); } template int __capture_isunordered(_Tp __f1, _Tp __f2) { return __builtin_isunordered(__f1, __f2); } } # 668 "/usr/include/g++/cmath" 3 namespace __gnu_cxx { template int fpclassify(_Tp __f) { return __capture_fpclassify(__f); } template int isfinite(_Tp __f) { return __capture_isfinite(__f); } template int isinf(_Tp __f) { return __capture_isinf(__f); } template int isnan(_Tp __f) { return __capture_isnan(__f); } template int isnormal(_Tp __f) { return __capture_isnormal(__f); } template int signbit(_Tp __f) { return __capture_signbit(__f); } template int isgreater(_Tp __f1, _Tp __f2) { return __capture_isgreater(__f1, __f2); } template int isgreaterequal(_Tp __f1, _Tp __f2) { return __capture_isgreaterequal(__f1, __f2); } template int isless(_Tp __f1, _Tp __f2) { return __capture_isless(__f1, __f2); } template int islessequal(_Tp __f1, _Tp __f2) { return __capture_islessequal(__f1, __f2); } template int islessgreater(_Tp __f1, _Tp __f2) { return __capture_islessgreater(__f1, __f2); } template 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/include/g++/bits/cmath.tcc" 1 3 # 35 "/usr/include/g++/bits/cmath.tcc" 3 namespace std { template _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/include/g++/cmath" 2 3 # 42 "/usr/include/g++/bits/locale_facets.tcc" 2 3 namespace std { template locale locale::combine(const locale& __other) const { _Impl* __tmp = new _Impl(*_M_impl, 1); try { __tmp->_M_replace_facet(__other._M_impl, &_Facet::id); } catch(...) { __tmp->_M_remove_reference(); throw; } return locale(__tmp); } template bool locale::operator()(const basic_string<_CharT, _Traits, _Alloc>& __s1, const basic_string<_CharT, _Traits, _Alloc>& __s2) const { typedef std::collate<_CharT> __collate_type; const __collate_type& __collate = use_facet<__collate_type>(*this); return (__collate.compare(__s1.data(), __s1.data() + __s1.length(), __s2.data(), __s2.data() + __s2.length()) < 0); } template const _Facet& use_facet(const locale& __loc) { size_t __i = _Facet::id._M_id(); locale::facet** __facets = __loc._M_impl->_M_facets; if (!(__i < __loc._M_impl->_M_facets_size && __facets[__i])) __throw_bad_cast(); return static_cast(*__facets[__i]); } template bool has_facet(const locale& __loc) throw() { size_t __i = _Facet::id._M_id(); locale::facet** __facets = __loc._M_impl->_M_facets; return (__i < __loc._M_impl->_M_facets_size && __facets[__i]); } template __inline__ const __locale_cache<_Facet>& __use_cache(const locale& __loc) { size_t __i = _Facet::id._M_id(); if (__builtin_expect(__i >= __loc._M_impl->_M_facets_size,false)) __throw_bad_cast(); __locale_cache_base* __cache = __loc._M_impl->_M_get_cache(__i); if (__builtin_expect(!__cache, false)) { __cache = new __locale_cache<_Facet>(__loc); __loc._M_impl->_M_install_cache(__cache, __i); } return static_cast&>(*__cache); } template _InIter num_get<_CharT, _InIter>:: _M_extract_float(_InIter __beg, _InIter __end, ios_base& __io, ios_base::iostate& __err, string& __xtrc) const { typedef char_traits<_CharT> __traits_type; const locale __loc = __io.getloc(); const ctype<_CharT>& __ctype = use_facet >(__loc); const numpunct<_CharT>& __np = use_facet >(__loc); const char_type __plus = __ctype.widen('+'); const char_type __minus = __ctype.widen('-'); int __pos = 0; char_type __c = *__beg; if ((__traits_type::eq(__c, __plus) || __traits_type::eq(__c, __minus)) && __beg != __end) { __xtrc += __ctype.narrow(__c, char()); ++__pos; __c = *(++__beg); } const char_type __zero = __ctype.widen(_S_atoms_in[_M_zero]); bool __found_zero = false; while (__traits_type::eq(__c, __zero) && __beg != __end) { __c = *(++__beg); __found_zero = true; } if (__found_zero) { __xtrc += _S_atoms_in[_M_zero]; ++__pos; } const size_t __len = _M_E - _M_zero + 1; char_type __watoms[__len]; __ctype.widen(_S_atoms_in, _S_atoms_in + __len, __watoms); bool __found_dec = false; bool __found_sci = false; const char_type __dec = __np.decimal_point(); string __found_grouping; const string __grouping = __np.grouping(); const bool __check_grouping = __grouping.size(); if (__check_grouping) __found_grouping.reserve(32); int __sep_pos = 0; const char_type __sep = __np.thousands_sep(); while (__beg != __end) { const char_type* __p = __traits_type::find(__watoms, 10, __c); if (__p) { ++__pos; __xtrc += _S_atoms_in[__p - __watoms]; ++__sep_pos; __c = *(++__beg); } else if (__traits_type::eq(__c, __sep) && __check_grouping && !__found_dec) { if (__sep_pos) { __found_grouping += static_cast(__sep_pos); __sep_pos = 0; __c = *(++__beg); } else { __err |= ios_base::failbit; break; } } else if (__traits_type::eq(__c, __dec) && !__found_dec) { if (__found_grouping.size()) __found_grouping += static_cast(__sep_pos); ++__pos; __xtrc += '.'; __c = *(++__beg); __found_dec = true; } else if ((__traits_type::eq(__c, __watoms[_M_e]) || __traits_type::eq(__c, __watoms[_M_E])) && !__found_sci && __pos) { ++__pos; __xtrc += __ctype.narrow(__c, char()); __c = *(++__beg); if (__traits_type::eq(__c, __plus) || __traits_type::eq(__c, __minus)) { ++__pos; __xtrc += __ctype.narrow(__c, char()); __c = *(++__beg); } __found_sci = true; } else break; } if (__check_grouping && __found_grouping.size()) { if (!__found_dec) __found_grouping += static_cast(__sep_pos); if (!__verify_grouping(__grouping, __found_grouping)) __err |= ios_base::failbit; } if (__beg == __end) __err |= ios_base::eofbit; return __beg; } template _InIter num_get<_CharT, _InIter>:: _M_extract_int(_InIter __beg, _InIter __end, ios_base& __io, ios_base::iostate& __err, string& __xtrc, int& __base) const { typedef char_traits<_CharT> __traits_type; const locale __loc = __io.getloc(); const ctype<_CharT>& __ctype = use_facet >(__loc); const numpunct<_CharT>& __np = use_facet >(__loc); ios_base::fmtflags __basefield = __io.flags() & ios_base::basefield; if (__basefield == ios_base::oct) __base = 8; else if (__basefield == ios_base::hex) __base = 16; else __base = 10; int __pos = 0; char_type __c = *__beg; const char_type __plus = __ctype.widen('+'); const char_type __minus = __ctype.widen('-'); if ((__traits_type::eq(__c, __plus) || __traits_type::eq(__c, __minus)) && __beg != __end) { __xtrc += __ctype.narrow(__c, char()); ++__pos; __c = *(++__beg); } const char_type __zero = __ctype.widen(_S_atoms_in[_M_zero]); const char_type __x = __ctype.widen('x'); const char_type __X = __ctype.widen('X'); if (__base == 10) { bool __found_zero = false; while (__traits_type::eq(__c, __zero) && __beg != __end) { __c = *(++__beg); __found_zero = true; } if (__found_zero) { __xtrc += _S_atoms_in[_M_zero]; ++__pos; if (__basefield == 0) { if ((__traits_type::eq(__c, __x) || __traits_type::eq(__c, __X)) && __beg != __end) { __xtrc += __ctype.narrow(__c, char()); ++__pos; __c = *(++__beg); __base = 16; } else __base = 8; } } } else if (__base == 16) { if (__traits_type::eq(__c, __zero) && __beg != __end) { __xtrc += _S_atoms_in[_M_zero]; ++__pos; __c = *(++__beg); if ((__traits_type::eq(__c, __x) || __traits_type::eq(__c, __X)) && __beg != __end) { __xtrc += __ctype.narrow(__c, char()); ++__pos; __c = *(++__beg); } } } size_t __len; if (__base == 16) __len = _M_size; else __len = __base; char_type __watoms[_M_size]; __ctype.widen(_S_atoms_in, _S_atoms_in + __len, __watoms); string __found_grouping; const string __grouping = __np.grouping(); const bool __check_grouping = __grouping.size(); if (__check_grouping) __found_grouping.reserve(32); int __sep_pos = 0; const char_type __sep = __np.thousands_sep(); while (__beg != __end) { const char_type* __p = __traits_type::find(__watoms, __len, __c); if (__p) { __xtrc += _S_atoms_in[__p - __watoms]; ++__pos; ++__sep_pos; __c = *(++__beg); } else if (__traits_type::eq(__c, __sep) && __check_grouping) { if (__sep_pos) { __found_grouping += static_cast(__sep_pos); __sep_pos = 0; __c = *(++__beg); } else { __err |= ios_base::failbit; break; } } else break; } if (__check_grouping && __found_grouping.size()) { __found_grouping += static_cast(__sep_pos); if (!__verify_grouping(__grouping, __found_grouping)) __err |= ios_base::failbit; } __xtrc += char(); if (__beg == __end) __err |= ios_base::eofbit; return __beg; } template _InIter num_get<_CharT, _InIter>:: do_get(iter_type __beg, iter_type __end, ios_base& __io, ios_base::iostate& __err, bool& __v) const { if (!(__io.flags() & ios_base::boolalpha)) { string __xtrc; int __base; __beg = _M_extract_int(__beg, __end, __io, __err, __xtrc, __base); unsigned long __ul; __convert_to_v(__xtrc.c_str(), __ul, __err, _S_c_locale, __base); if (!(__err & ios_base::failbit) && __ul <= 1) __v = __ul; else __err |= ios_base::failbit; } else { typedef char_traits<_CharT> __traits_type; typedef basic_string<_CharT> __string_type; locale __loc = __io.getloc(); const numpunct<_CharT>& __np = use_facet >(__loc); const __string_type __true = __np.truename(); const __string_type __false = __np.falsename(); const char_type* __trues = __true.c_str(); const char_type* __falses = __false.c_str(); const size_t __truen = __true.size() - 1; const size_t __falsen = __false.size() - 1; for (size_t __n = 0; __beg != __end; ++__n) { char_type __c = *__beg++; bool __testf = __n <= __falsen ? __traits_type::eq(__c, __falses[__n]) : false; bool __testt = __n <= __truen ? __traits_type::eq(__c, __trues[__n]) : false; if (!(__testf || __testt)) { __err |= ios_base::failbit; break; } else if (__testf && __n == __falsen) { __v = 0; break; } else if (__testt && __n == __truen) { __v = 1; break; } } if (__beg == __end) __err |= ios_base::eofbit; } return __beg; } template _InIter num_get<_CharT, _InIter>:: do_get(iter_type __beg, iter_type __end, ios_base& __io, ios_base::iostate& __err, long& __v) const { string __xtrc; __xtrc.reserve(32); int __base; __beg = _M_extract_int(__beg, __end, __io, __err, __xtrc, __base); __convert_to_v(__xtrc.c_str(), __v, __err, _S_c_locale, __base); return __beg; } template _InIter num_get<_CharT, _InIter>:: do_get(iter_type __beg, iter_type __end, ios_base& __io, ios_base::iostate& __err, unsigned short& __v) const { string __xtrc; __xtrc.reserve(32); int __base; __beg = _M_extract_int(__beg, __end, __io, __err, __xtrc, __base); unsigned long __ul; __convert_to_v(__xtrc.c_str(), __ul, __err, _S_c_locale, __base); if (!(__err & ios_base::failbit) && __ul <= numeric_limits::max()) __v = static_cast(__ul); else __err |= ios_base::failbit; return __beg; } template _InIter num_get<_CharT, _InIter>:: do_get(iter_type __beg, iter_type __end, ios_base& __io, ios_base::iostate& __err, unsigned int& __v) const { string __xtrc; __xtrc.reserve(32); int __base; __beg = _M_extract_int(__beg, __end, __io, __err, __xtrc, __base); unsigned long __ul; __convert_to_v(__xtrc.c_str(), __ul, __err, _S_c_locale, __base); if (!(__err & ios_base::failbit) && __ul <= numeric_limits::max()) __v = static_cast(__ul); else __err |= ios_base::failbit; return __beg; } template _InIter num_get<_CharT, _InIter>:: do_get(iter_type __beg, iter_type __end, ios_base& __io, ios_base::iostate& __err, unsigned long& __v) const { string __xtrc; __xtrc.reserve(32); int __base; __beg = _M_extract_int(__beg, __end, __io, __err, __xtrc, __base); __convert_to_v(__xtrc.c_str(), __v, __err, _S_c_locale, __base); return __beg; } template _InIter num_get<_CharT, _InIter>:: do_get(iter_type __beg, iter_type __end, ios_base& __io, ios_base::iostate& __err, long long& __v) const { string __xtrc; __xtrc.reserve(32); int __base; __beg = _M_extract_int(__beg, __end, __io, __err, __xtrc, __base); __convert_to_v(__xtrc.c_str(), __v, __err, _S_c_locale, __base); return __beg; } template _InIter num_get<_CharT, _InIter>:: do_get(iter_type __beg, iter_type __end, ios_base& __io, ios_base::iostate& __err, unsigned long long& __v) const { string __xtrc; __xtrc.reserve(32); int __base; __beg = _M_extract_int(__beg, __end, __io, __err, __xtrc, __base); __convert_to_v(__xtrc.c_str(), __v, __err, _S_c_locale, __base); return __beg; } template _InIter num_get<_CharT, _InIter>:: do_get(iter_type __beg, iter_type __end, ios_base& __io, ios_base::iostate& __err, float& __v) const { string __xtrc; __xtrc.reserve(32); __beg = _M_extract_float(__beg, __end, __io, __err, __xtrc); __convert_to_v(__xtrc.c_str(), __v, __err, _S_c_locale); return __beg; } template _InIter num_get<_CharT, _InIter>:: do_get(iter_type __beg, iter_type __end, ios_base& __io, ios_base::iostate& __err, double& __v) const { string __xtrc; __xtrc.reserve(32); __beg = _M_extract_float(__beg, __end, __io, __err, __xtrc); __convert_to_v(__xtrc.c_str(), __v, __err, _S_c_locale); return __beg; } template _InIter num_get<_CharT, _InIter>:: do_get(iter_type __beg, iter_type __end, ios_base& __io, ios_base::iostate& __err, long double& __v) const { string __xtrc; __xtrc.reserve(32); __beg = _M_extract_float(__beg, __end, __io, __err, __xtrc); __convert_to_v(__xtrc.c_str(), __v, __err, _S_c_locale); return __beg; } template _InIter num_get<_CharT, _InIter>:: do_get(iter_type __beg, iter_type __end, ios_base& __io, ios_base::iostate& __err, void*& __v) const { typedef ios_base::fmtflags fmtflags; fmtflags __fmt = __io.flags(); __io.flags(__fmt & ~ios_base::basefield | ios_base::hex); string __xtrc; __xtrc.reserve(32); int __base; __beg = _M_extract_int(__beg, __end, __io, __err, __xtrc, __base); __io.flags(__fmt); unsigned long __ul; __convert_to_v(__xtrc.c_str(), __ul, __err, _S_c_locale, __base); if (!(__err & ios_base::failbit)) __v = reinterpret_cast(__ul); else __err |= ios_base::failbit; return __beg; } template void num_put<_CharT, _OutIter>:: _M_pad(_CharT __fill, streamsize __w, ios_base& __io, _CharT* __new, const _CharT* __cs, int& __len) const { __pad<_CharT, char_traits<_CharT> >::_S_pad(__io, __fill, __new, __cs, __w, __len, true); __len = static_cast(__w); } template __inline__ int __int_to_char(_CharT* __out, const int __size, long __v, const _CharT* __lit, ios_base::fmtflags __flags) { unsigned long __ul = static_cast(__v); bool __neg = false; if (__v < 0) { __ul = -__ul; __neg = true; } return __int_to_char(__out, __size, __ul, __lit, __flags, __neg); } template __inline__ int __int_to_char(_CharT* __out, const int __size, unsigned long __v, const _CharT* __lit, ios_base::fmtflags __flags) { return __int_to_char(__out, __size, __v, __lit, __flags & ~ios_base::showpos, false); } template __inline__ int __int_to_char(_CharT* __out, const int __size, long long __v, const _CharT* __lit, ios_base::fmtflags __flags) { unsigned long long __ull = static_cast(__v); bool __neg = false; if (__v < 0) { __ull = -__ull; __neg = true; } return __int_to_char(__out, __size, __ull, __lit, __flags, __neg); } template __inline__ int __int_to_char(_CharT* __out, const int __size, unsigned long long __v, const _CharT* __lit, ios_base::fmtflags __flags) { return __int_to_char(__out, __size, __v, __lit, __flags & ~ios_base::showpos, false); } template int __int_to_char(_CharT* __out, const int __size, _ValueT __v, const _CharT* __lit, ios_base::fmtflags __flags, bool __neg) { const bool __showbase = (__flags & ios_base::showbase) && __v; const ios_base::fmtflags __basefield = __flags & ios_base::basefield; _CharT* __buf = __out + __size - 1; _CharT* __bufend = __out + __size; if (__builtin_expect(__basefield != ios_base::oct && __basefield != ios_base::hex, true)) { do { *__buf-- = __lit[(__v % 10) + __num_base::_S_digits]; __v /= 10; } while (__v != 0); if (__neg) *__buf-- = __lit[__num_base::_S_minus]; else if (__flags & ios_base::showpos) *__buf-- = __lit[__num_base::_S_plus]; } else if (__basefield == ios_base::oct) { do { *__buf-- = __lit[(__v & 0x7) + __num_base::_S_digits]; __v >>= 3; } while (__v != 0); if (__showbase) *__buf-- = __lit[__num_base::_S_digits]; } else { const bool __uppercase = __flags & ios_base::uppercase; int __case_offset = __uppercase ? __num_base::_S_udigits : __num_base::_S_digits; do { *__buf-- = __lit[(__v & 0xf) + __case_offset]; __v >>= 4; } while (__v != 0); if (__showbase) { *__buf-- = __lit[__num_base::_S_x + __uppercase]; *__buf-- = __lit[__num_base::_S_digits]; } } int __ret = __bufend - __buf - 1; return __ret; } template void num_put<_CharT, _OutIter>:: _M_group_int(const string& __grouping, _CharT __sep, ios_base& __io, _CharT* __new, _CharT* __cs, int& __len) const { streamsize __off = 0; const ios_base::fmtflags __basefield = __io.flags() & ios_base::basefield; if ((__io.flags() & ios_base::showbase) && __len > 1) if (__basefield == ios_base::oct) { __off = 1; *__new = *__cs; } else if (__basefield == ios_base::hex) { __off = 2; *__new = *__cs; *(__new + 1) = *(__cs + 1); } _CharT* __p; __p = __add_grouping(__new + __off, __sep, __grouping.c_str(), __grouping.c_str() + __grouping.size(), __cs + __off, __cs + __len); __len = __p - __new; } template template _OutIter num_put<_CharT, _OutIter>:: _M_convert_int(_OutIter __s, ios_base& __io, _CharT __fill, _ValueT __v) const { typedef numpunct<_CharT> __facet_type; typedef __locale_cache > __cache_type; const locale& __loc = __io._M_getloc(); const __cache_type& __lc = __use_cache<__facet_type>(__loc); const _CharT* __lit = __lc._M_atoms_out; int __ilen = 4 * sizeof(_ValueT); _CharT* __cs = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) * __ilen)); int __len; __len = __int_to_char(&__cs[0], __ilen, __v, __lit, __io.flags()); __cs = __cs + __ilen - __len; _CharT* __cs2; if (__lc._M_use_grouping) { __cs2 = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) * __len * 2)); _M_group_int(__lc._M_grouping, __lc._M_thousands_sep, __io, __cs2, __cs, __len); __cs = __cs2; } _CharT* __cs3; streamsize __w = __io.width(); if (__w > static_cast(__len)) { __cs3 = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) * __w)); _M_pad(__fill, __w, __io, __cs3, __cs, __len); __cs = __cs3; } __io.width(0); return __write(__s, __cs, __len); } template void num_put<_CharT, _OutIter>:: _M_group_float(const string& __grouping, _CharT __sep, const _CharT* __p, _CharT* __new, _CharT* __cs, int& __len) const { _CharT* __p2; int __declen = __p ? __p - __cs : __len; __p2 = __add_grouping(__new, __sep, __grouping.c_str(), __grouping.c_str() + __grouping.size(), __cs, __cs + __declen); int __newlen = __p2 - __new; if (__p) { char_traits<_CharT>::copy(__p2, __p, __len - __declen); __newlen += __len - __declen; } __len = __newlen; } # 889 "/usr/include/g++/bits/locale_facets.tcc" 3 template template _OutIter num_put<_CharT, _OutIter>:: _M_convert_float(_OutIter __s, ios_base& __io, _CharT __fill, char __mod, _ValueT __v) const { streamsize __prec = __io.precision(); if (__prec < static_cast(0)) __prec = static_cast(6); const int __max_digits = numeric_limits<_ValueT>::digits10; typedef numpunct<_CharT> __facet_type; typedef __locale_cache > __cache_type; const locale __loc = __io._M_getloc(); const __cache_type& __lc = __use_cache<__facet_type>(__loc); int __len; char __fbuf[16]; int __cs_size = __max_digits * 3; char* __cs = static_cast(__builtin_alloca(__cs_size)); _S_format_float(__io, __fbuf, __mod, __prec); __len = __convert_from_v(__cs, __cs_size, __fbuf, __v, _S_c_locale, __prec); if (__len >= __cs_size) { __cs_size = __len + 1; __cs = static_cast(__builtin_alloca(__cs_size)); __len = __convert_from_v(__cs, __cs_size, __fbuf, __v, _S_c_locale, __prec); } # 951 "/usr/include/g++/bits/locale_facets.tcc" 3 const ctype<_CharT>& __ctype = use_facet >(__loc); _CharT* __ws = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) * __len)); __ctype.widen(__cs, __cs + __len, __ws); const _CharT __cdec = __ctype.widen('.'); const _CharT __dec = __lc._M_decimal_point; const _CharT* __p; if (__p = char_traits<_CharT>::find(__ws, __len, __cdec)) __ws[__p - __ws] = __dec; _CharT* __ws2; if (__lc._M_use_grouping) { __ws2 = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) * __len * 2)); _M_group_float(__lc._M_grouping, __lc._M_thousands_sep, __p, __ws2, __ws, __len); __ws = __ws2; } _CharT* __ws3; streamsize __w = __io.width(); if (__w > static_cast(__len)) { __ws3 = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) * __w)); _M_pad(__fill, __w, __io, __ws3, __ws, __len); __ws = __ws3; } __io.width(0); return __write(__s, __ws, __len); } template _OutIter num_put<_CharT, _OutIter>:: do_put(iter_type __s, ios_base& __io, char_type __fill, bool __v) const { ios_base::fmtflags __flags = __io.flags(); if ((__flags & ios_base::boolalpha) == 0) { unsigned long __uv = __v; __s = _M_convert_int(__s, __io, __fill, __uv); } else { typedef numpunct<_CharT> __facet_type; typedef __locale_cache > __cache_type; const locale __loc = __io._M_getloc(); const __cache_type& __lc = __use_cache<__facet_type>(__loc); typedef basic_string<_CharT> __string_type; __string_type __name; if (__v) __name = __lc._M_truename; else __name = __lc._M_falsename; const _CharT* __cs = __name.c_str(); int __len = __name.size(); _CharT* __cs3; streamsize __w = __io.width(); if (__w > static_cast(__len)) { __cs3 = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) * __w)); _M_pad(__fill, __w, __io, __cs3, __cs, __len); __cs = __cs3; } __io.width(0); __s = __write(__s, __cs, __len); } return __s; } template _OutIter num_put<_CharT, _OutIter>:: do_put(iter_type __s, ios_base& __io, char_type __fill, long __v) const { return _M_convert_int(__s, __io, __fill, __v); } template _OutIter num_put<_CharT, _OutIter>:: do_put(iter_type __s, ios_base& __io, char_type __fill, unsigned long __v) const { return _M_convert_int(__s, __io, __fill, __v); } template _OutIter num_put<_CharT, _OutIter>:: do_put(iter_type __s, ios_base& __b, char_type __fill, long long __v) const { return _M_convert_int(__s, __b, __fill, __v); } template _OutIter num_put<_CharT, _OutIter>:: do_put(iter_type __s, ios_base& __io, char_type __fill, unsigned long long __v) const { return _M_convert_int(__s, __io, __fill, __v); } template _OutIter num_put<_CharT, _OutIter>:: do_put(iter_type __s, ios_base& __io, char_type __fill, double __v) const { return _M_convert_float(__s, __io, __fill, char(), __v); } template _OutIter num_put<_CharT, _OutIter>:: do_put(iter_type __s, ios_base& __io, char_type __fill, long double __v) const { return _M_convert_float(__s, __io, __fill, 'L', __v); } template _OutIter num_put<_CharT, _OutIter>:: do_put(iter_type __s, ios_base& __io, char_type __fill, const void* __v) const { ios_base::fmtflags __flags = __io.flags(); ios_base::fmtflags __fmt = ~(ios_base::showpos | ios_base::basefield | ios_base::uppercase | ios_base::internal); __io.flags(__flags & __fmt | (ios_base::hex | ios_base::showbase)); try { __s = _M_convert_int(__s, __io, __fill, reinterpret_cast(__v)); __io.flags(__flags); } catch (...) { __io.flags(__flags); throw; } return __s; } template _InIter money_get<_CharT, _InIter>:: do_get(iter_type __beg, iter_type __end, bool __intl, ios_base& __io, ios_base::iostate& __err, long double& __units) const { string_type __str; __beg = this->do_get(__beg, __end, __intl, __io, __err, __str); const int __cs_size = __str.size() + 1; char* __cs = static_cast(__builtin_alloca(__cs_size)); const locale __loc = __io.getloc(); const ctype<_CharT>& __ctype = use_facet >(__loc); const _CharT* __wcs = __str.c_str(); __ctype.narrow(__wcs, __wcs + __cs_size, char(), __cs); __convert_to_v(__cs, __units, __err, _S_c_locale); return __beg; } template _InIter money_get<_CharT, _InIter>:: do_get(iter_type __beg, iter_type __end, bool __intl, ios_base& __io, ios_base::iostate& __err, string_type& __units) const { typedef moneypunct<_CharT, true> __money_true; typedef moneypunct<_CharT, false> __money_false; typedef money_base::part part; typedef typename string_type::size_type size_type; const locale __loc = __io.getloc(); const __money_true& __mpt = use_facet<__money_true>(__loc); const __money_false& __mpf = use_facet<__money_false>(__loc); const ctype<_CharT>& __ctype = use_facet >(__loc); const money_base::pattern __p = __intl ? __mpt.neg_format() : __mpf.neg_format(); const string_type __pos_sign =__intl ? __mpt.positive_sign() : __mpf.positive_sign(); const string_type __neg_sign =__intl ? __mpt.negative_sign() : __mpf.negative_sign(); const char_type __d = __intl ? __mpt.decimal_point() : __mpf.decimal_point(); const char_type __sep = __intl ? __mpt.thousands_sep() : __mpf.thousands_sep(); const string __grouping = __intl ? __mpt.grouping() : __mpf.grouping(); string_type __sign; string __grouping_tmp; int __sep_pos = 0; bool __testvalid = true; bool __testdecfound = false; string_type __temp_units; __temp_units.reserve(20); char_type __c = *__beg; char_type __eof = static_cast(char_traits::eof()); for (int __i = 0; __beg != __end && __i < 4 && __testvalid; ++__i) { part __which = static_cast(__p.field[__i]); switch (__which) { case money_base::symbol: if (__io.flags() & ios_base::showbase || __i < 2 || __sign.size() > 1 || ((static_cast(__p.field[3]) != money_base::none) && __i == 2)) { const string_type __symbol = __intl ? __mpt.curr_symbol() : __mpf.curr_symbol(); size_type __len = __symbol.size(); size_type __j = 0; while (__beg != __end && __j < __len && __symbol[__j] == __c) { __c = *(++__beg); ++__j; } if (__j != __len && (__io.flags() & ios_base::showbase)) __testvalid = false; } break; case money_base::sign: if (__pos_sign.size() && __c == __pos_sign[0]) { __sign = __pos_sign; __c = *(++__beg); } else if (__neg_sign.size() && __c == __neg_sign[0]) { __sign = __neg_sign; __c = *(++__beg); } else if (__pos_sign.size() && __neg_sign.size()) { __testvalid = false; } break; case money_base::value: while (__beg != __end && (__ctype.is(ctype_base::digit, __c) || (__c == __d && !__testdecfound) || __c == __sep)) { if (__c == __d) { __grouping_tmp += static_cast(__sep_pos); __sep_pos = 0; __testdecfound = true; } else if (__c == __sep) { if (__grouping.size()) { __grouping_tmp += static_cast(__sep_pos); __sep_pos = 0; } else { __testvalid = false; break; } } else { __temp_units += __c; ++__sep_pos; } __c = *(++__beg); } break; case money_base::space: case money_base::none: if (__i != 3) while (__beg != __end && __ctype.is(ctype_base::space, __c)) __c = *(++__beg); break; } } if (__sign.size() > 1) { size_type __len = __sign.size(); size_type __i = 1; for (; __c != __eof && __i < __len; ++__i) while (__beg != __end && __c != __sign[__i]) __c = *(++__beg); if (__i != __len) __testvalid = false; } while (__temp_units.size() > 1 && __temp_units[0] == __ctype.widen('0')) __temp_units.erase(__temp_units.begin()); if (__sign.size() && __sign == __neg_sign) __temp_units.insert(__temp_units.begin(), __ctype.widen('-')); if (__grouping.size() && __grouping_tmp.size()) { if (!__verify_grouping(__grouping, __grouping_tmp)) __testvalid = false; } if (__c == __eof) __err |= ios_base::eofbit; if (!__testvalid || !__temp_units.size()) __err |= ios_base::failbit; else __temp_units.swap(__units); return __beg; } template _OutIter money_put<_CharT, _OutIter>:: do_put(iter_type __s, bool __intl, ios_base& __io, char_type __fill, long double __units) const { const locale __loc = __io.getloc(); const ctype<_CharT>& __ctype = use_facet >(__loc); int __cs_size = 64; char* __cs = static_cast(__builtin_alloca(__cs_size)); int __len = __convert_from_v(__cs, __cs_size, "%.0Lf", __units, _S_c_locale); if (__len >= __cs_size) { __cs_size = __len + 1; __cs = static_cast(__builtin_alloca(__cs_size)); __len = __convert_from_v(__cs, __cs_size, "%.0Lf", __units, _S_c_locale); } _CharT* __ws = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) * __cs_size)); __ctype.widen(__cs, __cs + __len, __ws); const string_type __digits(__ws, __len); return this->do_put(__s, __intl, __io, __fill, __digits); } template _OutIter money_put<_CharT, _OutIter>:: do_put(iter_type __s, bool __intl, ios_base& __io, char_type __fill, const string_type& __digits) const { typedef typename string_type::size_type size_type; typedef money_base::part part; const locale __loc = __io.getloc(); const size_type __width = static_cast(__io.width()); typedef moneypunct<_CharT, true> __money_true; typedef moneypunct<_CharT, false> __money_false; const __money_true& __mpt = use_facet<__money_true>(__loc); const __money_false& __mpf = use_facet<__money_false>(__loc); const ctype<_CharT>& __ctype = use_facet >(__loc); const char_type* __beg = __digits.data(); const char_type* __end = __beg + __digits.size(); money_base::pattern __p; string_type __sign; if (*__beg != __ctype.widen('-')) { __p = __intl ? __mpt.pos_format() : __mpf.pos_format(); __sign =__intl ? __mpt.positive_sign() : __mpf.positive_sign(); } else { __p = __intl ? __mpt.neg_format() : __mpf.neg_format(); __sign =__intl ? __mpt.negative_sign() : __mpf.negative_sign(); ++__beg; } __end = __ctype.scan_not(ctype_base::digit, __beg, __end); if (__beg != __end) { string_type __value; __value.reserve(20); const int __frac = __intl ? __mpt.frac_digits() : __mpf.frac_digits(); const int __paddec = __frac - (__end - __beg); if (__paddec < 0) { const string __grouping = __intl ? __mpt.grouping() : __mpf.grouping(); if (__grouping.size()) { const char_type __sep = __intl ? __mpt.thousands_sep() : __mpf.thousands_sep(); const char* __gbeg = __grouping.data(); const char* __gend = __gbeg + __grouping.size(); const int __n = (__end - __beg) * 2; _CharT* __ws2 = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) * __n)); _CharT* __ws_end = __add_grouping(__ws2, __sep, __gbeg, __gend, __beg, __end - __frac); __value.assign(__ws2, __ws_end - __ws2); } else __value.assign(__beg, -__paddec); } if (__frac > 0) { const char_type __d = __intl ? __mpt.decimal_point() : __mpf.decimal_point(); __value += __d; if (__paddec <= 0) __value.append(__end - __frac, __frac); else { const char_type __zero = __ctype.widen('0'); __value.append(__paddec, __zero); __value.append(__beg, __end - __beg); } } const string_type __symbol = __intl ? __mpt.curr_symbol() : __mpf.curr_symbol(); ios_base::fmtflags __f = __io.flags() & ios_base::adjustfield; size_type __len = __value.size() + __sign.size(); __len += (__io.flags() & ios_base::showbase) ? __symbol.size() : 0; string_type __res; __res.reserve(__len); bool __testipad = __f == ios_base::internal && __len < __width; for (int __i = 0; __i < 4; ++__i) { part __which = static_cast(__p.field[__i]); switch (__which) { case money_base::symbol: if (__io.flags() & ios_base::showbase) __res += __symbol; break; case money_base::sign: if (__sign.size()) __res += __sign[0]; break; case money_base::value: __res += __value; break; case money_base::space: if (__testipad) __res += string_type(__width - __len, __fill); else __res += __ctype.widen(__fill); break; case money_base::none: if (__testipad) __res += string_type(__width - __len, __fill); break; } } if (__sign.size() > 1) __res += string_type(__sign.begin() + 1, __sign.end()); __len = __res.size(); if (__width > __len) { if (__f == ios_base::left) __res.append(__width - __len, __fill); else __res.insert(0, string_type(__width - __len, __fill)); __len = __width; } __s = __write(__s, __res.data(), __len); } __io.width(0); return __s; } template time_base::dateorder time_get<_CharT, _InIter>::do_date_order() const { return time_base::no_order; } template void time_get<_CharT, _InIter>:: _M_extract_via_format(iter_type& __beg, iter_type& __end, ios_base& __io, ios_base::iostate& __err, tm* __tm, const _CharT* __format) const { locale __loc = __io.getloc(); __timepunct<_CharT> const& __tp = use_facet<__timepunct<_CharT> >(__loc); const ctype<_CharT>& __ctype = use_facet >(__loc); size_t __len = char_traits<_CharT>::length(__format); for (size_t __i = 0; __beg != __end && __i < __len && !__err; ++__i) { if (__ctype.narrow(__format[__i], 0) == '%') { char __c = __ctype.narrow(__format[++__i], 0); int __mem = 0; if (__c == 'E' || __c == 'O') __c = __ctype.narrow(__format[++__i], 0); switch (__c) { const char* __cs; _CharT __wcs[10]; case 'a': const char_type* __days1[7]; __tp._M_days_abbreviated(__days1); _M_extract_name(__beg, __end, __tm->tm_wday, __days1, 7, __err); break; case 'A': const char_type* __days2[7]; __tp._M_days(__days2); _M_extract_name(__beg, __end, __tm->tm_wday, __days2, 7, __err); break; case 'h': case 'b': const char_type* __months1[12]; __tp._M_months_abbreviated(__months1); _M_extract_name(__beg, __end, __tm->tm_mon, __months1, 12, __err); break; case 'B': const char_type* __months2[12]; __tp._M_months(__months2); _M_extract_name(__beg, __end, __tm->tm_mon, __months2, 12, __err); break; case 'c': const char_type* __dt[2]; __tp._M_date_time_formats(__dt); _M_extract_via_format(__beg, __end, __io, __err, __tm, __dt[0]); break; case 'd': _M_extract_num(__beg, __end, __tm->tm_mday, 1, 31, 2, __ctype, __err); break; case 'D': __cs = "%m/%d/%y"; __ctype.widen(__cs, __cs + 9, __wcs); _M_extract_via_format(__beg, __end, __io, __err, __tm, __wcs); break; case 'H': _M_extract_num(__beg, __end, __tm->tm_hour, 0, 23, 2, __ctype, __err); break; case 'I': _M_extract_num(__beg, __end, __tm->tm_hour, 1, 12, 2, __ctype, __err); break; case 'm': _M_extract_num(__beg, __end, __mem, 1, 12, 2, __ctype, __err); if (!__err) __tm->tm_mon = __mem - 1; break; case 'M': _M_extract_num(__beg, __end, __tm->tm_min, 0, 59, 2, __ctype, __err); break; case 'n': if (__ctype.narrow(*__beg, 0) == '\n') ++__beg; else __err |= ios_base::failbit; break; case 'R': __cs = "%H:%M"; __ctype.widen(__cs, __cs + 6, __wcs); _M_extract_via_format(__beg, __end, __io, __err, __tm, __wcs); break; case 'S': _M_extract_num(__beg, __end, __tm->tm_sec, 0, 59, 2, __ctype, __err); break; case 't': if (__ctype.narrow(*__beg, 0) == '\t') ++__beg; else __err |= ios_base::failbit; break; case 'T': __cs = "%H:%M:%S"; __ctype.widen(__cs, __cs + 9, __wcs); _M_extract_via_format(__beg, __end, __io, __err, __tm, __wcs); break; case 'x': const char_type* __dates[2]; __tp._M_date_formats(__dates); _M_extract_via_format(__beg, __end, __io, __err, __tm, __dates[0]); break; case 'X': const char_type* __times[2]; __tp._M_time_formats(__times); _M_extract_via_format(__beg, __end, __io, __err, __tm, __times[0]); break; case 'y': _M_extract_num(__beg, __end, __tm->tm_year, 0, 99, 2, __ctype, __err); break; case 'Y': _M_extract_num(__beg, __end, __mem, 0, 9999, 4, __ctype, __err); if (!__err) __tm->tm_year = __mem - 1900; break; case 'Z': if (__ctype.is(ctype_base::upper, *__beg)) { int __tmp; _M_extract_name(__beg, __end, __tmp, __timepunct<_CharT>::_S_timezones, 14, __err); char_type __c = *__beg; if (!__err && __tmp == 0 && (__c == __ctype.widen('-') || __c == __ctype.widen('+'))) { _M_extract_num(__beg, __end, __tmp, 0, 23, 2, __ctype, __err); _M_extract_num(__beg, __end, __tmp, 0, 59, 2, __ctype, __err); } } else __err |= ios_base::failbit; break; default: __err |= ios_base::failbit; } } else { if (__format[__i] == *__beg) ++__beg; else __err |= ios_base::failbit; } } } template void time_get<_CharT, _InIter>:: _M_extract_num(iter_type& __beg, iter_type& __end, int& __member, int __min, int __max, size_t __len, const ctype<_CharT>& __ctype, ios_base::iostate& __err) const { int __mult = __len == 2 ? 10 : (__len == 4 ? 1000 : 1); ++__min; size_t __i = 0; int __value = 0; for (; __beg != __end && __i < __len; ++__beg, ++__i) { const char __c = __ctype.narrow(*__beg, '*'); if (__c >= '0' && __c <= '9') { __value = __value * 10 + (__c - '0'); const int __valuec = __value * __mult; if (__valuec > __max || __valuec + __mult < __min) break; __mult /= 10; } else break; } if (__i == __len) __member = __value; else __err |= ios_base::failbit; } template void time_get<_CharT, _InIter>:: _M_extract_name(iter_type& __beg, iter_type& __end, int& __member, const _CharT** __names, size_t __indexlen, ios_base::iostate& __err) const { typedef char_traits<_CharT> __traits_type; int* __matches = static_cast(__builtin_alloca(sizeof(int) * __indexlen)); size_t __nmatches = 0; size_t __pos = 0; bool __testvalid = true; const char_type* __name; char_type __c = *__beg; for (size_t __i1 = 0; __i1 < __indexlen; ++__i1) if (__c == __names[__i1][0]) __matches[__nmatches++] = __i1; while (__nmatches > 1) { size_t __minlen = 10; for (size_t __i2 = 0; __i2 < __nmatches; ++__i2) __minlen = min(__minlen, __traits_type::length(__names[__matches[__i2]])); if (__pos < __minlen && __beg != __end) { ++__pos; __c = *(++__beg); for (size_t __i3 = 0; __i3 < __nmatches; ++__i3) { __name = __names[__matches[__i3]]; if (__name[__pos] != __c) __matches[__i3] = __matches[--__nmatches]; } } else break; } if (__nmatches == 1) { __name = __names[__matches[0]]; const size_t __len = __traits_type::length(__name); while (__pos < __len && __beg != __end && __name[__pos] == *__beg) ++__beg, ++__pos; if (__len == __pos) __member = __matches[0]; else __testvalid = false; } else __testvalid = false; if (!__testvalid) __err |= ios_base::failbit; } template _InIter time_get<_CharT, _InIter>:: do_get_time(iter_type __beg, iter_type __end, ios_base& __io, ios_base::iostate& __err, tm* __tm) const { locale __loc = __io.getloc(); const __timepunct<_CharT>& __tp = use_facet<__timepunct<_CharT> >(__loc); const char_type* __times[2]; __tp._M_time_formats(__times); _M_extract_via_format(__beg, __end, __io, __err, __tm, __times[0]); if (__beg == __end) __err |= ios_base::eofbit; return __beg; } template _InIter time_get<_CharT, _InIter>:: do_get_date(iter_type __beg, iter_type __end, ios_base& __io, ios_base::iostate& __err, tm* __tm) const { locale __loc = __io.getloc(); const __timepunct<_CharT>& __tp = use_facet<__timepunct<_CharT> >(__loc); const char_type* __dates[2]; __tp._M_date_formats(__dates); _M_extract_via_format(__beg, __end, __io, __err, __tm, __dates[0]); if (__beg == __end) __err |= ios_base::eofbit; return __beg; } template _InIter time_get<_CharT, _InIter>:: do_get_weekday(iter_type __beg, iter_type __end, ios_base& __io, ios_base::iostate& __err, tm* __tm) const { typedef char_traits<_CharT> __traits_type; locale __loc = __io.getloc(); __timepunct<_CharT> const& __tp = use_facet<__timepunct<_CharT> >(__loc); const char_type* __days[7]; __tp._M_days_abbreviated(__days); int __tmpwday; _M_extract_name(__beg, __end, __tmpwday, __days, 7, __err); if (!__err) { size_t __pos = __traits_type::length(__days[__tmpwday]); __tp._M_days(__days); const char_type* __name = __days[__tmpwday]; if (__name[__pos] == *__beg) { const size_t __len = __traits_type::length(__name); while (__pos < __len && __beg != __end && __name[__pos] == *__beg) ++__beg, ++__pos; if (__len != __pos) __err |= ios_base::failbit; } if (!__err) __tm->tm_wday = __tmpwday; } if (__beg == __end) __err |= ios_base::eofbit; return __beg; } template _InIter time_get<_CharT, _InIter>:: do_get_monthname(iter_type __beg, iter_type __end, ios_base& __io, ios_base::iostate& __err, tm* __tm) const { typedef char_traits<_CharT> __traits_type; locale __loc = __io.getloc(); __timepunct<_CharT> const& __tp = use_facet<__timepunct<_CharT> >(__loc); const char_type* __months[12]; __tp._M_months_abbreviated(__months); int __tmpmon; _M_extract_name(__beg, __end, __tmpmon, __months, 12, __err); if (!__err) { size_t __pos = __traits_type::length(__months[__tmpmon]); __tp._M_months(__months); const char_type* __name = __months[__tmpmon]; if (__name[__pos] == *__beg) { const size_t __len = __traits_type::length(__name); while (__pos < __len && __beg != __end && __name[__pos] == *__beg) ++__beg, ++__pos; if (__len != __pos) __err |= ios_base::failbit; } if (!__err) __tm->tm_mon = __tmpmon; } if (__beg == __end) __err |= ios_base::eofbit; return __beg; } template _InIter time_get<_CharT, _InIter>:: do_get_year(iter_type __beg, iter_type __end, ios_base& __io, ios_base::iostate& __err, tm* __tm) const { const locale& __loc = __io._M_getloc(); const ctype<_CharT>& __ctype = use_facet >(__loc); size_t __i = 0; int __value = 0; for (; __beg != __end && __i < 4; ++__beg, ++__i) { const char __c = __ctype.narrow(*__beg, '*'); if (__c >= '0' && __c <= '9') __value = __value * 10 + (__c - '0'); else break; } if (__i == 2 || __i == 4) __tm->tm_year = __i == 2 ? __value : __value - 1900; else __err |= ios_base::failbit; if (__beg == __end) __err |= ios_base::eofbit; return __beg; } template _OutIter time_put<_CharT, _OutIter>:: put(iter_type __s, ios_base& __io, char_type __fill, const tm* __tm, const _CharT* __beg, const _CharT* __end) const { const locale& __loc = __io._M_getloc(); ctype<_CharT> const& __ctype = use_facet >(__loc); for (; __beg != __end; ++__beg) if (__ctype.narrow(*__beg, 0) != '%') { *__s = *__beg; ++__s; } else if (++__beg != __end) { char __format; char __mod = 0; const char __c = __ctype.narrow(*__beg, 0); if (__c != 'E' && __c != 'O') __format = __c; else if (++__beg != __end) { __mod = __c; __format = __ctype.narrow(*__beg, 0); } else break; __s = this->do_put(__s, __io, __fill, __tm, __format, __mod); } else break; return __s; } template _OutIter time_put<_CharT, _OutIter>:: do_put(iter_type __s, ios_base& __io, char_type, const tm* __tm, char __format, char __mod) const { locale __loc = __io.getloc(); ctype<_CharT> const& __ctype = use_facet >(__loc); __timepunct<_CharT> const& __tp = use_facet<__timepunct<_CharT> >(__loc); const size_t __maxlen = 64; char_type* __res = static_cast(__builtin_alloca(sizeof(char_type) * __maxlen)); char_type __fmt[4]; __fmt[0] = __ctype.widen('%'); if (!__mod) { __fmt[1] = __format; __fmt[2] = char_type(); } else { __fmt[1] = __mod; __fmt[2] = __format; __fmt[3] = char_type(); } __tp._M_put(__res, __maxlen, __fmt, __tm); return __write(__s, __res, char_traits::length(__res)); } template int collate<_CharT>::_M_compare(const _CharT*, const _CharT*) const { return 0; } template size_t collate<_CharT>::_M_transform(_CharT*, const _CharT*, size_t) const { return 0; } template int collate<_CharT>:: do_compare(const _CharT* __lo1, const _CharT* __hi1, const _CharT* __lo2, const _CharT* __hi2) const { const string_type __one(__lo1, __hi1); const string_type __two(__lo2, __hi2); const _CharT* __p = __one.c_str(); const _CharT* __pend = __one.c_str() + __one.length(); const _CharT* __q = __two.c_str(); const _CharT* __qend = __two.c_str() + __two.length(); for (;;) { int __res = _M_compare(__p, __q); if (__res) return __res; __p += char_traits<_CharT>::length(__p); __q += char_traits<_CharT>::length(__q); if (__p == __pend && __q == __qend) return 0; else if (__p == __pend) return -1; else if (__q == __qend) return 1; __p++; __q++; } } template typename collate<_CharT>::string_type collate<_CharT>:: do_transform(const _CharT* __lo, const _CharT* __hi) const { string_type __str(__lo, __hi); const _CharT* __p = __str.c_str(); const _CharT* __pend = __str.c_str() + __str.length(); size_t __len = (__hi - __lo) * 2; string_type __ret; for (;;) { _CharT* __c = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) * __len)); size_t __res = _M_transform(__c, __p, __len); if (__res >= __len) { __len = __res + 1; __c = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) * __len)); __res = _M_transform(__c, __p, __res + 1); } __ret.append(__c, __res); __p += char_traits<_CharT>::length(__p); if (__p == __pend) return __ret; __p++; __ret.push_back(_CharT()); } } template long collate<_CharT>:: do_hash(const _CharT* __lo, const _CharT* __hi) const { unsigned long __val = 0; for (; __lo < __hi; ++__lo) __val = *__lo + ((__val << 7) | (__val >> (numeric_limits::digits - 7))); return static_cast(__val); } # 2149 "/usr/include/g++/bits/locale_facets.tcc" 3 template void __pad<_CharT, _Traits>::_S_pad(ios_base& __io, _CharT __fill, _CharT* __news, const _CharT* __olds, const streamsize __newlen, const streamsize __oldlen, const bool __num) { const size_t __plen = static_cast(__newlen - __oldlen); const ios_base::fmtflags __adjust = __io.flags() & ios_base::adjustfield; if (__adjust == ios_base::left) { _Traits::copy(__news, const_cast<_CharT*>(__olds), __oldlen); _Traits::assign(__news + __oldlen, __plen, __fill); return; } size_t __mod = 0; if (__adjust == ios_base::internal && __num) { const locale& __loc = __io.getloc(); const ctype<_CharT>& __ctype = use_facet >(__loc); const _CharT __minus = __ctype.widen('-'); const _CharT __plus = __ctype.widen('+'); const bool __testsign = _Traits::eq(__olds[0], __minus) || _Traits::eq(__olds[0], __plus); const bool __testhex = (_Traits::eq(__ctype.widen('0'), __olds[0]) && __oldlen > 1 && (_Traits::eq(__ctype.widen('x'), __olds[1]) || _Traits::eq(__ctype.widen('X'), __olds[1]))); if (__testhex) { __news[0] = __olds[0]; __news[1] = __olds[1]; __mod = 2; __news += 2; } else if (__testsign) { __news[0] = __olds[0]; __mod = 1; ++__news; } } _Traits::assign(__news, __plen, __fill); _Traits::copy(__news + __plen, const_cast<_CharT*>(__olds + __mod), __oldlen - __mod); } template bool __verify_grouping(const basic_string<_CharT>& __grouping, basic_string<_CharT>& __grouping_tmp) { const size_t __n = __grouping_tmp.size() - 1; const size_t __min = std::min(__n, __grouping.size() - 1); size_t __i = __n; bool __test = true; for (size_t __j = 0; __j < __min && __test; --__i, ++__j) __test = __grouping_tmp[__i] == __grouping[__j]; for (; __i && __test; --__i) __test = __grouping_tmp[__i] == __grouping[__min]; __test &= __grouping_tmp[0] <= __grouping[__min]; return __test; } template _CharT* __add_grouping(_CharT* __s, _CharT __sep, const char* __gbeg, const char* __gend, const _CharT* __first, const _CharT* __last) { if (__last - __first > *__gbeg) { __s = __add_grouping(__s, __sep, (__gbeg + 1 == __gend ? __gbeg : __gbeg + 1), __gend, __first, __last - *__gbeg); __first = __last - *__gbeg; *__s++ = __sep; } do *__s++ = *__first++; while (__first != __last); return __s; } template template _OutIter num_put<_CharT, _OutIter>:: _M_convert_int(_OutIter __s, ios_base& __io, _CharT __fill, char __mod, char __modl, _ValueT __v) const { char __fbuf[16]; _S_format_int(__io, __fbuf, __mod, __modl); int __cs_size = 64; char* __cs = static_cast(__builtin_alloca(__cs_size)); int __len = __convert_from_v(__cs, __cs_size, __fbuf, __v, _S_c_locale); if (__len >= __cs_size) { __cs_size = __len + 1; __cs = static_cast(__builtin_alloca(__cs_size)); __len = __convert_from_v(__cs, __cs_size, __fbuf, __v, _S_c_locale); } return _M_widen_int(__s, __io, __fill, __cs, __len); } template _OutIter num_put<_CharT, _OutIter>:: _M_widen_float(_OutIter __s, ios_base& __io, _CharT __fill, char* __cs, int __len) const { typedef char_traits<_CharT> __traits_type; const locale __loc = __io.getloc(); const ctype<_CharT>& __ctype = use_facet >(__loc); _CharT* __ws = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) * __len)); _CharT* __ws2 = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) * __len * 2)); __ctype.widen(__cs, __cs + __len, __ws); const _CharT* __p; const numpunct<_CharT>& __np = use_facet >(__loc); if (__p = __traits_type::find(__ws, __len, __ctype.widen('.'))) __ws[__p - __ws] = __np.decimal_point(); const string __grouping = __np.grouping(); if (__grouping.size()) { _CharT* __p2; int __declen = __p ? __p - __ws : __len; __p2 = __add_grouping(__ws2, __np.thousands_sep(), __grouping.c_str(), __grouping.c_str() + __grouping.size(), __ws, __ws + __declen); int __newlen = __p2 - __ws2; if (__p) { __traits_type::copy(__p2, __p, __len - __declen); __newlen += __len - __declen; } __ws = __ws2; __len = __newlen; } return _M_insert(__s, __io, __fill, __ws, __len); } template _OutIter num_put<_CharT, _OutIter>:: _M_widen_int(_OutIter __s, ios_base& __io, _CharT __fill, char* __cs, int __len) const { const locale __loc = __io.getloc(); const ctype<_CharT>& __ctype = use_facet >(__loc); _CharT* __ws = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) * __len)); _CharT* __ws2 = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) * __len * 2)); __ctype.widen(__cs, __cs + __len, __ws); const numpunct<_CharT>& __np = use_facet >(__loc); const string __grouping = __np.grouping(); if (__grouping.size()) { streamsize __off = 0; const ios_base::fmtflags __basefield = __io.flags() & ios_base::basefield; if ((__io.flags() & ios_base::showbase) && __len > 1) if (__basefield == ios_base::oct) { __off = 1; *__ws2 = *__ws; } else if (__basefield == ios_base::hex) { __off = 2; *__ws2 = *__ws; *(__ws2 + 1) = *(__ws + 1); } _CharT* __p; __p = __add_grouping(__ws2 + __off, __np.thousands_sep(), __grouping.c_str(), __grouping.c_str() + __grouping.size(), __ws + __off, __ws + __len); __len = __p - __ws2; __ws = __ws2; } return _M_insert(__s, __io, __fill, __ws, __len); } template _OutIter num_put<_CharT, _OutIter>:: _M_insert(_OutIter __s, ios_base& __io, _CharT __fill, const _CharT* __ws, int __len) const { typedef char_traits<_CharT> __traits_type; streamsize __w = __io.width(); _CharT* __ws2 = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) * __w)); if (__w > static_cast(__len)) { __pad<_CharT, __traits_type>::_S_pad(__io, __fill, __ws2, __ws, __w, __len, true); __len = static_cast(__w); __ws = __ws2; } __io.width(0); return __write(__s, __ws, __len); } template __locale_cache >::__locale_cache(const locale& __loc) : _M_truename(0), _M_falsename(0), _M_use_grouping(false), _M_grouping(0) { if (has_facet >(__loc)) { const numpunct<_CharT>& __np = use_facet >(__loc); _M_decimal_point = __np.decimal_point(); _M_thousands_sep = __np.thousands_sep(); string_type __false = __np.falsename(); _CharT* __falsename = new _CharT[__false.length() + 1]; __false.copy(__falsename, __false.length()); __falsename[__false.length()] = _CharT(); _M_falsename = __falsename; string_type __true = __np.truename(); _CharT* __truename = new _CharT[__true.length() + 1]; __true.copy(__truename, __true.length()); __truename[__true.length()] = _CharT(); _M_truename = __truename; string __grouping = __np.grouping(); char* __group = new char[__grouping.length() + 1]; __grouping.copy(__group, __grouping.length()); __group[__grouping.length()] = 0; _M_grouping = __group; _M_use_grouping = __grouping.length() != 0 && __grouping.data()[0] != 0; } if (has_facet >(__loc)) { const ctype<_CharT>& __ct = use_facet >(__loc); __ct.widen(__num_base::_S_atoms_out, __num_base::_S_atoms_out + __num_base::_S_end, _M_atoms_out); } } template __locale_cache >:: __locale_cache(const locale& __loc, bool) { const numpunct<_CharT>& __np = use_facet >(__loc); _M_thousands_sep = __np._M_thousands_sep; _M_decimal_point = __np._M_decimal_point; _M_falsename = __np._M_falsename; _M_truename = __np._M_truename; _M_grouping = __np._M_grouping; _M_use_grouping = false; const ctype<_CharT>& __ct = use_facet >(__loc); __ct.widen(__num_base::_S_atoms_out, __num_base::_S_atoms_out + __num_base::_S_end, _M_atoms_out); } extern template class moneypunct; extern template class moneypunct; extern template class moneypunct_byname; extern template class moneypunct_byname; extern template class money_get; extern template class money_put; extern template class numpunct; extern template class numpunct_byname; extern template class num_get; extern template class num_put; extern template class __timepunct; extern template class time_put; extern template class time_put_byname; extern template class time_get; extern template class time_get_byname; extern template class messages; extern template class messages_byname; extern template class ctype_byname; extern template class codecvt_byname; extern template class collate; extern template class collate_byname; extern template const codecvt& use_facet >(const locale&); extern template const collate& use_facet >(const locale&); extern template const numpunct& use_facet >(const locale&); extern template const num_put& use_facet >(const locale&); extern template const num_get& use_facet >(const locale&); extern template const moneypunct& use_facet >(const locale&); extern template const moneypunct& use_facet >(const locale&); extern template const money_put& use_facet >(const locale&); extern template const money_get& use_facet >(const locale&); extern template const __timepunct& use_facet<__timepunct >(const locale&); extern template const time_put& use_facet >(const locale&); extern template const time_get& use_facet >(const locale&); extern template const messages& use_facet >(const locale&); extern template bool has_facet >(const locale&); extern template bool has_facet >(const locale&); extern template bool has_facet >(const locale&); extern template bool has_facet >(const locale&); extern template bool has_facet >(const locale&); extern template bool has_facet >(const locale&); extern template bool has_facet >(const locale&); extern template bool has_facet >(const locale&); extern template bool has_facet >(const locale&); extern template bool has_facet<__timepunct >(const locale&); extern template bool has_facet >(const locale&); extern template bool has_facet >(const locale&); extern template bool has_facet >(const locale&); extern template class moneypunct; extern template class moneypunct; extern template class moneypunct_byname; extern template class moneypunct_byname; extern template class money_get; extern template class money_put; extern template class numpunct; extern template class numpunct_byname; extern template class num_get; extern template class num_put; extern template class __timepunct; extern template class time_put; extern template class time_put_byname; extern template class time_get; extern template class time_get_byname; extern template class messages; extern template class messages_byname; extern template class ctype_byname; extern template class codecvt_byname; extern template class collate; extern template class collate_byname; extern template const codecvt& use_facet >(locale const&); extern template const collate& use_facet >(const locale&); extern template const numpunct& use_facet >(const locale&); extern template const num_put& use_facet >(const locale&); extern template const num_get& use_facet >(const locale&); extern template const moneypunct& use_facet >(const locale&); extern template const moneypunct& use_facet >(const locale&); extern template const money_put& use_facet >(const locale&); extern template const money_get& use_facet >(const locale&); extern template const __timepunct& use_facet<__timepunct >(const locale&); extern template const time_put& use_facet >(const locale&); extern template const time_get& use_facet >(const locale&); extern template const messages& use_facet >(const locale&); extern template bool has_facet >(const locale&); extern template bool has_facet >(const locale&); extern template bool has_facet >(const locale&); extern template bool has_facet >(const locale&); extern template bool has_facet >(const locale&); extern template bool has_facet >(const locale&); extern template bool has_facet >(const locale&); extern template bool has_facet >(const locale&); extern template bool has_facet >(const locale&); extern template bool has_facet<__timepunct >(const locale&); extern template bool has_facet >(const locale&); extern template bool has_facet >(const locale&); extern template bool has_facet >(const locale&); } # 48 "/usr/include/g++/locale" 2 3 # 38 "/usr/include/g++/bits/istream.tcc" 2 3 # 1 "/usr/include/g++/ostream" 1 3 # 43 "/usr/include/g++/ostream" 3 # 44 "/usr/include/g++/ostream" 3 namespace std { # 57 "/usr/include/g++/ostream" 3 template class basic_ostream : virtual public basic_ios<_CharT, _Traits> { public: typedef _CharT char_type; typedef typename _Traits::int_type int_type; typedef typename _Traits::pos_type pos_type; typedef typename _Traits::off_type off_type; typedef _Traits traits_type; typedef basic_streambuf<_CharT, _Traits> __streambuf_type; typedef basic_ios<_CharT, _Traits> __ios_type; typedef basic_ostream<_CharT, _Traits> __ostream_type; typedef ostreambuf_iterator<_CharT, _Traits> __ostreambuf_iter; typedef num_put<_CharT, __ostreambuf_iter> __numput_type; typedef ctype<_CharT> __ctype_type; template friend basic_ostream<_CharT2, _Traits2>& operator<<(basic_ostream<_CharT2, _Traits2>&, _CharT2); template friend basic_ostream& operator<<(basic_ostream&, char); template friend basic_ostream<_CharT2, _Traits2>& operator<<(basic_ostream<_CharT2, _Traits2>&, const _CharT2*); template friend basic_ostream& operator<<(basic_ostream&, const char*); template friend basic_ostream<_CharT2, _Traits2>& operator<<(basic_ostream<_CharT2, _Traits2>&, const char*); # 104 "/usr/include/g++/ostream" 3 explicit basic_ostream(__streambuf_type* __sb) { this->init(__sb); } virtual ~basic_ostream() { } class sentry; friend class sentry; # 130 "/usr/include/g++/ostream" 3 __inline__ __ostream_type& operator<<(__ostream_type& (*__pf)(__ostream_type&)); __inline__ __ostream_type& operator<<(__ios_type& (*__pf)(__ios_type&)); __inline__ __ostream_type& operator<<(ios_base& (*__pf) (ios_base&)); # 167 "/usr/include/g++/ostream" 3 __ostream_type& operator<<(long __n); __ostream_type& operator<<(unsigned long __n); __ostream_type& operator<<(bool __n); __ostream_type& operator<<(short __n) { ios_base::fmtflags __fmt = this->flags() & ios_base::basefield; if (__fmt & ios_base::oct || __fmt & ios_base::hex) return this->operator<<(static_cast (static_cast(__n))); else return this->operator<<(static_cast(__n)); } __ostream_type& operator<<(unsigned short __n) { return this->operator<<(static_cast(__n)); } __ostream_type& operator<<(int __n) { ios_base::fmtflags __fmt = this->flags() & ios_base::basefield; if (__fmt & ios_base::oct || __fmt & ios_base::hex) return this->operator<<(static_cast (static_cast(__n))); else return this->operator<<(static_cast(__n)); } __ostream_type& operator<<(unsigned int __n) { return this->operator<<(static_cast(__n)); } __ostream_type& operator<<(long long __n); __ostream_type& operator<<(unsigned long long __n); __ostream_type& operator<<(double __f); __ostream_type& operator<<(float __f) { return this->operator<<(static_cast(__f)); } __ostream_type& operator<<(long double __f); __ostream_type& operator<<(const void* __p); # 248 "/usr/include/g++/ostream" 3 __ostream_type& operator<<(__streambuf_type* __sb); # 281 "/usr/include/g++/ostream" 3 __ostream_type& put(char_type __c); # 300 "/usr/include/g++/ostream" 3 __ostream_type& write(const char_type* __s, streamsize __n); # 313 "/usr/include/g++/ostream" 3 __ostream_type& flush(); # 324 "/usr/include/g++/ostream" 3 pos_type tellp(); # 335 "/usr/include/g++/ostream" 3 __ostream_type& seekp(pos_type); # 347 "/usr/include/g++/ostream" 3 __ostream_type& seekp(off_type, ios_base::seekdir); }; # 361 "/usr/include/g++/ostream" 3 template class basic_ostream<_CharT, _Traits>::sentry { bool _M_ok; basic_ostream<_CharT,_Traits>& _M_os; public: # 380 "/usr/include/g++/ostream" 3 explicit sentry(basic_ostream<_CharT,_Traits>& __os); # 390 "/usr/include/g++/ostream" 3 ~sentry() { if (_M_os.flags() & ios_base::unitbuf && !uncaught_exception()) { if (_M_os.rdbuf() && _M_os.rdbuf()->pubsync() == -1) _M_os.setstate(ios_base::badbit); } } # 408 "/usr/include/g++/ostream" 3 operator bool() { return _M_ok; } }; # 429 "/usr/include/g++/ostream" 3 template basic_ostream<_CharT, _Traits>& operator<<(basic_ostream<_CharT, _Traits>& __out, _CharT __c); template basic_ostream<_CharT, _Traits>& operator<<(basic_ostream<_CharT, _Traits>& __out, char __c) { return (__out << __out.widen(__c)); } template basic_ostream& operator<<(basic_ostream& __out, char __c); template basic_ostream& operator<<(basic_ostream& __out, signed char __c) { return (__out << static_cast(__c)); } template basic_ostream& operator<<(basic_ostream& __out, unsigned char __c) { return (__out << static_cast(__c)); } # 469 "/usr/include/g++/ostream" 3 template basic_ostream<_CharT, _Traits>& operator<<(basic_ostream<_CharT, _Traits>& __out, const _CharT* __s); template basic_ostream<_CharT, _Traits> & operator<<(basic_ostream<_CharT, _Traits>& __out, const char* __s); template basic_ostream& operator<<(basic_ostream& __out, const char* __s); template basic_ostream& operator<<(basic_ostream& __out, const signed char* __s) { return (__out << reinterpret_cast(__s)); } template basic_ostream & operator<<(basic_ostream& __out, const unsigned char* __s) { return (__out << reinterpret_cast(__s)); } # 503 "/usr/include/g++/ostream" 3 template basic_ostream<_CharT, _Traits>& endl(basic_ostream<_CharT, _Traits>& __os) { return flush(__os.put(__os.widen('\n'))); } template basic_ostream<_CharT, _Traits>& ends(basic_ostream<_CharT, _Traits>& __os) { return __os.put(_CharT()); } template basic_ostream<_CharT, _Traits>& flush(basic_ostream<_CharT, _Traits>& __os) { return __os.flush(); } } # 1 "/usr/include/g++/bits/ostream.tcc" 1 3 # 35 "/usr/include/g++/bits/ostream.tcc" 3 # 36 "/usr/include/g++/bits/ostream.tcc" 3 namespace std { template basic_ostream<_CharT, _Traits>::sentry:: sentry(basic_ostream<_CharT, _Traits>& __os) : _M_os(__os) { if (__os.tie() && __os.good()) __os.tie()->flush(); if (__os.good()) _M_ok = true; else { _M_ok = false; __os.setstate(ios_base::failbit); } } template basic_ostream<_CharT, _Traits>& basic_ostream<_CharT, _Traits>:: operator<<(__ostream_type& (*__pf)(__ostream_type&)) { return __pf(*this); } template basic_ostream<_CharT, _Traits>& basic_ostream<_CharT, _Traits>:: operator<<(__ios_type& (*__pf)(__ios_type&)) { __pf(*this); return *this; } template basic_ostream<_CharT, _Traits>& basic_ostream<_CharT, _Traits>:: operator<<(ios_base& (*__pf)(ios_base&)) { __pf(*this); return *this; } template basic_ostream<_CharT, _Traits>& basic_ostream<_CharT, _Traits>:: operator<<(bool __n) { sentry __cerb(*this); if (__cerb) { ios_base::iostate __err = ios_base::iostate(ios_base::goodbit); try { _M_check_facet(this->_M_fnumput); const __numput_type& __np = *this->_M_fnumput; if (__np.put(*this, *this, this->fill(), __n).failed()) __err |= ios_base::badbit; } catch(...) { this->_M_setstate(ios_base::badbit); } if (__err) this->setstate(__err); } return *this; } template basic_ostream<_CharT, _Traits>& basic_ostream<_CharT, _Traits>:: operator<<(long __n) { sentry __cerb(*this); if (__cerb) { ios_base::iostate __err = ios_base::iostate(ios_base::goodbit); try { bool __b = false; char_type __c = this->fill(); ios_base::fmtflags __fmt = this->flags() & ios_base::basefield; _M_check_facet(this->_M_fnumput); const __numput_type& __np = *this->_M_fnumput; if ((__fmt & ios_base::oct) || (__fmt & ios_base::hex)) { unsigned long __l = static_cast(__n); __b = __np.put(*this, *this, __c, __l).failed(); } else __b = __np.put(*this, *this, __c, __n).failed(); if (__b) __err |= ios_base::badbit; } catch(...) { this->_M_setstate(ios_base::badbit); } if (__err) this->setstate(__err); } return *this; } template basic_ostream<_CharT, _Traits>& basic_ostream<_CharT, _Traits>:: operator<<(unsigned long __n) { sentry __cerb(*this); if (__cerb) { ios_base::iostate __err = ios_base::iostate(ios_base::goodbit); try { _M_check_facet(this->_M_fnumput); const __numput_type& __np = *this->_M_fnumput; if (__np.put(*this, *this, this->fill(), __n).failed()) __err |= ios_base::badbit; } catch(...) { this->_M_setstate(ios_base::badbit); } if (__err) this->setstate(__err); } return *this; } template basic_ostream<_CharT, _Traits>& basic_ostream<_CharT, _Traits>:: operator<<(long long __n) { sentry __cerb(*this); if (__cerb) { ios_base::iostate __err = ios_base::iostate(ios_base::goodbit); try { bool __b = false; char_type __c = this->fill(); ios_base::fmtflags __fmt = this->flags() & ios_base::basefield; _M_check_facet(this->_M_fnumput); const __numput_type& __np = *this->_M_fnumput; if ((__fmt & ios_base::oct) || (__fmt & ios_base::hex)) { unsigned long long __l; __l = static_cast(__n); __b = __np.put(*this, *this, __c, __l).failed(); } else __b = __np.put(*this, *this, __c, __n).failed(); if (__b) __err |= ios_base::badbit; } catch(...) { this->_M_setstate(ios_base::badbit); } if (__err) this->setstate(__err); } return *this; } template basic_ostream<_CharT, _Traits>& basic_ostream<_CharT, _Traits>:: operator<<(unsigned long long __n) { sentry __cerb(*this); if (__cerb) { ios_base::iostate __err = ios_base::iostate(ios_base::goodbit); try { _M_check_facet(this->_M_fnumput); const __numput_type& __np = *this->_M_fnumput; if (__np.put(*this, *this, this->fill(), __n).failed()) __err |= ios_base::badbit; } catch(...) { this->_M_setstate(ios_base::badbit); } if (__err) this->setstate(__err); } return *this; } template basic_ostream<_CharT, _Traits>& basic_ostream<_CharT, _Traits>:: operator<<(double __n) { sentry __cerb(*this); if (__cerb) { ios_base::iostate __err = ios_base::iostate(ios_base::goodbit); try { _M_check_facet(this->_M_fnumput); const __numput_type& __np = *this->_M_fnumput; if (__np.put(*this, *this, this->fill(), __n).failed()) __err |= ios_base::badbit; } catch(...) { this->_M_setstate(ios_base::badbit); } if (__err) this->setstate(__err); } return *this; } template basic_ostream<_CharT, _Traits>& basic_ostream<_CharT, _Traits>:: operator<<(long double __n) { sentry __cerb(*this); if (__cerb) { ios_base::iostate __err = ios_base::iostate(ios_base::goodbit); try { _M_check_facet(this->_M_fnumput); const __numput_type& __np = *this->_M_fnumput; if (__np.put(*this, *this, this->fill(), __n).failed()) __err |= ios_base::badbit; } catch(...) { this->_M_setstate(ios_base::badbit); } if (__err) this->setstate(__err); } return *this; } template basic_ostream<_CharT, _Traits>& basic_ostream<_CharT, _Traits>:: operator<<(const void* __n) { sentry __cerb(*this); if (__cerb) { ios_base::iostate __err = ios_base::iostate(ios_base::goodbit); try { _M_check_facet(this->_M_fnumput); const __numput_type& __np = *this->_M_fnumput; if (__np.put(*this, *this, this->fill(), __n).failed()) __err |= ios_base::badbit; } catch(...) { this->_M_setstate(ios_base::badbit); } if (__err) this->setstate(__err); } return *this; } template basic_ostream<_CharT, _Traits>& basic_ostream<_CharT, _Traits>:: operator<<(__streambuf_type* __sbin) { ios_base::iostate __err = ios_base::iostate(ios_base::goodbit); sentry __cerb(*this); if (__cerb && __sbin) { try { if (!__copy_streambufs(*this, __sbin, this->rdbuf())) __err |= ios_base::failbit; } catch(...) { this->_M_setstate(ios_base::failbit); } } else if (!__sbin) __err |= ios_base::badbit; if (__err) this->setstate(__err); return *this; } template basic_ostream<_CharT, _Traits>& basic_ostream<_CharT, _Traits>::put(char_type __c) { sentry __cerb(*this); if (__cerb) { ios_base::iostate __err = ios_base::iostate(ios_base::goodbit); try { int_type __put = this->rdbuf()->sputc(__c); if (traits_type::eq_int_type(__put, traits_type::eof())) __err |= ios_base::badbit; } catch (...) { this->_M_setstate(ios_base::badbit); } if (__err) this->setstate(__err); } return *this; } template basic_ostream<_CharT, _Traits>& basic_ostream<_CharT, _Traits>::write(const _CharT* __s, streamsize __n) { sentry __cerb(*this); if (__cerb) { ios_base::iostate __err = ios_base::iostate(ios_base::goodbit); try { streamsize __put = this->rdbuf()->sputn(__s, __n); if (__put != __n) __err |= ios_base::badbit; } catch (...) { this->_M_setstate(ios_base::badbit); } if (__err) this->setstate(__err); } return *this; } template basic_ostream<_CharT, _Traits>& basic_ostream<_CharT, _Traits>::flush() { ios_base::iostate __err = ios_base::iostate(ios_base::goodbit); try { if (this->rdbuf() && this->rdbuf()->pubsync() == -1) __err |= ios_base::badbit; } catch(...) { this->_M_setstate(ios_base::badbit); } if (__err) this->setstate(__err); return *this; } template typename basic_ostream<_CharT, _Traits>::pos_type basic_ostream<_CharT, _Traits>::tellp() { pos_type __ret = pos_type(-1); try { if (!this->fail()) __ret = this->rdbuf()->pubseekoff(0, ios_base::cur, ios_base::out); } catch(...) { this->_M_setstate(ios_base::badbit); } return __ret; } template basic_ostream<_CharT, _Traits>& basic_ostream<_CharT, _Traits>::seekp(pos_type __pos) { ios_base::iostate __err = ios_base::iostate(ios_base::goodbit); try { if (!this->fail()) { pos_type __p = this->rdbuf()->pubseekpos(__pos, ios_base::out); if (__p == pos_type(off_type(-1))) __err |= ios_base::failbit; } } catch(...) { this->_M_setstate(ios_base::badbit); } if (__err) this->setstate(__err); return *this; } template basic_ostream<_CharT, _Traits>& basic_ostream<_CharT, _Traits>:: seekp(off_type __off, ios_base::seekdir __dir) { ios_base::iostate __err = ios_base::iostate(ios_base::goodbit); try { if (!this->fail()) { pos_type __p = this->rdbuf()->pubseekoff(__off, __dir, ios_base::out); if (__p == pos_type(off_type(-1))) __err |= ios_base::failbit; } } catch(...) { this->_M_setstate(ios_base::badbit); } if (__err) this->setstate(__err); return *this; } template basic_ostream<_CharT, _Traits>& operator<<(basic_ostream<_CharT, _Traits>& __out, _CharT __c) { typedef basic_ostream<_CharT, _Traits> __ostream_type; typename __ostream_type::sentry __cerb(__out); if (__cerb) { try { const streamsize __w = __out.width() > 0 ? __out.width() : 0; _CharT* __pads = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) * (__w + 1))); __pads[0] = __c; streamsize __len = 1; if (__w > __len) { __pad<_CharT, _Traits>::_S_pad(__out, __out.fill(), __pads, &__c, __w, __len, false); __len = __w; } __out.write(__pads, __len); __out.width(0); } catch(...) { __out._M_setstate(ios_base::badbit); } } return __out; } template basic_ostream& operator<<(basic_ostream& __out, char __c) { typedef basic_ostream __ostream_type; typename __ostream_type::sentry __cerb(__out); if (__cerb) { try { const streamsize __w = __out.width() > 0 ? __out.width() : 0; char* __pads = static_cast(__builtin_alloca(__w + 1)); __pads[0] = __c; streamsize __len = 1; if (__w > __len) { __pad::_S_pad(__out, __out.fill(), __pads, &__c, __w, __len, false); __len = __w; } __out.write(__pads, __len); __out.width(0); } catch(...) { __out._M_setstate(ios_base::badbit); } } return __out; } template basic_ostream<_CharT, _Traits>& operator<<(basic_ostream<_CharT, _Traits>& __out, const _CharT* __s) { typedef basic_ostream<_CharT, _Traits> __ostream_type; typename __ostream_type::sentry __cerb(__out); if (__cerb && __s) { try { const streamsize __w = __out.width() > 0 ? __out.width() : 0; _CharT* __pads = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) * __w)); streamsize __len = static_cast(_Traits::length(__s)); if (__w > __len) { __pad<_CharT, _Traits>::_S_pad(__out, __out.fill(), __pads, __s, __w, __len, false); __s = __pads; __len = __w; } __out.write(__s, __len); __out.width(0); } catch(...) { __out._M_setstate(ios_base::badbit); } } else if (!__s) __out.setstate(ios_base::badbit); return __out; } template basic_ostream<_CharT, _Traits>& operator<<(basic_ostream<_CharT, _Traits>& __out, const char* __s) { typedef basic_ostream<_CharT, _Traits> __ostream_type; typedef char_traits __traits_type; typename __ostream_type::sentry __cerb(__out); if (__cerb && __s) { size_t __clen = __traits_type::length(__s); _CharT* __ws = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) * (__clen + 1))); for (size_t __i = 0; __i < __clen; ++__i) __ws[__i] = __out.widen(__s[__i]); _CharT* __str = __ws; try { streamsize __len = static_cast(__clen); const streamsize __w = __out.width() > 0 ? __out.width() : 0; _CharT* __pads = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) * __w)); if (__w > __len) { __pad<_CharT, _Traits>::_S_pad(__out, __out.fill(), __pads, __ws, __w, __len, false); __str = __pads; __len = __w; } __out.write(__str, __len); __out.width(0); } catch(...) { __out._M_setstate(ios_base::badbit); } } else if (!__s) __out.setstate(ios_base::badbit); return __out; } template basic_ostream& operator<<(basic_ostream& __out, const char* __s) { typedef basic_ostream __ostream_type; typename __ostream_type::sentry __cerb(__out); if (__cerb && __s) { try { const streamsize __w = __out.width() > 0 ? __out.width() : 0; char* __pads = static_cast(__builtin_alloca(__w)); streamsize __len = static_cast(_Traits::length(__s)); if (__w > __len) { __pad::_S_pad(__out, __out.fill(), __pads, __s, __w, __len, false); __s = __pads; __len = __w; } __out.write(__s, __len); __out.width(0); } catch(...) { __out._M_setstate(ios_base::badbit); } } else if (!__s) __out.setstate(ios_base::badbit); return __out; } template basic_ostream<_CharT, _Traits>& operator<<(basic_ostream<_CharT, _Traits>& __out, const basic_string<_CharT, _Traits, _Alloc>& __str) { typedef basic_ostream<_CharT, _Traits> __ostream_type; typename __ostream_type::sentry __cerb(__out); if (__cerb) { const _CharT* __s = __str.data(); const streamsize __w = __out.width() > 0 ? __out.width() : 0; _CharT* __pads = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) * __w)); streamsize __len = static_cast(__str.size()); if (__w > __len) { __pad<_CharT, _Traits>::_S_pad(__out, __out.fill(), __pads, __s, __w, __len, false); __s = __pads; __len = __w; } streamsize __res = __out.rdbuf()->sputn(__s, __len); __out.width(0); if (__res != __len) __out.setstate(ios_base::failbit); } return __out; } extern template class basic_ostream; extern template ostream& endl(ostream&); extern template ostream& ends(ostream&); extern template ostream& flush(ostream&); extern template ostream& operator<<(ostream&, char); extern template ostream& operator<<(ostream&, unsigned char); extern template ostream& operator<<(ostream&, signed char); extern template ostream& operator<<(ostream&, const char*); extern template ostream& operator<<(ostream&, const unsigned char*); extern template ostream& operator<<(ostream&, const signed char*); extern template class basic_ostream; extern template wostream& endl(wostream&); extern template wostream& ends(wostream&); extern template wostream& flush(wostream&); extern template wostream& operator<<(wostream&, wchar_t); extern template wostream& operator<<(wostream&, char); extern template wostream& operator<<(wostream&, const wchar_t*); extern template wostream& operator<<(wostream&, const char*); } # 536 "/usr/include/g++/ostream" 2 3 # 39 "/usr/include/g++/bits/istream.tcc" 2 3 namespace std { template basic_istream<_CharT, _Traits>::sentry:: sentry(basic_istream<_CharT, _Traits>& __in, bool __noskipws) { ios_base::iostate __err = ios_base::iostate(ios_base::goodbit); if (__in.good()) { if (__in.tie()) __in.tie()->flush(); if (!__noskipws && (__in.flags() & ios_base::skipws)) { const __int_type __eof = traits_type::eof(); __streambuf_type* __sb = __in.rdbuf(); __int_type __c = __sb->sgetc(); __in._M_check_facet(__in._M_fctype); const __ctype_type& __ct = *__in._M_fctype; while (!traits_type::eq_int_type(__c, __eof) && __ct.is(ctype_base::space, traits_type::to_char_type(__c))) __c = __sb->snextc(); if (traits_type::eq_int_type(__c, __eof)) __err |= ios_base::eofbit; } } if (__in.good() && __err == ios_base::goodbit) _M_ok = true; else { _M_ok = false; __err |= ios_base::failbit; __in.setstate(__err); } } template basic_istream<_CharT, _Traits>& basic_istream<_CharT, _Traits>:: operator>>(__istream_type& (*__pf)(__istream_type&)) { return __pf(*this); } template basic_istream<_CharT, _Traits>& basic_istream<_CharT, _Traits>:: operator>>(__ios_type& (*__pf)(__ios_type&)) { __pf(*this); return *this; } template basic_istream<_CharT, _Traits>& basic_istream<_CharT, _Traits>:: operator>>(ios_base& (*__pf)(ios_base&)) { __pf(*this); return *this; } template basic_istream<_CharT, _Traits>& basic_istream<_CharT, _Traits>:: operator>>(bool& __n) { sentry __cerb(*this, false); if (__cerb) { ios_base::iostate __err = ios_base::iostate(ios_base::goodbit); try { _M_check_facet(this->_M_fnumget); const __numget_type& __ng = *this->_M_fnumget; __ng.get(*this, 0, *this, __err, __n); } catch(...) { this->_M_setstate(ios_base::badbit); } if (__err) this->setstate(__err); } return *this; } template basic_istream<_CharT, _Traits>& basic_istream<_CharT, _Traits>:: operator>>(short& __n) { sentry __cerb(*this, false); if (__cerb) { ios_base::iostate __err = ios_base::iostate(ios_base::goodbit); try { long __l; _M_check_facet(this->_M_fnumget); const __numget_type& __ng = *this->_M_fnumget; __ng.get(*this, 0, *this, __err, __l); if (!(__err & ios_base::failbit) && (numeric_limits::min() <= __l && __l <= numeric_limits::max())) __n = __l; else __err |= ios_base::failbit; } catch(...) { this->_M_setstate(ios_base::badbit); } if (__err) this->setstate(__err); } return *this; } template basic_istream<_CharT, _Traits>& basic_istream<_CharT, _Traits>:: operator>>(unsigned short& __n) { sentry __cerb(*this, false); if (__cerb) { ios_base::iostate __err = ios_base::iostate(ios_base::goodbit); try { _M_check_facet(this->_M_fnumget); const __numget_type& __ng = *this->_M_fnumget; __ng.get(*this, 0, *this, __err, __n); } catch(...) { this->_M_setstate(ios_base::badbit); } if (__err) this->setstate(__err); } return *this; } template basic_istream<_CharT, _Traits>& basic_istream<_CharT, _Traits>:: operator>>(int& __n) { sentry __cerb(*this, false); if (__cerb) { ios_base::iostate __err = ios_base::iostate(ios_base::goodbit); try { long __l; _M_check_facet(this->_M_fnumget); const __numget_type& __ng = *this->_M_fnumget; __ng.get(*this, 0, *this, __err, __l); if (!(__err & ios_base::failbit) && (numeric_limits::min() <= __l && __l <= numeric_limits::max())) __n = __l; else __err |= ios_base::failbit; } catch(...) { this->_M_setstate(ios_base::badbit); } if (__err) this->setstate(__err); } return *this; } template basic_istream<_CharT, _Traits>& basic_istream<_CharT, _Traits>:: operator>>(unsigned int& __n) { sentry __cerb(*this, false); if (__cerb) { ios_base::iostate __err = ios_base::iostate(ios_base::goodbit); try { _M_check_facet(this->_M_fnumget); const __numget_type& __ng = *this->_M_fnumget; __ng.get(*this, 0, *this, __err, __n); } catch(...) { this->_M_setstate(ios_base::badbit); } if (__err) this->setstate(__err); } return *this; } template basic_istream<_CharT, _Traits>& basic_istream<_CharT, _Traits>:: operator>>(long& __n) { sentry __cerb(*this, false); if (__cerb) { ios_base::iostate __err = ios_base::iostate(ios_base::goodbit); try { _M_check_facet(this->_M_fnumget); const __numget_type& __ng = *this->_M_fnumget; __ng.get(*this, 0, *this, __err, __n); } catch(...) { this->_M_setstate(ios_base::badbit); } if (__err) this->setstate(__err); } return *this; } template basic_istream<_CharT, _Traits>& basic_istream<_CharT, _Traits>:: operator>>(unsigned long& __n) { sentry __cerb(*this, false); if (__cerb) { ios_base::iostate __err = ios_base::iostate(ios_base::goodbit); try { _M_check_facet(this->_M_fnumget); const __numget_type& __ng = *this->_M_fnumget; __ng.get(*this, 0, *this, __err, __n); } catch(...) { this->_M_setstate(ios_base::badbit); } if (__err) this->setstate(__err); } return *this; } template basic_istream<_CharT, _Traits>& basic_istream<_CharT, _Traits>:: operator>>(long long& __n) { sentry __cerb(*this, false); if (__cerb) { ios_base::iostate __err = ios_base::iostate(ios_base::goodbit); try { _M_check_facet(this->_M_fnumget); const __numget_type& __ng = *this->_M_fnumget; __ng.get(*this, 0, *this, __err, __n); } catch(...) { this->_M_setstate(ios_base::badbit); } if (__err) this->setstate(__err); } return *this; } template basic_istream<_CharT, _Traits>& basic_istream<_CharT, _Traits>:: operator>>(unsigned long long& __n) { sentry __cerb(*this, false); if (__cerb) { ios_base::iostate __err = ios_base::iostate(ios_base::goodbit); try { _M_check_facet(this->_M_fnumget); const __numget_type& __ng = *this->_M_fnumget; __ng.get(*this, 0, *this, __err, __n); } catch(...) { this->_M_setstate(ios_base::badbit); } if (__err) this->setstate(__err); } return *this; } template basic_istream<_CharT, _Traits>& basic_istream<_CharT, _Traits>:: operator>>(float& __n) { sentry __cerb(*this, false); if (__cerb) { ios_base::iostate __err = ios_base::iostate(ios_base::goodbit); try { _M_check_facet(this->_M_fnumget); const __numget_type& __ng = *this->_M_fnumget; __ng.get(*this, 0, *this, __err, __n); } catch(...) { this->_M_setstate(ios_base::badbit); } if (__err) this->setstate(__err); } return *this; } template basic_istream<_CharT, _Traits>& basic_istream<_CharT, _Traits>:: operator>>(double& __n) { sentry __cerb(*this, false); if (__cerb) { ios_base::iostate __err = ios_base::iostate(ios_base::goodbit); try { _M_check_facet(this->_M_fnumget); const __numget_type& __ng = *this->_M_fnumget; __ng.get(*this, 0, *this, __err, __n); } catch(...) { this->_M_setstate(ios_base::badbit); } if (__err) this->setstate(__err); } return *this; } template basic_istream<_CharT, _Traits>& basic_istream<_CharT, _Traits>:: operator>>(long double& __n) { sentry __cerb(*this, false); if (__cerb) { ios_base::iostate __err = ios_base::iostate(ios_base::goodbit); try { _M_check_facet(this->_M_fnumget); const __numget_type& __ng = *this->_M_fnumget; __ng.get(*this, 0, *this, __err, __n); } catch(...) { this->_M_setstate(ios_base::badbit); } if (__err) this->setstate(__err); } return *this; } template basic_istream<_CharT, _Traits>& basic_istream<_CharT, _Traits>:: operator>>(void*& __n) { sentry __cerb(*this, false); if (__cerb) { ios_base::iostate __err = ios_base::iostate(ios_base::goodbit); try { _M_check_facet(this->_M_fnumget); const __numget_type& __ng = *this->_M_fnumget; __ng.get(*this, 0, *this, __err, __n); } catch(...) { this->_M_setstate(ios_base::badbit); } if (__err) this->setstate(__err); } return *this; } template basic_istream<_CharT, _Traits>& basic_istream<_CharT, _Traits>:: operator>>(__streambuf_type* __sbout) { ios_base::iostate __err = ios_base::iostate(ios_base::goodbit); sentry __cerb(*this, false); if (__cerb && __sbout) { try { if (!__copy_streambufs(*this, this->rdbuf(), __sbout)) __err |= ios_base::failbit; } catch(...) { this->_M_setstate(ios_base::failbit); } } else if (!__sbout) __err |= ios_base::failbit; if (__err) this->setstate(__err); return *this; } template typename basic_istream<_CharT, _Traits>::int_type basic_istream<_CharT, _Traits>:: get(void) { const int_type __eof = traits_type::eof(); int_type __c = __eof; _M_gcount = 0; ios_base::iostate __err = ios_base::iostate(ios_base::goodbit); sentry __cerb(*this, true); if (__cerb) { try { __c = this->rdbuf()->sbumpc(); if (!traits_type::eq_int_type(__c, __eof)) _M_gcount = 1; else __err |= ios_base::eofbit; } catch(...) { this->_M_setstate(ios_base::badbit); } } if (!_M_gcount) __err |= ios_base::failbit; if (__err) this->setstate(__err); return __c; } template basic_istream<_CharT, _Traits>& basic_istream<_CharT, _Traits>:: get(char_type& __c) { _M_gcount = 0; ios_base::iostate __err = ios_base::iostate(ios_base::goodbit); sentry __cerb(*this, true); if (__cerb) { try { int_type __cb = this->rdbuf()->sbumpc(); if (!traits_type::eq_int_type(__cb, traits_type::eof())) { _M_gcount = 1; __c = traits_type::to_char_type(__cb); } else __err |= ios_base::eofbit; } catch(...) { this->_M_setstate(ios_base::badbit); } } if (!_M_gcount) __err |= ios_base::failbit; if (__err) this->setstate(__err); return *this; } template basic_istream<_CharT, _Traits>& basic_istream<_CharT, _Traits>:: get(char_type* __s, streamsize __n, char_type __delim) { _M_gcount = 0; ios_base::iostate __err = ios_base::iostate(ios_base::goodbit); sentry __cerb(*this, true); if (__cerb) { try { const int_type __idelim = traits_type::to_int_type(__delim); const int_type __eof = traits_type::eof(); __streambuf_type* __sb = this->rdbuf(); int_type __c = __sb->sgetc(); while (_M_gcount + 1 < __n && !traits_type::eq_int_type(__c, __eof) && !traits_type::eq_int_type(__c, __idelim)) { *__s++ = traits_type::to_char_type(__c); __c = __sb->snextc(); ++_M_gcount; } if (traits_type::eq_int_type(__c, __eof)) __err |= ios_base::eofbit; } catch(...) { this->_M_setstate(ios_base::badbit); } } *__s = char_type(); if (!_M_gcount) __err |= ios_base::failbit; if (__err) this->setstate(__err); return *this; } template basic_istream<_CharT, _Traits>& basic_istream<_CharT, _Traits>:: get(__streambuf_type& __sb, char_type __delim) { _M_gcount = 0; ios_base::iostate __err = ios_base::iostate(ios_base::goodbit); sentry __cerb(*this, true); if (__cerb) { try { const int_type __idelim = traits_type::to_int_type(__delim); const int_type __eof = traits_type::eof(); __streambuf_type* __this_sb = this->rdbuf(); int_type __c = __this_sb->sgetc(); char_type __c2 = traits_type::to_char_type(__c); while (!traits_type::eq_int_type(__c, __eof) && !traits_type::eq_int_type(__c, __idelim) && !traits_type::eq_int_type(__sb.sputc(__c2), __eof)) { ++_M_gcount; __c = __this_sb->snextc(); __c2 = traits_type::to_char_type(__c); } if (traits_type::eq_int_type(__c, __eof)) __err |= ios_base::eofbit; } catch(...) { this->_M_setstate(ios_base::badbit); } } if (!_M_gcount) __err |= ios_base::failbit; if (__err) this->setstate(__err); return *this; } template basic_istream<_CharT, _Traits>& basic_istream<_CharT, _Traits>:: getline(char_type* __s, streamsize __n, char_type __delim) { _M_gcount = 0; ios_base::iostate __err = ios_base::iostate(ios_base::goodbit); sentry __cerb(*this, true); if (__cerb) { try { const int_type __idelim = traits_type::to_int_type(__delim); const int_type __eof = traits_type::eof(); __streambuf_type* __sb = this->rdbuf(); int_type __c = __sb->sgetc(); while (_M_gcount + 1 < __n && !traits_type::eq_int_type(__c, __eof) && !traits_type::eq_int_type(__c, __idelim)) { *__s++ = traits_type::to_char_type(__c); __c = __sb->snextc(); ++_M_gcount; } if (traits_type::eq_int_type(__c, __eof)) __err |= ios_base::eofbit; else { if (traits_type::eq_int_type(__c, __idelim)) { __sb->sbumpc(); ++_M_gcount; } else __err |= ios_base::failbit; } } catch(...) { this->_M_setstate(ios_base::badbit); } } *__s = char_type(); if (!_M_gcount) __err |= ios_base::failbit; if (__err) this->setstate(__err); return *this; } template basic_istream<_CharT, _Traits>& basic_istream<_CharT, _Traits>:: ignore(streamsize __n, int_type __delim) { _M_gcount = 0; sentry __cerb(*this, true); if (__cerb && __n > 0) { ios_base::iostate __err = ios_base::iostate(ios_base::goodbit); try { const int_type __eof = traits_type::eof(); __streambuf_type* __sb = this->rdbuf(); int_type __c; __n = min(__n, numeric_limits::max()); while (_M_gcount < __n && !traits_type::eq_int_type(__c = __sb->sbumpc(), __eof)) { ++_M_gcount; if (traits_type::eq_int_type(__c, __delim)) break; } if (traits_type::eq_int_type(__c, __eof)) __err |= ios_base::eofbit; } catch(...) { this->_M_setstate(ios_base::badbit); } if (__err) this->setstate(__err); } return *this; } template typename basic_istream<_CharT, _Traits>::int_type basic_istream<_CharT, _Traits>:: peek(void) { int_type __c = traits_type::eof(); _M_gcount = 0; sentry __cerb(*this, true); if (__cerb) { ios_base::iostate __err = ios_base::iostate(ios_base::goodbit); try { __c = this->rdbuf()->sgetc(); if (traits_type::eq_int_type(__c, traits_type::eof())) __err |= ios_base::eofbit; } catch(...) { this->_M_setstate(ios_base::badbit); } if (__err) this->setstate(__err); } return __c; } template basic_istream<_CharT, _Traits>& basic_istream<_CharT, _Traits>:: read(char_type* __s, streamsize __n) { _M_gcount = 0; sentry __cerb(*this, true); if (__cerb) { ios_base::iostate __err = ios_base::iostate(ios_base::goodbit); try { _M_gcount = this->rdbuf()->sgetn(__s, __n); if (_M_gcount != __n) __err |= (ios_base::eofbit | ios_base::failbit); } catch(...) { this->_M_setstate(ios_base::badbit); } if (__err) this->setstate(__err); } return *this; } template streamsize basic_istream<_CharT, _Traits>:: readsome(char_type* __s, streamsize __n) { _M_gcount = 0; sentry __cerb(*this, true); if (__cerb) { ios_base::iostate __err = ios_base::iostate(ios_base::goodbit); try { streamsize __num = this->rdbuf()->in_avail(); if (__num >= 0) { __num = min(__num, __n); if (__num) _M_gcount = this->rdbuf()->sgetn(__s, __num); } else __err |= ios_base::eofbit; } catch(...) { this->_M_setstate(ios_base::badbit); } if (__err) this->setstate(__err); } return _M_gcount; } template basic_istream<_CharT, _Traits>& basic_istream<_CharT, _Traits>:: putback(char_type __c) { _M_gcount = 0; sentry __cerb(*this, true); if (__cerb) { ios_base::iostate __err = ios_base::iostate(ios_base::goodbit); try { const int_type __eof = traits_type::eof(); __streambuf_type* __sb = this->rdbuf(); if (!__sb || traits_type::eq_int_type(__sb->sputbackc(__c), __eof)) __err |= ios_base::badbit; } catch(...) { this->_M_setstate(ios_base::badbit); } if (__err) this->setstate(__err); } return *this; } template basic_istream<_CharT, _Traits>& basic_istream<_CharT, _Traits>:: unget(void) { _M_gcount = 0; sentry __cerb(*this, true); if (__cerb) { ios_base::iostate __err = ios_base::iostate(ios_base::goodbit); try { const int_type __eof = traits_type::eof(); __streambuf_type* __sb = this->rdbuf(); if (!__sb || traits_type::eq_int_type(__sb->sungetc(), __eof)) __err |= ios_base::badbit; } catch(...) { this->_M_setstate(ios_base::badbit); } if (__err) this->setstate(__err); } return *this; } template int basic_istream<_CharT, _Traits>:: sync(void) { int __ret = -1; sentry __cerb(*this, true); if (__cerb) { ios_base::iostate __err = ios_base::iostate(ios_base::goodbit); try { __streambuf_type* __sb = this->rdbuf(); if (__sb) { if (__sb->pubsync() == -1) __err |= ios_base::badbit; else __ret = 0; } } catch(...) { this->_M_setstate(ios_base::badbit); } if (__err) this->setstate(__err); } return __ret; } template typename basic_istream<_CharT, _Traits>::pos_type basic_istream<_CharT, _Traits>:: tellg(void) { pos_type __ret = pos_type(-1); try { if (!this->fail()) __ret = this->rdbuf()->pubseekoff(0, ios_base::cur, ios_base::in); } catch(...) { this->_M_setstate(ios_base::badbit); } return __ret; } template basic_istream<_CharT, _Traits>& basic_istream<_CharT, _Traits>:: seekg(pos_type __pos) { ios_base::iostate __err = ios_base::iostate(ios_base::goodbit); try { if (!this->fail()) { pos_type __p = this->rdbuf()->pubseekpos(__pos, ios_base::in); if (__p == pos_type(off_type(-1))) __err |= ios_base::failbit; } } catch(...) { this->_M_setstate(ios_base::badbit); } if (__err) this->setstate(__err); return *this; } template basic_istream<_CharT, _Traits>& basic_istream<_CharT, _Traits>:: seekg(off_type __off, ios_base::seekdir __dir) { ios_base::iostate __err = ios_base::iostate(ios_base::goodbit); try { if (!this->fail()) { pos_type __p = this->rdbuf()->pubseekoff(__off, __dir, ios_base::in); if (__p == pos_type(off_type(-1))) __err |= ios_base::failbit; } } catch(...) { this->_M_setstate(ios_base::badbit); } if (__err) this->setstate(__err); return *this; } template basic_istream<_CharT, _Traits>& operator>>(basic_istream<_CharT, _Traits>& __in, _CharT& __c) { typedef basic_istream<_CharT, _Traits> __istream_type; typename __istream_type::sentry __cerb(__in, false); if (__cerb) { ios_base::iostate __err = ios_base::iostate(ios_base::goodbit); try { typename __istream_type::int_type __cb = __in.rdbuf()->sbumpc(); if (!_Traits::eq_int_type(__cb, _Traits::eof())) __c = _Traits::to_char_type(__cb); else __err |= (ios_base::eofbit | ios_base::failbit); } catch(...) { __in._M_setstate(ios_base::badbit); } if (__err) __in.setstate(__err); } return __in; } template basic_istream<_CharT, _Traits>& operator>>(basic_istream<_CharT, _Traits>& __in, _CharT* __s) { typedef basic_istream<_CharT, _Traits> __istream_type; typedef typename __istream_type::__streambuf_type __streambuf_type; typedef typename _Traits::int_type int_type; typedef _CharT char_type; typedef ctype<_CharT> __ctype_type; streamsize __extracted = 0; ios_base::iostate __err = ios_base::iostate(ios_base::goodbit); typename __istream_type::sentry __cerb(__in, false); if (__cerb) { try { streamsize __num = __in.width(); if (__num <= 0) __num = numeric_limits::max(); const __ctype_type& __ctype = use_facet<__ctype_type>(__in.getloc()); const int_type __eof = _Traits::eof(); __streambuf_type* __sb = __in.rdbuf(); int_type __c = __sb->sgetc(); while (__extracted < __num - 1 && !_Traits::eq_int_type(__c, __eof) && !__ctype.is(ctype_base::space, _Traits::to_char_type(__c))) { *__s++ = _Traits::to_char_type(__c); ++__extracted; __c = __sb->snextc(); } if (_Traits::eq_int_type(__c, __eof)) __err |= ios_base::eofbit; *__s = char_type(); __in.width(0); } catch(...) { __in._M_setstate(ios_base::badbit); } } if (!__extracted) __err |= ios_base::failbit; if (__err) __in.setstate(__err); return __in; } template basic_istream<_CharT,_Traits>& ws(basic_istream<_CharT,_Traits>& __in) { typedef basic_istream<_CharT, _Traits> __istream_type; typedef typename __istream_type::__streambuf_type __streambuf_type; typedef typename __istream_type::__ctype_type __ctype_type; typedef typename __istream_type::int_type __int_type; const __ctype_type& __ctype = use_facet<__ctype_type>(__in.getloc()); const __int_type __eof = _Traits::eof(); __streambuf_type* __sb = __in.rdbuf(); __int_type __c = __sb->sgetc(); while (!_Traits::eq_int_type(__c, __eof) && __ctype.is(ctype_base::space, _Traits::to_char_type(__c))) __c = __sb->snextc(); if (_Traits::eq_int_type(__c, __eof)) __in.setstate(ios_base::eofbit); return __in; } template basic_istream<_CharT, _Traits>& operator>>(basic_istream<_CharT, _Traits>& __in, basic_string<_CharT, _Traits, _Alloc>& __str) { typedef basic_istream<_CharT, _Traits> __istream_type; typedef typename __istream_type::int_type __int_type; typedef typename __istream_type::__streambuf_type __streambuf_type; typedef typename __istream_type::__ctype_type __ctype_type; typedef basic_string<_CharT, _Traits, _Alloc> __string_type; typedef typename __string_type::size_type __size_type; __size_type __extracted = 0; ios_base::iostate __err = ios_base::iostate(ios_base::goodbit); typename __istream_type::sentry __cerb(__in, false); if (__cerb) { try { __str.erase(); _CharT __buf[128]; __size_type __len = 0; streamsize __w = __in.width(); __size_type __n; __n = __w > 0 ? static_cast<__size_type>(__w) : __str.max_size(); const __ctype_type& __ct = use_facet<__ctype_type>(__in.getloc()); const __int_type __eof = _Traits::eof(); __streambuf_type* __sb = __in.rdbuf(); __int_type __c = __sb->sgetc(); while (__extracted < __n && !_Traits::eq_int_type(__c, __eof) && !__ct.is(ctype_base::space, _Traits::to_char_type(__c))) { if (__len == sizeof(__buf) / sizeof(_CharT)) { __str.append(__buf, sizeof(__buf) / sizeof(_CharT)); __len = 0; } __buf[__len++] = _Traits::to_char_type(__c); ++__extracted; __c = __sb->snextc(); } __str.append(__buf, __len); if (_Traits::eq_int_type(__c, __eof)) __err |= ios_base::eofbit; __in.width(0); } catch(...) { __in._M_setstate(ios_base::badbit); } } if (!__extracted) __err |= ios_base::failbit; if (__err) __in.setstate(__err); return __in; } template basic_istream<_CharT, _Traits>& getline(basic_istream<_CharT, _Traits>& __in, basic_string<_CharT, _Traits, _Alloc>& __str, _CharT __delim) { typedef basic_istream<_CharT, _Traits> __istream_type; typedef typename __istream_type::int_type __int_type; typedef typename __istream_type::__streambuf_type __streambuf_type; typedef typename __istream_type::__ctype_type __ctype_type; typedef basic_string<_CharT, _Traits, _Alloc> __string_type; typedef typename __string_type::size_type __size_type; __size_type __extracted = 0; const __size_type __n = __str.max_size(); bool __testdelim = false; ios_base::iostate __err = ios_base::iostate(ios_base::goodbit); typename __istream_type::sentry __cerb(__in, true); if (__cerb) { try { __str.erase(); _CharT __buf[128]; __size_type __len = 0; const __int_type __idelim = _Traits::to_int_type(__delim); const __int_type __eof = _Traits::eof(); __streambuf_type* __sb = __in.rdbuf(); __int_type __c = __sb->sgetc(); while (__extracted < __n && !_Traits::eq_int_type(__c, __eof) && !_Traits::eq_int_type(__c, __idelim)) { if (__len == sizeof(__buf) / sizeof(_CharT)) { __str.append(__buf, sizeof(__buf) / sizeof(_CharT)); __len = 0; } __buf[__len++] = _Traits::to_char_type(__c); ++__extracted; __c = __sb->snextc(); } __str.append(__buf, __len); if (_Traits::eq_int_type(__c, __eof)) __err |= ios_base::eofbit; else if (_Traits::eq_int_type(__c, __idelim)) { __sb->sbumpc(); ++__extracted; } else __err |= ios_base::failbit; } catch(...) { __in._M_setstate(ios_base::badbit); } } if (!__extracted) __err |= ios_base::failbit; if (__err) __in.setstate(__err); return __in; } template __inline__ basic_istream<_CharT,_Traits>& getline(basic_istream<_CharT, _Traits>& __in, basic_string<_CharT,_Traits,_Alloc>& __str) { return getline(__in, __str, __in.widen('\n')); } extern template class basic_istream; extern template istream& ws(istream&); extern template istream& operator>>(istream&, char&); extern template istream& operator>>(istream&, char*); extern template istream& operator>>(istream&, unsigned char&); extern template istream& operator>>(istream&, signed char&); extern template istream& operator>>(istream&, unsigned char*); extern template istream& operator>>(istream&, signed char*); extern template class basic_istream; extern template wistream& ws(wistream&); extern template wistream& operator>>(wistream&, wchar_t&); extern template wistream& operator>>(wistream&, wchar_t*); } # 769 "/usr/include/g++/istream" 2 3 # 46 "/usr/include/g++/fstream" 2 3 # 1 "/usr/include/g++/i586-suse-linux/bits/basic_file.h" 1 3 # 42 "/usr/include/g++/i586-suse-linux/bits/basic_file.h" 3 # 43 "/usr/include/g++/i586-suse-linux/bits/basic_file.h" 3 namespace std { template class __basic_file; template<> class __basic_file { __c_file* _M_cfile; bool _M_cfile_created; public: __basic_file(__c_lock* __lock = 0); void _M_open_mode(ios_base::openmode __mode, int& __p_mode, int& __rw_mode, char* __c_mode); __basic_file* open(const char* __name, ios_base::openmode __mode, int __prot = 0664); __basic_file* sys_open(__c_file* __file, ios_base::openmode); __basic_file* sys_open(int __fd, ios_base::openmode __mode, bool __del); int sys_getc(); int sys_ungetc(int); __basic_file* close(); bool is_open() const; int fd(); ~__basic_file(); streamsize xsputn(const char* __s, streamsize __n); streamsize xsgetn(char* __s, streamsize __n); streamoff seekoff(streamoff __off, ios_base::seekdir __way, ios_base::openmode __mode = ios_base::in | ios_base::out); streamoff seekpos(streamoff __pos, ios_base::openmode __mode = ios_base::in | ios_base::out); int sync(); streamsize showmanyc_helper(); }; } # 49 "/usr/include/g++/fstream" 2 3 namespace std { # 62 "/usr/include/g++/fstream" 3 template class basic_filebuf : public basic_streambuf<_CharT, _Traits> { public: typedef _CharT char_type; typedef _Traits traits_type; typedef typename traits_type::int_type int_type; typedef typename traits_type::pos_type pos_type; typedef typename traits_type::off_type off_type; typedef basic_streambuf __streambuf_type; typedef basic_filebuf __filebuf_type; typedef __basic_file __file_type; typedef typename traits_type::state_type __state_type; typedef codecvt __codecvt_type; typedef ctype __ctype_type; friend class ios_base; protected: __c_lock _M_lock; __file_type _M_file; __state_type _M_state_cur; __state_type _M_state_beg; bool _M_buf_allocated; bool _M_last_overflowed; # 134 "/usr/include/g++/fstream" 3 char_type* _M_filepos; public: basic_filebuf(); virtual ~basic_filebuf() { this->close(); _M_last_overflowed = false; } bool is_open() const throw() { return _M_file.is_open(); } # 176 "/usr/include/g++/fstream" 3 __filebuf_type* open(const char* __s, ios_base::openmode __mode); # 190 "/usr/include/g++/fstream" 3 __filebuf_type* close() throw(); protected: void _M_allocate_internal_buffer(); void _M_destroy_internal_buffer() throw(); virtual streamsize showmanyc(); # 231 "/usr/include/g++/fstream" 3 int_type _M_underflow_common(bool __bump); virtual int_type underflow(); virtual int_type uflow(); virtual int_type pbackfail(int_type __c = _Traits::eof()); # 256 "/usr/include/g++/fstream" 3 virtual int_type overflow(int_type __c = _Traits::eof()); # 271 "/usr/include/g++/fstream" 3 int_type _M_really_overflow(int_type __c = _Traits::eof()); # 281 "/usr/include/g++/fstream" 3 void _M_convert_to_external(char_type*, streamsize, streamsize&, streamsize&); # 296 "/usr/include/g++/fstream" 3 virtual __streambuf_type* setbuf(char_type* __s, streamsize __n); virtual pos_type seekoff(off_type __off, ios_base::seekdir __way, ios_base::openmode __mode = ios_base::in | ios_base::out); virtual pos_type seekpos(pos_type __pos, ios_base::openmode __mode = ios_base::in | ios_base::out); virtual int sync() { int __ret = 0; bool __testput = _M_out_cur && _M_out_beg < _M_out_end; if (__testput) { off_type __off = _M_out_cur - _M_out_end; if (traits_type::eq_int_type(_M_really_overflow(), traits_type::eof())) __ret = -1; else if (__off) _M_file.seekoff(__off, ios_base::cur); } else _M_file.sync(); _M_last_overflowed = false; return __ret; } virtual void imbue(const locale& __loc); virtual streamsize xsgetn(char_type* __s, streamsize __n) { streamsize __ret = 0; if (_M_pback_init) { while (__ret < __n && _M_in_cur < _M_in_end) { *__s = *_M_in_cur; ++__ret; ++__s; ++_M_in_cur; } _M_pback_destroy(); } if (__ret < __n) __ret += __streambuf_type::xsgetn(__s, __n - __ret); return __ret; } virtual streamsize xsputn(const char_type* __s, streamsize __n) { _M_pback_destroy(); return __streambuf_type::xsputn(__s, __n); } void _M_output_unshift(); # 391 "/usr/include/g++/fstream" 3 void _M_set_indeterminate(void) { if (_M_mode & ios_base::in) this->setg(_M_buf, _M_buf, _M_buf); if (_M_mode & ios_base::out) this->setp(_M_buf, _M_buf); _M_filepos = _M_buf; } void _M_set_determinate(off_type __off) { bool __testin = _M_mode & ios_base::in; bool __testout = _M_mode & ios_base::out; if (__testin) this->setg(_M_buf, _M_buf, _M_buf + __off); if (__testout) this->setp(_M_buf, _M_buf + __off); _M_filepos = _M_buf + __off; } bool _M_is_indeterminate(void) { bool __ret = false; if (_M_buf) { if (_M_mode & ios_base::in) __ret = _M_in_beg == _M_in_cur && _M_in_cur == _M_in_end; if (_M_mode & ios_base::out) __ret = _M_out_beg == _M_out_cur && _M_out_cur == _M_out_end; } return __ret; } }; template<> basic_filebuf::int_type basic_filebuf::_M_underflow_common(bool __bump); template<> basic_filebuf::int_type basic_filebuf::_M_underflow_common(bool __bump); template typename basic_filebuf<_CharT, _Traits>::int_type basic_filebuf<_CharT, _Traits>::underflow() { return _M_underflow_common(false); } template typename basic_filebuf<_CharT, _Traits>::int_type basic_filebuf<_CharT, _Traits>::uflow() { return _M_underflow_common(true); } # 471 "/usr/include/g++/fstream" 3 template class basic_ifstream : public basic_istream<_CharT, _Traits> { public: typedef _CharT char_type; typedef _Traits traits_type; typedef typename traits_type::int_type int_type; typedef typename traits_type::pos_type pos_type; typedef typename traits_type::off_type off_type; typedef basic_filebuf __filebuf_type; typedef basic_istream __istream_type; private: __filebuf_type _M_filebuf; public: # 503 "/usr/include/g++/fstream" 3 basic_ifstream() : __istream_type(__null), _M_filebuf() { this->init(&_M_filebuf); } # 517 "/usr/include/g++/fstream" 3 explicit basic_ifstream(const char* __s, ios_base::openmode __mode = ios_base::in) : __istream_type(__null), _M_filebuf() { this->init(&_M_filebuf); this->open(__s, __mode); } ~basic_ifstream() { } # 541 "/usr/include/g++/fstream" 3 __filebuf_type* rdbuf() const { return const_cast<__filebuf_type*>(&_M_filebuf); } bool is_open() { return _M_filebuf.is_open(); } # 563 "/usr/include/g++/fstream" 3 void open(const char* __s, ios_base::openmode __mode = ios_base::in) { if (!_M_filebuf.open(__s, __mode | ios_base::in)) this->setstate(ios_base::failbit); } void close() { if (!_M_filebuf.close()) this->setstate(ios_base::failbit); } }; # 594 "/usr/include/g++/fstream" 3 template class basic_ofstream : public basic_ostream<_CharT,_Traits> { public: typedef _CharT char_type; typedef _Traits traits_type; typedef typename traits_type::int_type int_type; typedef typename traits_type::pos_type pos_type; typedef typename traits_type::off_type off_type; typedef basic_filebuf __filebuf_type; typedef basic_ostream __ostream_type; private: __filebuf_type _M_filebuf; public: # 626 "/usr/include/g++/fstream" 3 basic_ofstream() : __ostream_type(__null), _M_filebuf() { this->init(&_M_filebuf); } # 641 "/usr/include/g++/fstream" 3 explicit basic_ofstream(const char* __s, ios_base::openmode __mode = ios_base::out|ios_base::trunc) : __ostream_type(__null), _M_filebuf() { this->init(&_M_filebuf); this->open(__s, __mode); } ~basic_ofstream() { } # 666 "/usr/include/g++/fstream" 3 __filebuf_type* rdbuf() const { return const_cast<__filebuf_type*>(&_M_filebuf); } bool is_open() { return _M_filebuf.is_open(); } # 688 "/usr/include/g++/fstream" 3 void open(const char* __s, ios_base::openmode __mode = ios_base::out | ios_base::trunc) { if (!_M_filebuf.open(__s, __mode | ios_base::out)) this->setstate(ios_base::failbit); } void close() { if (!_M_filebuf.close()) this->setstate(ios_base::failbit); } }; # 720 "/usr/include/g++/fstream" 3 template class basic_fstream : public basic_iostream<_CharT, _Traits> { public: typedef _CharT char_type; typedef _Traits traits_type; typedef typename traits_type::int_type int_type; typedef typename traits_type::pos_type pos_type; typedef typename traits_type::off_type off_type; typedef basic_filebuf __filebuf_type; typedef basic_ios __ios_type; typedef basic_iostream __iostream_type; private: __filebuf_type _M_filebuf; public: # 753 "/usr/include/g++/fstream" 3 basic_fstream() : __iostream_type(__null), _M_filebuf() { this->init(&_M_filebuf); } # 765 "/usr/include/g++/fstream" 3 explicit basic_fstream(const char* __s, ios_base::openmode __mode = ios_base::in | ios_base::out) : __iostream_type(__null), _M_filebuf() { this->init(&_M_filebuf); this->open(__s, __mode); } ~basic_fstream() { } # 790 "/usr/include/g++/fstream" 3 __filebuf_type* rdbuf() const { return const_cast<__filebuf_type*>(&_M_filebuf); } bool is_open() { return _M_filebuf.is_open(); } # 812 "/usr/include/g++/fstream" 3 void open(const char* __s, ios_base::openmode __mode = ios_base::in | ios_base::out) { if (!_M_filebuf.open(__s, __mode)) setstate(ios_base::failbit); } void close() { if (!_M_filebuf.close()) setstate(ios_base::failbit); } }; } # 1 "/usr/include/g++/bits/fstream.tcc" 1 3 # 38 "/usr/include/g++/bits/fstream.tcc" 3 # 39 "/usr/include/g++/bits/fstream.tcc" 3 namespace std { template void basic_filebuf<_CharT, _Traits>:: _M_allocate_internal_buffer() { if (!_M_buf && _M_buf_size_opt) { _M_buf_size = _M_buf_size_opt; _M_buf = new char_type[_M_buf_size]; _M_buf_allocated = true; } } template void basic_filebuf<_CharT, _Traits>:: _M_destroy_internal_buffer() throw() { if (_M_buf_allocated) { delete [] _M_buf; _M_buf = __null; _M_buf_allocated = false; this->setg(__null, __null, __null); this->setp(__null, __null); } } template basic_filebuf<_CharT, _Traits>:: basic_filebuf() : __streambuf_type(), _M_file(&_M_lock), _M_state_cur(__state_type()), _M_state_beg(__state_type()), _M_buf_allocated(false), _M_last_overflowed(false) { _M_buf_unified = true; } template typename basic_filebuf<_CharT, _Traits>::__filebuf_type* basic_filebuf<_CharT, _Traits>:: open(const char* __s, ios_base::openmode __mode) { __filebuf_type *__ret = __null; if (!this->is_open()) { _M_file.open(__s, __mode); if (this->is_open()) { _M_allocate_internal_buffer(); _M_mode = __mode; _M_set_indeterminate(); if ((__mode & ios_base::ate) && this->seekoff(0, ios_base::end, __mode) < 0) { this->close(); return __ret; } __ret = this; } } return __ret; } template typename basic_filebuf<_CharT, _Traits>::__filebuf_type* basic_filebuf<_CharT, _Traits>:: close() throw() { __filebuf_type* __ret = __null; if (this->is_open()) { bool __testfail = false; try { const int_type __eof = traits_type::eof(); bool __testput = _M_out_cur && _M_out_beg < _M_out_end; if (__testput && traits_type::eq_int_type(_M_really_overflow(__eof), __eof)) __testfail = true; # 137 "/usr/include/g++/bits/fstream.tcc" 3 } catch(...) { __testfail = true; } this->_M_mode = ios_base::openmode(0); _M_destroy_internal_buffer(); _M_pback_destroy(); if (!_M_file.close()) __testfail = true; if (!__testfail) __ret = this; } _M_last_overflowed = false; return __ret; } template streamsize basic_filebuf<_CharT, _Traits>:: showmanyc() { streamsize __ret = -1; bool __testin = _M_mode & ios_base::in; const locale __loc = this->getloc(); const __codecvt_type& __cvt = use_facet<__codecvt_type>(__loc); if (__testin && this->is_open()) { __ret = _M_in_end - _M_in_cur; if (__cvt.always_noconv()) __ret += _M_file.showmanyc_helper(); } _M_last_overflowed = false; return __ret; } template typename basic_filebuf<_CharT, _Traits>::int_type basic_filebuf<_CharT, _Traits>:: pbackfail(int_type __i) { int_type __ret = traits_type::eof(); bool __testin = _M_mode & ios_base::in; if (__testin) { bool __testpb = _M_in_beg < _M_in_cur; char_type __c = traits_type::to_char_type(__i); bool __testeof = traits_type::eq_int_type(__i, __ret); if (__testpb) { bool __testout = _M_mode & ios_base::out; bool __testeq = traits_type::eq(__c, this->gptr()[-1]); if (!__testeof && __testeq) { --_M_in_cur; if (__testout) --_M_out_cur; __ret = __i; } else if (__testeof) { --_M_in_cur; if (__testout) --_M_out_cur; __ret = traits_type::not_eof(__i); } else if (!__testeof) { --_M_in_cur; if (__testout) --_M_out_cur; _M_pback_create(); *_M_in_cur = __c; __ret = __i; } } else { if (this->seekoff(-1, ios_base::cur) >= 0) { this->underflow(); if (!__testeof) { if (!traits_type::eq(__c, *_M_in_cur)) { _M_pback_create(); *_M_in_cur = __c; } __ret = __i; } else __ret = traits_type::not_eof(__i); } } } _M_last_overflowed = false; return __ret; } template typename basic_filebuf<_CharT, _Traits>::int_type basic_filebuf<_CharT, _Traits>:: overflow(int_type __c) { int_type __ret = traits_type::eof(); bool __testput = _M_out_cur && _M_out_cur < _M_buf + _M_buf_size; bool __testout = _M_mode & ios_base::out; if (__testout) { if (traits_type::eq_int_type(__c, traits_type::eof())) __ret = traits_type::not_eof(__c); else if (__testput) { *_M_out_cur = traits_type::to_char_type(__c); _M_out_cur_move(1); __ret = traits_type::not_eof(__c); } else __ret = this->_M_really_overflow(__c); } _M_last_overflowed = false; return __ret; } template void basic_filebuf<_CharT, _Traits>:: _M_convert_to_external(_CharT* __ibuf, streamsize __ilen, streamsize& __elen, streamsize& __plen) { const locale __loc = this->getloc(); const __codecvt_type& __cvt = use_facet<__codecvt_type>(__loc); if (__cvt.always_noconv() && __ilen) { __elen += _M_file.xsputn(reinterpret_cast(__ibuf), __ilen); __plen += __ilen; } else { int __ext_multiplier = __cvt.encoding(); if (__ext_multiplier == -1 || __ext_multiplier == 0) __ext_multiplier = sizeof(char_type); streamsize __blen = __ilen * __ext_multiplier; char* __buf = static_cast(__builtin_alloca(__blen)); char* __bend; const char_type* __iend; codecvt_base::result __r; __r = __cvt.out(_M_state_cur, __ibuf, __ibuf + __ilen, __iend, __buf, __buf + __blen, __bend); if (__r == codecvt_base::ok || __r == codecvt_base::partial) __blen = __bend - __buf; else if (__r == codecvt_base::noconv) { __buf = reinterpret_cast(__ibuf); __blen = __ilen; } else { __blen = 0; } if (__blen) { __elen += _M_file.xsputn(__buf, __blen); __plen += __blen; } if (__r == codecvt_base::partial) { const char_type* __iresume = __iend; streamsize __rlen = _M_out_end - __iend; __r = __cvt.out(_M_state_cur, __iresume, __iresume + __rlen, __iend, __buf, __buf + __blen, __bend); if (__r != codecvt_base::error) { __rlen = __bend - __buf; __elen += _M_file.xsputn(__buf, __rlen); __plen += __rlen; } } } } template typename basic_filebuf<_CharT, _Traits>::int_type basic_filebuf<_CharT, _Traits>:: _M_really_overflow(int_type __c) { int_type __ret = traits_type::eof(); bool __testput = _M_out_cur && _M_out_beg < _M_out_end; bool __testunbuffered = _M_file.is_open() && !_M_buf_size; if (__testput || __testunbuffered) { streamsize __elen = 0; streamsize __plen = 0; if (_M_filepos && _M_filepos != _M_out_beg) { off_type __off = _M_out_beg - _M_filepos; _M_file.seekoff(__off, ios_base::cur); } if (!__testunbuffered) _M_convert_to_external(_M_out_beg, _M_out_end - _M_out_beg, __elen, __plen); if (__testunbuffered || (__elen && __elen == __plen)) { if (!traits_type::eq_int_type(__c, traits_type::eof())) { char_type __pending = traits_type::to_char_type(__c); _M_convert_to_external(&__pending, 1, __elen, __plen); if (__elen == __plen && __elen) { _M_set_indeterminate(); __ret = traits_type::not_eof(__c); } } else if (!_M_file.sync()) { _M_set_indeterminate(); __ret = traits_type::not_eof(__c); } } } _M_last_overflowed = true; return __ret; } template typename basic_filebuf<_CharT, _Traits>::__streambuf_type* basic_filebuf<_CharT, _Traits>:: setbuf(char_type* __s, streamsize __n) { if (!this->is_open() && __s == 0 && __n == 0) _M_buf_size_opt = 0; else if (__s && __n) { _M_destroy_internal_buffer(); _M_buf = __s; _M_buf_size_opt = _M_buf_size = __n; _M_set_indeterminate(); } _M_last_overflowed = false; return this; } template typename basic_filebuf<_CharT, _Traits>::pos_type basic_filebuf<_CharT, _Traits>:: seekoff(off_type __off, ios_base::seekdir __way, ios_base::openmode) { pos_type __ret = pos_type(off_type(-1)); int __width = 0; if (has_facet<__codecvt_type>(this->_M_buf_locale)) __width = use_facet<__codecvt_type>(this->_M_buf_locale).encoding(); if (__width < 0) __width = 0; bool __testfail = __off != 0 && __width <= 0; if (this->is_open() && !__testfail) { _M_pback_destroy(); if (__way != ios_base::cur || __off != 0) { off_type __computed_off = __width * __off; bool __testget = _M_in_cur && _M_in_beg < _M_in_end; bool __testput = _M_out_cur && _M_out_beg < _M_out_end; if (__testput || _M_last_overflowed) { this->sync(); _M_output_unshift(); } else if (__testget && __way == ios_base::cur) __computed_off += _M_in_cur - _M_filepos; __ret = _M_file.seekoff(__computed_off, __way, ios_base::openmode()); _M_set_indeterminate(); } else { pos_type __tmp = _M_file.seekoff(__off, ios_base::cur, ios_base::openmode()); if (__tmp >= 0) { __ret = __tmp; __ret += max(_M_out_cur, _M_in_cur) - _M_filepos; } } } _M_last_overflowed = false; return __ret; } template typename basic_filebuf<_CharT, _Traits>::pos_type basic_filebuf<_CharT, _Traits>:: seekpos(pos_type __pos, ios_base::openmode) { return this->seekoff(off_type(__pos), ios_base::beg, ios_base::openmode()); } template void basic_filebuf<_CharT, _Traits>:: _M_output_unshift() { } template void basic_filebuf<_CharT, _Traits>:: imbue(const locale&) { _M_last_overflowed = false; } extern template class basic_filebuf; extern template class basic_ifstream; extern template class basic_ofstream; extern template class basic_fstream; extern template class basic_filebuf; extern template class basic_ifstream; extern template class basic_ofstream; extern template class basic_fstream; } # 840 "/usr/include/g++/fstream" 2 3 # 32 "include/Riostream.h" 2 # 1 "/usr/include/g++/iostream" 1 3 # 42 "/usr/include/g++/iostream" 3 # 43 "/usr/include/g++/iostream" 3 namespace std { # 63 "/usr/include/g++/iostream" 3 extern istream cin; extern ostream cout; extern ostream cerr; extern ostream clog; extern wistream wcin; extern wostream wcout; extern wostream wcerr; extern wostream wclog; static ios_base::Init __ioinit; } # 33 "include/Riostream.h" 2 # 1 "/usr/include/g++/iomanip" 1 3 # 43 "/usr/include/g++/iomanip" 3 # 44 "/usr/include/g++/iomanip" 3 # 1 "/usr/include/g++/functional" 1 3 # 52 "/usr/include/g++/functional" 3 # 53 "/usr/include/g++/functional" 3 # 48 "/usr/include/g++/iomanip" 2 3 namespace std { struct _Resetiosflags { ios_base::fmtflags _M_mask; }; # 63 "/usr/include/g++/iomanip" 3 __inline__ _Resetiosflags resetiosflags(ios_base::fmtflags __mask) { _Resetiosflags __x; __x._M_mask = __mask; return __x; } template __inline__ basic_istream<_CharT,_Traits>& operator>>(basic_istream<_CharT,_Traits>& __is, _Resetiosflags __f) { __is.setf(ios_base::fmtflags(0), __f._M_mask); return __is; } template __inline__ basic_ostream<_CharT,_Traits>& operator<<(basic_ostream<_CharT,_Traits>& __os, _Resetiosflags __f) { __os.setf(ios_base::fmtflags(0), __f._M_mask); return __os; } struct _Setiosflags { ios_base::fmtflags _M_mask; }; # 97 "/usr/include/g++/iomanip" 3 __inline__ _Setiosflags setiosflags(ios_base::fmtflags __mask) { _Setiosflags __x; __x._M_mask = __mask; return __x; } template __inline__ basic_istream<_CharT,_Traits>& operator>>(basic_istream<_CharT,_Traits>& __is, _Setiosflags __f) { __is.setf(__f._M_mask); return __is; } template __inline__ basic_ostream<_CharT,_Traits>& operator<<(basic_ostream<_CharT,_Traits>& __os, _Setiosflags __f) { __os.setf(__f._M_mask); return __os; } struct _Setbase { int _M_base; }; # 132 "/usr/include/g++/iomanip" 3 __inline__ _Setbase setbase(int __base) { _Setbase __x; __x._M_base = __base; return __x; } template __inline__ basic_istream<_CharT,_Traits>& operator>>(basic_istream<_CharT,_Traits>& __is, _Setbase __f) { __is.setf(__f._M_base == 8 ? ios_base::oct : __f._M_base == 10 ? ios_base::dec : __f._M_base == 16 ? ios_base::hex : ios_base::fmtflags(0), ios_base::basefield); return __is; } template __inline__ basic_ostream<_CharT,_Traits>& operator<<(basic_ostream<_CharT,_Traits>& __os, _Setbase __f) { __os.setf(__f._M_base == 8 ? ios_base::oct : __f._M_base == 10 ? ios_base::dec : __f._M_base == 16 ? ios_base::hex : ios_base::fmtflags(0), ios_base::basefield); return __os; } template struct _Setfill { _CharT _M_c; }; # 173 "/usr/include/g++/iomanip" 3 template __inline__ _Setfill<_CharT> setfill(_CharT __c) { _Setfill<_CharT> __x; __x._M_c = __c; return __x; } template __inline__ basic_istream<_CharT,_Traits>& operator>>(basic_istream<_CharT,_Traits>& __is, _Setfill<_CharT> __f) { __is.fill(__f._M_c); return __is; } template __inline__ basic_ostream<_CharT,_Traits>& operator<<(basic_ostream<_CharT,_Traits>& __os, _Setfill<_CharT> __f) { __os.fill(__f._M_c); return __os; } struct _Setprecision { int _M_n; }; # 208 "/usr/include/g++/iomanip" 3 __inline__ _Setprecision setprecision(int __n) { _Setprecision __x; __x._M_n = __n; return __x; } template __inline__ basic_istream<_CharT,_Traits>& operator>>(basic_istream<_CharT,_Traits>& __is, _Setprecision __f) { __is.precision(__f._M_n); return __is; } template __inline__ basic_ostream<_CharT,_Traits>& operator<<(basic_ostream<_CharT,_Traits>& __os, _Setprecision __f) { __os.precision(__f._M_n); return __os; } struct _Setw { int _M_n; }; # 242 "/usr/include/g++/iomanip" 3 __inline__ _Setw setw(int __n) { _Setw __x; __x._M_n = __n; return __x; } template __inline__ basic_istream<_CharT,_Traits>& operator>>(basic_istream<_CharT,_Traits>& __is, _Setw __f) { __is.width(__f._M_n); return __is; } template __inline__ basic_ostream<_CharT,_Traits>& operator<<(basic_ostream<_CharT,_Traits>& __os, _Setw __f) { __os.width(__f._M_n); return __os; } extern template ostream& operator<<(ostream&, _Setfill); extern template ostream& operator<<(ostream&, _Setiosflags); extern template ostream& operator<<(ostream&, _Resetiosflags); extern template ostream& operator<<(ostream&, _Setbase); extern template ostream& operator<<(ostream&, _Setprecision); extern template ostream& operator<<(ostream&, _Setw); extern template istream& operator>>(istream&, _Setfill); extern template istream& operator>>(istream&, _Setiosflags); extern template istream& operator>>(istream&, _Resetiosflags); extern template istream& operator>>(istream&, _Setbase); extern template istream& operator>>(istream&, _Setprecision); extern template istream& operator>>(istream&, _Setw); extern template wostream& operator<<(wostream&, _Setfill); extern template wostream& operator<<(wostream&, _Setiosflags); extern template wostream& operator<<(wostream&, _Resetiosflags); extern template wostream& operator<<(wostream&, _Setbase); extern template wostream& operator<<(wostream&, _Setprecision); extern template wostream& operator<<(wostream&, _Setw); extern template wistream& operator>>(wistream&, _Setfill); extern template wistream& operator>>(wistream&, _Setiosflags); extern template wistream& operator>>(wistream&, _Resetiosflags); extern template wistream& operator>>(wistream&, _Setbase); extern template wistream& operator>>(wistream&, _Setprecision); extern template wistream& operator>>(wistream&, _Setw); } # 34 "include/Riostream.h" 2 using namespace std; # 31 "meta/src/TClass.cxx" 2 # 1 "include/TBaseClass.h" 1 # 32 "include/TBaseClass.h" class TBrowser; class TClass; namespace Cint { class G__BaseClassInfo; } using namespace Cint; class TBaseClass : public TDictionary { private: G__BaseClassInfo *fInfo; TClass *fClassPtr; TClass *fClass; public: TBaseClass(G__BaseClassInfo *info = 0, TClass *cl = 0); virtual ~TBaseClass(); virtual void Browse(TBrowser *b); const char *GetTitle() const; TClass *GetClassPointer(Bool_t load=kTRUE); Int_t GetDelta() const; Bool_t IsFolder() const {return kTRUE;} Int_t IsSTLContainer(); Long_t Property() const; private: static TClass *fgIsA; public: static TClass *Class(); static const char *Class_Name(); static Version_t Class_Version() { return 0; } static void Dictionary(); virtual TClass *IsA() const { return TBaseClass::Class(); } virtual void ShowMembers(TMemberInspector &insp, char *parent); virtual void Streamer(TBuffer &b); void StreamerNVirtual(TBuffer &b) { TBaseClass::Streamer(b); } static const char *DeclFileName() { return "include/TBaseClass.h"; } static int ImplFileLine(); static const char *ImplFileName(); static int DeclFileLine() { return 58; } }; # 32 "meta/src/TClass.cxx" 2 # 1 "include/TBrowser.h" 1 # 33 "include/TBrowser.h" # 1 "include/TBrowserImp.h" 1 # 28 "include/TBrowserImp.h" class TBrowser; class TBrowserImp { protected: TBrowser *fBrowser; Bool_t fShowCycles; TBrowserImp(const TBrowserImp& br) : fBrowser(br.fBrowser), fShowCycles(br.fShowCycles) { } TBrowserImp& operator=(const TBrowserImp& br) {if(this!=&br) {fBrowser=br.fBrowser; fShowCycles=br.fShowCycles;} return *this;} public: TBrowserImp(TBrowser *b=0) : fBrowser(b), fShowCycles(kFALSE) { } TBrowserImp(TBrowser *b, const char *title, UInt_t width, UInt_t height); TBrowserImp(TBrowser *b, const char *title, Int_t x, Int_t y, UInt_t width, UInt_t height); virtual ~TBrowserImp() { } virtual void Add(TObject *, const char *, Int_t) { } virtual void AddCheckBox(TObject *, Bool_t = kFALSE) { } virtual void CheckObjectItem(TObject *, Bool_t = kFALSE) { } virtual void RemoveCheckBox(TObject *) { } virtual void BrowseObj(TObject *) { } TBrowser *Browser() const { return fBrowser; } virtual void ExecuteDefaultAction(TObject *) { } virtual void Iconify() { } virtual void RecursiveRemove(TObject *) { } virtual void Refresh(Bool_t = kFALSE) { } virtual void Show() { } virtual void SetDrawOption(Option_t *option=""); virtual Option_t *GetDrawOption() const { return 0; } private: static TClass *fgIsA; public: static TClass *Class(); static const char *Class_Name(); static Version_t Class_Version() { return 0; } static void Dictionary(); virtual TClass *IsA() const { return TBrowserImp::Class(); } virtual void ShowMembers(TMemberInspector &insp, char *parent); virtual void Streamer(TBuffer &b); void StreamerNVirtual(TBuffer &b) { TBrowserImp::Streamer(b); } static const char *DeclFileName() { return "include/TBrowserImp.h"; } static int ImplFileLine(); static const char *ImplFileName(); static int DeclFileLine() { return 63; } }; __inline__ TBrowserImp::TBrowserImp(TBrowser *, const char *, UInt_t, UInt_t) : fBrowser(0), fShowCycles(kFALSE) { } __inline__ TBrowserImp::TBrowserImp(TBrowser *, const char *, Int_t, Int_t, UInt_t, UInt_t) : fBrowser(0), fShowCycles(kFALSE) { } # 34 "include/TBrowser.h" 2 class TContextMenu; class TBrowserTimer; class TBrowser : public TNamed { private: TObject *fLastSelectedObject; protected: TBrowserImp *fImp; TBrowserTimer *fTimer; TContextMenu *fContextMenu; Bool_t fNeedRefresh; TBrowser(const TBrowser&); TBrowser& operator=(const TBrowser&); public: enum { kNoHidden = (1 << (9)) }; TBrowser(const char *name="Browser", const char *title="ROOT Object Browser"); TBrowser(const char *name, const char *title, UInt_t width, UInt_t height); TBrowser(const char *name, const char *title, Int_t x, Int_t y, UInt_t width, UInt_t height); TBrowser(const char *name, TObject *obj, const char *title="ROOT Object Browser"); TBrowser(const char *name, TObject *obj, const char *title, UInt_t width, UInt_t height); TBrowser(const char *name, TObject *obj, const char *title, Int_t x, Int_t y, UInt_t width, UInt_t height); TBrowser(const char *name, void *obj, TClass *cl, const char *objname="", const char *title="ROOT Foreign Browser"); TBrowser(const char *name, void *obj, TClass *cl, const char *objname, const char *title, UInt_t width, UInt_t height); TBrowser(const char *name, void *obj, TClass *cl, const char *objname, const char *title, Int_t x, Int_t y, UInt_t width, UInt_t height); # 83 "include/TBrowser.h" virtual ~TBrowser(); void Add(TObject *obj, const char *name = 0, Int_t check = -1); void Add(void *obj, TClass *cl, const char *name = 0, Int_t check = -1); void AddCheckBox(TObject *obj, Bool_t check = kFALSE); void CheckObjectItem(TObject *obj, Bool_t check = kFALSE); void RemoveCheckBox(TObject *obj); virtual void Create(TObject *obj = 0); void ExecuteDefaultAction(TObject *obj); TBrowserImp *GetBrowserImp() const { return fImp; } TContextMenu *GetContextMenu() const { return fContextMenu; } Bool_t GetRefreshFlag() const { return fNeedRefresh; } TObject *GetSelected() const { return fLastSelectedObject; } void SetRefreshFlag(Bool_t flag) { fNeedRefresh = flag; } void Iconify() { fImp->Iconify(); } virtual void RecursiveRemove(TObject *obj); void Refresh(); void SetSelected(TObject *clickedObject); void Show() { fImp->Show(); } void SetDrawOption(Option_t *option="") { fImp->SetDrawOption(option); } Option_t *GetDrawOption() const { return fImp->GetDrawOption(); } private: static TClass *fgIsA; public: static TClass *Class(); static const char *Class_Name(); static Version_t Class_Version() { return 0; } static void Dictionary(); virtual TClass *IsA() const { return TBrowser::Class(); } virtual void ShowMembers(TMemberInspector &insp, char *parent); virtual void Streamer(TBuffer &b); void StreamerNVirtual(TBuffer &b) { TBrowser::Streamer(b); } static const char *DeclFileName() { return "include/TBrowser.h"; } static int ImplFileLine(); static const char *ImplFileName(); static int DeclFileLine() { return 107; } }; # 33 "meta/src/TClass.cxx" 2 # 1 "include/TClassGenerator.h" 1 # 28 "include/TClassGenerator.h" class TClass; class TClassGenerator : public TObject { protected: TClassGenerator() : TObject() { } virtual ~TClassGenerator() { } public: virtual TClass *GetClass(const char* classname, Bool_t load) = 0; virtual TClass *GetClass(const type_info& typeinfo, Bool_t load) = 0; private: static TClass *fgIsA; public: static TClass *Class(); static const char *Class_Name(); static Version_t Class_Version() { return 1; } static void Dictionary(); virtual TClass *IsA() const { return TClassGenerator::Class(); } virtual void ShowMembers(TMemberInspector &insp, char *parent); virtual void Streamer(TBuffer &b); void StreamerNVirtual(TBuffer &b) { TClassGenerator::Streamer(b); } static const char *DeclFileName() { return "include/TClassGenerator.h"; } static int ImplFileLine(); static const char *ImplFileName(); static int DeclFileLine() { return 40; }; }; # 35 "meta/src/TClass.cxx" 2 # 1 "include/TClassEdit.h" 1 # 10 "include/TClassEdit.h" # 1 "/usr/include/g++/vector" 1 3 # 64 "/usr/include/g++/vector" 3 # 65 "/usr/include/g++/vector" 3 # 1 "/usr/include/g++/bits/functexcept.h" 1 3 # 34 "/usr/include/g++/bits/functexcept.h" 3 # 1 "/usr/include/g++/exception_defines.h" 1 3 # 35 "/usr/include/g++/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/include/g++/vector" 2 3 # 1 "/usr/include/g++/bits/stl_vector.h" 1 3 # 65 "/usr/include/g++/bits/stl_vector.h" 3 # 1 "/usr/include/g++/bits/functexcept.h" 1 3 # 34 "/usr/include/g++/bits/functexcept.h" 3 # 1 "/usr/include/g++/exception_defines.h" 1 3 # 35 "/usr/include/g++/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/include/g++/bits/stl_vector.h" 2 3 namespace std { template 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 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 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/include/g++/bits/stl_vector.h" 3 template > 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 iterator; typedef __gnu_cxx::__normal_iterator const_iterator; typedef std::reverse_iterator const_reverse_iterator; typedef std::reverse_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/include/g++/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/include/g++/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/include/g++/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/include/g++/bits/stl_vector.h" 3 template 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/include/g++/bits/stl_vector.h" 3 vector& operator=(const vector& __x); # 320 "/usr/include/g++/bits/stl_vector.h" 3 void assign(size_type __n, const value_type& __val) { _M_fill_assign(__n, __val); } # 336 "/usr/include/g++/bits/stl_vector.h" 3 template 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/include/g++/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/include/g++/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/include/g++/bits/stl_vector.h" 3 void reserve(size_type __n); # 500 "/usr/include/g++/bits/stl_vector.h" 3 reference operator[](size_type __n) { return *(begin() + __n); } # 514 "/usr/include/g++/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/include/g++/bits/stl_vector.h" 3 reference at(size_type __n) { _M_range_check(__n); return (*this)[__n]; } # 552 "/usr/include/g++/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/include/g++/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/include/g++/bits/stl_vector.h" 3 void pop_back() { --_M_finish; _Destroy(_M_finish); } # 632 "/usr/include/g++/bits/stl_vector.h" 3 iterator insert(iterator __position, const value_type& __x); # 669 "/usr/include/g++/bits/stl_vector.h" 3 void insert(iterator __pos, size_type __n, const value_type& __x) { _M_fill_insert(__pos, __n, __x); } # 687 "/usr/include/g++/bits/stl_vector.h" 3 template void insert(iterator __pos, _InputIterator __first, _InputIterator __last) { typedef typename _Is_integer<_InputIterator>::_Integral _Integral; _M_insert_dispatch(__pos, __first, __last, _Integral()); } # 711 "/usr/include/g++/bits/stl_vector.h" 3 iterator erase(iterator __position); # 732 "/usr/include/g++/bits/stl_vector.h" 3 iterator erase(iterator __first, iterator __last); # 744 "/usr/include/g++/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 pointer _M_allocate_and_copy(size_type __n, _ForwardIterator __first, _ForwardIterator __last) { pointer __result = _M_allocate(__n); try { uninitialized_copy(__first, __last, __result); return __result; } catch(...) { _M_deallocate(__result, __n); throw; } } template 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 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 void _M_range_initialize(_InputIterator __first, _InputIterator __last, input_iterator_tag) { for ( ; __first != __last; ++__first) push_back(*__first); } template 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 void _M_assign_dispatch(_Integer __n, _Integer __val, __true_type) { _M_fill_assign(static_cast(__n), static_cast(__val)); } template 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 void _M_assign_aux(_InputIterator __first, _InputIterator __last, input_iterator_tag); template void _M_assign_aux(_ForwardIterator __first, _ForwardIterator __last, forward_iterator_tag); void _M_fill_assign(size_type __n, const value_type& __val); template void _M_insert_dispatch(iterator __pos, _Integer __n, _Integer __val, __true_type) { _M_fill_insert(__pos, static_cast(__n), static_cast(__val)); } template 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 void _M_range_insert(iterator __pos, _InputIterator __first, _InputIterator __last, input_iterator_tag); template 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/include/g++/bits/stl_vector.h" 3 template __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/include/g++/bits/stl_vector.h" 3 template __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 __inline__ bool operator!=(const vector<_Tp,_Alloc>& __x, const vector<_Tp,_Alloc>& __y) { return !(__x == __y); } template __inline__ bool operator>(const vector<_Tp,_Alloc>& __x, const vector<_Tp,_Alloc>& __y) { return __y < __x; } template __inline__ bool operator<=(const vector<_Tp,_Alloc>& __x, const vector<_Tp,_Alloc>& __y) { return !(__y < __x); } template __inline__ bool operator>=(const vector<_Tp,_Alloc>& __x, const vector<_Tp,_Alloc>& __y) { return !(__x < __y); } template __inline__ void swap(vector<_Tp,_Alloc>& __x, vector<_Tp,_Alloc>& __y) { __x.swap(__y); } } # 72 "/usr/include/g++/vector" 2 3 # 1 "/usr/include/g++/bits/stl_bvector.h" 1 3 # 64 "/usr/include/g++/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 { _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 _Bvector_alloc_base { public: typedef typename _Alloc_traits::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 _Bvector_alloc_base<_Allocator, true> { public: typedef typename _Alloc_traits::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 _Bvector_base : public _Bvector_alloc_base<_Alloc, _Alloc_traits::_S_instanceless> { typedef _Bvector_alloc_base<_Alloc, _Alloc_traits::_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 class vector : 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_reverse_iterator; typedef std::reverse_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(_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 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 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 void _M_insert_range(iterator __pos, _InputIterator __first, _InputIterator __last, input_iterator_tag) { for ( ; __first != __last; ++__first) { __pos = insert(__pos, *__first); ++__pos; } } template 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"); } 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 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 void _M_initialize_dispatch(_InputIterator __first, _InputIterator __last, __false_type) { _M_initialize_range(__first, __last, __iterator_category(__first)); } template 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 void assign(_InputIterator __first, _InputIterator __last) { typedef typename _Is_integer<_InputIterator>::_Integral _Integral; _M_assign_dispatch(__first, __last, _Integral()); } template void _M_assign_dispatch(_Integer __n, _Integer __val, __true_type) { _M_fill_assign((size_t) __n, (bool) __val); } template void _M_assign_dispatch(_InputIter __first, _InputIter __last, __false_type) { _M_assign_aux(__first, __last, __iterator_category(__first)); } template 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 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& __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 void _M_insert_dispatch(iterator __pos, _Integer __n, _Integer __x, __true_type) { _M_fill_insert(__pos, __n, __x); } template void _M_insert_dispatch(iterator __pos, _InputIterator __first, _InputIterator __last, __false_type) { _M_insert_range(__pos, __first, __last, __iterator_category(__first)); } template 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 bit_vector; } # 73 "/usr/include/g++/vector" 2 3 # 1 "/usr/include/g++/bits/vector.tcc" 1 3 # 64 "/usr/include/g++/bits/vector.tcc" 3 namespace std { template 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 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 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 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 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 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 template 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 template 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 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); try { __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); } catch(...) { _Destroy(__new_start,__new_finish); _M_deallocate(__new_start.base(),__len); throw; } _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/include/g++/bits/vector.tcc" 3 template 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); try { __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); } catch(...) { _Destroy(__new_start,__new_finish); _M_deallocate(__new_start.base(),__len); throw; } _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 template 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 template 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); try { __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); } catch(...) { _Destroy(__new_start,__new_finish); _M_deallocate(__new_start.base(), __len); throw; } _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/include/g++/vector" 2 3 # 11 "include/TClassEdit.h" 2 # 24 "include/TClassEdit.h" namespace TClassEdit { enum EModType { kDropTrailStar = 1<<0, kDropDefaultAlloc = 1<<1, kDropAlloc = 1<<2, kInnerClass = 1<<3, kInnedMostClass = 1<<4, kDropStlDefault = 1<<5, kDropComparator = 1<<6 }; enum ESTLType { kNotSTL = 0, kVector = 1, kList = 2, kDeque = 3, kMap = 4, kMultiMap = 5, kSet = 6, kMultiSet = 7, kEnd = 8 }; std::string CleanType (const char *typeDesc,int mode = 0,const char **tail=0); bool IsDefAlloc(const char *alloc, const char *classname); bool IsDefAlloc(const char *alloc, const char *keyclassname, const char *valueclassname); bool IsDefComp (const char *comp , const char *classname); int IsSTLCont (const char *type,int testAlloc=0); bool IsStdClass(const char *type); bool IsVectorBool(const char *name); std::string GetLong64_Name(const std::string& original); int GetSplit (const char *type, std::vector &output, int &nestedLoc); int STLKind (const char *type); int STLArgs (int kind); std::string ResolveTypedef(const char *tname, bool resolveAll = false); std::string ShortType (const char *typeDesc, int mode); } # 36 "meta/src/TClass.cxx" 2 # 1 "include/TClassMenuItem.h" 1 # 31 "include/TClassMenuItem.h" class TList; class TClass; class TClassMenuItem : public TObject { public: enum EClassMenuItemType { kPopupUserFunction, kPopupSeparator, kPopupStandardList }; enum { kIsExternal, kIsSelf }; private: EClassMenuItemType fType; Int_t fSelfObjectPos; Bool_t fSelf; Bool_t fToggle; TString fTitle; TObject *fCalledObject; TString fFunctionName; TString fArgs; TList *fSubMenu; TClass *fParent; protected: TClassMenuItem(const TClassMenuItem&); TClassMenuItem& operator=(const TClassMenuItem&); public: TClassMenuItem(); TClassMenuItem(Int_t type, TClass *parent, const char *title="", const char *functionname="", TObject *obj=0, const char *args="", Int_t selfobjposition=-1, Bool_t self=kFALSE); virtual ~TClassMenuItem(); virtual const char *GetTitle() const { return fTitle; } virtual const char *GetFunctionName() const { return fFunctionName; } virtual const char *GetArgs() const { return fArgs; } virtual TObject *GetCalledObject() const { return fCalledObject; } virtual Int_t GetType() const { return fType; } virtual Int_t GetSelfObjectPos() const { return fSelfObjectPos; } virtual Bool_t IsCallSelf() const { return fSelf; } virtual Bool_t IsSeparator() const { return fType==kPopupSeparator ? kTRUE : kFALSE; } virtual Bool_t IsStandardList() const { return fType==kPopupStandardList ? kTRUE : kFALSE; } virtual Bool_t IsToggle() const { return fToggle; } virtual void SetType(Int_t type) { fType = (EClassMenuItemType) type; } virtual void SetTitle(const char *title) { fTitle = title; } virtual void SetSelf(Bool_t self) { fSelf = self; } virtual void SetToggle(Bool_t toggle = kTRUE) { fToggle = toggle; } virtual void SetCall(TObject *obj, const char *method, const char *args="", Int_t selfobjposition = 0) { fCalledObject = obj; fFunctionName = method; fArgs = args; fSelfObjectPos = selfobjposition;} private: static TClass *fgIsA; public: static TClass *Class(); static const char *Class_Name(); static Version_t Class_Version() { return 0; } static void Dictionary(); virtual TClass *IsA() const { return TClassMenuItem::Class(); } virtual void ShowMembers(TMemberInspector &insp, char *parent); virtual void Streamer(TBuffer &b); void StreamerNVirtual(TBuffer &b) { TClassMenuItem::Streamer(b); } static const char *DeclFileName() { return "include/TClassMenuItem.h"; } static int ImplFileLine(); static const char *ImplFileName(); static int DeclFileLine() { return 85; } }; # 37 "meta/src/TClass.cxx" 2 # 1 "include/TClassRef.h" 1 # 28 "include/TClassRef.h" # 1 "include/TRef.h" 1 # 29 "include/TRef.h" class TProcessID; class TFile; class TExec; class TObjArray; class TRef : public TObject { protected: TProcessID *fPID; static TObjArray *fgExecs; static TObject *fgObject; public: enum { kNotComputed = (1 << (12))}; TRef(): fPID(0) { } TRef(TObject *obj); TRef(const TRef &ref); void operator=(TObject *obj); TRef& operator=(const TRef &ref); virtual ~TRef() { } TObject *GetObject() const; TProcessID *GetPID() const {return fPID;} Bool_t IsValid() const {return GetUniqueID()!=0 ? kTRUE : kFALSE;} virtual void SetAction(const char *name); virtual void SetAction(TObject *parent); static void SetObject(TObject *obj); static void SetStaticObject(TObject *obj); static Int_t AddExec(const char *name); static TObjArray *GetListOfExecs(); static TObject *GetStaticObject(); friend Bool_t operator==(const TRef &r1, const TRef &r2); friend Bool_t operator!=(const TRef &r1, const TRef &r2); private: static TClass *fgIsA; public: static TClass *Class(); static const char *Class_Name(); static Version_t Class_Version() { return 1; } static void Dictionary(); virtual TClass *IsA() const { return TRef::Class(); } virtual void ShowMembers(TMemberInspector &insp, char *parent); virtual void Streamer(TBuffer &b); void StreamerNVirtual(TBuffer &b) { TRef::Streamer(b); } static const char *DeclFileName() { return "include/TRef.h"; } static int ImplFileLine(); static const char *ImplFileName(); static int DeclFileLine() { return 68; } }; # 29 "include/TClassRef.h" 2 class TClassRef { private: std::string fClassName; TClass *fClassPtr; TClassRef *fPrevious; TClassRef *fNext; friend class TClass; TClass *InternalGetClass() const; void ListReset(); public: TClassRef() : fClassName(), fClassPtr(0), fPrevious(0), fNext(0) {} TClassRef(TClass *cl); TClassRef(const char *classname); TClassRef(const TClassRef&); TClassRef &operator=(const TClassRef&); TClassRef &operator=(TClass*); ~TClassRef() { if (fClassPtr) fClassPtr->RemoveRef(this); }; void SetName(const char* new_name) { if ( fClassPtr && fClassName != new_name ) Reset(); fClassName = new_name; } const char *GetClassName() { return fClassName.c_str(); } TClass *GetClass() const { return fClassPtr ? fClassPtr : InternalGetClass(); } void Reset() { if (fClassPtr) fClassPtr->RemoveRef(this); fClassPtr = 0; } TClass* operator->() const { return fClassPtr ? fClassPtr : InternalGetClass(); } operator TClass*() const { return fClassPtr ? fClassPtr : InternalGetClass(); } }; # 38 "meta/src/TClass.cxx" 2 # 1 "include/TClassTable.h" 1 # 32 "include/TClassTable.h" class TClassRec { public: char *fName; Version_t fId; Int_t fBits; VoidFuncPtr_t fDict; const type_info *fInfo; TClassRec *fNext; }; namespace ROOT { class TMapTypeToClassRec; } class TClassTable : public TObject { friend void ROOT::ResetClassVersion(TClass*, const char*, Short_t); private: typedef ROOT::TMapTypeToClassRec IdMap_t; static TClassRec **fgTable; static TClassRec **fgSortedTable; static IdMap_t *fgIdMap; static int fgSize; static int fgTally; static Bool_t fgSorted; static int fgCursor; TClassTable(); static TClassRec *FindElement(const char *cname, Bool_t insert=kFALSE); static void SortTable(); public: enum { kNoStreamer = 0x01, kNoInputOperator = 0x02, kAutoStreamer = 0x04 }; ~TClassTable(); static void Add(const char *cname, Version_t id, const type_info &info, VoidFuncPtr_t dict, Int_t pragmabits); static char *At(int index); int Classes(); static Version_t GetID(const char *cname); static Int_t GetPragmaBits(const char *name); static VoidFuncPtr_t GetDict(const char *cname); static VoidFuncPtr_t GetDict(const type_info& info); static void Init(); static char *Next(); void Print(Option_t *option="") const; static void PrintTable(); static void Remove(const char *cname); static void Terminate(); private: static TClass *fgIsA; public: static TClass *Class(); static const char *Class_Name(); static Version_t Class_Version() { return 0; } static void Dictionary(); virtual TClass *IsA() const { return TClassTable::Class(); } virtual void ShowMembers(TMemberInspector &insp, char *parent); virtual void Streamer(TBuffer &b); void StreamerNVirtual(TBuffer &b) { TClassTable::Streamer(b); } static const char *DeclFileName() { return "include/TClassTable.h"; } static int ImplFileLine(); static const char *ImplFileName(); static int DeclFileLine() { return 88; } }; extern TClassTable *gClassTable; namespace ROOT { extern void AddClass(const char *cname, Version_t id, VoidFuncPtr_t dict, Int_t pragmabits); extern void RemoveClass(const char *cname); } # 39 "meta/src/TClass.cxx" 2 # 1 "include/TDataMember.h" 1 # 29 "include/TDataMember.h" class TList; class TClass; class TDataType; namespace Cint { class G__DataMemberInfo; } using namespace Cint; class TMethodCall; class TDataMember : public TDictionary { private: enum { kObjIsPersistent = (1 << (2)) }; G__DataMemberInfo *fInfo; TClass *fClass; TDataType *fDataType; Long_t fOffset; Int_t fSTLCont; Long_t fProperty; TString fTypeName; TString fFullTypeName; TString fTrueTypeName; TMethodCall *fValueGetter; TMethodCall *fValueSetter; TList *fOptions; protected: TDataMember(const TDataMember&); TDataMember& operator=(const TDataMember&); public: TDataMember(G__DataMemberInfo *info = 0, TClass *cl = 0); virtual ~TDataMember(); Int_t GetArrayDim() const; Int_t GetMaxIndex(Int_t dim) const; TClass *GetClass() const { return fClass; } TDataType *GetDataType() const { return fDataType; } Long_t GetOffset() const; Long_t GetOffsetCint() const; const char *GetTypeName() const; const char *GetFullTypeName() const; const char *GetTrueTypeName() const; const char *GetArrayIndex() const; Int_t GetUnitSize() const; TList *GetOptions() const; TMethodCall *SetterMethod(TClass *cl); TMethodCall *GetterMethod(TClass *cl = 0); Bool_t IsBasic() const; Bool_t IsEnum() const; Bool_t IsaPointer() const; Bool_t IsPersistent() const { return TestBit(kObjIsPersistent); } Int_t IsSTLContainer(); Long_t Property() const; private: static TClass *fgIsA; public: static TClass *Class(); static const char *Class_Name(); static Version_t Class_Version() { return 0; } static void Dictionary(); virtual TClass *IsA() const { return TDataMember::Class(); } virtual void ShowMembers(TMemberInspector &insp, char *parent); virtual void Streamer(TBuffer &b); void StreamerNVirtual(TBuffer &b) { TDataMember::Streamer(b); } static const char *DeclFileName() { return "include/TDataMember.h"; } static int ImplFileLine(); static const char *ImplFileName(); static int DeclFileLine() { return 91; } }; class TOptionListItem : public TObject { protected: TOptionListItem(const TOptionListItem&); TOptionListItem& operator=(const TOptionListItem&); public: TDataMember *fDataMember; Long_t fValue; Long_t fValueMaskBit; Long_t fToggleMaskBit; char *fOptName; char *fOptLabel; TOptionListItem(TDataMember *m,Long_t val, Long_t valmask, Long_t tglmask, const char *name, const char *label); ~TOptionListItem(); }; # 40 "meta/src/TClass.cxx" 2 # 1 "include/TDataType.h" 1 # 33 "include/TDataType.h" enum EDataType { kChar_t = 1, kUChar_t = 11, kShort_t = 2, kUShort_t = 12, kInt_t = 3, kUInt_t = 13, kLong_t = 4, kULong_t = 14, kFloat_t = 5, kDouble_t = 8, kDouble32_t = 9, kchar = 10, kBool_t = 18, kLong64_t = 16, kULong64_t = 17, kOther_t = -1, kNoType_t = 0, kCounter = 6, kCharStar = 7, kBits = 15 }; namespace Cint { class G__TypedefInfo; } using namespace Cint; class TDataType : public TDictionary { private: G__TypedefInfo *fInfo; Int_t fSize; EDataType fType; Long_t fProperty; TString fTrueName; void CheckInfo(); void SetType(const char *name); protected: TDataType(const TDataType&); TDataType& operator=(const TDataType&); public: TDataType(G__TypedefInfo *info = 0); TDataType(const char *typenam); virtual ~TDataType(); Int_t Size() const; Int_t GetType() const { return (Int_t)fType; } const char *GetTypeName() const; const char *GetFullTypeName() const; const char *AsString(void *buf) const; Long_t Property() const; static const char *GetTypeName(EDataType type); static EDataType GetType(const type_info &typeinfo); private: static TClass *fgIsA; public: static TClass *Class(); static const char *Class_Name(); static Version_t Class_Version() { return 0; } static void Dictionary(); virtual TClass *IsA() const { return TDataType::Class(); } virtual void ShowMembers(TMemberInspector &insp, char *parent); virtual void Streamer(TBuffer &b); void StreamerNVirtual(TBuffer &b) { TDataType::Streamer(b); } static const char *DeclFileName() { return "include/TDataType.h"; } static int ImplFileLine(); static const char *ImplFileName(); static int DeclFileLine() { return 78; } }; # 41 "meta/src/TClass.cxx" 2 # 1 "include/TError.h" 1 # 35 "include/TError.h" class TVirtualMutex; const Int_t kUnset = -1; const Int_t kPrint = 0; const Int_t kInfo = 1000; const Int_t kWarning = 2000; const Int_t kError = 3000; const Int_t kBreak = 4000; const Int_t kSysError = 5000; const Int_t kFatal = 6000; extern TVirtualMutex *gErrorMutex; typedef void (*ErrorHandlerFunc_t)(int level, Bool_t abort, const char *location, const char *msg); extern "C" void ErrorHandler(int level, const char *location, const char *fmt, va_list va); extern void DefaultErrorHandler(int level, Bool_t abort, const char *location, const char *msg); extern ErrorHandlerFunc_t SetErrorHandler(ErrorHandlerFunc_t newhandler); extern ErrorHandlerFunc_t GetErrorHandler(); extern void Info(const char *location, const char *msgfmt, ...); extern void Warning(const char *location, const char *msgfmt, ...); extern void Error(const char *location, const char *msgfmt, ...); extern void Break(const char *location, const char *msgfmt, ...); extern void SysError(const char *location, const char *msgfmt, ...); extern void Fatal(const char *location, const char *msgfmt, ...); extern void AbstractMethod(const char *method); extern void MayNotUse(const char *method); extern const char *kAssertMsg; extern const char *kCheckMsg; # 82 "include/TError.h" extern Int_t gErrorIgnoreLevel; extern Int_t gErrorAbortLevel; extern Bool_t gPrintViaErrorHandler; # 42 "meta/src/TClass.cxx" 2 # 1 "include/TExMap.h" 1 # 32 "include/TExMap.h" class TExMapIter; class TExMap : public TObject { friend class TExMapIter; private: struct Assoc_t { private: ULong_t fHash; public: Long_t fKey; Long_t fValue; void SetHash(ULong_t h) { fHash = (h | 1); } ULong_t GetHash() const { return fHash; } Bool_t InUse() const { return fHash & 1; } void Clear() { fHash = 0x0; } }; Assoc_t *fTable; Int_t fSize; Int_t fTally; Bool_t HighWaterMark() { return (Bool_t) (fTally >= ((3*fSize)/4)); } void Expand(Int_t newsize); Int_t FindElement(ULong_t hash, Long_t key); void FixCollisions(Int_t index); public: TExMap(Int_t mapSize = 100); TExMap(const TExMap &map); TExMap& operator=(const TExMap&); ~TExMap(); void Add(ULong_t hash, Long_t key, Long_t value); void Add(Long_t key, Long_t value) { Add(key, key, value); } void AddAt(UInt_t slot, ULong_t hash, Long_t key, Long_t value); void Delete(Option_t *opt = ""); Int_t Capacity() const { return fSize; } Int_t GetSize() const { return fTally; } Long_t GetValue(ULong_t hash, Long_t key); Long_t GetValue(Long_t key) { return GetValue(key, key); } Long_t GetValue(ULong_t hash, Long_t key, UInt_t &slot); void Remove(ULong_t hash, Long_t key); void Remove(Long_t key) { Remove(key, key); } Long_t &operator()(ULong_t hash, Long_t key); Long_t &operator()(Long_t key) { return operator()(key, key); } private: static TClass *fgIsA; public: static TClass *Class(); static const char *Class_Name(); static Version_t Class_Version() { return 1; } static void Dictionary(); virtual TClass *IsA() const { return TExMap::Class(); } virtual void ShowMembers(TMemberInspector &insp, char *parent); virtual void Streamer(TBuffer &b); void StreamerNVirtual(TBuffer &b) { TExMap::Streamer(b); } static const char *DeclFileName() { return "include/TExMap.h"; } static int ImplFileLine(); static const char *ImplFileName(); static int DeclFileLine() { return 83; } }; class TExMapIter { private: const TExMap *fMap; Int_t fCursor; public: TExMapIter(const TExMap *map); TExMapIter(const TExMapIter& tei): fMap(tei.fMap), fCursor(tei.fCursor) { } TExMapIter& operator=(const TExMapIter&); virtual ~TExMapIter() { } const TExMap *GetCollection() const { return fMap; } Bool_t Next(ULong_t &hash, Long_t &key, Long_t &value); Bool_t Next(Long_t &key, Long_t &value); void Reset() { fCursor = 0; } private: static TClass *fgIsA; public: static TClass *Class(); static const char *Class_Name(); static Version_t Class_Version() { return 0; } static void Dictionary(); virtual TClass *IsA() const { return TExMapIter::Class(); } virtual void ShowMembers(TMemberInspector &insp, char *parent); virtual void Streamer(TBuffer &b); void StreamerNVirtual(TBuffer &b) { TExMapIter::Streamer(b); } static const char *DeclFileName() { return "include/TExMap.h"; } static int ImplFileLine(); static const char *ImplFileName(); static int DeclFileLine() { return 105; } }; # 43 "meta/src/TClass.cxx" 2 # 1 "include/TInterpreter.h" 1 # 29 "include/TInterpreter.h" class TClass; class TFunction; class TMethod; class TObjArray; class TInterpreter : public TNamed { protected: virtual void Execute(TMethod *method, TObjArray *params, int *error = 0) = 0; public: enum EErrorCode { kNoError = 0, kRecoverable = 1, kDangerous = 2, kFatal = 3, kProcessing = 99 }; TInterpreter() { } TInterpreter(const char *name, const char *title = "Generic Interpreter"); virtual ~TInterpreter() { } virtual void AddIncludePath(const char *path) = 0; virtual Int_t AutoLoad(const char *classname) = 0; virtual void ClearFileBusy() = 0; virtual void ClearStack() = 0; virtual void EnableAutoLoading() = 0; virtual void EndOfLineAction() = 0; virtual Int_t GetExitCode() const = 0; virtual Int_t GetMore() const = 0; virtual char *GetPrompt() = 0; virtual const char *GetSharedLibs() = 0; virtual const char *GetClassSharedLibs(const char *cls) = 0; virtual const char *GetSharedLibDeps(const char *lib) = 0; virtual const char *GetIncludePath() = 0; virtual TObjArray *GetRootMapFiles() const = 0; virtual Int_t InitializeDictionaries() = 0; virtual Bool_t IsLoaded(const char *filename) const = 0; virtual Int_t Load(const char *filenam, Bool_t system = kFALSE) = 0; virtual void LoadMacro(const char *filename, EErrorCode *error = 0) = 0; virtual Int_t LoadLibraryMap(const char *rootmapfile = 0) = 0; virtual Int_t UnloadLibraryMap(const char *library) = 0; virtual Long_t ProcessLine(const char *line, EErrorCode *error = 0) = 0; virtual Long_t ProcessLineSynch(const char *line, EErrorCode *error = 0) = 0; virtual void PrintIntro() = 0; virtual void Reset() = 0; virtual void ResetAll() = 0; virtual void ResetGlobals() = 0; virtual void RewindDictionary() = 0; virtual Int_t DeleteGlobal(void *obj) = 0; virtual void SaveContext() = 0; virtual void SaveGlobalsContext() = 0; virtual void UpdateListOfGlobals() = 0; virtual void UpdateListOfGlobalFunctions() = 0; virtual void UpdateListOfTypes() = 0; virtual void SetClassInfo(TClass *cl, Bool_t reload = kFALSE) = 0; virtual Bool_t CheckClassInfo(const char *name) = 0; virtual Long_t Calc(const char *line, EErrorCode* error = 0) = 0; virtual void CreateListOfBaseClasses(TClass *cl) = 0; virtual void CreateListOfDataMembers(TClass *cl) = 0; virtual void CreateListOfMethods(TClass *cl) = 0; virtual void CreateListOfMethodArgs(TFunction *m) = 0; virtual TString GetMangledName(TClass *cl, const char *method, const char *params) = 0; virtual TString GetMangledNameWithPrototype(TClass *cl, const char *method, const char *proto) = 0; virtual const char *GetInterpreterTypeName(const char *name,Bool_t full = kFALSE) = 0; virtual void *GetInterfaceMethod(TClass *cl, const char *method, const char *params) = 0; virtual void *GetInterfaceMethodWithPrototype(TClass *cl, const char *method, const char *proto) = 0; virtual void Execute(const char *function, const char *params, int *error = 0) = 0; virtual void Execute(TObject *obj, TClass *cl, const char *method, const char *params, int *error = 0) = 0; virtual void Execute(TObject *obj, TClass *cl, TMethod *method, TObjArray *params, int *error = 0) = 0; virtual Long_t ExecuteMacro(const char *filename, EErrorCode *error = 0) = 0; virtual Bool_t IsErrorMessagesEnabled() const = 0; virtual Bool_t SetErrorMessages(Bool_t enable = kTRUE) = 0; virtual Bool_t IsProcessLineLocked() const = 0; virtual void SetProcessLineLock(Bool_t lock = kTRUE) = 0; virtual const char *TypeName(const char *s) = 0; static TInterpreter *&Instance(); private: static TClass *fgIsA; public: static TClass *Class(); static const char *Class_Name(); static Version_t Class_Version() { return 0; } static void Dictionary(); virtual TClass *IsA() const { return TInterpreter::Class(); } virtual void ShowMembers(TMemberInspector &insp, char *parent); virtual void Streamer(TBuffer &b); void StreamerNVirtual(TBuffer &b) { TInterpreter::Streamer(b); } static const char *DeclFileName() { return "include/TInterpreter.h"; } static int ImplFileLine(); static const char *ImplFileName(); static int DeclFileLine() { return 110; } }; extern TInterpreter* (*gPtr2Interpreter)(); # 44 "meta/src/TClass.cxx" 2 # 1 "include/TMemberInspector.h" 1 # 30 "include/TMemberInspector.h" class TClass; class TMemberInspector { public: TMemberInspector() { } virtual ~TMemberInspector() { } virtual void Inspect(TClass *cl, const char *parent, const char *name, const void *addr) = 0; private: static TClass *fgIsA; public: static TClass *Class(); static const char *Class_Name(); static Version_t Class_Version() { return 0; } static void Dictionary(); virtual TClass *IsA() const { return TMemberInspector::Class(); } virtual void ShowMembers(TMemberInspector &insp, char *parent); virtual void Streamer(TBuffer &b); void StreamerNVirtual(TBuffer &b) { TMemberInspector::Streamer(b); } static const char *DeclFileName() { return "include/TMemberInspector.h"; } static int ImplFileLine(); static const char *ImplFileName(); static int DeclFileLine() { return 41; } }; # 45 "meta/src/TClass.cxx" 2 # 1 "include/TMethod.h" 1 # 25 "include/TMethod.h" # 1 "include/TFunction.h" 1 # 32 "include/TFunction.h" namespace Cint { class G__MethodInfo; } using namespace Cint; class TFunction : public TDictionary { friend class TCint; protected: G__MethodInfo *fInfo; TString fMangledName; TString fSignature; TList *fMethodArgs; virtual void CreateSignature(); public: TFunction(G__MethodInfo *info = 0); TFunction(const TFunction &orig); TFunction& operator=(const TFunction &rhs); virtual ~TFunction(); virtual TObject *Clone(const char *newname="") const; virtual const char *GetMangledName() const; virtual const char *GetPrototype() const; const char *GetSignature(); const char *GetReturnTypeName() const; TList *GetListOfMethodArgs(); Int_t GetNargs() const; Int_t GetNargsOpt() const; void *InterfaceMethod() const; Long_t Property() const; private: static TClass *fgIsA; public: static TClass *Class(); static const char *Class_Name(); static Version_t Class_Version() { return 0; } static void Dictionary(); virtual TClass *IsA() const { return TFunction::Class(); } virtual void ShowMembers(TMemberInspector &insp, char *parent); virtual void Streamer(TBuffer &b); void StreamerNVirtual(TBuffer &b) { TFunction::Streamer(b); } static const char *DeclFileName() { return "include/TFunction.h"; } static int ImplFileLine(); static const char *ImplFileName(); static int DeclFileLine() { return 66; } }; # 26 "include/TMethod.h" 2 class TList; class TDataMember; class TMethodCall; class TClass; namespace Cint { class G__MethodInfo; } using namespace Cint; enum EMenuItemKind { kMenuNoMenu = 0, kMenuDialog, kMenuToggle, kMenuSubMenu }; class TMethod : public TFunction { private: TClass *fClass; EMenuItemKind fMenuItem; TString fGetter; TMethodCall *fGetterMethod; TMethodCall *fSetterMethod; void CreateSignature(); public: TMethod(G__MethodInfo *info = 0, TClass *cl = 0); TMethod(const TMethod &org); TMethod& operator=(const TMethod &rhs); virtual ~TMethod(); virtual TObject *Clone(const char *newname="") const; TClass *GetClass() const { return fClass; } EMenuItemKind IsMenuItem() const { return fMenuItem; } virtual const char *GetCommentString(); virtual const char *Getter() const { return fGetter; } virtual TMethodCall *GetterMethod(); virtual TMethodCall *SetterMethod(); virtual TDataMember *FindDataMember(); virtual TList *GetListOfMethodArgs(); virtual void SetMenuItem(EMenuItemKind menuItem) {fMenuItem=menuItem;} private: static TClass *fgIsA; public: static TClass *Class(); static const char *Class_Name(); static Version_t Class_Version() { return 0; } static void Dictionary(); virtual TClass *IsA() const { return TMethod::Class(); } virtual void ShowMembers(TMemberInspector &insp, char *parent); virtual void Streamer(TBuffer &b); void StreamerNVirtual(TBuffer &b) { TMethod::Streamer(b); } static const char *DeclFileName() { return "include/TMethod.h"; } static int ImplFileLine(); static const char *ImplFileName(); static int DeclFileLine() { return 74; } }; # 46 "meta/src/TClass.cxx" 2 # 1 "include/TMethodArg.h" 1 # 30 "include/TMethodArg.h" class TFunction; class TMethod; namespace Cint { class G__MethodArgInfo; } using namespace Cint; class TMethodArg : public TDictionary { friend class TMethod; private: G__MethodArgInfo *fInfo; TFunction *fMethod; TDataMember *fDataMember; public: TMethodArg(G__MethodArgInfo *info = 0, TFunction *method = 0); virtual ~TMethodArg(); const char *GetDefault() const; TFunction *GetMethod() const { return fMethod; } const char *GetTypeName() const; const char *GetFullTypeName() const; Long_t Property() const; TDataMember *GetDataMember() const; TList *GetOptions() const; private: static TClass *fgIsA; public: static TClass *Class(); static const char *Class_Name(); static Version_t Class_Version() { return 0; } static void Dictionary(); virtual TClass *IsA() const { return TMethodArg::Class(); } virtual void ShowMembers(TMemberInspector &insp, char *parent); virtual void Streamer(TBuffer &b); void StreamerNVirtual(TBuffer &b) { TMethodArg::Streamer(b); } static const char *DeclFileName() { return "include/TMethodArg.h"; } static int ImplFileLine(); static const char *ImplFileName(); static int DeclFileLine() { return 59; } }; # 47 "meta/src/TClass.cxx" 2 # 1 "include/TMethodCall.h" 1 # 37 "include/TMethodCall.h" class TClass; class TFunction; namespace Cint { class G__CallFunc; class G__ClassInfo; } using namespace Cint; class TMethodCall : public TObject { public: enum EReturnType { kLong, kDouble, kString, kOther, kNone }; private: G__CallFunc *fFunc; Long_t fOffset; TClass *fClass; TFunction *fMetPtr; TString fMethod; TString fParams; TString fProto; Bool_t fDtorOnly; EReturnType fRetType; void Execute(const char *, const char *, int * = 0) { } void Execute(TMethod *, TObjArray *, int * = 0) { } void InitImplementation(const char *methodname, const char *params, const char *proto, TClass *cl, const G__ClassInfo &cinfo); public: TMethodCall(); TMethodCall(TClass *cl, const char *method, const char *params); TMethodCall(const char *function, const char *params); TMethodCall(const TMethodCall &org); TMethodCall& operator=(const TMethodCall &rhs); ~TMethodCall(); void Init(TClass *cl, const char *method, const char *params); void Init(const char *function, const char *params); void InitWithPrototype(TClass *cl, const char *method, const char *proto); void InitWithPrototype(const char *function, const char *proto); Bool_t IsValid() const; TObject *Clone(const char *newname="") const; void CallDtorOnly(Bool_t set = kTRUE) { fDtorOnly = set; } TFunction *GetMethod(); const char *GetMethodName() const { return fMethod.Data(); } const char *GetParams() const { return fParams.Data(); } const char *GetProto() const { return fProto.Data(); } EReturnType ReturnType(); void SetParamPtrs(void *paramArr, Int_t nparam = -1); void ResetParam(); void SetParam(Long_t l); void SetParam(Double_t d); void SetParam(Long64_t ll); void SetParam(ULong64_t ull); void Execute(void *object); void Execute(void *object, const char *params); void Execute(void *object, Long_t &retLong); void Execute(void *object, const char *params, Long_t &retLong); void Execute(void *object, Double_t &retDouble); void Execute(void *object, const char *params, Double_t &retDouble); void Execute(void *object, char **retText); void Execute(void *object, const char *params, char **retText); void Execute(); void Execute(const char *params); void Execute(Long_t &retLong); void Execute(const char *params, Long_t &retLong); void Execute(Double_t &retDouble); void Execute(const char *params, Double_t &retDouble); private: static TClass *fgIsA; public: static TClass *Class(); static const char *Class_Name(); static Version_t Class_Version() { return 0; } static void Dictionary(); virtual TClass *IsA() const { return TMethodCall::Class(); } virtual void ShowMembers(TMemberInspector &insp, char *parent); virtual void Streamer(TBuffer &b); void StreamerNVirtual(TBuffer &b) { TMethodCall::Streamer(b); } static const char *DeclFileName() { return "include/TMethodCall.h"; } static int ImplFileLine(); static const char *ImplFileName(); static int DeclFileLine() { return 112; } }; __inline__ void TMethodCall::Execute() { Execute((void *)0); } __inline__ void TMethodCall::Execute(const char *params) { Execute((void *)0, params); } __inline__ void TMethodCall::Execute(Long_t &retLong) { Execute((void *)0, retLong); } __inline__ void TMethodCall::Execute(const char *params, Long_t &retLong) { Execute((void *)0, params, retLong); } __inline__ void TMethodCall::Execute(Double_t &retDouble) { Execute((void *)0, retDouble); } __inline__ void TMethodCall::Execute(const char *params, Double_t &retDouble) { Execute((void *)0, params, retDouble); } # 48 "meta/src/TClass.cxx" 2 # 1 "include/TPluginManager.h" 1 # 72 "include/TPluginManager.h" class TEnv; class TList; class TFunction; class TMethodCall; class TPluginManager; class TPluginHandler : public TObject { friend class TPluginManager; private: TString fBase; TString fRegexp; TString fClass; TString fPlugin; TString fCtor; TMethodCall *fCallEnv; TFunction *fMethod; Int_t fCanCall; Bool_t fIsMacro; Bool_t fIsGlobal; TPluginHandler() : fBase(), fRegexp(), fClass(), fPlugin(), fCtor(), fCallEnv(0), fMethod(0), fCanCall(0), fIsMacro(kTRUE), fIsGlobal(kTRUE) { } TPluginHandler(const char *base, const char *regexp, const char *className, const char *pluginName, const char *ctor); TPluginHandler(const TPluginHandler&); TPluginHandler& operator=(const TPluginHandler&); ~TPluginHandler(); const char *GetBase() const { return fBase; } const char *GetRegexp() const { return fRegexp; } const char *GetPlugin() const { return fPlugin; } const char *GetCtor() const { return fCtor; } Bool_t CanHandle(const char *base, const char *uri); void SetupCallEnv(); public: const char *GetClass() const { return fClass; } Int_t CheckPlugin(); Int_t LoadPlugin(); Long_t ExecPlugin(Int_t nargs, ...); private: static TClass *fgIsA; public: static TClass *Class(); static const char *Class_Name(); static Version_t Class_Version() { return 2; } static void Dictionary(); virtual TClass *IsA() const { return TPluginHandler::Class(); } virtual void ShowMembers(TMemberInspector &insp, char *parent); virtual void Streamer(TBuffer &b); void StreamerNVirtual(TBuffer &b) { TPluginHandler::Streamer(b); } static const char *DeclFileName() { return "include/TPluginManager.h"; } static int ImplFileLine(); static const char *ImplFileName(); static int DeclFileLine() { return 120; } }; class TPluginManager : public TObject { private: TList *fHandlers; TPluginManager(const TPluginManager& pm); TPluginManager& operator=(const TPluginManager& pm); public: TPluginManager() : fHandlers(0) { } ~TPluginManager(); void LoadHandlersFromEnv(TEnv *env); void AddHandler(const char *base, const char *regexp, const char *className, const char *pluginName, const char *ctor = 0); void RemoveHandler(const char *base, const char *regexp = 0); TPluginHandler *FindHandler(const char *base, const char *uri = 0); void Print(Option_t *opt = "") const; private: static TClass *fgIsA; public: static TClass *Class(); static const char *Class_Name(); static Version_t Class_Version() { return 1; } static void Dictionary(); virtual TClass *IsA() const { return TPluginManager::Class(); } virtual void ShowMembers(TMemberInspector &insp, char *parent); virtual void Streamer(TBuffer &b); void StreamerNVirtual(TBuffer &b) { TPluginManager::Streamer(b); } static const char *DeclFileName() { return "include/TPluginManager.h"; } static int ImplFileLine(); static const char *ImplFileName(); static int DeclFileLine() { return 146; } }; # 51 "meta/src/TClass.cxx" 2 # 1 "include/TROOT.h" 1 # 29 "include/TROOT.h" # 1 "include/TDirectory.h" 1 # 28 "include/TDirectory.h" # 1 "include/TList.h" 1 # 32 "include/TList.h" const Bool_t kSortAscending = kTRUE; const Bool_t kSortDescending = !kSortAscending; class TObjLink; class TListIter; class TList : public TSeqCollection { friend class TListIter; protected: TObjLink *fFirst; TObjLink *fLast; TObjLink *fCache; Bool_t fAscending; TObjLink *LinkAt(Int_t idx) const; TObjLink *FindLink(const TObject *obj, Int_t &idx) const; TObjLink **DoSort(TObjLink **head, Int_t n); Bool_t LnkCompare(TObjLink *l1, TObjLink *l2); virtual TObjLink *NewLink(TObject *obj, TObjLink *prev = 0); virtual TObjLink *NewOptLink(TObject *obj, Option_t *opt, TObjLink *prev = 0); virtual void DeleteLink(TObjLink *lnk); private: TList(const TList&); TList& operator=(const TList&); public: TList() : fFirst(0), fLast(0), fCache(0), fAscending(kTRUE) { } TList(TObject *) : fFirst(0), fLast(0), fCache(0), fAscending(kTRUE) { } virtual ~TList(); virtual void Clear(Option_t *option=""); virtual void Delete(Option_t *option=""); virtual TObject *FindObject(const char *name) const; virtual TObject *FindObject(const TObject *obj) const; virtual TIterator *MakeIterator(Bool_t dir = kIterForward) const; virtual void Add(TObject *obj) { AddLast(obj); } virtual void Add(TObject *obj, Option_t *opt) { AddLast(obj, opt); } virtual void AddFirst(TObject *obj); virtual void AddFirst(TObject *obj, Option_t *opt); virtual void AddLast(TObject *obj); virtual void AddLast(TObject *obj, Option_t *opt); virtual void AddAt(TObject *obj, Int_t idx); virtual void AddAfter(const TObject *after, TObject *obj); virtual void AddAfter(TObjLink *after, TObject *obj); virtual void AddBefore(const TObject *before, TObject *obj); virtual void AddBefore(TObjLink *before, TObject *obj); virtual TObject *Remove(TObject *obj); virtual TObject *Remove(TObjLink *lnk); virtual TObject *At(Int_t idx) const; virtual TObject *After(const TObject *obj) const; virtual TObject *Before(const TObject *obj) const; virtual TObject *First() const; virtual TObjLink *FirstLink() const { return fFirst; } virtual TObject **GetObjectRef(const TObject *obj) const; virtual TObject *Last() const; virtual TObjLink *LastLink() const { return fLast; } virtual void Sort(Bool_t order = kSortAscending); Bool_t IsAscending() { return fAscending; } private: static TClass *fgIsA; public: static TClass *Class(); static const char *Class_Name(); static Version_t Class_Version() { return 5; } static void Dictionary(); virtual TClass *IsA() const { return TList::Class(); } virtual void ShowMembers(TMemberInspector &insp, char *parent); virtual void Streamer(TBuffer &b); void StreamerNVirtual(TBuffer &b) { TList::Streamer(b); } static const char *DeclFileName() { return "include/TList.h"; } static int ImplFileLine(); static const char *ImplFileName(); static int DeclFileLine() { return 97; } }; # 108 "include/TList.h" class TObjLink { friend class TList; private: TObjLink *fNext; TObjLink *fPrev; TObject *fObject; TObjLink(const TObjLink&); TObjLink& operator=(const TObjLink&); protected: TObjLink() : fNext(0), fPrev(0), fObject(0) { fNext = fPrev = this; } public: TObjLink(TObject *obj) : fNext(0), fPrev(0), fObject(obj) { } TObjLink(TObject *obj, TObjLink *lnk); virtual ~TObjLink() { } TObject *GetObject() const { return fObject; } TObject **GetObjectRef() { return &fObject; } void SetObject(TObject *obj) { fObject = obj; } virtual Option_t *GetAddOption() const { return ""; } virtual Option_t *GetOption() const { return fObject->GetOption(); } virtual void SetOption(Option_t *) { } TObjLink *Next() { return fNext; } TObjLink *Prev() { return fPrev; } }; # 146 "include/TList.h" class TObjOptLink : public TObjLink { private: TString fOption; public: TObjOptLink(TObject *obj, Option_t *opt) : TObjLink(obj), fOption(opt) { } TObjOptLink(TObject *obj, TObjLink *lnk, Option_t *opt) : TObjLink(obj, lnk), fOption(opt) { } ~TObjOptLink() { } Option_t *GetAddOption() const { return fOption.Data(); } Option_t *GetOption() const { return fOption.Data(); } void SetOption(Option_t *option) { fOption = option; } }; # 169 "include/TList.h" class TListIter : public TIterator { protected: const TList *fList; TObjLink *fCurCursor; TObjLink *fCursor; Bool_t fDirection; Bool_t fStarted; TListIter() : fList(0), fCurCursor(0), fCursor(0), fDirection(kTRUE), fStarted(kFALSE) { } public: TListIter(const TList *l, Bool_t dir = kIterForward); TListIter(const TListIter &iter); ~TListIter() { } TIterator &operator=(const TIterator &rhs); TListIter &operator=(const TListIter &rhs); const TCollection *GetCollection() const { return fList; } Option_t *GetOption() const; void SetOption(Option_t *option); TObject *Next(); void Reset() { fStarted = kFALSE; } private: static TClass *fgIsA; public: static TClass *Class(); static const char *Class_Name(); static Version_t Class_Version() { return 0; } static void Dictionary(); virtual TClass *IsA() const { return TListIter::Class(); } virtual void ShowMembers(TMemberInspector &insp, char *parent); virtual void Streamer(TBuffer &b); void StreamerNVirtual(TBuffer &b) { TListIter::Streamer(b); } static const char *DeclFileName() { return "include/TList.h"; } static int ImplFileLine(); static const char *ImplFileName(); static int DeclFileLine() { return 194; } }; # 29 "include/TDirectory.h" 2 # 1 "include/TDatime.h" 1 # 29 "include/TDatime.h" class TDatime { private: protected: UInt_t fDatime; public: TDatime(); TDatime(const TDatime &d): fDatime(d.fDatime) { } TDatime(UInt_t tloc, Bool_t dosDate = kFALSE): fDatime(0) { Set(tloc, dosDate); } TDatime(Int_t date, Int_t time); TDatime(Int_t year, Int_t month, Int_t day, Int_t hour, Int_t min, Int_t sec); TDatime(const char *sqlDateTime); virtual ~TDatime() { } TDatime& operator=(const TDatime &d); const char *AsString() const; const char *AsString(char *out) const; const char *AsSQLString() const; UInt_t Convert(Bool_t toGMT = kFALSE) const; void Copy(TDatime &datime) const; UInt_t Get() const { return fDatime; } Int_t GetDate() const; Int_t GetTime() const; Int_t GetYear() const { return (fDatime>>26) + 1995; } Int_t GetMonth() const { return (fDatime<<6)>>28; } Int_t GetDay() const { return (fDatime<<10)>>27; } Int_t GetHour() const { return (fDatime<<15)>>27; } Int_t GetMinute() const { return (fDatime<<20)>>26; } Int_t GetSecond() const { return (fDatime<<26)>>26; } void FillBuffer(char *&buffer); void Print(Option_t *option="") const; void ReadBuffer(char *&buffer); void Set(); void Set(UInt_t tloc, Bool_t dosDate = kFALSE); void Set(Int_t date, Int_t time); void Set(Int_t year, Int_t month, Int_t day, Int_t hour, Int_t min, Int_t sec); void Set(const char *sqlDateTime); Int_t Sizeof() const {return sizeof(UInt_t);} friend Bool_t operator==(const TDatime &d1, const TDatime &d2); friend Bool_t operator!=(const TDatime &d1, const TDatime &d2); friend Bool_t operator< (const TDatime &d1, const TDatime &d2); friend Bool_t operator<=(const TDatime &d1, const TDatime &d2); friend Bool_t operator> (const TDatime &d1, const TDatime &d2); friend Bool_t operator>=(const TDatime &d1, const TDatime &d2); static void GetDateTime(UInt_t datetime, Int_t &date, Int_t &time); private: static TClass *fgIsA; public: static TClass *Class(); static const char *Class_Name(); static Version_t Class_Version() { return 1; } static void Dictionary(); virtual TClass *IsA() const { return TDatime::Class(); } virtual void ShowMembers(TMemberInspector &insp, char *parent); virtual void Streamer(TBuffer &b); void StreamerNVirtual(TBuffer &b) { TDatime::Streamer(b); } static const char *DeclFileName() { return "include/TDatime.h"; } static int ImplFileLine(); static const char *ImplFileName(); static int DeclFileLine() { return 83; } }; __inline__ TDatime& TDatime::operator=(const TDatime &d) { fDatime = d.fDatime; return *this; } __inline__ Bool_t operator==(const TDatime &d1, const TDatime &d2) { return d1.fDatime == d2.fDatime; } __inline__ Bool_t operator!=(const TDatime &d1, const TDatime &d2) { return d1.fDatime != d2.fDatime; } __inline__ Bool_t operator< (const TDatime &d1, const TDatime &d2) { return d1.fDatime < d2.fDatime; } __inline__ Bool_t operator<=(const TDatime &d1, const TDatime &d2) { return d1.fDatime <= d2.fDatime; } __inline__ Bool_t operator> (const TDatime &d1, const TDatime &d2) { return d1.fDatime > d2.fDatime; } __inline__ Bool_t operator>=(const TDatime &d1, const TDatime &d2) { return d1.fDatime >= d2.fDatime; } # 32 "include/TDirectory.h" 2 # 1 "include/TUUID.h" 1 # 38 "include/TUUID.h" class TBuffer; class TFile; class TDirectory; class TInetAddress; class TDatime; class TUUID { protected: UInt_t fUUIDIndex; UInt_t fTimeLow; UShort_t fTimeMid; UShort_t fTimeHiAndVersion; UChar_t fClockSeqHiAndReserved; UChar_t fClockSeqLow; UChar_t fNode[6]; struct uuid_time_t { UInt_t high; UInt_t low; }; Int_t CmpTime(uuid_time_t *t1, uuid_time_t *t2); void Format(UShort_t clockseq, uuid_time_t ts); void GetNodeIdentifier(); void GetCurrentTime(uuid_time_t *timestamp); void GetSystemTime(uuid_time_t *timestamp); void GetRandomInfo(UChar_t seed[16]); void SetFromString(const char *uuid_str); public: TUUID(); TUUID(const char *uuid_str); virtual ~TUUID(); const char *AsString() const; Int_t Compare(const TUUID &u) const; UShort_t Hash() const; void Print() const; TInetAddress GetHostAddress() const; TDatime GetTime() const; void GetUUID(UChar_t uuid[16]) const; void SetUUID(const char *uuid_str); UInt_t GetUUIDNumber() const { return fUUIDIndex; } void SetUUIDNumber(UInt_t index) { fUUIDIndex = index; } void StreamerV1(TBuffer &b); void FillBuffer(char *&buffer); void ReadBuffer(char *&buffer); Int_t Sizeof() const { return 18; } private: static TClass *fgIsA; public: static TClass *Class(); static const char *Class_Name(); static Version_t Class_Version() { return 1; } static void Dictionary(); virtual TClass *IsA() const { return TUUID::Class(); } virtual void ShowMembers(TMemberInspector &insp, char *parent); virtual void Streamer(TBuffer &b); void StreamerNVirtual(TBuffer &b) { TUUID::Streamer(b); } static const char *DeclFileName() { return "include/TUUID.h"; } static int ImplFileLine(); static const char *ImplFileName(); static int DeclFileLine() { return 89; } }; __inline__ TBuffer &operator>>(TBuffer &buf, TUUID &uuid) { uuid.Streamer(buf); return buf; } __inline__ TBuffer &operator<<(TBuffer &buf, const TUUID &uuid) { ((TUUID&)uuid).Streamer(buf); return buf; } __inline__ Bool_t operator==(const TUUID &u1, const TUUID &u2) { return (!u1.Compare(u2)) ? kTRUE : kFALSE; } __inline__ Bool_t operator!=(const TUUID &u1, const TUUID &u2) { return !(u1 == u2); } # 35 "include/TDirectory.h" 2 class TBrowser; class TKey; class TFile; extern TDirectory *gDirectory; class TDirectory : public TNamed { public: class TContext { private: TDirectory *fDirectory; TContext *fPrevious; TContext *fNext; TContext(TContext&); TContext& operator=(TContext&); void CdNull(); friend class TDirectory; public: TContext(TDirectory* previous, TDirectory* newCurrent) : fDirectory(previous),fPrevious(0),fNext(0) { if ( fDirectory ) fDirectory->RegisterContext(this); if ( newCurrent ) newCurrent->cd(); } TContext(TDirectory* newCurrent) : fDirectory(gDirectory),fPrevious(0),fNext(0) { if ( fDirectory ) fDirectory->RegisterContext(this); if ( newCurrent ) newCurrent->cd(); } ~TContext() { if ( fDirectory ) { fDirectory->UnregisterContext(this); fDirectory->cd(); } else CdNull(); } }; protected: TObject *fMother; TList *fList; TUUID fUUID; TString fPathBuffer; TContext *fContext; static Bool_t fgAddDirectory; Bool_t cd1(const char *path); static Bool_t Cd1(const char *path); virtual void CleanTargets(); void FillFullPath(TString& buf) const; void RegisterContext(TContext *ctxt); void UnregisterContext(TContext *ctxt); friend class TContext; protected: TDirectory(const TDirectory &directory); void operator=(const TDirectory &); public: TDirectory(); TDirectory(const char *name, const char *title, Option_t *option="", TDirectory* motherDir = 0); virtual ~TDirectory(); static void AddDirectory(Bool_t add=kTRUE); static Bool_t AddDirectoryStatus(); virtual void Append(TObject *obj); virtual void Add(TObject *obj) { Append(obj); } virtual Int_t AppendKey(TKey *) {return 0;} virtual void Browse(TBrowser *b); virtual void Build(TFile* motherFile = 0, TDirectory* motherDir = 0); virtual void Clear(Option_t *option=""); virtual TObject *CloneObject(const TObject *obj); virtual void Close(Option_t *option=""); virtual void Copy(TObject &) const { MayNotUse("Copy(TObject &)"); } virtual Bool_t cd(const char *path = 0); virtual void DeleteAll(Option_t *option=""); virtual void Delete(const char *namecycle=""); virtual void Draw(Option_t *option=""); virtual TKey *FindKey(const char * ) const {return 0;} virtual TKey *FindKeyAny(const char * ) const {return 0;} virtual TObject *FindObject(const char *name) const; virtual TObject *FindObject(const TObject *obj) const; virtual TObject *FindObjectAny(const char *name) const; virtual TObject *FindObjectAnyFile(const char * ) const {return 0;} virtual TObject *Get(const char *namecycle); virtual TDirectory *GetDirectory(const char *namecycle, Bool_t printError = false, const char *funcname = "GetDirectory"); template __inline__ void GetObject(const char* namecycle, T*& ptr) { ptr = (T*)GetObjectChecked(namecycle,TBuffer::GetClass(typeid(T))); } virtual void *GetObjectChecked(const char *namecycle, const char* classname); virtual void *GetObjectChecked(const char *namecycle, const TClass* cl); virtual void *GetObjectUnchecked(const char *namecycle); virtual Int_t GetBufferSize() const {return 0;} virtual TFile *GetFile() const { return 0; } virtual TKey *GetKey(const char * , Short_t =9999) const {return 0;} virtual TList *GetList() const { return fList; } virtual TList *GetListOfKeys() const { return 0; } virtual TObject *GetMother() const { return fMother; } virtual TDirectory *GetMotherDir() const { return fMother==0 ? 0 : dynamic_cast(fMother); } virtual Int_t GetNbytesKeys() const { return 0; } virtual Int_t GetNkeys() const { return 0; } virtual Long64_t GetSeekDir() const { return 0; } virtual Long64_t GetSeekParent() const { return 0; } virtual Long64_t GetSeekKeys() const { return 0; } virtual const char *GetPathStatic() const; virtual const char *GetPath() const; TUUID GetUUID() const {return fUUID;} virtual Bool_t IsFolder() const { return kTRUE; } virtual Bool_t IsModified() const { return kFALSE; } virtual Bool_t IsWritable() const { return kFALSE; } virtual void ls(Option_t *option="") const; virtual TDirectory *mkdir(const char *name, const char *title=""); virtual TFile *OpenFile(const char * , Option_t * = "", const char * = "", Int_t = 1, Int_t = 0) {return 0;} virtual void Paint(Option_t *option=""); virtual void Print(Option_t *option="") const; virtual void Purge(Short_t =1) {} virtual void pwd() const; virtual void ReadAll(Option_t * ="") {} virtual Int_t ReadKeys() {return 0;} virtual Int_t ReadTObject(TObject * , const char * ) {return 0;} virtual void RecursiveRemove(TObject *obj); virtual void rmdir(const char *name); virtual void Save() {} virtual Int_t SaveObjectAs(const TObject * , const char * ="", Option_t * =""); virtual void SaveSelf(Bool_t = kFALSE) {} virtual void SetBufferSize(Int_t ) {} virtual void SetModified() {} virtual void SetMother(const TObject *mother) {fMother = (TObject*)mother;} virtual void SetName(const char* newname); virtual void SetTRefAction(TObject * , TObject * ) {} virtual void SetSeekDir(Long64_t) {} virtual void SetWritable(Bool_t) {} virtual Int_t Sizeof() const {return 0;} virtual Int_t Write(const char * =0, Int_t =0, Int_t =0){return 0;} virtual Int_t Write(const char * =0, Int_t =0, Int_t =0) const {return 0;} virtual Int_t WriteTObject(const TObject *, const char * =0, Option_t * ="", Int_t =0) {return 0;} template __inline__ Int_t WriteObject(const T* obj, const char* name, Option_t *option="", Int_t bufsize=0) { return WriteObjectAny(obj,TBuffer::GetClass(typeid(T)),name,option,bufsize); } virtual Int_t WriteObjectAny(const void *, const char * , const char * , Option_t * ="", Int_t =0) {return 0;} virtual Int_t WriteObjectAny(const void *, const TClass * , const char * , Option_t * ="", Int_t =0) {return 0;} virtual void WriteDirHeader() {} virtual void WriteKeys() {} static Bool_t Cd(const char *path); static void DecodeNameCycle(const char *namecycle, char *name, Short_t &cycle); static void EncodeNameCycle(char *buffer, const char *name, Short_t cycle); private: static TClass *fgIsA; public: static TClass *Class(); static const char *Class_Name(); static Version_t Class_Version() { return 5; } static void Dictionary(); virtual TClass *IsA() const { return TDirectory::Class(); } virtual void ShowMembers(TMemberInspector &insp, char *parent); virtual void Streamer(TBuffer &b); void StreamerNVirtual(TBuffer &b) { TDirectory::Streamer(b); } static const char *DeclFileName() { return "include/TDirectory.h"; } static int ImplFileLine(); static const char *ImplFileName(); static int DeclFileLine() { return 203; } }; # 30 "include/TROOT.h" 2 class TClass; class TCanvas; class TColor; class TDataType; class TFile; class TStyle; class TVirtualPad; class TApplication; class TInterpreter; class TBrowser; class TGlobal; class TFunction; class TFolder; class TPluginManager; class TProcessUUID; class TClassGenerator; class TVirtualMutex; extern TVirtualMutex *gROOTMutex; class TROOT : public TDirectory { friend class TCint; private: Int_t fLineIsProcessing; static Int_t fgDirLevel; static Bool_t fgRootInit; static Bool_t fgMemCheck; TROOT(const TROOT&); TROOT& operator=(const TROOT&); protected: TString fConfigOptions; TString fVersion; Int_t fVersionInt; Int_t fVersionCode; Int_t fVersionDate; Int_t fVersionTime; Int_t fBuiltDate; Int_t fBuiltTime; Int_t fTimer; TApplication *fApplication; TInterpreter *fInterpreter; Bool_t fBatch; Bool_t fEditHistograms; Bool_t fFromPopUp; Bool_t fMustClean; Bool_t fReadingObject; Bool_t fForceStyle; Bool_t fInterrupt; Bool_t fEscape; Bool_t fExecutingMacro; Int_t fEditorMode; TObject *fPrimitive; TVirtualPad *fSelectPad; TCollection *fClasses; TCollection *fTypes; TCollection *fGlobals; TCollection *fGlobalFunctions; TSeqCollection *fFiles; TSeqCollection *fMappedFiles; TSeqCollection *fSockets; TSeqCollection *fCanvases; TSeqCollection *fStyles; TCollection *fFunctions; TSeqCollection *fTasks; TSeqCollection *fColors; TSeqCollection *fGeometries; TSeqCollection *fBrowsers; TSeqCollection *fSpecials; TSeqCollection *fCleanups; TSeqCollection *fMessageHandlers; TSeqCollection *fStreamerInfo; TCollection *fClassGenerators; TSeqCollection *fSecContexts; TSeqCollection *fProofs; TSeqCollection *fClipboard; TSeqCollection *fDataSets; TProcessUUID *fUUIDs; TFolder *fRootFolder; TList *fBrowsables; TPluginManager *fPluginManager; TString fCutClassName; TString fDefCanvasName; TROOT(); void InitSystem(); void InitThreads(); void *operator new(size_t l) { return TObject::operator new(l); } public: TROOT(const char *name, const char *title, VoidFuncPtr_t *initfunc = 0); virtual ~TROOT(); void AddClass(TClass *cl); void AddClassGenerator(TClassGenerator *gen); void Browse(TBrowser *b); Bool_t ClassSaved(TClass *cl); virtual TObject *FindObject(const char *name) const; virtual TObject *FindObject(const TObject *obj) const; virtual TObject *FindObjectAny(const char *name) const; TObject *FindSpecialObject(const char *name, void *&where); const char *FindObjectClassName(const char *name) const; const char *FindObjectPathName(const TObject *obj) const; TClass *FindSTLClass(const char *name, Bool_t load) const; void ForceStyle(Bool_t force = kTRUE) { fForceStyle = force; } Bool_t FromPopUp() const { return fFromPopUp; } TPluginManager *GetPluginManager() const { return fPluginManager; } TApplication *GetApplication() const { return fApplication; } TInterpreter *GetInterpreter() const { return fInterpreter; } TClass *GetClass(const char *name, Bool_t load = kTRUE) const; TClass *GetClass(const type_info &typeinfo, Bool_t load = kTRUE) const; TColor *GetColor(Int_t color) const; const char *GetConfigOptions() const { return fConfigOptions; } const char *GetCutClassName() const { return fCutClassName; } const char *GetDefCanvasName() const { return fDefCanvasName; } Bool_t GetEditHistograms() const { return fEditHistograms; } Int_t GetEditorMode() const { return fEditorMode; } Bool_t GetForceStyle() const { return fForceStyle; } Int_t GetBuiltDate() const { return fBuiltDate; } Int_t GetBuiltTime() const { return fBuiltTime; } Int_t GetVersionDate() const { return fVersionDate; } Int_t GetVersionTime() const { return fVersionTime; } Int_t GetVersionInt() const { return fVersionInt; } Int_t GetVersionCode() const { return fVersionCode; } const char *GetVersion() const { return fVersion; } TCollection *GetListOfClasses() const { return fClasses; } TSeqCollection *GetListOfColors() const { return fColors; } TCollection *GetListOfTypes(Bool_t load = kFALSE); TCollection *GetListOfGlobals(Bool_t load = kFALSE); TCollection *GetListOfGlobalFunctions(Bool_t load = kFALSE); TSeqCollection *GetListOfFiles() const { return fFiles; } TSeqCollection *GetListOfMappedFiles() const { return fMappedFiles; } TSeqCollection *GetListOfSockets() const { return fSockets; } TSeqCollection *GetListOfCanvases() const { return fCanvases; } TSeqCollection *GetListOfStyles() const { return fStyles; } TCollection *GetListOfFunctions() const { return fFunctions; } TSeqCollection *GetListOfGeometries() const { return fGeometries; } TSeqCollection *GetListOfBrowsers() const { return fBrowsers; } TSeqCollection *GetListOfSpecials() const { return fSpecials; } TSeqCollection *GetListOfTasks() const { return fTasks; } TSeqCollection *GetListOfCleanups() const { return fCleanups; } TSeqCollection *GetListOfStreamerInfo() const { return fStreamerInfo; } TSeqCollection *GetListOfMessageHandlers() const { return fMessageHandlers; } TCollection *GetListOfClassGenerators() const { return fClassGenerators; } TSeqCollection *GetListOfSecContexts() const { return fSecContexts; } TSeqCollection *GetListOfProofs() const { return fProofs; } TSeqCollection *GetClipboard() const { return fClipboard; } TSeqCollection *GetListOfDataSets() const { return fDataSets; } TList *GetListOfBrowsables() const { return fBrowsables; } TDataType *GetType(const char *name, Bool_t load = kFALSE) const; TFile *GetFile() const { if (gDirectory != this) return gDirectory->GetFile(); else return 0;} TFile *GetFile(const char *name) const; TStyle *GetStyle(const char *name) const; TObject *GetFunction(const char *name) const; TGlobal *GetGlobal(const char *name, Bool_t load = kFALSE) const; TGlobal *GetGlobal(const TObject *obj, Bool_t load = kFALSE) const; TFunction *GetGlobalFunction(const char *name, const char *params = 0, Bool_t load = kFALSE); TFunction *GetGlobalFunctionWithPrototype(const char *name, const char *proto = 0, Bool_t load = kFALSE); TObject *GetGeometry(const char *name) const; TObject *GetSelectedPrimitive() const { return fPrimitive; } TVirtualPad *GetSelectedPad() const { return fSelectPad; } Int_t GetNclasses() const { return fClasses->GetSize(); } Int_t GetNtypes() const { return fTypes->GetSize(); } TFolder *GetRootFolder() const { return fRootFolder; } TProcessUUID *GetUUIDs() const { return fUUIDs; } void Idle(UInt_t idleTimeInSec, const char *command = 0); Int_t IgnoreInclude(const char *fname, const char *expandedfname); Bool_t IsBatch() const { return fBatch; } Bool_t IsExecutingMacro() const { return fExecutingMacro; } Bool_t IsFolder() const { return kTRUE; } Bool_t IsInterrupted() const { return fInterrupt; } Bool_t IsEscaped() const { return fEscape; } Bool_t IsLineProcessing() const { return fLineIsProcessing ? kTRUE : kFALSE; } Bool_t IsProofServ() const { return fName == "proofserv" ? kTRUE : kFALSE; } void ls(Option_t *option = "") const; Int_t LoadClass(const char *classname, const char *libname, Bool_t check = kFALSE); TClass *LoadClass(const char *name) const; Int_t LoadMacro(const char *filename, Int_t *error = 0, Bool_t check = kFALSE); Long_t Macro(const char *filename, Int_t *error = 0); TCanvas *MakeDefCanvas() const; void Message(Int_t id, const TObject *obj); Bool_t MustClean() const { return fMustClean; } Long_t ProcessLine(const char *line, Int_t *error = 0); Long_t ProcessLineSync(const char *line, Int_t *error = 0); Long_t ProcessLineFast(const char *line, Int_t *error = 0); Bool_t ReadingObject() const { return fReadingObject; } void RefreshBrowsers(); void RemoveClass(TClass *); void Reset(Option_t *option=""); void SaveContext(); void SetApplication(TApplication *app) { fApplication = app; } void SetBatch(Bool_t batch = kTRUE) { fBatch = batch; } void SetCutClassName(const char *name = "TCutG"); void SetDefCanvasName(const char *name = "c1") { fDefCanvasName = name; } void SetEditHistograms(Bool_t flag = kTRUE) { fEditHistograms = flag; } void SetEditorMode(const char *mode = ""); void SetExecutingMacro(Bool_t flag = kTRUE) { fExecutingMacro = flag; } void SetFromPopUp(Bool_t flag = kTRUE) { fFromPopUp = flag; } void SetInterrupt(Bool_t flag = kTRUE) { fInterrupt = flag; } void SetEscape(Bool_t flag = kTRUE) { fEscape = flag; } void SetLineIsProcessing() { fLineIsProcessing++; } void SetLineHasBeenProcessed() { if (fLineIsProcessing) fLineIsProcessing--; } void SetReadingObject(Bool_t flag = kTRUE) { fReadingObject = flag; } void SetMustClean(Bool_t flag = kTRUE) { fMustClean=flag; } void SetSelectedPrimitive(const TObject *obj) { fPrimitive = (TObject*)obj; } void SetSelectedPad(TVirtualPad *pad) { fSelectPad = pad; } void SetStyle(const char *stylename = "Default"); void Time(Int_t casetime=1) { fTimer = casetime; } Int_t Timer() const { return fTimer; } static Int_t DecreaseDirLevel(); static Int_t GetDirLevel(); static const char *GetMacroPath(); static void SetMacroPath(const char *newpath); static Int_t IncreaseDirLevel(); static void IndentLevel(); static Bool_t Initialized(); static Bool_t MemCheck(); static void SetDirLevel(Int_t level = 0); static Int_t ConvertVersionCode2Int(Int_t code); static Int_t ConvertVersionInt2Code(Int_t v); static Int_t RootVersionCode(); private: static TClass *fgIsA; public: static TClass *Class(); static const char *Class_Name(); static Version_t Class_Version() { return 0; } static void Dictionary(); virtual TClass *IsA() const { return TROOT::Class(); } virtual void ShowMembers(TMemberInspector &insp, char *parent); virtual void Streamer(TBuffer &b); void StreamerNVirtual(TBuffer &b) { TROOT::Streamer(b); } static const char *DeclFileName() { return "include/TROOT.h"; } static int ImplFileLine(); static const char *ImplFileName(); static int DeclFileLine() { return 265; } }; extern TROOT *gROOT; namespace ROOT { TROOT *GetROOT(); } # 52 "meta/src/TClass.cxx" 2 # 1 "include/TRealData.h" 1 # 31 "include/TRealData.h" class TDataMember; class TRealData : public TObject { private: TDataMember *fDataMember; Long_t fThisOffset; TString fName; TMemberStreamer *fStreamer; Bool_t fIsObject; TRealData(const TRealData& rhs); TRealData& operator=(const TRealData& rhs); public: TRealData(); TRealData(const char *name, Long_t offset, TDataMember *datamember); virtual ~TRealData(); void AdoptStreamer(TMemberStreamer *p); virtual const char *GetName() const {return fName.Data();} TDataMember *GetDataMember() const {return fDataMember;} TMemberStreamer *GetStreamer() const; Long_t GetThisOffset() const {return fThisOffset;} Bool_t IsObject() const {return fIsObject;} void SetIsObject(Bool_t isObject) {fIsObject=isObject;} void WriteRealData(void *pointer, char *&buffer); private: static TClass *fgIsA; public: static TClass *Class(); static const char *Class_Name(); static Version_t Class_Version() { return 0; } static void Dictionary(); virtual TClass *IsA() const { return TRealData::Class(); } virtual void ShowMembers(TMemberInspector &insp, char *parent); virtual void Streamer(TBuffer &b); void StreamerNVirtual(TBuffer &b) { TRealData::Streamer(b); } static const char *DeclFileName() { return "include/TRealData.h"; } static int ImplFileLine(); static const char *ImplFileName(); static int DeclFileLine() { return 60; } }; # 53 "meta/src/TClass.cxx" 2 # 1 "include/TStreamer.h" 1 # 15 "include/TStreamer.h" # 1 "include/TClassStreamer.h" 1 # 26 "include/TClassStreamer.h" class TClassStreamer { protected: TClassStreamer() : fStreamer(0) {}; public: TClassStreamer(ClassStreamerFunc_t pointer) : fStreamer(pointer) {}; TClassStreamer(const TClassStreamer &rhs) : fStreamer(rhs.fStreamer) {}; virtual TClassStreamer *Generate() { return new TClassStreamer(*this); } virtual ~TClassStreamer(){}; virtual void operator()(TBuffer &b, void *objp) { (*fStreamer)(b,objp); } private: ClassStreamerFunc_t fStreamer; }; # 16 "include/TStreamer.h" 2 # 1 "include/TMemberStreamer.h" 1 # 26 "include/TMemberStreamer.h" class TMemberStreamer { protected: TMemberStreamer() : fStreamer(0) {}; public: TMemberStreamer(MemberStreamerFunc_t pointer) : fStreamer(pointer) {}; TMemberStreamer(const TMemberStreamer &rhs) : fStreamer(rhs.fStreamer) {}; virtual ~TMemberStreamer(){}; virtual void operator()(TBuffer &b, void *pmember, Int_t size=0) { (*fStreamer)(b,pmember,size); } private: MemberStreamerFunc_t fStreamer; }; # 17 "include/TStreamer.h" 2 # 54 "meta/src/TClass.cxx" 2 # 1 "include/TStreamerElement.h" 1 # 28 "include/TStreamerElement.h" class TMethodCall; class TClass; class TStreamerBasicType; class TStreamerElement : public TNamed { protected: Int_t fType; Int_t fSize; Int_t fArrayLength; Int_t fArrayDim; Int_t fMaxIndex[5]; Int_t fOffset; Int_t fTObjectOffset; Int_t fNewType; TString fTypeName; TClass *fClassObject; TMemberStreamer *fStreamer; TMethodCall *fMethod; Double_t fXmin; Double_t fXmax; Double_t fFactor; public: enum ESTLtype { kSTL = 300 , kSTLstring = 365 , kSTLvector = 1, kSTLlist = 2, kSTLdeque = 3, kSTLmap = 4, kSTLset = 5, kSTLmultimap=6, kSTLmultiset=7}; enum { kHasRange = (1 << (6)) }; TStreamerElement(); TStreamerElement(const char *name, const char *title, Int_t offset, Int_t dtype, const char *typeName); virtual ~TStreamerElement(); virtual Bool_t CannotSplit() const; Int_t GetArrayDim() const {return fArrayDim;} Int_t GetArrayLength() const {return fArrayLength;} virtual TClass *GetClassPointer() const; TClass *GetClass() const {return GetClassPointer();} virtual Int_t GetExecID() const; virtual const char *GetFullName() const; virtual const char *GetInclude() const {return "";} Int_t GetMaxIndex(Int_t i) const {return fMaxIndex[i];} virtual ULong_t GetMethod() const {return ULong_t(fStreamer);} TMemberStreamer *GetStreamer() const; virtual Int_t GetSize() const; Int_t GetNewType() const {return fNewType;} Int_t GetType() const {return fType;} Int_t GetOffset() const {return fOffset;} Int_t GetTObjectOffset() const { return fTObjectOffset; } const char *GetTypeName() const {return fTypeName.Data();} const char *GetTypeNameBasic() const; Double_t GetFactor() const {return fFactor;} Double_t GetXmin() const {return fXmin;} Double_t GetXmax() const {return fXmax;} virtual void Init(TObject *obj=0); virtual Bool_t IsaPointer() const {return kFALSE;} virtual Bool_t HasCounter() const {return kFALSE;} virtual Bool_t IsOldFormat(const char *newTypeName); virtual Bool_t IsBase() const; virtual void ls(Option_t *option="") const; virtual void SetArrayDim(Int_t dim); virtual void SetMaxIndex(Int_t dim, Int_t max); virtual void SetOffset(Int_t offset) {fOffset=offset;} virtual void SetTObjectOffset(Int_t tobjoffset) {fTObjectOffset=tobjoffset;} virtual void SetStreamer(TMemberStreamer *streamer); virtual void SetSize(Int_t dsize) {fSize = dsize;} virtual void SetNewType(Int_t dtype) {fNewType = dtype;} virtual void SetType(Int_t dtype) {fType = dtype;} virtual void SetTypeName(const char *name) {fTypeName = name;} virtual void Update(const TClass *oldClass, TClass *newClass); private: static TClass *fgIsA; public: static TClass *Class(); static const char *Class_Name(); static Version_t Class_Version() { return 4; } static void Dictionary(); virtual TClass *IsA() const { return TStreamerElement::Class(); } virtual void ShowMembers(TMemberInspector &insp, char *parent); virtual void Streamer(TBuffer &b); void StreamerNVirtual(TBuffer &b) { TStreamerElement::Streamer(b); } static const char *DeclFileName() { return "include/TStreamerElement.h"; } static int ImplFileLine(); static const char *ImplFileName(); static int DeclFileLine() { return 104; } }; class TStreamerBase : public TStreamerElement { protected: Int_t fBaseVersion; TClass *fBaseClass; public: TStreamerBase(); TStreamerBase(const char *name, const char *title, Int_t offset); virtual ~TStreamerBase(); Int_t GetBaseVersion() {return fBaseVersion;} virtual TClass *GetClassPointer() const; const char *GetInclude() const; ULong_t GetMethod() const {return ULong_t(fMethod);} Int_t GetSize() const; virtual void Init(TObject *obj=0); Bool_t IsBase() const; virtual void ls(Option_t *option="") const; Int_t ReadBuffer (TBuffer &b, char *pointer); void SetBaseVersion(Int_t v) {fBaseVersion = v;} virtual void Update(const TClass *oldClass, TClass *newClass); Int_t WriteBuffer(TBuffer &b, char *pointer); private: static TClass *fgIsA; public: static TClass *Class(); static const char *Class_Name(); static Version_t Class_Version() { return 3; } static void Dictionary(); virtual TClass *IsA() const { return TStreamerBase::Class(); } virtual void ShowMembers(TMemberInspector &insp, char *parent); virtual void Streamer(TBuffer &b); void StreamerNVirtual(TBuffer &b) { TStreamerBase::Streamer(b); } static const char *DeclFileName() { return "include/TStreamerElement.h"; } static int ImplFileLine(); static const char *ImplFileName(); static int DeclFileLine() { return 132; } }; class TStreamerBasicPointer : public TStreamerElement { protected: Int_t fCountVersion; TString fCountName; TString fCountClass; TStreamerBasicType *fCounter; public: TStreamerBasicPointer(); TStreamerBasicPointer(const char *name, const char *title, Int_t offset, Int_t dtype, const char *countName, const char *countClass, Int_t version, const char *typeName); virtual ~TStreamerBasicPointer(); const char *GetCountClass() const {return fCountClass.Data();} const char *GetCountName() const {return fCountName.Data();} Int_t GetCountVersion() const {return fCountVersion;} ULong_t GetMethod() const; Int_t GetSize() const; virtual void Init(TObject *obj=0); virtual Bool_t HasCounter() const {return fCounter!=0; } virtual Bool_t IsaPointer() const {return kTRUE; } void SetArrayDim(Int_t dim); void SetCountClass(const char *clname) {fCountClass = clname; } void SetCountName(const char *name) {fCountName = name; } void SetCountVersion(Int_t count) {fCountVersion = count;} private: static TClass *fgIsA; public: static TClass *Class(); static const char *Class_Name(); static Version_t Class_Version() { return 2; } static void Dictionary(); virtual TClass *IsA() const { return TStreamerBasicPointer::Class(); } virtual void ShowMembers(TMemberInspector &insp, char *parent); virtual void Streamer(TBuffer &b); void StreamerNVirtual(TBuffer &b) { TStreamerBasicPointer::Streamer(b); } static const char *DeclFileName() { return "include/TStreamerElement.h"; } static int ImplFileLine(); static const char *ImplFileName(); static int DeclFileLine() { return 163; } }; class TStreamerLoop : public TStreamerElement { protected: Int_t fCountVersion; TString fCountName; TString fCountClass; TStreamerBasicType *fCounter; public: TStreamerLoop(); TStreamerLoop(const char *name, const char *title, Int_t offset, const char *countName, const char *countClass, Int_t version, const char *typeName); virtual ~TStreamerLoop(); const char *GetCountClass() const {return fCountClass.Data();} const char *GetCountName() const {return fCountName.Data();} Int_t GetCountVersion() const {return fCountVersion;} const char *GetInclude() const; ULong_t GetMethod() const; Int_t GetSize() const; virtual void Init(TObject *obj=0); virtual Bool_t IsaPointer() const {return kTRUE; } virtual Bool_t HasCounter() const {return fCounter!=0; } void SetCountClass(const char *clname) {fCountClass = clname; } void SetCountName(const char *name) {fCountName = name; } void SetCountVersion(Int_t count) {fCountVersion = count;} private: static TClass *fgIsA; public: static TClass *Class(); static const char *Class_Name(); static Version_t Class_Version() { return 2; } static void Dictionary(); virtual TClass *IsA() const { return TStreamerLoop::Class(); } virtual void ShowMembers(TMemberInspector &insp, char *parent); virtual void Streamer(TBuffer &b); void StreamerNVirtual(TBuffer &b) { TStreamerLoop::Streamer(b); } static const char *DeclFileName() { return "include/TStreamerElement.h"; } static int ImplFileLine(); static const char *ImplFileName(); static int DeclFileLine() { return 193; } }; class TStreamerBasicType : public TStreamerElement { protected: Int_t fCounter; public: TStreamerBasicType(); TStreamerBasicType(const char *name, const char *title, Int_t offset, Int_t dtype, const char *typeName); virtual ~TStreamerBasicType(); Int_t GetCounter() const {return fCounter;} ULong_t GetMethod() const; Int_t GetSize() const; private: static TClass *fgIsA; public: static TClass *Class(); static const char *Class_Name(); static Version_t Class_Version() { return 2; } static void Dictionary(); virtual TClass *IsA() const { return TStreamerBasicType::Class(); } virtual void ShowMembers(TMemberInspector &insp, char *parent); virtual void Streamer(TBuffer &b); void StreamerNVirtual(TBuffer &b) { TStreamerBasicType::Streamer(b); } static const char *DeclFileName() { return "include/TStreamerElement.h"; } static int ImplFileLine(); static const char *ImplFileName(); static int DeclFileLine() { return 211; } }; class TStreamerObject : public TStreamerElement { public: TStreamerObject(); TStreamerObject(const char *name, const char *title, Int_t offset, const char *typeName); virtual ~TStreamerObject(); const char *GetInclude() const; Int_t GetSize() const; virtual void Init(TObject *obj=0); private: static TClass *fgIsA; public: static TClass *Class(); static const char *Class_Name(); static Version_t Class_Version() { return 2; } static void Dictionary(); virtual TClass *IsA() const { return TStreamerObject::Class(); } virtual void ShowMembers(TMemberInspector &insp, char *parent); virtual void Streamer(TBuffer &b); void StreamerNVirtual(TBuffer &b) { TStreamerObject::Streamer(b); } static const char *DeclFileName() { return "include/TStreamerElement.h"; } static int ImplFileLine(); static const char *ImplFileName(); static int DeclFileLine() { return 226; } }; class TStreamerObjectAny : public TStreamerElement { public: TStreamerObjectAny(); TStreamerObjectAny(const char *name, const char *title, Int_t offset, const char *typeName); virtual ~TStreamerObjectAny(); const char *GetInclude() const; Int_t GetSize() const; virtual void Init(TObject *obj=0); private: static TClass *fgIsA; public: static TClass *Class(); static const char *Class_Name(); static Version_t Class_Version() { return 2; } static void Dictionary(); virtual TClass *IsA() const { return TStreamerObjectAny::Class(); } virtual void ShowMembers(TMemberInspector &insp, char *parent); virtual void Streamer(TBuffer &b); void StreamerNVirtual(TBuffer &b) { TStreamerObjectAny::Streamer(b); } static const char *DeclFileName() { return "include/TStreamerElement.h"; } static int ImplFileLine(); static const char *ImplFileName(); static int DeclFileLine() { return 241; } }; class TStreamerObjectPointer : public TStreamerElement { public: TStreamerObjectPointer(); TStreamerObjectPointer(const char *name, const char *title, Int_t offset, const char *typeName); virtual ~TStreamerObjectPointer(); const char *GetInclude() const; Int_t GetSize() const; virtual void Init(TObject *obj=0); virtual Bool_t IsaPointer() const {return kTRUE;} virtual void SetArrayDim(Int_t dim); private: static TClass *fgIsA; public: static TClass *Class(); static const char *Class_Name(); static Version_t Class_Version() { return 2; } static void Dictionary(); virtual TClass *IsA() const { return TStreamerObjectPointer::Class(); } virtual void ShowMembers(TMemberInspector &insp, char *parent); virtual void Streamer(TBuffer &b); void StreamerNVirtual(TBuffer &b) { TStreamerObjectPointer::Streamer(b); } static const char *DeclFileName() { return "include/TStreamerElement.h"; } static int ImplFileLine(); static const char *ImplFileName(); static int DeclFileLine() { return 258; } }; class TStreamerObjectAnyPointer : public TStreamerElement { public: TStreamerObjectAnyPointer(); TStreamerObjectAnyPointer(const char *name, const char *title, Int_t offset, const char *typeName); virtual ~TStreamerObjectAnyPointer(); const char *GetInclude() const; Int_t GetSize() const; virtual void Init(TObject *obj=0); virtual Bool_t IsaPointer() const {return kTRUE;} virtual void SetArrayDim(Int_t dim); private: static TClass *fgIsA; public: static TClass *Class(); static const char *Class_Name(); static Version_t Class_Version() { return 1; } static void Dictionary(); virtual TClass *IsA() const { return TStreamerObjectAnyPointer::Class(); } virtual void ShowMembers(TMemberInspector &insp, char *parent); virtual void Streamer(TBuffer &b); void StreamerNVirtual(TBuffer &b) { TStreamerObjectAnyPointer::Streamer(b); } static const char *DeclFileName() { return "include/TStreamerElement.h"; } static int ImplFileLine(); static const char *ImplFileName(); static int DeclFileLine() { return 275; } }; class TStreamerString : public TStreamerElement { public: TStreamerString(); TStreamerString(const char *name, const char *title, Int_t offset); virtual ~TStreamerString(); Int_t GetSize() const; private: static TClass *fgIsA; public: static TClass *Class(); static const char *Class_Name(); static Version_t Class_Version() { return 2; } static void Dictionary(); virtual TClass *IsA() const { return TStreamerString::Class(); } virtual void ShowMembers(TMemberInspector &insp, char *parent); virtual void Streamer(TBuffer &b); void StreamerNVirtual(TBuffer &b) { TStreamerString::Streamer(b); } static const char *DeclFileName() { return "include/TStreamerElement.h"; } static int ImplFileLine(); static const char *ImplFileName(); static int DeclFileLine() { return 288; } }; class TStreamerSTL : public TStreamerElement { protected: Int_t fSTLtype; Int_t fCtype; public: TStreamerSTL(); TStreamerSTL(const char *name, const char *title, Int_t offset, const char *typeName, const char *trueType, Bool_t dmPointer); virtual ~TStreamerSTL(); Bool_t CannotSplit() const; Bool_t IsaPointer() const; Bool_t IsBase() const; Int_t GetSTLtype() const {return fSTLtype;} Int_t GetCtype() const {return fCtype;} const char *GetInclude() const; Int_t GetSize() const; virtual void ls(Option_t *option="") const; void SetSTLtype(Int_t t) {fSTLtype = t;} void SetCtype(Int_t t) {fCtype = t;} virtual void SetStreamer(TMemberStreamer *streamer); private: static TClass *fgIsA; public: static TClass *Class(); static const char *Class_Name(); static Version_t Class_Version() { return 3; } static void Dictionary(); virtual TClass *IsA() const { return TStreamerSTL::Class(); } virtual void ShowMembers(TMemberInspector &insp, char *parent); virtual void Streamer(TBuffer &b); void StreamerNVirtual(TBuffer &b) { TStreamerSTL::Streamer(b); } static const char *DeclFileName() { return "include/TStreamerElement.h"; } static int ImplFileLine(); static const char *ImplFileName(); static int DeclFileLine() { return 316; } }; class TStreamerSTLstring : public TStreamerSTL { public: TStreamerSTLstring(); TStreamerSTLstring(const char *name, const char *title, Int_t offset, const char *typeName, Bool_t dmPointer); virtual ~TStreamerSTLstring(); const char *GetInclude() const; Int_t GetSize() const; private: static TClass *fgIsA; public: static TClass *Class(); static const char *Class_Name(); static Version_t Class_Version() { return 2; } static void Dictionary(); virtual TClass *IsA() const { return TStreamerSTLstring::Class(); } virtual void ShowMembers(TMemberInspector &insp, char *parent); virtual void Streamer(TBuffer &b); void StreamerNVirtual(TBuffer &b) { TStreamerSTLstring::Streamer(b); } static const char *DeclFileName() { return "include/TStreamerElement.h"; } static int ImplFileLine(); static const char *ImplFileName(); static int DeclFileLine() { return 331; } }; # 55 "meta/src/TClass.cxx" 2 # 1 "include/TVirtualStreamerInfo.h" 1 # 28 "include/TVirtualStreamerInfo.h" class TFile; class TClass; class TObjArray; class TStreamerElement; class TStreamerBasicType; class TVirtualCollectionProxy; class TClassStreamer; class ROOT::TCollectionProxyInfo; class TVirtualStreamerInfo : public TNamed { protected: static Bool_t fgCanDelete; static Bool_t fgOptimize; static Bool_t fgStreamMemberWise; static TVirtualStreamerInfo *fgInfoFactory; TVirtualStreamerInfo(const TVirtualStreamerInfo& info); TVirtualStreamerInfo& operator=(const TVirtualStreamerInfo&); public: enum { kCannotOptimize = (1 << (12)), kIgnoreTObjectStreamer = (1 << (13)), kRecovered = (1 << (14)), kNeedCheck = (1 << (15)) }; enum EReadWrite { kBase = 0, kOffsetL = 20, kOffsetP = 40, kCounter = 6, kCharStar = 7, kChar = 1, kShort = 2, kInt = 3, kLong = 4, kFloat = 5, kDouble = 8, kDouble32= 9, kUChar = 11, kUShort = 12, kUInt = 13, kULong = 14, kBits = 15, kLong64 = 16, kULong64 = 17, kBool = 18, kObject = 61, kAny = 62, kObjectp = 63, kObjectP = 64, kTString = 65, kTObject = 66, kTNamed = 67, kAnyp = 68, kAnyP = 69, kAnyPnoVT = 70, kSTLp = 71, kSkip = 100, kSkipL = 120, kSkipP = 140, kConv = 200, kConvL = 220, kConvP = 240, kSTL = 300, kSTLstring = 365, kStreamer = 500, kStreamLoop = 501, kMissing = 99999 }; # 94 "include/TVirtualStreamerInfo.h" TVirtualStreamerInfo(); TVirtualStreamerInfo(TClass * ); virtual ~TVirtualStreamerInfo(); virtual void Build() = 0; virtual void BuildCheck() = 0; virtual void BuildEmulated(TFile *file) = 0; virtual void BuildOld() = 0; virtual void Clear(Option_t *) = 0; virtual void Compile() = 0; virtual void ForceWriteInfo(TFile *file, Bool_t force=kFALSE) = 0; virtual Int_t GenerateHeaderFile(const char *dirname) = 0; virtual TClass *GetClass() const = 0; virtual UInt_t GetCheckSum() const = 0; virtual Int_t GetClassVersion() const = 0; virtual ULong_t *GetElems() const = 0; virtual TObjArray *GetElements() const = 0; virtual Int_t GetOffset(const char *) const = 0; virtual Int_t *GetOffsets() const = 0; virtual Version_t GetOldVersion() const = 0; virtual Int_t GetNumber() const = 0; virtual Int_t GetSize() const = 0; virtual TStreamerElement *GetStreamerElement(const char*datamember, Int_t& offset) const = 0; virtual Bool_t IsBuilt() const = 0; virtual Bool_t IsOptimized() const = 0; virtual Int_t IsRecovered() const {return TestBit(kRecovered);} virtual void ls(Option_t *option="") const = 0; virtual TVirtualStreamerInfo *NewInfo(TClass *cl) = 0; virtual void *New(void *obj = 0) = 0; virtual void *NewArray(Long_t nElements, void* ary = 0) = 0; virtual void Destructor(void* p, Bool_t dtorOnly = kFALSE) = 0; virtual void DeleteArray(void* p, Bool_t dtorOnly = kFALSE) = 0; virtual void SetCheckSum(UInt_t checksum) = 0; virtual void SetClass(TClass *cl) = 0; virtual void SetClassVersion(Int_t vers) = 0; static Bool_t SetStreamMemberWise(Bool_t enable = kTRUE); virtual void TagFile(TFile *fFile) = 0; virtual void Update(const TClass *oldClass, TClass *newClass) = 0; static TStreamerBasicType *GetElementCounter(const char *countName, TClass *cl); static Bool_t CanOptimize(); static Bool_t GetStreamMemberWise(); static void Optimize(Bool_t opt=kTRUE); static Bool_t CanDelete(); static void SetCanDelete(Bool_t opt=kTRUE); static void SetFactory(TVirtualStreamerInfo *factory); virtual TVirtualCollectionProxy *GenEmulatedProxy(const char* class_name) = 0; virtual TClassStreamer *GenEmulatedClassStreamer(const char* class_name) = 0; virtual TVirtualCollectionProxy *GenExplicitProxy( const ::ROOT::TCollectionProxyInfo &info, TClass *cl ) = 0; virtual TClassStreamer *GenExplicitClassStreamer( const ::ROOT::TCollectionProxyInfo &info, TClass *cl ) = 0; static TVirtualStreamerInfo *Factory(TClass *cl); private: static TClass *fgIsA; public: static TClass *Class(); static const char *Class_Name(); static Version_t Class_Version() { return 5; } static void Dictionary(); virtual TClass *IsA() const { return TVirtualStreamerInfo::Class(); } virtual void ShowMembers(TMemberInspector &insp, char *parent); virtual void Streamer(TBuffer &b); void StreamerNVirtual(TBuffer &b) { TVirtualStreamerInfo::Streamer(b); } static const char *DeclFileName() { return "include/TVirtualStreamerInfo.h"; } static int ImplFileLine(); static const char *ImplFileName(); static int DeclFileLine() { return 149; } }; # 56 "meta/src/TClass.cxx" 2 # 1 "include/TVirtualCollectionProxy.h" 1 # 28 "include/TVirtualCollectionProxy.h" class TClass; class TVirtualCollectionProxy { protected: TClassRef fClass; virtual void SetValueClass(TClass *newcl) = 0; friend class TClass; public: class TPushPop { public: TVirtualCollectionProxy *fProxy; __inline__ TPushPop(TVirtualCollectionProxy *proxy, void *objectstart) : fProxy(proxy) { fProxy->PushProxy(objectstart); } __inline__ ~TPushPop() { fProxy->PopProxy(); } }; TVirtualCollectionProxy() : fClass() {}; TVirtualCollectionProxy(TClass *cl) : fClass(cl) {}; virtual TVirtualCollectionProxy* Generate() const = 0; virtual ~TVirtualCollectionProxy() {}; virtual TClass *GetCollectionClass() { return fClass; } virtual void *New() const { return fClass.GetClass()==0 ? 0 : fClass->New(); } virtual void *New(void *arena) const { return fClass.GetClass()==0 ? 0 : fClass->New(arena); } virtual void *NewArray(Int_t nElements) const { return fClass.GetClass()==0 ? 0 : fClass->NewArray(nElements); } virtual void *NewArray(Int_t nElements, void *arena) const { return fClass.GetClass()==0 ? 0 : fClass->NewArray(nElements, arena); } virtual void Destructor(void *p, Bool_t dtorOnly = kFALSE) { TClass* cl = fClass.GetClass(); if (cl) cl->Destructor(p, dtorOnly); } virtual void DeleteArray(void *p, Bool_t dtorOnly = kFALSE) { TClass* cl = fClass.GetClass(); if (cl) cl->DeleteArray(p, dtorOnly); } virtual UInt_t Sizeof() const = 0; virtual void PushProxy(void *objectstart) = 0; virtual void PopProxy() = 0; virtual Bool_t HasPointers() const = 0; virtual TClass *GetValueClass() = 0; virtual EDataType GetType() = 0; virtual void *At(UInt_t idx) = 0; virtual void Clear(const char *opt = "") = 0; virtual UInt_t Size() const = 0; virtual void* Allocate(UInt_t n, Bool_t forceDelete) = 0; virtual void Commit(void*) = 0; char *operator[](UInt_t idx) const { return (char*)(const_cast(this))->At(idx); } }; # 57 "meta/src/TClass.cxx" 2 # 1 "include/TVirtualIsAProxy.h" 1 # 22 "include/TVirtualIsAProxy.h" class TVirtualIsAProxy { public: virtual ~TVirtualIsAProxy() { } virtual void SetClass(TClass *cl) = 0; virtual TClass* operator()(const void *obj) = 0; }; # 58 "meta/src/TClass.cxx" 2 # 1 "include/TVirtualRefProxy.h" 1 # 20 "include/TVirtualRefProxy.h" class TClass; class TFormLeafInfoReference; # 83 "include/TVirtualRefProxy.h" class TVirtualRefProxy { public: virtual ~TVirtualRefProxy() {}; virtual void Release() = 0; virtual TVirtualRefProxy* Clone() const = 0; virtual void SetClass(TClass *classptr) = 0; virtual TClass * GetClass() const = 0; virtual TClass* GetValueClass(void* data) const = 0; virtual Bool_t Update() = 0; virtual Bool_t HasCounter() const = 0; # 126 "include/TVirtualRefProxy.h" virtual Int_t GetCounterValue(TFormLeafInfoReference* info, void *data) = 0; # 136 "include/TVirtualRefProxy.h" virtual void* GetPreparedReference(void* data) = 0; # 146 "include/TVirtualRefProxy.h" virtual void* GetObject(TFormLeafInfoReference* info, void* data, int instance) = 0; }; # 59 "meta/src/TClass.cxx" 2 # 1 "include/TVirtualMutex.h" 1 # 29 "include/TVirtualMutex.h" class TVirtualMutex; extern TVirtualMutex *gGlobalMutex; class TVirtualMutex : public TObject { public: TVirtualMutex(Bool_t = kFALSE) { } virtual ~TVirtualMutex() { } virtual Int_t Lock() = 0; virtual Int_t TryLock() = 0; virtual Int_t UnLock() = 0; virtual Int_t CleanUp() = 0; Int_t Acquire() { return Lock(); } Int_t Release() { return UnLock(); } virtual TVirtualMutex *Factory(Bool_t = kFALSE) = 0; private: static TClass *fgIsA; public: static TClass *Class(); static const char *Class_Name(); static Version_t Class_Version() { return 0; } static void Dictionary(); virtual TClass *IsA() const { return TVirtualMutex::Class(); } virtual void ShowMembers(TMemberInspector &insp, char *parent); virtual void Streamer(TBuffer &b); void StreamerNVirtual(TBuffer &b) { TVirtualMutex::Streamer(b); } static const char *DeclFileName() { return "include/TVirtualMutex.h"; } static int ImplFileLine(); static const char *ImplFileName(); static int DeclFileLine() { return 49; } }; # 69 "include/TVirtualMutex.h" class TLockGuard { private: TVirtualMutex *fMutex; TLockGuard(const TLockGuard&); TLockGuard& operator=(const TLockGuard&); public: TLockGuard(TVirtualMutex *mutex) : fMutex(mutex) { if (fMutex) fMutex->Lock(); } virtual ~TLockGuard() { if (fMutex) fMutex->UnLock(); } private: static TClass *fgIsA; public: static TClass *Class(); static const char *Class_Name(); static Version_t Class_Version() { return 0; } static void Dictionary(); virtual TClass *IsA() const { return TLockGuard::Class(); } virtual void ShowMembers(TMemberInspector &insp, char *parent); virtual void Streamer(TBuffer &b); void StreamerNVirtual(TBuffer &b) { TLockGuard::Streamer(b); } static const char *DeclFileName() { return "include/TVirtualMutex.h"; } static int ImplFileLine(); static const char *ImplFileName(); static int DeclFileLine() { return 82; } }; # 60 "meta/src/TClass.cxx" 2 # 1 "include/TVirtualPad.h" 1 # 26 "include/TVirtualPad.h" # 1 "include/TAttPad.h" 1 # 29 "include/TAttPad.h" class TAttPad { protected: Float_t fLeftMargin; Float_t fRightMargin; Float_t fBottomMargin; Float_t fTopMargin; Float_t fXfile; Float_t fYfile; Float_t fAfile; Float_t fXstat; Float_t fYstat; Float_t fAstat; Color_t fFrameFillColor; Color_t fFrameLineColor; Style_t fFrameFillStyle; Style_t fFrameLineStyle; Width_t fFrameLineWidth; Width_t fFrameBorderSize; Int_t fFrameBorderMode; public: TAttPad(); virtual ~TAttPad(); virtual void Copy(TAttPad &attpad) const; Float_t GetBottomMargin() const { return fBottomMargin;} Float_t GetLeftMargin() const { return fLeftMargin;} Float_t GetRightMargin() const { return fRightMargin;} Float_t GetTopMargin() const { return fTopMargin;} Float_t GetAfile() const { return fAfile;} Float_t GetXfile() const { return fXfile;} Float_t GetYfile() const { return fYfile;} Float_t GetAstat() const { return fAstat;} Float_t GetXstat() const { return fXstat;} Float_t GetYstat() const { return fYstat;} Color_t GetFrameFillColor() const {return fFrameFillColor;} Color_t GetFrameLineColor() const {return fFrameLineColor;} Style_t GetFrameFillStyle() const {return fFrameFillStyle;} Style_t GetFrameLineStyle() const {return fFrameLineStyle;} Width_t GetFrameLineWidth() const {return fFrameLineWidth;} Width_t GetFrameBorderSize() const {return fFrameBorderSize;} Int_t GetFrameBorderMode() const {return fFrameBorderMode;} virtual void Print(Option_t *option="") const; virtual void ResetAttPad(Option_t *option=""); virtual void SetBottomMargin(Float_t bottommargin); virtual void SetLeftMargin(Float_t leftmargin); virtual void SetRightMargin(Float_t rightmargin); virtual void SetTopMargin(Float_t topmargin); virtual void SetAfile(Float_t afile) { fAfile=afile;} virtual void SetXfile(Float_t xfile) { fXfile=xfile;} virtual void SetYfile(Float_t yfile) { fYfile=yfile;} virtual void SetAstat(Float_t astat) { fAstat=astat;} virtual void SetXstat(Float_t xstat) { fXstat=xstat;} virtual void SetYstat(Float_t ystat) { fYstat=ystat;} void SetFrameFillColor(Color_t color=1) {fFrameFillColor = color;} void SetFrameLineColor(Color_t color=1) {fFrameLineColor = color;} void SetFrameFillStyle(Style_t styl=0) {fFrameFillStyle = styl;} void SetFrameLineStyle(Style_t styl=0) {fFrameLineStyle = styl;} void SetFrameLineWidth(Width_t width=1) {fFrameLineWidth = width;} void SetFrameBorderSize(Width_t size=1) {fFrameBorderSize = size;} void SetFrameBorderMode(Int_t mode=1) {fFrameBorderMode = mode;} private: static TClass *fgIsA; public: static TClass *Class(); static const char *Class_Name(); static Version_t Class_Version() { return 3; } static void Dictionary(); virtual TClass *IsA() const { return TAttPad::Class(); } virtual void ShowMembers(TMemberInspector &insp, char *parent); virtual void Streamer(TBuffer &b); void StreamerNVirtual(TBuffer &b) { TAttPad::Streamer(b); } static const char *DeclFileName() { return "include/TAttPad.h"; } static int ImplFileLine(); static const char *ImplFileName(); static int DeclFileLine() { return 90; }; }; # 27 "include/TVirtualPad.h" 2 # 1 "include/TVirtualX.h" 1 # 31 "include/TVirtualX.h" # 1 "include/TAttLine.h" 1 # 32 "include/TAttLine.h" class TAttLine { protected: Color_t fLineColor; Style_t fLineStyle; Width_t fLineWidth; public: TAttLine(); TAttLine(Color_t lcolor,Style_t lstyle, Width_t lwidth); virtual ~TAttLine(); void Copy(TAttLine &attline) const; Int_t DistancetoLine(Int_t px, Int_t py, Double_t xp1, Double_t yp1, Double_t xp2, Double_t yp2 ); virtual Color_t GetLineColor() const {return fLineColor;} virtual Style_t GetLineStyle() const {return fLineStyle;} virtual Width_t GetLineWidth() const {return fLineWidth;} virtual void Modify(); virtual void ResetAttLine(Option_t *option=""); virtual void SaveLineAttributes(ostream &out, const char *name, Int_t coldef=1, Int_t stydef=1, Int_t widdef=1); virtual void SetLineAttributes(); virtual void SetLineColor(Color_t lcolor) { fLineColor = lcolor;} virtual void SetLineStyle(Style_t lstyle) { fLineStyle = lstyle;} virtual void SetLineWidth(Width_t lwidth) { fLineWidth = lwidth;} private: static TClass *fgIsA; public: static TClass *Class(); static const char *Class_Name(); static Version_t Class_Version() { return 1; } static void Dictionary(); virtual TClass *IsA() const { return TAttLine::Class(); } virtual void ShowMembers(TMemberInspector &insp, char *parent); virtual void Streamer(TBuffer &b); void StreamerNVirtual(TBuffer &b) { TAttLine::Streamer(b); } static const char *DeclFileName() { return "include/TAttLine.h"; } static int ImplFileLine(); static const char *ImplFileName(); static int DeclFileLine() { return 58; }; }; enum ELineStyle { kSolid = 1, kDashed, kDotted, kDashDotted }; # 32 "include/TVirtualX.h" 2 # 1 "include/TAttFill.h" 1 # 32 "include/TAttFill.h" class TAttFill { protected: Color_t fFillColor; Style_t fFillStyle; public: TAttFill(); TAttFill(Color_t fcolor,Style_t fstyle); virtual ~TAttFill(); void Copy(TAttFill &attfill) const; virtual Color_t GetFillColor() const { return fFillColor; } virtual Style_t GetFillStyle() const { return fFillStyle; } virtual Bool_t IsTransparent() const; virtual void Modify(); virtual void ResetAttFill(Option_t *option=""); virtual void SaveFillAttributes(ostream &out, const char *name, Int_t coldef=1, Int_t stydef=1001); virtual void SetFillAttributes(); virtual void SetFillColor(Color_t fcolor) { fFillColor = fcolor; } virtual void SetFillStyle(Style_t fstyle) { fFillStyle = fstyle; } private: static TClass *fgIsA; public: static TClass *Class(); static const char *Class_Name(); static Version_t Class_Version() { return 1; } static void Dictionary(); virtual TClass *IsA() const { return TAttFill::Class(); } virtual void ShowMembers(TMemberInspector &insp, char *parent); virtual void Streamer(TBuffer &b); void StreamerNVirtual(TBuffer &b) { TAttFill::Streamer(b); } static const char *DeclFileName() { return "include/TAttFill.h"; } static int ImplFileLine(); static const char *ImplFileName(); static int DeclFileLine() { return 53; } }; __inline__ Bool_t TAttFill::IsTransparent() const { return fFillStyle >= 4000 && fFillStyle <= 4100 ? kTRUE : kFALSE; } # 35 "include/TVirtualX.h" 2 # 1 "include/TAttText.h" 1 # 32 "include/TAttText.h" class TAttText { protected: Float_t fTextAngle; Float_t fTextSize; Short_t fTextAlign; Color_t fTextColor; Font_t fTextFont; public: TAttText(); TAttText(Int_t align, Float_t angle, Color_t color, Style_t font, Float_t tsize); virtual ~TAttText(); void Copy(TAttText &atttext) const; virtual Short_t GetTextAlign() const {return fTextAlign;} virtual Float_t GetTextAngle() const {return fTextAngle;} virtual Color_t GetTextColor() const {return fTextColor;} virtual Font_t GetTextFont() const {return fTextFont;} virtual Float_t GetTextSize() const {return fTextSize;} virtual void Modify(); virtual void ResetAttText(Option_t *toption=""); virtual void SaveTextAttributes(ostream &out, const char *name, Int_t alidef=12, Float_t angdef=0, Int_t coldef=1, Int_t fondef=61, Float_t sizdef=1); virtual void SetTextAttributes(); virtual void SetTextAlign(Short_t align=11) { fTextAlign = align;} virtual void SetTextAngle(Float_t tangle=0) { fTextAngle = tangle;} virtual void SetTextColor(Color_t tcolor=1) { fTextColor = tcolor;} virtual void SetTextFont(Font_t tfont=62) { fTextFont = tfont;} virtual void SetTextSize(Float_t tsize=1) { fTextSize = tsize;} virtual void SetTextSizePixels(Int_t npixels); private: static TClass *fgIsA; public: static TClass *Class(); static const char *Class_Name(); static Version_t Class_Version() { return 1; } static void Dictionary(); virtual TClass *IsA() const { return TAttText::Class(); } virtual void ShowMembers(TMemberInspector &insp, char *parent); virtual void Streamer(TBuffer &b); void StreamerNVirtual(TBuffer &b) { TAttText::Streamer(b); } static const char *DeclFileName() { return "include/TAttText.h"; } static int ImplFileLine(); static const char *ImplFileName(); static int DeclFileLine() { return 62; } }; # 38 "include/TVirtualX.h" 2 # 1 "include/TAttMarker.h" 1 # 32 "include/TAttMarker.h" class TAttMarker { protected: Color_t fMarkerColor; Style_t fMarkerStyle; Size_t fMarkerSize; public: TAttMarker(); TAttMarker(Color_t color, Style_t style, Size_t msize); virtual ~TAttMarker(); void Copy(TAttMarker &attmarker) const; virtual Color_t GetMarkerColor() const {return fMarkerColor;} virtual Style_t GetMarkerStyle() const {return fMarkerStyle;} virtual Size_t GetMarkerSize() const {return fMarkerSize;} virtual void Modify(); virtual void ResetAttMarker(Option_t *toption=""); virtual void SaveMarkerAttributes(ostream &out, const char *name, Int_t coldef=1, Int_t stydef=1, Int_t sizdef=1); virtual void SetMarkerAttributes(); virtual void SetMarkerColor(Color_t tcolor=1) { fMarkerColor = tcolor;} virtual void SetMarkerStyle(Style_t mstyle=1) { fMarkerStyle = mstyle;} virtual void SetMarkerSize(Size_t msize=1) { fMarkerSize = msize;} private: static TClass *fgIsA; public: static TClass *Class(); static const char *Class_Name(); static Version_t Class_Version() { return 1; } static void Dictionary(); virtual TClass *IsA() const { return TAttMarker::Class(); } virtual void ShowMembers(TMemberInspector &insp, char *parent); virtual void Streamer(TBuffer &b); void StreamerNVirtual(TBuffer &b) { TAttMarker::Streamer(b); } static const char *DeclFileName() { return "include/TAttMarker.h"; } static int ImplFileLine(); static const char *ImplFileName(); static int DeclFileLine() { return 55; }; }; enum EMarkerStyle {kDot=1, kPlus, kStar, kCircle=4, kMultiply=5, kFullDotSmall=6, kFullDotMedium=7, kFullDotLarge=8, kFullCircle=20, kFullSquare=21, kFullTriangleUp=22, kFullTriangleDown=23, kOpenCircle=24, kOpenSquare=25, kOpenTriangleUp=26, kOpenDiamond=27, kOpenCross=28, kFullStar=29, kOpenStar=30}; # 41 "include/TVirtualX.h" 2 # 1 "include/GuiTypes.h" 1 # 28 "include/GuiTypes.h" typedef ULong_t Handle_t; typedef Handle_t Display_t; typedef Handle_t Visual_t; typedef Handle_t Window_t; typedef Handle_t Pixmap_t; typedef Handle_t Drawable_t; typedef Handle_t Region_t; typedef Handle_t Colormap_t; typedef Handle_t Cursor_t; typedef Handle_t FontH_t; typedef Handle_t KeySym_t; typedef Handle_t Atom_t; typedef Handle_t GContext_t; typedef Handle_t FontStruct_t; typedef ULong_t Pixel_t; typedef UInt_t Mask_t; typedef ULong_t Time_t; enum EGuiConstants { kNotUseful = 0, kWhenMapped = 1, kAlways = 2, kIsUnmapped = 0, kIsUnviewable = 1, kIsViewable = 2, kInputOutput = 1, kInputOnly = 2, kLineSolid = 0, kLineOnOffDash = 1, kLineDoubleDash = 2, kCapNotLast = 0, kCapButt = 1, kCapRound = 2, kCapProjecting = 3, kJoinMiter = 0, kJoinRound = 1, kJoinBevel = 2, kFillSolid = 0, kFillTiled = 1, kFillStippled = 2, kFillOpaqueStippled = 3, kEvenOddRule = 0, kWindingRule = 1, kClipByChildren = 0, kIncludeInferiors = 1, kArcChord = 0, kArcPieSlice = 1 }; enum EGEventType { kGKeyPress, kKeyRelease, kButtonPress, kButtonRelease, kMotionNotify, kEnterNotify, kLeaveNotify, kFocusIn, kFocusOut, kExpose, kConfigureNotify, kMapNotify, kUnmapNotify, kDestroyNotify, kClientMessage, kSelectionClear, kSelectionRequest, kSelectionNotify, kColormapNotify, kButtonDoubleClick, kOtherEvent }; enum EGraphicsFunction { kGXclear = 0, kGXand, kGXandReverse, kGXcopy, kGXandInverted, kGXnoop, kGXxor, kGXor, kGXnor, kGXequiv, kGXinvert, kGXorReverse, kGXcopyInverted, kGXorInverted, kGXnand, kGXset }; enum { kDefaultScrollBarWidth = 16 }; const Handle_t kNone = 0; const Handle_t kCopyFromParent = 0; const Handle_t kParentRelative = 1; struct SetWindowAttributes_t { Pixmap_t fBackgroundPixmap; ULong_t fBackgroundPixel; Pixmap_t fBorderPixmap; ULong_t fBorderPixel; UInt_t fBorderWidth; Int_t fBitGravity; Int_t fWinGravity; Int_t fBackingStore; ULong_t fBackingPlanes; ULong_t fBackingPixel; Bool_t fSaveUnder; Long_t fEventMask; Long_t fDoNotPropagateMask; Bool_t fOverrideRedirect; Colormap_t fColormap; Cursor_t fCursor; Mask_t fMask; }; struct WindowAttributes_t { Int_t fX, fY; Int_t fWidth, fHeight; Int_t fBorderWidth; Int_t fDepth; void *fVisual; Window_t fRoot; Int_t fClass; Int_t fBitGravity; Int_t fWinGravity; Int_t fBackingStore; ULong_t fBackingPlanes; ULong_t fBackingPixel; Bool_t fSaveUnder; Colormap_t fColormap; Bool_t fMapInstalled; Int_t fMapState; Long_t fAllEventMasks; Long_t fYourEventMask; Long_t fDoNotPropagateMask; Bool_t fOverrideRedirect; void *fScreen; }; const Mask_t kWABackPixmap = (1 << (0)); const Mask_t kWABackPixel = (1 << (1)); const Mask_t kWABorderPixmap = (1 << (2)); const Mask_t kWABorderPixel = (1 << (3)); const Mask_t kWABorderWidth = (1 << (4)); const Mask_t kWABitGravity = (1 << (5)); const Mask_t kWAWinGravity = (1 << (6)); const Mask_t kWABackingStore = (1 << (7)); const Mask_t kWABackingPlanes = (1 << (8)); const Mask_t kWABackingPixel = (1 << (9)); const Mask_t kWAOverrideRedirect = (1 << (10)); const Mask_t kWASaveUnder = (1 << (11)); const Mask_t kWAEventMask = (1 << (12)); const Mask_t kWADontPropagate = (1 << (13)); const Mask_t kWAColormap = (1 << (14)); const Mask_t kWACursor = (1 << (15)); const Mask_t kNoEventMask = 0; const Mask_t kKeyPressMask = (1 << (0)); const Mask_t kKeyReleaseMask = (1 << (1)); const Mask_t kButtonPressMask = (1 << (2)); const Mask_t kButtonReleaseMask = (1 << (3)); const Mask_t kPointerMotionMask = (1 << (4)); const Mask_t kButtonMotionMask = (1 << (5)); const Mask_t kExposureMask = (1 << (6)); const Mask_t kStructureNotifyMask = (1 << (7)); const Mask_t kEnterWindowMask = (1 << (8)); const Mask_t kLeaveWindowMask = (1 << (9)); const Mask_t kFocusChangeMask = (1 << (10)); const Mask_t kOwnerGrabButtonMask = (1 << (11)); const Mask_t kColormapChangeMask = (1 << (12)); struct Event_t { EGEventType fType; Window_t fWindow; Time_t fTime; Int_t fX, fY; Int_t fXRoot, fYRoot; UInt_t fCode; UInt_t fState; UInt_t fWidth, fHeight; Int_t fCount; Bool_t fSendEvent; Handle_t fHandle; Int_t fFormat; Long_t fUser[5]; }; const Mask_t kKeyShiftMask = (1 << (0)); const Mask_t kKeyLockMask = (1 << (1)); const Mask_t kKeyControlMask = (1 << (2)); const Mask_t kKeyMod1Mask = (1 << (3)); const Mask_t kKeyMod2Mask = (1 << (4)); const Mask_t kButton1Mask = (1 << (8)); const Mask_t kButton2Mask = (1 << (9)); const Mask_t kButton3Mask = (1 << (10)); const Mask_t kButton4Mask = (1 << (11)); const Mask_t kButton5Mask = (1 << (12)); const Mask_t kAnyModifier = (1 << (15)); enum EMouseButton { kAnyButton, kButton1, kButton2, kButton3, kButton4, kButton5 }; enum EXMagic { kNotifyNormal = 0, kNotifyGrab = 1, kNotifyUngrab = 2, kNotifyPointer = 5, kColormapUninstalled = 0, kColormapInstalled = 1 }; struct GCValues_t { EGraphicsFunction fFunction; ULong_t fPlaneMask; ULong_t fForeground; ULong_t fBackground; Int_t fLineWidth; Int_t fLineStyle; Int_t fCapStyle; Int_t fJoinStyle; Int_t fFillStyle; Int_t fFillRule; Int_t fArcMode; Pixmap_t fTile; Pixmap_t fStipple; Int_t fTsXOrigin; Int_t fTsYOrigin; FontH_t fFont; Int_t fSubwindowMode; Bool_t fGraphicsExposures; Int_t fClipXOrigin; Int_t fClipYOrigin; Pixmap_t fClipMask; Int_t fDashOffset; Char_t fDashes[8]; Int_t fDashLen; Mask_t fMask; GCValues_t() : fFunction (kGXcopy), fPlaneMask (0), fForeground (0), fBackground (1), fLineWidth (0), fLineStyle (kLineSolid), fCapStyle (kCapButt), fJoinStyle (kJoinMiter), fFillStyle (kFillSolid), fFillRule (kEvenOddRule), fArcMode (kArcPieSlice), fTile (0), fStipple (0), fTsXOrigin (0), fTsYOrigin (0), fFont (0), fSubwindowMode (kClipByChildren), fGraphicsExposures (kTRUE), fClipXOrigin (0), fClipYOrigin (0), fClipMask (0), fDashOffset (0), fDashLen (2), fMask (0) { for (int i = 2; i < 8; i++) fDashes[i] = 0; fDashes[0] = 5; fDashes[1] = 5; } }; const Mask_t kGCFunction = (1 << (0)); const Mask_t kGCPlaneMask = (1 << (1)); const Mask_t kGCForeground = (1 << (2)); const Mask_t kGCBackground = (1 << (3)); const Mask_t kGCLineWidth = (1 << (4)); const Mask_t kGCLineStyle = (1 << (5)); const Mask_t kGCCapStyle = (1 << (6)); const Mask_t kGCJoinStyle = (1 << (7)); const Mask_t kGCFillStyle = (1 << (8)); const Mask_t kGCFillRule = (1 << (9)); const Mask_t kGCTile = (1 << (10)); const Mask_t kGCStipple = (1 << (11)); const Mask_t kGCTileStipXOrigin = (1 << (12)); const Mask_t kGCTileStipYOrigin = (1 << (13)); const Mask_t kGCFont = (1 << (14)); const Mask_t kGCSubwindowMode = (1 << (15)); const Mask_t kGCGraphicsExposures = (1 << (16)); const Mask_t kGCClipXOrigin = (1 << (17)); const Mask_t kGCClipYOrigin = (1 << (18)); const Mask_t kGCClipMask = (1 << (19)); const Mask_t kGCDashOffset = (1 << (20)); const Mask_t kGCDashList = (1 << (21)); const Mask_t kGCArcMode = (1 << (22)); struct ColorStruct_t { ULong_t fPixel; UShort_t fRed; UShort_t fGreen; UShort_t fBlue; UShort_t fMask; }; const Mask_t kDoRed = (1 << (0)); const Mask_t kDoGreen = (1 << (1)); const Mask_t kDoBlue = (1 << (2)); struct PictureAttributes_t { Colormap_t fColormap; Int_t fDepth; UInt_t fWidth; UInt_t fHeight; UInt_t fXHotspot; UInt_t fYHotspot; ULong_t *fPixels; UInt_t fNpixels; UInt_t fCloseness; Mask_t fMask; }; const Mask_t kPAColormap = (1 << (0)); const Mask_t kPADepth = (1 << (1)); const Mask_t kPASize = (1 << (2)); const Mask_t kPAHotspot = (1 << (3)); const Mask_t kPAReturnPixels = (1 << (4)); const Mask_t kPACloseness = (1 << (5)); enum EInitialState { kNormalState = (1 << (0)), kIconicState = (1 << (1)) }; struct Segment_t { Short_t fX1, fY1, fX2, fY2; }; struct Point_t { Short_t fX, fY; }; struct Rectangle_t { Short_t fX, fY; UShort_t fWidth, fHeight; }; const Atom_t kPrimarySelection = 1; const Atom_t kCutBuffer = 9; const Int_t kMaxPixel = 32000; # 44 "include/TVirtualX.h" 2 extern Atom_t gWM_DELETE_WINDOW; extern Atom_t gMOTIF_WM_HINTS; extern Atom_t gROOT_MESSAGE; const int kNumCursors = 19; enum ECursor { kBottomLeft, kBottomRight, kTopLeft, kTopRight, kBottomSide, kLeftSide, kTopSide, kRightSide, kMove, kCross, kArrowHor, kArrowVer, kHand, kRotate, kPointer, kArrowRight, kCaret, kWatch, kNoDrop }; class TPoint; class TString; class TGWin32Command; extern "C" { struct GLUtesselator; } class TVirtualX : public TNamed, public TAttLine, public TAttFill, public TAttText, public TAttMarker { public: enum EDrawMode { kCopy = 1, kXor, kInvert }; enum EBoxMode { kHollow, kFilled }; enum ETextMode { kClear, kOpaque }; enum ETextSetMode { kCheck, kLoad }; protected: EDrawMode fDrawMode; public: TVirtualX(): fDrawMode() { } TVirtualX(const char *name, const char *title); virtual ~TVirtualX() { } virtual Bool_t Init(void *display=0); virtual void ClearWindow(); virtual void ClosePixmap(); virtual void CloseWindow(); virtual void CopyPixmap(Int_t wid, Int_t xpos, Int_t ypos); virtual void CreateOpenGLContext(Int_t wid=0); virtual void DeleteOpenGLContext(Int_t wid=0); virtual void DrawBox(Int_t x1, Int_t y1, Int_t x2, Int_t y2, EBoxMode mode); virtual void DrawCellArray(Int_t x1, Int_t y1, Int_t x2, Int_t y2, Int_t nx, Int_t ny, Int_t *ic); virtual void DrawFillArea(Int_t n, TPoint *xy); virtual void DrawLine(Int_t x1, Int_t y1, Int_t x2, Int_t y2); virtual void DrawPolyLine(Int_t n, TPoint *xy); virtual void DrawPolyMarker(Int_t n, TPoint *xy); virtual void DrawText(Int_t x, Int_t y, Float_t angle, Float_t mgn, const char *text, ETextMode mode); virtual UInt_t ExecCommand(TGWin32Command *code); virtual void GetCharacterUp(Float_t &chupx, Float_t &chupy); EDrawMode GetDrawMode() { return fDrawMode; } virtual Int_t GetDoubleBuffer(Int_t wid); virtual void GetGeometry(Int_t wid, Int_t &x, Int_t &y, UInt_t &w, UInt_t &h); virtual const char *DisplayName(const char * = 0); virtual Handle_t GetNativeEvent() const; virtual ULong_t GetPixel(Color_t cindex); virtual void GetPlanes(Int_t &nplanes); virtual void GetRGB(Int_t index, Float_t &r, Float_t &g, Float_t &b); virtual void GetTextExtent(UInt_t &w, UInt_t &h, char *mess); virtual Float_t GetTextMagnitude(); virtual Window_t GetWindowID(Int_t wid); virtual Bool_t HasTTFonts() const; virtual Int_t InitWindow(ULong_t window); virtual Int_t AddWindow(ULong_t qwid, UInt_t w, UInt_t h); virtual Int_t AddPixmap(ULong_t pixid, UInt_t w, UInt_t h); virtual void RemoveWindow(ULong_t qwid); virtual void MoveWindow(Int_t wid, Int_t x, Int_t y); virtual Int_t OpenPixmap(UInt_t w, UInt_t h); virtual void QueryPointer(Int_t &ix, Int_t &iy); virtual Pixmap_t ReadGIF(Int_t x0, Int_t y0, const char *file, Window_t id=0); virtual Int_t RequestLocator(Int_t mode, Int_t ctyp, Int_t &x, Int_t &y); virtual Int_t RequestString(Int_t x, Int_t y, char *text); virtual void RescaleWindow(Int_t wid, UInt_t w, UInt_t h); virtual Int_t ResizePixmap(Int_t wid, UInt_t w, UInt_t h); virtual void ResizeWindow(Int_t wid); virtual void SelectWindow(Int_t wid); virtual void SelectPixmap(Int_t qpixid); virtual void SetCharacterUp(Float_t chupx, Float_t chupy); virtual void SetClipOFF(Int_t wid); virtual void SetClipRegion(Int_t wid, Int_t x, Int_t y, UInt_t w, UInt_t h); virtual void SetCursor(Int_t win, ECursor cursor); virtual void SetDoubleBuffer(Int_t wid, Int_t mode); virtual void SetDoubleBufferOFF(); virtual void SetDoubleBufferON(); virtual void SetDrawMode(EDrawMode mode); virtual void SetFillColor(Color_t cindex); virtual void SetFillStyle(Style_t style); virtual void SetLineColor(Color_t cindex); virtual void SetLineType(Int_t n, Int_t *dash); virtual void SetLineStyle(Style_t linestyle); virtual void SetLineWidth(Width_t width); virtual void SetMarkerColor(Color_t cindex); virtual void SetMarkerSize(Float_t markersize); virtual void SetMarkerStyle(Style_t markerstyle); virtual void SetOpacity(Int_t percent); virtual void SetRGB(Int_t cindex, Float_t r, Float_t g, Float_t b); virtual void SetTextAlign(Short_t talign=11); virtual void SetTextColor(Color_t cindex); virtual Int_t SetTextFont(char *fontname, ETextSetMode mode); virtual void SetTextFont(Font_t fontnumber); virtual void SetTextMagnitude(Float_t mgn); virtual void SetTextSize(Float_t textsize); virtual void UpdateWindow(Int_t mode); virtual void Warp(Int_t ix, Int_t iy, Window_t id = 0); virtual Int_t WriteGIF(char *name); virtual void WritePixmap(Int_t wid, UInt_t w, UInt_t h, char *pxname); virtual Window_t GetCurrentWindow() const; virtual void GetWindowAttributes(Window_t id, WindowAttributes_t &attr); virtual void MapWindow(Window_t id); virtual void MapSubwindows(Window_t id); virtual void MapRaised(Window_t id); virtual void UnmapWindow(Window_t id); virtual void DestroyWindow(Window_t id); virtual void DestroySubwindows(Window_t id); virtual void RaiseWindow(Window_t id); virtual void LowerWindow(Window_t id); virtual void MoveWindow(Window_t id, Int_t x, Int_t y); virtual void MoveResizeWindow(Window_t id, Int_t x, Int_t y, UInt_t w, UInt_t h); virtual void ResizeWindow(Window_t id, UInt_t w, UInt_t h); virtual void IconifyWindow(Window_t id); virtual Bool_t NeedRedraw(ULong_t tgwindow, Bool_t force); virtual void ReparentWindow(Window_t id, Window_t pid, Int_t x, Int_t y); virtual void SetWindowBackground(Window_t id, ULong_t color); virtual void SetWindowBackgroundPixmap(Window_t id, Pixmap_t pxm); virtual Window_t CreateWindow(Window_t parent, Int_t x, Int_t y, UInt_t w, UInt_t h, UInt_t border, Int_t depth, UInt_t clss, void *visual, SetWindowAttributes_t *attr, UInt_t wtype); virtual Int_t OpenDisplay(const char *dpyName); virtual void CloseDisplay(); virtual Display_t GetDisplay() const; virtual Visual_t GetVisual() const; virtual Int_t GetScreen() const; virtual Int_t GetDepth() const; virtual UInt_t ScreenWidthMM() const; virtual Colormap_t GetColormap() const; virtual Atom_t InternAtom(const char *atom_name, Bool_t only_if_exist); virtual Window_t GetDefaultRootWindow() const; virtual Window_t GetParent(Window_t id) const; virtual FontStruct_t LoadQueryFont(const char *font_name); virtual FontH_t GetFontHandle(FontStruct_t fs); virtual void DeleteFont(FontStruct_t fs); virtual GContext_t CreateGC(Drawable_t id, GCValues_t *gval); virtual void ChangeGC(GContext_t gc, GCValues_t *gval); virtual void CopyGC(GContext_t org, GContext_t dest, Mask_t mask); virtual void DeleteGC(GContext_t gc); virtual Cursor_t CreateCursor(ECursor cursor); virtual void SetCursor(Window_t id, Cursor_t curid); virtual Pixmap_t CreatePixmap(Drawable_t id, UInt_t w, UInt_t h); virtual Pixmap_t CreatePixmap(Drawable_t id, const char *bitmap, UInt_t width, UInt_t height, ULong_t forecolor, ULong_t backcolor, Int_t depth); virtual Pixmap_t CreateBitmap(Drawable_t id, const char *bitmap, UInt_t width, UInt_t height); virtual void DeletePixmap(Pixmap_t pmap); virtual Bool_t CreatePictureFromFile(Drawable_t id, const char *filename, Pixmap_t &pict, Pixmap_t &pict_mask, PictureAttributes_t &attr); virtual Bool_t CreatePictureFromData(Drawable_t id, char **data, Pixmap_t &pict, Pixmap_t &pict_mask, PictureAttributes_t &attr); virtual Pixmap_t CreatePixmapFromData(unsigned char *bits, UInt_t width, UInt_t height); virtual Bool_t ReadPictureDataFromFile(const char *filename, char ***ret_data); virtual void DeletePictureData(void *data); virtual void SetDashes(GContext_t gc, Int_t offset, const char *dash_list, Int_t n); virtual Bool_t ParseColor(Colormap_t cmap, const char *cname, ColorStruct_t &color); virtual Bool_t AllocColor(Colormap_t cmap, ColorStruct_t &color); virtual void QueryColor(Colormap_t cmap, ColorStruct_t &color); virtual void FreeColor(Colormap_t cmap, ULong_t pixel); virtual Int_t EventsPending(); virtual void NextEvent(Event_t &event); virtual void Bell(Int_t percent); virtual void CopyArea(Drawable_t src, Drawable_t dest, GContext_t gc, Int_t src_x, Int_t src_y, UInt_t width, UInt_t height, Int_t dest_x, Int_t dest_y); virtual void ChangeWindowAttributes(Window_t id, SetWindowAttributes_t *attr); virtual void ChangeProperty(Window_t id, Atom_t property, Atom_t type, UChar_t *data, Int_t len); virtual void DrawLine(Drawable_t id, GContext_t gc, Int_t x1, Int_t y1, Int_t x2, Int_t y2); virtual void ClearArea(Window_t id, Int_t x, Int_t y, UInt_t w, UInt_t h); virtual Bool_t CheckEvent(Window_t id, EGEventType type, Event_t &ev); virtual void SendEvent(Window_t id, Event_t *ev); virtual void WMDeleteNotify(Window_t id); virtual void SetKeyAutoRepeat(Bool_t on = kTRUE); virtual void GrabKey(Window_t id, Int_t keycode, UInt_t modifier, Bool_t grab = kTRUE); virtual void GrabButton(Window_t id, EMouseButton button, UInt_t modifier, UInt_t evmask, Window_t confine, Cursor_t cursor, Bool_t grab = kTRUE); virtual void GrabPointer(Window_t id, UInt_t evmask, Window_t confine, Cursor_t cursor, Bool_t grab = kTRUE, Bool_t owner_events = kTRUE); virtual void SetWindowName(Window_t id, char *name); virtual void SetIconName(Window_t id, char *name); virtual void SetIconPixmap(Window_t id, Pixmap_t pix); virtual void SetClassHints(Window_t id, char *className, char *resourceName); virtual void SetMWMHints(Window_t id, UInt_t value, UInt_t funcs, UInt_t input); virtual void SetWMPosition(Window_t id, Int_t x, Int_t y); virtual void SetWMSize(Window_t id, UInt_t w, UInt_t h); virtual void SetWMSizeHints(Window_t id, UInt_t wmin, UInt_t hmin, UInt_t wmax, UInt_t hmax, UInt_t winc, UInt_t hinc); virtual void SetWMState(Window_t id, EInitialState state); virtual void SetWMTransientHint(Window_t id, Window_t main_id); virtual void DrawString(Drawable_t id, GContext_t gc, Int_t x, Int_t y, const char *s, Int_t len); virtual Int_t TextWidth(FontStruct_t font, const char *s, Int_t len); virtual void GetFontProperties(FontStruct_t font, Int_t &max_ascent, Int_t &max_descent); virtual void GetGCValues(GContext_t gc, GCValues_t &gval); virtual FontStruct_t GetFontStruct(FontH_t fh); virtual void FreeFontStruct(FontStruct_t fs); virtual void ClearWindow(Window_t id); virtual Int_t KeysymToKeycode(UInt_t keysym); virtual void FillRectangle(Drawable_t id, GContext_t gc, Int_t x, Int_t y, UInt_t w, UInt_t h); virtual void DrawRectangle(Drawable_t id, GContext_t gc, Int_t x, Int_t y, UInt_t w, UInt_t h); virtual void DrawSegments(Drawable_t id, GContext_t gc, Segment_t *seg, Int_t nseg); virtual void SelectInput(Window_t id, UInt_t evmask); virtual Window_t GetInputFocus(); virtual void SetInputFocus(Window_t id); virtual Window_t GetPrimarySelectionOwner(); virtual void SetPrimarySelectionOwner(Window_t id); virtual void ConvertPrimarySelection(Window_t id, Atom_t clipboard, Time_t when); virtual void LookupString(Event_t *event, char *buf, Int_t buflen, UInt_t &keysym); virtual void GetPasteBuffer(Window_t id, Atom_t atom, TString &text, Int_t &nchar, Bool_t del); virtual void TranslateCoordinates(Window_t src, Window_t dest, Int_t src_x,Int_t src_y, Int_t &dest_x, Int_t &dest_y, Window_t &child); virtual void GetWindowSize(Drawable_t id, Int_t &x, Int_t &y, UInt_t &w, UInt_t &h); virtual void FillPolygon(Window_t id, GContext_t gc, Point_t *points, Int_t npnt); virtual void QueryPointer(Window_t id, Window_t &rootw, Window_t &childw, Int_t &root_x, Int_t &root_y, Int_t &win_x, Int_t &win_y, UInt_t &mask); virtual void SetForeground(GContext_t gc, ULong_t foreground); virtual void SetClipRectangles(GContext_t gc, Int_t x, Int_t y, Rectangle_t *recs, Int_t n); virtual void Update(Int_t mode = 0); virtual Region_t CreateRegion(); virtual void DestroyRegion(Region_t reg); virtual void UnionRectWithRegion(Rectangle_t *rect, Region_t src, Region_t dest); virtual Region_t PolygonRegion(Point_t *points, Int_t np, Bool_t winding); virtual void UnionRegion(Region_t rega, Region_t regb, Region_t result); virtual void IntersectRegion(Region_t rega, Region_t regb, Region_t result); virtual void SubtractRegion(Region_t rega, Region_t regb, Region_t result); virtual void XorRegion(Region_t rega, Region_t regb, Region_t result); virtual Bool_t EmptyRegion(Region_t reg); virtual Bool_t PointInRegion(Int_t x, Int_t y, Region_t reg); virtual Bool_t EqualRegion(Region_t rega, Region_t regb); virtual void GetRegionBox(Region_t reg, Rectangle_t *rect); virtual char **ListFonts(const char *fontname, Int_t max, Int_t &count); virtual void FreeFontNames(char **fontlist); virtual Drawable_t CreateImage(UInt_t width, UInt_t height); virtual void GetImageSize(Drawable_t id, UInt_t &width, UInt_t &height); virtual void PutPixel(Drawable_t id, Int_t x, Int_t y, ULong_t pixel); virtual void PutImage(Drawable_t id, GContext_t gc, Drawable_t img, Int_t dx, Int_t dy, Int_t x, Int_t y, UInt_t w, UInt_t h); virtual void DeleteImage(Drawable_t img); virtual unsigned char *GetColorBits(Drawable_t wid, Int_t x = 0, Int_t y = 0, UInt_t w = 0, UInt_t h = 0); virtual void ShapeCombineMask(Window_t id, Int_t x, Int_t y, Pixmap_t mask); virtual void DeleteProperty(Window_t, Atom_t&); virtual Int_t GetProperty(Window_t, Atom_t, Long_t, Long_t, Bool_t, Atom_t, Atom_t*, Int_t*, ULong_t*, ULong_t*, unsigned char**); virtual void ChangeActivePointerGrab(Window_t, UInt_t, Cursor_t); virtual void ConvertSelection(Window_t, Atom_t&, Atom_t&, Atom_t&, Time_t&); virtual Bool_t SetSelectionOwner(Window_t, Atom_t&); virtual void ChangeProperties(Window_t id, Atom_t property, Atom_t type, Int_t format, UChar_t *data, Int_t len); virtual void SetDNDAware(Window_t, Atom_t *); virtual void SetTypeList(Window_t win, Atom_t prop, Atom_t *typelist); virtual Window_t FindRWindow(Window_t win, Window_t dragwin, Window_t input, int x, int y, int maxd); virtual Bool_t IsDNDAware(Window_t win, Atom_t *typelist); virtual Bool_t IsCmdThread() const { return kTRUE; } static TVirtualX *&Instance(); private: static TClass *fgIsA; public: static TClass *Class(); static const char *Class_Name(); static Version_t Class_Version() { return 0; } static void Dictionary(); virtual TClass *IsA() const { return TVirtualX::Class(); } virtual void ShowMembers(TMemberInspector &insp, char *parent); virtual void Streamer(TBuffer &b); void StreamerNVirtual(TBuffer &b) { TVirtualX::Streamer(b); } static const char *DeclFileName() { return "include/TVirtualX.h"; } static int ImplFileLine(); static const char *ImplFileName(); static int DeclFileLine() { return 330; } }; extern TVirtualX *(*gPtr2VirtualX)(); extern TVirtualX *gGXBatch; # 31 "include/TVirtualPad.h" 2 # 1 "include/Buttons.h" 1 # 15 "include/Buttons.h" enum EEventType { kNoEvent = 0, kButton1Down = 1, kButton2Down = 2, kButton3Down = 3, kKeyDown = 4, kButton1Up = 11, kButton2Up = 12, kButton3Up = 13, kKeyUp = 14, kButton1Motion = 21, kButton2Motion = 22, kButton3Motion = 23, kKeyPress = 24, kButton1Locate = 41, kButton2Locate = 42, kButton3Locate = 43, kESC = 27, kMouseMotion = 51, kMouseEnter = 52, kMouseLeave = 53, kButton1Double = 61, kButton2Double = 62, kButton3Double = 63 }; enum EEditMode { kPolyLine = 1, kSPolyLine = 2, kPolyGone = 3, kSPolyGone = 4, kBox = 5, kDelete = 6, kPad = 7, kText = 8, kEditor = 9, kExit = 10, kPave = 11, kPaveLabel = 12, kPaveText = 13, kPavesText = 14, kEllipse = 15, kArc = 16, kLine = 17, kArrow = 18, kGraph = 19, kMarker = 20, kPolyMarker= 21, kPolyLine3D= 22, kWbox = 23, kGaxis = 24, kF1 = 25, kF2 = 26, kF3 = 27, kDiamond = 28, kPolyMarker3D = 29, kButton = 101, kCutG =100, kCurlyLine =200, kCurlyArc = 201 }; # 39 "include/TVirtualPad.h" 2 # 1 "include/TQObject.h" 1 # 44 "include/TQObject.h" class TList; class TObject; class TQConnection; class TClass; class TQObject { friend class TQConnection; protected: TList *fListOfSignals; TList *fListOfConnections; virtual void *GetSender() { return this; } virtual const char *GetSenderClassName() const { return ""; } static Bool_t ConnectToClass(TQObject *sender, const char *signal, TClass *receiver_class, void *receiver, const char *slot); static Bool_t ConnectToClass(const char *sender_class, const char *signal, TClass *receiver_class, void *receiver, const char *slot); static Int_t CheckConnectArgs(TQObject *sender, TClass *sender_class, const char *signal, TClass *receiver_class, const char *slot); private: TQObject(const TQObject& tqo); TQObject& operator=(const TQObject& tqo); public: TQObject(); virtual ~TQObject(); TList *GetListOfClassSignals() const; TList *GetListOfSignals() const { return fListOfSignals; } TList *GetListOfConnections() const { return fListOfConnections; } void EmitVA(const char *signal, Int_t nargs, ...); void EmitVA(const char *signal, Int_t nargs, va_list va); void Emit(const char *signal); void Emit(const char *signal, Long_t *paramArr); void Emit(const char *signal, const char *params); void Emit(const char *signal, Double_t param); void Emit(const char *signal, Long_t param); void Emit(const char *signal, Long64_t param); void Emit(const char *signal, Bool_t param) { Emit(signal, (Long_t)param); } void Emit(const char *signal, Char_t param) { Emit(signal, (Long_t)param); } void Emit(const char *signal, UChar_t param) { Emit(signal, (Long_t)param); } void Emit(const char *signal, Short_t param) { Emit(signal, (Long_t)param); } void Emit(const char *signal, UShort_t param) { Emit(signal, (Long_t)param); } void Emit(const char *signal, Int_t param) { Emit(signal, (Long_t)param); } void Emit(const char *signal, UInt_t param) { Emit(signal, (Long_t)param); } void Emit(const char *signal, ULong_t param) { Emit(signal, (Long_t)param); } void Emit(const char *signal, ULong64_t param) { Emit(signal, (Long64_t) param); } void Emit(const char *signal, Float_t param) { Emit(signal, (Double_t)param); } Bool_t Connect(const char *signal, const char *receiver_class, void *receiver, const char *slot); Bool_t Disconnect(const char *signal = 0, void *receiver = 0, const char *slot = 0); virtual void HighPriority(const char *signal_name, const char *slot_name = 0); virtual void LowPriority(const char *signal_name, const char *slot_name = 0); virtual Bool_t HasConnection(const char *signal_name) const; virtual Int_t NumberOfSignals() const; virtual Int_t NumberOfConnections() const; virtual void Connected(const char * ) { } virtual void Disconnected(const char * ) { } virtual void Destroyed() { Emit("Destroyed()"); } virtual void ChangedBy(const char *method) { Emit("ChangedBy(char*)", method); } virtual void Message(const char *msg) { Emit("Message(char*)", msg); } static Bool_t Connect(TQObject *sender, const char *signal, const char *receiver_class, void *receiver, const char *slot); static Bool_t Connect(const char *sender_class, const char *signal, const char *receiver_class, void *receiver, const char *slot); static Bool_t Disconnect(TQObject *sender, const char *signal = 0, void *receiver = 0, const char *slot = 0); static Bool_t Disconnect(const char *class_name, const char *signal, void *receiver = 0, const char *slot = 0); static void LoadRQ_OBJECT(); private: static TClass *fgIsA; public: static TClass *Class(); static const char *Class_Name(); static Version_t Class_Version() { return 1; } static void Dictionary(); virtual TClass *IsA() const { return TQObject::Class(); } virtual void ShowMembers(TMemberInspector &insp, char *parent); virtual void Streamer(TBuffer &b); void StreamerNVirtual(TBuffer &b) { TQObject::Streamer(b); } static const char *DeclFileName() { return "include/TQObject.h"; } static int ImplFileLine(); static const char *ImplFileName(); static int DeclFileLine() { return 169; } }; extern void *gTQSender; class TQObjSender : public TQObject { protected: void *fSender; TString fSenderClass; virtual void *GetSender() { return fSender; } virtual const char *GetSenderClassName() const { return fSenderClass; } private: TQObjSender(const TQObjSender&); TQObjSender& operator=(const TQObjSender&); public: TQObjSender() : TQObject(), fSender(0), fSenderClass() { } virtual ~TQObjSender() { Disconnect(); } virtual void SetSender(void *sender) { fSender = sender; } void SetSenderClassName(const char *sclass = "") { fSenderClass = sclass; } private: static TClass *fgIsA; public: static TClass *Class(); static const char *Class_Name(); static Version_t Class_Version() { return 0; } static void Dictionary(); virtual TClass *IsA() const { return TQObjSender::Class(); } virtual void ShowMembers(TMemberInspector &insp, char *parent); virtual void Streamer(TBuffer &b); void StreamerNVirtual(TBuffer &b) { TQObjSender::Streamer(b); } static const char *DeclFileName() { return "include/TQObject.h"; } static int ImplFileLine(); static const char *ImplFileName(); static int DeclFileLine() { return 195; } }; extern Bool_t ConnectCINT(TQObject *sender, const char *signal, const char *slot); # 43 "include/TVirtualPad.h" 2 class TAxis; class TObject; class TObjLink; class TView; class TCanvas; class TH1F; class TFrame; class TBox; class TVirtualViewer3D; class TVirtualPad : public TObject, public TAttLine, public TAttFill, public TAttPad, public TQObject { protected: Bool_t fResizing; virtual void *GetSender() { return this; } public: TVirtualPad(); TVirtualPad(const char *name, const char *title, Double_t xlow, Double_t ylow, Double_t xup, Double_t yup, Color_t color=19, Short_t bordersize=4, Short_t bordermode=1); virtual ~TVirtualPad(); virtual void AbsCoordinates(Bool_t set) = 0; virtual Double_t AbsPixeltoX(Int_t px) = 0; virtual Double_t AbsPixeltoY(Int_t py) = 0; virtual void AddExec(const char *name, const char *command) = 0; virtual TVirtualPad* cd(Int_t subpadnumber=0) = 0; virtual void Clear(Option_t *option="") = 0; virtual void Close(Option_t *option="") = 0; virtual void CopyPixmap() = 0; virtual void CopyPixmaps() = 0; virtual void DeleteExec(const char *name) = 0; virtual void Divide(Int_t nx=1, Int_t ny=1, Float_t xmargin=0.01, Float_t ymargin=0.01, Int_t color=0) = 0; virtual void Draw(Option_t *option="") = 0; virtual void DrawClassObject(const TObject *obj, Option_t *option="") = 0; virtual TH1F *DrawFrame(Double_t xmin, Double_t ymin, Double_t xmax, Double_t ymax, const char *title="") = 0; virtual void ExecuteEventAxis(Int_t event, Int_t px, Int_t py, TAxis *axis) = 0; virtual Short_t GetBorderMode() const = 0; virtual Short_t GetBorderSize() const = 0; virtual Int_t GetCanvasID() const = 0; virtual TCanvas *GetCanvas() const = 0; virtual TVirtualPad *GetVirtCanvas() const = 0; virtual Int_t GetEvent() const = 0; virtual Int_t GetEventX() const = 0; virtual Int_t GetEventY() const = 0; virtual TFrame *GetFrame() = 0; virtual Color_t GetHighLightColor() const = 0; virtual Int_t GetNumber() const = 0; virtual void GetRange(Double_t &x1, Double_t &y1, Double_t &x2, Double_t &y2) = 0; virtual void GetRangeAxis(Double_t &xmin, Double_t &ymin, Double_t &xmax, Double_t &ymax) = 0; virtual void GetPadPar(Double_t &xlow, Double_t &ylow, Double_t &xup, Double_t &yup) = 0; virtual Double_t GetXlowNDC() const = 0; virtual Double_t GetYlowNDC() const = 0; virtual Double_t GetWNDC() const = 0; virtual Double_t GetHNDC() const = 0; virtual UInt_t GetWw() const = 0; virtual UInt_t GetWh() const = 0; virtual Double_t GetAbsXlowNDC() const = 0; virtual Double_t GetAbsYlowNDC() const = 0; virtual Double_t GetAbsWNDC() const = 0; virtual Double_t GetAbsHNDC() const = 0; virtual Double_t GetAspectRatio() const = 0; virtual Double_t GetPhi() const = 0; virtual Double_t GetTheta() const = 0; virtual Double_t GetUxmin() const = 0; virtual Double_t GetUymin() const = 0; virtual Double_t GetUxmax() const = 0; virtual Double_t GetUymax() const = 0; virtual Bool_t GetGridx() const = 0; virtual Bool_t GetGridy() const = 0; virtual Int_t GetTickx() const = 0; virtual Int_t GetTicky() const = 0; virtual Double_t GetX1() const = 0; virtual Double_t GetX2() const = 0; virtual Double_t GetY1() const = 0; virtual Double_t GetY2() const = 0; virtual TList *GetListOfPrimitives() const = 0; virtual TList *GetListOfExecs() const = 0; virtual TObject *GetPrimitive(const char *name) const = 0; virtual TObject *GetSelected() const = 0; virtual TVirtualPad *GetPad(Int_t subpadnumber) const = 0; virtual TObject *GetPadPointer() const = 0; virtual TVirtualPad *GetPadSave() const = 0; virtual TVirtualPad *GetSelectedPad() const = 0; virtual TView *GetView() const = 0; virtual Int_t GetLogx() const = 0; virtual Int_t GetLogy() const = 0; virtual Int_t GetLogz() const = 0; virtual TVirtualPad *GetMother() const = 0; virtual const char *GetName() const = 0; virtual const char *GetTitle() const = 0; virtual Int_t GetPadPaint() const = 0; virtual Int_t GetPixmapID() const = 0; virtual TObject *GetView3D() const = 0; virtual Bool_t HasCrosshair() const = 0; virtual void HighLight(Color_t col=kRed, Bool_t set=kTRUE) = 0; virtual Bool_t HasFixedAspectRatio() const = 0; virtual Bool_t IsBatch() const = 0; Bool_t IsBeingResized() const { return fResizing; } virtual Bool_t IsEditable() const = 0; virtual Bool_t IsModified() const = 0; virtual Bool_t IsRetained() const = 0; virtual Bool_t IsVertical() const = 0; virtual void ls(Option_t *option="") const = 0; virtual void Modified(Bool_t flag=1) = 0; virtual Bool_t OpaqueMoving() const = 0; virtual Bool_t OpaqueResizing() const = 0; virtual Double_t PadtoX(Double_t x) const = 0; virtual Double_t PadtoY(Double_t y) const = 0; virtual void Paint(Option_t *option="") = 0; virtual void PaintBorderPS(Double_t xl,Double_t yl,Double_t xt,Double_t yt,Int_t bmode,Int_t bsize,Int_t dark,Int_t light) = 0; virtual void PaintBox(Double_t x1, Double_t y1, Double_t x2, Double_t y2, Option_t *option="") = 0; virtual void PaintFillArea(Int_t n, Float_t *x, Float_t *y, Option_t *option="") = 0; virtual void PaintFillArea(Int_t n, Double_t *x, Double_t *y, Option_t *option="") = 0; virtual void PaintPadFrame(Double_t xmin, Double_t ymin, Double_t xmax, Double_t ymax) = 0; virtual void PaintLine(Double_t x1, Double_t y1, Double_t x2, Double_t y2) = 0; virtual void PaintLineNDC(Double_t u1, Double_t v1,Double_t u2, Double_t v2) = 0; virtual void PaintLine3D(Float_t *p1, Float_t *p2) = 0; virtual void PaintLine3D(Double_t *p1, Double_t *p2) = 0; virtual void PaintPolyLine(Int_t n, Float_t *x, Float_t *y, Option_t *option="") = 0; virtual void PaintPolyLine(Int_t n, Double_t *x, Double_t *y, Option_t *option="") = 0; virtual void PaintPolyLine3D(Int_t n, Double_t *p) = 0; virtual void PaintPolyLineNDC(Int_t n, Double_t *x, Double_t *y, Option_t *option="") = 0; virtual void PaintPolyMarker(Int_t n, Float_t *x, Float_t *y, Option_t *option="") = 0; virtual void PaintPolyMarker(Int_t n, Double_t *x, Double_t *y, Option_t *option="") = 0; virtual void PaintModified() = 0; virtual void PaintText(Double_t x, Double_t y, const char *text) = 0; virtual void PaintTextNDC(Double_t u, Double_t v, const char *text) = 0; virtual Double_t PixeltoX(Int_t px) = 0; virtual Double_t PixeltoY(Int_t py) = 0; virtual void Pop() = 0; virtual void Print(const char *filename="") const = 0; virtual void Print(const char *filename, Option_t *option) = 0; virtual void Range(Double_t x1, Double_t y1, Double_t x2, Double_t y2) = 0; virtual void RangeAxis(Double_t xmin, Double_t ymin, Double_t xmax, Double_t ymax) = 0; virtual void RecursiveRemove(TObject *obj) = 0; virtual void RedrawAxis(Option_t *option="") = 0; virtual void ResetView3D(TObject *view=0) = 0; virtual void ResizePad(Option_t *option="") = 0; virtual void SaveAs(const char *filename="",Option_t *option="") const = 0; virtual void SetBatch(Bool_t batch=kTRUE) = 0; virtual void SetBorderMode(Short_t bordermode) = 0; virtual void SetBorderSize(Short_t bordersize) = 0; virtual void SetCanvas(TCanvas *c) = 0; virtual void SetCanvasSize(UInt_t ww, UInt_t wh) = 0; virtual void SetCrosshair(Int_t crhair=1) = 0; virtual void SetCursor(ECursor cursor) = 0; virtual void SetDoubleBuffer(Int_t mode=1) = 0; virtual void SetEditable(Bool_t mode=kTRUE) = 0; virtual void SetFixedAspectRatio(Bool_t fixed = kTRUE) = 0; virtual void SetGrid(Int_t valuex = 1, Int_t valuey = 1) = 0; virtual void SetGridx(Int_t value = 1) = 0; virtual void SetGridy(Int_t value = 1) = 0; virtual void SetLogx(Int_t value = 1) = 0; virtual void SetLogy(Int_t value = 1) = 0; virtual void SetLogz(Int_t value = 1) = 0; virtual void SetPad(const char *name, const char *title, Double_t xlow, Double_t ylow, Double_t xup, Double_t yup, Color_t color=35, Short_t bordersize=5, Short_t bordermode=-1) = 0; virtual void SetPad(Double_t xlow, Double_t ylow, Double_t xup, Double_t yup) = 0; virtual void SetAttFillPS(Color_t color, Style_t style) = 0; virtual void SetAttLinePS(Color_t color, Style_t style, Width_t lwidth) = 0; virtual void SetAttMarkerPS(Color_t color, Style_t style, Size_t msize) = 0; virtual void SetAttTextPS(Int_t align, Float_t angle, Color_t color, Style_t font, Float_t tsize) = 0; virtual void SetName(const char *name) = 0; virtual void SetSelected(TObject *obj) = 0; virtual void SetTicks(Int_t valuex = 1, Int_t valuey = 1) = 0; virtual void SetTickx(Int_t value = 1) = 0; virtual void SetTicky(Int_t value = 1) = 0; virtual void SetTitle(const char *title="") = 0; virtual void SetTheta(Double_t theta=30) = 0; virtual void SetPhi(Double_t phi=30) = 0; virtual void SetToolTipText(const char *text, Long_t delayms = 1000) = 0; virtual void SetVertical(Bool_t vert=kTRUE) = 0; virtual void SetView(TView *view=0) = 0; virtual void SetViewer3D(TVirtualViewer3D * ) {} virtual TObject *WaitPrimitive(const char *pname="", const char *emode="") = 0; virtual void Update() = 0; virtual Int_t UtoAbsPixel(Double_t u) const = 0; virtual Int_t VtoAbsPixel(Double_t v) const = 0; virtual Int_t UtoPixel(Double_t u) const = 0; virtual Int_t VtoPixel(Double_t v) const = 0; virtual Int_t XtoAbsPixel(Double_t x) const = 0; virtual Int_t YtoAbsPixel(Double_t y) const = 0; virtual Double_t XtoPad(Double_t x) const = 0; virtual Double_t YtoPad(Double_t y) const = 0; virtual Int_t XtoPixel(Double_t x) const = 0; virtual Int_t YtoPixel(Double_t y) const = 0; virtual TObject *CreateToolTip(const TBox *b, const char *text, Long_t delayms) = 0; virtual void DeleteToolTip(TObject *tip) = 0; virtual void ResetToolTip(TObject *tip) = 0; virtual void CloseToolTip(TObject *tip) = 0; virtual TVirtualViewer3D *GetViewer3D(Option_t * type = "") = 0; virtual void ReleaseViewer3D(Option_t * type = "") = 0; virtual Int_t GetGLDevice() = 0; virtual void SetCopyGLDevice(Bool_t copy) = 0; static TVirtualPad *&Pad(); private: static TClass *fgIsA; public: static TClass *Class(); static const char *Class_Name(); static Version_t Class_Version() { return 2; } static void Dictionary(); virtual TClass *IsA() const { return TVirtualPad::Class(); } virtual void ShowMembers(TMemberInspector &insp, char *parent); virtual void Streamer(TBuffer &b); void StreamerNVirtual(TBuffer &b) { TVirtualPad::Streamer(b); } static const char *DeclFileName() { return "include/TVirtualPad.h"; } static int ImplFileLine(); static const char *ImplFileName(); static int DeclFileLine() { return 251; } }; extern void **(*gThreadTsd)(void*,Int_t); extern Int_t (*gThreadXAR)(const char *xact, Int_t nb, void **ar, Int_t *iret); # 62 "meta/src/TClass.cxx" 2 # 1 "/usr/include/g++/set" 1 3 # 64 "/usr/include/g++/set" 3 # 65 "/usr/include/g++/set" 3 # 1 "/usr/include/g++/bits/stl_tree.h" 1 3 # 91 "/usr/include/g++/bits/stl_tree.h" 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 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 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() {} _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 __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 __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 __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 __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 __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 __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 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 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 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 > 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(); try { _Construct(&__tmp->_M_value_field, __x); } catch(...) { _M_put_node(__tmp); throw; } 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 iterator; typedef _Rb_tree_iterator const_iterator; typedef std::reverse_iterator const_reverse_iterator; typedef std::reverse_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 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 void insert_unique(_InputIterator __first, _InputIterator __last); template 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 equal_range(const key_type& __x); pair equal_range(const key_type& __x) const; bool __rb_verify() const; }; template __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 __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 __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 __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 __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 __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 __inline__ void swap(_Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>& __x, _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>& __y) { __x.swap(__y); } template _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 _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 _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 pair::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(_M_insert(__x, __y, __v), true); else --__j; if (_M_key_compare(_S_key(__j._M_node), _KeyOfValue()(__v))) return pair(_M_insert(__x, __y, __v), true); return pair(__j, false); } template 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 _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 template void _Rb_tree<_Key,_Val,_KoV,_Cmp,_Alloc>:: insert_equal(_II __first, _II __last) { for ( ; __first != __last; ++__first) insert_equal(*__first); } template template void _Rb_tree<_Key,_Val,_KoV,_Cmp,_Alloc>:: insert_unique(_II __first, _II __last) { for ( ; __first != __last; ++__first) insert_unique(*__first); } template __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 _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>::size_type _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>::erase(const _Key& __x) { pair __p = equal_range(__x); size_type __n = distance(__p.first, __p.second); erase(__p.first, __p.second); return __n; } template 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; try { 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); } } catch(...) { _M_erase(__top); throw; } return __top; } template 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 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 void _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>:: erase(const _Key* __first, const _Key* __last) { while (__first != __last) erase(*__first++); } template 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 _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 _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>::size_type _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>:: count(const _Key& __k) const { pair __p = equal_range(__k); size_type __n = distance(__p.first, __p.second); return __n; } template 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 _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 _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 _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 __inline__ pair::iterator, typename _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>::iterator> _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>:: equal_range(const _Key& __k) { return pair(lower_bound(__k), upper_bound(__k)); } template __inline__ pair::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(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 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/include/g++/set" 2 3 # 1 "/usr/include/g++/bits/stl_set.h" 1 3 # 66 "/usr/include/g++/bits/stl_set.h" 3 namespace std { template , class _Alloc = allocator<_Key> > class set; template __inline__ bool operator==(const set<_Key,_Compare,_Alloc>& __x, const set<_Key,_Compare,_Alloc>& __y); template __inline__ bool operator<(const set<_Key,_Compare,_Alloc>& __x, const set<_Key,_Compare,_Alloc>& __y); template class set { ; public: typedef _Key key_type; typedef _Key value_type; typedef _Compare key_compare; typedef _Compare value_compare; private: typedef _Rb_tree, 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 set(_InputIterator __first, _InputIterator __last) : _M_t(_Compare(), allocator_type()) { _M_t.insert_unique(__first, __last); } template 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 insert(const value_type& __x) { pair __p = _M_t.insert_unique(__x); return pair(__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 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 equal_range(const key_type& __x) { return _M_t.equal_range(__x); } pair equal_range(const key_type& __x) const { return _M_t.equal_range(__x); } # 220 "/usr/include/g++/bits/stl_set.h" 3 template friend bool operator== (const set<_K1,_C1,_A1>&, const set<_K1,_C1,_A1>&); template friend bool operator< (const set<_K1,_C1,_A1>&, const set<_K1,_C1,_A1>&); }; template __inline__ bool operator==(const set<_Key,_Compare,_Alloc>& __x, const set<_Key,_Compare,_Alloc>& __y) { return __x._M_t == __y._M_t; } template __inline__ bool operator<(const set<_Key,_Compare,_Alloc>& __x, const set<_Key,_Compare,_Alloc>& __y) { return __x._M_t < __y._M_t; } template __inline__ bool operator!=(const set<_Key,_Compare,_Alloc>& __x, const set<_Key,_Compare,_Alloc>& __y) { return !(__x == __y); } template __inline__ bool operator>(const set<_Key,_Compare,_Alloc>& __x, const set<_Key,_Compare,_Alloc>& __y) { return __y < __x; } template __inline__ bool operator<=(const set<_Key,_Compare,_Alloc>& __x, const set<_Key,_Compare,_Alloc>& __y) { return !(__y < __x); } template __inline__ bool operator>=(const set<_Key,_Compare,_Alloc>& __x, const set<_Key,_Compare,_Alloc>& __y) { return !(__x < __y); } template __inline__ void swap(set<_Key,_Compare,_Alloc>& __x, set<_Key,_Compare,_Alloc>& __y) { __x.swap(__y); } } # 68 "/usr/include/g++/set" 2 3 # 1 "/usr/include/g++/bits/stl_multiset.h" 1 3 # 66 "/usr/include/g++/bits/stl_multiset.h" 3 namespace std { template , class _Alloc = allocator<_Key> > class multiset; template __inline__ bool operator==(const multiset<_Key,_Compare,_Alloc>& __x, const multiset<_Key,_Compare,_Alloc>& __y); template __inline__ bool operator<(const multiset<_Key,_Compare,_Alloc>& __x, const multiset<_Key,_Compare,_Alloc>& __y); template class multiset { ; public: typedef _Key key_type; typedef _Key value_type; typedef _Compare key_compare; typedef _Compare value_compare; private: typedef _Rb_tree, 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 multiset(_InputIterator __first, _InputIterator __last) : _M_t(_Compare(), allocator_type()) { _M_t.insert_equal(__first, __last); } template 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 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 equal_range(const key_type& __x) { return _M_t.equal_range(__x); } pair equal_range(const key_type& __x) const { return _M_t.equal_range(__x); } # 221 "/usr/include/g++/bits/stl_multiset.h" 3 template friend bool operator== (const multiset<_K1,_C1,_A1>&, const multiset<_K1,_C1,_A1>&); template friend bool operator< (const multiset<_K1,_C1,_A1>&, const multiset<_K1,_C1,_A1>&); }; template __inline__ bool operator==(const multiset<_Key,_Compare,_Alloc>& __x, const multiset<_Key,_Compare,_Alloc>& __y) { return __x._M_t == __y._M_t; } template __inline__ bool operator<(const multiset<_Key,_Compare,_Alloc>& __x, const multiset<_Key,_Compare,_Alloc>& __y) { return __x._M_t < __y._M_t; } template __inline__ bool operator!=(const multiset<_Key,_Compare,_Alloc>& __x, const multiset<_Key,_Compare,_Alloc>& __y) { return !(__x == __y); } template __inline__ bool operator>(const multiset<_Key,_Compare,_Alloc>& __x, const multiset<_Key,_Compare,_Alloc>& __y) { return __y < __x; } template __inline__ bool operator<=(const multiset<_Key,_Compare,_Alloc>& __x, const multiset<_Key,_Compare,_Alloc>& __y) { return !(__y < __x); } template __inline__ bool operator>=(const multiset<_Key,_Compare,_Alloc>& __x, const multiset<_Key,_Compare,_Alloc>& __y) { return !(__x < __y); } template __inline__ void swap(multiset<_Key,_Compare,_Alloc>& __x, multiset<_Key,_Compare,_Alloc>& __y) { __x.swap(__y); } } # 69 "/usr/include/g++/set" 2 3 # 67 "meta/src/TClass.cxx" 2 # 1 "/usr/include/g++/sstream" 1 3 # 42 "/usr/include/g++/sstream" 3 # 43 "/usr/include/g++/sstream" 3 namespace std { # 61 "/usr/include/g++/sstream" 3 template class basic_stringbuf : public basic_streambuf<_CharT, _Traits> { public: typedef _CharT char_type; typedef _Traits traits_type; typedef _Alloc allocator_type; typedef typename traits_type::int_type int_type; typedef typename traits_type::pos_type pos_type; typedef typename traits_type::off_type off_type; typedef basic_streambuf __streambuf_type; typedef basic_string __string_type; typedef typename __string_type::size_type __size_type; protected: __string_type _M_string; public: # 105 "/usr/include/g++/sstream" 3 explicit basic_stringbuf(ios_base::openmode __mode = ios_base::in | ios_base::out) : __streambuf_type(), _M_string() { _M_stringbuf_init(__mode); } # 118 "/usr/include/g++/sstream" 3 explicit basic_stringbuf(const __string_type& __str, ios_base::openmode __mode = ios_base::in | ios_base::out) : __streambuf_type(), _M_string(__str.data(), __str.size()) { _M_stringbuf_init(__mode); } # 133 "/usr/include/g++/sstream" 3 __string_type str() const { if (_M_mode & ios_base::out) { __size_type __len = _M_string.size(); if (_M_out_end > _M_out_beg) __len = max(__size_type(_M_out_end - _M_out_beg), __len); return __string_type(_M_out_beg, _M_out_beg + __len); } else return _M_string; } # 158 "/usr/include/g++/sstream" 3 void str(const __string_type& __s) { _M_string.assign(__s.data(), __s.size()); _M_stringbuf_init(_M_mode); } protected: void _M_stringbuf_init(ios_base::openmode __mode) { _M_buf_size = _M_string.size(); _M_buf_size_opt = 512; _M_mode = __mode; if (_M_mode & (ios_base::ate | ios_base::app)) _M_really_sync(0, _M_buf_size); else _M_really_sync(0, 0); } virtual int_type underflow() { if (_M_in_cur && _M_in_cur < _M_in_end) return traits_type::to_int_type(*gptr()); else return traits_type::eof(); } virtual int_type pbackfail(int_type __c = traits_type::eof()); virtual int_type overflow(int_type __c = traits_type::eof()); # 225 "/usr/include/g++/sstream" 3 virtual __streambuf_type* setbuf(char_type* __s, streamsize __n) { if (__s && __n) { _M_string = __string_type(__s, __n); _M_really_sync(0, 0); } return this; } virtual pos_type seekoff(off_type __off, ios_base::seekdir __way, ios_base::openmode __mode = ios_base::in | ios_base::out); virtual pos_type seekpos(pos_type __sp, ios_base::openmode __mode = ios_base::in | ios_base::out); # 257 "/usr/include/g++/sstream" 3 virtual int _M_really_sync(__size_type __i, __size_type __o) { char_type* __base = const_cast(_M_string.data()); bool __testin = _M_mode & ios_base::in; bool __testout = _M_mode & ios_base::out; __size_type __len = _M_string.size(); _M_buf = __base; if (__testin) this->setg(__base, __base + __i, __base + __len); if (__testout) { this->setp(__base, __base + __len); _M_out_cur += __o; } return 0; } }; # 287 "/usr/include/g++/sstream" 3 template class basic_istringstream : public basic_istream<_CharT, _Traits> { public: typedef _CharT char_type; typedef _Traits traits_type; typedef _Alloc allocator_type; typedef typename traits_type::int_type int_type; typedef typename traits_type::pos_type pos_type; typedef typename traits_type::off_type off_type; typedef basic_string<_CharT, _Traits, _Alloc> __string_type; typedef basic_stringbuf<_CharT, _Traits, _Alloc> __stringbuf_type; typedef basic_istream __istream_type; private: __stringbuf_type _M_stringbuf; public: # 331 "/usr/include/g++/sstream" 3 explicit basic_istringstream(ios_base::openmode __mode = ios_base::in) : __istream_type(__null), _M_stringbuf(__mode | ios_base::in) { this->init(&_M_stringbuf); } # 351 "/usr/include/g++/sstream" 3 explicit basic_istringstream(const __string_type& __str, ios_base::openmode __mode = ios_base::in) : __istream_type(__null), _M_stringbuf(__str, __mode | ios_base::in) { this->init(&_M_stringbuf); } ~basic_istringstream() { } # 373 "/usr/include/g++/sstream" 3 __stringbuf_type* rdbuf() const { return const_cast<__stringbuf_type*>(&_M_stringbuf); } __string_type str() const { return _M_stringbuf.str(); } void str(const __string_type& __s) { _M_stringbuf.str(__s); } }; # 406 "/usr/include/g++/sstream" 3 template class basic_ostringstream : public basic_ostream<_CharT, _Traits> { public: typedef _CharT char_type; typedef _Traits traits_type; typedef _Alloc allocator_type; typedef typename traits_type::int_type int_type; typedef typename traits_type::pos_type pos_type; typedef typename traits_type::off_type off_type; typedef basic_string<_CharT, _Traits, _Alloc> __string_type; typedef basic_stringbuf<_CharT, _Traits, _Alloc> __stringbuf_type; typedef basic_ostream __ostream_type; private: __stringbuf_type _M_stringbuf; public: # 450 "/usr/include/g++/sstream" 3 explicit basic_ostringstream(ios_base::openmode __mode = ios_base::out) : __ostream_type(__null), _M_stringbuf(__mode | ios_base::out) { this->init(&_M_stringbuf); } # 470 "/usr/include/g++/sstream" 3 explicit basic_ostringstream(const __string_type& __str, ios_base::openmode __mode = ios_base::out) : __ostream_type(__null), _M_stringbuf(__str, __mode | ios_base::out) { this->init(&_M_stringbuf); } ~basic_ostringstream() { } # 492 "/usr/include/g++/sstream" 3 __stringbuf_type* rdbuf() const { return const_cast<__stringbuf_type*>(&_M_stringbuf); } __string_type str() const { return _M_stringbuf.str(); } void str(const __string_type& __s) { _M_stringbuf.str(__s); } }; # 525 "/usr/include/g++/sstream" 3 template class basic_stringstream : public basic_iostream<_CharT, _Traits> { public: typedef _CharT char_type; typedef _Traits traits_type; typedef _Alloc allocator_type; typedef typename traits_type::int_type int_type; typedef typename traits_type::pos_type pos_type; typedef typename traits_type::off_type off_type; typedef basic_string<_CharT, _Traits, _Alloc> __string_type; typedef basic_stringbuf<_CharT, _Traits, _Alloc> __stringbuf_type; typedef basic_iostream __iostream_type; private: __stringbuf_type _M_stringbuf; public: # 567 "/usr/include/g++/sstream" 3 explicit basic_stringstream(ios_base::openmode __m = ios_base::out | ios_base::in) : __iostream_type(__null), _M_stringbuf(__m) { this->init(&_M_stringbuf); } # 585 "/usr/include/g++/sstream" 3 explicit basic_stringstream(const __string_type& __str, ios_base::openmode __m = ios_base::out | ios_base::in) : __iostream_type(__null), _M_stringbuf(__str, __m) { this->init(&_M_stringbuf); } ~basic_stringstream() { } # 607 "/usr/include/g++/sstream" 3 __stringbuf_type* rdbuf() const { return const_cast<__stringbuf_type*>(&_M_stringbuf); } __string_type str() const { return _M_stringbuf.str(); } void str(const __string_type& __s) { _M_stringbuf.str(__s); } }; } # 1 "/usr/include/g++/bits/sstream.tcc" 1 3 # 38 "/usr/include/g++/bits/sstream.tcc" 3 # 39 "/usr/include/g++/bits/sstream.tcc" 3 # 1 "/usr/include/g++/sstream" 1 3 # 41 "/usr/include/g++/bits/sstream.tcc" 2 3 namespace std { template typename basic_stringbuf<_CharT, _Traits, _Alloc>::int_type basic_stringbuf<_CharT, _Traits, _Alloc>:: pbackfail(int_type __c) { int_type __ret = traits_type::eof(); bool __testeof = traits_type::eq_int_type(__c, traits_type::eof()); bool __testpos = _M_in_cur && _M_in_beg < _M_in_cur; if (__testpos) { if (traits_type::eq(traits_type::to_char_type(__c), this->gptr()[-1]) && !__testeof) { --_M_in_cur; __ret = __c; } else if (!__testeof) { --_M_in_cur; *_M_in_cur = traits_type::to_char_type(__c); __ret = __c; } else if (__testeof) { --_M_in_cur; __ret = traits_type::not_eof(__c); } } return __ret; } template typename basic_stringbuf<_CharT, _Traits, _Alloc>::int_type basic_stringbuf<_CharT, _Traits, _Alloc>:: overflow(int_type __c) { int_type __ret = traits_type::eof(); bool __testeof = traits_type::eq_int_type(__c, __ret); bool __testwrite = _M_out_cur < _M_buf + _M_buf_size; bool __testout = _M_mode & ios_base::out; if (__testout) { if (!__testeof) { __size_type __len = max(_M_buf_size, _M_buf_size_opt); __len *= 2; if (__testwrite) __ret = this->sputc(traits_type::to_char_type(__c)); else if (__len <= _M_string.max_size()) { _M_string = this->str(); _M_string.reserve(__len); _M_buf_size = __len; _M_really_sync(_M_in_cur - _M_in_beg, _M_out_cur - _M_out_beg); *_M_out_cur = traits_type::to_char_type(__c); _M_out_cur_move(1); __ret = __c; } } else __ret = traits_type::not_eof(__c); } return __ret; } template typename basic_stringbuf<_CharT, _Traits, _Alloc>::pos_type basic_stringbuf<_CharT, _Traits, _Alloc>:: seekoff(off_type __off, ios_base::seekdir __way, ios_base::openmode __mode) { pos_type __ret = pos_type(off_type(-1)); bool __testin = (ios_base::in & _M_mode & __mode) != 0; bool __testout = (ios_base::out & _M_mode & __mode) != 0; bool __testboth = __testin && __testout && __way != ios_base::cur; __testin &= !(__mode & ios_base::out); __testout &= !(__mode & ios_base::in); if (_M_buf_size && (__testin || __testout || __testboth)) { char_type* __beg = _M_buf; char_type* __curi = __null; char_type* __curo = __null; char_type* __endi = __null; char_type* __endo = __null; if (__testin || __testboth) { __curi = this->gptr(); __endi = this->egptr(); } if (__testout || __testboth) { __curo = this->pptr(); __endo = this->epptr(); } off_type __newoffi = 0; off_type __newoffo = 0; if (__way == ios_base::cur) { __newoffi = __curi - __beg; __newoffo = __curo - __beg; } else if (__way == ios_base::end) { __newoffi = __endi - __beg; __newoffo = __endo - __beg; } if ((__testin || __testboth) && __newoffi + __off >= 0 && __endi - __beg >= __newoffi + __off) { _M_in_cur = __beg + __newoffi + __off; __ret = pos_type(__newoffi); } if ((__testout || __testboth) && __newoffo + __off >= 0 && __endo - __beg >= __newoffo + __off) { _M_out_cur_move(__newoffo + __off - (_M_out_cur - __beg)); __ret = pos_type(__newoffo); } } return __ret; } template typename basic_stringbuf<_CharT, _Traits, _Alloc>::pos_type basic_stringbuf<_CharT, _Traits, _Alloc>:: seekpos(pos_type __sp, ios_base::openmode __mode) { pos_type __ret = pos_type(off_type(-1)); if (_M_buf_size) { off_type __pos = __sp; char_type* __beg = __null; char_type* __end = __null; bool __testin = (ios_base::in & _M_mode & __mode) != 0; bool __testout = (ios_base::out & _M_mode & __mode) != 0; bool __testboth = __testin && __testout; __testin &= !(__mode & ios_base::out); __testout &= !(__mode & ios_base::in); bool __testposi = false; bool __testposo = false; if (__testin || __testboth) { __beg = this->eback(); __end = this->egptr(); if (0 <= __pos && __pos <= __end - __beg) __testposi = true; } if (__testout || __testboth) { __beg = this->pbase(); __end = _M_buf + _M_buf_size; if (0 <= __pos && __pos <= __end - __beg) __testposo = true; } if (__testposi || __testposo) { if (__testposi) _M_in_cur = _M_in_beg + __pos; if (__testposo) _M_out_cur_move((__pos) - (_M_out_cur - __beg)); __ret = pos_type(off_type(__pos)); } } return __ret; } # 241 "/usr/include/g++/bits/sstream.tcc" 3 } # 636 "/usr/include/g++/sstream" 2 3 # 68 "meta/src/TClass.cxx" 2 # 1 "/usr/include/g++/map" 1 3 # 64 "/usr/include/g++/map" 3 # 65 "/usr/include/g++/map" 3 # 1 "/usr/include/g++/bits/stl_map.h" 1 3 # 66 "/usr/include/g++/bits/stl_map.h" 3 namespace std { # 89 "/usr/include/g++/bits/stl_map.h" 3 template , typename _Alloc = allocator > > class map { public: typedef _Key key_type; typedef _Tp mapped_type; typedef pair value_type; typedef _Compare key_compare; class value_compare : public binary_function { 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_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/include/g++/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/include/g++/bits/stl_map.h" 3 map(const map& __x) : _M_t(__x._M_t) { } # 173 "/usr/include/g++/bits/stl_map.h" 3 template map(_InputIterator __first, _InputIterator __last) : _M_t(_Compare(), allocator_type()) { _M_t.insert_unique(__first, __last); } # 189 "/usr/include/g++/bits/stl_map.h" 3 template 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/include/g++/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/include/g++/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/include/g++/bits/stl_map.h" 3 pair insert(const value_type& __x) { return _M_t.insert_unique(__x); } # 362 "/usr/include/g++/bits/stl_map.h" 3 iterator insert(iterator position, const value_type& __x) { return _M_t.insert_unique(position, __x); } # 374 "/usr/include/g++/bits/stl_map.h" 3 template void insert(_InputIterator __first, _InputIterator __last) { _M_t.insert_unique(__first, __last); } # 388 "/usr/include/g++/bits/stl_map.h" 3 void erase(iterator __position) { _M_t.erase(__position); } # 402 "/usr/include/g++/bits/stl_map.h" 3 size_type erase(const key_type& __x) { return _M_t.erase(__x); } # 415 "/usr/include/g++/bits/stl_map.h" 3 void erase(iterator __first, iterator __last) { _M_t.erase(__first, __last); } # 429 "/usr/include/g++/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/include/g++/bits/stl_map.h" 3 iterator find(const key_type& __x) { return _M_t.find(__x); } # 481 "/usr/include/g++/bits/stl_map.h" 3 const_iterator find(const key_type& __x) const { return _M_t.find(__x); } # 492 "/usr/include/g++/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/include/g++/bits/stl_map.h" 3 iterator lower_bound(const key_type& __x) { return _M_t.lower_bound(__x); } # 521 "/usr/include/g++/bits/stl_map.h" 3 const_iterator lower_bound(const key_type& __x) const { return _M_t.lower_bound(__x); } # 531 "/usr/include/g++/bits/stl_map.h" 3 iterator upper_bound(const key_type& __x) { return _M_t.upper_bound(__x); } # 542 "/usr/include/g++/bits/stl_map.h" 3 const_iterator upper_bound(const key_type& __x) const { return _M_t.upper_bound(__x); } # 561 "/usr/include/g++/bits/stl_map.h" 3 pair equal_range(const key_type& __x) { return _M_t.equal_range(__x); } # 580 "/usr/include/g++/bits/stl_map.h" 3 pair equal_range(const key_type& __x) const { return _M_t.equal_range(__x); } template friend bool operator== (const map<_K1,_T1,_C1,_A1>&, const map<_K1,_T1,_C1,_A1>&); template friend bool operator< (const map<_K1,_T1,_C1,_A1>&, const map<_K1,_T1,_C1,_A1>&); }; # 603 "/usr/include/g++/bits/stl_map.h" 3 template __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/include/g++/bits/stl_map.h" 3 template __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 __inline__ bool operator!=(const map<_Key,_Tp,_Compare,_Alloc>& __x, const map<_Key,_Tp,_Compare,_Alloc>& __y) { return !(__x == __y); } template __inline__ bool operator>(const map<_Key,_Tp,_Compare,_Alloc>& __x, const map<_Key,_Tp,_Compare,_Alloc>& __y) { return __y < __x; } template __inline__ bool operator<=(const map<_Key,_Tp,_Compare,_Alloc>& __x, const map<_Key,_Tp,_Compare,_Alloc>& __y) { return !(__y < __x); } template __inline__ bool operator>=(const map<_Key,_Tp,_Compare,_Alloc>& __x, const map<_Key,_Tp,_Compare,_Alloc>& __y) { return !(__x < __y); } template __inline__ void swap(map<_Key,_Tp,_Compare,_Alloc>& __x, map<_Key,_Tp,_Compare,_Alloc>& __y) { __x.swap(__y); } } # 68 "/usr/include/g++/map" 2 3 # 1 "/usr/include/g++/bits/stl_multimap.h" 1 3 # 66 "/usr/include/g++/bits/stl_multimap.h" 3 namespace std { template , typename _Alloc = allocator > > class multimap; template __inline__ bool operator==(const multimap<_Key,_Tp,_Compare,_Alloc>& __x, const multimap<_Key,_Tp,_Compare,_Alloc>& __y); template __inline__ bool operator<(const multimap<_Key,_Tp,_Compare,_Alloc>& __x, const multimap<_Key,_Tp,_Compare,_Alloc>& __y); # 104 "/usr/include/g++/bits/stl_multimap.h" 3 template class multimap { public: typedef _Key key_type; typedef _Tp mapped_type; typedef pair value_type; typedef _Compare key_compare; class value_compare : public binary_function { 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_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/include/g++/bits/stl_multimap.h" 3 multimap(const multimap& __x) : _M_t(__x._M_t) { } # 186 "/usr/include/g++/bits/stl_multimap.h" 3 template multimap(_InputIterator __first, _InputIterator __last) : _M_t(_Compare(), allocator_type()) { _M_t.insert_equal(__first, __last); } # 202 "/usr/include/g++/bits/stl_multimap.h" 3 template 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/include/g++/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/include/g++/bits/stl_multimap.h" 3 iterator insert(const value_type& __x) { return _M_t.insert_equal(__x); } # 348 "/usr/include/g++/bits/stl_multimap.h" 3 iterator insert(iterator __position, const value_type& __x) { return _M_t.insert_equal(__position, __x); } # 360 "/usr/include/g++/bits/stl_multimap.h" 3 template void insert(_InputIterator __first, _InputIterator __last) { _M_t.insert_equal(__first, __last); } # 374 "/usr/include/g++/bits/stl_multimap.h" 3 void erase(iterator __position) { _M_t.erase(__position); } # 388 "/usr/include/g++/bits/stl_multimap.h" 3 size_type erase(const key_type& __x) { return _M_t.erase(__x); } # 401 "/usr/include/g++/bits/stl_multimap.h" 3 void erase(iterator __first, iterator __last) { _M_t.erase(__first, __last); } # 415 "/usr/include/g++/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/include/g++/bits/stl_multimap.h" 3 iterator find(const key_type& __x) { return _M_t.find(__x); } # 468 "/usr/include/g++/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/include/g++/bits/stl_multimap.h" 3 iterator lower_bound(const key_type& __x) { return _M_t.lower_bound(__x); } # 504 "/usr/include/g++/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/include/g++/bits/stl_multimap.h" 3 pair equal_range(const key_type& __x) { return _M_t.equal_range(__x); } # 553 "/usr/include/g++/bits/stl_multimap.h" 3 pair equal_range(const key_type& __x) const { return _M_t.equal_range(__x); } template friend bool operator== (const multimap<_K1,_T1,_C1,_A1>&, const multimap<_K1,_T1,_C1,_A1>&); template friend bool operator< (const multimap<_K1,_T1,_C1,_A1>&, const multimap<_K1,_T1,_C1,_A1>&); }; # 575 "/usr/include/g++/bits/stl_multimap.h" 3 template __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/include/g++/bits/stl_multimap.h" 3 template __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 __inline__ bool operator!=(const multimap<_Key,_Tp,_Compare,_Alloc>& __x, const multimap<_Key,_Tp,_Compare,_Alloc>& __y) { return !(__x == __y); } template __inline__ bool operator>(const multimap<_Key,_Tp,_Compare,_Alloc>& __x, const multimap<_Key,_Tp,_Compare,_Alloc>& __y) { return __y < __x; } template __inline__ bool operator<=(const multimap<_Key,_Tp,_Compare,_Alloc>& __x, const multimap<_Key,_Tp,_Compare,_Alloc>& __y) { return !(__y < __x); } template __inline__ bool operator>=(const multimap<_Key,_Tp,_Compare,_Alloc>& __x, const multimap<_Key,_Tp,_Compare,_Alloc>& __y) { return !(__x < __y); } template __inline__ void swap(multimap<_Key,_Tp,_Compare,_Alloc>& __x, multimap<_Key,_Tp,_Compare,_Alloc>& __y) { __x.swap(__y); } } # 69 "/usr/include/g++/map" 2 3 # 70 "meta/src/TClass.cxx" 2 using namespace std; extern Long_t G__globalvarpointer; TVirtualMutex* gCINTMutex = 0; void *gMmallocDesc = 0; Int_t TClass::fgClassCount; TClass::ENewType TClass::fgCallingNew = kRealNew; static std::multimap gObjectVersionRepository; static void RegisterAddressInRepository(const char * , void *location, const TClass *what) { Version_t version = what->GetClassVersion(); gObjectVersionRepository.insert(std::pair(location, version)); # 113 "meta/src/TClass.cxx" } static void UnregisterAddressInRepository(const char * , void *location, const TClass *what) { std::multimap::iterator cur = gObjectVersionRepository.find(location); for (; cur != gObjectVersionRepository.end();) { std::multimap::iterator tmp = cur++; if ((tmp->first == location) && (tmp->second == what->GetClassVersion())) { gObjectVersionRepository.erase(tmp); } else { break; } } } static void MoveAddressInRepository(const char *where, void *oldadd, void *newadd, const TClass *what) { UnregisterAddressInRepository(where,oldadd,what); RegisterAddressInRepository(where,newadd,what); } namespace ROOT { class TMapTypeToTClass { public: typedef std::map IdMap_t; typedef IdMap_t::key_type key_type; typedef IdMap_t::const_iterator const_iterator; typedef IdMap_t::size_type size_type; typedef IdMap_t::mapped_type mapped_type; private: IdMap_t fMap; public: void Add(const key_type &key, mapped_type &obj) { fMap[key] = obj; } mapped_type Find(const key_type &key) const { IdMap_t::const_iterator iter = fMap.find(key); mapped_type cl = 0; if (iter != fMap.end()) cl = iter->second; return cl; } void Remove(const key_type &key) { fMap.erase(key); } # 195 "meta/src/TClass.cxx" }; } IdMap_t *TClass::fgIdMap = new IdMap_t; void TClass::AddClass(TClass *cl) { if (!cl) return; gROOT->GetListOfClasses()->Add(cl); if (cl->GetTypeInfo()) { fgIdMap->Add(cl->GetTypeInfo()->name(),cl); } } void TClass::RemoveClass(TClass *oldcl) { if (!oldcl) return; gROOT->GetListOfClasses()->Remove(oldcl); if (oldcl->GetTypeInfo()) { fgIdMap->Remove(oldcl->GetTypeInfo()->name()); } } class TDumpMembers : public TMemberInspector { public: TDumpMembers() { } void Inspect(TClass *cl, const char *parent, const char *name, const void *addr); }; void TDumpMembers::Inspect(TClass *cl, const char *pname, const char *mname, const void *add) { # 247 "meta/src/TClass.cxx" const Int_t kvalue = 30; const Int_t ktitle = 42; const Int_t kline = 1024; Int_t cdate = 0; Int_t ctime = 0; UInt_t *cdatime = 0; char line[kline]; TDataMember *member = cl->GetDataMember(mname); if (!member) return; TDataType *membertype = member->GetDataType(); Bool_t isdate = kFALSE; if (strcmp(member->GetName(),"fDatime") == 0 && strcmp(member->GetTypeName(),"UInt_t") == 0) { isdate = kTRUE; } Bool_t isbits = kFALSE; if (strcmp(member->GetName(),"fBits") == 0 && strcmp(member->GetTypeName(),"UInt_t") == 0) { isbits = kTRUE; } Int_t i; for (i = 0;i < kline; i++) line[i] = ' '; line[kline-1] = 0; sprintf(line,"%s%s ",pname,mname); i = strlen(line); line[i] = ' '; char *pointer = (char*)add; char **ppointer = (char**)(pointer); if (member->IsaPointer()) { char **p3pointer = (char**)(*ppointer); if (!p3pointer) sprintf(&line[kvalue],"->0"); else if (!member->IsBasic()) sprintf(&line[kvalue],"->%lx ", (Long_t)p3pointer); else if (membertype) { if (!strcmp(membertype->GetTypeName(), "char")) { i = strlen(*ppointer); if (kvalue+i >= kline) i=kline-kvalue; strncpy(&line[kvalue],*ppointer,i); line[kvalue+i] = 0; } else { strcpy(&line[kvalue], membertype->AsString(p3pointer)); } } else if (!strcmp(member->GetFullTypeName(), "char*") || !strcmp(member->GetFullTypeName(), "const char*")) { i = strlen(*ppointer); if (kvalue+i >= kline) i=kline-kvalue; strncpy(&line[kvalue],*ppointer,i); line[kvalue+i] = 0; } else { sprintf(&line[kvalue],"->%lx ", (Long_t)p3pointer); } } else if (membertype) if (isdate) { cdatime = (UInt_t*)pointer; TDatime::GetDateTime(cdatime[0],cdate,ctime); sprintf(&line[kvalue],"%d/%d",cdate,ctime); } else if (isbits) { sprintf(&line[kvalue],"0x%08x", *(UInt_t*)pointer); } else { strcpy(&line[kvalue], membertype->AsString(pointer)); } else sprintf(&line[kvalue],"->%lx ", (Long_t)pointer); if (isdate == kFALSE && strcmp(member->GetFullTypeName(), "char*") && strcmp(member->GetFullTypeName(), "const char*")) { i = strlen(&line[0]); line[i] = ' '; Int_t lentit = strlen(member->GetTitle()); if (lentit > 250-ktitle) lentit = 250-ktitle; strncpy(&line[ktitle],member->GetTitle(),lentit); line[ktitle+lentit] = 0; } Printf("%s", line); } class TBuildRealData : public TMemberInspector { private: void *fRealDataObject; TClass *fRealDataClass; public: TBuildRealData(void *obj, TClass *cl) { fRealDataObject = obj; fRealDataClass = cl; } void Inspect(TClass *cl, const char *parent, const char *name, const void *addr); }; void TBuildRealData::Inspect(TClass* cl, const char* pname, const char* mname, const void* add) { TDataMember* dm = cl->GetDataMember(mname); if (!dm || !dm->IsPersistent()) { return; } char rname[512]; strcpy(rname, pname); if (cl != fRealDataClass) { if (!fRealDataClass->InheritsFrom(cl)) { char* dot = strchr(rname, '.'); if (!dot) { return; } *dot = 0; if (!fRealDataClass->GetDataMember(rname)) { # 382 "meta/src/TClass.cxx" if (!fRealDataClass->GetBaseDataMember(rname)) { return; } } *dot = '.'; } } strcat(rname, mname); Long_t offset = Long_t(((Long_t) add) - ((Long_t) fRealDataObject)); if (dm->IsaPointer()) { if (!dm->IsBasic()) { TRealData* rd = new TRealData(rname, offset, dm); fRealDataClass->GetListOfRealData()->Add(rd); } else { TRealData* rd = new TRealData(rname, offset, dm); fRealDataClass->GetListOfRealData()->Add(rd); } } else { TRealData* rd = new TRealData(rname, offset, dm); if (!dm->IsBasic()) { rd->SetIsObject(kTRUE); } fRealDataClass->GetListOfRealData()->Add(rd); } } class TAutoInspector : public TMemberInspector { public: Int_t fCount; TBrowser *fBrowser; TAutoInspector(TBrowser *b) { fBrowser = b; fCount = 0; } virtual ~TAutoInspector() { } virtual void Inspect(TClass *cl, const char *parent, const char *name, const void *addr); }; void TAutoInspector::Inspect(TClass *cl, const char *tit, const char *name, const void *addr) { if(tit && strchr(tit,'.')) return ; if (fCount && !fBrowser) return; TString ts; if (!cl) return; if (*name == '*') name++; int ln = strcspn(name,"[ "); TString iname(name,ln); G__ClassInfo *classInfo = cl->GetClassInfo(); if (!classInfo) return; G__DataMemberInfo m(*classInfo); TString mname; int found=0; while (m.Next()) { mname = m.Name(); mname.ReplaceAll("*",""); if ((found = (iname==mname))) break; } (static_cast (__builtin_expect (!!(found), 1) ? 0 : (__assert_fail ("found", "meta/src/TClass.cxx", 459, __PRETTY_FUNCTION__), 0))); Long_t prop = m.Property() | m.Type()->Property(); if (prop & 0x00004000) return; if (prop & 0x00000020) return; if (prop & 0x00000008) return; if (mname == "G__virtualinfo") return; int size = sizeof(void*); int nmax = 1; if (prop & 0x00002000) { for (int dim = 0; dim < m.ArrayDim(); dim++) nmax *= m.MaxIndex(dim); } std::string clmName(TClassEdit::ShortType(m.Type()->Name(), TClassEdit::kDropTrailStar) ); TClass * clm = TClass::GetClass(clmName.c_str()); do { if (!(clm)) Fatal("", kAssertMsg, "clm", 480, "meta/src/TClass.cxx"); } while (0); if (!(prop&0x00001000)) { size = clm->Size(); if (size==0) size = m.Type()->Size(); } TVirtualCollectionProxy *proxy = clm->GetCollectionProxy(); for(int i=0; iGetActualClass(obj); if (clm->IsTObject()) { TObject *tobj = (TObject*)clm->DynamicCast(TObject::Class(),obj); bwname = tobj->GetName(); } else { bwname = actualClass->GetName(); bwname += "::"; bwname += mname; } if (!clm->IsTObject() || bwname.Length()==0 || strcmp(bwname.Data(),actualClass->GetName())==0) { bwname = name; int l = strcspn(bwname.Data(),"[ "); if (lAdd(obj,clm,bwname); } else { TClass *valueCl = proxy->GetValueClass(); if (valueCl==0) { fBrowser->Add( obj, clm, bwname ); } else { TVirtualCollectionProxy::TPushPop env(proxy, obj); TClass *actualCl = 0; int sz = proxy->Size(); char fmt[] = {"#%09d"}; fmt[3] = '0'+(int)log10(double(sz))+1; char buf[20]; for (int i=0;iAt(i); if (proxy->HasPointers()) { p = *((void**)p); if(!p) continue; actualCl = valueCl->GetActualClass(p); p = actualCl->DynamicCast(valueCl,p,0); } fCount++; sprintf(buf,fmt,i); ts = bwname; ts += buf; fBrowser->Add( p, actualCl, ts ); } } } } } namespace ROOT { TGenericClassInfo *GenerateInitInstance(const TClass*); static int R__dummyintdefault567 = GenerateInitInstance((TClass*)0x0)->SetImplFile("meta/src/TClass.cxx", 567); class R__dummyintdefault567_c { public: R__dummyintdefault567_c() { if (R__dummyintdefault567) { } } }; } TClass::TClass() : TDictionary(), fNew(0), fNewArray(0), fDelete(0), fDeleteArray(0), fDestructor(0), fSizeof(-1), fVersionUsed(kFALSE), fOffsetStreamer(0), fStreamerType(kNone), fCurrentInfo(0), fRefStart(0), fRefProxy(0) { fDeclFileLine = -2; fBase = 0; fData = 0; fMethod = 0; fRealData = 0; fClassInfo = 0; fAllPubData = 0; fAllPubMethod = 0; fCheckSum = 0; fCollectionProxy= 0; fStreamer = 0; fStreamerInfo = 0; fShowMembers = 0; fIsA = 0; fGlobalIsA = 0; fIsAMethod = 0; fTypeInfo = 0; fInterStreamer = 0; ResetInstanceCount(); fClassMenuList = new TList(); fClassMenuList->Add(new TClassMenuItem(TClassMenuItem::kPopupStandardList, this)); fContextMenuTitle = ""; } TClass::TClass(const char *name) : TDictionary(), fNew(0), fNewArray(0), fDelete(0), fDeleteArray(0), fDestructor(0), fSizeof(-1), fVersionUsed(kFALSE), fOffsetStreamer(0), fStreamerType(kNone), fCurrentInfo(0), fRefStart(0), fRefProxy(0) { if (!gROOT) ::Fatal("TClass::TClass", "ROOT system not initialized"); SetName(name); fClassVersion = 0; fDeclFileName = ""; fImplFileName = ""; fDeclFileLine = -2; fImplFileLine = 0; fBase = 0; fData = 0; fMethod = 0; fRealData = 0; fClassInfo = 0; fAllPubData = 0; fAllPubMethod = 0; fCheckSum = 0; fCollectionProxy= 0; fTypeInfo = 0; fIsA = 0; fGlobalIsA = 0; fIsAMethod = 0; fShowMembers = 0; fStreamerInfo = 0; fStreamer = 0; fInterStreamer = 0; ResetInstanceCount(); fClassMenuList = new TList(); fContextMenuTitle = ""; fClassMenuList->Add(new TClassMenuItem(TClassMenuItem::kPopupStandardList, this)); if (!fClassInfo) { SetBit(kLoading); if (!(TInterpreter::Instance())) ::Fatal("TClass::TClass", "gInterpreter not initialized"); (TInterpreter::Instance())->SetClassInfo(this); if (!fClassInfo) { (TInterpreter::Instance())->InitializeDictionaries(); (TInterpreter::Instance())->SetClassInfo(this); } if (!fClassInfo) ::Warning("TClass::TClass", "no dictionary for class %s is available", name); ResetBit(kLoading); } if (fClassInfo) SetTitle(fClassInfo->Title()); } TClass::TClass(const char *name, Version_t cversion, const char *dfil, const char *ifil, Int_t dl, Int_t il) : TDictionary(), fNew(0), fNewArray(0), fDelete(0), fDeleteArray(0), fDestructor(0), fSizeof(-1), fVersionUsed(kFALSE), fOffsetStreamer(0), fStreamerType(kNone), fCurrentInfo(0), fRefStart(0), fRefProxy(0) { Init(name,cversion, 0, 0, 0, dfil, ifil, dl, il); SetBit(kUnloaded); } TClass::TClass(const char *name, Version_t cversion, const type_info &info, TVirtualIsAProxy *isa, ShowMembersFunc_t showmembers, const char *dfil, const char *ifil, Int_t dl, Int_t il) : TDictionary(), fNew(0), fNewArray(0), fDelete(0), fDeleteArray(0), fDestructor(0), fSizeof(-1), fVersionUsed(kFALSE), fOffsetStreamer(0), fStreamerType(kNone), fCurrentInfo(0), fRefStart(0), fRefProxy(0) { Init(name, cversion, &info, isa, showmembers, dfil, ifil, dl, il); } void TClass::Init(const char *name, Version_t cversion, const type_info *typeinfo, TVirtualIsAProxy *isa, ShowMembersFunc_t showmembers, const char *dfil, const char *ifil, Int_t dl, Int_t il) { if (!gROOT) ::Fatal("TClass::TClass", "ROOT system not initialized"); SetName(name); fClassVersion = cversion; fDeclFileName = dfil ? dfil : ""; fImplFileName = ifil ? ifil : ""; fDeclFileLine = dl; fImplFileLine = il; fBase = 0; fData = 0; fMethod = 0; fRealData = 0; fClassInfo = 0; fAllPubData = 0; fAllPubMethod = 0; fCheckSum = 0; fCollectionProxy= 0; fTypeInfo = typeinfo; fIsA = isa; if ( fIsA ) fIsA->SetClass(this); fGlobalIsA = 0; fIsAMethod = 0; fShowMembers = showmembers; fStreamer = 0; fStreamerInfo = new TObjArray(fClassVersion+2+10,-1); fProperty = -1; fInterStreamer = 0; fClassMenuList = 0; fContextMenuTitle = ""; ResetInstanceCount(); TClass *oldcl = (TClass*)gROOT->GetListOfClasses()->FindObject(name); if (oldcl && oldcl->TestBit(kLoading)) { return; } if (oldcl) { gROOT->RemoveClass(oldcl); if (oldcl->CanIgnoreTObjectStreamer()) { IgnoreTObjectStreamer(); } TVirtualStreamerInfo *info; TIter next(oldcl->GetStreamerInfos()); while ((info = (TVirtualStreamerInfo*)next())) { info->Clear("build"); info->SetClass(this); fStreamerInfo->AddAtAndExpand(info,info->GetClassVersion()); } oldcl->GetStreamerInfos()->Clear(); } SetBit(kLoading); TClass::AddClass(this); Bool_t isStl = kFALSE; if (!fClassInfo) { Bool_t shouldLoad = kFALSE; isStl = TClassEdit::IsSTLCont(name); if ((TInterpreter::Instance())->CheckClassInfo(name)) shouldLoad = kTRUE; else if (fImplFileLine>=0) { # 786 "meta/src/TClass.cxx" shouldLoad = ! isStl; } if (shouldLoad) { if (!(TInterpreter::Instance())) ::Fatal("TClass::TClass", "gInterpreter not initialized"); (TInterpreter::Instance())->SetClassInfo(this); if (!fClassInfo) { (TInterpreter::Instance())->InitializeDictionaries(); (TInterpreter::Instance())->SetClassInfo(this); if (IsZombie()) { TClass::RemoveClass(this); return; } } if (!fClassInfo) { isStl = TClassEdit::IsSTLCont(name); } } } if (!fClassInfo && !isStl) ::Warning("TClass::TClass", "no dictionary for class %s is available", name); fgClassCount++; SetUniqueID(fgClassCount); if (oldcl) { oldcl->ReplaceWith(this); delete oldcl; } else if (strchr(name,'<')) { TVirtualStreamerInfo *info; TIter next( gROOT->GetListOfClasses() ); TString resolvedThis = TClassEdit::ResolveTypedef(name,kTRUE); TString resolved; while ( (oldcl = (TClass*)next()) ) { resolved = TClassEdit::ResolveTypedef(oldcl->GetName(),kTRUE); if (oldcl!=this && resolved==resolvedThis) { TClass::RemoveClass(oldcl); if (oldcl->CanIgnoreTObjectStreamer()) { IgnoreTObjectStreamer(); } TIter next(oldcl->GetStreamerInfos()); while ((info = (TVirtualStreamerInfo*)next())) { info->Clear("build"); info->SetClass(this); fStreamerInfo->AddAtAndExpand(info,info->GetClassVersion()); } oldcl->GetStreamerInfos()->Clear(); oldcl->ReplaceWith(this); delete oldcl; } } } if (fClassInfo) SetTitle(fClassInfo->Title()); ResetBit(kLoading); fClassMenuList = new TList(); fClassMenuList->Add(new TClassMenuItem(TClassMenuItem::kPopupStandardList,this)); Int_t stl = TClassEdit::IsSTLCont(GetName(), 0); if ( stl || !strncmp(GetName(),"stdext::hash_",13) || !strncmp(GetName(),"__gnu_cxx::hash_",16) ) { fCollectionProxy = TVirtualStreamerInfo::Factory(this)->GenEmulatedProxy( GetName() ); fSizeof = fCollectionProxy->Sizeof(); if (fStreamer==0) { fStreamer = TVirtualStreamerInfo::Factory(this)->GenEmulatedClassStreamer( GetName() ); } } } TClass::TClass(const TClass& cl) : TDictionary(cl), fStreamerInfo(cl.fStreamerInfo), fRealData(cl.fRealData), fBase(cl.fBase), fData(cl.fData), fMethod(cl.fMethod), fAllPubData(cl.fAllPubData), fAllPubMethod(cl.fAllPubMethod), fDeclFileName(cl.fDeclFileName), fImplFileName(cl.fImplFileName), fDeclFileLine(cl.fDeclFileLine), fImplFileLine(cl.fImplFileLine), fInstanceCount(cl.fInstanceCount), fOnHeap(cl.fOnHeap), fCheckSum(cl.fCheckSum), fCollectionProxy(cl.fCollectionProxy), fClassVersion(cl.fClassVersion), fClassInfo(cl.fClassInfo), fContextMenuTitle(cl.fContextMenuTitle), fClassMenuList(cl.fClassMenuList), fTypeInfo(cl.fTypeInfo), fShowMembers(cl.fShowMembers), fStreamer(cl.fStreamer), fSharedLibs(cl.fSharedLibs), fIsA(cl.fIsA), fGlobalIsA(cl.fGlobalIsA), fIsAMethod(cl.fIsAMethod), fNew(cl.fNew), fNewArray(cl.fNewArray), fDelete(cl.fDelete), fDeleteArray(cl.fDeleteArray), fDestructor(cl.fDestructor), fSizeof(cl.fSizeof), fVersionUsed(cl.fVersionUsed), fProperty(cl.fProperty), fInterStreamer(cl.fInterStreamer), fOffsetStreamer(cl.fOffsetStreamer), fStreamerType(cl.fStreamerType), fCurrentInfo(cl.fCurrentInfo), fRefStart(cl.fRefStart) { } TClass& TClass::operator=(const TClass& cl) { if(this!=&cl) { TDictionary::operator=(cl); fStreamerInfo=cl.fStreamerInfo; fRealData=cl.fRealData; fBase=cl.fBase; fData=cl.fData; fMethod=cl.fMethod; fAllPubData=cl.fAllPubData; fAllPubMethod=cl.fAllPubMethod; fDeclFileName=cl.fDeclFileName; fImplFileName=cl.fImplFileName; fDeclFileLine=cl.fDeclFileLine; fImplFileLine=cl.fImplFileLine; fInstanceCount=cl.fInstanceCount; fOnHeap=cl.fOnHeap; fCheckSum=cl.fCheckSum; fCollectionProxy=cl.fCollectionProxy; fClassVersion=cl.fClassVersion; fClassInfo=cl.fClassInfo; fContextMenuTitle=cl.fContextMenuTitle; fClassMenuList=cl.fClassMenuList; fTypeInfo=cl.fTypeInfo; fShowMembers=cl.fShowMembers; fStreamer=cl.fStreamer; fSharedLibs=cl.fSharedLibs; fIsA=cl.fIsA; fGlobalIsA=cl.fGlobalIsA; fIsAMethod=cl.fIsAMethod; fNew=cl.fNew; fNewArray=cl.fNewArray; fDelete=cl.fDelete; fDeleteArray=cl.fDeleteArray; fDestructor=cl.fDestructor; fSizeof=cl.fSizeof; fVersionUsed=cl.fVersionUsed; fProperty=cl.fProperty; fInterStreamer=cl.fInterStreamer; fOffsetStreamer=cl.fOffsetStreamer; fStreamerType=cl.fStreamerType; fCurrentInfo=cl.fCurrentInfo; fRefStart=cl.fRefStart; } return *this; } TClass::~TClass() { delete fStreamer; fStreamer =0; delete fAllPubData; fAllPubData =0; delete fAllPubMethod; fAllPubMethod=0; if (fRefStart) { fRefStart->ListReset(); fRefStart = 0; } if (fBase) fBase->Delete(); delete fBase; fBase=0; if (fData) fData->Delete(); delete fData; fData = 0; if (fMethod) fMethod->Delete(); delete fMethod; fMethod=0; if (fRealData) fRealData->Delete(); delete fRealData; fRealData=0; if (fStreamerInfo) fStreamerInfo->Delete(); delete fStreamerInfo; fStreamerInfo=0; if (fDeclFileLine >= -1) TClass::RemoveClass(this); delete fClassInfo; fClassInfo=0; if (fClassMenuList) fClassMenuList->Delete(); delete fClassMenuList; fClassMenuList=0; if ( fInterStreamer ) delete ((G__CallFunc*)fInterStreamer); fInterStreamer=0; if ( fIsA ) delete fIsA; if ( fRefProxy ) fRefProxy->Release(); fRefProxy = 0; delete fStreamer; delete fCollectionProxy; delete fIsAMethod; } void TClass::AddImplFile(const char* filename, int line) { fImplFileName = filename; fImplFileLine = line; } void TClass::AddRef(TClassRef *ref) { if (fRefStart==0) { fRefStart = ref; } else { fRefStart->fPrevious = ref; ref->fNext = fRefStart; fRefStart = ref; } } Int_t TClass::AutoBrowse(TObject *obj, TBrowser *b) { if (!obj) return 0; char cbuf[1000]; *cbuf=0; TAutoInspector insp(b); obj->ShowMembers(insp,cbuf); return insp.fCount; } Int_t TClass::Browse(void *obj, TBrowser *b) const { if (!obj) return 0; if (fShowMembers) { char cbuf[1000]; *cbuf=0; TClass *actual = GetActualClass(obj); if (actual!=this) { actual->Browse(obj,b); } else { TAutoInspector insp(b); fShowMembers(obj,insp,cbuf); return insp.fCount; } } else if (GetCollectionProxy()) { } return 0; } void TClass::Browse(TBrowser *b) { if (!fClassInfo) return; if (b) { if (!fRealData) BuildRealData(); b->Add(GetListOfDataMembers(), "Data Members"); b->Add(GetListOfRealData(), "Real Data Members"); b->Add(GetListOfMethods(), "Methods"); b->Add(GetListOfBases(), "Base Classes"); } } void TClass::BuildRealData(void* pointer) { # 1131 "meta/src/TClass.cxx" if (fRealData) { return; } if (!fClassInfo || TClassEdit::IsSTLCont(GetName(), 0)) { fRealData = new TList; BuildEmulatedRealData("", 0, this); return; } void* realDataObject = pointer; if ((!pointer) && (Property() & kIsAbstract)) { return; } if (!realDataObject) { if (!strcmp(GetName(), "TROOT")) { realDataObject = gROOT; } else if (!strcmp(GetName(), "TGWin32")) { realDataObject = (TVirtualX::Instance()); } else if (!strcmp(GetName(), "TGQt")) { realDataObject = (TVirtualX::Instance()); } else { realDataObject = New(); } } if (realDataObject) { char parent[256]; parent[0] = 0; fRealData = new TList; TBuildRealData brd(realDataObject, this); InheritsFrom(TObject::Class()); if (fShowMembers) { fShowMembers(realDataObject, brd, parent); } else { # 1192 "meta/src/TClass.cxx" if (gGlobalMutex && !gCINTMutex) { gGlobalMutex->Lock(); if (!gCINTMutex) gCINTMutex = gGlobalMutex->Factory(kTRUE); gGlobalMutex->UnLock(); } TLockGuard R__guard(gCINTMutex); G__CallFunc func; void* address = 0; Long_t offset = 0; func.SetFunc(fClassInfo->GetMethod("ShowMembers", "TMemberInspector&,char*", &offset)); if (!func.IsValid()) { if (strcmp(GetName(), "string") != 0) { Error("BuildRealData", "Cannot find any ShowMembers function for %s!", GetName()); } } else { func.SetArg((long) &brd); func.SetArg((long) parent); address = (void*) (((long) realDataObject) + offset); func.Exec(address); } } TBaseClass* base = 0; TIter next(GetListOfBases()); while ((base = (TBaseClass*) next())) { if (base->IsSTLContainer()) { continue; } TClass* c = base->GetClassPointer(); if (c) { c->BuildRealData(((char*) realDataObject) + base->GetDelta()); } } } if (!pointer && realDataObject && (realDataObject != gROOT) && (realDataObject != (TVirtualX::Instance()))) { Int_t delta = GetBaseClassOffset(TObject::Class()); if (delta >= 0) { TObject* tobj = (TObject*) (((char*) realDataObject) + delta); tobj->SetBit(kZombie); delete tobj; tobj = 0; } else { Destructor(realDataObject); realDataObject = 0; } } } void TClass::BuildEmulatedRealData(const char *name, Long_t offset, TClass *cl) { TIter next(GetStreamerInfo()->GetElements()); TStreamerElement *element; while ((element = (TStreamerElement*)next())) { Int_t etype = element->GetType(); Long_t eoffset = element->GetOffset(); TClass *cle = element->GetClassPointer(); if (etype == TVirtualStreamerInfo::kTObject || etype == TVirtualStreamerInfo::kTNamed || etype == TVirtualStreamerInfo::kBase) { if (cle) cle->BuildEmulatedRealData(name,offset+eoffset,cl); } else if (etype == TVirtualStreamerInfo::kObject || etype == TVirtualStreamerInfo::kAny) { TRealData *rd = new TRealData(Form("%s%s",name,element->GetFullName()),offset+eoffset,0); if (gDebug > 0) printf(" Class: %s, adding TRealData=%s, offset=%ld\n",cl->GetName(),rd->GetName(),rd->GetThisOffset()); cl->GetListOfRealData()->Add(rd); TString rdname(Form("%s%s.",name,element->GetFullName())); if (cle) cle->BuildEmulatedRealData(rdname,offset+eoffset,cl); } else { TString rdname(Form("%s%s",name,element->GetFullName())); TRealData *rd = new TRealData(rdname,offset+eoffset,0); if (gDebug > 0) printf(" Class: %s, adding TRealData=%s, offset=%ld\n",cl->GetName(),rd->GetName(),rd->GetThisOffset()); cl->GetListOfRealData()->Add(rd); } } } Bool_t TClass::CanSplit() const { if (fRefProxy) return kFALSE; if (InheritsFrom("TRef")) return kFALSE; if (InheritsFrom("TRefArray")) return kFALSE; if (InheritsFrom("TArray")) return kFALSE; if (fName.Contains("TVector")) return kFALSE; if (fName.Contains("TMatrix")) return kFALSE; if (InheritsFrom("TCollection") && !InheritsFrom("TClonesArray")) return kFALSE; if (GetShowMembersWrapper()==0 && GetStreamer()!=0) { if (GetCollectionProxy()==0) { return kFALSE; } else { if (GetCollectionProxy()->HasPointers()) return kFALSE; TClass *valueClass = GetCollectionProxy()->GetValueClass(); if (valueClass == 0) return kFALSE; if (valueClass==TString::Class() || valueClass==TClass::GetClass("string")) return kFALSE; if (!valueClass->CanSplit()) return kFALSE; if (valueClass->GetCollectionProxy() != 0) return kFALSE; Int_t stl = -TClassEdit::IsSTLCont(GetName(), 0); if ((stl==TClassEdit::kMap || stl==TClassEdit::kMultiMap) && valueClass->GetClassInfo()==0) { return kFALSE; } } } TClass *ncThis = const_cast(this); TIter nextb(ncThis->GetListOfBases()); TBaseClass *base; while((base = (TBaseClass*)nextb())) { if (!TClass::GetClass(base->GetName())) return kFALSE; } return kTRUE; } void TClass::CopyCollectionProxy(const TVirtualCollectionProxy &orig) { delete fCollectionProxy; fCollectionProxy = orig.Generate(); } void TClass::Draw(Option_t *option) { if (!fClassInfo) return; TVirtualPad *padsav = (TVirtualPad::Pad()); TString opt=option; if (!padsav || !opt.Contains("same")) { TVirtualPad *padclass = (TVirtualPad*)(gROOT->GetListOfCanvases())->FindObject("R__class"); if (!padclass) { gROOT->ProcessLine("new TCanvas(\"R__class\",\"class\",20,20,1000,750);"); } else { padclass->cd(); } } if ((TVirtualPad::Pad())) (TVirtualPad::Pad())->DrawClassObject(this,option); if (padsav) padsav->cd(); } void TClass::Dump(void *obj) const { # 1410 "meta/src/TClass.cxx" Printf("==>Dumping object at:%lx, class=%s\n",(Long_t)obj,GetName()); char parent[256]; parent[0] = 0; TDumpMembers dm; if (fShowMembers) { fShowMembers(obj,dm, parent); } else { if (gGlobalMutex && !gCINTMutex) { gGlobalMutex->Lock(); if (!gCINTMutex) gCINTMutex = gGlobalMutex->Factory(kTRUE); gGlobalMutex->UnLock(); } TLockGuard R__guard(gCINTMutex); G__CallFunc func; void *address; Long_t offset; func.SetFunc(fClassInfo->GetMethod("ShowMembers", "TMemberInspector&,char*", &offset)); if (!func.IsValid()) { Printf("==>No Showmembers functions ... dumping disabled\n"); } else { func.SetArg((long)&dm); func.SetArg((long)parent); address = (void*)((long)obj + offset); func.Exec(address); } } } char *TClass::EscapeChars(const char *text) const { static char name[128]; Int_t nch = strlen(text); if (nch > 127) nch = 127; Int_t icur = -1; for (Int_t i = 0; i < nch; i++) { icur++; if (text[i] == '\"' || text[i] == '[' || text[i] == '~' || text[i] == ']' || text[i] == '&' || text[i] == '#' || text[i] == '!' || text[i] == '^' || text[i] == '<' || text[i] == '?' || text[i] == '>') { name[icur] = '@'; icur++; } name[icur] = text[i]; } name[icur+1] = 0; return name; } TClass *TClass::GetActualClass(const void *object) const { # 1479 "meta/src/TClass.cxx" if (object==0 || !IsLoaded() ) return (TClass*)this; if (fIsA) { return (*fIsA)(object); } else if (fGlobalIsA) { return fGlobalIsA(this,object); } else { if (fIsAMethod==0) { ((TClass*)this)->fIsAMethod = new TMethodCall((TClass*)this, "IsA", ""); if (!fIsAMethod->GetMethod()) { delete fIsAMethod; ((TClass*)this)->fIsAMethod = 0; Error("IsA","Can not find any IsA function for %s!",GetName()); return (TClass*)this; } } char * char_result = 0; fIsAMethod->Execute((void*)object, &char_result); return (TClass*)char_result; } } TClass *TClass::GetBaseClass(const char *classname) { if (strcmp(GetName(), classname) == 0) return (TClass*)this; if (!fClassInfo) return 0; TObjLink *lnk = GetListOfBases() ? fBase->FirstLink() : 0; while (lnk) { TClass *c, *c1; TBaseClass *base = (TBaseClass*) lnk->GetObject(); c = base->GetClassPointer(); if (c) { if (strcmp(c->GetName(), classname) == 0) return c; c1 = c->GetBaseClass(classname); if (c1) return c1; } lnk = lnk->Next(); } return 0; } TClass *TClass::GetBaseClass(const TClass *cl) { if (cl == this) return (TClass*)this; if (!fClassInfo) return 0; TObjLink *lnk = GetListOfBases() ? fBase->FirstLink() : 0; while (lnk) { TClass *c, *c1; TBaseClass *base = (TBaseClass*) lnk->GetObject(); c = base->GetClassPointer(); if (c) { if (cl == c) return c; c1 = c->GetBaseClass(cl); if (c1) return c1; } lnk = lnk->Next(); } return 0; } Int_t TClass::GetBaseClassOffsetRecurse(const TClass *cl) { if (cl == this) return 0; if (!fClassInfo) { TVirtualStreamerInfo *sinfo = GetCurrentStreamerInfo(); if (!sinfo) return -1; TStreamerElement *element; Int_t offset = 0; TObjArray &elems = *(sinfo->GetElements()); Int_t size = elems.GetLast()+1; for(Int_t i=0; iIsA() == TStreamerBase::Class()) { TStreamerBase *base = (TStreamerBase*)element; TClass *baseclass = base->GetClassPointer(); if (!baseclass) return -1; Int_t subOffset = baseclass->GetBaseClassOffsetRecurse(cl); if (subOffset == -2) return -2; if (subOffset != -1) return offset+subOffset; offset += baseclass->Size(); } } return -1; } TClass *c; Int_t off; TBaseClass *inh; TObjLink *lnk = 0; if (fBase==0) lnk = GetListOfBases()->FirstLink(); else lnk = fBase->FirstLink(); while (lnk) { inh = (TBaseClass *)lnk->GetObject(); c = inh->GetClassPointer(kTRUE); if (c) { if (cl == c) { if ((inh->Property() & 0x00200000) != 0) return -2; return inh->GetDelta(); } off = c->GetBaseClassOffsetRecurse(cl); if (off == -2) return -2; if (off != -1) return off + inh->GetDelta(); } lnk = lnk->Next(); } return -1; } Int_t TClass::GetBaseClassOffset(const TClass *cl) { Int_t offset = GetBaseClassOffsetRecurse (cl); if (offset == -2) { if (cl->GetClassInfo()) { Long_t base_tagnum = cl->GetClassInfo()->Tagnum(); G__BaseClassInfo t(*GetClassInfo()); while (t.Next(0)) { if (t.Tagnum() == base_tagnum) { if ((t.Property() & 0x00200000) != 0) { break; } return t.Offset(); } } } offset = -1; } return offset; } TClass *TClass::GetBaseDataMember(const char *datamember) { if (!fClassInfo) return 0; TDataMember *dm = GetDataMember(datamember); if (dm) return (TClass*)this; TBaseClass *inh; TIter next(GetListOfBases()); while ((inh = (TBaseClass *) next())) { TClass *c = inh->GetClassPointer(); if (c) { TClass *cdm = c->GetBaseDataMember(datamember); if (cdm) return cdm; } } return 0; } namespace { struct TClassLocalStorage { TClassLocalStorage() : fCollectionProxy(0), fStreamer(0) {}; TVirtualCollectionProxy *fCollectionProxy; TClassStreamer *fStreamer; static TClassLocalStorage *GetStorage(const TClass *cl) { void **thread_ptr = (*gThreadTsd)(0,1); if (thread_ptr) { if (*thread_ptr==0) *thread_ptr = new TExMap(); TExMap *lmap = (TExMap*)(*thread_ptr); ULong_t hash = TString::Hash(&cl, sizeof(void*)); ULong_t local = 0; UInt_t slot; if ((local = (ULong_t)lmap->GetValue(hash, (Long_t)cl, slot)) != 0) { } else { local = (ULong_t) new TClassLocalStorage(); lmap->AddAt(slot, hash, (Long_t)cl, local); } return (TClassLocalStorage*)local; } return 0; } }; } TVirtualCollectionProxy *TClass::GetCollectionProxy() const { if (gThreadTsd && fCollectionProxy) { TClassLocalStorage *local = TClassLocalStorage::GetStorage(this); if (local == 0) return fCollectionProxy; if (local->fCollectionProxy==0) local->fCollectionProxy = fCollectionProxy->Generate(); return local->fCollectionProxy; } return fCollectionProxy; } TClassStreamer *TClass::GetStreamer() const { if (gThreadTsd && fStreamer) { TClassLocalStorage *local = TClassLocalStorage::GetStorage(this); if (local==0) return fStreamer; if (local->fStreamer==0) { local->fStreamer = fStreamer->Generate(); const type_info &orig = ( typeid(*fStreamer) ); const type_info © = ( typeid(*local->fStreamer) ); if (strcmp(orig.name(),copy.name())!=0) { Warning("GetStreamer","For %s, the TClassStreamer passed does not properly implement the Generate method (%s vs %s\n",GetName(),orig.name(),copy.name()); } } return local->fStreamer; } return fStreamer; } TVirtualIsAProxy* TClass::GetIsAProxy() const { return fIsA; } TClass *TClass::GetClass(const char *name, Bool_t load) { if (!name || !strlen(name)) return 0; if (!gROOT->GetListOfClasses()) return 0; TString resolvedName; TClass *cl = (TClass*)gROOT->GetListOfClasses()->FindObject(name); if (!cl) { resolvedName = TClassEdit::ResolveTypedef(name,kTRUE).c_str(); cl = (TClass*)gROOT->GetListOfClasses()->FindObject(resolvedName); } if (cl) { if (cl->IsLoaded()) return cl; load = kTRUE; if (TClassEdit::IsSTLCont(name)) { const char *altname = (TInterpreter::Instance())->GetInterpreterTypeName(name); if (altname && strcmp(altname,name)!=0) { gROOT->GetListOfClasses()->Remove(cl); TClass *newcl = GetClass(altname,load); (static_cast (__builtin_expect (!!(newcl!=cl), 1) ? 0 : (__assert_fail ("newcl!=cl", "meta/src/TClass.cxx", 1792, __PRETTY_FUNCTION__), 0))); cl->ReplaceWith(newcl); delete cl; return newcl; } } } else { if (!TClassEdit::IsSTLCont(name)) { TDataType *objType = gROOT->GetType(name, load); if (objType) { const char *typdfName = objType->GetTypeName(); if (typdfName && strcmp(typdfName, name)) { cl = TClass::GetClass(typdfName, load); return cl; } } } else { cl = gROOT->FindSTLClass(name,kFALSE); if (cl) { if (cl->IsLoaded()) return cl; return TClass::GetClass(cl->GetName(),kTRUE); } } } if (!load) return 0; TClass *loadedcl = 0; if (cl) loadedcl = gROOT->LoadClass(cl->GetName()); else loadedcl = gROOT->LoadClass(name); if (loadedcl) return loadedcl; if (cl) return cl; static const char *full_string_name = "basic_string,allocator >"; if (strcmp(name,full_string_name)==0 || ( strncmp(name,"std::",5)==0 && ((strcmp(name+5,"string")==0)||(strcmp(name+5,full_string_name)==0)))) { return TClass::GetClass("string"); } if (TClassEdit::IsSTLCont(name)) { return gROOT->FindSTLClass(name,kTRUE); } else if ( strncmp(name,"std::",5)==0 ) { return TClass::GetClass(name+5,load); } else if ( strstr(name,"std::") != 0 ) { TString rname( TClassEdit::ResolveTypedef(name,kTRUE) ); if (rname != name) { return TClass::GetClass( rname, load ); } } if (!strcmp(name, "long long")||!strcmp(name,"unsigned long long")) return 0; char *modifiable_name = new char[strlen(name)*2]; strcpy(modifiable_name,name); if ((TInterpreter::Instance())->CheckClassInfo(modifiable_name)) { const char *altname = (TInterpreter::Instance())->GetInterpreterTypeName(modifiable_name,kTRUE); if (strcmp(altname,name)!=0) { delete [] modifiable_name; return GetClass(altname,load); } TClass *ncl = new TClass(name, 1, 0, 0, -1, -1); if (!ncl->IsZombie()) { delete [] modifiable_name; return ncl; } delete ncl; } delete [] modifiable_name; return 0; } TClass *TClass::GetClass(const type_info& typeinfo, Bool_t load) { if (!gROOT->GetListOfClasses()) return 0; TClass* cl = fgIdMap->Find(typeinfo.name()); if (cl) { if (cl->IsLoaded()) return cl; load = kTRUE; } else { # 1917 "meta/src/TClass.cxx" } if (!load) return 0; VoidFuncPtr_t dict = TClassTable::GetDict(typeinfo); if (dict) { (dict)(); TClass *cl = GetClass(typeinfo); if (cl) cl->PostLoadCheck(); return cl; } if (cl) return cl; TIter next(gROOT->GetListOfClassGenerators()); TClassGenerator *gen; while( (gen = (TClassGenerator*) next()) ) { cl = gen->GetClass(typeinfo,load); if (cl) { cl->PostLoadCheck(); return cl; } } return 0; } VoidFuncPtr_t TClass::GetDict (const char *cname) { return TClassTable::GetDict(cname); } VoidFuncPtr_t TClass::GetDict (const type_info& info) { return TClassTable::GetDict(info); } TDataMember *TClass::GetDataMember(const char *datamember) const { if (!fClassInfo) return 0; const Int_t size_buffer = 256; char memb[size_buffer]; char *s = (char*)datamember; while (*s == '*') s++; size_t len = strlen(s); if (len > size_buffer - 2) len = size_buffer - 2; strncpy(memb, s, len); memb[len] = 0; if ((s = strchr(memb, '['))) { *s = 0; len = strlen(memb); } TDataMember *dm; TIter next(((TClass*)this)->GetListOfDataMembers()); while ((dm = (TDataMember *) next())) if (len >= size_buffer - 2) { if (strncmp(memb, dm->GetName(), len) == 0) return dm; } else if (strcmp(memb, dm->GetName()) == 0) return dm; return 0; } Long_t TClass::GetDataMemberOffset(const char *name) const { TRealData *rd = GetRealData(name); if (rd) return rd->GetThisOffset(); return 0; } TRealData* TClass::GetRealData(const char* name) const { # 2031 "meta/src/TClass.cxx" if (!fRealData) { const_cast(this)->BuildRealData(); } if (!fRealData) { return 0; } if (!name) { return 0; } TRealData* rd = (TRealData*) fRealData->FindObject(name); if (rd) { return rd; } std::string givenName(name); std::string::size_type firstBracket = givenName.find_first_of("["); if (firstBracket != std::string::npos) { std::string nameNoDim(givenName.substr(0, firstBracket)); TObjLink* lnk = fRealData->FirstLink(); while (lnk) { TObject* obj = lnk->GetObject(); std::string objName(obj->GetName()); std::string::size_type pos = objName.find_first_of("["); if (pos != std::string::npos) { objName.erase(pos); if (objName == nameNoDim) { return static_cast(obj); } } lnk = lnk->Next(); } } std::ostringstream ptrname; ptrname << "*" << givenName; rd = (TRealData*) fRealData->FindObject(ptrname.str().c_str()); if (rd) { return rd; } std::string::size_type firstDot = givenName.find_first_of("."); if (firstDot == std::string::npos) { return 0; } std::string::size_type lastDot = givenName.find_last_of("."); std::ostringstream starname; starname << givenName.substr(0, lastDot) << ".*" << givenName.substr(lastDot + 1); rd = (TRealData*) fRealData->FindObject(starname.str().c_str()); if (rd) { return rd; } std::string firstDotName(givenName.substr(firstDot + 1)); rd = (TRealData*) fRealData->FindObject(firstDotName.c_str()); if (rd) { return rd; } std::string::size_type firstDotBracket = firstDotName.find_first_of("["); if (firstDotBracket != std::string::npos) { std::string nameNoDim(firstDotName.substr(0, firstDotBracket)); TObjLink* lnk = fRealData->FirstLink(); while (lnk) { TObject* obj = lnk->GetObject(); std::string objName(obj->GetName()); std::string::size_type pos = objName.find_first_of("["); if (pos != std::string::npos) { objName.erase(pos); if (objName == nameNoDim) { return static_cast(obj); } } lnk = lnk->Next(); } } ptrname.str(""); ptrname << "*" << firstDotName; rd = (TRealData*) fRealData->FindObject(ptrname.str().c_str()); if (rd) { return rd; } # 2158 "meta/src/TClass.cxx" std::string::size_type bracket = starname.str().find_first_of("["); if (bracket == std::string::npos) { return 0; } rd = (TRealData*) fRealData->FindObject(starname.str().substr(0, bracket).c_str()); if (rd) { return rd; } return 0; } const char *TClass::GetSharedLibs() { if (!(TInterpreter::Instance())) return 0; if (fSharedLibs.IsNull()) fSharedLibs = (TInterpreter::Instance())->GetClassSharedLibs(fName); return !fSharedLibs.IsNull() ? fSharedLibs.Data() : 0; } TList *TClass::GetListOfBases() { if (!fBase) { if (!fClassInfo) return 0; if (!(TInterpreter::Instance())) Fatal("GetListOfBases", "gInterpreter not initialized"); (TInterpreter::Instance())->CreateListOfBaseClasses(this); } return fBase; } TList *TClass::GetListOfDataMembers() { if (!fClassInfo) { if (!fData) fData = new TList; return fData; } if (!fData) { if (!(TInterpreter::Instance())) Fatal("GetListOfDataMembers", "gInterpreter not initialized"); (TInterpreter::Instance())->CreateListOfDataMembers(this); } return fData; } TList *TClass::GetListOfMethods() { if (!fClassInfo) { if (!fMethod) fMethod = new TList; return fMethod; } if (!fMethod) { if (!(TInterpreter::Instance())) Fatal("GetListOfMethods", "gInterpreter not initialized"); (TInterpreter::Instance())->CreateListOfMethods(this); } return fMethod; } TList *TClass::GetListOfAllPublicMethods() { # 2255 "meta/src/TClass.cxx" if (!fAllPubMethod) { fAllPubMethod = new TList; fAllPubMethod->AddAll(GetListOfMethods()); TIter nextBaseClass(GetListOfBases()); TBaseClass *pB; TMethod *p; while ((pB = (TBaseClass*) nextBaseClass())) { if (!pB->GetClassPointer()) continue; TIter next(pB->GetClassPointer()->GetListOfAllPublicMethods()); TList temp; while ((p = (TMethod*) next())) if (!fAllPubMethod->Contains(p->GetName())) temp.Add(p); fAllPubMethod->AddAll(&temp); temp.Clear(); } TIter next(fAllPubMethod); while ((p = (TMethod*) next())) if (!(p->Property() & kIsPublic)) fAllPubMethod->Remove(p); } return fAllPubMethod; } TList *TClass::GetListOfAllPublicDataMembers() { if (!fAllPubData) { fAllPubData = new TList; TIter next(GetListOfDataMembers()); TDataMember *p; while ((p = (TDataMember*) next())) if (p->Property() & kIsPublic) fAllPubData->Add(p); TIter next_BaseClass(GetListOfBases()); TBaseClass *pB; while ((pB = (TBaseClass*) next_BaseClass())) { if (!pB->GetClassPointer()) continue; fAllPubData->AddAll(pB->GetClassPointer()->GetListOfAllPublicDataMembers() ); } } return fAllPubData; } void TClass::GetMenuItems(TList *list) { if (!fClassInfo) return; TIter nextBase(GetListOfBases(), kIterBackward); TBaseClass *baseClass; while ((baseClass = (TBaseClass *) nextBase())) { TClass *base = baseClass->GetClassPointer(); if (base) base->GetMenuItems(list); } TMethod *method, *m; TIter next(GetListOfMethods(), kIterBackward); while ((method = (TMethod*)next())) { m = (TMethod*)list->FindObject(method->GetName()); if (method->IsMenuItem()) { if (!m) list->AddFirst(method); } else { if (m && m->GetNargs() == method->GetNargs()) list->Remove(m); } } } Bool_t TClass::IsFolder(void *obj) const { return Browse(obj,(TBrowser*)0); } void TClass::RemoveRef(TClassRef *ref) { if (ref==fRefStart) { fRefStart = ref->fNext; if (fRefStart) fRefStart->fPrevious = 0; ref->fPrevious = ref->fNext = 0; } else { TClassRef *next = ref->fNext; ref->fPrevious->fNext = next; if (next) next->fPrevious = ref->fPrevious; ref->fPrevious = ref->fNext = 0; } } void TClass::ReplaceWith(TClass *newcl, Bool_t recurse) const { TIter nextClass(gROOT->GetListOfClasses()); TClass *acl; TVirtualStreamerInfo *info; TList tobedeleted; TString corename( TClassEdit::ResolveTypedef(newcl->GetName()) ); if ( strchr( corename.Data(), '<' ) == 0 ) { recurse = kFALSE; } while ((acl = (TClass*)nextClass())) { if (recurse && acl!=newcl && acl!=this) { TString aclCorename( TClassEdit::ResolveTypedef(acl->GetName()) ); if (aclCorename == corename) { acl->ReplaceWith(newcl, kFALSE); tobedeleted.Add(acl); } } TIter nextInfo(acl->GetStreamerInfos()); while ((info = (TVirtualStreamerInfo*)nextInfo())) { info->Update(this, newcl); } if (acl->GetCollectionProxy() && acl->GetCollectionProxy()->GetValueClass()==this) { acl->GetCollectionProxy()->SetValueClass(newcl); } } TIter delIter( &tobedeleted ); while ((acl = (TClass*)delIter())) { delete acl; } } void TClass::ResetClassInfo(Long_t tagnum) { if (fClassInfo && fClassInfo->Tagnum() != tagnum) { fClassInfo->Init((Int_t)tagnum); if (fBase) { fBase->Delete(); delete fBase; fBase = 0; } } } void TClass::ResetMenuList() { if (fClassMenuList) fClassMenuList->Delete(); else fClassMenuList = new TList(); fClassMenuList->Add(new TClassMenuItem(TClassMenuItem::kPopupStandardList, this)); } void TClass::MakeCustomMenuList() { TClassMenuItem *menuItem; fClassMenuList->Delete(); TList* methodList = new TList; GetMenuItems(methodList); TMethod *method; TMethodArg *methodArg; TClass *classPtr = 0; TIter next(methodList); while ((method = (TMethod*) next())) { if (classPtr != method->GetClass()) { menuItem = new TClassMenuItem(TClassMenuItem::kPopupSeparator, this); fClassMenuList->AddLast(menuItem); classPtr = method->GetClass(); } TString sig; TList* margsList = method->GetListOfMethodArgs(); TIter nextarg(margsList); while ((methodArg = (TMethodArg*)nextarg())) { sig = sig+","+methodArg->GetFullTypeName(); } if (sig.Length()!=0) sig.Remove(0,1); menuItem = new TClassMenuItem(TClassMenuItem::kPopupUserFunction, this, method->GetName(), method->GetName(),0, sig.Data(),-1,TClassMenuItem::kIsSelf); if (method->IsMenuItem() == kMenuToggle) menuItem->SetToggle(); fClassMenuList->Add(menuItem); } delete methodList; } void TClass::Move(void *arenaFrom, void *arenaTo) const { if (!fClassInfo && !fCollectionProxy) { MoveAddressInRepository("TClass::Move",arenaFrom,arenaTo,this); } } TMethod *TClass::GetMethodAny(const char *method) { if (!fClassInfo) return 0; TMethod *m; TIter next(GetListOfMethods()); while ((m = (TMethod *) next())) { if (strcmp(method, m->GetName()) == 0) return m; } return 0; } TMethod *TClass::GetMethodAllAny(const char *method) { if (!fClassInfo) return 0; TMethod *m; TIter next(GetListOfMethods()); while ((m = (TMethod *) next())) { if (strcmp(method, m->GetName()) == 0) return m; } TBaseClass *base; TIter nextb(GetListOfBases()); while ((base = (TBaseClass *) nextb())) { TClass *c = base->GetClassPointer(); if (c) { m = c->GetMethodAllAny(method); if (m) return m; } } return 0; } TMethod *TClass::GetMethod(const char *method, const char *params) { if (!fClassInfo) return 0; if (!(TInterpreter::Instance())) Fatal("GetMethod", "gInterpreter not initialized"); Long_t faddr = (Long_t)(TInterpreter::Instance())->GetInterfaceMethod(this, method, params); if (!faddr) return 0; TMethod *m; # 2577 "meta/src/TClass.cxx" if (faddr == (Long_t)G__exec_bytecode) { m = GetClassMethod(method,params); } else { m = GetClassMethod(faddr); } if (m) return m; TBaseClass *base; TIter next(GetListOfBases()); while ((base = (TBaseClass *) next())) { TClass *c = base->GetClassPointer(); if (c) { m = c->GetMethod(method,params); if (m) return m; } } Error("GetMethod", "\nDid not find matching TMethod <%s> with \"%s\" for %s", method,params,GetName()); return 0; } TMethod *TClass::GetMethodWithPrototype(const char *method, const char *proto) { if (!fClassInfo) return 0; if (!(TInterpreter::Instance())) Fatal("GetMethod", "gInterpreter not initialized"); Long_t faddr = (Long_t)(TInterpreter::Instance())->GetInterfaceMethodWithPrototype(this, method, proto); if (!faddr) return 0; TMethod *m = GetClassMethod(faddr); if (m) return m; TBaseClass *base; TIter next(GetListOfBases()); while ((base = (TBaseClass *) next())) { TClass *c = base->GetClassPointer(); if (c) { m = c->GetMethodWithPrototype(method,proto); if (m) return m; } } Error("GetMethod", "Did not find matching TMethod (should never happen)"); return 0; } TMethod *TClass::GetClassMethod(Long_t faddr) { if (!fClassInfo) return 0; TMethod *m; TIter next(GetListOfMethods()); while ((m = (TMethod *) next())) { if (faddr == (Long_t)m->InterfaceMethod()) return m; } return 0; } TMethod *TClass::GetClassMethod(const char *name, const char* params) { if (!fClassInfo) return 0; if (gGlobalMutex && !gCINTMutex) { gGlobalMutex->Lock(); if (!gCINTMutex) gCINTMutex = gGlobalMutex->Factory(kTRUE); gGlobalMutex->UnLock(); } TLockGuard R__guard(gCINTMutex); G__CallFunc func; Long_t offset; func.SetFunc(GetClassInfo(), name, params, &offset); G__MethodInfo *info = new G__MethodInfo(func.GetMethodInfo()); TMethod request(info,this); TMethod *m; TIter next(GetListOfMethods()); while ((m = (TMethod *) next())) { if (!strcmp(name,m->GetName()) &&!strcmp(request.GetSignature(),m->GetSignature())) return m; } return 0; } Int_t TClass::GetNdata() { if (!fClassInfo) return 0; TList *lm = GetListOfDataMembers(); if (lm) return lm->GetSize(); else return 0; } Int_t TClass::GetNmethods() { if (!fClassInfo) return 0; TList *lm = GetListOfMethods(); if (lm) return lm->GetSize(); else return 0; } TVirtualStreamerInfo* TClass::GetStreamerInfo(Int_t version) { # 2734 "meta/src/TClass.cxx" if (version == 0) { version = fClassVersion; } if (!fStreamerInfo) { fStreamerInfo = new TObjArray(version + 10, -1); } else { Int_t ninfos = fStreamerInfo->GetSize(); if ((version < -1) || (version >= ninfos)) { Error("GetStreamerInfo", "class: %s, attempting to access a wrong version: %d", GetName(), version); version = 0; } } TVirtualStreamerInfo* sinfo = (TVirtualStreamerInfo*) fStreamerInfo->At(version); if (!sinfo && (version != fClassVersion)) { sinfo = (TVirtualStreamerInfo*) fStreamerInfo->At(fClassVersion); } if (!sinfo) { sinfo = TVirtualStreamerInfo::Factory(this); fStreamerInfo->AddAtAndExpand(sinfo, fClassVersion); if (gDebug > 0) { printf("Creating StreamerInfo for class: %s, version: %d\n", GetName(), fClassVersion); } if (fClassInfo || fCollectionProxy) { # 2771 "meta/src/TClass.cxx" sinfo->Build(); } } else { if (!sinfo->GetOffsets()) { sinfo->BuildOld(); } if (sinfo->IsOptimized() && !TVirtualStreamerInfo::CanOptimize()) { sinfo->Compile(); } } if (version == fClassVersion) { fCurrentInfo = sinfo; } return sinfo; } void TClass::IgnoreTObjectStreamer(Bool_t ignore) { # 2807 "meta/src/TClass.cxx" if ( ignore && TestBit(kIgnoreTObjectStreamer)) return; if (!ignore && !TestBit(kIgnoreTObjectStreamer)) return; TVirtualStreamerInfo *sinfo = GetCurrentStreamerInfo(); if (sinfo) { if (sinfo->GetOffsets()) { # 2821 "meta/src/TClass.cxx" Error("IgnoreTObjectStreamer","Must be called before the creation of StreamerInfo"); return; } } if (ignore) SetBit (kIgnoreTObjectStreamer); else ResetBit(kIgnoreTObjectStreamer); } Bool_t TClass::InheritsFrom(const char *classname) const { if (strcmp(GetName(), classname) == 0) return kTRUE; if (!fClassInfo) return InheritsFrom(TClass::GetClass("classname")); if (((TClass *)this)->GetBaseClass(classname)) return kTRUE; return kFALSE; } Bool_t TClass::InheritsFrom(const TClass *cl) const { if (cl == this) return kTRUE; if (!fClassInfo) { TVirtualStreamerInfo *sinfo = ((TClass *)this)->GetCurrentStreamerInfo(); if (sinfo==0) sinfo = ((TClass *)this)->GetStreamerInfo(); TIter next(sinfo->GetElements()); TStreamerElement *element; while ((element = (TStreamerElement*)next())) { if (element->IsA() == TStreamerBase::Class()) { TClass *clbase = element->GetClassPointer(); if (!clbase) return kFALSE; if (clbase->InheritsFrom(cl)) return kTRUE; } } return kFALSE; } if (((TClass *)this)->GetBaseClass(cl)) return kTRUE; return kFALSE; } void *TClass::DynamicCast(const TClass *cl, void *obj, Bool_t up) { if (cl == this) return obj; if (!fClassInfo) return 0; Int_t off; if ((off = GetBaseClassOffset(cl)) != -1) { if (up) return (void*)((Long_t)obj+off); else return (void*)((Long_t)obj-off); } return 0; } void *TClass::New(ENewType defConstructor) { # 2921 "meta/src/TClass.cxx" void* p = 0; if (fNew) { fgCallingNew = defConstructor; p = fNew(0); fgCallingNew = kRealNew; if (!p) { Error("New", "cannot create object of class %s", GetName()); } } else if (fClassInfo) { # 2944 "meta/src/TClass.cxx" fgCallingNew = defConstructor; if (gGlobalMutex && !gCINTMutex) { gGlobalMutex->Lock(); if (!gCINTMutex) gCINTMutex = gGlobalMutex->Factory(kTRUE); gGlobalMutex->UnLock(); } TLockGuard R__guard(gCINTMutex); p = GetClassInfo()->New(); fgCallingNew = kRealNew; if (!p) { Error("New", "cannot create object of class %s", GetName()); } } else if (!fClassInfo && fCollectionProxy) { fgCallingNew = defConstructor; p = fCollectionProxy->New(); fgCallingNew = kRealNew; if (!p) { Error("New", "cannot create object of class %s", GetName()); } } else if (!fClassInfo && !fCollectionProxy) { # 2977 "meta/src/TClass.cxx" Bool_t statsave = GetObjectStat(); SetObjectStat(kFALSE); TVirtualStreamerInfo* sinfo = GetStreamerInfo(); if (!sinfo) { Error("New", "Cannot construct class '%s' version %d, no streamer info available!", GetName(), fClassVersion); return 0; } fgCallingNew = defConstructor; p = sinfo->New(); fgCallingNew = kRealNew; SetObjectStat(statsave); if (p) { RegisterAddressInRepository("New",p,this); } } else { Error("New", "This cannot happen!"); } return p; } void *TClass::New(void *arena, ENewType defConstructor) { void* p = 0; if (fNew) { fgCallingNew = defConstructor; p = fNew(arena); fgCallingNew = kRealNew; if (!p) { Error("New with placement", "cannot create object of class %s version %d at address %p", GetName(), fClassVersion, arena); } } else if (fClassInfo) { # 3034 "meta/src/TClass.cxx" fgCallingNew = defConstructor; if (gGlobalMutex && !gCINTMutex) { gGlobalMutex->Lock(); if (!gCINTMutex) gCINTMutex = gGlobalMutex->Factory(kTRUE); gGlobalMutex->UnLock(); } TLockGuard R__guard(gCINTMutex); p = GetClassInfo()->New(arena); fgCallingNew = kRealNew; if (!p) { Error("New with placement", "cannot create object of class %s version %d at address %p", GetName(), fClassVersion, arena); } } else if (!fClassInfo && fCollectionProxy) { fgCallingNew = defConstructor; p = fCollectionProxy->New(arena); fgCallingNew = kRealNew; } else if (!fClassInfo && !fCollectionProxy) { # 3060 "meta/src/TClass.cxx" Bool_t statsave = GetObjectStat(); SetObjectStat(kFALSE); TVirtualStreamerInfo* sinfo = GetStreamerInfo(); if (!sinfo) { Error("New with placement", "Cannot construct class '%s' version %d at address %p, no streamer info available!", GetName(), fClassVersion, arena); return 0; } fgCallingNew = defConstructor; p = sinfo->New(arena); fgCallingNew = kRealNew; SetObjectStat(statsave); if (p) { RegisterAddressInRepository("TClass::New with placement",p,this); } } else { Error("New with placement", "This cannot happen!"); } return p; } void *TClass::NewArray(Long_t nElements, ENewType defConstructor) { void* p = 0; if (fNewArray) { fgCallingNew = defConstructor; p = fNewArray(nElements, 0); fgCallingNew = kRealNew; if (!p) { Error("NewArray", "cannot create object of class %s version %d", GetName(), fClassVersion); } } else if (fClassInfo) { # 3118 "meta/src/TClass.cxx" fgCallingNew = defConstructor; if (gGlobalMutex && !gCINTMutex) { gGlobalMutex->Lock(); if (!gCINTMutex) gCINTMutex = gGlobalMutex->Factory(kTRUE); gGlobalMutex->UnLock(); } TLockGuard R__guard(gCINTMutex); p = GetClassInfo()->New(nElements); fgCallingNew = kRealNew; if (!p) { Error("NewArray", "cannot create object of class %s version %d", GetName(), fClassVersion); } } else if (!fClassInfo && fCollectionProxy) { fgCallingNew = defConstructor; p = fCollectionProxy->NewArray(nElements); fgCallingNew = kRealNew; } else if (!fClassInfo && !fCollectionProxy) { # 3144 "meta/src/TClass.cxx" Bool_t statsave = GetObjectStat(); SetObjectStat(kFALSE); TVirtualStreamerInfo* sinfo = GetStreamerInfo(); if (!sinfo) { Error("NewArray", "Cannot construct class '%s' version %d, no streamer info available!", GetName(), fClassVersion); return 0; } fgCallingNew = defConstructor; p = sinfo->NewArray(nElements); fgCallingNew = kRealNew; SetObjectStat(statsave); if (p) { RegisterAddressInRepository("TClass::NewArray",p,this); } } else { Error("NewArray", "This cannot happen!"); } return p; } void *TClass::NewArray(Long_t nElements, void *arena, ENewType defConstructor) { void* p = 0; if (fNewArray) { fgCallingNew = defConstructor; p = fNewArray(nElements, arena); fgCallingNew = kRealNew; if (!p) { Error("NewArray with placement", "cannot create object of class %s version %d at address %p", GetName(), fClassVersion, arena); } } else if (fClassInfo) { # 3201 "meta/src/TClass.cxx" fgCallingNew = defConstructor; if (gGlobalMutex && !gCINTMutex) { gGlobalMutex->Lock(); if (!gCINTMutex) gCINTMutex = gGlobalMutex->Factory(kTRUE); gGlobalMutex->UnLock(); } TLockGuard R__guard(gCINTMutex); p = GetClassInfo()->New(nElements, arena); fgCallingNew = kRealNew; if (!p) { Error("NewArray with placement", "cannot create object of class %s version %d at address %p", GetName(), fClassVersion, arena); } } else if (!fClassInfo && fCollectionProxy) { fgCallingNew = defConstructor; p = fCollectionProxy->NewArray(nElements, arena); fgCallingNew = kRealNew; } else if (!fClassInfo && !fCollectionProxy) { # 3227 "meta/src/TClass.cxx" Bool_t statsave = GetObjectStat(); SetObjectStat(kFALSE); TVirtualStreamerInfo* sinfo = GetStreamerInfo(); if (!sinfo) { Error("NewArray with placement", "Cannot construct class '%s' version %d at address %p, no streamer info available!", GetName(), fClassVersion, arena); return 0; } fgCallingNew = defConstructor; p = sinfo->NewArray(nElements, arena); fgCallingNew = kRealNew; SetObjectStat(statsave); if (fStreamerType & kEmulated) { } if (p) { RegisterAddressInRepository("TClass::NewArray with placement",p,this); } } else { Error("NewArray with placement", "This cannot happen!"); } return p; } void TClass::Destructor(void *obj, Bool_t dtorOnly) { if (obj == 0) return; void* p = obj; if (dtorOnly && fDestructor) { fDestructor(p); } else if ((!dtorOnly) && fDelete) { fDelete(p); } else if (fClassInfo) { # 3285 "meta/src/TClass.cxx" if (dtorOnly) { fClassInfo->Destruct(p); } else { fClassInfo->Delete(p); } } else if (!fClassInfo && fCollectionProxy) { fCollectionProxy->Destructor(p, dtorOnly); } else if (!fClassInfo && !fCollectionProxy) { Bool_t inRepo = kTRUE; Bool_t verFound = kFALSE; std::multiset knownVersions; std::multimap::iterator iter = gObjectVersionRepository.find(p); if (iter == gObjectVersionRepository.end()) { inRepo = kFALSE; } else { for (; (iter != gObjectVersionRepository.end()) && (iter->first == p); ++iter) { Version_t ver = iter->second; knownVersions.insert(ver); if (ver == fClassVersion) { verFound = kTRUE; } } } if (!inRepo || verFound) { TVirtualStreamerInfo* si = GetStreamerInfo(); if (si) { si->Destructor(p, dtorOnly); } else { Error("Destructor", "No streamer info available for class '%s' version %d at address %p, cannot destruct emulated object!", GetName(), fClassVersion, p); Error("Destructor", "length of fStreamerInfo is %d", fStreamerInfo->GetSize()); Int_t i = fStreamerInfo->LowerBound(); for (Int_t v = 0; v < fStreamerInfo->GetSize(); ++v, ++i) { Error("Destructor", "fStreamerInfo->At(%d): %p", i, fStreamerInfo->At(i)); if (fStreamerInfo->At(i) != 0) { Error("Destructor", "Doing Dump() ..."); ((TVirtualStreamerInfo*)fStreamerInfo->At(i))->Dump(); } } } } else { Error("Destructor", "Loaded class %s version %d is not registered for addr %p", GetName(), fClassVersion, p); # 3363 "meta/src/TClass.cxx" } if (inRepo && verFound && p) { UnregisterAddressInRepository("TClass::Destructor",p,this); } } else { Error("Destructor", "This cannot happen! (class %s)", GetName()); } } void TClass::DeleteArray(void *ary, Bool_t dtorOnly) { if (ary == 0) return; void* p = ary; if (fDeleteArray) { if (dtorOnly) { Error("DeleteArray", "Destructor only is not supported!"); } else { fDeleteArray(ary); } } else if (fClassInfo) { if (gGlobalMutex && !gCINTMutex) { gGlobalMutex->Lock(); if (!gCINTMutex) gCINTMutex = gGlobalMutex->Factory(kTRUE); gGlobalMutex->UnLock(); } TLockGuard R__guard(gCINTMutex); GetClassInfo()->DeleteArray(ary, dtorOnly); } else if (!fClassInfo && fCollectionProxy) { fCollectionProxy->DeleteArray(ary, dtorOnly); } else if (!fClassInfo && !fCollectionProxy) { Bool_t inRepo = kTRUE; Bool_t verFound = kFALSE; std::multiset knownVersions; std::multimap::iterator iter = gObjectVersionRepository.find(p); if (iter == gObjectVersionRepository.end()) { inRepo = kFALSE; } else { for (; (iter != gObjectVersionRepository.end()) && (iter->first == p); ++iter) { Version_t ver = iter->second; knownVersions.insert(ver); if (ver == fClassVersion) { verFound = kTRUE; } } } if (!inRepo || verFound) { TVirtualStreamerInfo* si = GetStreamerInfo(); if (si) { si->DeleteArray(ary, dtorOnly); } else { Error("DeleteArray", "No streamer info available for class '%s' version %d at address %p, cannot destruct object!", GetName(), fClassVersion, ary); Error("DeleteArray", "length of fStreamerInfo is %d", fStreamerInfo->GetSize()); Int_t i = fStreamerInfo->LowerBound(); for (Int_t v = 0; v < fStreamerInfo->GetSize(); ++v, ++i) { Error("DeleteArray", "fStreamerInfo->At(%d): %p", v, fStreamerInfo->At(i)); if (fStreamerInfo->At(i)) { Error("DeleteArray", "Doing Dump() ..."); ((TVirtualStreamerInfo*)fStreamerInfo->At(i))->Dump(); } } } } else { Error("DeleteArray", "Loaded class version %d is not registered for addr %p", fClassVersion, p); # 3478 "meta/src/TClass.cxx" } if (inRepo && verFound && p) { UnregisterAddressInRepository("TClass::DeleteArray",p,this); } } else { Error("DeleteArray", "This cannot happen! (class '%s')", GetName()); } } void TClass::SetCurrentStreamerInfo(TVirtualStreamerInfo *info) { fCurrentInfo = info; } Int_t TClass::Size() const { if (fSizeof!=-1) return fSizeof; if (fCollectionProxy) return fCollectionProxy->Sizeof(); if (fClassInfo) return GetClassInfo()->Size(); return ((TClass*)this)->GetStreamerInfo()->GetSize(); } TClass *TClass::Load(TBuffer &b) { UInt_t maxsize = 256; char *s = new char[maxsize]; Int_t pos = b.Length(); b.ReadString(s, maxsize); while (strlen(s)==maxsize) { b.SetBufferOffset(pos); maxsize = 2*maxsize; delete [] s; s = new char[maxsize]; b.ReadString(s, maxsize); } TClass *cl = TClass::GetClass(s, kTRUE); if (!cl) ::Error("TClass::Load", "dictionary of class %s not found", s); delete [] s; return cl; } void TClass::Store(TBuffer &b) const { b.WriteString(GetName()); } TClass *ROOT::CreateClass(const char *cname, Version_t id, const type_info &info, TVirtualIsAProxy *isa, ShowMembersFunc_t show, const char *dfil, const char *ifil, Int_t dl, Int_t il) { if (gMmallocDesc) { void *msave = gMmallocDesc; gMmallocDesc = 0; TClass *cl = new TClass(cname, id, info, isa, show, dfil, ifil, dl, il); gMmallocDesc = msave; return cl; } return new TClass(cname, id, info, isa, show, dfil, ifil, dl, il); } TClass *ROOT::CreateClass(const char *cname, Version_t id, const char *dfil, const char *ifil, Int_t dl, Int_t il) { if (gMmallocDesc) { void *msave = gMmallocDesc; gMmallocDesc = 0; TClass *cl = new TClass(cname, id, dfil, ifil, dl, il); gMmallocDesc = msave; return cl; } return new TClass(cname, id, dfil, ifil, dl, il); } TClass::ENewType TClass::IsCallingNew() { return fgCallingNew; } Bool_t TClass::IsLoaded() const { return (GetImplFileLine()>=0 && !TestBit(kUnloaded)); } Bool_t TClass::IsStartingWithTObject() const { # 3621 "meta/src/TClass.cxx" if (fProperty==(-1)) Property(); return TestBit(kStartWithTObject); } Bool_t TClass::IsTObject() const { if (fProperty==(-1)) Property(); return TestBit(kIsTObject); } Bool_t TClass::IsForeign() const { if (fProperty==(-1)) Property(); return TestBit(kIsForeign); } void TClass::PostLoadCheck() { if (IsLoaded() && fClassInfo && fClassVersion==1 && fStreamerInfo && fStreamerInfo->At(1) && IsForeign() ) { SetClassVersion(-1); } else if (IsLoaded() && fClassInfo && fStreamerInfo && !IsForeign() ) { TVirtualStreamerInfo *info = (TVirtualStreamerInfo*)(fStreamerInfo->At(fClassVersion)); if (info && GetListOfDataMembers() && (info->GetCheckSum()!=GetCheckSum() && info->GetCheckSum()!=GetCheckSum(1))) { Bool_t warn = ! TestBit(kWarned); if (warn && info->GetOldVersion()<=2) { TIter nextBC(GetListOfBases()); TBaseClass *bc; while ((bc=(TBaseClass*)nextBC())) {if (TClassEdit::IsSTLCont(bc->GetName())) warn = kFALSE;} } if (warn) { Warning("PostLoadCheck","\n The StreamerInfo version %d for the class %s which was read\n from a file previously opened has the same version as the active class \n but a different checksum. You should update the version to ClassDef(%s,%d).\n Do not try to write objects with the current class definition,\n the files will not be readable.\n" , fClassVersion, GetName(), GetName(), fClassVersion+1); SetBit(kWarned); } } } } Long_t TClass::Property() const { # 3707 "meta/src/TClass.cxx" if (fProperty!=(-1)) return fProperty; Long_t dummy; TClass *kl = const_cast(this); kl->fStreamerType = kNone; if (InheritsFrom(TObject::Class())) { kl->SetBit(kIsTObject); Int_t delta = kl->GetBaseClassOffset(TObject::Class()); if (delta==0) kl->SetBit(kStartWithTObject); kl->fStreamerType = kTObject; } if (fClassInfo) { kl->fProperty = fClassInfo->Property(); if (!fClassInfo->HasMethod("Streamer") || !fClassInfo->GetMethod("Streamer","TBuffer&",&dummy).IsValid() ) { kl->SetBit(kIsForeign); kl->fStreamerType = kForeign; } else if ( kl->fStreamerType == kNone ) { kl->fStreamerType = kInstrumented; } if (fStreamer) kl->fStreamerType = kExternal; } else { if (fStreamer) kl->fStreamerType = kExternal; kl->fStreamerType |= kEmulated; return 0; } return fProperty; } # 1 "include/TGenCollectionProxy.h" 1 # 29 "include/TGenCollectionProxy.h" # 1 "include/TCollectionProxyFactory.h" 1 # 25 "include/TCollectionProxyFactory.h" # 1 "include/TCollectionProxyInfo.h" 1 # 35 "include/TCollectionProxyInfo.h" namespace ROOT { class TCollectionProxyInfo { public: # 55 "include/TCollectionProxyInfo.h" template struct Environ { typedef T Iter_t; char buff[64]; size_t idx; size_t size; void* object; void* start; void* temp; Bool_t delete_temp; int refCount; size_t space; T& iter() { return *(T*)buff; } }; template struct PairHolder { T first; Q second; PairHolder() {} PairHolder(const PairHolder& c) : first(c.first), second(c.second) {} virtual ~PairHolder() {} private: PairHolder& operator=(const PairHolder&); }; template struct Address { virtual ~Address() {} static void* address(T ref) { return (void*)&ref; } }; # 101 "include/TCollectionProxyInfo.h" template struct Type : public Address { typedef T Cont_t; typedef typename T::iterator Iter_t; typedef typename T::value_type Value_t; typedef Environ Env_t; typedef Env_t *PEnv_t; typedef Cont_t *PCont_t; typedef Value_t *PValue_t; virtual ~Type() {} static __inline__ PCont_t object(void* ptr) { return PCont_t(PEnv_t(ptr)->object); } static void* size(void* env) { PEnv_t e = PEnv_t(env); e->size = PCont_t(e->object)->size(); return &e->size; } static void* clear(void* env) { object(env)->clear(); return 0; } static void* first(void* env) { PEnv_t e = PEnv_t(env); PCont_t c = PCont_t(e->object); ::new(e->buff) Iter_t(c->begin()); e->size = c->size(); if ( 0 == e->size ) return e->start = 0; typename T::const_reference ref = *(e->iter()); return e->start = address(ref); } static void* next(void* env) { PEnv_t e = PEnv_t(env); PCont_t c = PCont_t(e->object); for (; e->idx > 0 && e->iter() != c->end(); ++(e->iter()), --e->idx ); if ( e->iter() == c->end() ) return 0; typename T::const_reference ref = *(e->iter()); return address(ref); } static void* construct(void* env) { PEnv_t e = PEnv_t(env); PValue_t m = PValue_t(e->start); for (size_t i=0; isize; ++i, ++m) ::new(m) Value_t(); return 0; } static void* collect(void* env) { PEnv_t e = PEnv_t(env); PCont_t c = PCont_t(e->object); PValue_t m = PValue_t(e->start); for (Iter_t i=c->begin(); i != c->end(); ++i, ++m ) ::new(m) Value_t(*i); return 0; } static void* destruct(void* env) { PEnv_t e = PEnv_t(env); PValue_t m = PValue_t(e->start); for (size_t i=0; i < e->size; ++i, ++m ) m->~Value_t(); return 0; } }; # 196 "include/TCollectionProxyInfo.h" template struct Pushback : public Type { typedef T Cont_t; typedef typename T::iterator Iter_t; typedef typename T::value_type Value_t; typedef Environ Env_t; typedef Env_t *PEnv_t; typedef Cont_t *PCont_t; typedef Value_t *PValue_t; static void* resize(void* env) { PEnv_t e = PEnv_t(env); PCont_t c = PCont_t(e->object); c->resize(e->size); e->idx = 0; return e->start = address(*c->begin()); } static void* feed(void* env) { PEnv_t e = PEnv_t(env); PCont_t c = PCont_t(e->object); PValue_t m = PValue_t(e->start); for (size_t i=0; isize; ++i, ++m) c->push_back(*m); return 0; } static int value_offset() { return 0; } }; # 233 "include/TCollectionProxyInfo.h" template struct Insert : public Type { typedef T Cont_t; typedef typename T::iterator Iter_t; typedef typename T::value_type Value_t; typedef Environ Env_t; typedef Env_t *PEnv_t; typedef Cont_t *PCont_t; typedef Value_t *PValue_t; static void* feed(void* env) { PEnv_t e = PEnv_t(env); PCont_t c = PCont_t(e->object); PValue_t m = PValue_t(e->start); for (size_t i=0; isize; ++i, ++m) c->insert(*m); return 0; } static void* resize(void* ) { return 0; } static int value_offset() { return 0; } }; # 266 "include/TCollectionProxyInfo.h" template struct MapInsert : public Type { typedef T Cont_t; typedef typename T::iterator Iter_t; typedef typename T::value_type Value_t; typedef Environ Env_t; typedef Env_t *PEnv_t; typedef Cont_t *PCont_t; typedef Value_t *PValue_t; static void* feed(void* env) { PEnv_t e = PEnv_t(env); PCont_t c = PCont_t(e->object); PValue_t m = PValue_t(e->start); for (size_t i=0; isize; ++i, ++m) c->insert(*m); return 0; } static void* resize(void* ) { return 0; } static int value_offset() { return ((char*)&((PValue_t(0x1000))->second)) - ((char*)PValue_t(0x1000)); } }; public: const type_info &fInfo; size_t fIterSize; size_t fValueDiff; int fValueOffset; void* (*fSizeFunc)(void*); void* (*fResizeFunc)(void*); void* (*fClearFunc)(void*); void* (*fFirstFunc)(void*); void* (*fNextFunc)(void*); void* (*fConstructFunc)(void*); void* (*fDestructFunc)(void*); void* (*fFeedFunc)(void*); void* (*fCollectFunc)(void*); public: TCollectionProxyInfo(const type_info& info, size_t iter_size, size_t value_diff, int value_offset, void* (*size_func)(void*), void* (*resize_func)(void*), void* (*clear_func)(void*), void* (*first_func)(void*), void* (*next_func)(void*), void* (*construct_func)(void*), void* (*destruct_func)(void*), void* (*feed_func)(void*), void* (*collect_func)(void*) ) : fInfo(info), fIterSize(iter_size), fValueDiff(value_diff), fValueOffset(value_offset), fSizeFunc(size_func),fResizeFunc(resize_func),fClearFunc(clear_func), fFirstFunc(first_func),fNextFunc(next_func),fConstructFunc(construct_func), fDestructFunc(destruct_func),fFeedFunc(feed_func),fCollectFunc(collect_func) { } template static ROOT::TCollectionProxyInfo* Generate(const T&) { PairHolder* p = (PairHolder*)0x1000; return new ROOT::TCollectionProxyInfo(typeid(typename T::Cont_t), sizeof(typename T::Iter_t), (((char*)&p->second)-((char*)&p->first)), T::value_offset(), T::size, T::resize, T::clear, T::first, T::next, T::construct, T::destruct, T::feed, T::collect); } template static ROOT::TCollectionProxyInfo Get(const T&) { PairHolder* p = (PairHolder*)0x1000; return ROOT::TCollectionProxyInfo(typeid(typename T::Cont_t), sizeof(typename T::Iter_t), (((char*)&p->second)-((char*)&p->first)), T::value_offset(), T::size, T::resize, T::clear, T::first, T::next, T::construct, T::destruct, T::feed, T::collect); } }; template<> __inline__ void* ::ROOT::TCollectionProxyInfo::Address::const_reference>::address(std::vector::const_reference ) { return 0; } } # 26 "include/TCollectionProxyFactory.h" 2 # 36 "include/TCollectionProxyFactory.h" class TBuffer; class TGenCollectionProxy; class TGenCollectionStreamer; class TVirtualCollectionProxy; class TEmulatedCollectionProxy; # 73 "include/TCollectionProxyFactory.h" class TCollectionProxyFactory { public: typedef TVirtualCollectionProxy Proxy_t; typedef const std::type_info& Info_t; static TVirtualCollectionProxy* GenEmulatedProxy(const char* class_name); static TClassStreamer* GenEmulatedClassStreamer(const char* class_name); static TMemberStreamer* GenEmulatedMemberStreamer(const char* class_name); static Proxy_t* GenExplicitProxy( const ::ROOT::TCollectionProxyInfo &info, TClass *cl ); template static Proxy_t* GenProxy(const T &arg, TClass *cl) { return GenExplicitProxy( ::ROOT::TCollectionProxyInfo::Get(arg), cl ); } static TGenCollectionStreamer* GenExplicitStreamer( const ::ROOT::TCollectionProxyInfo &info, TClass *cl ); static TClassStreamer* GenExplicitClassStreamer( const ::ROOT::TCollectionProxyInfo &info, TClass *cl ); template static TClassStreamer* GenClassStreamer(const T &arg, TClass *cl) { return GenExplicitClassStreamer(::ROOT::TCollectionProxyInfo::Get(arg), cl); } static TMemberStreamer* GenExplicitMemberStreamer(const ::ROOT::TCollectionProxyInfo &info, TClass *cl); template static TMemberStreamer* GenMemberStreamer(const T &arg, TClass *cl) { return GenExplicitMemberStreamer(::ROOT::TCollectionProxyInfo::Get(arg), cl); } }; # 137 "include/TCollectionProxyFactory.h" class TCollectionStreamer { private: TCollectionStreamer& operator=(const TCollectionStreamer&); protected: TGenCollectionProxy* fStreamer; void InvalidProxyError(); public: TCollectionStreamer(); TCollectionStreamer(const TCollectionStreamer& c); virtual ~TCollectionStreamer(); void AdoptStreamer(TGenCollectionProxy* streamer); void Streamer(TBuffer &refBuffer, void *pObject, int siz); }; # 170 "include/TCollectionProxyFactory.h" class TCollectionClassStreamer : public TClassStreamer, public TCollectionStreamer { public: TCollectionClassStreamer() : TClassStreamer(0) { } TCollectionClassStreamer(const TCollectionClassStreamer& c) : TClassStreamer(c), TCollectionStreamer(c) { } virtual ~TCollectionClassStreamer() { } virtual void operator()(TBuffer &buff, void *pObj) { Streamer(buff,pObj,0); } virtual TClassStreamer *Generate() { return new TCollectionClassStreamer(*this); } TGenCollectionProxy *GetXYZ() { return TCollectionStreamer::fStreamer; } }; # 201 "include/TCollectionProxyFactory.h" class TCollectionMemberStreamer : public TMemberStreamer, public TCollectionStreamer { public: TCollectionMemberStreamer() : TMemberStreamer(0) { } TCollectionMemberStreamer(const TCollectionMemberStreamer& c) : TMemberStreamer(c), TCollectionStreamer(c) { } virtual ~TCollectionMemberStreamer() { } virtual void operator()(TBuffer &buff,void *pObj,Int_t siz=0) { Streamer(buff, pObj, siz); } }; # 30 "include/TGenCollectionProxy.h" 2 class TGenCollectionProxy : public TVirtualCollectionProxy { friend class TCollectionProxyFactory; public: typedef const std::type_info& Info_t; enum { kBIT_ISSTRING = 0x20000000, kBIT_ISTSTRING = 0x40000000, kBOOL_t = 21 }; # 66 "include/TGenCollectionProxy.h" struct Value { ROOT::NewFunc_t fCtor; ROOT::DesFunc_t fDtor; ROOT::DelFunc_t fDelete; unsigned int fCase; TClassRef fType; EDataType fKind; size_t fSize; Value(const Value& inside); Value(const std::string& info); void DeleteItem(void* ptr); }; # 91 "include/TGenCollectionProxy.h" union StreamHelper { Bool_t boolean; Char_t s_char; Short_t s_short; Int_t s_int; Long_t s_long; Long64_t s_longlong; Float_t flt; Double_t dbl; UChar_t u_char; UShort_t u_short; UInt_t u_int; ULong_t u_long; ULong64_t u_longlong; void* p_void; void** pp_void; char* kchar; TString* tstr; void* ptr() { return *(&this->p_void); } std::string* str() { return (std::string*)this; } const char* c_str() { return ((std::string*)this)->c_str(); } const char* c_pstr() { return (*(std::string**)this)->c_str(); } void set(void* p) { *(&this->p_void) = p; } void read_std_string(TBuffer& b) { TString s; s.Streamer(b); ((std::string*)this)->assign(s.Data()); } void* read_tstring(TBuffer& b) { *((TString*)this) = ""; ((TString*)this)->Streamer(b); return this; } void read_std_string_pointer(TBuffer& b) { TString s; std::string* str = (std::string*)ptr(); if (!str) str = new std::string(); s.Streamer(b); *str = s; set(str); } void write_std_string_pointer(TBuffer& b) { const char* c; if (ptr()) { std::string* strptr = (*(std::string**)this); c = (const char*)(strptr->c_str()); } else c = ""; TString(c).Streamer(b); } void read_any_object(Value* v, TBuffer& b) { void* p = ptr(); if ( p ) { if ( v->fDelete ) { (*v->fDelete)(p); } else if ( v->fType ) { v->fType->Destructor(p); } else if ( v->fDtor ) { (*v->fDtor)(p); ::operator delete(p); } else { ::operator delete(p); } } set( b.ReadObjectAny(v->fType) ); } void read_tstring_pointer(Bool_t vsn3, TBuffer& b) { TString* s = (TString*)ptr(); if ( vsn3 ) { if ( !s ) s = new TString(); s->Replace(0, s->Length(), 0, 0); s->Streamer(b); set(s); return; } if ( s ) delete s; set( b.ReadObjectAny(TString::Class()) ); } void write_tstring_pointer(TBuffer& b) { b.WriteObjectAny(ptr(), TString::Class()); } }; # 196 "include/TGenCollectionProxy.h" struct Method { typedef void* (*Call_t)(void*); Call_t call; Method() : call(0) { } Method(Call_t c) : call(c) { } Method(const Method& m) : call(m.call) { } void* invoke(void* obj) const { return (*call)(obj); } }; protected: typedef ROOT::TCollectionProxyInfo::Environ Env_t; typedef std::vector Proxies_t; std::string fName; Bool_t fPointers; Method fClear; Method fSize; Method fResize; Method fFirst; Method fNext; Method fConstruct; Method fDestruct; Method fFeed; Method fCollect; Value* fValue; Value* fVal; Value* fKey; Env_t* fEnv; int fValOffset; int fValDiff; Proxies_t fProxyList; Proxies_t fProxyKept; int fSTL_type; Info_t fTypeinfo; TGenCollectionProxy* Initialize() const; virtual TGenCollectionProxy* InitializeEx(); virtual void DeleteItem(Bool_t force, void* ptr) const; void CheckFunctions() const; public: virtual TVirtualCollectionProxy* Generate() const; TGenCollectionProxy(const TGenCollectionProxy& copy); TGenCollectionProxy(Info_t typ, size_t iter_size); TGenCollectionProxy(const ROOT::TCollectionProxyInfo &info, TClass *cl); virtual ~TGenCollectionProxy(); virtual TClass *GetCollectionClass(); virtual UInt_t Sizeof() const; virtual void PushProxy(void *objstart); virtual void PopProxy(); virtual Bool_t HasPointers() const; virtual TClass *GetValueClass(); virtual void SetValueClass(TClass *newcl); virtual EDataType GetType(); virtual void *At(UInt_t idx); virtual void Clear(const char *opt = ""); virtual void Resize(UInt_t n, Bool_t force_delete); virtual UInt_t Size() const; virtual void* Allocate(UInt_t n, Bool_t forceDelete); virtual void Commit(void* env); virtual void Streamer(TBuffer &refBuffer); virtual void Streamer(TBuffer &refBuffer, void *pObject, int siz); virtual void operator()(TBuffer &refBuffer, void *pObject); }; template struct AnyCollectionProxy : public TGenCollectionProxy { AnyCollectionProxy() : TGenCollectionProxy(typeid(T::Cont_t),sizeof(T::Iter_t)) { fValDiff = sizeof(T::Value_t); fValOffset = T::value_offset(); fSize.call = T::size; fResize.call = T::resize; fNext.call = T::next; fFirst.call = T::first; fClear.call = T::clear; fConstruct.call = T::construct; fDestruct.call = T::destruct; fFeed.call = T::feed; CheckFunctions(); } virtual ~AnyCollectionProxy() { } }; # 3753 "meta/src/TClass.cxx" 2 void TClass::SetCollectionProxy(const ROOT::TCollectionProxyInfo &info) { delete fCollectionProxy; TVirtualCollectionProxy *p = TVirtualStreamerInfo::Factory(this)->GenExplicitProxy(info,this); fCollectionProxy = p; AdoptStreamer(TVirtualStreamerInfo::Factory(this)->GenExplicitClassStreamer(info,this)); } void TClass::SetContextMenuTitle(const char *title) { fContextMenuTitle = title; } void TClass::SetGlobalIsA(IsAGlobalFunc_t func) { # 3804 "meta/src/TClass.cxx" fGlobalIsA = func; } void TClass::SetUnloaded() { delete fIsA; fIsA = 0; int autoload_old = G__set_class_autoloading(0); (TInterpreter::Instance())->SetClassInfo(this,kTRUE); G__set_class_autoloading(autoload_old); fDeclFileName = 0; fDeclFileLine = 0; fImplFileName = 0; fImplFileLine = 0; fTypeInfo = 0; SetBit(kUnloaded); } TVirtualStreamerInfo *TClass::SetStreamerInfo(Int_t , const char * ) { # 3951 "meta/src/TClass.cxx" return 0; } UInt_t TClass::GetCheckSum(UInt_t code) const { # 3966 "meta/src/TClass.cxx" if (fCheckSum && code != 1) return fCheckSum; UInt_t id = 0; int il; TString name = GetName(); TString type; il = name.Length(); for (int i=0; iGetListOfBases(); if (tlb) { TIter nextBase(tlb); TBaseClass *tbc=0; while((tbc=(TBaseClass*)nextBase())) { name = tbc->GetName(); il = name.Length(); for (int i=0; iGetListOfDataMembers(); if (tlm) { TIter nextMemb(tlm); TDataMember *tdm=0; Long_t prop = 0; while((tdm=(TDataMember*)nextMemb())) { if (!tdm->IsPersistent()) continue; prop = (tdm->Property()); TDataType* tdt = tdm->GetDataType(); if (tdt) prop |= tdt->Property(); if ( prop&kIsStatic) continue; name = tdm->GetName(); il = name.Length(); if ( (code != 1) && prop&kIsEnum) id = id*3 + 1; int i; for (i=0; iGetFullTypeName(); if (TClassEdit::IsSTLCont(type)) type = TClassEdit::ShortType( type, TClassEdit::kDropStlDefault ); il = type.Length(); for (i=0; iGetArrayDim(); if (prop&kIsArray) { for (int i=0;iGetMaxIndex(i); } } } ((TClass*)this)->fCheckSum = id; return id; } void TClass::AdoptReferenceProxy(TVirtualRefProxy* proxy) { if ( fRefProxy ) { fRefProxy->Release(); } fRefProxy = proxy; if ( fRefProxy ) { fRefProxy->SetClass(this); } } void TClass::AdoptMemberStreamer(const char *name, TMemberStreamer *p) { if (!fRealData) return; TIter next(fRealData); TRealData *rd; while ((rd = (TRealData*)next())) { if (strcmp(rd->GetName(),name) == 0) { rd->AdoptStreamer(p); break; } } # 4072 "meta/src/TClass.cxx" return; } void TClass::SetMemberStreamer(const char *name, MemberStreamerFunc_t p) { AdoptMemberStreamer(name,new TMemberStreamer(p)); } Int_t TClass::ReadBuffer(TBuffer &b, void *pointer, Int_t version, UInt_t start, UInt_t count) { # 4094 "meta/src/TClass.cxx" return b.ReadClassBuffer(this,pointer,version,start,count); } Int_t TClass::ReadBuffer(TBuffer &b, void *pointer) { return b.ReadClassBuffer(this,pointer); } Int_t TClass::WriteBuffer(TBuffer &b, void *pointer, const char * ) { b.WriteClassBuffer(this,pointer); return 0; } void TClass::Streamer(void *object, TBuffer &b) { switch (fStreamerType) { case kExternal: case kExternal|kEmulated: (*GetStreamer())(b,object); return; case kTObject: { if (!fInterStreamer) { G__CallFunc* f = new G__CallFunc; f->SetFunc(fClassInfo->GetMethod("Streamer","TBuffer&",&fOffsetStreamer)); fInterStreamer = f; fOffsetStreamer = GetBaseClassOffset(TObject::Class()); } TObject *tobj = (TObject*)((Long_t)object + fOffsetStreamer); tobj->Streamer(b); } return; case kTObject|kEmulated : { b.ReadClassEmulated(this, object); } return; case kInstrumented: { G__CallFunc* func = (G__CallFunc*)fInterStreamer; if (!func) { func = new G__CallFunc; func->SetFunc(fClassInfo->GetMethod("Streamer","TBuffer&",&fOffsetStreamer)); fInterStreamer = func; } else { func->SetArgs(""); } func->SetArg((Long_t)&b); func->Exec((char*)((Long_t)object + fOffsetStreamer) ); } return; case kForeign: case kForeign|kEmulated: case kInstrumented|kEmulated: case kEmulated: { if (b.IsReading()) { b.ReadClassBuffer(this, object); } else { b.WriteClassBuffer(this, object); } } return; default: { if (fProperty==(-1)) { Property(); Streamer(object,b); } else { Fatal("Streamer", "fStreamerType not properly initialized (%d)", fStreamerType); } } } } void TClass::AdoptStreamer(TClassStreamer *str) { if (fStreamer) delete fStreamer; fStreamer = str; if (str) { fStreamerType = kExternal | ( fStreamerType&kEmulated ); } } void TClass::SetNew(ROOT::NewFunc_t newFunc) { fNew = newFunc; } void TClass::SetNewArray(ROOT::NewArrFunc_t newArrayFunc) { fNewArray = newArrayFunc; } void TClass::SetDelete(ROOT::DelFunc_t deleteFunc) { fDelete = deleteFunc; } void TClass::SetDeleteArray(ROOT::DelArrFunc_t deleteArrayFunc) { fDeleteArray = deleteArrayFunc; } void TClass::SetDestructor(ROOT::DesFunc_t destructorFunc) { fDestructor = destructorFunc; } TVirtualStreamerInfo *TClass::FindStreamerInfo(UInt_t checksum) const { Int_t ninfos = GetStreamerInfos()->GetEntriesFast(); for (Int_t i=-1;iAt(i); if (!info) continue; if (info->GetCheckSum() == checksum) { do { if (!(i==info->GetClassVersion() || (i==-1&&info->GetClassVersion()==1))) Fatal("", kAssertMsg, "i==info->GetClassVersion() || (i==-1&&info->GetClassVersion()==1)", 4267, "meta/src/TClass.cxx"); } while (0); return info; } } return 0; } Bool_t TClass::HasDefaultConstructor() const { if (fNew) return kTRUE; if (!GetClassInfo()) return kFALSE; return GetClassInfo()->HasDefaultConstructor(); } ROOT::NewFunc_t TClass::GetNew() const { return fNew; } ROOT::NewArrFunc_t TClass::GetNewArray() const { return fNewArray; } ROOT::DelFunc_t TClass::GetDelete() const { return fDelete; } ROOT::DelArrFunc_t TClass::GetDeleteArray() const { return fDeleteArray; } ROOT::DesFunc_t TClass::GetDestructor() const { return fDestructor; }