Go to:
Gentoo Home
Documentation
Forums
Lists
Bugs
Planet
Store
Wiki
Get Gentoo!
Gentoo's Bugzilla – Attachment 68043 Details for
Bug 105394
ogre 1.0.4 install fails due to libtool relinking crap
Home
|
New
–
[Ex]
|
Browse
|
Search
|
Privacy Policy
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
Preprocessed source 3
ccE58gka.out (text/plain), 1.41 MB, created by
Carlos Rendon
on 2005-09-09 08:52:22 UTC
(
hide
)
Description:
Preprocessed source 3
Filename:
MIME Type:
Creator:
Carlos Rendon
Created:
2005-09-09 08:52:22 UTC
Size:
1.41 MB
patch
obsolete
>// /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/cc1plus -quiet -I. -I. -I../../OgreMain/include -I/usr/include/freetype2 -I../../OgreMain/include -I/usr/include/SDL -MD .libs/OgreAnimationTrack.d -MF .deps/OgreAnimationTrack.Tpo -MP -MT OgreAnimationTrack.lo -MQ .libs/OgreAnimationTrack.o -D__GNUC__=3 -D__GNUC_MINOR__=3 -D__GNUC_PATCHLEVEL__=5 -D_GNU_SOURCE -DHAVE_CONFIG_H -DOGRE_NONCLIENT_BUILD -D_REENTRANT -DPIC OgreAnimationTrack.cpp -D__GNUG__=3 -quiet -dumpbase OgreAnimationTrack.cpp -march=pentium4 -auxbase-strip .libs/OgreAnimationTrack.o -O2 -fomit-frame-pointer -fPIC -o - -frandom-seed=0 ># 1 "OgreAnimationTrack.cpp" ># 1 "<built-in>" ># 1 "<command line>" ># 1 "OgreAnimationTrack.cpp" ># 25 "OgreAnimationTrack.cpp" ># 1 "../../OgreMain/include/OgreStableHeaders.h" 1 ># 35 "../../OgreMain/include/OgreStableHeaders.h" ># 1 "../../OgreMain/include/OgrePlatform.h" 1 ># 28 "../../OgreMain/include/OgrePlatform.h" ># 1 "../../OgreMain/include/OgreConfig.h" 1 ># 30 "../../OgreMain/include/OgreConfig.h" ># 1 "../../OgreMain/include/config.h" 1 ># 31 "../../OgreMain/include/OgreConfig.h" 2 ># 29 "../../OgreMain/include/OgrePlatform.h" 2 > >namespace Ogre { ># 199 "../../OgreMain/include/OgrePlatform.h" >typedef unsigned int uint32; >typedef unsigned short uint16; >typedef unsigned char uint8; > >} ># 36 "../../OgreMain/include/OgreStableHeaders.h" 2 ># 26 "OgreAnimationTrack.cpp" 2 ># 1 "../../OgreMain/include/OgreAnimationTrack.h" 1 ># 29 "../../OgreMain/include/OgreAnimationTrack.h" ># 1 "../../OgreMain/include/OgrePrerequisites.h" 1 ># 88 "../../OgreMain/include/OgrePrerequisites.h" ># 1 "../../OgreMain/include/OgreStdHeaders.h" 1 > > > > > > > ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/cassert" 1 3 ># 46 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/cassert" 3 > ># 47 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/cassert" 3 > ># 1 "/usr/include/assert.h" 1 3 4 ># 36 "/usr/include/assert.h" 3 4 ># 1 "/usr/include/features.h" 1 3 4 ># 309 "/usr/include/features.h" 3 4 ># 1 "/usr/include/sys/cdefs.h" 1 3 4 ># 310 "/usr/include/features.h" 2 3 4 ># 332 "/usr/include/features.h" 3 4 ># 1 "/usr/include/gnu/stubs.h" 1 3 4 ># 333 "/usr/include/features.h" 2 3 4 ># 37 "/usr/include/assert.h" 2 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__)); > > >} ># 49 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/cassert" 2 3 ># 9 "../../OgreMain/include/OgreStdHeaders.h" 2 ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/cstdio" 1 3 ># 47 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/cstdio" 3 > ># 48 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/cstdio" 3 > ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/i686-pc-linux-gnu/bits/c++config.h" 1 3 ># 35 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/i686-pc-linux-gnu/bits/c++config.h" 3 ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/i686-pc-linux-gnu/bits/os_defines.h" 1 3 ># 36 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/i686-pc-linux-gnu/bits/c++config.h" 2 3 ># 50 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/cstdio" 2 3 ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/cstddef" 1 3 ># 46 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/cstddef" 3 > ># 47 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/cstddef" 3 > ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/stddef.h" 1 3 4 ># 151 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/stddef.h" 3 4 >typedef int ptrdiff_t; ># 213 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/stddef.h" 3 4 >typedef unsigned int size_t; ># 49 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/cstddef" 2 3 > >namespace std >{ > using ::ptrdiff_t; > using ::size_t; >} ># 51 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/cstdio" 2 3 > ># 1 "/usr/include/stdio.h" 1 3 4 ># 30 "/usr/include/stdio.h" 3 4 >extern "C" { > > > ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/stddef.h" 1 3 4 ># 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/i686-pc-linux-gnu/3.3.5-20050130/include/stddef.h" 1 3 4 ># 32 "/usr/include/bits/types.h" 2 3 4 > > >typedef unsigned char __u_char; >typedef unsigned short int __u_short; >typedef unsigned int __u_int; >typedef unsigned long int __u_long; > > >typedef signed char __int8_t; >typedef unsigned char __uint8_t; >typedef signed short int __int16_t; >typedef unsigned short int __uint16_t; >typedef signed int __int32_t; >typedef unsigned int __uint32_t; > > > > >__extension__ typedef signed long long int __int64_t; >__extension__ typedef unsigned long long int __uint64_t; > > > > > > > >__extension__ typedef long long int __quad_t; >__extension__ typedef unsigned long long int __u_quad_t; ># 129 "/usr/include/bits/types.h" 3 4 ># 1 "/usr/include/bits/typesizes.h" 1 3 4 ># 130 "/usr/include/bits/types.h" 2 3 4 > > > > > > >__extension__ typedef __u_quad_t __dev_t; >__extension__ typedef unsigned int __uid_t; >__extension__ typedef unsigned int __gid_t; >__extension__ typedef unsigned long int __ino_t; >__extension__ typedef __u_quad_t __ino64_t; >__extension__ typedef unsigned int __mode_t; >__extension__ typedef unsigned int __nlink_t; >__extension__ typedef long int __off_t; >__extension__ typedef __quad_t __off64_t; >__extension__ typedef int __pid_t; >__extension__ typedef struct { int __val[2]; } __fsid_t; >__extension__ typedef long int __clock_t; >__extension__ typedef unsigned long int __rlim_t; >__extension__ typedef __u_quad_t __rlim64_t; >__extension__ typedef unsigned int __id_t; >__extension__ typedef long int __time_t; >__extension__ typedef unsigned int __useconds_t; >__extension__ typedef long int __suseconds_t; > >__extension__ typedef int __daddr_t; >__extension__ typedef long int __swblk_t; >__extension__ typedef int __key_t; > > >__extension__ typedef int __clockid_t; > > >__extension__ typedef int __timer_t; > > >__extension__ typedef long int __blksize_t; > > > > >__extension__ typedef long int __blkcnt_t; >__extension__ typedef __quad_t __blkcnt64_t; > > >__extension__ typedef unsigned long int __fsblkcnt_t; >__extension__ typedef __u_quad_t __fsblkcnt64_t; > > >__extension__ typedef unsigned long int __fsfilcnt_t; >__extension__ typedef __u_quad_t __fsfilcnt64_t; > >__extension__ typedef int __ssize_t; > > > >typedef __off64_t __loff_t; >typedef __quad_t *__qaddr_t; >typedef char *__caddr_t; > > >__extension__ typedef int __intptr_t; > > >__extension__ typedef unsigned int __socklen_t; ># 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/i686-pc-linux-gnu/3.3.5-20050130/include/stddef.h" 1 3 4 ># 354 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/stddef.h" 3 4 >typedef unsigned int wint_t; ># 15 "/usr/include/_G_config.h" 2 3 4 ># 24 "/usr/include/_G_config.h" 3 4 ># 1 "/usr/include/wchar.h" 1 3 4 ># 48 "/usr/include/wchar.h" 3 4 ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/stddef.h" 1 3 4 ># 49 "/usr/include/wchar.h" 2 3 4 > ># 1 "/usr/include/bits/wchar.h" 1 3 4 ># 51 "/usr/include/wchar.h" 2 3 4 ># 76 "/usr/include/wchar.h" 3 4 >typedef struct >{ > int __count; > union > { > wint_t __wch; > char __wchb[4]; > } __value; >} __mbstate_t; ># 25 "/usr/include/_G_config.h" 2 3 4 > >typedef struct >{ > __off_t __pos; > __mbstate_t __state; >} _G_fpos_t; >typedef struct >{ > __off64_t __pos; > __mbstate_t __state; >} _G_fpos64_t; ># 44 "/usr/include/_G_config.h" 3 4 ># 1 "/usr/include/gconv.h" 1 3 4 ># 28 "/usr/include/gconv.h" 3 4 ># 1 "/usr/include/wchar.h" 1 3 4 ># 48 "/usr/include/wchar.h" 3 4 ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/stddef.h" 1 3 4 ># 49 "/usr/include/wchar.h" 2 3 4 ># 29 "/usr/include/gconv.h" 2 3 4 > > ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/stddef.h" 1 3 4 ># 32 "/usr/include/gconv.h" 2 3 4 > > > > > >enum >{ > __GCONV_OK = 0, > __GCONV_NOCONV, > __GCONV_NODB, > __GCONV_NOMEM, > > __GCONV_EMPTY_INPUT, > __GCONV_FULL_OUTPUT, > __GCONV_ILLEGAL_INPUT, > __GCONV_INCOMPLETE_INPUT, > > __GCONV_ILLEGAL_DESCRIPTOR, > __GCONV_INTERNAL_ERROR >}; > > > >enum >{ > __GCONV_IS_LAST = 0x0001, > __GCONV_IGNORE_ERRORS = 0x0002 >}; > > > >struct __gconv_step; >struct __gconv_step_data; >struct __gconv_loaded_object; >struct __gconv_trans_data; > > > >typedef int (*__gconv_fct) (struct __gconv_step *, struct __gconv_step_data *, > __const unsigned char **, __const unsigned char *, > unsigned char **, size_t *, int, int); > > >typedef wint_t (*__gconv_btowc_fct) (struct __gconv_step *, unsigned char); > > >typedef int (*__gconv_init_fct) (struct __gconv_step *); >typedef void (*__gconv_end_fct) (struct __gconv_step *); > > > >typedef int (*__gconv_trans_fct) (struct __gconv_step *, > struct __gconv_step_data *, void *, > __const unsigned char *, > __const unsigned char **, > __const unsigned char *, unsigned char **, > size_t *); > > >typedef int (*__gconv_trans_context_fct) (void *, __const unsigned char *, > __const unsigned char *, > unsigned char *, unsigned char *); > > >typedef int (*__gconv_trans_query_fct) (__const char *, __const char ***, > size_t *); > > >typedef int (*__gconv_trans_init_fct) (void **, const char *); >typedef void (*__gconv_trans_end_fct) (void *); > >struct __gconv_trans_data >{ > > __gconv_trans_fct __trans_fct; > __gconv_trans_context_fct __trans_context_fct; > __gconv_trans_end_fct __trans_end_fct; > void *__data; > struct __gconv_trans_data *__next; >}; > > > >struct __gconv_step >{ > struct __gconv_loaded_object *__shlib_handle; > __const char *__modname; > > int __counter; > > char *__from_name; > char *__to_name; > > __gconv_fct __fct; > __gconv_btowc_fct __btowc_fct; > __gconv_init_fct __init_fct; > __gconv_end_fct __end_fct; > > > > int __min_needed_from; > int __max_needed_from; > int __min_needed_to; > int __max_needed_to; > > > int __stateful; > > void *__data; >}; > > > >struct __gconv_step_data >{ > unsigned char *__outbuf; > unsigned char *__outbufend; > > > > int __flags; > > > > int __invocation_counter; > > > > int __internal_use; > > __mbstate_t *__statep; > __mbstate_t __state; > > > > struct __gconv_trans_data *__trans; >}; > > > >typedef struct __gconv_info >{ > size_t __nsteps; > struct __gconv_step *__steps; > __extension__ struct __gconv_step_data __data []; >} *__gconv_t; ># 45 "/usr/include/_G_config.h" 2 3 4 >typedef union >{ > struct __gconv_info __cd; > struct > { > struct __gconv_info __cd; > struct __gconv_step_data __data; > } __combined; >} _G_iconv_t; > >typedef int _G_int16_t __attribute__ ((__mode__ (__HI__))); >typedef int _G_int32_t __attribute__ ((__mode__ (__SI__))); >typedef unsigned int _G_uint16_t __attribute__ ((__mode__ (__HI__))); >typedef unsigned int _G_uint32_t __attribute__ ((__mode__ (__SI__))); ># 33 "/usr/include/libio.h" 2 3 4 ># 53 "/usr/include/libio.h" 3 4 ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/stdarg.h" 1 3 4 ># 43 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/stdarg.h" 3 4 >typedef __builtin_va_list __gnuc_va_list; ># 54 "/usr/include/libio.h" 2 3 4 ># 166 "/usr/include/libio.h" 3 4 >struct _IO_jump_t; struct _IO_FILE; ># 176 "/usr/include/libio.h" 3 4 >typedef void _IO_lock_t; > > > > > >struct _IO_marker { > struct _IO_marker *_next; > struct _IO_FILE *_sbuf; > > > > int _pos; ># 199 "/usr/include/libio.h" 3 4 >}; > > >enum __codecvt_result >{ > __codecvt_ok, > __codecvt_partial, > __codecvt_error, > __codecvt_noconv >}; > > > > >struct _IO_codecvt >{ > void (*__codecvt_destr) (struct _IO_codecvt *); > enum __codecvt_result (*__codecvt_do_out) (struct _IO_codecvt *, > __mbstate_t *, > const wchar_t *, > const wchar_t *, > const wchar_t **, char *, > char *, char **); > enum __codecvt_result (*__codecvt_do_unshift) (struct _IO_codecvt *, > __mbstate_t *, char *, > char *, char **); > enum __codecvt_result (*__codecvt_do_in) (struct _IO_codecvt *, > __mbstate_t *, > const char *, const char *, > const char **, wchar_t *, > wchar_t *, wchar_t **); > int (*__codecvt_do_encoding) (struct _IO_codecvt *); > int (*__codecvt_do_always_noconv) (struct _IO_codecvt *); > int (*__codecvt_do_length) (struct _IO_codecvt *, __mbstate_t *, > const char *, const char *, size_t); > int (*__codecvt_do_max_length) (struct _IO_codecvt *); > > _G_iconv_t __cd_in; > _G_iconv_t __cd_out; >}; > > >struct _IO_wide_data >{ > wchar_t *_IO_read_ptr; > wchar_t *_IO_read_end; > wchar_t *_IO_read_base; > wchar_t *_IO_write_base; > wchar_t *_IO_write_ptr; > wchar_t *_IO_write_end; > wchar_t *_IO_buf_base; > wchar_t *_IO_buf_end; > > wchar_t *_IO_save_base; > wchar_t *_IO_backup_base; > > wchar_t *_IO_save_end; > > __mbstate_t _IO_state; > __mbstate_t _IO_last_state; > struct _IO_codecvt _codecvt; > > wchar_t _shortbuf[1]; > > const struct _IO_jump_t *_wide_vtable; >}; > > >struct _IO_FILE { > int _flags; > > > > > char* _IO_read_ptr; > char* _IO_read_end; > char* _IO_read_base; > char* _IO_write_base; > char* _IO_write_ptr; > char* _IO_write_end; > char* _IO_buf_base; > char* _IO_buf_end; > > char *_IO_save_base; > char *_IO_backup_base; > char *_IO_save_end; > > struct _IO_marker *_markers; > > struct _IO_FILE *_chain; > > int _fileno; > > > > int _flags2; > > __off_t _old_offset; > > > > unsigned short _cur_column; > signed char _vtable_offset; > char _shortbuf[1]; > > > > _IO_lock_t *_lock; ># 315 "/usr/include/libio.h" 3 4 > __off64_t _offset; > > > struct _IO_codecvt *_codecvt; > struct _IO_wide_data *_wide_data; > > > > > int _mode; > > char _unused2[15 * sizeof (int) - 2 * sizeof (void *)]; > >}; > > > > > >struct _IO_FILE_plus; > >extern struct _IO_FILE_plus _IO_2_1_stdin_; >extern struct _IO_FILE_plus _IO_2_1_stdout_; >extern struct _IO_FILE_plus _IO_2_1_stderr_; ># 354 "/usr/include/libio.h" 3 4 >typedef __ssize_t __io_read_fn (void *__cookie, char *__buf, size_t __nbytes); > > > > > > > >typedef __ssize_t __io_write_fn (void *__cookie, __const char *__buf, > size_t __n); > > > > > > > >typedef int __io_seek_fn (void *__cookie, __off64_t *__pos, int __w); > > >typedef int __io_close_fn (void *__cookie); > > > > >typedef __io_read_fn cookie_read_function_t; >typedef __io_write_fn cookie_write_function_t; >typedef __io_seek_fn cookie_seek_function_t; >typedef __io_close_fn cookie_close_function_t; > > >typedef struct >{ > __io_read_fn *read; > __io_write_fn *write; > __io_seek_fn *seek; > __io_close_fn *close; >} _IO_cookie_io_functions_t; >typedef _IO_cookie_io_functions_t cookie_io_functions_t; > >struct _IO_cookie_file; > > >extern void _IO_cookie_init (struct _IO_cookie_file *__cfile, int __read_write, > void *__cookie, _IO_cookie_io_functions_t __fns); > > > > >extern "C" { > > >extern int __underflow (_IO_FILE *) throw (); >extern int __uflow (_IO_FILE *) throw (); >extern int __overflow (_IO_FILE *, int) throw (); >extern wint_t __wunderflow (_IO_FILE *) throw (); >extern wint_t __wuflow (_IO_FILE *) throw (); >extern wint_t __woverflow (_IO_FILE *, wint_t) throw (); ># 444 "/usr/include/libio.h" 3 4 >extern int _IO_getc (_IO_FILE *__fp) throw (); >extern int _IO_putc (int __c, _IO_FILE *__fp) throw (); >extern int _IO_feof (_IO_FILE *__fp) throw (); >extern int _IO_ferror (_IO_FILE *__fp) throw (); > >extern int _IO_peekc_locked (_IO_FILE *__fp) throw (); > > > > > >extern void _IO_flockfile (_IO_FILE *) throw (); >extern void _IO_funlockfile (_IO_FILE *) throw (); >extern int _IO_ftrylockfile (_IO_FILE *) throw (); ># 474 "/usr/include/libio.h" 3 4 >extern int _IO_vfscanf (_IO_FILE * __restrict, const char * __restrict, > __gnuc_va_list, int *__restrict) throw (); >extern int _IO_vfprintf (_IO_FILE *__restrict, const char *__restrict, > __gnuc_va_list) throw (); >extern __ssize_t _IO_padn (_IO_FILE *, int, __ssize_t) throw (); >extern size_t _IO_sgetn (_IO_FILE *, void *, size_t) throw (); > >extern __off64_t _IO_seekoff (_IO_FILE *, __off64_t, int, int) throw (); >extern __off64_t _IO_seekpos (_IO_FILE *, __off64_t, int) throw (); > >extern void _IO_free_backup_area (_IO_FILE *) throw (); > > >extern wint_t _IO_getwc (_IO_FILE *__fp) throw (); >extern wint_t _IO_putwc (wchar_t __wc, _IO_FILE *__fp) throw (); >extern int _IO_fwide (_IO_FILE *__fp, int __mode) throw (); ># 523 "/usr/include/libio.h" 3 4 >extern int _IO_vfwscanf (_IO_FILE * __restrict, const wchar_t * __restrict, > __gnuc_va_list, int *__restrict) throw (); >extern int _IO_vfwprintf (_IO_FILE *__restrict, const wchar_t *__restrict, > __gnuc_va_list) throw (); >extern __ssize_t _IO_wpadn (_IO_FILE *, wint_t, __ssize_t) throw (); >extern void _IO_free_wbackup_area (_IO_FILE *) throw (); > > > >} ># 73 "/usr/include/stdio.h" 2 3 4 > > > > >typedef __gnuc_va_list va_list; ># 86 "/usr/include/stdio.h" 3 4 > > >typedef _G_fpos_t fpos_t; > > > > > >typedef _G_fpos64_t fpos64_t; ># 138 "/usr/include/stdio.h" 3 4 ># 1 "/usr/include/bits/stdio_lim.h" 1 3 4 ># 139 "/usr/include/stdio.h" 2 3 4 > > > >extern struct _IO_FILE *stdin; >extern struct _IO_FILE *stdout; >extern struct _IO_FILE *stderr; > > > > > > > >extern int remove (__const char *__filename) throw (); > >extern int rename (__const char *__old, __const char *__new) throw (); > > > > > > > > > >extern FILE *tmpfile (void); ># 174 "/usr/include/stdio.h" 3 4 >extern FILE *tmpfile64 (void); > > > >extern char *tmpnam (char *__s) throw (); > > > > > >extern char *tmpnam_r (char *__s) throw (); ># 196 "/usr/include/stdio.h" 3 4 >extern char *tempnam (__const char *__dir, __const char *__pfx) > throw () __attribute__ ((__malloc__)); > > > > > > > > >extern int fclose (FILE *__stream); > > > > >extern int fflush (FILE *__stream); > ># 221 "/usr/include/stdio.h" 3 4 >extern int fflush_unlocked (FILE *__stream); ># 231 "/usr/include/stdio.h" 3 4 >extern int fcloseall (void); > > > > > > > > > >extern FILE *fopen (__const char *__restrict __filename, > __const char *__restrict __modes); > > > > >extern FILE *freopen (__const char *__restrict __filename, > __const char *__restrict __modes, > FILE *__restrict __stream); ># 262 "/usr/include/stdio.h" 3 4 > > >extern FILE *fopen64 (__const char *__restrict __filename, > __const char *__restrict __modes); >extern FILE *freopen64 (__const char *__restrict __filename, > __const char *__restrict __modes, > FILE *__restrict __stream); > > > > >extern FILE *fdopen (int __fd, __const char *__modes) throw (); > > > > > >extern FILE *fopencookie (void *__restrict __magic_cookie, > __const char *__restrict __modes, > _IO_cookie_io_functions_t __io_funcs) throw (); > > >extern FILE *fmemopen (void *__s, size_t __len, __const char *__modes) throw (); > > > > >extern FILE *open_memstream (char **__restrict __bufloc, > size_t *__restrict __sizeloc) throw (); > > > > > > >extern void setbuf (FILE *__restrict __stream, char *__restrict __buf) throw (); > > > >extern int setvbuf (FILE *__restrict __stream, char *__restrict __buf, > int __modes, size_t __n) throw (); > > > > > >extern void setbuffer (FILE *__restrict __stream, char *__restrict __buf, > size_t __size) throw (); > > >extern void setlinebuf (FILE *__stream) throw (); > > > > > > > > >extern int fprintf (FILE *__restrict __stream, > __const char *__restrict __format, ...); > > > > >extern int printf (__const char *__restrict __format, ...); > >extern int sprintf (char *__restrict __s, > __const char *__restrict __format, ...) throw (); > > > > > >extern int vfprintf (FILE *__restrict __s, __const char *__restrict __format, > __gnuc_va_list __arg); > > > > >extern int vprintf (__const char *__restrict __format, __gnuc_va_list __arg); > >extern int vsprintf (char *__restrict __s, __const char *__restrict __format, > __gnuc_va_list __arg) throw (); > > > > > >extern int snprintf (char *__restrict __s, size_t __maxlen, > __const char *__restrict __format, ...) > throw () __attribute__ ((__format__ (__printf__, 3, 4))); > >extern int vsnprintf (char *__restrict __s, size_t __maxlen, > __const char *__restrict __format, __gnuc_va_list __arg) > throw () __attribute__ ((__format__ (__printf__, 3, 0))); > > > > > > >extern int vasprintf (char **__restrict __ptr, __const char *__restrict __f, > __gnuc_va_list __arg) > throw () __attribute__ ((__format__ (__printf__, 2, 0))); >extern int __asprintf (char **__restrict __ptr, > __const char *__restrict __fmt, ...) > throw () __attribute__ ((__format__ (__printf__, 2, 3))); >extern int asprintf (char **__restrict __ptr, > __const char *__restrict __fmt, ...) > throw () __attribute__ ((__format__ (__printf__, 2, 3))); > > > > > > > >extern int vdprintf (int __fd, __const char *__restrict __fmt, > __gnuc_va_list __arg) > __attribute__ ((__format__ (__printf__, 2, 0))); >extern int dprintf (int __fd, __const char *__restrict __fmt, ...) > __attribute__ ((__format__ (__printf__, 2, 3))); > > > > > > > > >extern int fscanf (FILE *__restrict __stream, > __const char *__restrict __format, ...); > > > > >extern int scanf (__const char *__restrict __format, ...); > >extern int sscanf (__const char *__restrict __s, > __const char *__restrict __format, ...) throw (); > > > > > > > > >extern int vfscanf (FILE *__restrict __s, __const char *__restrict __format, > __gnuc_va_list __arg) > __attribute__ ((__format__ (__scanf__, 2, 0))); > > > > > >extern int vscanf (__const char *__restrict __format, __gnuc_va_list __arg) > __attribute__ ((__format__ (__scanf__, 1, 0))); > > >extern int vsscanf (__const char *__restrict __s, > __const char *__restrict __format, __gnuc_va_list __arg) > throw () __attribute__ ((__format__ (__scanf__, 2, 0))); > > > > > > > > > >extern int fgetc (FILE *__stream); >extern int getc (FILE *__stream); > > > > > >extern int getchar (void); > ># 454 "/usr/include/stdio.h" 3 4 >extern int getc_unlocked (FILE *__stream); >extern int getchar_unlocked (void); ># 465 "/usr/include/stdio.h" 3 4 >extern int fgetc_unlocked (FILE *__stream); > > > > > > > > > > > >extern int fputc (int __c, FILE *__stream); >extern int putc (int __c, FILE *__stream); > > > > > >extern int putchar (int __c); > ># 498 "/usr/include/stdio.h" 3 4 >extern int fputc_unlocked (int __c, FILE *__stream); > > > > > > > >extern int putc_unlocked (int __c, FILE *__stream); >extern int putchar_unlocked (int __c); > > > > > > >extern int getw (FILE *__stream); > > >extern int putw (int __w, FILE *__stream); > > > > > > > > >extern char *fgets (char *__restrict __s, int __n, FILE *__restrict __stream); > > > > > > >extern char *gets (char *__s); > ># 543 "/usr/include/stdio.h" 3 4 >extern char *fgets_unlocked (char *__restrict __s, int __n, > FILE *__restrict __stream); ># 559 "/usr/include/stdio.h" 3 4 >extern __ssize_t __getdelim (char **__restrict __lineptr, > size_t *__restrict __n, int __delimiter, > FILE *__restrict __stream); >extern __ssize_t getdelim (char **__restrict __lineptr, > size_t *__restrict __n, int __delimiter, > FILE *__restrict __stream); > > > > > > > >extern __ssize_t getline (char **__restrict __lineptr, > size_t *__restrict __n, > FILE *__restrict __stream); > > > > > > > > >extern int fputs (__const char *__restrict __s, FILE *__restrict __stream); > > > > > >extern int puts (__const char *__s); > > > > > > >extern int ungetc (int __c, FILE *__stream); > > > > > > >extern size_t fread (void *__restrict __ptr, size_t __size, > size_t __n, FILE *__restrict __stream); > > > > >extern size_t fwrite (__const void *__restrict __ptr, size_t __size, > size_t __n, FILE *__restrict __s); > ># 620 "/usr/include/stdio.h" 3 4 >extern int fputs_unlocked (__const char *__restrict __s, > FILE *__restrict __stream); ># 631 "/usr/include/stdio.h" 3 4 >extern size_t fread_unlocked (void *__restrict __ptr, size_t __size, > size_t __n, FILE *__restrict __stream); >extern size_t fwrite_unlocked (__const void *__restrict __ptr, size_t __size, > size_t __n, FILE *__restrict __stream); > > > > > > > > >extern int fseek (FILE *__stream, long int __off, int __whence); > > > > >extern long int ftell (FILE *__stream); > > > > >extern void rewind (FILE *__stream); > ># 667 "/usr/include/stdio.h" 3 4 >extern int fseeko (FILE *__stream, __off_t __off, int __whence); > > > > >extern __off_t ftello (FILE *__stream); ># 686 "/usr/include/stdio.h" 3 4 > > > > > > >extern int fgetpos (FILE *__restrict __stream, fpos_t *__restrict __pos); > > > > >extern int fsetpos (FILE *__stream, __const fpos_t *__pos); ># 709 "/usr/include/stdio.h" 3 4 > > > >extern int fseeko64 (FILE *__stream, __off64_t __off, int __whence); >extern __off64_t ftello64 (FILE *__stream); >extern int fgetpos64 (FILE *__restrict __stream, fpos64_t *__restrict __pos); >extern int fsetpos64 (FILE *__stream, __const fpos64_t *__pos); > > > > >extern void clearerr (FILE *__stream) throw (); > >extern int feof (FILE *__stream) throw (); > >extern int ferror (FILE *__stream) throw (); > > > > >extern void clearerr_unlocked (FILE *__stream) throw (); >extern int feof_unlocked (FILE *__stream) throw (); >extern int ferror_unlocked (FILE *__stream) throw (); > > > > > > > > >extern void perror (__const char *__s); > > > > > > ># 1 "/usr/include/bits/sys_errlist.h" 1 3 4 ># 27 "/usr/include/bits/sys_errlist.h" 3 4 >extern int sys_nerr; >extern __const char *__const sys_errlist[]; > > >extern int _sys_nerr; >extern __const char *__const _sys_errlist[]; ># 748 "/usr/include/stdio.h" 2 3 4 > > > > >extern int fileno (FILE *__stream) throw (); > > > > >extern int fileno_unlocked (FILE *__stream) throw (); ># 767 "/usr/include/stdio.h" 3 4 >extern FILE *popen (__const char *__command, __const char *__modes); > > > > > >extern int pclose (FILE *__stream); > > > > > >extern char *ctermid (char *__s) throw (); > > > > > >extern char *cuserid (char *__s); > > > > >struct obstack; > > >extern int obstack_printf (struct obstack *__restrict __obstack, > __const char *__restrict __format, ...) > throw () __attribute__ ((__format__ (__printf__, 2, 3))); >extern int obstack_vprintf (struct obstack *__restrict __obstack, > __const char *__restrict __format, > __gnuc_va_list __args) > throw () __attribute__ ((__format__ (__printf__, 2, 0))); > > > > > > > >extern void flockfile (FILE *__stream) throw (); > > > >extern int ftrylockfile (FILE *__stream) throw (); > > >extern void funlockfile (FILE *__stream) throw (); ># 828 "/usr/include/stdio.h" 3 4 ># 1 "/usr/include/bits/stdio.h" 1 3 4 ># 33 "/usr/include/bits/stdio.h" 3 4 >inline int >vprintf (__const char *__restrict __fmt, __gnuc_va_list __arg) >{ > return vfprintf (stdout, __fmt, __arg); >} > > >inline int >getchar (void) >{ > return _IO_getc (stdin); >} > > > > >inline int >getc_unlocked (FILE *__fp) >{ > return (__builtin_expect ((__fp)->_IO_read_ptr >= (__fp)->_IO_read_end, 0) ? __uflow (__fp) : *(unsigned char *) (__fp)->_IO_read_ptr++); >} > > >inline int >getchar_unlocked (void) >{ > return (__builtin_expect ((stdin)->_IO_read_ptr >= (stdin)->_IO_read_end, 0) ? __uflow (stdin) : *(unsigned char *) (stdin)->_IO_read_ptr++); >} > > > > >inline int >putchar (int __c) >{ > return _IO_putc (__c, stdout); >} > > > > >inline int >fputc_unlocked (int __c, FILE *__stream) >{ > return (__builtin_expect ((__stream)->_IO_write_ptr >= (__stream)->_IO_write_end, 0) ? __overflow (__stream, (unsigned char) (__c)) : (unsigned char) (*(__stream)->_IO_write_ptr++ = (__c))); >} > > > > > >inline int >putc_unlocked (int __c, FILE *__stream) >{ > return (__builtin_expect ((__stream)->_IO_write_ptr >= (__stream)->_IO_write_end, 0) ? __overflow (__stream, (unsigned char) (__c)) : (unsigned char) (*(__stream)->_IO_write_ptr++ = (__c))); >} > > >inline int >putchar_unlocked (int __c) >{ > return (__builtin_expect ((stdout)->_IO_write_ptr >= (stdout)->_IO_write_end, 0) ? __overflow (stdout, (unsigned char) (__c)) : (unsigned char) (*(stdout)->_IO_write_ptr++ = (__c))); >} > > > > > >inline __ssize_t >getline (char **__lineptr, size_t *__n, FILE *__stream) >{ > return __getdelim (__lineptr, __n, '\n', __stream); >} > > > > > >inline int >feof_unlocked (FILE *__stream) throw () >{ > return (((__stream)->_flags & 0x10) != 0); >} > > >inline int >ferror_unlocked (FILE *__stream) throw () >{ > return (((__stream)->_flags & 0x20) != 0); >} ># 829 "/usr/include/stdio.h" 2 3 4 > > > > > >} ># 53 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/cstdio" 2 3 ># 97 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/cstdio" 3 >namespace std >{ > using ::FILE; > using ::fpos_t; > > using ::clearerr; > using ::fclose; > using ::feof; > using ::ferror; > using ::fflush; > using ::fgetc; > using ::fgetpos; > using ::fgets; > using ::fopen; > using ::fprintf; > using ::fputc; > using ::fputs; > using ::fread; > using ::freopen; > using ::fscanf; > using ::fseek; > using ::fsetpos; > using ::ftell; > using ::fwrite; > using ::getc; > using ::getchar; > using ::gets; > using ::perror; > using ::printf; > using ::putc; > using ::putchar; > using ::puts; > using ::remove; > using ::rename; > using ::rewind; > using ::scanf; > using ::setbuf; > using ::setvbuf; > using ::sprintf; > using ::sscanf; > using ::tmpfile; > using ::tmpnam; > using ::ungetc; > using ::vfprintf; > using ::vprintf; > using ::vsprintf; >} ># 153 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/cstdio" 3 >namespace __gnu_cxx >{ ># 167 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/cstdio" 3 > using ::snprintf; > using ::vfscanf; > using ::vscanf; > using ::vsnprintf; > using ::vsscanf; > >} > >namespace std >{ > using __gnu_cxx::snprintf; > using __gnu_cxx::vfscanf; > using __gnu_cxx::vscanf; > using __gnu_cxx::vsnprintf; > using __gnu_cxx::vsscanf; >} ># 10 "../../OgreMain/include/OgreStdHeaders.h" 2 ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/cstdlib" 1 3 ># 47 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/cstdlib" 3 > ># 48 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/cstdlib" 3 > > > > ># 1 "/usr/include/stdlib.h" 1 3 4 ># 33 "/usr/include/stdlib.h" 3 4 ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/stddef.h" 1 3 4 ># 34 "/usr/include/stdlib.h" 2 3 4 > >extern "C" { > > > > > > ># 1 "/usr/include/bits/waitflags.h" 1 3 4 ># 43 "/usr/include/stdlib.h" 2 3 4 ># 1 "/usr/include/bits/waitstatus.h" 1 3 4 ># 65 "/usr/include/bits/waitstatus.h" 3 4 ># 1 "/usr/include/endian.h" 1 3 4 ># 37 "/usr/include/endian.h" 3 4 ># 1 "/usr/include/bits/endian.h" 1 3 4 ># 38 "/usr/include/endian.h" 2 3 4 ># 66 "/usr/include/bits/waitstatus.h" 2 3 4 > >union wait > { > int w_status; > struct > { > > unsigned int __w_termsig:7; > unsigned int __w_coredump:1; > unsigned int __w_retcode:8; > unsigned int:16; > > > > > > > > } __wait_terminated; > struct > { > > unsigned int __w_stopval:8; > unsigned int __w_stopsig:8; > unsigned int:16; > > > > > > > } __wait_stopped; > }; ># 44 "/usr/include/stdlib.h" 2 3 4 ># 96 "/usr/include/stdlib.h" 3 4 > > >typedef struct > { > int quot; > int rem; > } div_t; > > > >typedef struct > { > long int quot; > long int rem; > } ldiv_t; > > > > > > > >__extension__ typedef struct > { > long long int quot; > long long int rem; > } lldiv_t; > > ># 140 "/usr/include/stdlib.h" 3 4 >extern size_t __ctype_get_mb_cur_max (void) throw (); > > > > >extern double atof (__const char *__nptr) > throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); > >extern int atoi (__const char *__nptr) > throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); > >extern long int atol (__const char *__nptr) > throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); > > > > > >__extension__ extern long long int atoll (__const char *__nptr) > throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); > > > > > >extern double strtod (__const char *__restrict __nptr, > char **__restrict __endptr) throw () __attribute__ ((__nonnull__ (1))); > > > > > >extern float strtof (__const char *__restrict __nptr, > char **__restrict __endptr) throw () __attribute__ ((__nonnull__ (1))); > >extern long double strtold (__const char *__restrict __nptr, > char **__restrict __endptr) > throw () __attribute__ ((__nonnull__ (1))); > > > > > >extern long int strtol (__const char *__restrict __nptr, > char **__restrict __endptr, int __base) > throw () __attribute__ ((__nonnull__ (1))); > >extern unsigned long int strtoul (__const char *__restrict __nptr, > char **__restrict __endptr, int __base) > throw () __attribute__ ((__nonnull__ (1))); > > > > >__extension__ >extern long long int strtoq (__const char *__restrict __nptr, > char **__restrict __endptr, int __base) > throw () __attribute__ ((__nonnull__ (1))); > >__extension__ >extern unsigned long long int strtouq (__const char *__restrict __nptr, > char **__restrict __endptr, int __base) > throw () __attribute__ ((__nonnull__ (1))); > > > > > >__extension__ >extern long long int strtoll (__const char *__restrict __nptr, > char **__restrict __endptr, int __base) > throw () __attribute__ ((__nonnull__ (1))); > >__extension__ >extern unsigned long long int strtoull (__const char *__restrict __nptr, > char **__restrict __endptr, int __base) > throw () __attribute__ ((__nonnull__ (1))); > ># 235 "/usr/include/stdlib.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; ># 236 "/usr/include/stdlib.h" 2 3 4 > > > >extern long int strtol_l (__const char *__restrict __nptr, > char **__restrict __endptr, int __base, > __locale_t __loc) throw () __attribute__ ((__nonnull__ (1, 4))); > >extern unsigned long int strtoul_l (__const char *__restrict __nptr, > char **__restrict __endptr, > int __base, __locale_t __loc) > throw () __attribute__ ((__nonnull__ (1, 4))); > >__extension__ >extern long long int strtoll_l (__const char *__restrict __nptr, > char **__restrict __endptr, int __base, > __locale_t __loc) > throw () __attribute__ ((__nonnull__ (1, 4))); > >__extension__ >extern unsigned long long int strtoull_l (__const char *__restrict __nptr, > char **__restrict __endptr, > int __base, __locale_t __loc) > throw () __attribute__ ((__nonnull__ (1, 4))); > >extern double strtod_l (__const char *__restrict __nptr, > char **__restrict __endptr, __locale_t __loc) > throw () __attribute__ ((__nonnull__ (1, 3))); > >extern float strtof_l (__const char *__restrict __nptr, > char **__restrict __endptr, __locale_t __loc) > throw () __attribute__ ((__nonnull__ (1, 3))); > >extern long double strtold_l (__const char *__restrict __nptr, > char **__restrict __endptr, > __locale_t __loc) throw () __attribute__ ((__nonnull__ (1, 3))); > > > > > > >extern double __strtod_internal (__const char *__restrict __nptr, > char **__restrict __endptr, int __group) > throw () __attribute__ ((__nonnull__ (1))); >extern float __strtof_internal (__const char *__restrict __nptr, > char **__restrict __endptr, int __group) > throw () __attribute__ ((__nonnull__ (1))); >extern long double __strtold_internal (__const char *__restrict __nptr, > char **__restrict __endptr, > int __group) throw () __attribute__ ((__nonnull__ (1))); > >extern long int __strtol_internal (__const char *__restrict __nptr, > char **__restrict __endptr, > int __base, int __group) > throw () __attribute__ ((__nonnull__ (1))); > > > >extern unsigned long int __strtoul_internal (__const char *__restrict __nptr, > char **__restrict __endptr, > int __base, int __group) > throw () __attribute__ ((__nonnull__ (1))); > > > > >__extension__ >extern long long int __strtoll_internal (__const char *__restrict __nptr, > char **__restrict __endptr, > int __base, int __group) > throw () __attribute__ ((__nonnull__ (1))); > > > >__extension__ >extern unsigned long long int __strtoull_internal (__const char * > __restrict __nptr, > char **__restrict __endptr, > int __base, int __group) > throw () __attribute__ ((__nonnull__ (1))); > > > > > > > > >extern __inline double >strtod (__const char *__restrict __nptr, char **__restrict __endptr) throw () >{ > return __strtod_internal (__nptr, __endptr, 0); >} >extern __inline long int >strtol (__const char *__restrict __nptr, char **__restrict __endptr, int __base) throw () > >{ > return __strtol_internal (__nptr, __endptr, __base, 0); >} >extern __inline unsigned long int >strtoul (__const char *__restrict __nptr, char **__restrict __endptr, int __base) throw () > >{ > return __strtoul_internal (__nptr, __endptr, __base, 0); >} > > > > >extern __inline float >strtof (__const char *__restrict __nptr, char **__restrict __endptr) throw () >{ > return __strtof_internal (__nptr, __endptr, 0); >} >extern __inline long double >strtold (__const char *__restrict __nptr, char **__restrict __endptr) throw () >{ > return __strtold_internal (__nptr, __endptr, 0); >} > > > > >__extension__ extern __inline long long int >strtoq (__const char *__restrict __nptr, char **__restrict __endptr, int __base) throw () > >{ > return __strtoll_internal (__nptr, __endptr, __base, 0); >} >__extension__ extern __inline unsigned long long int >strtouq (__const char *__restrict __nptr, char **__restrict __endptr, int __base) throw () > >{ > return __strtoull_internal (__nptr, __endptr, __base, 0); >} > > > > >__extension__ extern __inline long long int >strtoll (__const char *__restrict __nptr, char **__restrict __endptr, int __base) throw () > >{ > return __strtoll_internal (__nptr, __endptr, __base, 0); >} >__extension__ extern __inline unsigned long long int >strtoull (__const char * __restrict __nptr, char **__restrict __endptr, int __base) throw () > >{ > return __strtoull_internal (__nptr, __endptr, __base, 0); >} > > > > >extern __inline double >atof (__const char *__nptr) throw () >{ > return strtod (__nptr, (char **) __null); >} >extern __inline int >atoi (__const char *__nptr) throw () >{ > return (int) strtol (__nptr, (char **) __null, 10); >} >extern __inline long int >atol (__const char *__nptr) throw () >{ > return strtol (__nptr, (char **) __null, 10); >} > > > > >__extension__ extern __inline long long int >atoll (__const char *__nptr) throw () >{ > return strtoll (__nptr, (char **) __null, 10); >} > ># 424 "/usr/include/stdlib.h" 3 4 >extern char *l64a (long int __n) throw (); > > >extern long int a64l (__const char *__s) > throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); > > > > ># 1 "/usr/include/sys/types.h" 1 3 4 ># 29 "/usr/include/sys/types.h" 3 4 >extern "C" { > > > > > >typedef __u_char u_char; >typedef __u_short u_short; >typedef __u_int u_int; >typedef __u_long u_long; >typedef __quad_t quad_t; >typedef __u_quad_t u_quad_t; >typedef __fsid_t fsid_t; > > > > >typedef __loff_t loff_t; > > > >typedef __ino_t ino_t; > > > > > > >typedef __ino64_t ino64_t; > > > > >typedef __dev_t dev_t; > > > > >typedef __gid_t gid_t; > > > > >typedef __mode_t mode_t; > > > > >typedef __nlink_t nlink_t; > > > > >typedef __uid_t uid_t; > > > > > >typedef __off_t off_t; > > > > > > >typedef __off64_t off64_t; > > > > >typedef __pid_t pid_t; > > > > >typedef __id_t id_t; > > > > >typedef __ssize_t ssize_t; > > > > > >typedef __daddr_t daddr_t; >typedef __caddr_t caddr_t; > > > > > >typedef __key_t key_t; ># 133 "/usr/include/sys/types.h" 3 4 ># 1 "/usr/include/time.h" 1 3 4 ># 58 "/usr/include/time.h" 3 4 > > >typedef __clock_t clock_t; > > > ># 74 "/usr/include/time.h" 3 4 > > >typedef __time_t time_t; > > > ># 92 "/usr/include/time.h" 3 4 >typedef __clockid_t clockid_t; ># 104 "/usr/include/time.h" 3 4 >typedef __timer_t timer_t; ># 134 "/usr/include/sys/types.h" 2 3 4 > > > >typedef __useconds_t useconds_t; > > > >typedef __suseconds_t suseconds_t; > > > > > ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/stddef.h" 1 3 4 ># 148 "/usr/include/sys/types.h" 2 3 4 > > > >typedef unsigned long int ulong; >typedef unsigned short int ushort; >typedef unsigned int uint; ># 191 "/usr/include/sys/types.h" 3 4 >typedef int int8_t __attribute__ ((__mode__ (__QI__))); >typedef int int16_t __attribute__ ((__mode__ (__HI__))); >typedef int int32_t __attribute__ ((__mode__ (__SI__))); >typedef int int64_t __attribute__ ((__mode__ (__DI__))); > > >typedef unsigned int u_int8_t __attribute__ ((__mode__ (__QI__))); >typedef unsigned int u_int16_t __attribute__ ((__mode__ (__HI__))); >typedef unsigned int u_int32_t __attribute__ ((__mode__ (__SI__))); >typedef unsigned int u_int64_t __attribute__ ((__mode__ (__DI__))); > >typedef int register_t __attribute__ ((__mode__ (__word__))); ># 216 "/usr/include/sys/types.h" 3 4 ># 1 "/usr/include/sys/select.h" 1 3 4 ># 31 "/usr/include/sys/select.h" 3 4 ># 1 "/usr/include/bits/select.h" 1 3 4 ># 32 "/usr/include/sys/select.h" 2 3 4 > > ># 1 "/usr/include/bits/sigset.h" 1 3 4 ># 23 "/usr/include/bits/sigset.h" 3 4 >typedef int __sig_atomic_t; > > > > >typedef struct > { > unsigned long int __val[(1024 / (8 * sizeof (unsigned long int)))]; > } __sigset_t; ># 35 "/usr/include/sys/select.h" 2 3 4 > > > >typedef __sigset_t sigset_t; > > > > > ># 1 "/usr/include/time.h" 1 3 4 ># 118 "/usr/include/time.h" 3 4 >struct timespec > { > __time_t tv_sec; > long int tv_nsec; > }; ># 45 "/usr/include/sys/select.h" 2 3 4 > ># 1 "/usr/include/bits/time.h" 1 3 4 ># 69 "/usr/include/bits/time.h" 3 4 >struct timeval > { > __time_t tv_sec; > __suseconds_t tv_usec; > }; ># 47 "/usr/include/sys/select.h" 2 3 4 ># 55 "/usr/include/sys/select.h" 3 4 >typedef long int __fd_mask; ># 67 "/usr/include/sys/select.h" 3 4 >typedef struct > { > > > > __fd_mask fds_bits[1024 / (8 * sizeof (__fd_mask))]; > > > > > > } fd_set; > > > > > > >typedef __fd_mask fd_mask; ># 99 "/usr/include/sys/select.h" 3 4 >extern "C" { ># 109 "/usr/include/sys/select.h" 3 4 >extern int select (int __nfds, fd_set *__restrict __readfds, > fd_set *__restrict __writefds, > fd_set *__restrict __exceptfds, > struct timeval *__restrict __timeout); ># 121 "/usr/include/sys/select.h" 3 4 >extern int pselect (int __nfds, fd_set *__restrict __readfds, > fd_set *__restrict __writefds, > fd_set *__restrict __exceptfds, > const struct timespec *__restrict __timeout, > const __sigset_t *__restrict __sigmask); > > >} ># 217 "/usr/include/sys/types.h" 2 3 4 > > ># 1 "/usr/include/sys/sysmacros.h" 1 3 4 ># 29 "/usr/include/sys/sysmacros.h" 3 4 >__extension__ >extern __inline unsigned int gnu_dev_major (unsigned long long int __dev) > throw (); >__extension__ >extern __inline unsigned int gnu_dev_minor (unsigned long long int __dev) > throw (); >__extension__ >extern __inline unsigned long long int gnu_dev_makedev (unsigned int __major, > unsigned int __minor) > throw (); > > >__extension__ extern __inline unsigned int >gnu_dev_major (unsigned long long int __dev) throw () >{ > return ((__dev >> 8) & 0xfff) | ((unsigned int) (__dev >> 32) & ~0xfff); >} > >__extension__ extern __inline unsigned int >gnu_dev_minor (unsigned long long int __dev) throw () >{ > return (__dev & 0xff) | ((unsigned int) (__dev >> 12) & ~0xff); >} > >__extension__ extern __inline unsigned long long int >gnu_dev_makedev (unsigned int __major, unsigned int __minor) throw () >{ > return ((__minor & 0xff) | ((__major & 0xfff) << 8) > | (((unsigned long long int) (__minor & ~0xff)) << 12) > | (((unsigned long long int) (__major & ~0xfff)) << 32)); >} ># 220 "/usr/include/sys/types.h" 2 3 4 > > > > >typedef __blksize_t blksize_t; > > > > > > >typedef __blkcnt_t blkcnt_t; > > > >typedef __fsblkcnt_t fsblkcnt_t; > > > >typedef __fsfilcnt_t fsfilcnt_t; ># 258 "/usr/include/sys/types.h" 3 4 >typedef __blkcnt64_t blkcnt64_t; >typedef __fsblkcnt64_t fsblkcnt64_t; >typedef __fsfilcnt64_t fsfilcnt64_t; > > > > > ># 1 "/usr/include/bits/pthreadtypes.h" 1 3 4 ># 23 "/usr/include/bits/pthreadtypes.h" 3 4 ># 1 "/usr/include/bits/sched.h" 1 3 4 ># 83 "/usr/include/bits/sched.h" 3 4 >struct __sched_param > { > int __sched_priority; > }; ># 24 "/usr/include/bits/pthreadtypes.h" 2 3 4 > > >struct _pthread_fastlock >{ > long int __status; > int __spinlock; > >}; > > > >typedef struct _pthread_descr_struct *_pthread_descr; > > > > > >typedef struct __pthread_attr_s >{ > int __detachstate; > int __schedpolicy; > struct __sched_param __schedparam; > int __inheritsched; > int __scope; > size_t __guardsize; > int __stackaddr_set; > void *__stackaddr; > size_t __stacksize; >} pthread_attr_t; > > > > > >__extension__ typedef long long __pthread_cond_align_t; > > > > >typedef struct >{ > struct _pthread_fastlock __c_lock; > _pthread_descr __c_waiting; > > char __padding[48 - sizeof (struct _pthread_fastlock) > - sizeof (_pthread_descr) - sizeof (__pthread_cond_align_t)]; > __pthread_cond_align_t __align; > >} pthread_cond_t; > > > >typedef struct >{ > int __dummy; >} pthread_condattr_t; > > >typedef unsigned int pthread_key_t; > > > > > >typedef struct >{ > int __m_reserved; > int __m_count; > _pthread_descr __m_owner; > int __m_kind; > struct _pthread_fastlock __m_lock; >} pthread_mutex_t; > > > >typedef struct >{ > int __mutexkind; >} pthread_mutexattr_t; > > > >typedef int pthread_once_t; > > > > >typedef struct _pthread_rwlock_t >{ > struct _pthread_fastlock __rw_lock; > int __rw_readers; > _pthread_descr __rw_writer; > _pthread_descr __rw_read_waiting; > _pthread_descr __rw_write_waiting; > int __rw_kind; > int __rw_pshared; >} pthread_rwlock_t; > > > >typedef struct >{ > int __lockkind; > int __pshared; >} pthread_rwlockattr_t; > > > > >typedef volatile int pthread_spinlock_t; > > >typedef struct { > struct _pthread_fastlock __ba_lock; > int __ba_required; > int __ba_present; > _pthread_descr __ba_waiting; >} pthread_barrier_t; > > >typedef struct { > int __pshared; >} pthread_barrierattr_t; > > > > > >typedef unsigned long int pthread_t; ># 267 "/usr/include/sys/types.h" 2 3 4 > > >} ># 434 "/usr/include/stdlib.h" 2 3 4 > > > > > > >extern long int random (void) throw (); > > >extern void srandom (unsigned int __seed) throw (); > > > > > >extern char *initstate (unsigned int __seed, char *__statebuf, > size_t __statelen) throw () __attribute__ ((__nonnull__ (2))); > > > >extern char *setstate (char *__statebuf) throw () __attribute__ ((__nonnull__ (1))); > > > > > > > >struct random_data > { > int32_t *fptr; > int32_t *rptr; > int32_t *state; > int rand_type; > int rand_deg; > int rand_sep; > int32_t *end_ptr; > }; > >extern int random_r (struct random_data *__restrict __buf, > int32_t *__restrict __result) throw () __attribute__ ((__nonnull__ (1, 2))); > >extern int srandom_r (unsigned int __seed, struct random_data *__buf) > throw () __attribute__ ((__nonnull__ (2))); > >extern int initstate_r (unsigned int __seed, char *__restrict __statebuf, > size_t __statelen, > struct random_data *__restrict __buf) > throw () __attribute__ ((__nonnull__ (2, 4))); > >extern int setstate_r (char *__restrict __statebuf, > struct random_data *__restrict __buf) > throw () __attribute__ ((__nonnull__ (1, 2))); > > > > > > >extern int rand (void) throw (); > >extern void srand (unsigned int __seed) throw (); > > > > >extern int rand_r (unsigned int *__seed) throw (); > > > > > > > >extern double drand48 (void) throw (); >extern double erand48 (unsigned short int __xsubi[3]) throw () __attribute__ ((__nonnull__ (1))); > > >extern long int lrand48 (void) throw (); >extern long int nrand48 (unsigned short int __xsubi[3]) > throw () __attribute__ ((__nonnull__ (1))); > > >extern long int mrand48 (void) throw (); >extern long int jrand48 (unsigned short int __xsubi[3]) > throw () __attribute__ ((__nonnull__ (1))); > > >extern void srand48 (long int __seedval) throw (); >extern unsigned short int *seed48 (unsigned short int __seed16v[3]) > throw () __attribute__ ((__nonnull__ (1))); >extern void lcong48 (unsigned short int __param[7]) throw () __attribute__ ((__nonnull__ (1))); > > > > > >struct drand48_data > { > unsigned short int __x[3]; > unsigned short int __old_x[3]; > unsigned short int __c; > unsigned short int __init; > unsigned long long int __a; > }; > > >extern int drand48_r (struct drand48_data *__restrict __buffer, > double *__restrict __result) throw () __attribute__ ((__nonnull__ (1, 2))); >extern int erand48_r (unsigned short int __xsubi[3], > struct drand48_data *__restrict __buffer, > double *__restrict __result) throw () __attribute__ ((__nonnull__ (1, 2))); > > >extern int lrand48_r (struct drand48_data *__restrict __buffer, > long int *__restrict __result) > throw () __attribute__ ((__nonnull__ (1, 2))); >extern int nrand48_r (unsigned short int __xsubi[3], > struct drand48_data *__restrict __buffer, > long int *__restrict __result) > throw () __attribute__ ((__nonnull__ (1, 2))); > > >extern int mrand48_r (struct drand48_data *__restrict __buffer, > long int *__restrict __result) > throw () __attribute__ ((__nonnull__ (1, 2))); >extern int jrand48_r (unsigned short int __xsubi[3], > struct drand48_data *__restrict __buffer, > long int *__restrict __result) > throw () __attribute__ ((__nonnull__ (1, 2))); > > >extern int srand48_r (long int __seedval, struct drand48_data *__buffer) > throw () __attribute__ ((__nonnull__ (2))); > >extern int seed48_r (unsigned short int __seed16v[3], > struct drand48_data *__buffer) throw () __attribute__ ((__nonnull__ (1, 2))); > >extern int lcong48_r (unsigned short int __param[7], > struct drand48_data *__buffer) > throw () __attribute__ ((__nonnull__ (1, 2))); > > > > > > > > > >extern void *malloc (size_t __size) throw () __attribute__ ((__malloc__)); > >extern void *calloc (size_t __nmemb, size_t __size) > throw () __attribute__ ((__malloc__)); > > > > > > > >extern void *realloc (void *__ptr, size_t __size) throw () __attribute__ ((__malloc__)); > >extern void free (void *__ptr) throw (); > > > > >extern void cfree (void *__ptr) throw (); > > > ># 1 "/usr/include/alloca.h" 1 3 4 ># 25 "/usr/include/alloca.h" 3 4 ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/stddef.h" 1 3 4 ># 26 "/usr/include/alloca.h" 2 3 4 > >extern "C" { > > > > > >extern void *alloca (size_t __size) throw (); > > > > > >} ># 607 "/usr/include/stdlib.h" 2 3 4 > > > > >extern void *valloc (size_t __size) throw () __attribute__ ((__malloc__)); > > > > >extern int posix_memalign (void **__memptr, size_t __alignment, size_t __size) > throw () __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1))); > > > > >extern void abort (void) throw () __attribute__ ((__noreturn__)); > > > >extern int atexit (void (*__func) (void)) throw () __attribute__ ((__nonnull__ (1))); > > > > > >extern int on_exit (void (*__func) (int __status, void *__arg), void *__arg) > throw () __attribute__ ((__nonnull__ (1))); > > > > > > >extern void exit (int __status) throw () __attribute__ ((__noreturn__)); > > > > > > >extern void _Exit (int __status) throw () __attribute__ ((__noreturn__)); > > > > > > >extern char *getenv (__const char *__name) throw () __attribute__ ((__nonnull__ (1))); > > > > >extern char *__secure_getenv (__const char *__name) throw () __attribute__ ((__nonnull__ (1))); > > > > > >extern int putenv (char *__string) throw () __attribute__ ((__nonnull__ (1))); > > > > > >extern int setenv (__const char *__name, __const char *__value, int __replace) > throw () __attribute__ ((__nonnull__ (2))); > > >extern int unsetenv (__const char *__name) throw (); > > > > > > >extern int clearenv (void) throw (); ># 691 "/usr/include/stdlib.h" 3 4 >extern char *mktemp (char *__template) throw () __attribute__ ((__nonnull__ (1))); ># 702 "/usr/include/stdlib.h" 3 4 >extern int mkstemp (char *__template) __attribute__ ((__nonnull__ (1))); ># 711 "/usr/include/stdlib.h" 3 4 >extern int mkstemp64 (char *__template) __attribute__ ((__nonnull__ (1))); ># 721 "/usr/include/stdlib.h" 3 4 >extern char *mkdtemp (char *__template) throw () __attribute__ ((__nonnull__ (1))); > > > > > > > > >extern int system (__const char *__command); > > > > > > > >extern char *canonicalize_file_name (__const char *__name) > throw () __attribute__ ((__nonnull__ (1))); ># 749 "/usr/include/stdlib.h" 3 4 >extern char *realpath (__const char *__restrict __name, > char *__restrict __resolved) throw (); > > > > > > >typedef int (*__compar_fn_t) (__const void *, __const void *); > > >typedef __compar_fn_t comparison_fn_t; > > > > > > >extern void *bsearch (__const void *__key, __const void *__base, > size_t __nmemb, size_t __size, __compar_fn_t __compar) > __attribute__ ((__nonnull__ (1, 2, 5))); > > > >extern void qsort (void *__base, size_t __nmemb, size_t __size, > __compar_fn_t __compar) __attribute__ ((__nonnull__ (1, 4))); > > > >extern int abs (int __x) throw () __attribute__ ((__const__)); >extern long int labs (long int __x) throw () __attribute__ ((__const__)); > > > >__extension__ extern long long int llabs (long long int __x) > throw () __attribute__ ((__const__)); > > > > > > > >extern div_t div (int __numer, int __denom) > throw () __attribute__ ((__const__)); >extern ldiv_t ldiv (long int __numer, long int __denom) > throw () __attribute__ ((__const__)); > > > > >__extension__ extern lldiv_t lldiv (long long int __numer, > long long int __denom) > throw () __attribute__ ((__const__)); > ># 814 "/usr/include/stdlib.h" 3 4 >extern char *ecvt (double __value, int __ndigit, int *__restrict __decpt, > int *__restrict __sign) throw () __attribute__ ((__nonnull__ (3, 4))); > > > > >extern char *fcvt (double __value, int __ndigit, int *__restrict __decpt, > int *__restrict __sign) throw () __attribute__ ((__nonnull__ (3, 4))); > > > > >extern char *gcvt (double __value, int __ndigit, char *__buf) > throw () __attribute__ ((__nonnull__ (3))); > > > > >extern char *qecvt (long double __value, int __ndigit, > int *__restrict __decpt, int *__restrict __sign) > throw () __attribute__ ((__nonnull__ (3, 4))); >extern char *qfcvt (long double __value, int __ndigit, > int *__restrict __decpt, int *__restrict __sign) > throw () __attribute__ ((__nonnull__ (3, 4))); >extern char *qgcvt (long double __value, int __ndigit, char *__buf) > throw () __attribute__ ((__nonnull__ (3))); > > > > >extern int ecvt_r (double __value, int __ndigit, int *__restrict __decpt, > int *__restrict __sign, char *__restrict __buf, > size_t __len) throw () __attribute__ ((__nonnull__ (3, 4, 5))); >extern int fcvt_r (double __value, int __ndigit, int *__restrict __decpt, > int *__restrict __sign, char *__restrict __buf, > size_t __len) throw () __attribute__ ((__nonnull__ (3, 4, 5))); > >extern int qecvt_r (long double __value, int __ndigit, > int *__restrict __decpt, int *__restrict __sign, > char *__restrict __buf, size_t __len) > throw () __attribute__ ((__nonnull__ (3, 4, 5))); >extern int qfcvt_r (long double __value, int __ndigit, > int *__restrict __decpt, int *__restrict __sign, > char *__restrict __buf, size_t __len) > throw () __attribute__ ((__nonnull__ (3, 4, 5))); > > > > > > > >extern int mblen (__const char *__s, size_t __n) throw (); > > >extern int mbtowc (wchar_t *__restrict __pwc, > __const char *__restrict __s, size_t __n) throw (); > > >extern int wctomb (char *__s, wchar_t __wchar) throw (); > > > >extern size_t mbstowcs (wchar_t *__restrict __pwcs, > __const char *__restrict __s, size_t __n) throw (); > >extern size_t wcstombs (char *__restrict __s, > __const wchar_t *__restrict __pwcs, size_t __n) > throw (); > > > > > > > > >extern int rpmatch (__const char *__response) throw () __attribute__ ((__nonnull__ (1))); ># 902 "/usr/include/stdlib.h" 3 4 >extern int getsubopt (char **__restrict __optionp, > char *__const *__restrict __tokens, > char **__restrict __valuep) > throw () __attribute__ ((__nonnull__ (1, 2, 3))); > > > > > >extern void setkey (__const char *__key) throw () __attribute__ ((__nonnull__ (1))); > > > > > > > >extern int posix_openpt (int __oflag); > > > > > > > >extern int grantpt (int __fd) throw (); > > > >extern int unlockpt (int __fd) throw (); > > > > >extern char *ptsname (int __fd) throw (); > > > > > > >extern int ptsname_r (int __fd, char *__buf, size_t __buflen) > throw () __attribute__ ((__nonnull__ (2))); > > >extern int getpt (void); > > > > > > >extern int getloadavg (double __loadavg[], int __nelem) > throw () __attribute__ ((__nonnull__ (1))); > > > > > >} ># 53 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/cstdlib" 2 3 ># 84 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/cstdlib" 3 >namespace std >{ > using ::div_t; > using ::ldiv_t; > > using ::abort; > using ::abs; > using ::atexit; > using ::atof; > using ::atoi; > using ::atol; > using ::bsearch; > using ::calloc; > using ::div; > using ::exit; > using ::free; > using ::getenv; > using ::labs; > using ::ldiv; > using ::malloc; > > using ::mblen; > using ::mbstowcs; > using ::mbtowc; > > using ::qsort; > using ::rand; > using ::realloc; > using ::srand; > using ::strtod; > using ::strtol; > using ::strtoul; > using ::system; > > using ::wcstombs; > using ::wctomb; > > > inline long > abs(long __i) { return labs(__i); } > > inline ldiv_t > div(long __i, long __j) { return ldiv(__i, __j); } >} ># 140 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/cstdlib" 3 >namespace __gnu_cxx >{ > > using ::lldiv_t; > > > > > > using ::_Exit; > > > inline long long > abs(long long __x) { return __x >= 0 ? __x : -__x; } > > inline long long > llabs(long long __x) { return __x >= 0 ? __x : -__x; } > > > inline lldiv_t > div(long long __n, long long __d) > { lldiv_t __q; __q.quot = __n / __d; __q.rem = __n % __d; return __q; } > > inline lldiv_t > lldiv(long long __n, long long __d) > { lldiv_t __q; __q.quot = __n / __d; __q.rem = __n % __d; return __q; } ># 176 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/cstdlib" 3 > using ::atoll; > using ::strtoll; > using ::strtoull; > > using ::strtof; > using ::strtold; >} > >namespace std >{ > > using __gnu_cxx::lldiv_t; > > using __gnu_cxx::_Exit; > using __gnu_cxx::abs; > using __gnu_cxx::llabs; > > using __gnu_cxx::div; > using __gnu_cxx::lldiv; > > using __gnu_cxx::atoll; > using __gnu_cxx::strtof; > using __gnu_cxx::strtoll; > using __gnu_cxx::strtoull; > using __gnu_cxx::strtold; >} ># 11 "../../OgreMain/include/OgreStdHeaders.h" 2 ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/ctime" 1 3 ># 47 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/ctime" 3 > ># 48 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/ctime" 3 > > > ># 1 "/usr/include/time.h" 1 3 4 ># 30 "/usr/include/time.h" 3 4 >extern "C" { > > > > > > > ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/stddef.h" 1 3 4 ># 39 "/usr/include/time.h" 2 3 4 > > > ># 1 "/usr/include/bits/time.h" 1 3 4 ># 43 "/usr/include/time.h" 2 3 4 ># 129 "/usr/include/time.h" 3 4 > > >struct tm >{ > int tm_sec; > int tm_min; > int tm_hour; > int tm_mday; > int tm_mon; > int tm_year; > int tm_wday; > int tm_yday; > int tm_isdst; > > > long int tm_gmtoff; > __const char *tm_zone; > > > > >}; > > > > > > > > >struct itimerspec > { > struct timespec it_interval; > struct timespec it_value; > }; > > >struct sigevent; ># 178 "/usr/include/time.h" 3 4 > > > >extern clock_t clock (void) throw (); > > >extern time_t time (time_t *__timer) throw (); > > >extern double difftime (time_t __time1, time_t __time0) > throw () __attribute__ ((__const__)); > > >extern time_t mktime (struct tm *__tp) throw (); > > > > > >extern size_t strftime (char *__restrict __s, size_t __maxsize, > __const char *__restrict __format, > __const struct tm *__restrict __tp) throw (); > > > > > >extern char *strptime (__const char *__restrict __s, > __const char *__restrict __fmt, struct tm *__tp) > throw (); > > > > > > > >extern size_t strftime_l (char *__restrict __s, size_t __maxsize, > __const char *__restrict __format, > __const struct tm *__restrict __tp, > __locale_t __loc) throw (); > >extern char *strptime_l (__const char *__restrict __s, > __const char *__restrict __fmt, struct tm *__tp, > __locale_t __loc) throw (); > > > > > > >extern struct tm *gmtime (__const time_t *__timer) throw (); > > > >extern struct tm *localtime (__const time_t *__timer) throw (); > > > > > >extern struct tm *gmtime_r (__const time_t *__restrict __timer, > struct tm *__restrict __tp) throw (); > > > >extern struct tm *localtime_r (__const time_t *__restrict __timer, > struct tm *__restrict __tp) throw (); > > > > > >extern char *asctime (__const struct tm *__tp) throw (); > > >extern char *ctime (__const time_t *__timer) throw (); > > > > > > > >extern char *asctime_r (__const struct tm *__restrict __tp, > char *__restrict __buf) throw (); > > >extern char *ctime_r (__const time_t *__restrict __timer, > char *__restrict __buf) throw (); > > > > >extern char *__tzname[2]; >extern int __daylight; >extern long int __timezone; > > > > >extern char *tzname[2]; > > > >extern void tzset (void) throw (); > > > >extern int daylight; >extern long int timezone; > > > > > >extern int stime (__const time_t *__when) throw (); ># 309 "/usr/include/time.h" 3 4 >extern time_t timegm (struct tm *__tp) throw (); > > >extern time_t timelocal (struct tm *__tp) throw (); > > >extern int dysize (int __year) throw () __attribute__ ((__const__)); ># 324 "/usr/include/time.h" 3 4 >extern int nanosleep (__const struct timespec *__requested_time, > struct timespec *__remaining); > > > >extern int clock_getres (clockid_t __clock_id, struct timespec *__res) throw (); > > >extern int clock_gettime (clockid_t __clock_id, struct timespec *__tp) throw (); > > >extern int clock_settime (clockid_t __clock_id, __const struct timespec *__tp) > throw (); > > > > > > >extern int clock_nanosleep (clockid_t __clock_id, int __flags, > __const struct timespec *__req, > struct timespec *__rem); > > >extern int clock_getcpuclockid (pid_t __pid, clockid_t *__clock_id) throw (); > > > > >extern int timer_create (clockid_t __clock_id, > struct sigevent *__restrict __evp, > timer_t *__restrict __timerid) throw (); > > >extern int timer_delete (timer_t __timerid) throw (); > > >extern int timer_settime (timer_t __timerid, int __flags, > __const struct itimerspec *__restrict __value, > struct itimerspec *__restrict __ovalue) throw (); > > >extern int timer_gettime (timer_t __timerid, struct itimerspec *__value) > throw (); > > >extern int timer_getoverrun (timer_t __timerid) throw (); ># 386 "/usr/include/time.h" 3 4 >extern int getdate_err; ># 395 "/usr/include/time.h" 3 4 >extern struct tm *getdate (__const char *__string); ># 409 "/usr/include/time.h" 3 4 >extern int getdate_r (__const char *__restrict __string, > struct tm *__restrict __resbufp); > > >} ># 52 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/ctime" 2 3 ># 64 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/ctime" 3 >namespace std >{ > using ::clock_t; > using ::time_t; > using ::tm; > > using ::clock; > using ::difftime; > using ::mktime; > using ::time; > using ::asctime; > using ::ctime; > using ::gmtime; > using ::localtime; > using ::strftime; >} ># 12 "../../OgreMain/include/OgreStdHeaders.h" 2 ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/cstring" 1 3 ># 47 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/cstring" 3 > ># 48 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/cstring" 3 > > > ># 1 "/usr/include/string.h" 1 3 4 ># 28 "/usr/include/string.h" 3 4 >extern "C" { > > > > ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/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 () __attribute__ ((__nonnull__ (1, 2))); > > >extern void *memmove (void *__dest, __const void *__src, size_t __n) > throw () __attribute__ ((__nonnull__ (1, 2))); > > > > > > >extern void *memccpy (void *__restrict __dest, __const void *__restrict __src, > int __c, size_t __n) > throw () __attribute__ ((__nonnull__ (1, 2))); > > > > > >extern void *memset (void *__s, int __c, size_t __n) throw () __attribute__ ((__nonnull__ (1))); > > >extern int memcmp (__const void *__s1, __const void *__s2, size_t __n) > throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); > > >extern void *memchr (__const void *__s, int __c, size_t __n) > throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); > > > > > >extern void *rawmemchr (__const void *__s, int __c) > throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); > > >extern void *memrchr (__const void *__s, int __c, size_t __n) > throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); > > > > > >extern char *strcpy (char *__restrict __dest, __const char *__restrict __src) > throw () __attribute__ ((__nonnull__ (1, 2))); > >extern char *strncpy (char *__restrict __dest, > __const char *__restrict __src, size_t __n) > throw () __attribute__ ((__nonnull__ (1, 2))); > > >extern char *strcat (char *__restrict __dest, __const char *__restrict __src) > throw () __attribute__ ((__nonnull__ (1, 2))); > >extern char *strncat (char *__restrict __dest, __const char *__restrict __src, > size_t __n) throw () __attribute__ ((__nonnull__ (1, 2))); > > >extern int strcmp (__const char *__s1, __const char *__s2) > throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); > >extern int strncmp (__const char *__s1, __const char *__s2, size_t __n) > throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); > > >extern int strcoll (__const char *__s1, __const char *__s2) > throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); > >extern size_t strxfrm (char *__restrict __dest, > __const char *__restrict __src, size_t __n) > throw () __attribute__ ((__nonnull__ (2))); > ># 121 "/usr/include/string.h" 3 4 >extern int strcoll_l (__const char *__s1, __const char *__s2, __locale_t __l) > throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 3))); > >extern size_t strxfrm_l (char *__dest, __const char *__src, size_t __n, > __locale_t __l) throw () __attribute__ ((__nonnull__ (2, 4))); > > > > >extern char *strdup (__const char *__s) > throw () __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1))); > > > > > > >extern char *strndup (__const char *__string, size_t __n) > throw () __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1))); ># 165 "/usr/include/string.h" 3 4 > > >extern char *strchr (__const char *__s, int __c) > throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); > >extern char *strrchr (__const char *__s, int __c) > throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); > > > > > >extern char *strchrnul (__const char *__s, int __c) > throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); > > > > > >extern size_t strcspn (__const char *__s, __const char *__reject) > throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); > > >extern size_t strspn (__const char *__s, __const char *__accept) > throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); > >extern char *strpbrk (__const char *__s, __const char *__accept) > throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); > >extern char *strstr (__const char *__haystack, __const char *__needle) > throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); > > > >extern char *strtok (char *__restrict __s, __const char *__restrict __delim) > throw () __attribute__ ((__nonnull__ (2))); > > > > >extern char *__strtok_r (char *__restrict __s, > __const char *__restrict __delim, > char **__restrict __save_ptr) > throw () __attribute__ ((__nonnull__ (2, 3))); > >extern char *strtok_r (char *__restrict __s, __const char *__restrict __delim, > char **__restrict __save_ptr) > throw () __attribute__ ((__nonnull__ (2, 3))); > > > > >extern char *strcasestr (__const char *__haystack, __const char *__needle) > throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); > > > > > > >extern void *memmem (__const void *__haystack, size_t __haystacklen, > __const void *__needle, size_t __needlelen) > throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 3))); > > > >extern void *__mempcpy (void *__restrict __dest, > __const void *__restrict __src, size_t __n) > throw () __attribute__ ((__nonnull__ (1, 2))); >extern void *mempcpy (void *__restrict __dest, > __const void *__restrict __src, size_t __n) > throw () __attribute__ ((__nonnull__ (1, 2))); > > > > > >extern size_t strlen (__const char *__s) > throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); > > > > > >extern size_t strnlen (__const char *__string, size_t __maxlen) > throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); > > > > > >extern char *strerror (int __errnum) throw (); > ># 281 "/usr/include/string.h" 3 4 >extern char *strerror_r (int __errnum, char *__buf, size_t __buflen) > throw () __attribute__ ((__nonnull__ (2))); > > > > > >extern void __bzero (void *__s, size_t __n) throw () __attribute__ ((__nonnull__ (1))); > > > >extern void bcopy (__const void *__src, void *__dest, size_t __n) > throw () __attribute__ ((__nonnull__ (1, 2))); > > >extern void bzero (void *__s, size_t __n) throw () __attribute__ ((__nonnull__ (1))); > > >extern int bcmp (__const void *__s1, __const void *__s2, size_t __n) > throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); > > >extern char *index (__const char *__s, int __c) > throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); > > >extern char *rindex (__const char *__s, int __c) > throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); > > > >extern int ffs (int __i) throw () __attribute__ ((__const__)); > > > > >extern int ffsl (long int __l) throw () __attribute__ ((__const__)); > >__extension__ extern int ffsll (long long int __ll) > throw () __attribute__ ((__const__)); > > > > >extern int strcasecmp (__const char *__s1, __const char *__s2) > throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); > > >extern int strncasecmp (__const char *__s1, __const char *__s2, size_t __n) > throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); > > > > > >extern int strcasecmp_l (__const char *__s1, __const char *__s2, > __locale_t __loc) > throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 3))); > >extern int strncasecmp_l (__const char *__s1, __const char *__s2, > size_t __n, __locale_t __loc) > throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 4))); > > > > > >extern char *strsep (char **__restrict __stringp, > __const char *__restrict __delim) > throw () __attribute__ ((__nonnull__ (1, 2))); > > > > >extern int strverscmp (__const char *__s1, __const char *__s2) > throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); > > >extern char *strsignal (int __sig) throw (); > > >extern char *__stpcpy (char *__restrict __dest, __const char *__restrict __src) > throw () __attribute__ ((__nonnull__ (1, 2))); >extern char *stpcpy (char *__restrict __dest, __const char *__restrict __src) > throw () __attribute__ ((__nonnull__ (1, 2))); > > > >extern char *__stpncpy (char *__restrict __dest, > __const char *__restrict __src, size_t __n) > throw () __attribute__ ((__nonnull__ (1, 2))); >extern char *stpncpy (char *__restrict __dest, > __const char *__restrict __src, size_t __n) > throw () __attribute__ ((__nonnull__ (1, 2))); > > >extern char *strfry (char *__string) throw () __attribute__ ((__nonnull__ (1))); > > >extern void *memfrob (void *__s, size_t __n) throw () __attribute__ ((__nonnull__ (1))); > > > > > > >extern char *basename (__const char *__filename) throw () __attribute__ ((__nonnull__ (1))); ># 426 "/usr/include/string.h" 3 4 >} ># 52 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/cstring" 2 3 ># 77 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/cstring" 3 >namespace std >{ > using ::memcpy; > using ::memmove; > using ::strcpy; > using ::strncpy; > using ::strcat; > using ::strncat; > using ::memcmp; > using ::strcmp; > using ::strcoll; > using ::strncmp; > using ::strxfrm; > using ::strcspn; > using ::strspn; > using ::strtok; > using ::memset; > using ::strerror; > using ::strlen; > > using ::memchr; > > inline void* > memchr(void* __p, int __c, size_t __n) > { return memchr(const_cast<const void*>(__p), __c, __n); } > > using ::strchr; > > inline char* > strchr(char* __s1, int __n) > { return __builtin_strchr(const_cast<const char*>(__s1), __n); } > > using ::strpbrk; > > inline char* > strpbrk(char* __s1, const char* __s2) > { return __builtin_strpbrk(const_cast<const char*>(__s1), __s2); } > > using ::strrchr; > > inline char* > strrchr(char* __s1, int __n) > { return __builtin_strrchr(const_cast<const char*>(__s1), __n); } > > using ::strstr; > > inline char* > strstr(char* __s1, const char* __s2) > { return __builtin_strstr(const_cast<const char*>(__s1), __s2); } >} ># 13 "../../OgreMain/include/OgreStdHeaders.h" 2 ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/cstdarg" 1 3 ># 46 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/cstdarg" 3 > ># 47 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/cstdarg" 3 > ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/stdarg.h" 1 3 4 ># 49 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/cstdarg" 2 3 > > > > > > >namespace std >{ > using ::va_list; >} ># 14 "../../OgreMain/include/OgreStdHeaders.h" 2 ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/cmath" 1 3 ># 47 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/cmath" 3 > ># 48 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/cmath" 3 > > > ># 1 "/usr/include/math.h" 1 3 4 ># 29 "/usr/include/math.h" 3 4 >extern "C" { > > > ># 1 "/usr/include/bits/huge_val.h" 1 3 4 ># 34 "/usr/include/math.h" 2 3 4 > ># 1 "/usr/include/bits/huge_valf.h" 1 3 4 ># 36 "/usr/include/math.h" 2 3 4 ># 1 "/usr/include/bits/huge_vall.h" 1 3 4 ># 37 "/usr/include/math.h" 2 3 4 > > ># 1 "/usr/include/bits/inf.h" 1 3 4 ># 40 "/usr/include/math.h" 2 3 4 > > ># 1 "/usr/include/bits/nan.h" 1 3 4 ># 43 "/usr/include/math.h" 2 3 4 > > > ># 1 "/usr/include/bits/mathdef.h" 1 3 4 ># 36 "/usr/include/bits/mathdef.h" 3 4 >typedef long double float_t; > >typedef long double double_t; ># 47 "/usr/include/math.h" 2 3 4 ># 70 "/usr/include/math.h" 3 4 ># 1 "/usr/include/bits/mathcalls.h" 1 3 4 ># 53 "/usr/include/bits/mathcalls.h" 3 4 > > >extern double acos (double __x) throw (); extern double __acos (double __x) throw (); > >extern double asin (double __x) throw (); extern double __asin (double __x) throw (); > >extern double atan (double __x) throw (); extern double __atan (double __x) throw (); > >extern double atan2 (double __y, double __x) throw (); extern double __atan2 (double __y, double __x) throw (); > > >extern double cos (double __x) throw (); extern double __cos (double __x) throw (); > >extern double sin (double __x) throw (); extern double __sin (double __x) throw (); > >extern double tan (double __x) throw (); extern double __tan (double __x) throw (); > > > > >extern double cosh (double __x) throw (); extern double __cosh (double __x) throw (); > >extern double sinh (double __x) throw (); extern double __sinh (double __x) throw (); > >extern double tanh (double __x) throw (); extern double __tanh (double __x) throw (); > > > > >extern void sincos (double __x, double *__sinx, double *__cosx) throw (); extern void __sincos (double __x, double *__sinx, double *__cosx) throw (); > > > > > > >extern double acosh (double __x) throw (); extern double __acosh (double __x) throw (); > >extern double asinh (double __x) throw (); extern double __asinh (double __x) throw (); > >extern double atanh (double __x) throw (); extern double __atanh (double __x) throw (); > > > > > > > >extern double exp (double __x) throw (); extern double __exp (double __x) throw (); > > >extern double frexp (double __x, int *__exponent) throw (); extern double __frexp (double __x, int *__exponent) throw (); > > >extern double ldexp (double __x, int __exponent) throw (); extern double __ldexp (double __x, int __exponent) throw (); > > >extern double log (double __x) throw (); extern double __log (double __x) throw (); > > >extern double log10 (double __x) throw (); extern double __log10 (double __x) throw (); > > >extern double modf (double __x, double *__iptr) throw (); extern double __modf (double __x, double *__iptr) throw (); > > > > >extern double exp10 (double __x) throw (); extern double __exp10 (double __x) throw (); > >extern double pow10 (double __x) throw (); extern double __pow10 (double __x) throw (); > > > > > >extern double expm1 (double __x) throw (); extern double __expm1 (double __x) throw (); > > >extern double log1p (double __x) throw (); extern double __log1p (double __x) throw (); > > >extern double logb (double __x) throw (); extern double __logb (double __x) throw (); > > > > > > >extern double exp2 (double __x) throw (); extern double __exp2 (double __x) throw (); > > >extern double log2 (double __x) throw (); extern double __log2 (double __x) throw (); > > > > > > > > >extern double pow (double __x, double __y) throw (); extern double __pow (double __x, double __y) throw (); > > >extern double sqrt (double __x) throw (); extern double __sqrt (double __x) throw (); > > > > > >extern double hypot (double __x, double __y) throw (); extern double __hypot (double __x, double __y) throw (); > > > > > > >extern double cbrt (double __x) throw (); extern double __cbrt (double __x) throw (); > > > > > > > > >extern double ceil (double __x) throw () __attribute__ ((__const__)); extern double __ceil (double __x) throw () __attribute__ ((__const__)); > > >extern double fabs (double __x) throw () __attribute__ ((__const__)); extern double __fabs (double __x) throw () __attribute__ ((__const__)); > > >extern double floor (double __x) throw () __attribute__ ((__const__)); extern double __floor (double __x) throw () __attribute__ ((__const__)); > > >extern double fmod (double __x, double __y) throw (); extern double __fmod (double __x, double __y) throw (); > > > > >extern int __isinf (double __value) throw () __attribute__ ((__const__)); > > >extern int __finite (double __value) throw () __attribute__ ((__const__)); > > > > > >extern int isinf (double __value) throw () __attribute__ ((__const__)); > > >extern int finite (double __value) throw () __attribute__ ((__const__)); > > >extern double drem (double __x, double __y) throw (); extern double __drem (double __x, double __y) throw (); > > > >extern double significand (double __x) throw (); extern double __significand (double __x) throw (); > > > > > >extern double copysign (double __x, double __y) throw () __attribute__ ((__const__)); extern double __copysign (double __x, double __y) throw () __attribute__ ((__const__)); > > > > > > >extern double nan (__const char *__tagb) throw () __attribute__ ((__const__)); extern double __nan (__const char *__tagb) throw () __attribute__ ((__const__)); > > > > > >extern int __isnan (double __value) throw () __attribute__ ((__const__)); > > > >extern int isnan (double __value) throw () __attribute__ ((__const__)); > > >extern double j0 (double) throw (); extern double __j0 (double) throw (); >extern double j1 (double) throw (); extern double __j1 (double) throw (); >extern double jn (int, double) throw (); extern double __jn (int, double) throw (); >extern double y0 (double) throw (); extern double __y0 (double) throw (); >extern double y1 (double) throw (); extern double __y1 (double) throw (); >extern double yn (int, double) throw (); extern double __yn (int, double) throw (); > > > > > > >extern double erf (double) throw (); extern double __erf (double) throw (); >extern double erfc (double) throw (); extern double __erfc (double) throw (); >extern double lgamma (double) throw (); extern double __lgamma (double) throw (); > > > > > > >extern double tgamma (double) throw (); extern double __tgamma (double) throw (); > > > > > >extern double gamma (double) throw (); extern double __gamma (double) throw (); > > > > > > >extern double lgamma_r (double, int *__signgamp) throw (); extern double __lgamma_r (double, int *__signgamp) throw (); > > > > > > > >extern double rint (double __x) throw (); extern double __rint (double __x) throw (); > > >extern double nextafter (double __x, double __y) throw () __attribute__ ((__const__)); extern double __nextafter (double __x, double __y) throw () __attribute__ ((__const__)); > >extern double nexttoward (double __x, long double __y) throw () __attribute__ ((__const__)); extern double __nexttoward (double __x, long double __y) throw () __attribute__ ((__const__)); > > > >extern double remainder (double __x, double __y) throw (); extern double __remainder (double __x, double __y) throw (); > > > >extern double scalbn (double __x, int __n) throw (); extern double __scalbn (double __x, int __n) throw (); > > > >extern int ilogb (double __x) throw (); extern int __ilogb (double __x) throw (); > > > > >extern double scalbln (double __x, long int __n) throw (); extern double __scalbln (double __x, long int __n) throw (); > > > >extern double nearbyint (double __x) throw (); extern double __nearbyint (double __x) throw (); > > > >extern double round (double __x) throw () __attribute__ ((__const__)); extern double __round (double __x) throw () __attribute__ ((__const__)); > > > >extern double trunc (double __x) throw () __attribute__ ((__const__)); extern double __trunc (double __x) throw () __attribute__ ((__const__)); > > > > >extern double remquo (double __x, double __y, int *__quo) throw (); extern double __remquo (double __x, double __y, int *__quo) throw (); > > > > > > >extern long int lrint (double __x) throw (); extern long int __lrint (double __x) throw (); >extern long long int llrint (double __x) throw (); extern long long int __llrint (double __x) throw (); > > > >extern long int lround (double __x) throw (); extern long int __lround (double __x) throw (); >extern long long int llround (double __x) throw (); extern long long int __llround (double __x) throw (); > > > >extern double fdim (double __x, double __y) throw (); extern double __fdim (double __x, double __y) throw (); > > >extern double fmax (double __x, double __y) throw (); extern double __fmax (double __x, double __y) throw (); > > >extern double fmin (double __x, double __y) throw (); extern double __fmin (double __x, double __y) throw (); > > > >extern int __fpclassify (double __value) throw () > __attribute__ ((__const__)); > > >extern int __signbit (double __value) throw () > __attribute__ ((__const__)); > > > >extern double fma (double __x, double __y, double __z) throw (); extern double __fma (double __x, double __y, double __z) throw (); > > > > >extern double scalb (double __x, double __n) throw (); extern double __scalb (double __x, double __n) throw (); ># 71 "/usr/include/math.h" 2 3 4 ># 93 "/usr/include/math.h" 3 4 ># 1 "/usr/include/bits/mathcalls.h" 1 3 4 ># 53 "/usr/include/bits/mathcalls.h" 3 4 > > >extern float acosf (float __x) throw (); extern float __acosf (float __x) throw (); > >extern float asinf (float __x) throw (); extern float __asinf (float __x) throw (); > >extern float atanf (float __x) throw (); extern float __atanf (float __x) throw (); > >extern float atan2f (float __y, float __x) throw (); extern float __atan2f (float __y, float __x) throw (); > > >extern float cosf (float __x) throw (); extern float __cosf (float __x) throw (); > >extern float sinf (float __x) throw (); extern float __sinf (float __x) throw (); > >extern float tanf (float __x) throw (); extern float __tanf (float __x) throw (); > > > > >extern float coshf (float __x) throw (); extern float __coshf (float __x) throw (); > >extern float sinhf (float __x) throw (); extern float __sinhf (float __x) throw (); > >extern float tanhf (float __x) throw (); extern float __tanhf (float __x) throw (); > > > > >extern void sincosf (float __x, float *__sinx, float *__cosx) throw (); extern void __sincosf (float __x, float *__sinx, float *__cosx) throw (); > > > > > > >extern float acoshf (float __x) throw (); extern float __acoshf (float __x) throw (); > >extern float asinhf (float __x) throw (); extern float __asinhf (float __x) throw (); > >extern float atanhf (float __x) throw (); extern float __atanhf (float __x) throw (); > > > > > > > >extern float expf (float __x) throw (); extern float __expf (float __x) throw (); > > >extern float frexpf (float __x, int *__exponent) throw (); extern float __frexpf (float __x, int *__exponent) throw (); > > >extern float ldexpf (float __x, int __exponent) throw (); extern float __ldexpf (float __x, int __exponent) throw (); > > >extern float logf (float __x) throw (); extern float __logf (float __x) throw (); > > >extern float log10f (float __x) throw (); extern float __log10f (float __x) throw (); > > >extern float modff (float __x, float *__iptr) throw (); extern float __modff (float __x, float *__iptr) throw (); > > > > >extern float exp10f (float __x) throw (); extern float __exp10f (float __x) throw (); > >extern float pow10f (float __x) throw (); extern float __pow10f (float __x) throw (); > > > > > >extern float expm1f (float __x) throw (); extern float __expm1f (float __x) throw (); > > >extern float log1pf (float __x) throw (); extern float __log1pf (float __x) throw (); > > >extern float logbf (float __x) throw (); extern float __logbf (float __x) throw (); > > > > > > >extern float exp2f (float __x) throw (); extern float __exp2f (float __x) throw (); > > >extern float log2f (float __x) throw (); extern float __log2f (float __x) throw (); > > > > > > > > >extern float powf (float __x, float __y) throw (); extern float __powf (float __x, float __y) throw (); > > >extern float sqrtf (float __x) throw (); extern float __sqrtf (float __x) throw (); > > > > > >extern float hypotf (float __x, float __y) throw (); extern float __hypotf (float __x, float __y) throw (); > > > > > > >extern float cbrtf (float __x) throw (); extern float __cbrtf (float __x) throw (); > > > > > > > > >extern float ceilf (float __x) throw () __attribute__ ((__const__)); extern float __ceilf (float __x) throw () __attribute__ ((__const__)); > > >extern float fabsf (float __x) throw () __attribute__ ((__const__)); extern float __fabsf (float __x) throw () __attribute__ ((__const__)); > > >extern float floorf (float __x) throw () __attribute__ ((__const__)); extern float __floorf (float __x) throw () __attribute__ ((__const__)); > > >extern float fmodf (float __x, float __y) throw (); extern float __fmodf (float __x, float __y) throw (); > > > > >extern int __isinff (float __value) throw () __attribute__ ((__const__)); > > >extern int __finitef (float __value) throw () __attribute__ ((__const__)); > > > > > >extern int isinff (float __value) throw () __attribute__ ((__const__)); > > >extern int finitef (float __value) throw () __attribute__ ((__const__)); > > >extern float dremf (float __x, float __y) throw (); extern float __dremf (float __x, float __y) throw (); > > > >extern float significandf (float __x) throw (); extern float __significandf (float __x) throw (); > > > > > >extern float copysignf (float __x, float __y) throw () __attribute__ ((__const__)); extern float __copysignf (float __x, float __y) throw () __attribute__ ((__const__)); > > > > > > >extern float nanf (__const char *__tagb) throw () __attribute__ ((__const__)); extern float __nanf (__const char *__tagb) throw () __attribute__ ((__const__)); > > > > > >extern int __isnanf (float __value) throw () __attribute__ ((__const__)); > > > >extern int isnanf (float __value) throw () __attribute__ ((__const__)); > > >extern float j0f (float) throw (); extern float __j0f (float) throw (); >extern float j1f (float) throw (); extern float __j1f (float) throw (); >extern float jnf (int, float) throw (); extern float __jnf (int, float) throw (); >extern float y0f (float) throw (); extern float __y0f (float) throw (); >extern float y1f (float) throw (); extern float __y1f (float) throw (); >extern float ynf (int, float) throw (); extern float __ynf (int, float) throw (); > > > > > > >extern float erff (float) throw (); extern float __erff (float) throw (); >extern float erfcf (float) throw (); extern float __erfcf (float) throw (); >extern float lgammaf (float) throw (); extern float __lgammaf (float) throw (); > > > > > > >extern float tgammaf (float) throw (); extern float __tgammaf (float) throw (); > > > > > >extern float gammaf (float) throw (); extern float __gammaf (float) throw (); > > > > > > >extern float lgammaf_r (float, int *__signgamp) throw (); extern float __lgammaf_r (float, int *__signgamp) throw (); > > > > > > > >extern float rintf (float __x) throw (); extern float __rintf (float __x) throw (); > > >extern float nextafterf (float __x, float __y) throw () __attribute__ ((__const__)); extern float __nextafterf (float __x, float __y) throw () __attribute__ ((__const__)); > >extern float nexttowardf (float __x, long double __y) throw () __attribute__ ((__const__)); extern float __nexttowardf (float __x, long double __y) throw () __attribute__ ((__const__)); > > > >extern float remainderf (float __x, float __y) throw (); extern float __remainderf (float __x, float __y) throw (); > > > >extern float scalbnf (float __x, int __n) throw (); extern float __scalbnf (float __x, int __n) throw (); > > > >extern int ilogbf (float __x) throw (); extern int __ilogbf (float __x) throw (); > > > > >extern float scalblnf (float __x, long int __n) throw (); extern float __scalblnf (float __x, long int __n) throw (); > > > >extern float nearbyintf (float __x) throw (); extern float __nearbyintf (float __x) throw (); > > > >extern float roundf (float __x) throw () __attribute__ ((__const__)); extern float __roundf (float __x) throw () __attribute__ ((__const__)); > > > >extern float truncf (float __x) throw () __attribute__ ((__const__)); extern float __truncf (float __x) throw () __attribute__ ((__const__)); > > > > >extern float remquof (float __x, float __y, int *__quo) throw (); extern float __remquof (float __x, float __y, int *__quo) throw (); > > > > > > >extern long int lrintf (float __x) throw (); extern long int __lrintf (float __x) throw (); >extern long long int llrintf (float __x) throw (); extern long long int __llrintf (float __x) throw (); > > > >extern long int lroundf (float __x) throw (); extern long int __lroundf (float __x) throw (); >extern long long int llroundf (float __x) throw (); extern long long int __llroundf (float __x) throw (); > > > >extern float fdimf (float __x, float __y) throw (); extern float __fdimf (float __x, float __y) throw (); > > >extern float fmaxf (float __x, float __y) throw (); extern float __fmaxf (float __x, float __y) throw (); > > >extern float fminf (float __x, float __y) throw (); extern float __fminf (float __x, float __y) throw (); > > > >extern int __fpclassifyf (float __value) throw () > __attribute__ ((__const__)); > > >extern int __signbitf (float __value) throw () > __attribute__ ((__const__)); > > > >extern float fmaf (float __x, float __y, float __z) throw (); extern float __fmaf (float __x, float __y, float __z) throw (); > > > > >extern float scalbf (float __x, float __n) throw (); extern float __scalbf (float __x, float __n) throw (); ># 94 "/usr/include/math.h" 2 3 4 ># 114 "/usr/include/math.h" 3 4 ># 1 "/usr/include/bits/mathcalls.h" 1 3 4 ># 53 "/usr/include/bits/mathcalls.h" 3 4 > > >extern long double acosl (long double __x) throw (); extern long double __acosl (long double __x) throw (); > >extern long double asinl (long double __x) throw (); extern long double __asinl (long double __x) throw (); > >extern long double atanl (long double __x) throw (); extern long double __atanl (long double __x) throw (); > >extern long double atan2l (long double __y, long double __x) throw (); extern long double __atan2l (long double __y, long double __x) throw (); > > >extern long double cosl (long double __x) throw (); extern long double __cosl (long double __x) throw (); > >extern long double sinl (long double __x) throw (); extern long double __sinl (long double __x) throw (); > >extern long double tanl (long double __x) throw (); extern long double __tanl (long double __x) throw (); > > > > >extern long double coshl (long double __x) throw (); extern long double __coshl (long double __x) throw (); > >extern long double sinhl (long double __x) throw (); extern long double __sinhl (long double __x) throw (); > >extern long double tanhl (long double __x) throw (); extern long double __tanhl (long double __x) throw (); > > > > >extern void sincosl (long double __x, long double *__sinx, long double *__cosx) throw (); extern void __sincosl (long double __x, long double *__sinx, long double *__cosx) throw (); > > > > > > >extern long double acoshl (long double __x) throw (); extern long double __acoshl (long double __x) throw (); > >extern long double asinhl (long double __x) throw (); extern long double __asinhl (long double __x) throw (); > >extern long double atanhl (long double __x) throw (); extern long double __atanhl (long double __x) throw (); > > > > > > > >extern long double expl (long double __x) throw (); extern long double __expl (long double __x) throw (); > > >extern long double frexpl (long double __x, int *__exponent) throw (); extern long double __frexpl (long double __x, int *__exponent) throw (); > > >extern long double ldexpl (long double __x, int __exponent) throw (); extern long double __ldexpl (long double __x, int __exponent) throw (); > > >extern long double logl (long double __x) throw (); extern long double __logl (long double __x) throw (); > > >extern long double log10l (long double __x) throw (); extern long double __log10l (long double __x) throw (); > > >extern long double modfl (long double __x, long double *__iptr) throw (); extern long double __modfl (long double __x, long double *__iptr) throw (); > > > > >extern long double exp10l (long double __x) throw (); extern long double __exp10l (long double __x) throw (); > >extern long double pow10l (long double __x) throw (); extern long double __pow10l (long double __x) throw (); > > > > > >extern long double expm1l (long double __x) throw (); extern long double __expm1l (long double __x) throw (); > > >extern long double log1pl (long double __x) throw (); extern long double __log1pl (long double __x) throw (); > > >extern long double logbl (long double __x) throw (); extern long double __logbl (long double __x) throw (); > > > > > > >extern long double exp2l (long double __x) throw (); extern long double __exp2l (long double __x) throw (); > > >extern long double log2l (long double __x) throw (); extern long double __log2l (long double __x) throw (); > > > > > > > > >extern long double powl (long double __x, long double __y) throw (); extern long double __powl (long double __x, long double __y) throw (); > > >extern long double sqrtl (long double __x) throw (); extern long double __sqrtl (long double __x) throw (); > > > > > >extern long double hypotl (long double __x, long double __y) throw (); extern long double __hypotl (long double __x, long double __y) throw (); > > > > > > >extern long double cbrtl (long double __x) throw (); extern long double __cbrtl (long double __x) throw (); > > > > > > > > >extern long double ceill (long double __x) throw () __attribute__ ((__const__)); extern long double __ceill (long double __x) throw () __attribute__ ((__const__)); > > >extern long double fabsl (long double __x) throw () __attribute__ ((__const__)); extern long double __fabsl (long double __x) throw () __attribute__ ((__const__)); > > >extern long double floorl (long double __x) throw () __attribute__ ((__const__)); extern long double __floorl (long double __x) throw () __attribute__ ((__const__)); > > >extern long double fmodl (long double __x, long double __y) throw (); extern long double __fmodl (long double __x, long double __y) throw (); > > > > >extern int __isinfl (long double __value) throw () __attribute__ ((__const__)); > > >extern int __finitel (long double __value) throw () __attribute__ ((__const__)); > > > > > >extern int isinfl (long double __value) throw () __attribute__ ((__const__)); > > >extern int finitel (long double __value) throw () __attribute__ ((__const__)); > > >extern long double dreml (long double __x, long double __y) throw (); extern long double __dreml (long double __x, long double __y) throw (); > > > >extern long double significandl (long double __x) throw (); extern long double __significandl (long double __x) throw (); > > > > > >extern long double copysignl (long double __x, long double __y) throw () __attribute__ ((__const__)); extern long double __copysignl (long double __x, long double __y) throw () __attribute__ ((__const__)); > > > > > > >extern long double nanl (__const char *__tagb) throw () __attribute__ ((__const__)); extern long double __nanl (__const char *__tagb) throw () __attribute__ ((__const__)); > > > > > >extern int __isnanl (long double __value) throw () __attribute__ ((__const__)); > > > >extern int isnanl (long double __value) throw () __attribute__ ((__const__)); > > >extern long double j0l (long double) throw (); extern long double __j0l (long double) throw (); >extern long double j1l (long double) throw (); extern long double __j1l (long double) throw (); >extern long double jnl (int, long double) throw (); extern long double __jnl (int, long double) throw (); >extern long double y0l (long double) throw (); extern long double __y0l (long double) throw (); >extern long double y1l (long double) throw (); extern long double __y1l (long double) throw (); >extern long double ynl (int, long double) throw (); extern long double __ynl (int, long double) throw (); > > > > > > >extern long double erfl (long double) throw (); extern long double __erfl (long double) throw (); >extern long double erfcl (long double) throw (); extern long double __erfcl (long double) throw (); >extern long double lgammal (long double) throw (); extern long double __lgammal (long double) throw (); > > > > > > >extern long double tgammal (long double) throw (); extern long double __tgammal (long double) throw (); > > > > > >extern long double gammal (long double) throw (); extern long double __gammal (long double) throw (); > > > > > > >extern long double lgammal_r (long double, int *__signgamp) throw (); extern long double __lgammal_r (long double, int *__signgamp) throw (); > > > > > > > >extern long double rintl (long double __x) throw (); extern long double __rintl (long double __x) throw (); > > >extern long double nextafterl (long double __x, long double __y) throw () __attribute__ ((__const__)); extern long double __nextafterl (long double __x, long double __y) throw () __attribute__ ((__const__)); > >extern long double nexttowardl (long double __x, long double __y) throw () __attribute__ ((__const__)); extern long double __nexttowardl (long double __x, long double __y) throw () __attribute__ ((__const__)); > > > >extern long double remainderl (long double __x, long double __y) throw (); extern long double __remainderl (long double __x, long double __y) throw (); > > > >extern long double scalbnl (long double __x, int __n) throw (); extern long double __scalbnl (long double __x, int __n) throw (); > > > >extern int ilogbl (long double __x) throw (); extern int __ilogbl (long double __x) throw (); > > > > >extern long double scalblnl (long double __x, long int __n) throw (); extern long double __scalblnl (long double __x, long int __n) throw (); > > > >extern long double nearbyintl (long double __x) throw (); extern long double __nearbyintl (long double __x) throw (); > > > >extern long double roundl (long double __x) throw () __attribute__ ((__const__)); extern long double __roundl (long double __x) throw () __attribute__ ((__const__)); > > > >extern long double truncl (long double __x) throw () __attribute__ ((__const__)); extern long double __truncl (long double __x) throw () __attribute__ ((__const__)); > > > > >extern long double remquol (long double __x, long double __y, int *__quo) throw (); extern long double __remquol (long double __x, long double __y, int *__quo) throw (); > > > > > > >extern long int lrintl (long double __x) throw (); extern long int __lrintl (long double __x) throw (); >extern long long int llrintl (long double __x) throw (); extern long long int __llrintl (long double __x) throw (); > > > >extern long int lroundl (long double __x) throw (); extern long int __lroundl (long double __x) throw (); >extern long long int llroundl (long double __x) throw (); extern long long int __llroundl (long double __x) throw (); > > > >extern long double fdiml (long double __x, long double __y) throw (); extern long double __fdiml (long double __x, long double __y) throw (); > > >extern long double fmaxl (long double __x, long double __y) throw (); extern long double __fmaxl (long double __x, long double __y) throw (); > > >extern long double fminl (long double __x, long double __y) throw (); extern long double __fminl (long double __x, long double __y) throw (); > > > >extern int __fpclassifyl (long double __value) throw () > __attribute__ ((__const__)); > > >extern int __signbitl (long double __value) throw () > __attribute__ ((__const__)); > > > >extern long double fmal (long double __x, long double __y, long double __z) throw (); extern long double __fmal (long double __x, long double __y, long double __z) throw (); > > > > >extern long double scalbl (long double __x, long double __n) throw (); extern long double __scalbl (long double __x, long double __n) throw (); ># 115 "/usr/include/math.h" 2 3 4 ># 130 "/usr/include/math.h" 3 4 >extern int signgam; ># 171 "/usr/include/math.h" 3 4 >enum > { > FP_NAN, > > FP_INFINITE, > > FP_ZERO, > > FP_SUBNORMAL, > > FP_NORMAL > > }; ># 257 "/usr/include/math.h" 3 4 >typedef enum >{ > _IEEE_ = -1, > _SVID_, > _XOPEN_, > _POSIX_, > _ISOC_ >} _LIB_VERSION_TYPE; > > > > >extern _LIB_VERSION_TYPE _LIB_VERSION; ># 280 "/usr/include/math.h" 3 4 >struct __exception > > > > { > int type; > char *name; > double arg1; > double arg2; > double retval; > }; > > >extern int matherr (struct __exception *__exc) throw (); ># 382 "/usr/include/math.h" 3 4 ># 1 "/usr/include/bits/mathinline.h" 1 3 4 ># 127 "/usr/include/bits/mathinline.h" 3 4 >__inline int >__signbitf (float __x) throw () >{ > __extension__ union { float __f; int __i; } __u = { __f: __x }; > return __u.__i < 0; >} >__inline int >__signbit (double __x) throw () >{ > __extension__ union { double __d; int __i[2]; } __u = { __d: __x }; > return __u.__i[1] < 0; >} >__inline int >__signbitl (long double __x) throw () >{ > __extension__ union { long double __l; int __i[3]; } __u = { __l: __x }; > return (__u.__i[2] & 0x8000) != 0; >} ># 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 >} ># 52 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/cmath" 2 3 ># 80 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/cmath" 3 >namespace __gnu_cxx >{ > namespace __c99_binding > { ># 107 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/cmath" 3 > using ::acosf; > > > using ::asinf; > > > using ::atanf; > > > using ::atan2f; > > > using ::ceilf; > > > using ::coshf; > > > using ::expf; > > > using ::floorf; > > > using ::fmodf; > > > using ::frexpf; > > > using ::ldexpf; > > > using ::logf; > > > using ::log10f; > > > using ::modff; > > > using ::powf; > > > using ::sinhf; > > > using ::tanf; > > > using ::tanhf; > > > } >} > >namespace std >{ > > > template<typename _Tp> _Tp __cmath_power(_Tp, unsigned int); > > inline double > abs(double __x) > { return __builtin_fabs(__x); } > > inline float > abs(float __x) > { return __builtin_fabsf(__x); } > > inline long double > abs(long double __x) > { return __builtin_fabsl(__x); } > > > inline float > acos(float __x) { return __gnu_cxx::__c99_binding::acosf(__x); } > > > > > > using ::acos; > > > inline long double > acos(long double __x) { return ::acosl(__x); } > > > > > > using ::asin; > > > inline float > asin(float __x) { return __gnu_cxx::__c99_binding::asinf(__x); } > > > > > > > inline long double > asin(long double __x) { return ::asinl(__x); } > > > > > > using ::atan; > > > inline float > atan(float __x) { return __gnu_cxx::__c99_binding::atanf(__x); } > > > > > > > inline long double > atan(long double __x) { return ::atanl(__x); } > > > > > > using ::atan2; > > > inline float > atan2(float __y, float __x) { return __gnu_cxx::__c99_binding::atan2f(__y, __x); } > > > > > > > > inline long double > atan2(long double __y, long double __x) { return ::atan2l(__y, __x); } > > > > > > > using ::ceil; > > > inline float > ceil(float __x) { return __gnu_cxx::__c99_binding::ceilf(__x); } > > > > > > > inline long double > ceil(long double __x) { return ::ceill(__x); } > > > > > > using ::cos; > > inline float > cos(float __x) > { return __builtin_cosf(__x); } > > inline long double > cos(long double __x) > { return __builtin_cosl(__x); } > > using ::cosh; > > > inline float > cosh(float __x) { return __gnu_cxx::__c99_binding::coshf(__x); } > > > > > > > inline long double > cosh(long double __x) { return ::coshl(__x); } > > > > > > using ::exp; > > > inline float > exp(float __x) { return __gnu_cxx::__c99_binding::expf(__x); } > > > > > > > inline long double > exp(long double __x) { return ::expl(__x); } > > > > > > using ::fabs; > > inline float > fabs(float __x) > { return __builtin_fabsf(__x); } > > inline long double > fabs(long double __x) > { return __builtin_fabsl(__x); } > > using ::floor; > > > inline float > floor(float __x) { return __gnu_cxx::__c99_binding::floorf(__x); } > > > > > > > inline long double > floor(long double __x) { return ::floorl(__x); } > > > > > > using ::fmod; > > > inline float > fmod(float __x, float __y) { return __gnu_cxx::__c99_binding::fmodf(__x, __y); } > > > > > > > > inline long double > fmod(long double __x, long double __y) { return ::fmodl(__x, __y); } > > > > > > > using ::frexp; > > > inline float > frexp(float __x, int* __exp) { return __gnu_cxx::__c99_binding::frexpf(__x, __exp); } > > > > > > > inline long double > frexp(long double __x, int* __exp) { return ::frexpl(__x, __exp); } > > > > > > > using ::ldexp; > > > inline float > ldexp(float __x, int __exp) { return __gnu_cxx::__c99_binding::ldexpf(__x, __exp); } > > > > > > > > inline long double > ldexp(long double __x, int __exp) { return ::ldexpl(__x, __exp); } > > > > > > > using ::log; > > > inline float > log(float __x) { return __gnu_cxx::__c99_binding::logf(__x); } > > > > > > > inline long double > log(long double __x) { return ::logl(__x); } > > > > > > using ::log10; > > > inline float > log10(float __x) { return __gnu_cxx::__c99_binding::log10f(__x); } > > > > > > > inline long double > log10(long double __x) { return ::log10l(__x); } > > > > > > using ::modf; > > > inline float > modf(float __x, float* __iptr) { return __gnu_cxx::__c99_binding::modff(__x, __iptr); } ># 460 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/cmath" 3 > inline long double > modf(long double __x, long double* __iptr) { return ::modfl(__x, __iptr); } ># 473 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/cmath" 3 > template<typename _Tp> > inline _Tp > __pow_helper(_Tp __x, int __n) > { > return __n < 0 > ? _Tp(1)/__cmath_power(__x, -__n) > : __cmath_power(__x, __n); > } > > using ::pow; > > > inline float > pow(float __x, float __y) { return __gnu_cxx::__c99_binding::powf(__x, __y); } > > > > > > > > inline long double > pow(long double __x, long double __y) { return ::powl(__x, __y); } > > > > > > > inline double > pow(double __x, int __i) > { return __pow_helper(__x, __i); } > > inline float > pow(float __x, int __n) > { return __pow_helper(__x, __n); } > > inline long double > pow(long double __x, int __n) > { return __pow_helper(__x, __n); } > > using ::sin; > > inline float > sin(float __x) > { return __builtin_sinf(__x); } > > inline long double > sin(long double __x) > { return __builtin_sinl(__x); } > > using ::sinh; > > > inline float > sinh(float __x) { return __gnu_cxx::__c99_binding::sinhf(__x); } > > > > > > > inline long double > sinh(long double __x) { return ::sinhl(__x); } > > > > > > using ::sqrt; > > inline float > sqrt(float __x) > { return __builtin_sqrtf(__x); } > > inline long double > sqrt(long double __x) > { return __builtin_sqrtl(__x); } > > using ::tan; > > > inline float > tan(float __x) { return __gnu_cxx::__c99_binding::tanf(__x); } > > > > > > > inline long double > tan(long double __x) { return ::tanl(__x); } > > > > > > using ::tanh; > > > inline float > tanh(float __x) { return __gnu_cxx::__c99_binding::tanhf(__x); } > > > > > > > inline long double > tanh(long double __x) { return ::tanhl(__x); } > > > > >} > > > > > > > >namespace __gnu_cxx >{ > template<typename _Tp> > int > __capture_fpclassify(_Tp __f) { return (sizeof (__f) == sizeof (float) ? __fpclassifyf (__f) : sizeof (__f) == sizeof (double) ? __fpclassify (__f) : __fpclassifyl (__f)); } > > template<typename _Tp> > int > __capture_isfinite(_Tp __f) { return (sizeof (__f) == sizeof (float) ? __finitef (__f) : sizeof (__f) == sizeof (double) ? __finite (__f) : __finitel (__f)); } > > template<typename _Tp> > int > __capture_isinf(_Tp __f) { return (sizeof (__f) == sizeof (float) ? __isinff (__f) : sizeof (__f) == sizeof (double) ? __isinf (__f) : __isinfl (__f)); } > > template<typename _Tp> > int > __capture_isnan(_Tp __f) { return (sizeof (__f) == sizeof (float) ? __isnanf (__f) : sizeof (__f) == sizeof (double) ? __isnan (__f) : __isnanl (__f)); } > > template<typename _Tp> > int > __capture_isnormal(_Tp __f) { return ((sizeof (__f) == sizeof (float) ? __fpclassifyf (__f) : sizeof (__f) == sizeof (double) ? __fpclassify (__f) : __fpclassifyl (__f)) == FP_NORMAL); } > > template<typename _Tp> > int > __capture_signbit(_Tp __f) { return (sizeof (__f) == sizeof (float) ? __signbitf (__f) : sizeof (__f) == sizeof (double) ? __signbit (__f) : __signbitl (__f)); } > > template<typename _Tp> > int > __capture_isgreater(_Tp __f1, _Tp __f2) > { return __builtin_isgreater(__f1, __f2); } > > template<typename _Tp> > int > __capture_isgreaterequal(_Tp __f1, _Tp __f2) > { return __builtin_isgreaterequal(__f1, __f2); } > > template<typename _Tp> > int > __capture_isless(_Tp __f1, _Tp __f2) { return __builtin_isless(__f1, __f2); } > > template<typename _Tp> > int > __capture_islessequal(_Tp __f1, _Tp __f2) > { return __builtin_islessequal(__f1, __f2); } > > template<typename _Tp> > int > __capture_islessgreater(_Tp __f1, _Tp __f2) > { return __builtin_islessgreater(__f1, __f2); } > > template<typename _Tp> > int > __capture_isunordered(_Tp __f1, _Tp __f2) > { return __builtin_isunordered(__f1, __f2); } >} ># 668 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/cmath" 3 >namespace __gnu_cxx >{ > template<typename _Tp> > int > fpclassify(_Tp __f) { return __capture_fpclassify(__f); } > > template<typename _Tp> > int > isfinite(_Tp __f) { return __capture_isfinite(__f); } > > template<typename _Tp> > int > isinf(_Tp __f) { return __capture_isinf(__f); } > > template<typename _Tp> > int > isnan(_Tp __f) { return __capture_isnan(__f); } > > template<typename _Tp> > int > isnormal(_Tp __f) { return __capture_isnormal(__f); } > > template<typename _Tp> > int > signbit(_Tp __f) { return __capture_signbit(__f); } > > template<typename _Tp> > int > isgreater(_Tp __f1, _Tp __f2) { return __capture_isgreater(__f1, __f2); } > > template<typename _Tp> > int > isgreaterequal(_Tp __f1, _Tp __f2) > { return __capture_isgreaterequal(__f1, __f2); } > > template<typename _Tp> > int > isless(_Tp __f1, _Tp __f2) { return __capture_isless(__f1, __f2); } > > template<typename _Tp> > int > islessequal(_Tp __f1, _Tp __f2) > { return __capture_islessequal(__f1, __f2); } > > template<typename _Tp> > int > islessgreater(_Tp __f1, _Tp __f2) > { return __capture_islessgreater(__f1, __f2); } > > template<typename _Tp> > int > isunordered(_Tp __f1, _Tp __f2) > { return __capture_isunordered(__f1, __f2); } >} > >namespace std >{ > using __gnu_cxx::fpclassify; > using __gnu_cxx::isfinite; > using __gnu_cxx::isinf; > using __gnu_cxx::isnan; > using __gnu_cxx::isnormal; > using __gnu_cxx::signbit; > using __gnu_cxx::isgreater; > using __gnu_cxx::isgreaterequal; > using __gnu_cxx::isless; > using __gnu_cxx::islessequal; > using __gnu_cxx::islessgreater; > using __gnu_cxx::isunordered; >} > > > > > ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/cmath.tcc" 1 3 ># 35 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/cmath.tcc" 3 >namespace std >{ > template<typename _Tp> > _Tp > __cmath_power(_Tp __x, unsigned int __n) > { > _Tp __y = __n % 2 ? __x : 1; > > while (__n >>= 1) > { > __x = __x * __x; > if (__n % 2) > __y = __y * __x; > } > > return __y; > } >} ># 744 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/cmath" 2 3 ># 15 "../../OgreMain/include/OgreStdHeaders.h" 2 > > ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/vector" 1 3 ># 64 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/vector" 3 > ># 65 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/vector" 3 > ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/functexcept.h" 1 3 ># 34 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/functexcept.h" 3 ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/exception_defines.h" 1 3 ># 35 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/functexcept.h" 2 3 > >namespace std >{ > > void > __throw_bad_exception(void); > > > void > __throw_bad_alloc(void); > > > void > __throw_bad_cast(void); > > void > __throw_bad_typeid(void); > > > void > __throw_logic_error(const char* __s); > > void > __throw_domain_error(const char* __s); > > void > __throw_invalid_argument(const char* __s); > > void > __throw_length_error(const char* __s); > > void > __throw_out_of_range(const char* __s); > > void > __throw_runtime_error(const char* __s); > > void > __throw_range_error(const char* __s); > > void > __throw_overflow_error(const char* __s); > > void > __throw_underflow_error(const char* __s); > > > void > __throw_ios_failure(const char* __s); >} ># 67 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/vector" 2 3 ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_algobase.h" 1 3 ># 66 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_algobase.h" 3 ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/climits" 1 3 ># 47 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/climits" 3 > ># 48 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/climits" 3 > ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/limits.h" 1 3 4 ># 11 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/limits.h" 3 4 ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/syslimits.h" 1 3 4 > > > > > > ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/limits.h" 1 3 4 ># 122 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/limits.h" 3 4 ># 1 "/usr/include/limits.h" 1 3 4 ># 144 "/usr/include/limits.h" 3 4 ># 1 "/usr/include/bits/posix1_lim.h" 1 3 4 ># 153 "/usr/include/bits/posix1_lim.h" 3 4 ># 1 "/usr/include/bits/local_lim.h" 1 3 4 ># 36 "/usr/include/bits/local_lim.h" 3 4 ># 1 "/usr/include/linux/limits.h" 1 3 4 ># 37 "/usr/include/bits/local_lim.h" 2 3 4 ># 154 "/usr/include/bits/posix1_lim.h" 2 3 4 ># 145 "/usr/include/limits.h" 2 3 4 > > > ># 1 "/usr/include/bits/posix2_lim.h" 1 3 4 ># 149 "/usr/include/limits.h" 2 3 4 > > > ># 1 "/usr/include/bits/xopen_lim.h" 1 3 4 ># 34 "/usr/include/bits/xopen_lim.h" 3 4 ># 1 "/usr/include/bits/stdio_lim.h" 1 3 4 ># 35 "/usr/include/bits/xopen_lim.h" 2 3 4 ># 153 "/usr/include/limits.h" 2 3 4 ># 123 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/limits.h" 2 3 4 ># 8 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/syslimits.h" 2 3 4 ># 12 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/limits.h" 2 3 4 ># 50 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/climits" 2 3 ># 67 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_algobase.h" 2 3 > > ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/new" 1 3 ># 42 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/new" 3 ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/exception" 1 3 ># 40 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/exception" 3 >extern "C++" { > >namespace std >{ ># 52 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/exception" 3 > class exception > { > public: > exception() throw() { } > virtual ~exception() throw(); > > > virtual const char* what() const throw(); > }; > > > > class bad_exception : public exception > { > public: > bad_exception() throw() { } > > > virtual ~bad_exception() throw(); > }; > > > typedef void (*terminate_handler) (); > > typedef void (*unexpected_handler) (); > > > terminate_handler set_terminate(terminate_handler) throw(); > > > void terminate() __attribute__ ((__noreturn__)); > > > unexpected_handler set_unexpected(unexpected_handler) throw(); > > > void unexpected() __attribute__ ((__noreturn__)); ># 100 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/exception" 3 > bool uncaught_exception() throw(); >} > >namespace __gnu_cxx >{ ># 113 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/exception" 3 > void __verbose_terminate_handler (); >} > >} ># 43 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/new" 2 3 > >extern "C++" { > >namespace std >{ > > > > > > class bad_alloc : public exception > { > public: > bad_alloc() throw() { } > > > virtual ~bad_alloc() throw(); > }; > > struct nothrow_t { }; > extern const nothrow_t nothrow; > > > typedef void (*new_handler)(); > > new_handler set_new_handler(new_handler) throw(); >} ># 82 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/new" 3 >void* operator new(std::size_t) throw (std::bad_alloc); >void* operator new[](std::size_t) throw (std::bad_alloc); >void operator delete(void*) throw(); >void operator delete[](void*) throw(); >void* operator new(std::size_t, const std::nothrow_t&) throw(); >void* operator new[](std::size_t, const std::nothrow_t&) throw(); >void operator delete(void*, const std::nothrow_t&) throw(); >void operator delete[](void*, const std::nothrow_t&) throw(); > > >inline void* operator new(std::size_t, void* __p) throw() { return __p; } >inline void* operator new[](std::size_t, void* __p) throw() { return __p; } > > >inline void operator delete (void*, void*) throw() { }; >inline void operator delete[](void*, void*) throw() { }; > >} ># 70 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_algobase.h" 2 3 ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/iosfwd" 1 3 ># 43 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/iosfwd" 3 > ># 44 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/iosfwd" 3 > > ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/i686-pc-linux-gnu/bits/c++locale.h" 1 3 ># 39 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/i686-pc-linux-gnu/bits/c++locale.h" 3 > ># 40 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/i686-pc-linux-gnu/bits/c++locale.h" 3 > ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/clocale" 1 3 ># 47 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/clocale" 3 > ># 48 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/clocale" 3 > ># 1 "/usr/include/locale.h" 1 3 4 ># 29 "/usr/include/locale.h" 3 4 ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/stddef.h" 1 3 4 ># 30 "/usr/include/locale.h" 2 3 4 ># 1 "/usr/include/bits/locale.h" 1 3 4 ># 27 "/usr/include/bits/locale.h" 3 4 >enum >{ > __LC_CTYPE = 0, > __LC_NUMERIC = 1, > __LC_TIME = 2, > __LC_COLLATE = 3, > __LC_MONETARY = 4, > __LC_MESSAGES = 5, > __LC_ALL = 6, > __LC_PAPER = 7, > __LC_NAME = 8, > __LC_ADDRESS = 9, > __LC_TELEPHONE = 10, > __LC_MEASUREMENT = 11, > __LC_IDENTIFICATION = 12 >}; ># 31 "/usr/include/locale.h" 2 3 4 > >extern "C" { ># 52 "/usr/include/locale.h" 3 4 >struct lconv >{ > > > char *decimal_point; > char *thousands_sep; > > > > > > char *grouping; > > > > > > char *int_curr_symbol; > char *currency_symbol; > char *mon_decimal_point; > char *mon_thousands_sep; > char *mon_grouping; > char *positive_sign; > char *negative_sign; > char int_frac_digits; > char frac_digits; > > char p_cs_precedes; > > char p_sep_by_space; > > char n_cs_precedes; > > char n_sep_by_space; > > > > > > > char p_sign_posn; > char n_sign_posn; > > > char int_p_cs_precedes; > > char int_p_sep_by_space; > > char int_n_cs_precedes; > > char int_n_sep_by_space; > > > > > > > char int_p_sign_posn; > char int_n_sign_posn; ># 119 "/usr/include/locale.h" 3 4 >}; > > > > > >extern char *setlocale (int __category, __const char *__locale) throw (); > > >extern struct lconv *localeconv (void) throw (); > > ># 148 "/usr/include/locale.h" 3 4 >typedef __locale_t locale_t; > > > > > >extern __locale_t newlocale (int __category_mask, __const char *__locale, > __locale_t __base) throw (); ># 189 "/usr/include/locale.h" 3 4 >extern __locale_t duplocale (__locale_t __dataset) throw (); > > > >extern void freelocale (__locale_t __dataset) throw (); > > > > > > >extern __locale_t uselocale (__locale_t __dataset) throw (); > > > > > > > >} ># 50 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/clocale" 2 3 > > > > > >namespace std >{ > using ::lconv; > using ::setlocale; > using ::localeconv; >} ># 42 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/i686-pc-linux-gnu/bits/c++locale.h" 2 3 ># 1 "/usr/include/langinfo.h" 1 3 4 ># 24 "/usr/include/langinfo.h" 3 4 ># 1 "/usr/include/nl_types.h" 1 3 4 ># 31 "/usr/include/nl_types.h" 3 4 >extern "C" { > > >typedef void *nl_catd; > > >typedef int nl_item; > > > > > >extern nl_catd catopen (__const char *__cat_name, int __flag) __attribute__ ((__nonnull__ (1))); > > > >extern char *catgets (nl_catd __catalog, int __set, int __number, > __const char *__string) throw () __attribute__ ((__nonnull__ (1))); > > >extern int catclose (nl_catd __catalog) throw () __attribute__ ((__nonnull__ (1))); > >} ># 25 "/usr/include/langinfo.h" 2 3 4 > ># 1 "/usr/include/bits/locale.h" 1 3 4 ># 27 "/usr/include/langinfo.h" 2 3 4 > > >extern "C" { ># 43 "/usr/include/langinfo.h" 3 4 >enum >{ > > > > ABDAY_1 = (((__LC_TIME) << 16) | (0)), > > ABDAY_2, > > ABDAY_3, > > ABDAY_4, > > ABDAY_5, > > ABDAY_6, > > ABDAY_7, > > > > DAY_1, > > DAY_2, > > DAY_3, > > DAY_4, > > DAY_5, > > DAY_6, > > DAY_7, > > > > ABMON_1, > > ABMON_2, > > ABMON_3, > > ABMON_4, > > ABMON_5, > > ABMON_6, > > ABMON_7, > > ABMON_8, > > ABMON_9, > > ABMON_10, > > ABMON_11, > > ABMON_12, > > > > MON_1, > > MON_2, > > MON_3, > > MON_4, > > MON_5, > > MON_6, > > MON_7, > > MON_8, > > MON_9, > > MON_10, > > MON_11, > > MON_12, > > > AM_STR, > > PM_STR, > > > D_T_FMT, > > D_FMT, > > T_FMT, > > T_FMT_AMPM, > > > ERA, > > __ERA_YEAR, > > > > ERA_D_FMT, > > ALT_DIGITS, > > ERA_D_T_FMT, > > ERA_T_FMT, > > > _NL_TIME_ERA_NUM_ENTRIES, > _NL_TIME_ERA_ENTRIES, > > _NL_WABDAY_1, > _NL_WABDAY_2, > _NL_WABDAY_3, > _NL_WABDAY_4, > _NL_WABDAY_5, > _NL_WABDAY_6, > _NL_WABDAY_7, > > > _NL_WDAY_1, > _NL_WDAY_2, > _NL_WDAY_3, > _NL_WDAY_4, > _NL_WDAY_5, > _NL_WDAY_6, > _NL_WDAY_7, > > > _NL_WABMON_1, > _NL_WABMON_2, > _NL_WABMON_3, > _NL_WABMON_4, > _NL_WABMON_5, > _NL_WABMON_6, > _NL_WABMON_7, > _NL_WABMON_8, > _NL_WABMON_9, > _NL_WABMON_10, > _NL_WABMON_11, > _NL_WABMON_12, > > > _NL_WMON_1, > _NL_WMON_2, > _NL_WMON_3, > _NL_WMON_4, > _NL_WMON_5, > _NL_WMON_6, > _NL_WMON_7, > _NL_WMON_8, > _NL_WMON_9, > _NL_WMON_10, > _NL_WMON_11, > _NL_WMON_12, > > _NL_WAM_STR, > _NL_WPM_STR, > > _NL_WD_T_FMT, > _NL_WD_FMT, > _NL_WT_FMT, > _NL_WT_FMT_AMPM, > > _NL_WERA_YEAR, > _NL_WERA_D_FMT, > _NL_WALT_DIGITS, > _NL_WERA_D_T_FMT, > _NL_WERA_T_FMT, > > _NL_TIME_WEEK_NDAYS, > _NL_TIME_WEEK_1STDAY, > _NL_TIME_WEEK_1STWEEK, > _NL_TIME_FIRST_WEEKDAY, > _NL_TIME_FIRST_WORKDAY, > _NL_TIME_CAL_DIRECTION, > _NL_TIME_TIMEZONE, > > _DATE_FMT, > > _NL_W_DATE_FMT, > > _NL_TIME_CODESET, > > _NL_NUM_LC_TIME, > > > > > _NL_COLLATE_NRULES = (((__LC_COLLATE) << 16) | (0)), > _NL_COLLATE_RULESETS, > _NL_COLLATE_TABLEMB, > _NL_COLLATE_WEIGHTMB, > _NL_COLLATE_EXTRAMB, > _NL_COLLATE_INDIRECTMB, > _NL_COLLATE_GAP1, > _NL_COLLATE_GAP2, > _NL_COLLATE_GAP3, > _NL_COLLATE_TABLEWC, > _NL_COLLATE_WEIGHTWC, > _NL_COLLATE_EXTRAWC, > _NL_COLLATE_INDIRECTWC, > _NL_COLLATE_SYMB_HASH_SIZEMB, > _NL_COLLATE_SYMB_TABLEMB, > _NL_COLLATE_SYMB_EXTRAMB, > _NL_COLLATE_COLLSEQMB, > _NL_COLLATE_COLLSEQWC, > _NL_COLLATE_CODESET, > _NL_NUM_LC_COLLATE, > > > > > _NL_CTYPE_CLASS = (((__LC_CTYPE) << 16) | (0)), > _NL_CTYPE_TOUPPER, > _NL_CTYPE_GAP1, > _NL_CTYPE_TOLOWER, > _NL_CTYPE_GAP2, > _NL_CTYPE_CLASS32, > _NL_CTYPE_GAP3, > _NL_CTYPE_GAP4, > _NL_CTYPE_GAP5, > _NL_CTYPE_GAP6, > _NL_CTYPE_CLASS_NAMES, > _NL_CTYPE_MAP_NAMES, > _NL_CTYPE_WIDTH, > _NL_CTYPE_MB_CUR_MAX, > _NL_CTYPE_CODESET_NAME, > CODESET = _NL_CTYPE_CODESET_NAME, > > _NL_CTYPE_TOUPPER32, > _NL_CTYPE_TOLOWER32, > _NL_CTYPE_CLASS_OFFSET, > _NL_CTYPE_MAP_OFFSET, > _NL_CTYPE_INDIGITS_MB_LEN, > _NL_CTYPE_INDIGITS0_MB, > _NL_CTYPE_INDIGITS1_MB, > _NL_CTYPE_INDIGITS2_MB, > _NL_CTYPE_INDIGITS3_MB, > _NL_CTYPE_INDIGITS4_MB, > _NL_CTYPE_INDIGITS5_MB, > _NL_CTYPE_INDIGITS6_MB, > _NL_CTYPE_INDIGITS7_MB, > _NL_CTYPE_INDIGITS8_MB, > _NL_CTYPE_INDIGITS9_MB, > _NL_CTYPE_INDIGITS_WC_LEN, > _NL_CTYPE_INDIGITS0_WC, > _NL_CTYPE_INDIGITS1_WC, > _NL_CTYPE_INDIGITS2_WC, > _NL_CTYPE_INDIGITS3_WC, > _NL_CTYPE_INDIGITS4_WC, > _NL_CTYPE_INDIGITS5_WC, > _NL_CTYPE_INDIGITS6_WC, > _NL_CTYPE_INDIGITS7_WC, > _NL_CTYPE_INDIGITS8_WC, > _NL_CTYPE_INDIGITS9_WC, > _NL_CTYPE_OUTDIGIT0_MB, > _NL_CTYPE_OUTDIGIT1_MB, > _NL_CTYPE_OUTDIGIT2_MB, > _NL_CTYPE_OUTDIGIT3_MB, > _NL_CTYPE_OUTDIGIT4_MB, > _NL_CTYPE_OUTDIGIT5_MB, > _NL_CTYPE_OUTDIGIT6_MB, > _NL_CTYPE_OUTDIGIT7_MB, > _NL_CTYPE_OUTDIGIT8_MB, > _NL_CTYPE_OUTDIGIT9_MB, > _NL_CTYPE_OUTDIGIT0_WC, > _NL_CTYPE_OUTDIGIT1_WC, > _NL_CTYPE_OUTDIGIT2_WC, > _NL_CTYPE_OUTDIGIT3_WC, > _NL_CTYPE_OUTDIGIT4_WC, > _NL_CTYPE_OUTDIGIT5_WC, > _NL_CTYPE_OUTDIGIT6_WC, > _NL_CTYPE_OUTDIGIT7_WC, > _NL_CTYPE_OUTDIGIT8_WC, > _NL_CTYPE_OUTDIGIT9_WC, > _NL_CTYPE_TRANSLIT_TAB_SIZE, > _NL_CTYPE_TRANSLIT_FROM_IDX, > _NL_CTYPE_TRANSLIT_FROM_TBL, > _NL_CTYPE_TRANSLIT_TO_IDX, > _NL_CTYPE_TRANSLIT_TO_TBL, > _NL_CTYPE_TRANSLIT_DEFAULT_MISSING_LEN, > _NL_CTYPE_TRANSLIT_DEFAULT_MISSING, > _NL_CTYPE_TRANSLIT_IGNORE_LEN, > _NL_CTYPE_TRANSLIT_IGNORE, > _NL_CTYPE_MAP_TO_NONASCII, > _NL_CTYPE_EXTRA_MAP_1, > _NL_CTYPE_EXTRA_MAP_2, > _NL_CTYPE_EXTRA_MAP_3, > _NL_CTYPE_EXTRA_MAP_4, > _NL_CTYPE_EXTRA_MAP_5, > _NL_CTYPE_EXTRA_MAP_6, > _NL_CTYPE_EXTRA_MAP_7, > _NL_CTYPE_EXTRA_MAP_8, > _NL_CTYPE_EXTRA_MAP_9, > _NL_CTYPE_EXTRA_MAP_10, > _NL_CTYPE_EXTRA_MAP_11, > _NL_CTYPE_EXTRA_MAP_12, > _NL_CTYPE_EXTRA_MAP_13, > _NL_CTYPE_EXTRA_MAP_14, > _NL_NUM_LC_CTYPE, > > > > > __INT_CURR_SYMBOL = (((__LC_MONETARY) << 16) | (0)), > > > > __CURRENCY_SYMBOL, > > > > __MON_DECIMAL_POINT, > > > > __MON_THOUSANDS_SEP, > > > > __MON_GROUPING, > > > > __POSITIVE_SIGN, > > > > __NEGATIVE_SIGN, > > > > __INT_FRAC_DIGITS, > > > > __FRAC_DIGITS, > > > > __P_CS_PRECEDES, > > > > __P_SEP_BY_SPACE, > > > > __N_CS_PRECEDES, > > > > __N_SEP_BY_SPACE, > > > > __P_SIGN_POSN, > > > > __N_SIGN_POSN, > > > > _NL_MONETARY_CRNCYSTR, > > __INT_P_CS_PRECEDES, > > > > __INT_P_SEP_BY_SPACE, > > > > __INT_N_CS_PRECEDES, > > > > __INT_N_SEP_BY_SPACE, > > > > __INT_P_SIGN_POSN, > > > > __INT_N_SIGN_POSN, > > > > _NL_MONETARY_DUO_INT_CURR_SYMBOL, > _NL_MONETARY_DUO_CURRENCY_SYMBOL, > _NL_MONETARY_DUO_INT_FRAC_DIGITS, > _NL_MONETARY_DUO_FRAC_DIGITS, > _NL_MONETARY_DUO_P_CS_PRECEDES, > _NL_MONETARY_DUO_P_SEP_BY_SPACE, > _NL_MONETARY_DUO_N_CS_PRECEDES, > _NL_MONETARY_DUO_N_SEP_BY_SPACE, > _NL_MONETARY_DUO_INT_P_CS_PRECEDES, > _NL_MONETARY_DUO_INT_P_SEP_BY_SPACE, > _NL_MONETARY_DUO_INT_N_CS_PRECEDES, > _NL_MONETARY_DUO_INT_N_SEP_BY_SPACE, > _NL_MONETARY_DUO_P_SIGN_POSN, > _NL_MONETARY_DUO_N_SIGN_POSN, > _NL_MONETARY_DUO_INT_P_SIGN_POSN, > _NL_MONETARY_DUO_INT_N_SIGN_POSN, > _NL_MONETARY_UNO_VALID_FROM, > _NL_MONETARY_UNO_VALID_TO, > _NL_MONETARY_DUO_VALID_FROM, > _NL_MONETARY_DUO_VALID_TO, > _NL_MONETARY_CONVERSION_RATE, > _NL_MONETARY_DECIMAL_POINT_WC, > _NL_MONETARY_THOUSANDS_SEP_WC, > _NL_MONETARY_CODESET, > _NL_NUM_LC_MONETARY, > > > > __DECIMAL_POINT = (((__LC_NUMERIC) << 16) | (0)), > > > > RADIXCHAR = __DECIMAL_POINT, > > __THOUSANDS_SEP, > > > > THOUSEP = __THOUSANDS_SEP, > > __GROUPING, > > > > _NL_NUMERIC_DECIMAL_POINT_WC, > _NL_NUMERIC_THOUSANDS_SEP_WC, > _NL_NUMERIC_CODESET, > _NL_NUM_LC_NUMERIC, > > __YESEXPR = (((__LC_MESSAGES) << 16) | (0)), > > __NOEXPR, > > __YESSTR, > > > > __NOSTR, > > > > _NL_MESSAGES_CODESET, > _NL_NUM_LC_MESSAGES, > > _NL_PAPER_HEIGHT = (((__LC_PAPER) << 16) | (0)), > _NL_PAPER_WIDTH, > _NL_PAPER_CODESET, > _NL_NUM_LC_PAPER, > > _NL_NAME_NAME_FMT = (((__LC_NAME) << 16) | (0)), > _NL_NAME_NAME_GEN, > _NL_NAME_NAME_MR, > _NL_NAME_NAME_MRS, > _NL_NAME_NAME_MISS, > _NL_NAME_NAME_MS, > _NL_NAME_CODESET, > _NL_NUM_LC_NAME, > > _NL_ADDRESS_POSTAL_FMT = (((__LC_ADDRESS) << 16) | (0)), > _NL_ADDRESS_COUNTRY_NAME, > _NL_ADDRESS_COUNTRY_POST, > _NL_ADDRESS_COUNTRY_AB2, > _NL_ADDRESS_COUNTRY_AB3, > _NL_ADDRESS_COUNTRY_CAR, > _NL_ADDRESS_COUNTRY_NUM, > _NL_ADDRESS_COUNTRY_ISBN, > _NL_ADDRESS_LANG_NAME, > _NL_ADDRESS_LANG_AB, > _NL_ADDRESS_LANG_TERM, > _NL_ADDRESS_LANG_LIB, > _NL_ADDRESS_CODESET, > _NL_NUM_LC_ADDRESS, > > _NL_TELEPHONE_TEL_INT_FMT = (((__LC_TELEPHONE) << 16) | (0)), > _NL_TELEPHONE_TEL_DOM_FMT, > _NL_TELEPHONE_INT_SELECT, > _NL_TELEPHONE_INT_PREFIX, > _NL_TELEPHONE_CODESET, > _NL_NUM_LC_TELEPHONE, > > _NL_MEASUREMENT_MEASUREMENT = (((__LC_MEASUREMENT) << 16) | (0)), > _NL_MEASUREMENT_CODESET, > _NL_NUM_LC_MEASUREMENT, > > _NL_IDENTIFICATION_TITLE = (((__LC_IDENTIFICATION) << 16) | (0)), > _NL_IDENTIFICATION_SOURCE, > _NL_IDENTIFICATION_ADDRESS, > _NL_IDENTIFICATION_CONTACT, > _NL_IDENTIFICATION_EMAIL, > _NL_IDENTIFICATION_TEL, > _NL_IDENTIFICATION_FAX, > _NL_IDENTIFICATION_LANGUAGE, > _NL_IDENTIFICATION_TERRITORY, > _NL_IDENTIFICATION_AUDIENCE, > _NL_IDENTIFICATION_APPLICATION, > _NL_IDENTIFICATION_ABBREVIATION, > _NL_IDENTIFICATION_REVISION, > _NL_IDENTIFICATION_DATE, > _NL_IDENTIFICATION_CATEGORY, > _NL_IDENTIFICATION_CODESET, > _NL_NUM_LC_IDENTIFICATION, > > > _NL_NUM >}; ># 576 "/usr/include/langinfo.h" 3 4 >extern char *nl_langinfo (nl_item __item) throw (); ># 587 "/usr/include/langinfo.h" 3 4 >extern char *nl_langinfo_l (nl_item __item, __locale_t l); > > >} ># 43 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/i686-pc-linux-gnu/bits/c++locale.h" 2 3 ># 1 "/usr/include/iconv.h" 1 3 4 ># 24 "/usr/include/iconv.h" 3 4 ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/stddef.h" 1 3 4 ># 25 "/usr/include/iconv.h" 2 3 4 > > >extern "C" { > > >typedef void *iconv_t; > > > > > > > >extern iconv_t iconv_open (__const char *__tocode, __const char *__fromcode); > > > > >extern size_t iconv (iconv_t __cd, char **__restrict __inbuf, > size_t *__restrict __inbytesleft, > char **__restrict __outbuf, > size_t *__restrict __outbytesleft); > > > > > >extern int iconv_close (iconv_t __cd); > >} ># 44 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/i686-pc-linux-gnu/bits/c++locale.h" 2 3 ># 1 "/usr/include/libintl.h" 1 3 4 ># 35 "/usr/include/libintl.h" 3 4 >extern "C" { > > > > >extern char *gettext (__const char *__msgid) throw (); > > > >extern char *dgettext (__const char *__domainname, __const char *__msgid) > throw (); >extern char *__dgettext (__const char *__domainname, __const char *__msgid) > throw () __attribute__ ((__format_arg__ (2))); > > > >extern char *dcgettext (__const char *__domainname, > __const char *__msgid, int __category) throw (); >extern char *__dcgettext (__const char *__domainname, > __const char *__msgid, int __category) > throw () __attribute__ ((__format_arg__ (2))); > > > > >extern char *ngettext (__const char *__msgid1, __const char *__msgid2, > unsigned long int __n) > throw () __attribute__ ((__format_arg__ (1))) __attribute__ ((__format_arg__ (2))); > > > >extern char *dngettext (__const char *__domainname, __const char *__msgid1, > __const char *__msgid2, unsigned long int __n) > throw () __attribute__ ((__format_arg__ (2))) __attribute__ ((__format_arg__ (3))); > > > >extern char *dcngettext (__const char *__domainname, __const char *__msgid1, > __const char *__msgid2, unsigned long int __n, > int __category) > throw () __attribute__ ((__format_arg__ (2))) __attribute__ ((__format_arg__ (3))); > > > > > >extern char *textdomain (__const char *__domainname) throw (); > > > >extern char *bindtextdomain (__const char *__domainname, > __const char *__dirname) throw (); > > > >extern char *bind_textdomain_codeset (__const char *__domainname, > __const char *__codeset) throw (); ># 120 "/usr/include/libintl.h" 3 4 >} ># 45 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/i686-pc-linux-gnu/bits/c++locale.h" 2 3 > > > > > > >namespace __gnu_cxx >{ > extern "C" __typeof(uselocale) __uselocale; >} > > >namespace std >{ > typedef __locale_t __c_locale; > > > > > > template<typename _Tv> > int > __convert_from_v(char* __out, const int __size, const char* __fmt, > > _Tv __v, const __c_locale& __cloc, int __prec = -1) > { > __c_locale __old = __gnu_cxx::__uselocale(__cloc); ># 82 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/i686-pc-linux-gnu/bits/c++locale.h" 3 > int __ret; > > if (__prec >= 0) > __ret = snprintf(__out, __size, __fmt, __prec, __v); > else > __ret = snprintf(__out, __size, __fmt, __v); ># 96 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/i686-pc-linux-gnu/bits/c++locale.h" 3 > __gnu_cxx::__uselocale(__old); > > > > > return __ret; > } >} ># 47 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/iosfwd" 2 3 ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/cctype" 1 3 ># 46 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/cctype" 3 > ># 47 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/cctype" 3 > > ># 1 "/usr/include/ctype.h" 1 3 4 ># 30 "/usr/include/ctype.h" 3 4 >extern "C" { ># 48 "/usr/include/ctype.h" 3 4 >enum >{ > _ISupper = ((0) < 8 ? ((1 << (0)) << 8) : ((1 << (0)) >> 8)), > _ISlower = ((1) < 8 ? ((1 << (1)) << 8) : ((1 << (1)) >> 8)), > _ISalpha = ((2) < 8 ? ((1 << (2)) << 8) : ((1 << (2)) >> 8)), > _ISdigit = ((3) < 8 ? ((1 << (3)) << 8) : ((1 << (3)) >> 8)), > _ISxdigit = ((4) < 8 ? ((1 << (4)) << 8) : ((1 << (4)) >> 8)), > _ISspace = ((5) < 8 ? ((1 << (5)) << 8) : ((1 << (5)) >> 8)), > _ISprint = ((6) < 8 ? ((1 << (6)) << 8) : ((1 << (6)) >> 8)), > _ISgraph = ((7) < 8 ? ((1 << (7)) << 8) : ((1 << (7)) >> 8)), > _ISblank = ((8) < 8 ? ((1 << (8)) << 8) : ((1 << (8)) >> 8)), > _IScntrl = ((9) < 8 ? ((1 << (9)) << 8) : ((1 << (9)) >> 8)), > _ISpunct = ((10) < 8 ? ((1 << (10)) << 8) : ((1 << (10)) >> 8)), > _ISalnum = ((11) < 8 ? ((1 << (11)) << 8) : ((1 << (11)) >> 8)) >}; ># 81 "/usr/include/ctype.h" 3 4 >extern __const unsigned short int **__ctype_b_loc (void) > __attribute__ ((__const)); >extern __const __int32_t **__ctype_tolower_loc (void) > __attribute__ ((__const)); >extern __const __int32_t **__ctype_toupper_loc (void) > __attribute__ ((__const)); ># 96 "/usr/include/ctype.h" 3 4 > > > > > > >extern int isalnum (int) throw (); >extern int isalpha (int) throw (); >extern int iscntrl (int) throw (); >extern int isdigit (int) throw (); >extern int islower (int) throw (); >extern int isgraph (int) throw (); >extern int isprint (int) throw (); >extern int ispunct (int) throw (); >extern int isspace (int) throw (); >extern int isupper (int) throw (); >extern int isxdigit (int) throw (); > > > >extern int tolower (int __c) throw (); > > >extern int toupper (int __c) throw (); > > > > > > > > >extern int isblank (int) throw (); > > > > > > >extern int isctype (int __c, int __mask) throw (); > > > > > > >extern int isascii (int __c) throw (); > > > >extern int toascii (int __c) throw (); > > > >extern int _toupper (int) throw (); >extern int _tolower (int) throw (); ># 247 "/usr/include/ctype.h" 3 4 >extern int isalnum_l (int, __locale_t) throw (); >extern int isalpha_l (int, __locale_t) throw (); >extern int iscntrl_l (int, __locale_t) throw (); >extern int isdigit_l (int, __locale_t) throw (); >extern int islower_l (int, __locale_t) throw (); >extern int isgraph_l (int, __locale_t) throw (); >extern int isprint_l (int, __locale_t) throw (); >extern int ispunct_l (int, __locale_t) throw (); >extern int isspace_l (int, __locale_t) throw (); >extern int isupper_l (int, __locale_t) throw (); >extern int isxdigit_l (int, __locale_t) throw (); > >extern int isblank_l (int, __locale_t) throw (); > > > >extern int __tolower_l (int __c, __locale_t __l) throw (); >extern int tolower_l (int __c, __locale_t __l) throw (); > > >extern int __toupper_l (int __c, __locale_t __l) throw (); >extern int toupper_l (int __c, __locale_t __l) throw (); ># 323 "/usr/include/ctype.h" 3 4 >} ># 50 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/cctype" 2 3 ># 66 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/cctype" 3 >namespace std >{ > using ::isalnum; > using ::isalpha; > using ::iscntrl; > using ::isdigit; > using ::isgraph; > using ::islower; > using ::isprint; > using ::ispunct; > using ::isspace; > using ::isupper; > using ::isxdigit; > using ::tolower; > using ::toupper; >} ># 48 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/iosfwd" 2 3 ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stringfwd.h" 1 3 ># 42 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stringfwd.h" 3 > ># 43 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stringfwd.h" 3 > > > >namespace std >{ > template<typename _Alloc> > class allocator; > > template<class _CharT> > struct char_traits; > > template<typename _CharT, typename _Traits = char_traits<_CharT>, > typename _Alloc = allocator<_CharT> > > class basic_string; > > template<> struct char_traits<char>; > > typedef basic_string<char> string; > > > template<> struct char_traits<wchar_t>; > > typedef basic_string<wchar_t> wstring; > >} ># 49 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/iosfwd" 2 3 ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/fpos.h" 1 3 ># 42 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/fpos.h" 3 > ># 43 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/fpos.h" 3 > ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/i686-pc-linux-gnu/bits/c++io.h" 1 3 ># 37 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/i686-pc-linux-gnu/bits/c++io.h" 3 ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/i686-pc-linux-gnu/bits/gthr.h" 1 3 ># 98 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/i686-pc-linux-gnu/bits/gthr.h" 3 ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/i686-pc-linux-gnu/bits/gthr-default.h" 1 3 ># 37 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/i686-pc-linux-gnu/bits/gthr-default.h" 3 ># 1 "/usr/include/pthread.h" 1 3 4 ># 20 "/usr/include/pthread.h" 3 4 ># 1 "/usr/include/sched.h" 1 3 4 ># 32 "/usr/include/sched.h" 3 4 ># 1 "/usr/include/bits/sched.h" 1 3 4 ># 62 "/usr/include/bits/sched.h" 3 4 >struct sched_param > { > int __sched_priority; > }; > >extern "C" { > > > >extern int clone (int (*__fn) (void *__arg), void *__child_stack, > int __flags, void *__arg) throw (); > > >} ># 98 "/usr/include/bits/sched.h" 3 4 >typedef unsigned long int __cpu_mask; > > > > > > >typedef struct >{ > __cpu_mask __bits[1024 / (8 * sizeof (__cpu_mask))]; >} cpu_set_t; ># 33 "/usr/include/sched.h" 2 3 4 > > > > >extern "C" { > > >extern int sched_setparam (__pid_t __pid, __const struct sched_param *__param) > throw (); > > >extern int sched_getparam (__pid_t __pid, struct sched_param *__param) throw (); > > >extern int sched_setscheduler (__pid_t __pid, int __policy, > __const struct sched_param *__param) throw (); > > >extern int sched_getscheduler (__pid_t __pid) throw (); > > >extern int sched_yield (void) throw (); > > >extern int sched_get_priority_max (int __algorithm) throw (); > > >extern int sched_get_priority_min (int __algorithm) throw (); > > >extern int sched_rr_get_interval (__pid_t __pid, struct timespec *__t) throw (); ># 76 "/usr/include/sched.h" 3 4 >extern int sched_setaffinity (__pid_t __pid, size_t __cpusetsize, > __const cpu_set_t *__cpuset) throw (); > > >extern int sched_getaffinity (__pid_t __pid, size_t __cpusetsize, > cpu_set_t *__cpuset) throw (); > > >} ># 21 "/usr/include/pthread.h" 2 3 4 > > > ># 1 "/usr/include/signal.h" 1 3 4 ># 31 "/usr/include/signal.h" 3 4 >extern "C" { > ># 1 "/usr/include/bits/sigset.h" 1 3 4 ># 34 "/usr/include/signal.h" 2 3 4 ># 400 "/usr/include/signal.h" 3 4 >} ># 25 "/usr/include/pthread.h" 2 3 4 ># 1 "/usr/include/bits/pthreadtypes.h" 1 3 4 ># 26 "/usr/include/pthread.h" 2 3 4 ># 1 "/usr/include/bits/initspin.h" 1 3 4 ># 27 "/usr/include/pthread.h" 2 3 4 > > >extern "C" { ># 59 "/usr/include/pthread.h" 3 4 >enum >{ > PTHREAD_CREATE_JOINABLE, > > PTHREAD_CREATE_DETACHED > >}; > >enum >{ > PTHREAD_INHERIT_SCHED, > > PTHREAD_EXPLICIT_SCHED > >}; > >enum >{ > PTHREAD_SCOPE_SYSTEM, > > PTHREAD_SCOPE_PROCESS > >}; > >enum >{ > PTHREAD_MUTEX_TIMED_NP, > PTHREAD_MUTEX_RECURSIVE_NP, > PTHREAD_MUTEX_ERRORCHECK_NP, > PTHREAD_MUTEX_ADAPTIVE_NP > > , > PTHREAD_MUTEX_NORMAL = PTHREAD_MUTEX_TIMED_NP, > PTHREAD_MUTEX_RECURSIVE = PTHREAD_MUTEX_RECURSIVE_NP, > PTHREAD_MUTEX_ERRORCHECK = PTHREAD_MUTEX_ERRORCHECK_NP, > PTHREAD_MUTEX_DEFAULT = PTHREAD_MUTEX_NORMAL > > > > , PTHREAD_MUTEX_FAST_NP = PTHREAD_MUTEX_ADAPTIVE_NP > >}; > >enum >{ > PTHREAD_PROCESS_PRIVATE, > > PTHREAD_PROCESS_SHARED > >}; > > >enum >{ > PTHREAD_RWLOCK_PREFER_READER_NP, > PTHREAD_RWLOCK_PREFER_WRITER_NP, > PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP, > PTHREAD_RWLOCK_DEFAULT_NP = PTHREAD_RWLOCK_PREFER_WRITER_NP >}; ># 131 "/usr/include/pthread.h" 3 4 >struct _pthread_cleanup_buffer >{ > void (*__routine) (void *); > void *__arg; > int __canceltype; > struct _pthread_cleanup_buffer *__prev; >}; > > > >enum >{ > PTHREAD_CANCEL_ENABLE, > > PTHREAD_CANCEL_DISABLE > >}; >enum >{ > PTHREAD_CANCEL_DEFERRED, > > PTHREAD_CANCEL_ASYNCHRONOUS > >}; ># 163 "/usr/include/pthread.h" 3 4 >extern int pthread_create (pthread_t *__restrict __threadp, > __const pthread_attr_t *__restrict __attr, > void *(*__start_routine) (void *), > void *__restrict __arg) throw (); > > >extern pthread_t pthread_self (void) throw (); > > >extern int pthread_equal (pthread_t __thread1, pthread_t __thread2) throw (); > > >extern void pthread_exit (void *__retval) __attribute__ ((__noreturn__)); > > > > >extern int pthread_join (pthread_t __th, void **__thread_return); > > > > > >extern int pthread_detach (pthread_t __th) throw (); > > > > > > > >extern int pthread_attr_init (pthread_attr_t *__attr) throw (); > > >extern int pthread_attr_destroy (pthread_attr_t *__attr) throw (); > > >extern int pthread_attr_setdetachstate (pthread_attr_t *__attr, > int __detachstate) throw (); > > >extern int pthread_attr_getdetachstate (__const pthread_attr_t *__attr, > int *__detachstate) throw (); > > >extern int pthread_attr_setschedparam (pthread_attr_t *__restrict __attr, > __const struct sched_param *__restrict > __param) throw (); > > >extern int pthread_attr_getschedparam (__const pthread_attr_t *__restrict > __attr, > struct sched_param *__restrict __param) > throw (); > > >extern int pthread_attr_setschedpolicy (pthread_attr_t *__attr, int __policy) > throw (); > > >extern int pthread_attr_getschedpolicy (__const pthread_attr_t *__restrict > __attr, int *__restrict __policy) > throw (); > > >extern int pthread_attr_setinheritsched (pthread_attr_t *__attr, > int __inherit) throw (); > > >extern int pthread_attr_getinheritsched (__const pthread_attr_t *__restrict > __attr, int *__restrict __inherit) > throw (); > > >extern int pthread_attr_setscope (pthread_attr_t *__attr, int __scope) > throw (); > > >extern int pthread_attr_getscope (__const pthread_attr_t *__restrict __attr, > int *__restrict __scope) throw (); > > > >extern int pthread_attr_setguardsize (pthread_attr_t *__attr, > size_t __guardsize) throw (); > > >extern int pthread_attr_getguardsize (__const pthread_attr_t *__restrict > __attr, size_t *__restrict __guardsize) > throw (); > > > > > > >extern int pthread_attr_setstackaddr (pthread_attr_t *__attr, > void *__stackaddr) throw (); > > >extern int pthread_attr_getstackaddr (__const pthread_attr_t *__restrict > __attr, void **__restrict __stackaddr) > throw (); > > > > > >extern int pthread_attr_setstack (pthread_attr_t *__attr, void *__stackaddr, > size_t __stacksize) throw (); > > >extern int pthread_attr_getstack (__const pthread_attr_t *__restrict __attr, > void **__restrict __stackaddr, > size_t *__restrict __stacksize) throw (); > > > > > >extern int pthread_attr_setstacksize (pthread_attr_t *__attr, > size_t __stacksize) throw (); > > >extern int pthread_attr_getstacksize (__const pthread_attr_t *__restrict > __attr, size_t *__restrict __stacksize) > throw (); > > > > > >extern int pthread_getattr_np (pthread_t __th, pthread_attr_t *__attr) throw (); > > > > > > >extern int pthread_setschedparam (pthread_t __target_thread, int __policy, > __const struct sched_param *__param) > throw (); > > >extern int pthread_getschedparam (pthread_t __target_thread, > int *__restrict __policy, > struct sched_param *__restrict __param) > throw (); > > > >extern int pthread_getconcurrency (void) throw (); > > >extern int pthread_setconcurrency (int __level) throw (); > > > > > > > >extern int pthread_yield (void) throw (); > > > > > > >extern int pthread_mutex_init (pthread_mutex_t *__restrict __mutex, > __const pthread_mutexattr_t *__restrict > __mutex_attr) throw (); > > >extern int pthread_mutex_destroy (pthread_mutex_t *__mutex) throw (); > > >extern int pthread_mutex_trylock (pthread_mutex_t *__mutex) throw (); > > >extern int pthread_mutex_lock (pthread_mutex_t *__mutex) throw (); > > > >extern int pthread_mutex_timedlock (pthread_mutex_t *__restrict __mutex, > __const struct timespec *__restrict > __abstime) throw (); > > > >extern int pthread_mutex_unlock (pthread_mutex_t *__mutex) throw (); > > > > > > >extern int pthread_mutexattr_init (pthread_mutexattr_t *__attr) throw (); > > >extern int pthread_mutexattr_destroy (pthread_mutexattr_t *__attr) throw (); > > >extern int pthread_mutexattr_getpshared (__const pthread_mutexattr_t * > __restrict __attr, > int *__restrict __pshared) throw (); > > >extern int pthread_mutexattr_setpshared (pthread_mutexattr_t *__attr, > int __pshared) throw (); > > > > > >extern int pthread_mutexattr_settype (pthread_mutexattr_t *__attr, int __kind) > throw (); > > >extern int pthread_mutexattr_gettype (__const pthread_mutexattr_t *__restrict > __attr, int *__restrict __kind) throw (); > > > > > > > >extern int pthread_cond_init (pthread_cond_t *__restrict __cond, > __const pthread_condattr_t *__restrict > __cond_attr) throw (); > > >extern int pthread_cond_destroy (pthread_cond_t *__cond) throw (); > > >extern int pthread_cond_signal (pthread_cond_t *__cond) throw (); > > >extern int pthread_cond_broadcast (pthread_cond_t *__cond) throw (); > > > >extern int pthread_cond_wait (pthread_cond_t *__restrict __cond, > pthread_mutex_t *__restrict __mutex); > > > > > >extern int pthread_cond_timedwait (pthread_cond_t *__restrict __cond, > pthread_mutex_t *__restrict __mutex, > __const struct timespec *__restrict > __abstime); > > > > >extern int pthread_condattr_init (pthread_condattr_t *__attr) throw (); > > >extern int pthread_condattr_destroy (pthread_condattr_t *__attr) throw (); > > >extern int pthread_condattr_getpshared (__const pthread_condattr_t * > __restrict __attr, > int *__restrict __pshared) throw (); > > >extern int pthread_condattr_setpshared (pthread_condattr_t *__attr, > int __pshared) throw (); > > > > > > > >extern int pthread_rwlock_init (pthread_rwlock_t *__restrict __rwlock, > __const pthread_rwlockattr_t *__restrict > __attr) throw (); > > >extern int pthread_rwlock_destroy (pthread_rwlock_t *__rwlock) throw (); > > >extern int pthread_rwlock_rdlock (pthread_rwlock_t *__rwlock) throw (); > > >extern int pthread_rwlock_tryrdlock (pthread_rwlock_t *__rwlock) throw (); > > > >extern int pthread_rwlock_timedrdlock (pthread_rwlock_t *__restrict __rwlock, > __const struct timespec *__restrict > __abstime) throw (); > > > >extern int pthread_rwlock_wrlock (pthread_rwlock_t *__rwlock) throw (); > > >extern int pthread_rwlock_trywrlock (pthread_rwlock_t *__rwlock) throw (); > > > >extern int pthread_rwlock_timedwrlock (pthread_rwlock_t *__restrict __rwlock, > __const struct timespec *__restrict > __abstime) throw (); > > > >extern int pthread_rwlock_unlock (pthread_rwlock_t *__rwlock) throw (); > > > > > >extern int pthread_rwlockattr_init (pthread_rwlockattr_t *__attr) throw (); > > >extern int pthread_rwlockattr_destroy (pthread_rwlockattr_t *__attr) throw (); > > >extern int pthread_rwlockattr_getpshared (__const pthread_rwlockattr_t * > __restrict __attr, > int *__restrict __pshared) throw (); > > >extern int pthread_rwlockattr_setpshared (pthread_rwlockattr_t *__attr, > int __pshared) throw (); > > >extern int pthread_rwlockattr_getkind_np (__const pthread_rwlockattr_t *__attr, > int *__pref) throw (); > > >extern int pthread_rwlockattr_setkind_np (pthread_rwlockattr_t *__attr, > int __pref) throw (); ># 510 "/usr/include/pthread.h" 3 4 >extern int pthread_spin_init (pthread_spinlock_t *__lock, int __pshared) > throw (); > > >extern int pthread_spin_destroy (pthread_spinlock_t *__lock) throw (); > > >extern int pthread_spin_lock (pthread_spinlock_t *__lock) throw (); > > >extern int pthread_spin_trylock (pthread_spinlock_t *__lock) throw (); > > >extern int pthread_spin_unlock (pthread_spinlock_t *__lock) throw (); > > > > >extern int pthread_barrier_init (pthread_barrier_t *__restrict __barrier, > __const pthread_barrierattr_t *__restrict > __attr, unsigned int __count) throw (); > >extern int pthread_barrier_destroy (pthread_barrier_t *__barrier) throw (); > >extern int pthread_barrierattr_init (pthread_barrierattr_t *__attr) throw (); > >extern int pthread_barrierattr_destroy (pthread_barrierattr_t *__attr) throw (); > >extern int pthread_barrierattr_getpshared (__const pthread_barrierattr_t * > __restrict __attr, > int *__restrict __pshared) throw (); > >extern int pthread_barrierattr_setpshared (pthread_barrierattr_t *__attr, > int __pshared) throw (); > >extern int pthread_barrier_wait (pthread_barrier_t *__barrier) throw (); ># 557 "/usr/include/pthread.h" 3 4 >extern int pthread_key_create (pthread_key_t *__key, > void (*__destr_function) (void *)) throw (); > > >extern int pthread_key_delete (pthread_key_t __key) throw (); > > >extern int pthread_setspecific (pthread_key_t __key, > __const void *__pointer) throw (); > > >extern void *pthread_getspecific (pthread_key_t __key) throw (); ># 580 "/usr/include/pthread.h" 3 4 >extern int pthread_once (pthread_once_t *__once_control, > void (*__init_routine) (void)); > > > > > > >extern int pthread_setcancelstate (int __state, int *__oldstate); > > > >extern int pthread_setcanceltype (int __type, int *__oldtype); > > >extern int pthread_cancel (pthread_t __cancelthread); > > > > >extern void pthread_testcancel (void); ># 614 "/usr/include/pthread.h" 3 4 >extern void _pthread_cleanup_push (struct _pthread_cleanup_buffer *__buffer, > void (*__routine) (void *), > void *__arg) throw (); > > > > > > > >extern void _pthread_cleanup_pop (struct _pthread_cleanup_buffer *__buffer, > int __execute) throw (); ># 635 "/usr/include/pthread.h" 3 4 >extern void _pthread_cleanup_push_defer (struct _pthread_cleanup_buffer *__buffer, > void (*__routine) (void *), > void *__arg) throw (); ># 646 "/usr/include/pthread.h" 3 4 >extern void _pthread_cleanup_pop_restore (struct _pthread_cleanup_buffer *__buffer, > int __execute) throw (); > > > > > >extern int pthread_getcpuclockid (pthread_t __thread_id, > __clockid_t *__clock_id) throw (); > > > > ># 1 "/usr/include/bits/sigthread.h" 1 3 4 ># 31 "/usr/include/bits/sigthread.h" 3 4 >extern int pthread_sigmask (int __how, > __const __sigset_t *__restrict __newmask, > __sigset_t *__restrict __oldmask)throw (); > > >extern int pthread_kill (pthread_t __threadid, int __signo) throw (); ># 660 "/usr/include/pthread.h" 2 3 4 ># 675 "/usr/include/pthread.h" 3 4 >extern int pthread_atfork (void (*__prepare) (void), > void (*__parent) (void), > void (*__child) (void)) throw (); > > > > >extern void pthread_kill_other_threads_np (void) throw (); > >} ># 38 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/i686-pc-linux-gnu/bits/gthr-default.h" 2 3 ># 1 "/usr/include/unistd.h" 1 3 4 ># 28 "/usr/include/unistd.h" 3 4 >extern "C" { ># 171 "/usr/include/unistd.h" 3 4 ># 1 "/usr/include/bits/posix_opt.h" 1 3 4 ># 172 "/usr/include/unistd.h" 2 3 4 > > > ># 1 "/usr/include/bits/environments.h" 1 3 4 ># 176 "/usr/include/unistd.h" 2 3 4 ># 195 "/usr/include/unistd.h" 3 4 ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/stddef.h" 1 3 4 ># 196 "/usr/include/unistd.h" 2 3 4 ># 236 "/usr/include/unistd.h" 3 4 >typedef __intptr_t intptr_t; > > > > > > >typedef __socklen_t socklen_t; ># 256 "/usr/include/unistd.h" 3 4 >extern int access (__const char *__name, int __type) throw () __attribute__ ((__nonnull__ (1))); > > > > >extern int euidaccess (__const char *__name, int __type) > throw () __attribute__ ((__nonnull__ (1))); ># 287 "/usr/include/unistd.h" 3 4 >extern __off_t lseek (int __fd, __off_t __offset, int __whence) throw (); ># 298 "/usr/include/unistd.h" 3 4 >extern __off64_t lseek64 (int __fd, __off64_t __offset, int __whence) throw (); > > > > > > >extern int close (int __fd); > > > > > > >extern ssize_t read (int __fd, void *__buf, size_t __nbytes); > > > > > >extern ssize_t write (int __fd, __const void *__buf, size_t __n); ># 328 "/usr/include/unistd.h" 3 4 >extern ssize_t pread (int __fd, void *__buf, size_t __nbytes, > __off_t __offset); > > > > > > >extern ssize_t pwrite (int __fd, __const void *__buf, size_t __n, > __off_t __offset); ># 356 "/usr/include/unistd.h" 3 4 >extern ssize_t pread64 (int __fd, void *__buf, size_t __nbytes, > __off64_t __offset); > > >extern ssize_t pwrite64 (int __fd, __const void *__buf, size_t __n, > __off64_t __offset); > > > > > > > >extern int pipe (int __pipedes[2]) throw (); ># 378 "/usr/include/unistd.h" 3 4 >extern unsigned int alarm (unsigned int __seconds) throw (); ># 390 "/usr/include/unistd.h" 3 4 >extern unsigned int sleep (unsigned int __seconds); > > > > > > >extern __useconds_t ualarm (__useconds_t __value, __useconds_t __interval) > throw (); > > > > > > >extern int usleep (__useconds_t __useconds); ># 414 "/usr/include/unistd.h" 3 4 >extern int pause (void); > > > >extern int chown (__const char *__file, __uid_t __owner, __gid_t __group) > throw () __attribute__ ((__nonnull__ (1))); > > > >extern int fchown (int __fd, __uid_t __owner, __gid_t __group) throw (); > > > > >extern int lchown (__const char *__file, __uid_t __owner, __gid_t __group) > throw () __attribute__ ((__nonnull__ (1))); > > > > >extern int chdir (__const char *__path) throw () __attribute__ ((__nonnull__ (1))); > > > >extern int fchdir (int __fd) throw (); ># 448 "/usr/include/unistd.h" 3 4 >extern char *getcwd (char *__buf, size_t __size) throw (); > > > > > >extern char *get_current_dir_name (void) throw (); > > > > > > >extern char *getwd (char *__buf) throw () __attribute__ ((__nonnull__ (1))); > > > > >extern int dup (int __fd) throw (); > > >extern int dup2 (int __fd, int __fd2) throw (); > > >extern char **__environ; > >extern char **environ; > > > > > >extern int execve (__const char *__path, char *__const __argv[], > char *__const __envp[]) throw () __attribute__ ((__nonnull__ (1))); > > > > >extern int fexecve (int __fd, char *__const __argv[], char *__const __envp[]) > throw (); > > > > >extern int execv (__const char *__path, char *__const __argv[]) > throw () __attribute__ ((__nonnull__ (1))); > > > >extern int execle (__const char *__path, __const char *__arg, ...) > throw () __attribute__ ((__nonnull__ (1))); > > > >extern int execl (__const char *__path, __const char *__arg, ...) > throw () __attribute__ ((__nonnull__ (1))); > > > >extern int execvp (__const char *__file, char *__const __argv[]) > throw () __attribute__ ((__nonnull__ (1))); > > > > >extern int execlp (__const char *__file, __const char *__arg, ...) > throw () __attribute__ ((__nonnull__ (1))); > > > > >extern int nice (int __inc) throw (); > > > > >extern void _exit (int __status) __attribute__ ((__noreturn__)); > > > > > ># 1 "/usr/include/bits/confname.h" 1 3 4 ># 26 "/usr/include/bits/confname.h" 3 4 >enum > { > _PC_LINK_MAX, > > _PC_MAX_CANON, > > _PC_MAX_INPUT, > > _PC_NAME_MAX, > > _PC_PATH_MAX, > > _PC_PIPE_BUF, > > _PC_CHOWN_RESTRICTED, > > _PC_NO_TRUNC, > > _PC_VDISABLE, > > _PC_SYNC_IO, > > _PC_ASYNC_IO, > > _PC_PRIO_IO, > > _PC_SOCK_MAXBUF, > > _PC_FILESIZEBITS, > > _PC_REC_INCR_XFER_SIZE, > > _PC_REC_MAX_XFER_SIZE, > > _PC_REC_MIN_XFER_SIZE, > > _PC_REC_XFER_ALIGN, > > _PC_ALLOC_SIZE_MIN, > > _PC_SYMLINK_MAX, > > _PC_2_SYMLINKS > > }; > > >enum > { > _SC_ARG_MAX, > > _SC_CHILD_MAX, > > _SC_CLK_TCK, > > _SC_NGROUPS_MAX, > > _SC_OPEN_MAX, > > _SC_STREAM_MAX, > > _SC_TZNAME_MAX, > > _SC_JOB_CONTROL, > > _SC_SAVED_IDS, > > _SC_REALTIME_SIGNALS, > > _SC_PRIORITY_SCHEDULING, > > _SC_TIMERS, > > _SC_ASYNCHRONOUS_IO, > > _SC_PRIORITIZED_IO, > > _SC_SYNCHRONIZED_IO, > > _SC_FSYNC, > > _SC_MAPPED_FILES, > > _SC_MEMLOCK, > > _SC_MEMLOCK_RANGE, > > _SC_MEMORY_PROTECTION, > > _SC_MESSAGE_PASSING, > > _SC_SEMAPHORES, > > _SC_SHARED_MEMORY_OBJECTS, > > _SC_AIO_LISTIO_MAX, > > _SC_AIO_MAX, > > _SC_AIO_PRIO_DELTA_MAX, > > _SC_DELAYTIMER_MAX, > > _SC_MQ_OPEN_MAX, > > _SC_MQ_PRIO_MAX, > > _SC_VERSION, > > _SC_PAGESIZE, > > > _SC_RTSIG_MAX, > > _SC_SEM_NSEMS_MAX, > > _SC_SEM_VALUE_MAX, > > _SC_SIGQUEUE_MAX, > > _SC_TIMER_MAX, > > > > > _SC_BC_BASE_MAX, > > _SC_BC_DIM_MAX, > > _SC_BC_SCALE_MAX, > > _SC_BC_STRING_MAX, > > _SC_COLL_WEIGHTS_MAX, > > _SC_EQUIV_CLASS_MAX, > > _SC_EXPR_NEST_MAX, > > _SC_LINE_MAX, > > _SC_RE_DUP_MAX, > > _SC_CHARCLASS_NAME_MAX, > > > _SC_2_VERSION, > > _SC_2_C_BIND, > > _SC_2_C_DEV, > > _SC_2_FORT_DEV, > > _SC_2_FORT_RUN, > > _SC_2_SW_DEV, > > _SC_2_LOCALEDEF, > > > _SC_PII, > > _SC_PII_XTI, > > _SC_PII_SOCKET, > > _SC_PII_INTERNET, > > _SC_PII_OSI, > > _SC_POLL, > > _SC_SELECT, > > _SC_UIO_MAXIOV, > > _SC_IOV_MAX = _SC_UIO_MAXIOV, > > _SC_PII_INTERNET_STREAM, > > _SC_PII_INTERNET_DGRAM, > > _SC_PII_OSI_COTS, > > _SC_PII_OSI_CLTS, > > _SC_PII_OSI_M, > > _SC_T_IOV_MAX, > > > > _SC_THREADS, > > _SC_THREAD_SAFE_FUNCTIONS, > > _SC_GETGR_R_SIZE_MAX, > > _SC_GETPW_R_SIZE_MAX, > > _SC_LOGIN_NAME_MAX, > > _SC_TTY_NAME_MAX, > > _SC_THREAD_DESTRUCTOR_ITERATIONS, > > _SC_THREAD_KEYS_MAX, > > _SC_THREAD_STACK_MIN, > > _SC_THREAD_THREADS_MAX, > > _SC_THREAD_ATTR_STACKADDR, > > _SC_THREAD_ATTR_STACKSIZE, > > _SC_THREAD_PRIORITY_SCHEDULING, > > _SC_THREAD_PRIO_INHERIT, > > _SC_THREAD_PRIO_PROTECT, > > _SC_THREAD_PROCESS_SHARED, > > > _SC_NPROCESSORS_CONF, > > _SC_NPROCESSORS_ONLN, > > _SC_PHYS_PAGES, > > _SC_AVPHYS_PAGES, > > _SC_ATEXIT_MAX, > > _SC_PASS_MAX, > > > _SC_XOPEN_VERSION, > > _SC_XOPEN_XCU_VERSION, > > _SC_XOPEN_UNIX, > > _SC_XOPEN_CRYPT, > > _SC_XOPEN_ENH_I18N, > > _SC_XOPEN_SHM, > > > _SC_2_CHAR_TERM, > > _SC_2_C_VERSION, > > _SC_2_UPE, > > > _SC_XOPEN_XPG2, > > _SC_XOPEN_XPG3, > > _SC_XOPEN_XPG4, > > > _SC_CHAR_BIT, > > _SC_CHAR_MAX, > > _SC_CHAR_MIN, > > _SC_INT_MAX, > > _SC_INT_MIN, > > _SC_LONG_BIT, > > _SC_WORD_BIT, > > _SC_MB_LEN_MAX, > > _SC_NZERO, > > _SC_SSIZE_MAX, > > _SC_SCHAR_MAX, > > _SC_SCHAR_MIN, > > _SC_SHRT_MAX, > > _SC_SHRT_MIN, > > _SC_UCHAR_MAX, > > _SC_UINT_MAX, > > _SC_ULONG_MAX, > > _SC_USHRT_MAX, > > > _SC_NL_ARGMAX, > > _SC_NL_LANGMAX, > > _SC_NL_MSGMAX, > > _SC_NL_NMAX, > > _SC_NL_SETMAX, > > _SC_NL_TEXTMAX, > > > _SC_XBS5_ILP32_OFF32, > > _SC_XBS5_ILP32_OFFBIG, > > _SC_XBS5_LP64_OFF64, > > _SC_XBS5_LPBIG_OFFBIG, > > > _SC_XOPEN_LEGACY, > > _SC_XOPEN_REALTIME, > > _SC_XOPEN_REALTIME_THREADS, > > > _SC_ADVISORY_INFO, > > _SC_BARRIERS, > > _SC_BASE, > > _SC_C_LANG_SUPPORT, > > _SC_C_LANG_SUPPORT_R, > > _SC_CLOCK_SELECTION, > > _SC_CPUTIME, > > _SC_THREAD_CPUTIME, > > _SC_DEVICE_IO, > > _SC_DEVICE_SPECIFIC, > > _SC_DEVICE_SPECIFIC_R, > > _SC_FD_MGMT, > > _SC_FIFO, > > _SC_PIPE, > > _SC_FILE_ATTRIBUTES, > > _SC_FILE_LOCKING, > > _SC_FILE_SYSTEM, > > _SC_MONOTONIC_CLOCK, > > _SC_MULTI_PROCESS, > > _SC_SINGLE_PROCESS, > > _SC_NETWORKING, > > _SC_READER_WRITER_LOCKS, > > _SC_SPIN_LOCKS, > > _SC_REGEXP, > > _SC_REGEX_VERSION, > > _SC_SHELL, > > _SC_SIGNALS, > > _SC_SPAWN, > > _SC_SPORADIC_SERVER, > > _SC_THREAD_SPORADIC_SERVER, > > _SC_SYSTEM_DATABASE, > > _SC_SYSTEM_DATABASE_R, > > _SC_TIMEOUTS, > > _SC_TYPED_MEMORY_OBJECTS, > > _SC_USER_GROUPS, > > _SC_USER_GROUPS_R, > > _SC_2_PBS, > > _SC_2_PBS_ACCOUNTING, > > _SC_2_PBS_LOCATE, > > _SC_2_PBS_MESSAGE, > > _SC_2_PBS_TRACK, > > _SC_SYMLOOP_MAX, > > _SC_STREAMS, > > _SC_2_PBS_CHECKPOINT, > > > _SC_V6_ILP32_OFF32, > > _SC_V6_ILP32_OFFBIG, > > _SC_V6_LP64_OFF64, > > _SC_V6_LPBIG_OFFBIG, > > > _SC_HOST_NAME_MAX, > > _SC_TRACE, > > _SC_TRACE_EVENT_FILTER, > > _SC_TRACE_INHERIT, > > _SC_TRACE_LOG, > > > _SC_LEVEL1_ICACHE_SIZE, > > _SC_LEVEL1_ICACHE_ASSOC, > > _SC_LEVEL1_ICACHE_LINESIZE, > > _SC_LEVEL1_DCACHE_SIZE, > > _SC_LEVEL1_DCACHE_ASSOC, > > _SC_LEVEL1_DCACHE_LINESIZE, > > _SC_LEVEL2_CACHE_SIZE, > > _SC_LEVEL2_CACHE_ASSOC, > > _SC_LEVEL2_CACHE_LINESIZE, > > _SC_LEVEL3_CACHE_SIZE, > > _SC_LEVEL3_CACHE_ASSOC, > > _SC_LEVEL3_CACHE_LINESIZE, > > _SC_LEVEL4_CACHE_SIZE, > > _SC_LEVEL4_CACHE_ASSOC, > > _SC_LEVEL4_CACHE_LINESIZE, > > > > _SC_IPV6 = _SC_LEVEL1_ICACHE_SIZE + 50, > > _SC_RAW_SOCKETS > > }; > > >enum > { > _CS_PATH, > > > _CS_V6_WIDTH_RESTRICTED_ENVS, > > > _CS_GNU_LIBC_VERSION, > > _CS_GNU_LIBPTHREAD_VERSION, > > > _CS_LFS_CFLAGS = 1000, > > _CS_LFS_LDFLAGS, > > _CS_LFS_LIBS, > > _CS_LFS_LINTFLAGS, > > _CS_LFS64_CFLAGS, > > _CS_LFS64_LDFLAGS, > > _CS_LFS64_LIBS, > > _CS_LFS64_LINTFLAGS, > > > _CS_XBS5_ILP32_OFF32_CFLAGS = 1100, > > _CS_XBS5_ILP32_OFF32_LDFLAGS, > > _CS_XBS5_ILP32_OFF32_LIBS, > > _CS_XBS5_ILP32_OFF32_LINTFLAGS, > > _CS_XBS5_ILP32_OFFBIG_CFLAGS, > > _CS_XBS5_ILP32_OFFBIG_LDFLAGS, > > _CS_XBS5_ILP32_OFFBIG_LIBS, > > _CS_XBS5_ILP32_OFFBIG_LINTFLAGS, > > _CS_XBS5_LP64_OFF64_CFLAGS, > > _CS_XBS5_LP64_OFF64_LDFLAGS, > > _CS_XBS5_LP64_OFF64_LIBS, > > _CS_XBS5_LP64_OFF64_LINTFLAGS, > > _CS_XBS5_LPBIG_OFFBIG_CFLAGS, > > _CS_XBS5_LPBIG_OFFBIG_LDFLAGS, > > _CS_XBS5_LPBIG_OFFBIG_LIBS, > > _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS, > > > _CS_POSIX_V6_ILP32_OFF32_CFLAGS, > > _CS_POSIX_V6_ILP32_OFF32_LDFLAGS, > > _CS_POSIX_V6_ILP32_OFF32_LIBS, > > _CS_POSIX_V6_ILP32_OFF32_LINTFLAGS, > > _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS, > > _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS, > > _CS_POSIX_V6_ILP32_OFFBIG_LIBS, > > _CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS, > > _CS_POSIX_V6_LP64_OFF64_CFLAGS, > > _CS_POSIX_V6_LP64_OFF64_LDFLAGS, > > _CS_POSIX_V6_LP64_OFF64_LIBS, > > _CS_POSIX_V6_LP64_OFF64_LINTFLAGS, > > _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS, > > _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS, > > _CS_POSIX_V6_LPBIG_OFFBIG_LIBS, > > _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS > > }; ># 531 "/usr/include/unistd.h" 2 3 4 > > >extern long int pathconf (__const char *__path, int __name) > throw () __attribute__ ((__nonnull__ (1))); > > >extern long int fpathconf (int __fd, int __name) throw (); > > >extern long int sysconf (int __name) throw () __attribute__ ((__const__)); > > > >extern size_t confstr (int __name, char *__buf, size_t __len) throw (); > > > > >extern __pid_t getpid (void) throw (); > > >extern __pid_t getppid (void) throw (); > > > > >extern __pid_t getpgrp (void) throw (); ># 567 "/usr/include/unistd.h" 3 4 >extern __pid_t __getpgid (__pid_t __pid) throw (); > >extern __pid_t getpgid (__pid_t __pid) throw (); > > > > > > >extern int setpgid (__pid_t __pid, __pid_t __pgid) throw (); ># 593 "/usr/include/unistd.h" 3 4 >extern int setpgrp (void) throw (); ># 610 "/usr/include/unistd.h" 3 4 >extern __pid_t setsid (void) throw (); > > > >extern __pid_t getsid (__pid_t __pid) throw (); > > > >extern __uid_t getuid (void) throw (); > > >extern __uid_t geteuid (void) throw (); > > >extern __gid_t getgid (void) throw (); > > >extern __gid_t getegid (void) throw (); > > > > >extern int getgroups (int __size, __gid_t __list[]) throw (); > > > >extern int group_member (__gid_t __gid) throw (); > > > > > > >extern int setuid (__uid_t __uid) throw (); > > > > >extern int setreuid (__uid_t __ruid, __uid_t __euid) throw (); > > > > >extern int seteuid (__uid_t __uid) throw (); > > > > > > >extern int setgid (__gid_t __gid) throw (); > > > > >extern int setregid (__gid_t __rgid, __gid_t __egid) throw (); > > > > >extern int setegid (__gid_t __gid) throw (); > > > > > >extern int getresuid (__uid_t *__euid, __uid_t *__ruid, __uid_t *__suid); > > > >extern int getresgid (__gid_t *__egid, __gid_t *__rgid, __gid_t *__sgid); > > > >extern int setresuid (__uid_t __euid, __uid_t __ruid, __uid_t __suid); > > > >extern int setresgid (__gid_t __egid, __gid_t __rgid, __gid_t __sgid); > > > > > > >extern __pid_t fork (void) throw (); > > > > > > >extern __pid_t vfork (void) throw (); > > > > > >extern char *ttyname (int __fd) throw (); > > > >extern int ttyname_r (int __fd, char *__buf, size_t __buflen) > throw () __attribute__ ((__nonnull__ (2))); > > > >extern int isatty (int __fd) throw (); > > > > > >extern int ttyslot (void) throw (); > > > > >extern int link (__const char *__from, __const char *__to) > throw () __attribute__ ((__nonnull__ (1, 2))); > > > >extern int symlink (__const char *__from, __const char *__to) > throw () __attribute__ ((__nonnull__ (1, 2))); > > > > >extern int readlink (__const char *__restrict __path, char *__restrict __buf, > size_t __len) throw () __attribute__ ((__nonnull__ (1, 2))); > > > >extern int unlink (__const char *__name) throw () __attribute__ ((__nonnull__ (1))); > > >extern int rmdir (__const char *__path) throw () __attribute__ ((__nonnull__ (1))); > > > >extern __pid_t tcgetpgrp (int __fd) throw (); > > >extern int tcsetpgrp (int __fd, __pid_t __pgrp_id) throw (); > > > > > > >extern char *getlogin (void); > > > > > > > >extern int getlogin_r (char *__name, size_t __name_len) __attribute__ ((__nonnull__ (1))); > > > > >extern int setlogin (__const char *__name) throw () __attribute__ ((__nonnull__ (1))); ># 783 "/usr/include/unistd.h" 3 4 ># 1 "/usr/include/getopt.h" 1 3 4 ># 50 "/usr/include/getopt.h" 3 4 >extern "C" { ># 59 "/usr/include/getopt.h" 3 4 >extern char *optarg; ># 73 "/usr/include/getopt.h" 3 4 >extern int optind; > > > > >extern int opterr; > > > >extern int optopt; ># 152 "/usr/include/getopt.h" 3 4 >extern int getopt (int ___argc, char *const *___argv, const char *__shortopts) > throw (); ># 171 "/usr/include/getopt.h" 3 4 >} ># 784 "/usr/include/unistd.h" 2 3 4 > > > > > > > >extern int gethostname (char *__name, size_t __len) throw () __attribute__ ((__nonnull__ (1))); > > > > > > >extern int sethostname (__const char *__name, size_t __len) > throw () __attribute__ ((__nonnull__ (1))); > > > >extern int sethostid (long int __id) throw (); > > > > > >extern int getdomainname (char *__name, size_t __len) > throw () __attribute__ ((__nonnull__ (1))); >extern int setdomainname (__const char *__name, size_t __len) > throw () __attribute__ ((__nonnull__ (1))); > > > > > >extern int vhangup (void) throw (); > > >extern int revoke (__const char *__file) throw () __attribute__ ((__nonnull__ (1))); > > > > > > > >extern int profil (unsigned short int *__sample_buffer, size_t __size, > size_t __offset, unsigned int __scale) > throw () __attribute__ ((__nonnull__ (1))); > > > > > >extern int acct (__const char *__name) throw () __attribute__ ((__nonnull__ (1))); > > > >extern char *getusershell (void) throw (); >extern void endusershell (void) throw (); >extern void setusershell (void) throw (); > > > > > >extern int daemon (int __nochdir, int __noclose) throw (); > > > > > > >extern int chroot (__const char *__path) throw () __attribute__ ((__nonnull__ (1))); > > > >extern char *getpass (__const char *__prompt) __attribute__ ((__nonnull__ (1))); ># 869 "/usr/include/unistd.h" 3 4 >extern int fsync (int __fd); > > > > > > >extern long int gethostid (void); > > >extern void sync (void) throw (); > > > > >extern int getpagesize (void) throw () __attribute__ ((__const__)); > > > > >extern int getdtablesize (void) throw (); > > > > >extern int truncate (__const char *__file, __off_t __length) > throw () __attribute__ ((__nonnull__ (1))); ># 906 "/usr/include/unistd.h" 3 4 >extern int truncate64 (__const char *__file, __off64_t __length) > throw () __attribute__ ((__nonnull__ (1))); ># 916 "/usr/include/unistd.h" 3 4 >extern int ftruncate (int __fd, __off_t __length) throw (); ># 926 "/usr/include/unistd.h" 3 4 >extern int ftruncate64 (int __fd, __off64_t __length) throw (); ># 936 "/usr/include/unistd.h" 3 4 >extern int brk (void *__addr) throw (); > > > > > >extern void *sbrk (intptr_t __delta) throw (); ># 957 "/usr/include/unistd.h" 3 4 >extern long int syscall (long int __sysno, ...) throw (); ># 980 "/usr/include/unistd.h" 3 4 >extern int lockf (int __fd, int __cmd, __off_t __len); ># 990 "/usr/include/unistd.h" 3 4 >extern int lockf64 (int __fd, int __cmd, __off64_t __len); ># 1011 "/usr/include/unistd.h" 3 4 >extern int fdatasync (int __fildes) throw (); > > > > > > > >extern char *crypt (__const char *__key, __const char *__salt) > throw () __attribute__ ((__nonnull__ (1, 2))); > > > >extern void encrypt (char *__block, int __edflag) throw () __attribute__ ((__nonnull__ (1))); > > > > > > >extern void swab (__const void *__restrict __from, void *__restrict __to, > ssize_t __n) throw () __attribute__ ((__nonnull__ (1, 2))); > > > > > > > >extern char *ctermid (char *__s) throw () __attribute__ ((__nonnull__ (1))); > > >} ># 39 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/i686-pc-linux-gnu/bits/gthr-default.h" 2 3 > >typedef pthread_key_t __gthread_key_t; >typedef pthread_once_t __gthread_once_t; >typedef pthread_mutex_t __gthread_mutex_t; > > > > > > >#pragma weak pthread_once >#pragma weak pthread_key_create >#pragma weak pthread_key_delete >#pragma weak pthread_getspecific >#pragma weak pthread_setspecific >#pragma weak pthread_create > >#pragma weak pthread_mutex_lock >#pragma weak pthread_mutex_trylock >#pragma weak pthread_mutex_unlock ># 87 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/i686-pc-linux-gnu/bits/gthr-default.h" 3 >static inline int >__gthread_active_p (void) >{ > static void *const __gthread_active_ptr = (void *) &pthread_create; > return __gthread_active_ptr != 0; >} ># 449 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/i686-pc-linux-gnu/bits/gthr-default.h" 3 >static inline int >__gthread_once (__gthread_once_t *once, void (*func) (void)) >{ > if (__gthread_active_p ()) > return pthread_once (once, func); > else > return -1; >} > >static inline int >__gthread_key_create (__gthread_key_t *key, void (*dtor) (void *)) >{ > return pthread_key_create (key, dtor); >} > >static inline int >__gthread_key_dtor (__gthread_key_t key, void *ptr) >{ > > if (ptr) > return pthread_setspecific (key, 0); > else > return 0; >} > >static inline int >__gthread_key_delete (__gthread_key_t key) >{ > return pthread_key_delete (key); >} > >static inline void * >__gthread_getspecific (__gthread_key_t key) >{ > return pthread_getspecific (key); >} > >static inline int >__gthread_setspecific (__gthread_key_t key, const void *ptr) >{ > return pthread_setspecific (key, ptr); >} > >static inline int >__gthread_mutex_lock (__gthread_mutex_t *mutex) >{ > if (__gthread_active_p ()) > return pthread_mutex_lock (mutex); > else > return 0; >} > >static inline int >__gthread_mutex_trylock (__gthread_mutex_t *mutex) >{ > if (__gthread_active_p ()) > return pthread_mutex_trylock (mutex); > else > return 0; >} > >static inline int >__gthread_mutex_unlock (__gthread_mutex_t *mutex) >{ > if (__gthread_active_p ()) > return pthread_mutex_unlock (mutex); > else > return 0; >} ># 99 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/i686-pc-linux-gnu/bits/gthr.h" 2 3 ># 38 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/i686-pc-linux-gnu/bits/c++io.h" 2 3 > >namespace std >{ > > typedef long streamoff; > typedef ptrdiff_t streamsize; > > typedef ptrdiff_t wstreamsize; > > typedef fpos_t __c_streampos; > > typedef __gthread_mutex_t __c_lock; > > > typedef FILE __c_file; > > > struct __ios_flags > { > typedef short __int_type; > > static const __int_type _S_boolalpha = 0x0001; > static const __int_type _S_dec = 0x0002; > static const __int_type _S_fixed = 0x0004; > static const __int_type _S_hex = 0x0008; > static const __int_type _S_internal = 0x0010; > static const __int_type _S_left = 0x0020; > static const __int_type _S_oct = 0x0040; > static const __int_type _S_right = 0x0080; > static const __int_type _S_scientific = 0x0100; > static const __int_type _S_showbase = 0x0200; > static const __int_type _S_showpoint = 0x0400; > static const __int_type _S_showpos = 0x0800; > static const __int_type _S_skipws = 0x1000; > static const __int_type _S_unitbuf = 0x2000; > static const __int_type _S_uppercase = 0x4000; > static const __int_type _S_adjustfield = 0x0020 | 0x0080 | 0x0010; > static const __int_type _S_basefield = 0x0002 | 0x0040 | 0x0008; > static const __int_type _S_floatfield = 0x0100 | 0x0004; > > > static const __int_type _S_badbit = 0x01; > static const __int_type _S_eofbit = 0x02; > static const __int_type _S_failbit = 0x04; > > > static const __int_type _S_app = 0x01; > static const __int_type _S_ate = 0x02; > static const __int_type _S_bin = 0x04; > static const __int_type _S_in = 0x08; > static const __int_type _S_out = 0x10; > static const __int_type _S_trunc = 0x20; > }; >} ># 45 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/fpos.h" 2 3 ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/cwchar" 1 3 ># 47 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/cwchar" 3 > ># 48 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/cwchar" 3 > > > > > > ># 1 "/usr/include/wchar.h" 1 3 4 ># 48 "/usr/include/wchar.h" 3 4 ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/stddef.h" 1 3 4 ># 49 "/usr/include/wchar.h" 2 3 4 ># 93 "/usr/include/wchar.h" 3 4 > > >typedef __mbstate_t mbstate_t; > > > ># 118 "/usr/include/wchar.h" 3 4 >extern "C" { > > > > >struct tm; > > > > > > > > > >extern wchar_t *wcscpy (wchar_t *__restrict __dest, > __const wchar_t *__restrict __src) throw (); > >extern wchar_t *wcsncpy (wchar_t *__restrict __dest, > __const wchar_t *__restrict __src, size_t __n) > throw (); > > >extern wchar_t *wcscat (wchar_t *__restrict __dest, > __const wchar_t *__restrict __src) throw (); > >extern wchar_t *wcsncat (wchar_t *__restrict __dest, > __const wchar_t *__restrict __src, size_t __n) > throw (); > > >extern int wcscmp (__const wchar_t *__s1, __const wchar_t *__s2) > throw () __attribute__ ((__pure__)); > >extern int wcsncmp (__const wchar_t *__s1, __const wchar_t *__s2, size_t __n) > throw () __attribute__ ((__pure__)); > > > > >extern int wcscasecmp (__const wchar_t *__s1, __const wchar_t *__s2) throw (); > > >extern int wcsncasecmp (__const wchar_t *__s1, __const wchar_t *__s2, > size_t __n) throw (); > > > > > >extern int wcscasecmp_l (__const wchar_t *__s1, __const wchar_t *__s2, > __locale_t __loc) throw (); > >extern int wcsncasecmp_l (__const wchar_t *__s1, __const wchar_t *__s2, > size_t __n, __locale_t __loc) throw (); > > > > > >extern int wcscoll (__const wchar_t *__s1, __const wchar_t *__s2) throw (); > > > >extern size_t wcsxfrm (wchar_t *__restrict __s1, > __const wchar_t *__restrict __s2, size_t __n) throw (); > > > > > > > > >extern int wcscoll_l (__const wchar_t *__s1, __const wchar_t *__s2, > __locale_t __loc) throw (); > > > > >extern size_t wcsxfrm_l (wchar_t *__s1, __const wchar_t *__s2, > size_t __n, __locale_t __loc) throw (); > > >extern wchar_t *wcsdup (__const wchar_t *__s) throw () __attribute__ ((__malloc__)); > > > > >extern wchar_t *wcschr (__const wchar_t *__wcs, wchar_t __wc) > throw () __attribute__ ((__pure__)); > >extern wchar_t *wcsrchr (__const wchar_t *__wcs, wchar_t __wc) > throw () __attribute__ ((__pure__)); > > > > > >extern wchar_t *wcschrnul (__const wchar_t *__s, wchar_t __wc) > throw () __attribute__ ((__pure__)); > > > > > >extern size_t wcscspn (__const wchar_t *__wcs, __const wchar_t *__reject) > throw () __attribute__ ((__pure__)); > > >extern size_t wcsspn (__const wchar_t *__wcs, __const wchar_t *__accept) > throw () __attribute__ ((__pure__)); > >extern wchar_t *wcspbrk (__const wchar_t *__wcs, __const wchar_t *__accept) > throw () __attribute__ ((__pure__)); > >extern wchar_t *wcsstr (__const wchar_t *__haystack, __const wchar_t *__needle) > throw () __attribute__ ((__pure__)); > > >extern wchar_t *wcstok (wchar_t *__restrict __s, > __const wchar_t *__restrict __delim, > wchar_t **__restrict __ptr) throw (); > > >extern size_t wcslen (__const wchar_t *__s) throw () __attribute__ ((__pure__)); > > > > >extern wchar_t *wcswcs (__const wchar_t *__haystack, __const wchar_t *__needle) > throw () __attribute__ ((__pure__)); > > > > >extern size_t wcsnlen (__const wchar_t *__s, size_t __maxlen) > throw () __attribute__ ((__pure__)); > > > > > >extern wchar_t *wmemchr (__const wchar_t *__s, wchar_t __c, size_t __n) > throw () __attribute__ ((__pure__)); > > >extern int wmemcmp (__const wchar_t *__restrict __s1, > __const wchar_t *__restrict __s2, size_t __n) > throw () __attribute__ ((__pure__)); > > >extern wchar_t *wmemcpy (wchar_t *__restrict __s1, > __const wchar_t *__restrict __s2, size_t __n) throw (); > > > >extern wchar_t *wmemmove (wchar_t *__s1, __const wchar_t *__s2, size_t __n) > throw (); > > >extern wchar_t *wmemset (wchar_t *__s, wchar_t __c, size_t __n) throw (); > > > > > >extern wchar_t *wmempcpy (wchar_t *__restrict __s1, > __const wchar_t *__restrict __s2, size_t __n) > throw (); > > > > > > >extern wint_t btowc (int __c) throw (); > > > >extern int wctob (wint_t __c) throw (); > > > >extern int mbsinit (__const mbstate_t *__ps) throw () __attribute__ ((__pure__)); > > > >extern size_t mbrtowc (wchar_t *__restrict __pwc, > __const char *__restrict __s, size_t __n, > mbstate_t *__p) throw (); > > >extern size_t wcrtomb (char *__restrict __s, wchar_t __wc, > mbstate_t *__restrict __ps) throw (); > > >extern size_t __mbrlen (__const char *__restrict __s, size_t __n, > mbstate_t *__restrict __ps) throw (); >extern size_t mbrlen (__const char *__restrict __s, size_t __n, > mbstate_t *__restrict __ps) throw (); > > > > >extern __inline size_t >mbrlen (__const char *__restrict __s, size_t __n, mbstate_t *__restrict __ps) throw () > >{ return (__ps != __null > ? mbrtowc (__null, __s, __n, __ps) : __mbrlen (__s, __n, __null)); } > > > > > >extern size_t mbsrtowcs (wchar_t *__restrict __dst, > __const char **__restrict __src, size_t __len, > mbstate_t *__restrict __ps) throw (); > > > >extern size_t wcsrtombs (char *__restrict __dst, > __const wchar_t **__restrict __src, size_t __len, > mbstate_t *__restrict __ps) throw (); > > > > > > >extern size_t mbsnrtowcs (wchar_t *__restrict __dst, > __const char **__restrict __src, size_t __nmc, > size_t __len, mbstate_t *__restrict __ps) throw (); > > > >extern size_t wcsnrtombs (char *__restrict __dst, > __const wchar_t **__restrict __src, > size_t __nwc, size_t __len, > mbstate_t *__restrict __ps) throw (); > > > > > > >extern int wcwidth (wchar_t __c) throw (); > > > >extern int wcswidth (__const wchar_t *__s, size_t __n) throw (); > > > > > > >extern double wcstod (__const wchar_t *__restrict __nptr, > wchar_t **__restrict __endptr) throw (); > > > >extern float wcstof (__const wchar_t *__restrict __nptr, > wchar_t **__restrict __endptr) throw (); >extern long double wcstold (__const wchar_t *__restrict __nptr, > wchar_t **__restrict __endptr) throw (); > > > > > >extern long int wcstol (__const wchar_t *__restrict __nptr, > wchar_t **__restrict __endptr, int __base) throw (); > > > >extern unsigned long int wcstoul (__const wchar_t *__restrict __nptr, > wchar_t **__restrict __endptr, int __base) > throw (); > > > > >__extension__ >extern long long int wcstoll (__const wchar_t *__restrict __nptr, > wchar_t **__restrict __endptr, int __base) > throw (); > > > >__extension__ >extern unsigned long long int wcstoull (__const wchar_t *__restrict __nptr, > wchar_t **__restrict __endptr, > int __base) throw (); > > > > > > >__extension__ >extern long long int wcstoq (__const wchar_t *__restrict __nptr, > wchar_t **__restrict __endptr, int __base) > throw (); > > > >__extension__ >extern unsigned long long int wcstouq (__const wchar_t *__restrict __nptr, > wchar_t **__restrict __endptr, > int __base) throw (); ># 449 "/usr/include/wchar.h" 3 4 >extern long int wcstol_l (__const wchar_t *__restrict __nptr, > wchar_t **__restrict __endptr, int __base, > __locale_t __loc) throw (); > >extern unsigned long int wcstoul_l (__const wchar_t *__restrict __nptr, > wchar_t **__restrict __endptr, > int __base, __locale_t __loc) throw (); > >__extension__ >extern long long int wcstoll_l (__const wchar_t *__restrict __nptr, > wchar_t **__restrict __endptr, > int __base, __locale_t __loc) throw (); > >__extension__ >extern unsigned long long int wcstoull_l (__const wchar_t *__restrict __nptr, > wchar_t **__restrict __endptr, > int __base, __locale_t __loc) > throw (); > >extern double wcstod_l (__const wchar_t *__restrict __nptr, > wchar_t **__restrict __endptr, __locale_t __loc) > throw (); > >extern float wcstof_l (__const wchar_t *__restrict __nptr, > wchar_t **__restrict __endptr, __locale_t __loc) > throw (); > >extern long double wcstold_l (__const wchar_t *__restrict __nptr, > wchar_t **__restrict __endptr, > __locale_t __loc) throw (); > > > > > >extern double __wcstod_internal (__const wchar_t *__restrict __nptr, > wchar_t **__restrict __endptr, int __group) > throw (); >extern float __wcstof_internal (__const wchar_t *__restrict __nptr, > wchar_t **__restrict __endptr, int __group) > throw (); >extern long double __wcstold_internal (__const wchar_t *__restrict __nptr, > wchar_t **__restrict __endptr, > int __group) throw (); > > >extern long int __wcstol_internal (__const wchar_t *__restrict __nptr, > wchar_t **__restrict __endptr, > int __base, int __group) throw (); > > > >extern unsigned long int __wcstoul_internal (__const wchar_t *__restrict __npt, > wchar_t **__restrict __endptr, > int __base, int __group) throw (); > > > >__extension__ >extern long long int __wcstoll_internal (__const wchar_t *__restrict __nptr, > wchar_t **__restrict __endptr, > int __base, int __group) throw (); > > > >__extension__ >extern unsigned long long int __wcstoull_internal (__const wchar_t * > __restrict __nptr, > wchar_t ** > __restrict __endptr, > int __base, > int __group) throw (); > > > > > > > > >extern __inline double >wcstod (__const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr) throw () > >{ return __wcstod_internal (__nptr, __endptr, 0); } >extern __inline long int >wcstol (__const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr, int __base) throw () > >{ return __wcstol_internal (__nptr, __endptr, __base, 0); } >extern __inline unsigned long int >wcstoul (__const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr, int __base) throw () > >{ return __wcstoul_internal (__nptr, __endptr, __base, 0); } > > > >extern __inline float >wcstof (__const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr) throw () > >{ return __wcstof_internal (__nptr, __endptr, 0); } >extern __inline long double >wcstold (__const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr) throw () > >{ return __wcstold_internal (__nptr, __endptr, 0); } > > >__extension__ >extern __inline long long int >wcstoq (__const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr, int __base) throw () > >{ return __wcstoll_internal (__nptr, __endptr, __base, 0); } >__extension__ >extern __inline unsigned long long int >wcstouq (__const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr, int __base) throw () > >{ return __wcstoull_internal (__nptr, __endptr, __base, 0); } > > > > > > > >extern wchar_t *wcpcpy (wchar_t *__dest, __const wchar_t *__src) throw (); > > > >extern wchar_t *wcpncpy (wchar_t *__dest, __const wchar_t *__src, size_t __n) > throw (); > > > > > > > > >extern int fwide (__FILE *__fp, int __mode) throw (); > > > > > > >extern int fwprintf (__FILE *__restrict __stream, > __const wchar_t *__restrict __format, ...) > ; > > > > >extern int wprintf (__const wchar_t *__restrict __format, ...) > ; > >extern int swprintf (wchar_t *__restrict __s, size_t __n, > __const wchar_t *__restrict __format, ...) > throw () ; > > > > > >extern int vfwprintf (__FILE *__restrict __s, > __const wchar_t *__restrict __format, > __gnuc_va_list __arg) > ; > > > > >extern int vwprintf (__const wchar_t *__restrict __format, > __gnuc_va_list __arg) > ; > > >extern int vswprintf (wchar_t *__restrict __s, size_t __n, > __const wchar_t *__restrict __format, > __gnuc_va_list __arg) > throw () ; > > > > > > >extern int fwscanf (__FILE *__restrict __stream, > __const wchar_t *__restrict __format, ...) > ; > > > > >extern int wscanf (__const wchar_t *__restrict __format, ...) > ; > >extern int swscanf (__const wchar_t *__restrict __s, > __const wchar_t *__restrict __format, ...) > throw () ; > > > > > > > > > > > >extern int vfwscanf (__FILE *__restrict __s, > __const wchar_t *__restrict __format, > __gnuc_va_list __arg) > ; > > > > >extern int vwscanf (__const wchar_t *__restrict __format, > __gnuc_va_list __arg) > ; > >extern int vswscanf (__const wchar_t *__restrict __s, > __const wchar_t *__restrict __format, > __gnuc_va_list __arg) > throw () ; > > > > > > > > > > >extern wint_t fgetwc (__FILE *__stream); >extern wint_t getwc (__FILE *__stream); > > > > > >extern wint_t getwchar (void); > > > > > > >extern wint_t fputwc (wchar_t __wc, __FILE *__stream); >extern wint_t putwc (wchar_t __wc, __FILE *__stream); > > > > > >extern wint_t putwchar (wchar_t __wc); > > > > > > > >extern wchar_t *fgetws (wchar_t *__restrict __ws, int __n, > __FILE *__restrict __stream); > > > > > >extern int fputws (__const wchar_t *__restrict __ws, > __FILE *__restrict __stream); > > > > > > >extern wint_t ungetwc (wint_t __wc, __FILE *__stream); > ># 739 "/usr/include/wchar.h" 3 4 >extern wint_t getwc_unlocked (__FILE *__stream); >extern wint_t getwchar_unlocked (void); > > > > > > > >extern wint_t fgetwc_unlocked (__FILE *__stream); > > > > > > > >extern wint_t fputwc_unlocked (wchar_t __wc, __FILE *__stream); ># 765 "/usr/include/wchar.h" 3 4 >extern wint_t putwc_unlocked (wchar_t __wc, __FILE *__stream); >extern wint_t putwchar_unlocked (wchar_t __wc); ># 775 "/usr/include/wchar.h" 3 4 >extern wchar_t *fgetws_unlocked (wchar_t *__restrict __ws, int __n, > __FILE *__restrict __stream); > > > > > > > >extern int fputws_unlocked (__const wchar_t *__restrict __ws, > __FILE *__restrict __stream); > > > > > > > >extern size_t wcsftime (wchar_t *__restrict __s, size_t __maxsize, > __const wchar_t *__restrict __format, > __const struct tm *__restrict __tp) throw (); > > > > > > > >extern size_t wcsftime_l (wchar_t *__restrict __s, size_t __maxsize, > __const wchar_t *__restrict __format, > __const struct tm *__restrict __tp, > __locale_t __loc) throw (); ># 820 "/usr/include/wchar.h" 3 4 >} ># 55 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/cwchar" 2 3 ># 69 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/cwchar" 3 >namespace std >{ > using ::mbstate_t; >} ># 133 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/cwchar" 3 >namespace std >{ > using ::wint_t; > > using ::btowc; > using ::fgetwc; > using ::fgetws; > using ::fputwc; > using ::fputws; > using ::fwide; > using ::fwprintf; > using ::fwscanf; > using ::getwc; > using ::getwchar; > using ::mbrlen; > using ::mbrtowc; > using ::mbsinit; > using ::mbsrtowcs; > using ::putwc; > using ::putwchar; > using ::swprintf; > using ::swscanf; > using ::ungetwc; > using ::vfwprintf; > using ::vfwscanf; > using ::vswprintf; > using ::vswscanf; > using ::vwprintf; > using ::vwscanf; > using ::wcrtomb; > using ::wcscat; > using ::wcscmp; > using ::wcscoll; > using ::wcscpy; > using ::wcscspn; > > > > using ::wcslen; > using ::wcsncat; > using ::wcsncmp; > using ::wcsncpy; > using ::wcsrtombs; > using ::wcsspn; > using ::wcstod; > using ::wcstof; > using ::wcstok; > using ::wcstol; > using ::wcstoul; > using ::wcsxfrm; > using ::wctob; > using ::wmemcmp; > using ::wmemcpy; > using ::wmemmove; > using ::wmemset; > using ::wprintf; > using ::wscanf; > > using ::wcschr; > > inline wchar_t* > wcschr(wchar_t* __p, wchar_t __c) > { return wcschr(const_cast<const wchar_t*>(__p), __c); } > > using ::wcspbrk; > > inline wchar_t* > wcspbrk(wchar_t* __s1, wchar_t* __s2) > { return wcspbrk(const_cast<const wchar_t*>(__s1), __s2); } > > using ::wcsrchr; > > inline wchar_t* > wcsrchr(wchar_t* __p, wchar_t __c) > { return wcsrchr(const_cast<const wchar_t*>(__p), __c); } > > using ::wcsstr; > > inline wchar_t* > wcsstr(wchar_t* __s1, wchar_t* __s2) > { return wcsstr(const_cast<const wchar_t*>(__s1), __s2); } > > using ::wmemchr; > > inline wchar_t* > wmemchr(wchar_t* __p, wchar_t __c, size_t __n) > { return wmemchr(const_cast<const wchar_t*>(__p), __c, __n); } >} > > > > > > > >namespace __gnu_cxx >{ > > > > > > using ::wcstold; ># 244 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/cwchar" 3 > using ::wcstoll; > using ::wcstoull; > >} > >namespace std >{ > using __gnu_cxx::wcstold; > using __gnu_cxx::wcstoll; > using __gnu_cxx::wcstoull; >} ># 46 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/fpos.h" 2 3 > >namespace std >{ > > > > > > > template<typename _StateT> > class fpos > { > public: > > typedef _StateT __state_type; > > private: > streamoff _M_off; > __state_type _M_st; > > public: > __state_type > state() const { return _M_st; } > > void > state(__state_type __st) { _M_st = __st; } > > > > fpos(): _M_off(streamoff()), _M_st(__state_type()) { } > > fpos(streamoff __off, __state_type __st = __state_type()) > : _M_off(__off), _M_st(__st) { } > > operator streamoff() const { return _M_off; } > > fpos& > operator+=(streamoff __off) { _M_off += __off; return *this; } > > fpos& > operator-=(streamoff __off) { _M_off -= __off; return *this; } > > fpos > operator+(streamoff __off) > { > fpos __t(*this); > __t += __off; > return __t; > } > > fpos > operator-(streamoff __off) > { > fpos __t(*this); > __t -= __off; > return __t; > } > > bool > operator==(const fpos& __pos) const > { return _M_off == __pos._M_off; } > > bool > operator!=(const fpos& __pos) const > { return _M_off != __pos._M_off; } > > streamoff > _M_position() const { return _M_off; } > > void > _M_position(streamoff __off) { _M_off = __off; } > }; > > > typedef fpos<mbstate_t> streampos; > > > typedef fpos<mbstate_t> wstreampos; > >} ># 50 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/iosfwd" 2 3 ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/functexcept.h" 1 3 ># 34 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/functexcept.h" 3 ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/exception_defines.h" 1 3 ># 35 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/functexcept.h" 2 3 > >namespace std >{ > > void > __throw_bad_exception(void); > > > void > __throw_bad_alloc(void); > > > void > __throw_bad_cast(void); > > void > __throw_bad_typeid(void); > > > void > __throw_logic_error(const char* __s); > > void > __throw_domain_error(const char* __s); > > void > __throw_invalid_argument(const char* __s); > > void > __throw_length_error(const char* __s); > > void > __throw_out_of_range(const char* __s); > > void > __throw_runtime_error(const char* __s); > > void > __throw_range_error(const char* __s); > > void > __throw_overflow_error(const char* __s); > > void > __throw_underflow_error(const char* __s); > > > void > __throw_ios_failure(const char* __s); >} ># 51 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/iosfwd" 2 3 > >namespace std >{ > template<typename _CharT, typename _Traits = char_traits<_CharT> > > class basic_ios; > > template<typename _CharT, typename _Traits = char_traits<_CharT> > > class basic_streambuf; > > template<typename _CharT, typename _Traits = char_traits<_CharT> > > class basic_istream; > > template<typename _CharT, typename _Traits = char_traits<_CharT> > > class basic_ostream; > > template<typename _CharT, typename _Traits = char_traits<_CharT> > > class basic_iostream; > > template<typename _CharT, typename _Traits = char_traits<_CharT>, > typename _Alloc = allocator<_CharT> > > class basic_stringbuf; > > template<typename _CharT, typename _Traits = char_traits<_CharT>, > typename _Alloc = allocator<_CharT> > > class basic_istringstream; > > template<typename _CharT, typename _Traits = char_traits<_CharT>, > typename _Alloc = allocator<_CharT> > > class basic_ostringstream; > > template<typename _CharT, typename _Traits = char_traits<_CharT>, > typename _Alloc = allocator<_CharT> > > class basic_stringstream; > > template<typename _CharT, typename _Traits = char_traits<_CharT> > > class basic_filebuf; > > template<typename _CharT, typename _Traits = char_traits<_CharT> > > class basic_ifstream; > > template<typename _CharT, typename _Traits = char_traits<_CharT> > > class basic_ofstream; > > template<typename _CharT, typename _Traits = char_traits<_CharT> > > class basic_fstream; > > template<typename _CharT, typename _Traits = char_traits<_CharT> > > class istreambuf_iterator; > > template<typename _CharT, typename _Traits = char_traits<_CharT> > > class ostreambuf_iterator; > > > > class ios_base; ># 136 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/iosfwd" 3 > typedef basic_ios<char> ios; > typedef basic_streambuf<char> streambuf; > typedef basic_istream<char> istream; > typedef basic_ostream<char> ostream; > typedef basic_iostream<char> iostream; > typedef basic_stringbuf<char> stringbuf; > typedef basic_istringstream<char> istringstream; > typedef basic_ostringstream<char> ostringstream; > typedef basic_stringstream<char> stringstream; > typedef basic_filebuf<char> filebuf; > typedef basic_ifstream<char> ifstream; > typedef basic_ofstream<char> ofstream; > typedef basic_fstream<char> fstream; > > > typedef basic_ios<wchar_t> wios; > typedef basic_streambuf<wchar_t> wstreambuf; > typedef basic_istream<wchar_t> wistream; > typedef basic_ostream<wchar_t> wostream; > typedef basic_iostream<wchar_t> wiostream; > typedef basic_stringbuf<wchar_t> wstringbuf; > typedef basic_istringstream<wchar_t> wistringstream; > typedef basic_ostringstream<wchar_t> wostringstream; > typedef basic_stringstream<wchar_t> wstringstream; > typedef basic_filebuf<wchar_t> wfilebuf; > typedef basic_ifstream<wchar_t> wifstream; > typedef basic_ofstream<wchar_t> wofstream; > typedef basic_fstream<wchar_t> wfstream; > > >} ># 71 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_algobase.h" 2 3 ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_pair.h" 1 3 ># 64 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_pair.h" 3 >namespace std >{ > > >template <class _T1, class _T2> >struct pair { > typedef _T1 first_type; > typedef _T2 second_type; > > _T1 first; > _T2 second; > > > > > pair() : first(), second() {} > > > > > pair(const _T1& __a, const _T2& __b) : first(__a), second(__b) {} > > > template <class _U1, class _U2> > pair(const pair<_U1, _U2>& __p) : first(__p.first), second(__p.second) {} >}; > > >template <class _T1, class _T2> >inline bool operator==(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) >{ > return __x.first == __y.first && __x.second == __y.second; >} > > >template <class _T1, class _T2> >inline bool operator<(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) >{ > return __x.first < __y.first || > (!(__y.first < __x.first) && __x.second < __y.second); >} > > >template <class _T1, class _T2> >inline bool operator!=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) { > return !(__x == __y); >} > > >template <class _T1, class _T2> >inline bool operator>(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) { > return __y < __x; >} > > >template <class _T1, class _T2> >inline bool operator<=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) { > return !(__y < __x); >} > > >template <class _T1, class _T2> >inline bool operator>=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) { > return !(__x < __y); >} ># 140 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_pair.h" 3 >template <class _T1, class _T2> > > >inline pair<_T1, _T2> make_pair(_T1 __x, _T2 __y) > > > >{ > return pair<_T1, _T2>(__x, __y); >} > >} ># 72 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_algobase.h" 2 3 ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/type_traits.h" 1 3 ># 52 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/type_traits.h" 3 > ># 53 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/type_traits.h" 3 ># 90 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/type_traits.h" 3 >struct __true_type {}; >struct __false_type {}; > >template <class _Tp> >struct __type_traits { > typedef __true_type this_dummy_member_must_be_first; ># 113 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/type_traits.h" 3 > typedef __false_type has_trivial_default_constructor; > typedef __false_type has_trivial_copy_constructor; > typedef __false_type has_trivial_assignment_operator; > typedef __false_type has_trivial_destructor; > typedef __false_type is_POD_type; >}; > > > > >template<> struct __type_traits<bool> { > typedef __true_type has_trivial_default_constructor; > typedef __true_type has_trivial_copy_constructor; > typedef __true_type has_trivial_assignment_operator; > typedef __true_type has_trivial_destructor; > typedef __true_type is_POD_type; >}; > >template<> struct __type_traits<char> { > typedef __true_type has_trivial_default_constructor; > typedef __true_type has_trivial_copy_constructor; > typedef __true_type has_trivial_assignment_operator; > typedef __true_type has_trivial_destructor; > typedef __true_type is_POD_type; >}; > >template<> struct __type_traits<signed char> { > typedef __true_type has_trivial_default_constructor; > typedef __true_type has_trivial_copy_constructor; > typedef __true_type has_trivial_assignment_operator; > typedef __true_type has_trivial_destructor; > typedef __true_type is_POD_type; >}; > >template<> struct __type_traits<unsigned char> { > typedef __true_type has_trivial_default_constructor; > typedef __true_type has_trivial_copy_constructor; > typedef __true_type has_trivial_assignment_operator; > typedef __true_type has_trivial_destructor; > typedef __true_type is_POD_type; >}; > >template<> struct __type_traits<wchar_t> { > typedef __true_type has_trivial_default_constructor; > typedef __true_type has_trivial_copy_constructor; > typedef __true_type has_trivial_assignment_operator; > typedef __true_type has_trivial_destructor; > typedef __true_type is_POD_type; >}; > >template<> struct __type_traits<short> { > typedef __true_type has_trivial_default_constructor; > typedef __true_type has_trivial_copy_constructor; > typedef __true_type has_trivial_assignment_operator; > typedef __true_type has_trivial_destructor; > typedef __true_type is_POD_type; >}; > >template<> struct __type_traits<unsigned short> { > typedef __true_type has_trivial_default_constructor; > typedef __true_type has_trivial_copy_constructor; > typedef __true_type has_trivial_assignment_operator; > typedef __true_type has_trivial_destructor; > typedef __true_type is_POD_type; >}; > >template<> struct __type_traits<int> { > typedef __true_type has_trivial_default_constructor; > typedef __true_type has_trivial_copy_constructor; > typedef __true_type has_trivial_assignment_operator; > typedef __true_type has_trivial_destructor; > typedef __true_type is_POD_type; >}; > >template<> struct __type_traits<unsigned int> { > typedef __true_type has_trivial_default_constructor; > typedef __true_type has_trivial_copy_constructor; > typedef __true_type has_trivial_assignment_operator; > typedef __true_type has_trivial_destructor; > typedef __true_type is_POD_type; >}; > >template<> struct __type_traits<long> { > typedef __true_type has_trivial_default_constructor; > typedef __true_type has_trivial_copy_constructor; > typedef __true_type has_trivial_assignment_operator; > typedef __true_type has_trivial_destructor; > typedef __true_type is_POD_type; >}; > >template<> struct __type_traits<unsigned long> { > typedef __true_type has_trivial_default_constructor; > typedef __true_type has_trivial_copy_constructor; > typedef __true_type has_trivial_assignment_operator; > typedef __true_type has_trivial_destructor; > typedef __true_type is_POD_type; >}; > >template<> struct __type_traits<long long> { > typedef __true_type has_trivial_default_constructor; > typedef __true_type has_trivial_copy_constructor; > typedef __true_type has_trivial_assignment_operator; > typedef __true_type has_trivial_destructor; > typedef __true_type is_POD_type; >}; > >template<> struct __type_traits<unsigned long long> { > typedef __true_type has_trivial_default_constructor; > typedef __true_type has_trivial_copy_constructor; > typedef __true_type has_trivial_assignment_operator; > typedef __true_type has_trivial_destructor; > typedef __true_type is_POD_type; >}; > >template<> struct __type_traits<float> { > typedef __true_type has_trivial_default_constructor; > typedef __true_type has_trivial_copy_constructor; > typedef __true_type has_trivial_assignment_operator; > typedef __true_type has_trivial_destructor; > typedef __true_type is_POD_type; >}; > >template<> struct __type_traits<double> { > typedef __true_type has_trivial_default_constructor; > typedef __true_type has_trivial_copy_constructor; > typedef __true_type has_trivial_assignment_operator; > typedef __true_type has_trivial_destructor; > typedef __true_type is_POD_type; >}; > >template<> struct __type_traits<long double> { > typedef __true_type has_trivial_default_constructor; > typedef __true_type has_trivial_copy_constructor; > typedef __true_type has_trivial_assignment_operator; > typedef __true_type has_trivial_destructor; > typedef __true_type is_POD_type; >}; > >template <class _Tp> >struct __type_traits<_Tp*> { > typedef __true_type has_trivial_default_constructor; > typedef __true_type has_trivial_copy_constructor; > typedef __true_type has_trivial_assignment_operator; > typedef __true_type has_trivial_destructor; > typedef __true_type is_POD_type; >}; > > > > > >template <class _Tp> struct _Is_integer { > typedef __false_type _Integral; >}; > >template<> struct _Is_integer<bool> { > typedef __true_type _Integral; >}; > >template<> struct _Is_integer<char> { > typedef __true_type _Integral; >}; > >template<> struct _Is_integer<signed char> { > typedef __true_type _Integral; >}; > >template<> struct _Is_integer<unsigned char> { > typedef __true_type _Integral; >}; > >template<> struct _Is_integer<wchar_t> { > typedef __true_type _Integral; >}; > >template<> struct _Is_integer<short> { > typedef __true_type _Integral; >}; > >template<> struct _Is_integer<unsigned short> { > typedef __true_type _Integral; >}; > >template<> struct _Is_integer<int> { > typedef __true_type _Integral; >}; > >template<> struct _Is_integer<unsigned int> { > typedef __true_type _Integral; >}; > >template<> struct _Is_integer<long> { > typedef __true_type _Integral; >}; > >template<> struct _Is_integer<unsigned long> { > typedef __true_type _Integral; >}; > >template<> struct _Is_integer<long long> { > typedef __true_type _Integral; >}; > >template<> struct _Is_integer<unsigned long long> { > typedef __true_type _Integral; >}; > >template<typename _Tp> struct _Is_normal_iterator { > typedef __false_type _Normal; >}; > > >namespace __gnu_cxx >{ > template<typename _Iterator, typename _Container> class __normal_iterator; >} > >template<typename _Iterator, typename _Container> >struct _Is_normal_iterator< __gnu_cxx::__normal_iterator<_Iterator, _Container> > { > typedef __true_type _Normal; >}; ># 73 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_algobase.h" 2 3 ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_iterator_base_types.h" 1 3 ># 67 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_iterator_base_types.h" 3 > ># 68 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_iterator_base_types.h" 3 > >namespace std >{ ># 80 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_iterator_base_types.h" 3 > struct input_iterator_tag {}; > > struct output_iterator_tag {}; > > struct forward_iterator_tag : public input_iterator_tag {}; > > struct bidirectional_iterator_tag : public forward_iterator_tag {}; > > struct random_access_iterator_tag : public bidirectional_iterator_tag {}; ># 102 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_iterator_base_types.h" 3 > template<typename _Category, typename _Tp, typename _Distance = ptrdiff_t, > typename _Pointer = _Tp*, typename _Reference = _Tp&> > struct iterator > { > > typedef _Category iterator_category; > > typedef _Tp value_type; > > typedef _Distance difference_type; > > typedef _Pointer pointer; > > typedef _Reference reference; > }; > > > > > > > > template<typename _Iterator> > struct iterator_traits { > typedef typename _Iterator::iterator_category iterator_category; > typedef typename _Iterator::value_type value_type; > typedef typename _Iterator::difference_type difference_type; > typedef typename _Iterator::pointer pointer; > typedef typename _Iterator::reference reference; > }; > > template<typename _Tp> > struct iterator_traits<_Tp*> { > typedef random_access_iterator_tag iterator_category; > typedef _Tp value_type; > typedef ptrdiff_t difference_type; > typedef _Tp* pointer; > typedef _Tp& reference; > }; > > template<typename _Tp> > struct iterator_traits<const _Tp*> { > typedef random_access_iterator_tag iterator_category; > typedef _Tp value_type; > typedef ptrdiff_t difference_type; > typedef const _Tp* pointer; > typedef const _Tp& reference; > }; > > > > > > > > template<typename _Iter> > inline typename iterator_traits<_Iter>::iterator_category > __iterator_category(const _Iter&) > { return typename iterator_traits<_Iter>::iterator_category(); } > >} ># 74 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_algobase.h" 2 3 ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_iterator_base_funcs.h" 1 3 ># 67 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_iterator_base_funcs.h" 3 > ># 68 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_iterator_base_funcs.h" 3 ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/concept_check.h" 1 3 ># 38 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/concept_check.h" 3 > ># 39 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/concept_check.h" 3 ># 69 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_iterator_base_funcs.h" 2 3 > >namespace std >{ > template<typename _InputIterator> > inline typename iterator_traits<_InputIterator>::difference_type > __distance(_InputIterator __first, _InputIterator __last, > input_iterator_tag) > { > > > > typename iterator_traits<_InputIterator>::difference_type __n = 0; > while (__first != __last) { > ++__first; ++__n; > } > return __n; > } > > template<typename _RandomAccessIterator> > inline typename iterator_traits<_RandomAccessIterator>::difference_type > __distance(_RandomAccessIterator __first, _RandomAccessIterator __last, > random_access_iterator_tag) > { > > > return __last - __first; > } ># 109 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_iterator_base_funcs.h" 3 > template<typename _InputIterator> > inline typename iterator_traits<_InputIterator>::difference_type > distance(_InputIterator __first, _InputIterator __last) > { > > return __distance(__first, __last, __iterator_category(__first)); > } > > template<typename _InputIter, typename _Distance> > inline void > __advance(_InputIter& __i, _Distance __n, input_iterator_tag) > { > > > while (__n--) ++__i; > } > > template<typename _BidirectionalIterator, typename _Distance> > inline void > __advance(_BidirectionalIterator& __i, _Distance __n, > bidirectional_iterator_tag) > { > > > > if (__n > 0) > while (__n--) ++__i; > else > while (__n++) --__i; > } > > template<typename _RandomAccessIterator, typename _Distance> > inline void > __advance(_RandomAccessIterator& __i, _Distance __n, > random_access_iterator_tag) > { > > > __i += __n; > } ># 162 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_iterator_base_funcs.h" 3 > template<typename _InputIterator, typename _Distance> > inline void > advance(_InputIterator& __i, _Distance __n) > { > > __advance(__i, __n, __iterator_category(__i)); > } >} ># 75 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_algobase.h" 2 3 ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_iterator.h" 1 3 ># 68 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_iterator.h" 3 >namespace std >{ ># 89 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_iterator.h" 3 > template<typename _Iterator> > class reverse_iterator > : public iterator<typename iterator_traits<_Iterator>::iterator_category, > typename iterator_traits<_Iterator>::value_type, > typename iterator_traits<_Iterator>::difference_type, > typename iterator_traits<_Iterator>::pointer, > typename iterator_traits<_Iterator>::reference> > { > protected: > _Iterator current; > > public: > typedef _Iterator iterator_type; > typedef typename iterator_traits<_Iterator>::difference_type > difference_type; > typedef typename iterator_traits<_Iterator>::reference reference; > typedef typename iterator_traits<_Iterator>::pointer pointer; > > public: > > > > > > > reverse_iterator() : current() { } > > > > > explicit > reverse_iterator(iterator_type __x) : current(__x) { } > > > > > reverse_iterator(const reverse_iterator& __x) > : current(__x.current) { } > > > > > > template<typename _Iter> > reverse_iterator(const reverse_iterator<_Iter>& __x) > : current(__x.base()) { } > > > > > iterator_type > base() const { return current; } > > > > > > > reference > operator*() const > { > _Iterator __tmp = current; > return *--__tmp; > } > > > > > > > pointer > operator->() const { return &(operator*()); } > > > > > > > reverse_iterator& > operator++() > { > --current; > return *this; > } > > > > > > > reverse_iterator > operator++(int) > { > reverse_iterator __tmp = *this; > --current; > return __tmp; > } > > > > > > > reverse_iterator& > operator--() > { > ++current; > return *this; > } > > > > > > > reverse_iterator operator--(int) > { > reverse_iterator __tmp = *this; > ++current; > return __tmp; > } > > > > > > > reverse_iterator > operator+(difference_type __n) const > { return reverse_iterator(current - __n); } > > > > > > > reverse_iterator& > operator+=(difference_type __n) > { > current -= __n; > return *this; > } > > > > > > > reverse_iterator > operator-(difference_type __n) const > { return reverse_iterator(current + __n); } > > > > > > > reverse_iterator& > operator-=(difference_type __n) > { > current += __n; > return *this; > } > > > > > > > reference > operator[](difference_type __n) const { return *(*this + __n); } > }; ># 272 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_iterator.h" 3 > template<typename _Iterator> > inline bool > operator==(const reverse_iterator<_Iterator>& __x, > const reverse_iterator<_Iterator>& __y) > { return __x.base() == __y.base(); } > > template<typename _Iterator> > inline bool > operator<(const reverse_iterator<_Iterator>& __x, > const reverse_iterator<_Iterator>& __y) > { return __y.base() < __x.base(); } > > template<typename _Iterator> > inline bool > operator!=(const reverse_iterator<_Iterator>& __x, > const reverse_iterator<_Iterator>& __y) > { return !(__x == __y); } > > template<typename _Iterator> > inline bool > operator>(const reverse_iterator<_Iterator>& __x, > const reverse_iterator<_Iterator>& __y) > { return __y < __x; } > > template<typename _Iterator> > inline bool > operator<=(const reverse_iterator<_Iterator>& __x, > const reverse_iterator<_Iterator>& __y) > { return !(__y < __x); } > > template<typename _Iterator> > inline bool > operator>=(const reverse_iterator<_Iterator>& __x, > const reverse_iterator<_Iterator>& __y) > { return !(__x < __y); } > > template<typename _Iterator> > inline typename reverse_iterator<_Iterator>::difference_type > operator-(const reverse_iterator<_Iterator>& __x, > const reverse_iterator<_Iterator>& __y) > { return __y.base() - __x.base(); } > > template<typename _Iterator> > inline reverse_iterator<_Iterator> > operator+(typename reverse_iterator<_Iterator>::difference_type __n, > const reverse_iterator<_Iterator>& __x) > { return reverse_iterator<_Iterator>(__x.base() - __n); } ># 332 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_iterator.h" 3 > template<typename _Container> > class back_insert_iterator > : public iterator<output_iterator_tag, void, void, void, void> > { > protected: > _Container* container; > > public: > > typedef _Container container_type; > > > explicit > back_insert_iterator(_Container& __x) : container(&__x) { } ># 358 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_iterator.h" 3 > back_insert_iterator& > operator=(typename _Container::const_reference __value) > { > container->push_back(__value); > return *this; > } > > > back_insert_iterator& > operator*() { return *this; } > > > back_insert_iterator& > operator++() { return *this; } > > > back_insert_iterator > operator++(int) { return *this; } > }; ># 389 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_iterator.h" 3 > template<typename _Container> > inline back_insert_iterator<_Container> > back_inserter(_Container& __x) > { return back_insert_iterator<_Container>(__x); } ># 404 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_iterator.h" 3 > template<typename _Container> > class front_insert_iterator > : public iterator<output_iterator_tag, void, void, void, void> > { > protected: > _Container* container; > > public: > > typedef _Container container_type; > > > explicit front_insert_iterator(_Container& __x) : container(&__x) { } ># 429 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_iterator.h" 3 > front_insert_iterator& > operator=(typename _Container::const_reference __value) > { > container->push_front(__value); > return *this; > } > > > front_insert_iterator& > operator*() { return *this; } > > > front_insert_iterator& > operator++() { return *this; } > > > front_insert_iterator > operator++(int) { return *this; } > }; ># 460 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_iterator.h" 3 > template<typename _Container> > inline front_insert_iterator<_Container> > front_inserter(_Container& __x) > { return front_insert_iterator<_Container>(__x); } ># 479 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_iterator.h" 3 > template<typename _Container> > class insert_iterator > : public iterator<output_iterator_tag, void, void, void, void> > { > protected: > _Container* container; > typename _Container::iterator iter; > > public: > > typedef _Container container_type; > > > > > > insert_iterator(_Container& __x, typename _Container::iterator __i) > : container(&__x), iter(__i) {} ># 521 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_iterator.h" 3 > insert_iterator& > operator=(const typename _Container::const_reference __value) > { > iter = container->insert(iter, __value); > ++iter; > return *this; > } > > > insert_iterator& > operator*() { return *this; } > > > insert_iterator& > operator++() { return *this; } > > > insert_iterator& > operator++(int) { return *this; } > }; ># 553 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_iterator.h" 3 > template<typename _Container, typename _Iterator> > inline insert_iterator<_Container> > inserter(_Container& __x, _Iterator __i) > { > return insert_iterator<_Container>(__x, > typename _Container::iterator(__i)); > } >} > >namespace __gnu_cxx >{ > > > > > > > > using std::iterator_traits; > using std::iterator; > template<typename _Iterator, typename _Container> > class __normal_iterator > : public iterator<typename iterator_traits<_Iterator>::iterator_category, > typename iterator_traits<_Iterator>::value_type, > typename iterator_traits<_Iterator>::difference_type, > typename iterator_traits<_Iterator>::pointer, > typename iterator_traits<_Iterator>::reference> > { > protected: > _Iterator _M_current; > > public: > typedef typename iterator_traits<_Iterator>::difference_type > difference_type; > typedef typename iterator_traits<_Iterator>::reference reference; > typedef typename iterator_traits<_Iterator>::pointer pointer; > > __normal_iterator() : _M_current(_Iterator()) { } > > explicit > __normal_iterator(const _Iterator& __i) : _M_current(__i) { } > > > template<typename _Iter> > inline __normal_iterator(const __normal_iterator<_Iter, _Container>& __i) > : _M_current(__i.base()) { } > > > reference > operator*() const { return *_M_current; } > > pointer > operator->() const { return _M_current; } > > __normal_iterator& > operator++() { ++_M_current; return *this; } > > __normal_iterator > operator++(int) { return __normal_iterator(_M_current++); } > > > __normal_iterator& > operator--() { --_M_current; return *this; } > > __normal_iterator > operator--(int) { return __normal_iterator(_M_current--); } > > > reference > operator[](const difference_type& __n) const > { return _M_current[__n]; } > > __normal_iterator& > operator+=(const difference_type& __n) > { _M_current += __n; return *this; } > > __normal_iterator > operator+(const difference_type& __n) const > { return __normal_iterator(_M_current + __n); } > > __normal_iterator& > operator-=(const difference_type& __n) > { _M_current -= __n; return *this; } > > __normal_iterator > operator-(const difference_type& __n) const > { return __normal_iterator(_M_current - __n); } > > const _Iterator& > base() const { return _M_current; } > }; ># 654 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_iterator.h" 3 > template<typename _IteratorL, typename _IteratorR, typename _Container> > inline bool > operator==(const __normal_iterator<_IteratorL, _Container>& __lhs, > const __normal_iterator<_IteratorR, _Container>& __rhs) > { return __lhs.base() == __rhs.base(); } > > template<typename _Iterator, typename _Container> > inline bool > operator==(const __normal_iterator<_Iterator, _Container>& __lhs, > const __normal_iterator<_Iterator, _Container>& __rhs) > { return __lhs.base() == __rhs.base(); } > > template<typename _IteratorL, typename _IteratorR, typename _Container> > inline bool > operator!=(const __normal_iterator<_IteratorL, _Container>& __lhs, > const __normal_iterator<_IteratorR, _Container>& __rhs) > { return __lhs.base() != __rhs.base(); } > > template<typename _Iterator, typename _Container> > inline bool > operator!=(const __normal_iterator<_Iterator, _Container>& __lhs, > const __normal_iterator<_Iterator, _Container>& __rhs) > { return __lhs.base() != __rhs.base(); } > > > template<typename _IteratorL, typename _IteratorR, typename _Container> > inline bool > operator<(const __normal_iterator<_IteratorL, _Container>& __lhs, > const __normal_iterator<_IteratorR, _Container>& __rhs) > { return __lhs.base() < __rhs.base(); } > > template<typename _Iterator, typename _Container> > inline bool > operator<(const __normal_iterator<_Iterator, _Container>& __lhs, > const __normal_iterator<_Iterator, _Container>& __rhs) > { return __lhs.base() < __rhs.base(); } > > template<typename _IteratorL, typename _IteratorR, typename _Container> > inline bool > operator>(const __normal_iterator<_IteratorL, _Container>& __lhs, > const __normal_iterator<_IteratorR, _Container>& __rhs) > { return __lhs.base() > __rhs.base(); } > > template<typename _Iterator, typename _Container> > inline bool > operator>(const __normal_iterator<_Iterator, _Container>& __lhs, > const __normal_iterator<_Iterator, _Container>& __rhs) > { return __lhs.base() > __rhs.base(); } > > template<typename _IteratorL, typename _IteratorR, typename _Container> > inline bool > operator<=(const __normal_iterator<_IteratorL, _Container>& __lhs, > const __normal_iterator<_IteratorR, _Container>& __rhs) > { return __lhs.base() <= __rhs.base(); } > > template<typename _Iterator, typename _Container> > inline bool > operator<=(const __normal_iterator<_Iterator, _Container>& __lhs, > const __normal_iterator<_Iterator, _Container>& __rhs) > { return __lhs.base() <= __rhs.base(); } > > template<typename _IteratorL, typename _IteratorR, typename _Container> > inline bool > operator>=(const __normal_iterator<_IteratorL, _Container>& __lhs, > const __normal_iterator<_IteratorR, _Container>& __rhs) > { return __lhs.base() >= __rhs.base(); } > > template<typename _Iterator, typename _Container> > inline bool > operator>=(const __normal_iterator<_Iterator, _Container>& __lhs, > const __normal_iterator<_Iterator, _Container>& __rhs) > { return __lhs.base() >= __rhs.base(); } > > > > > > template<typename _IteratorL, typename _IteratorR, typename _Container> > inline typename __normal_iterator<_IteratorL, _Container>::difference_type > operator-(const __normal_iterator<_IteratorL, _Container>& __lhs, > const __normal_iterator<_IteratorR, _Container>& __rhs) > { return __lhs.base() - __rhs.base(); } > > template<typename _Iterator, typename _Container> > inline __normal_iterator<_Iterator, _Container> > operator+(typename __normal_iterator<_Iterator, _Container>::difference_type __n, > const __normal_iterator<_Iterator, _Container>& __i) > { return __normal_iterator<_Iterator, _Container>(__i.base() + __n); } >} ># 76 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_algobase.h" 2 3 > > >namespace std >{ ># 91 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_algobase.h" 3 > template<typename _ForwardIter1, typename _ForwardIter2> > inline void > iter_swap(_ForwardIter1 __a, _ForwardIter2 __b) > { > typedef typename iterator_traits<_ForwardIter1>::value_type _ValueType1; > typedef typename iterator_traits<_ForwardIter2>::value_type _ValueType2; > > > > > > > > _ValueType1 __tmp = *__a; > *__a = *__b; > *__b = __tmp; > } ># 118 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_algobase.h" 3 > template<typename _Tp> > inline void > swap(_Tp& __a, _Tp& __b) > { > > > > _Tp __tmp = __a; > __a = __b; > __b = __tmp; > } ># 146 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_algobase.h" 3 > template<typename _Tp> > inline const _Tp& > min(const _Tp& __a, const _Tp& __b) > { > > > > if (__b < __a) return __b; return __a; > } ># 166 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_algobase.h" 3 > template<typename _Tp> > inline const _Tp& > max(const _Tp& __a, const _Tp& __b) > { > > > > if (__a < __b) return __b; return __a; > } ># 186 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_algobase.h" 3 > template<typename _Tp, typename _Compare> > inline const _Tp& > min(const _Tp& __a, const _Tp& __b, _Compare __comp) > { > > if (__comp(__b, __a)) return __b; return __a; > } ># 204 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_algobase.h" 3 > template<typename _Tp, typename _Compare> > inline const _Tp& > max(const _Tp& __a, const _Tp& __b, _Compare __comp) > { > > if (__comp(__a, __b)) return __b; return __a; > } ># 221 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_algobase.h" 3 > template<typename _InputIter, typename _OutputIter> > inline _OutputIter > __copy(_InputIter __first, _InputIter __last, > _OutputIter __result, > input_iterator_tag) > { > for ( ; __first != __last; ++__result, ++__first) > *__result = *__first; > return __result; > } > > template<typename _RandomAccessIter, typename _OutputIter> > inline _OutputIter > __copy(_RandomAccessIter __first, _RandomAccessIter __last, > _OutputIter __result, > random_access_iterator_tag) > { > typedef typename iterator_traits<_RandomAccessIter>::difference_type > _Distance; > for (_Distance __n = __last - __first; __n > 0; --__n) { > *__result = *__first; > ++__first; > ++__result; > } > return __result; > } > > template<typename _Tp> > inline _Tp* > __copy_trivial(const _Tp* __first, const _Tp* __last, _Tp* __result) > { > memmove(__result, __first, sizeof(_Tp) * (__last - __first)); > return __result + (__last - __first); > } > > template<typename _InputIter, typename _OutputIter> > inline _OutputIter > __copy_aux2(_InputIter __first, _InputIter __last, > _OutputIter __result, __false_type) > { return __copy(__first, __last, __result, __iterator_category(__first)); } > > template<typename _InputIter, typename _OutputIter> > inline _OutputIter > __copy_aux2(_InputIter __first, _InputIter __last, > _OutputIter __result, __true_type) > { return __copy(__first, __last, __result, __iterator_category(__first)); } > > template<typename _Tp> > inline _Tp* > __copy_aux2(_Tp* __first, _Tp* __last, > _Tp* __result, __true_type) > { return __copy_trivial(__first, __last, __result); } > > template<typename _Tp> > inline _Tp* > __copy_aux2(const _Tp* __first, const _Tp* __last, > _Tp* __result, __true_type) > { return __copy_trivial(__first, __last, __result); } > > template<typename _InputIter, typename _OutputIter> > inline _OutputIter > __copy_ni2(_InputIter __first, _InputIter __last, > _OutputIter __result, __true_type) > { > typedef typename iterator_traits<_InputIter>::value_type > _ValueType; > typedef typename __type_traits<_ValueType>::has_trivial_assignment_operator > _Trivial; > return _OutputIter(__copy_aux2(__first, __last, > __result.base(), > _Trivial())); > } > > template<typename _InputIter, typename _OutputIter> > inline _OutputIter > __copy_ni2(_InputIter __first, _InputIter __last, > _OutputIter __result, __false_type) > { > typedef typename iterator_traits<_InputIter>::value_type > _ValueType; > typedef typename __type_traits<_ValueType>::has_trivial_assignment_operator > _Trivial; > return __copy_aux2(__first, __last, > __result, > _Trivial()); > } > > template<typename _InputIter, typename _OutputIter> > inline _OutputIter > __copy_ni1(_InputIter __first, _InputIter __last, > _OutputIter __result, __true_type) > { > typedef typename _Is_normal_iterator<_OutputIter>::_Normal __Normal; > return __copy_ni2(__first.base(), __last.base(), __result, __Normal()); > } > > template<typename _InputIter, typename _OutputIter> > inline _OutputIter > __copy_ni1(_InputIter __first, _InputIter __last, > _OutputIter __result, __false_type) > { > typedef typename _Is_normal_iterator<_OutputIter>::_Normal __Normal; > return __copy_ni2(__first, __last, __result, __Normal()); > } ># 339 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_algobase.h" 3 > template<typename _InputIter, typename _OutputIter> > inline _OutputIter > copy(_InputIter __first, _InputIter __last, _OutputIter __result) > { > > > > > > typedef typename _Is_normal_iterator<_InputIter>::_Normal __Normal; > return __copy_ni1(__first, __last, __result, __Normal()); > } > > > > > template<typename _BidirectionalIter1, typename _BidirectionalIter2> > inline _BidirectionalIter2 > __copy_backward(_BidirectionalIter1 __first, _BidirectionalIter1 __last, > _BidirectionalIter2 __result, > bidirectional_iterator_tag) > { > while (__first != __last) > *--__result = *--__last; > return __result; > } > > template<typename _RandomAccessIter, typename _BidirectionalIter> > inline _BidirectionalIter > __copy_backward(_RandomAccessIter __first, _RandomAccessIter __last, > _BidirectionalIter __result, > random_access_iterator_tag) > { > typename iterator_traits<_RandomAccessIter>::difference_type __n; > for (__n = __last - __first; __n > 0; --__n) > *--__result = *--__last; > return __result; > } > > > > > > > > template<typename _BidirectionalIter1, typename _BidirectionalIter2, > typename _BoolType> > struct __copy_backward_dispatch > { > static _BidirectionalIter2 > copy(_BidirectionalIter1 __first, _BidirectionalIter1 __last, > _BidirectionalIter2 __result) > { > return __copy_backward(__first, __last, > __result, > __iterator_category(__first)); > } > }; > > template<typename _Tp> > struct __copy_backward_dispatch<_Tp*, _Tp*, __true_type> > { > static _Tp* > copy(const _Tp* __first, const _Tp* __last, _Tp* __result) > { > const ptrdiff_t _Num = __last - __first; > memmove(__result - _Num, __first, sizeof(_Tp) * _Num); > return __result - _Num; > } > }; > > template<typename _Tp> > struct __copy_backward_dispatch<const _Tp*, _Tp*, __true_type> > { > static _Tp* > copy(const _Tp* __first, const _Tp* __last, _Tp* __result) > { > return __copy_backward_dispatch<_Tp*, _Tp*, __true_type> > ::copy(__first, __last, __result); > } > }; > > template<typename _BI1, typename _BI2> > inline _BI2 > __copy_backward_aux(_BI1 __first, _BI1 __last, _BI2 __result) > { > typedef typename __type_traits<typename iterator_traits<_BI2>::value_type> > ::has_trivial_assignment_operator _Trivial; > return __copy_backward_dispatch<_BI1, _BI2, _Trivial> > ::copy(__first, __last, __result); > } > > template <typename _BI1, typename _BI2> > inline _BI2 > __copy_backward_output_normal_iterator(_BI1 __first, _BI1 __last, > _BI2 __result, __true_type) > { return _BI2(__copy_backward_aux(__first, __last, __result.base())); } > > template <typename _BI1, typename _BI2> > inline _BI2 > __copy_backward_output_normal_iterator(_BI1 __first, _BI1 __last, > _BI2 __result, __false_type) > { return __copy_backward_aux(__first, __last, __result); } > > template <typename _BI1, typename _BI2> > inline _BI2 > __copy_backward_input_normal_iterator(_BI1 __first, _BI1 __last, > _BI2 __result, __true_type) > { > typedef typename _Is_normal_iterator<_BI2>::_Normal __Normal; > return __copy_backward_output_normal_iterator(__first.base(), __last.base(), > __result, __Normal()); > } > > template <typename _BI1, typename _BI2> > inline _BI2 > __copy_backward_input_normal_iterator(_BI1 __first, _BI1 __last, > _BI2 __result, __false_type) > { > typedef typename _Is_normal_iterator<_BI2>::_Normal __Normal; > return __copy_backward_output_normal_iterator(__first, __last, __result, > __Normal()); > } ># 477 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_algobase.h" 3 > template <typename _BI1, typename _BI2> > inline _BI2 > copy_backward(_BI1 __first, _BI1 __last, _BI2 __result) > { > > > > > > > > typedef typename _Is_normal_iterator<_BI1>::_Normal __Normal; > return __copy_backward_input_normal_iterator(__first, __last, __result, > __Normal()); > } ># 509 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_algobase.h" 3 > template<typename _ForwardIter, typename _Tp> > void > fill(_ForwardIter __first, _ForwardIter __last, const _Tp& __value) > { > > > > for ( ; __first != __last; ++__first) > *__first = __value; > } ># 531 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_algobase.h" 3 > template<typename _OutputIter, typename _Size, typename _Tp> > _OutputIter > fill_n(_OutputIter __first, _Size __n, const _Tp& __value) > { > > > > for ( ; __n > 0; --__n, ++__first) > *__first = __value; > return __first; > } > > > > inline void > fill(unsigned char* __first, unsigned char* __last, const unsigned char& __c) > { > unsigned char __tmp = __c; > memset(__first, __tmp, __last - __first); > } > > inline void > fill(signed char* __first, signed char* __last, const signed char& __c) > { > signed char __tmp = __c; > memset(__first, static_cast<unsigned char>(__tmp), __last - __first); > } > > inline void > fill(char* __first, char* __last, const char& __c) > { > char __tmp = __c; > memset(__first, static_cast<unsigned char>(__tmp), __last - __first); > } > > template<typename _Size> > inline unsigned char* > fill_n(unsigned char* __first, _Size __n, const unsigned char& __c) > { > fill(__first, __first + __n, __c); > return __first + __n; > } > > template<typename _Size> > inline signed char* > fill_n(char* __first, _Size __n, const signed char& __c) > { > fill(__first, __first + __n, __c); > return __first + __n; > } > > template<typename _Size> > inline char* > fill_n(char* __first, _Size __n, const char& __c) > { > fill(__first, __first + __n, __c); > return __first + __n; > } ># 606 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_algobase.h" 3 > template<typename _InputIter1, typename _InputIter2> > pair<_InputIter1, _InputIter2> > mismatch(_InputIter1 __first1, _InputIter1 __last1, > _InputIter2 __first2) > { > > > > > > > > > while (__first1 != __last1 && *__first1 == *__first2) { > ++__first1; > ++__first2; > } > return pair<_InputIter1, _InputIter2>(__first1, __first2); > } ># 640 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_algobase.h" 3 > template<typename _InputIter1, typename _InputIter2, typename _BinaryPredicate> > pair<_InputIter1, _InputIter2> > mismatch(_InputIter1 __first1, _InputIter1 __last1, > _InputIter2 __first2, > _BinaryPredicate __binary_pred) > { > > > > > while (__first1 != __last1 && __binary_pred(*__first1, *__first2)) { > ++__first1; > ++__first2; > } > return pair<_InputIter1, _InputIter2>(__first1, __first2); > } ># 668 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_algobase.h" 3 > template<typename _InputIter1, typename _InputIter2> > inline bool > equal(_InputIter1 __first1, _InputIter1 __last1, > _InputIter2 __first2) > { > > > > > > > > for ( ; __first1 != __last1; ++__first1, ++__first2) > if (!(*__first1 == *__first2)) > return false; > return true; > } ># 699 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_algobase.h" 3 > template<typename _InputIter1, typename _InputIter2, typename _BinaryPredicate> > inline bool > equal(_InputIter1 __first1, _InputIter1 __last1, > _InputIter2 __first2, > _BinaryPredicate __binary_pred) > { > > > > > for ( ; __first1 != __last1; ++__first1, ++__first2) > if (!__binary_pred(*__first1, *__first2)) > return false; > return true; > } ># 732 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_algobase.h" 3 > template<typename _InputIter1, typename _InputIter2> > bool > lexicographical_compare(_InputIter1 __first1, _InputIter1 __last1, > _InputIter2 __first2, _InputIter2 __last2) > { > > > > > > > > > for ( ; __first1 != __last1 && __first2 != __last2 > ; ++__first1, ++__first2) { > if (*__first1 < *__first2) > return true; > if (*__first2 < *__first1) > return false; > } > return __first1 == __last1 && __first2 != __last2; > } ># 767 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_algobase.h" 3 > template<typename _InputIter1, typename _InputIter2, typename _Compare> > bool > lexicographical_compare(_InputIter1 __first1, _InputIter1 __last1, > _InputIter2 __first2, _InputIter2 __last2, > _Compare __comp) > { > > > > > for ( ; __first1 != __last1 && __first2 != __last2 > ; ++__first1, ++__first2) { > if (__comp(*__first1, *__first2)) > return true; > if (__comp(*__first2, *__first1)) > return false; > } > return __first1 == __last1 && __first2 != __last2; > } > > inline bool > lexicographical_compare(const unsigned char* __first1, const unsigned char* __last1, > const unsigned char* __first2, const unsigned char* __last2) > { > const size_t __len1 = __last1 - __first1; > const size_t __len2 = __last2 - __first2; > const int __result = memcmp(__first1, __first2, min(__len1, __len2)); > return __result != 0 ? __result < 0 : __len1 < __len2; > } > > inline bool > lexicographical_compare(const char* __first1, const char* __last1, > const char* __first2, const char* __last2) > { > > return lexicographical_compare((const signed char*) __first1, > (const signed char*) __last1, > (const signed char*) __first2, > (const signed char*) __last2); > > > > > > > } > >} ># 68 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/vector" 2 3 ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_alloc.h" 1 3 ># 88 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_alloc.h" 3 ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/functexcept.h" 1 3 ># 34 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/functexcept.h" 3 ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/exception_defines.h" 1 3 ># 35 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/functexcept.h" 2 3 > >namespace std >{ > > void > __throw_bad_exception(void); > > > void > __throw_bad_alloc(void); > > > void > __throw_bad_cast(void); > > void > __throw_bad_typeid(void); > > > void > __throw_logic_error(const char* __s); > > void > __throw_domain_error(const char* __s); > > void > __throw_invalid_argument(const char* __s); > > void > __throw_length_error(const char* __s); > > void > __throw_out_of_range(const char* __s); > > void > __throw_runtime_error(const char* __s); > > void > __throw_range_error(const char* __s); > > void > __throw_overflow_error(const char* __s); > > void > __throw_underflow_error(const char* __s); > > > void > __throw_ios_failure(const char* __s); >} ># 89 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_alloc.h" 2 3 ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_threads.h" 1 3 ># 54 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_threads.h" 3 >namespace std >{ > > > > > struct _Refcount_Base > { > > typedef size_t _RC_t; > > > volatile _RC_t _M_ref_count; > > > __gthread_mutex_t _M_ref_count_lock; > > _Refcount_Base(_RC_t __n) : _M_ref_count(__n) > { > > __gthread_mutex_t __tmp = {0, 0, 0, PTHREAD_MUTEX_TIMED_NP, { 0, 0 }}; > _M_ref_count_lock = __tmp; > > > > > > } > > void > _M_incr() > { > __gthread_mutex_lock(&_M_ref_count_lock); > ++_M_ref_count; > __gthread_mutex_unlock(&_M_ref_count_lock); > } > > _RC_t > _M_decr() > { > __gthread_mutex_lock(&_M_ref_count_lock); > volatile _RC_t __tmp = --_M_ref_count; > __gthread_mutex_unlock(&_M_ref_count_lock); > return __tmp; > } > }; ># 109 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_threads.h" 3 > template<int __dummy> > struct _Swap_lock_struct > { static __gthread_mutex_t _S_swap_lock; }; > > template<int __dummy> > __gthread_mutex_t > _Swap_lock_struct<__dummy>::_S_swap_lock = {0, 0, 0, PTHREAD_MUTEX_TIMED_NP, { 0, 0 }}; > > > > inline unsigned long > _Atomic_swap(unsigned long * __p, unsigned long __q) > { > __gthread_mutex_lock(&_Swap_lock_struct<0>::_S_swap_lock); > unsigned long __result = *__p; > *__p = __q; > __gthread_mutex_unlock(&_Swap_lock_struct<0>::_S_swap_lock); > return __result; > } > >} ># 155 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_threads.h" 3 >namespace std >{ > struct _STL_mutex_lock > { > > > > > > __gthread_mutex_t _M_lock; > > void > _M_initialize() > { ># 192 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_threads.h" 3 > } > > void > _M_acquire_lock() > { > > > > __gthread_mutex_lock(&_M_lock); > } > > void > _M_release_lock() > { > > > > __gthread_mutex_unlock(&_M_lock); > } > }; ># 228 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_threads.h" 3 > struct _STL_auto_lock > { > _STL_mutex_lock& _M_lock; > > _STL_auto_lock(_STL_mutex_lock& __lock) : _M_lock(__lock) > { _M_lock._M_acquire_lock(); } > > ~_STL_auto_lock() { _M_lock._M_release_lock(); } > > private: > void operator=(const _STL_auto_lock&); > _STL_auto_lock(const _STL_auto_lock&); > }; > >} ># 90 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_alloc.h" 2 3 > ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/i686-pc-linux-gnu/bits/atomicity.h" 1 3 ># 33 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/i686-pc-linux-gnu/bits/atomicity.h" 3 >typedef int _Atomic_word; > >static inline _Atomic_word >__attribute__ ((__unused__)) >__exchange_and_add (volatile _Atomic_word *__mem, int __val) >{ > register _Atomic_word __result; > __asm__ __volatile__ ("lock; xadd{l} {%0,%1|%1,%0}" > : "=r" (__result), "=m" (*__mem) > : "0" (__val), "m"(*__mem) > : "memory"); > return __result; >} > >static inline void >__attribute__ ((__unused__)) >__atomic_add (volatile _Atomic_word* __mem, int __val) >{ > __asm__ __volatile__ ("lock; add{l} {%1,%0|%0,%1}" > : "=m" (*__mem) > : "ir" (__val), "m"(*__mem) > : "memory"); >} ># 92 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_alloc.h" 2 3 > >namespace std >{ ># 103 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_alloc.h" 3 > class __new_alloc > { > public: > static void* > allocate(size_t __n) > { return ::operator new(__n); } > > static void > deallocate(void* __p, size_t) > { ::operator delete(__p); } > }; ># 126 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_alloc.h" 3 > template<int __inst> > class __malloc_alloc_template > { > private: > static void* _S_oom_malloc(size_t); > static void* _S_oom_realloc(void*, size_t); > static void (* __malloc_alloc_oom_handler)(); > > public: > static void* > allocate(size_t __n) > { > void* __result = malloc(__n); > if (__builtin_expect(__result == 0, 0)) > __result = _S_oom_malloc(__n); > return __result; > } > > static void > deallocate(void* __p, size_t ) > { free(__p); } > > static void* > reallocate(void* __p, size_t , size_t __new_sz) > { > void* __result = realloc(__p, __new_sz); > if (__builtin_expect(__result == 0, 0)) > __result = _S_oom_realloc(__p, __new_sz); > return __result; > } > > static void (* __set_malloc_handler(void (*__f)()))() > { > void (* __old)() = __malloc_alloc_oom_handler; > __malloc_alloc_oom_handler = __f; > return __old; > } > }; > > > template<int __inst> > void (* __malloc_alloc_template<__inst>::__malloc_alloc_oom_handler)() = 0; > > template<int __inst> > void* > __malloc_alloc_template<__inst>:: > _S_oom_malloc(size_t __n) > { > void (* __my_malloc_handler)(); > void* __result; > > for (;;) > { > __my_malloc_handler = __malloc_alloc_oom_handler; > if (__builtin_expect(__my_malloc_handler == 0, 0)) > __throw_bad_alloc(); > (*__my_malloc_handler)(); > __result = malloc(__n); > if (__result) > return __result; > } > } > > template<int __inst> > void* > __malloc_alloc_template<__inst>:: > _S_oom_realloc(void* __p, size_t __n) > { > void (* __my_malloc_handler)(); > void* __result; > > for (;;) > { > __my_malloc_handler = __malloc_alloc_oom_handler; > if (__builtin_expect(__my_malloc_handler == 0, 0)) > __throw_bad_alloc(); > (*__my_malloc_handler)(); > __result = realloc(__p, __n); > if (__result) > return __result; > } > } > > > typedef __new_alloc __mem_interface; ># 223 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_alloc.h" 3 > template<typename _Tp, typename _Alloc> > class __simple_alloc > { > public: > static _Tp* > allocate(size_t __n) > { > _Tp* __ret = 0; > if (__n) > __ret = static_cast<_Tp*>(_Alloc::allocate(__n * sizeof(_Tp))); > return __ret; > } > > static _Tp* > allocate() > { return (_Tp*) _Alloc::allocate(sizeof (_Tp)); } > > static void > deallocate(_Tp* __p, size_t __n) > { if (0 != __n) _Alloc::deallocate(__p, __n * sizeof (_Tp)); } > > static void > deallocate(_Tp* __p) > { _Alloc::deallocate(__p, sizeof (_Tp)); } > }; ># 261 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_alloc.h" 3 > template<typename _Alloc> > class __debug_alloc > { > private: > > > enum {_S_extra = 8}; > > public: > static void* > allocate(size_t __n) > { > char* __result = (char*)_Alloc::allocate(__n + (int) _S_extra); > *(size_t*)__result = __n; > return __result + (int) _S_extra; > } > > static void > deallocate(void* __p, size_t __n) > { > char* __real_p = (char*)__p - (int) _S_extra; > if (*(size_t*)__real_p != __n) > abort(); > _Alloc::deallocate(__real_p, __n + (int) _S_extra); > } > > static void* > reallocate(void* __p, size_t __old_sz, size_t __new_sz) > { > char* __real_p = (char*)__p - (int) _S_extra; > if (*(size_t*)__real_p != __old_sz) > abort(); > char* __result = (char*) _Alloc::reallocate(__real_p, > __old_sz + (int) _S_extra, > __new_sz + (int) _S_extra); > *(size_t*)__result = __new_sz; > return __result + (int) _S_extra; > } > }; ># 332 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_alloc.h" 3 > template<bool __threads, int __inst> > class __default_alloc_template > { > private: > enum {_ALIGN = 8}; > enum {_MAX_BYTES = 128}; > enum {_NFREELISTS = _MAX_BYTES / _ALIGN}; > > union _Obj > { > union _Obj* _M_free_list_link; > char _M_client_data[1]; > }; > > static _Obj* volatile _S_free_list[_NFREELISTS]; > > > static char* _S_start_free; > static char* _S_end_free; > static size_t _S_heap_size; > > static _STL_mutex_lock _S_node_allocator_lock; > > static size_t > _S_round_up(size_t __bytes) > { return (((__bytes) + (size_t) _ALIGN-1) & ~((size_t) _ALIGN - 1)); } > > static size_t > _S_freelist_index(size_t __bytes) > { return (((__bytes) + (size_t)_ALIGN - 1)/(size_t)_ALIGN - 1); } > > > > static void* > _S_refill(size_t __n); > > > > static char* > _S_chunk_alloc(size_t __size, int& __nobjs); > > > > struct _Lock > { > _Lock() { if (__threads) _S_node_allocator_lock._M_acquire_lock(); } > ~_Lock() { if (__threads) _S_node_allocator_lock._M_release_lock(); } > } __attribute__ ((__unused__)); > friend struct _Lock; > > static _Atomic_word _S_force_new; > > public: > > static void* > allocate(size_t __n) > { > void* __ret = 0; > > > > > if (_S_force_new == 0) > { > if (getenv("GLIBCPP_FORCE_NEW")) > __atomic_add(&_S_force_new, 1); > else > __atomic_add(&_S_force_new, -1); > } > > if ((__n > (size_t) _MAX_BYTES) || (_S_force_new > 0)) > __ret = __new_alloc::allocate(__n); > else > { > _Obj* volatile* __my_free_list = _S_free_list > + _S_freelist_index(__n); > > > > _Lock __lock_instance; > _Obj* __restrict__ __result = *__my_free_list; > if (__builtin_expect(__result == 0, 0)) > __ret = _S_refill(_S_round_up(__n)); > else > { > *__my_free_list = __result -> _M_free_list_link; > __ret = __result; > } > if (__builtin_expect(__ret == 0, 0)) > __throw_bad_alloc(); > } > return __ret; > } > > > static void > deallocate(void* __p, size_t __n) > { > if ((__n > (size_t) _MAX_BYTES) || (_S_force_new > 0)) > __new_alloc::deallocate(__p, __n); > else > { > _Obj* volatile* __my_free_list = _S_free_list > + _S_freelist_index(__n); > _Obj* __q = (_Obj*)__p; > > > > > _Lock __lock_instance; > __q -> _M_free_list_link = *__my_free_list; > *__my_free_list = __q; > } > } > > static void* > reallocate(void* __p, size_t __old_sz, size_t __new_sz); > }; > > template<bool __threads, int __inst> _Atomic_word > __default_alloc_template<__threads, __inst>::_S_force_new = 0; > > template<bool __threads, int __inst> > inline bool > operator==(const __default_alloc_template<__threads,__inst>&, > const __default_alloc_template<__threads,__inst>&) > { return true; } > > template<bool __threads, int __inst> > inline bool > operator!=(const __default_alloc_template<__threads,__inst>&, > const __default_alloc_template<__threads,__inst>&) > { return false; } > > > > > > template<bool __threads, int __inst> > char* > __default_alloc_template<__threads, __inst>:: > _S_chunk_alloc(size_t __size, int& __nobjs) > { > char* __result; > size_t __total_bytes = __size * __nobjs; > size_t __bytes_left = _S_end_free - _S_start_free; > > if (__bytes_left >= __total_bytes) > { > __result = _S_start_free; > _S_start_free += __total_bytes; > return __result ; > } > else if (__bytes_left >= __size) > { > __nobjs = (int)(__bytes_left/__size); > __total_bytes = __size * __nobjs; > __result = _S_start_free; > _S_start_free += __total_bytes; > return __result; > } > else > { > size_t __bytes_to_get = > 2 * __total_bytes + _S_round_up(_S_heap_size >> 4); > > if (__bytes_left > 0) > { > _Obj* volatile* __my_free_list = > _S_free_list + _S_freelist_index(__bytes_left); > > ((_Obj*)(void*)_S_start_free) -> _M_free_list_link = *__my_free_list; > *__my_free_list = (_Obj*)(void*)_S_start_free; > } > _S_start_free = (char*) __new_alloc::allocate(__bytes_to_get); > if (_S_start_free == 0) > { > size_t __i; > _Obj* volatile* __my_free_list; > _Obj* __p; > > > > __i = __size; > for (; __i <= (size_t) _MAX_BYTES; __i += (size_t) _ALIGN) > { > __my_free_list = _S_free_list + _S_freelist_index(__i); > __p = *__my_free_list; > if (__p != 0) > { > *__my_free_list = __p -> _M_free_list_link; > _S_start_free = (char*)__p; > _S_end_free = _S_start_free + __i; > return _S_chunk_alloc(__size, __nobjs); > > > } > } > _S_end_free = 0; > _S_start_free = (char*)__new_alloc::allocate(__bytes_to_get); > > > } > _S_heap_size += __bytes_to_get; > _S_end_free = _S_start_free + __bytes_to_get; > return _S_chunk_alloc(__size, __nobjs); > } > } > > > > > > template<bool __threads, int __inst> > void* > __default_alloc_template<__threads, __inst>::_S_refill(size_t __n) > { > int __nobjs = 20; > char* __chunk = _S_chunk_alloc(__n, __nobjs); > _Obj* volatile* __my_free_list; > _Obj* __result; > _Obj* __current_obj; > _Obj* __next_obj; > int __i; > > if (1 == __nobjs) > return __chunk; > __my_free_list = _S_free_list + _S_freelist_index(__n); > > > __result = (_Obj*)(void*)__chunk; > *__my_free_list = __next_obj = (_Obj*)(void*)(__chunk + __n); > for (__i = 1; ; __i++) > { > __current_obj = __next_obj; > __next_obj = (_Obj*)(void*)((char*)__next_obj + __n); > if (__nobjs - 1 == __i) > { > __current_obj -> _M_free_list_link = 0; > break; > } > else > __current_obj -> _M_free_list_link = __next_obj; > } > return __result; > } > > > template<bool threads, int inst> > void* > __default_alloc_template<threads, inst>:: > reallocate(void* __p, size_t __old_sz, size_t __new_sz) > { > void* __result; > size_t __copy_sz; > > if (__old_sz > (size_t) _MAX_BYTES && __new_sz > (size_t) _MAX_BYTES) > return(realloc(__p, __new_sz)); > if (_S_round_up(__old_sz) == _S_round_up(__new_sz)) > return(__p); > __result = allocate(__new_sz); > __copy_sz = __new_sz > __old_sz? __old_sz : __new_sz; > memcpy(__result, __p, __copy_sz); > deallocate(__p, __old_sz); > return __result; > } > > template<bool __threads, int __inst> > _STL_mutex_lock > __default_alloc_template<__threads,__inst>::_S_node_allocator_lock > = { {0, 0, 0, PTHREAD_MUTEX_TIMED_NP, { 0, 0 }} }; > > template<bool __threads, int __inst> > char* __default_alloc_template<__threads,__inst>::_S_start_free = 0; > > template<bool __threads, int __inst> > char* __default_alloc_template<__threads,__inst>::_S_end_free = 0; > > template<bool __threads, int __inst> > size_t __default_alloc_template<__threads,__inst>::_S_heap_size = 0; > > template<bool __threads, int __inst> > typename __default_alloc_template<__threads,__inst>::_Obj* volatile > __default_alloc_template<__threads,__inst>::_S_free_list[_NFREELISTS]; > > typedef __default_alloc_template<true,0> __alloc; > typedef __default_alloc_template<false,0> __single_client_alloc; ># 635 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_alloc.h" 3 > template<typename _Tp> > class allocator > { > typedef __alloc _Alloc; > public: > typedef size_t size_type; > typedef ptrdiff_t difference_type; > typedef _Tp* pointer; > typedef const _Tp* const_pointer; > typedef _Tp& reference; > typedef const _Tp& const_reference; > typedef _Tp value_type; > > template<typename _Tp1> > struct rebind > { typedef allocator<_Tp1> other; }; > > allocator() throw() {} > allocator(const allocator&) throw() {} > template<typename _Tp1> > allocator(const allocator<_Tp1>&) throw() {} > ~allocator() throw() {} > > pointer > address(reference __x) const { return &__x; } > > const_pointer > address(const_reference __x) const { return &__x; } > > > > _Tp* > allocate(size_type __n, const void* = 0) > { > _Tp* __ret = 0; > if (__n) > { > if (__n <= this->max_size()) > __ret = static_cast<_Tp*>(_Alloc::allocate(__n * sizeof(_Tp))); > else > __throw_bad_alloc(); > } > return __ret; > } > > > void > deallocate(pointer __p, size_type __n) > { _Alloc::deallocate(__p, __n * sizeof(_Tp)); } > > size_type > max_size() const throw() { return size_t(-1) / sizeof(_Tp); } > > void construct(pointer __p, const _Tp& __val) { new(__p) _Tp(__val); } > void destroy(pointer __p) { __p->~_Tp(); } > }; > > template<> > class allocator<void> > { > public: > typedef size_t size_type; > typedef ptrdiff_t difference_type; > typedef void* pointer; > typedef const void* const_pointer; > typedef void value_type; > > template<typename _Tp1> > struct rebind > { typedef allocator<_Tp1> other; }; > }; > > > template<typename _T1, typename _T2> > inline bool > operator==(const allocator<_T1>&, const allocator<_T2>&) > { return true; } > > template<typename _T1, typename _T2> > inline bool > operator!=(const allocator<_T1>&, const allocator<_T2>&) > { return false; } ># 731 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_alloc.h" 3 > template<typename _Tp, typename _Alloc> > struct __allocator > { > _Alloc __underlying_alloc; > > typedef size_t size_type; > typedef ptrdiff_t difference_type; > typedef _Tp* pointer; > typedef const _Tp* const_pointer; > typedef _Tp& reference; > typedef const _Tp& const_reference; > typedef _Tp value_type; > > template<typename _Tp1> > struct rebind > { typedef __allocator<_Tp1, _Alloc> other; }; > > __allocator() throw() {} > __allocator(const __allocator& __a) throw() > : __underlying_alloc(__a.__underlying_alloc) {} > > template<typename _Tp1> > __allocator(const __allocator<_Tp1, _Alloc>& __a) throw() > : __underlying_alloc(__a.__underlying_alloc) {} > > ~__allocator() throw() {} > > pointer > address(reference __x) const { return &__x; } > > const_pointer > address(const_reference __x) const { return &__x; } > > > > _Tp* > allocate(size_type __n, const void* = 0) > { > _Tp* __ret = 0; > if (__n) > __ret = static_cast<_Tp*>(_Alloc::allocate(__n * sizeof(_Tp))); > return __ret; > } > > > void > deallocate(pointer __p, size_type __n) > { __underlying_alloc.deallocate(__p, __n * sizeof(_Tp)); } > > size_type > max_size() const throw() { return size_t(-1) / sizeof(_Tp); } > > void > construct(pointer __p, const _Tp& __val) { new(__p) _Tp(__val); } > > void > destroy(pointer __p) { __p->~_Tp(); } > }; > > template<typename _Alloc> > struct __allocator<void, _Alloc> > { > typedef size_t size_type; > typedef ptrdiff_t difference_type; > typedef void* pointer; > typedef const void* const_pointer; > typedef void value_type; > > template<typename _Tp1> > struct rebind > { typedef __allocator<_Tp1, _Alloc> other; }; > }; > > template<typename _Tp, typename _Alloc> > inline bool > operator==(const __allocator<_Tp,_Alloc>& __a1, > const __allocator<_Tp,_Alloc>& __a2) > { return __a1.__underlying_alloc == __a2.__underlying_alloc; } > > template<typename _Tp, typename _Alloc> > inline bool > operator!=(const __allocator<_Tp, _Alloc>& __a1, > const __allocator<_Tp, _Alloc>& __a2) > { return __a1.__underlying_alloc != __a2.__underlying_alloc; } > > > > > > > > template<int inst> > inline bool > operator==(const __malloc_alloc_template<inst>&, > const __malloc_alloc_template<inst>&) > { return true; } > > template<int __inst> > inline bool > operator!=(const __malloc_alloc_template<__inst>&, > const __malloc_alloc_template<__inst>&) > { return false; } > > template<typename _Alloc> > inline bool > operator==(const __debug_alloc<_Alloc>&, const __debug_alloc<_Alloc>&) > { return true; } > > template<typename _Alloc> > inline bool > operator!=(const __debug_alloc<_Alloc>&, const __debug_alloc<_Alloc>&) > { return false; } ># 884 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_alloc.h" 3 > template<typename _Tp, typename _Allocator> > struct _Alloc_traits > { > static const bool _S_instanceless = false; > typedef typename _Allocator::template rebind<_Tp>::other allocator_type; > }; > > template<typename _Tp, typename _Allocator> > const bool _Alloc_traits<_Tp, _Allocator>::_S_instanceless; > > > template<typename _Tp, typename _Tp1> > struct _Alloc_traits<_Tp, allocator<_Tp1> > > { > static const bool _S_instanceless = true; > typedef __simple_alloc<_Tp, __alloc> _Alloc_type; > typedef allocator<_Tp> allocator_type; > }; > > > > > template<typename _Tp, int __inst> > struct _Alloc_traits<_Tp, __malloc_alloc_template<__inst> > > { > static const bool _S_instanceless = true; > typedef __simple_alloc<_Tp, __malloc_alloc_template<__inst> > _Alloc_type; > typedef __allocator<_Tp, __malloc_alloc_template<__inst> > allocator_type; > }; > > template<typename _Tp, bool __threads, int __inst> > struct _Alloc_traits<_Tp, __default_alloc_template<__threads, __inst> > > { > static const bool _S_instanceless = true; > typedef __simple_alloc<_Tp, __default_alloc_template<__threads, __inst> > > _Alloc_type; > typedef __allocator<_Tp, __default_alloc_template<__threads, __inst> > > allocator_type; > }; > > template<typename _Tp, typename _Alloc> > struct _Alloc_traits<_Tp, __debug_alloc<_Alloc> > > { > static const bool _S_instanceless = true; > typedef __simple_alloc<_Tp, __debug_alloc<_Alloc> > _Alloc_type; > typedef __allocator<_Tp, __debug_alloc<_Alloc> > allocator_type; > }; > > > > > > template<typename _Tp, typename _Tp1, int __inst> > struct _Alloc_traits<_Tp, > __allocator<_Tp1, __malloc_alloc_template<__inst> > > > { > static const bool _S_instanceless = true; > typedef __simple_alloc<_Tp, __malloc_alloc_template<__inst> > _Alloc_type; > typedef __allocator<_Tp, __malloc_alloc_template<__inst> > allocator_type; > }; > > template<typename _Tp, typename _Tp1, bool __thr, int __inst> > struct _Alloc_traits<_Tp, __allocator<_Tp1, __default_alloc_template<__thr, __inst> > > > { > static const bool _S_instanceless = true; > typedef __simple_alloc<_Tp, __default_alloc_template<__thr,__inst> > > _Alloc_type; > typedef __allocator<_Tp, __default_alloc_template<__thr,__inst> > > allocator_type; > }; > > template<typename _Tp, typename _Tp1, typename _Alloc> > struct _Alloc_traits<_Tp, __allocator<_Tp1, __debug_alloc<_Alloc> > > > { > static const bool _S_instanceless = true; > typedef __simple_alloc<_Tp, __debug_alloc<_Alloc> > _Alloc_type; > typedef __allocator<_Tp, __debug_alloc<_Alloc> > allocator_type; > }; > > > > > > > extern template class allocator<char>; > extern template class allocator<wchar_t>; > extern template class __default_alloc_template<true,0>; > >} ># 69 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/vector" 2 3 ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_construct.h" 1 3 ># 67 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_construct.h" 3 >namespace std >{ > > > > > > > template <class _T1, class _T2> > inline void > _Construct(_T1* __p, const _T2& __value) > { new (static_cast<void*>(__p)) _T1(__value); } > > > > > > > > template <class _T1> > inline void > _Construct(_T1* __p) > { new (static_cast<void*>(__p)) _T1(); } ># 98 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_construct.h" 3 > template <class _ForwardIterator> > inline void > __destroy_aux(_ForwardIterator __first, _ForwardIterator __last, __false_type) > { for ( ; __first != __last; ++__first) _Destroy(&*__first); } ># 112 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_construct.h" 3 > template <class _ForwardIterator> > inline void > __destroy_aux(_ForwardIterator, _ForwardIterator, __true_type) > { } > > > > > > > template <class _Tp> > inline void > _Destroy(_Tp* __pointer) > { __pointer->~_Tp(); } ># 134 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_construct.h" 3 > template <class _ForwardIterator> > inline void > _Destroy(_ForwardIterator __first, _ForwardIterator __last) > { > typedef typename iterator_traits<_ForwardIterator>::value_type > _Value_type; > typedef typename __type_traits<_Value_type>::has_trivial_destructor > _Has_trivial_destructor; > > __destroy_aux(__first, __last, _Has_trivial_destructor()); > } >} ># 70 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/vector" 2 3 ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_uninitialized.h" 1 3 ># 66 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_uninitialized.h" 3 >namespace std >{ > > > > template<typename _InputIter, typename _ForwardIter> > inline _ForwardIter > __uninitialized_copy_aux(_InputIter __first, _InputIter __last, > _ForwardIter __result, > __true_type) > { return copy(__first, __last, __result); } > > template<typename _InputIter, typename _ForwardIter> > _ForwardIter > __uninitialized_copy_aux(_InputIter __first, _InputIter __last, > _ForwardIter __result, > __false_type) > { > _ForwardIter __cur = __result; > try { > for ( ; __first != __last; ++__first, ++__cur) > _Construct(&*__cur, *__first); > return __cur; > } > catch(...) > { > _Destroy(__result, __cur); > throw; > } > } ># 106 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_uninitialized.h" 3 > template<typename _InputIter, typename _ForwardIter> > inline _ForwardIter > uninitialized_copy(_InputIter __first, _InputIter __last, _ForwardIter __result) > { > typedef typename iterator_traits<_ForwardIter>::value_type _ValueType; > typedef typename __type_traits<_ValueType>::is_POD_type _Is_POD; > return __uninitialized_copy_aux(__first, __last, __result, _Is_POD()); > } > > inline char* > uninitialized_copy(const char* __first, const char* __last, char* __result) > { > memmove(__result, __first, __last - __first); > return __result + (__last - __first); > } > > inline wchar_t* > uninitialized_copy(const wchar_t* __first, const wchar_t* __last, > wchar_t* __result) > { > memmove(__result, __first, sizeof(wchar_t) * (__last - __first)); > return __result + (__last - __first); > } > > > > template<typename _ForwardIter, typename _Tp> > inline void > __uninitialized_fill_aux(_ForwardIter __first, _ForwardIter __last, > const _Tp& __x, __true_type) > { fill(__first, __last, __x); } > > template<typename _ForwardIter, typename _Tp> > void > __uninitialized_fill_aux(_ForwardIter __first, _ForwardIter __last, > const _Tp& __x, __false_type) > { > _ForwardIter __cur = __first; > try { > for ( ; __cur != __last; ++__cur) > _Construct(&*__cur, __x); > } > catch(...) > { > _Destroy(__first, __cur); > throw; > } > } ># 164 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_uninitialized.h" 3 > template<typename _ForwardIter, typename _Tp> > inline void > uninitialized_fill(_ForwardIter __first, _ForwardIter __last, const _Tp& __x) > { > typedef typename iterator_traits<_ForwardIter>::value_type _ValueType; > typedef typename __type_traits<_ValueType>::is_POD_type _Is_POD; > __uninitialized_fill_aux(__first, __last, __x, _Is_POD()); > } > > > > template<typename _ForwardIter, typename _Size, typename _Tp> > inline _ForwardIter > __uninitialized_fill_n_aux(_ForwardIter __first, _Size __n, > const _Tp& __x, __true_type) > { > return fill_n(__first, __n, __x); > } > > template<typename _ForwardIter, typename _Size, typename _Tp> > _ForwardIter > __uninitialized_fill_n_aux(_ForwardIter __first, _Size __n, > const _Tp& __x, __false_type) > { > _ForwardIter __cur = __first; > try { > for ( ; __n > 0; --__n, ++__cur) > _Construct(&*__cur, __x); > return __cur; > } > catch(...) > { > _Destroy(__first, __cur); > throw; > } > } ># 210 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_uninitialized.h" 3 > template<typename _ForwardIter, typename _Size, typename _Tp> > inline _ForwardIter > uninitialized_fill_n(_ForwardIter __first, _Size __n, const _Tp& __x) > { > typedef typename iterator_traits<_ForwardIter>::value_type _ValueType; > typedef typename __type_traits<_ValueType>::is_POD_type _Is_POD; > return __uninitialized_fill_n_aux(__first, __n, __x, _Is_POD()); > } ># 227 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_uninitialized.h" 3 > template<typename _InputIter1, typename _InputIter2, typename _ForwardIter> > inline _ForwardIter > __uninitialized_copy_copy(_InputIter1 __first1, _InputIter1 __last1, > _InputIter2 __first2, _InputIter2 __last2, > _ForwardIter __result) > { > _ForwardIter __mid = uninitialized_copy(__first1, __last1, __result); > try { > return uninitialized_copy(__first2, __last2, __mid); > } > catch(...) > { > _Destroy(__result, __mid); > throw; > } > } > > > > > template<typename _ForwardIter, typename _Tp, typename _InputIter> > inline _ForwardIter > __uninitialized_fill_copy(_ForwardIter __result, _ForwardIter __mid, > const _Tp& __x, > _InputIter __first, _InputIter __last) > { > uninitialized_fill(__result, __mid, __x); > try { > return uninitialized_copy(__first, __last, __mid); > } > catch(...) > { > _Destroy(__result, __mid); > throw; > } > } > > > > > template<typename _InputIter, typename _ForwardIter, typename _Tp> > inline void > __uninitialized_copy_fill(_InputIter __first1, _InputIter __last1, > _ForwardIter __first2, _ForwardIter __last2, > const _Tp& __x) > { > _ForwardIter __mid2 = uninitialized_copy(__first1, __last1, __first2); > try { > uninitialized_fill(__mid2, __last2, __x); > } > catch(...) > { > _Destroy(__first2, __mid2); > throw; > } > } > >} ># 71 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/vector" 2 3 ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_vector.h" 1 3 ># 65 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_vector.h" 3 ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/functexcept.h" 1 3 ># 34 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/functexcept.h" 3 ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/exception_defines.h" 1 3 ># 35 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/functexcept.h" 2 3 > >namespace std >{ > > void > __throw_bad_exception(void); > > > void > __throw_bad_alloc(void); > > > void > __throw_bad_cast(void); > > void > __throw_bad_typeid(void); > > > void > __throw_logic_error(const char* __s); > > void > __throw_domain_error(const char* __s); > > void > __throw_invalid_argument(const char* __s); > > void > __throw_length_error(const char* __s); > > void > __throw_out_of_range(const char* __s); > > void > __throw_runtime_error(const char* __s); > > void > __throw_range_error(const char* __s); > > void > __throw_overflow_error(const char* __s); > > void > __throw_underflow_error(const char* __s); > > > void > __throw_ios_failure(const char* __s); >} ># 66 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_vector.h" 2 3 > > >namespace std >{ > > > > > > > template<typename _Tp, typename _Allocator, bool _IsStatic> > class _Vector_alloc_base > { > public: > typedef typename _Alloc_traits<_Tp, _Allocator>::allocator_type > allocator_type; > > allocator_type > get_allocator() const { return _M_data_allocator; } > > _Vector_alloc_base(const allocator_type& __a) > : _M_data_allocator(__a), _M_start(0), _M_finish(0), _M_end_of_storage(0) > { } > > protected: > allocator_type _M_data_allocator; > _Tp* _M_start; > _Tp* _M_finish; > _Tp* _M_end_of_storage; > > _Tp* > _M_allocate(size_t __n) { return _M_data_allocator.allocate(__n); } > > void > _M_deallocate(_Tp* __p, size_t __n) > { if (__p) _M_data_allocator.deallocate(__p, __n); } > }; > > > template<typename _Tp, typename _Allocator> > class _Vector_alloc_base<_Tp, _Allocator, true> > { > public: > typedef typename _Alloc_traits<_Tp, _Allocator>::allocator_type > allocator_type; > > allocator_type > get_allocator() const { return allocator_type(); } > > _Vector_alloc_base(const allocator_type&) > : _M_start(0), _M_finish(0), _M_end_of_storage(0) > { } > > protected: > _Tp* _M_start; > _Tp* _M_finish; > _Tp* _M_end_of_storage; > > typedef typename _Alloc_traits<_Tp, _Allocator>::_Alloc_type _Alloc_type; > > _Tp* > _M_allocate(size_t __n) { return _Alloc_type::allocate(__n); } > > void > _M_deallocate(_Tp* __p, size_t __n) { _Alloc_type::deallocate(__p, __n);} > }; > > > > > > > > template<typename _Tp, typename _Alloc> > struct _Vector_base > : public _Vector_alloc_base<_Tp, _Alloc, > _Alloc_traits<_Tp, _Alloc>::_S_instanceless> > { > public: > typedef _Vector_alloc_base<_Tp, _Alloc, > _Alloc_traits<_Tp, _Alloc>::_S_instanceless> > _Base; > typedef typename _Base::allocator_type allocator_type; > > _Vector_base(const allocator_type& __a) > : _Base(__a) { } > > _Vector_base(size_t __n, const allocator_type& __a) > : _Base(__a) > { > _M_start = _M_allocate(__n); > _M_finish = _M_start; > _M_end_of_storage = _M_start + __n; > } > > ~_Vector_base() > { _M_deallocate(_M_start, _M_end_of_storage - _M_start); } > }; ># 184 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_vector.h" 3 > template<typename _Tp, typename _Alloc = allocator<_Tp> > > class vector : protected _Vector_base<_Tp, _Alloc> > { > > > > typedef _Vector_base<_Tp, _Alloc> _Base; > typedef vector<_Tp, _Alloc> vector_type; > > public: > typedef _Tp value_type; > typedef value_type* pointer; > typedef const value_type* const_pointer; > typedef __gnu_cxx::__normal_iterator<pointer, vector_type> iterator; > typedef __gnu_cxx::__normal_iterator<const_pointer, vector_type> > const_iterator; > typedef std::reverse_iterator<const_iterator> const_reverse_iterator; > typedef std::reverse_iterator<iterator> reverse_iterator; > typedef value_type& reference; > typedef const value_type& const_reference; > typedef size_t size_type; > typedef ptrdiff_t difference_type; > typedef typename _Base::allocator_type allocator_type; > > protected: > > > > > > > using _Base::_M_allocate; > using _Base::_M_deallocate; > using _Base::_M_start; > using _Base::_M_finish; > using _Base::_M_end_of_storage; > > public: > > > > > > explicit > vector(const allocator_type& __a = allocator_type()) > : _Base(__a) { } ># 238 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_vector.h" 3 > vector(size_type __n, const value_type& __value, > const allocator_type& __a = allocator_type()) > : _Base(__n, __a) > { _M_finish = uninitialized_fill_n(_M_start, __n, __value); } ># 250 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_vector.h" 3 > explicit > vector(size_type __n) > : _Base(__n, allocator_type()) > { _M_finish = uninitialized_fill_n(_M_start, __n, value_type()); } ># 264 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_vector.h" 3 > vector(const vector& __x) > : _Base(__x.size(), __x.get_allocator()) > { _M_finish = uninitialized_copy(__x.begin(), __x.end(), _M_start); } ># 282 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_vector.h" 3 > template<typename _InputIterator> > vector(_InputIterator __first, _InputIterator __last, > const allocator_type& __a = allocator_type()) > : _Base(__a) > { > > typedef typename _Is_integer<_InputIterator>::_Integral _Integral; > _M_initialize_dispatch(__first, __last, _Integral()); > } > > > > > > > ~vector() { _Destroy(_M_start, _M_finish); } ># 307 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_vector.h" 3 > vector& > operator=(const vector& __x); ># 320 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_vector.h" 3 > void > assign(size_type __n, const value_type& __val) > { _M_fill_assign(__n, __val); } ># 336 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_vector.h" 3 > template<typename _InputIterator> > void > assign(_InputIterator __first, _InputIterator __last) > { > > typedef typename _Is_integer<_InputIterator>::_Integral _Integral; > _M_assign_dispatch(__first, __last, _Integral()); > } > > > allocator_type > get_allocator() const { return _Base::get_allocator(); } > > > > > > > iterator > begin() { return iterator (_M_start); } > > > > > > > const_iterator > begin() const { return const_iterator (_M_start); } > > > > > > > iterator > end() { return iterator (_M_finish); } > > > > > > const_iterator > end() const { return const_iterator (_M_finish); } > > > > > > > reverse_iterator > rbegin() { return reverse_iterator(end()); } > > > > > > > const_reverse_iterator > rbegin() const { return const_reverse_iterator(end()); } > > > > > > > reverse_iterator > rend() { return reverse_iterator(begin()); } > > > > > > > const_reverse_iterator > rend() const { return const_reverse_iterator(begin()); } > > > > size_type > size() const { return size_type(end() - begin()); } > > > size_type > max_size() const { return size_type(-1) / sizeof(value_type); } ># 432 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_vector.h" 3 > void > resize(size_type __new_size, const value_type& __x) > { > if (__new_size < size()) > erase(begin() + __new_size, end()); > else > insert(end(), __new_size - size(), __x); > } ># 451 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_vector.h" 3 > void > resize(size_type __new_size) { resize(__new_size, value_type()); } > > > > > > size_type > capacity() const > { return size_type(const_iterator(_M_end_of_storage) - begin()); } > > > > > > bool > empty() const { return begin() == end(); } ># 486 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_vector.h" 3 > void > reserve(size_type __n); ># 500 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_vector.h" 3 > reference > operator[](size_type __n) { return *(begin() + __n); } ># 514 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_vector.h" 3 > const_reference > operator[](size_type __n) const { return *(begin() + __n); } > > protected: > > void > _M_range_check(size_type __n) const > { > if (__n >= this->size()) > __throw_out_of_range("vector [] access out of range"); > } > > public: ># 538 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_vector.h" 3 > reference > at(size_type __n) { _M_range_check(__n); return (*this)[__n]; } ># 552 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_vector.h" 3 > const_reference > at(size_type __n) const { _M_range_check(__n); return (*this)[__n]; } > > > > > > reference > front() { return *begin(); } > > > > > > const_reference > front() const { return *begin(); } > > > > > > reference > back() { return *(end() - 1); } > > > > > > const_reference > back() const { return *(end() - 1); } ># 594 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_vector.h" 3 > void > push_back(const value_type& __x) > { > if (_M_finish != _M_end_of_storage) > { > _Construct(_M_finish, __x); > ++_M_finish; > } > else > _M_insert_aux(end(), __x); > } ># 614 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_vector.h" 3 > void > pop_back() > { > --_M_finish; > _Destroy(_M_finish); > } ># 632 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_vector.h" 3 > iterator > insert(iterator __position, const value_type& __x); ># 669 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_vector.h" 3 > void > insert(iterator __pos, size_type __n, const value_type& __x) > { _M_fill_insert(__pos, __n, __x); } ># 687 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_vector.h" 3 > template<typename _InputIterator> > void > insert(iterator __pos, _InputIterator __first, _InputIterator __last) > { > > typedef typename _Is_integer<_InputIterator>::_Integral _Integral; > _M_insert_dispatch(__pos, __first, __last, _Integral()); > } ># 711 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_vector.h" 3 > iterator > erase(iterator __position); ># 732 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_vector.h" 3 > iterator > erase(iterator __first, iterator __last); ># 744 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_vector.h" 3 > void > swap(vector& __x) > { > std::swap(_M_start, __x._M_start); > std::swap(_M_finish, __x._M_finish); > std::swap(_M_end_of_storage, __x._M_end_of_storage); > } > > > > > > > > void > clear() { erase(begin(), end()); } > > protected: > > > > > > > template<typename _ForwardIterator> > pointer > _M_allocate_and_copy(size_type __n, > _ForwardIterator __first, _ForwardIterator __last) > { > pointer __result = _M_allocate(__n); > try > { > uninitialized_copy(__first, __last, __result); > return __result; > } > catch(...) > { > _M_deallocate(__result, __n); > throw; > } > } > > > > > > template<typename _Integer> > void > _M_initialize_dispatch(_Integer __n, _Integer __value, __true_type) > { > _M_start = _M_allocate(__n); > _M_end_of_storage = _M_start + __n; > _M_finish = uninitialized_fill_n(_M_start, __n, __value); > } > > > template<typename _InputIter> > void > _M_initialize_dispatch(_InputIter __first, _InputIter __last, > __false_type) > { > typedef typename iterator_traits<_InputIter>::iterator_category > _IterCategory; > _M_range_initialize(__first, __last, _IterCategory()); > } > > > template<typename _InputIterator> > void > _M_range_initialize(_InputIterator __first, > _InputIterator __last, input_iterator_tag) > { > for ( ; __first != __last; ++__first) > push_back(*__first); > } > > > template<typename _ForwardIterator> > void > _M_range_initialize(_ForwardIterator __first, > _ForwardIterator __last, forward_iterator_tag) > { > size_type __n = distance(__first, __last); > _M_start = _M_allocate(__n); > _M_end_of_storage = _M_start + __n; > _M_finish = uninitialized_copy(__first, __last, _M_start); > } > > > > > > > template<typename _Integer> > void > _M_assign_dispatch(_Integer __n, _Integer __val, __true_type) > { > _M_fill_assign(static_cast<size_type>(__n), > static_cast<value_type>(__val)); > } > > > template<typename _InputIter> > void > _M_assign_dispatch(_InputIter __first, _InputIter __last, __false_type) > { > typedef typename iterator_traits<_InputIter>::iterator_category > _IterCategory; > _M_assign_aux(__first, __last, _IterCategory()); > } > > > template<typename _InputIterator> > void > _M_assign_aux(_InputIterator __first, _InputIterator __last, > input_iterator_tag); > > > template<typename _ForwardIterator> > void > _M_assign_aux(_ForwardIterator __first, _ForwardIterator __last, > forward_iterator_tag); > > > > void > _M_fill_assign(size_type __n, const value_type& __val); > > > > > > template<typename _Integer> > void > _M_insert_dispatch(iterator __pos, _Integer __n, _Integer __val, > __true_type) > { > _M_fill_insert(__pos, static_cast<size_type>(__n), > static_cast<value_type>(__val)); > } > > > template<typename _InputIterator> > void > _M_insert_dispatch(iterator __pos, _InputIterator __first, > _InputIterator __last, __false_type) > { > typedef typename iterator_traits<_InputIterator>::iterator_category > _IterCategory; > _M_range_insert(__pos, __first, __last, _IterCategory()); > } > > > template<typename _InputIterator> > void > _M_range_insert(iterator __pos, _InputIterator __first, > _InputIterator __last, input_iterator_tag); > > > template<typename _ForwardIterator> > void > _M_range_insert(iterator __pos, _ForwardIterator __first, > _ForwardIterator __last, forward_iterator_tag); > > > > void > _M_fill_insert(iterator __pos, size_type __n, const value_type& __x); > > > void > _M_insert_aux(iterator __position, const value_type& __x); > > > > > > }; ># 934 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_vector.h" 3 > template<typename _Tp, typename _Alloc> > inline bool > operator==(const vector<_Tp,_Alloc>& __x, const vector<_Tp,_Alloc>& __y) > { > return __x.size() == __y.size() && > equal(__x.begin(), __x.end(), __y.begin()); > } ># 953 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_vector.h" 3 > template<typename _Tp, typename _Alloc> > inline bool > operator<(const vector<_Tp,_Alloc>& __x, const vector<_Tp,_Alloc>& __y) > { > return lexicographical_compare(__x.begin(), __x.end(), > __y.begin(), __y.end()); > } > > > template<typename _Tp, typename _Alloc> > inline bool > operator!=(const vector<_Tp,_Alloc>& __x, const vector<_Tp,_Alloc>& __y) > { return !(__x == __y); } > > > template<typename _Tp, typename _Alloc> > inline bool > operator>(const vector<_Tp,_Alloc>& __x, const vector<_Tp,_Alloc>& __y) > { return __y < __x; } > > > template<typename _Tp, typename _Alloc> > inline bool > operator<=(const vector<_Tp,_Alloc>& __x, const vector<_Tp,_Alloc>& __y) > { return !(__y < __x); } > > > template<typename _Tp, typename _Alloc> > inline bool > operator>=(const vector<_Tp,_Alloc>& __x, const vector<_Tp,_Alloc>& __y) > { return !(__x < __y); } > > > template<typename _Tp, typename _Alloc> > inline void > swap(vector<_Tp,_Alloc>& __x, vector<_Tp,_Alloc>& __y) > { __x.swap(__y); } >} ># 72 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/vector" 2 3 ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_bvector.h" 1 3 ># 64 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_bvector.h" 3 >namespace std >{ > typedef unsigned long _Bit_type; > enum { _M_word_bit = int(8 * sizeof(_Bit_type)) }; > >struct _Bit_reference { > > _Bit_type * _M_p; > _Bit_type _M_mask; > _Bit_reference(_Bit_type * __x, _Bit_type __y) > : _M_p(__x), _M_mask(__y) {} > >public: > _Bit_reference() : _M_p(0), _M_mask(0) {} > operator bool() const { return !!(*_M_p & _M_mask); } > _Bit_reference& operator=(bool __x) > { > if (__x) *_M_p |= _M_mask; > else *_M_p &= ~_M_mask; > return *this; > } > _Bit_reference& operator=(const _Bit_reference& __x) > { return *this = bool(__x); } > bool operator==(const _Bit_reference& __x) const > { return bool(*this) == bool(__x); } > bool operator<(const _Bit_reference& __x) const > { return !bool(*this) && bool(__x); } > void flip() { *_M_p ^= _M_mask; } >}; > >struct _Bit_iterator_base : public iterator<random_access_iterator_tag, bool> >{ > _Bit_type * _M_p; > unsigned int _M_offset; > > _Bit_iterator_base(_Bit_type * __x, unsigned int __y) > : _M_p(__x), _M_offset(__y) {} > > void _M_bump_up() { > if (_M_offset++ == _M_word_bit - 1) { > _M_offset = 0; > ++_M_p; > } > } > void _M_bump_down() { > if (_M_offset-- == 0) { > _M_offset = _M_word_bit - 1; > --_M_p; > } > } > > void _M_incr(ptrdiff_t __i) { > difference_type __n = __i + _M_offset; > _M_p += __n / _M_word_bit; > __n = __n % _M_word_bit; > if (__n < 0) { > _M_offset = (unsigned int) __n + _M_word_bit; > --_M_p; > } else > _M_offset = (unsigned int) __n; > } > > bool operator==(const _Bit_iterator_base& __i) const { > return _M_p == __i._M_p && _M_offset == __i._M_offset; > } > bool operator<(const _Bit_iterator_base& __i) const { > return _M_p < __i._M_p || (_M_p == __i._M_p && _M_offset < __i._M_offset); > } > bool operator!=(const _Bit_iterator_base& __i) const { > return !(*this == __i); > } > bool operator>(const _Bit_iterator_base& __i) const { > return __i < *this; > } > bool operator<=(const _Bit_iterator_base& __i) const { > return !(__i < *this); > } > bool operator>=(const _Bit_iterator_base& __i) const { > return !(*this < __i); > } >}; > >inline ptrdiff_t >operator-(const _Bit_iterator_base& __x, const _Bit_iterator_base& __y) { > return _M_word_bit * (__x._M_p - __y._M_p) + __x._M_offset - __y._M_offset; >} > > >struct _Bit_iterator : public _Bit_iterator_base >{ > typedef _Bit_reference reference; > typedef _Bit_reference* pointer; > typedef _Bit_iterator iterator; > > _Bit_iterator() : _Bit_iterator_base(0, 0) {} > _Bit_iterator(_Bit_type * __x, unsigned int __y) > : _Bit_iterator_base(__x, __y) {} > > reference operator*() const { return reference(_M_p, 1UL << _M_offset); } > iterator& operator++() { > _M_bump_up(); > return *this; > } > iterator operator++(int) { > iterator __tmp = *this; > _M_bump_up(); > return __tmp; > } > iterator& operator--() { > _M_bump_down(); > return *this; > } > iterator operator--(int) { > iterator __tmp = *this; > _M_bump_down(); > return __tmp; > } > iterator& operator+=(difference_type __i) { > _M_incr(__i); > return *this; > } > iterator& operator-=(difference_type __i) { > *this += -__i; > return *this; > } > iterator operator+(difference_type __i) const { > iterator __tmp = *this; > return __tmp += __i; > } > iterator operator-(difference_type __i) const { > iterator __tmp = *this; > return __tmp -= __i; > } > > reference operator[](difference_type __i) { return *(*this + __i); } >}; > >inline _Bit_iterator >operator+(ptrdiff_t __n, const _Bit_iterator& __x) { return __x + __n; } > > >struct _Bit_const_iterator : public _Bit_iterator_base >{ > typedef bool reference; > typedef bool const_reference; > typedef const bool* pointer; > typedef _Bit_const_iterator const_iterator; > > _Bit_const_iterator() : _Bit_iterator_base(0, 0) {} > _Bit_const_iterator(_Bit_type * __x, unsigned int __y) > : _Bit_iterator_base(__x, __y) {} > _Bit_const_iterator(const _Bit_iterator& __x) > : _Bit_iterator_base(__x._M_p, __x._M_offset) {} > > const_reference operator*() const { > return _Bit_reference(_M_p, 1UL << _M_offset); > } > const_iterator& operator++() { > _M_bump_up(); > return *this; > } > const_iterator operator++(int) { > const_iterator __tmp = *this; > _M_bump_up(); > return __tmp; > } > const_iterator& operator--() { > _M_bump_down(); > return *this; > } > const_iterator operator--(int) { > const_iterator __tmp = *this; > _M_bump_down(); > return __tmp; > } > const_iterator& operator+=(difference_type __i) { > _M_incr(__i); > return *this; > } > const_iterator& operator-=(difference_type __i) { > *this += -__i; > return *this; > } > const_iterator operator+(difference_type __i) const { > const_iterator __tmp = *this; > return __tmp += __i; > } > const_iterator operator-(difference_type __i) const { > const_iterator __tmp = *this; > return __tmp -= __i; > } > const_reference operator[](difference_type __i) { > return *(*this + __i); > } >}; > >inline _Bit_const_iterator >operator+(ptrdiff_t __n, const _Bit_const_iterator& __x) { return __x + __n; } > > > > > > >template <class _Allocator, bool __is_static> >class _Bvector_alloc_base { >public: > typedef typename _Alloc_traits<bool, _Allocator>::allocator_type > allocator_type; > allocator_type get_allocator() const { return _M_data_allocator; } > > _Bvector_alloc_base(const allocator_type& __a) > : _M_data_allocator(__a), _M_start(), _M_finish(), _M_end_of_storage(0) {} > >protected: > _Bit_type * _M_bit_alloc(size_t __n) > { return _M_data_allocator.allocate((__n + _M_word_bit - 1)/_M_word_bit); } > void _M_deallocate() { > if (_M_start._M_p) > _M_data_allocator.deallocate(_M_start._M_p, > _M_end_of_storage - _M_start._M_p); > } > > typename _Alloc_traits<_Bit_type, _Allocator>::allocator_type > _M_data_allocator; > _Bit_iterator _M_start; > _Bit_iterator _M_finish; > _Bit_type * _M_end_of_storage; >}; > > >template <class _Allocator> >class _Bvector_alloc_base<_Allocator, true> { >public: > typedef typename _Alloc_traits<bool, _Allocator>::allocator_type > allocator_type; > allocator_type get_allocator() const { return allocator_type(); } > > _Bvector_alloc_base(const allocator_type&) > : _M_start(), _M_finish(), _M_end_of_storage(0) {} > >protected: > typedef typename _Alloc_traits<_Bit_type, _Allocator>::_Alloc_type > _Alloc_type; > > _Bit_type * _M_bit_alloc(size_t __n) > { return _Alloc_type::allocate((__n + _M_word_bit - 1)/_M_word_bit); } > void _M_deallocate() { > if (_M_start._M_p) > _Alloc_type::deallocate(_M_start._M_p, > _M_end_of_storage - _M_start._M_p); > } > > _Bit_iterator _M_start; > _Bit_iterator _M_finish; > _Bit_type * _M_end_of_storage; >}; > >template <class _Alloc> >class _Bvector_base > : public _Bvector_alloc_base<_Alloc, > _Alloc_traits<bool, _Alloc>::_S_instanceless> >{ > typedef _Bvector_alloc_base<_Alloc, > _Alloc_traits<bool, _Alloc>::_S_instanceless> > _Base; >public: > typedef typename _Base::allocator_type allocator_type; > > _Bvector_base(const allocator_type& __a) : _Base(__a) {} > ~_Bvector_base() { _Base::_M_deallocate(); } >}; > >} > > > >namespace std >{ > >template <typename _Alloc> > class vector<bool, _Alloc> : public _Bvector_base<_Alloc> > { > public: > typedef bool value_type; > typedef size_t size_type; > typedef ptrdiff_t difference_type; > typedef _Bit_reference reference; > typedef bool const_reference; > typedef _Bit_reference* pointer; > typedef const bool* const_pointer; > > typedef _Bit_iterator iterator; > typedef _Bit_const_iterator const_iterator; > > typedef std::reverse_iterator<const_iterator> const_reverse_iterator; > typedef std::reverse_iterator<iterator> reverse_iterator; > > typedef typename _Bvector_base<_Alloc>::allocator_type allocator_type; > allocator_type get_allocator() const { > return _Bvector_base<_Alloc>::get_allocator(); > } > > protected: > using _Bvector_base<_Alloc>::_M_bit_alloc; > using _Bvector_base<_Alloc>::_M_deallocate; > using _Bvector_base<_Alloc>::_M_start; > using _Bvector_base<_Alloc>::_M_finish; > using _Bvector_base<_Alloc>::_M_end_of_storage; > > protected: > void _M_initialize(size_type __n) { > _Bit_type * __q = _M_bit_alloc(__n); > _M_end_of_storage = __q + (__n + _M_word_bit - 1)/_M_word_bit; > _M_start = iterator(__q, 0); > _M_finish = _M_start + difference_type(__n); > } > void _M_insert_aux(iterator __position, bool __x) { > if (_M_finish._M_p != _M_end_of_storage) { > copy_backward(__position, _M_finish, _M_finish + 1); > *__position = __x; > ++_M_finish; > } > else { > size_type __len = size() > ? 2 * size() : static_cast<size_type>(_M_word_bit); > _Bit_type * __q = _M_bit_alloc(__len); > iterator __i = copy(begin(), __position, iterator(__q, 0)); > *__i++ = __x; > _M_finish = copy(__position, end(), __i); > _M_deallocate(); > _M_end_of_storage = __q + (__len + _M_word_bit - 1)/_M_word_bit; > _M_start = iterator(__q, 0); > } > } > > template <class _InputIterator> > void _M_initialize_range(_InputIterator __first, _InputIterator __last, > input_iterator_tag) { > _M_start = iterator(); > _M_finish = iterator(); > _M_end_of_storage = 0; > for ( ; __first != __last; ++__first) > push_back(*__first); > } > > template <class _ForwardIterator> > void _M_initialize_range(_ForwardIterator __first, _ForwardIterator __last, > forward_iterator_tag) { > size_type __n = distance(__first, __last); > _M_initialize(__n); > copy(__first, __last, _M_start); > } > > template <class _InputIterator> > void _M_insert_range(iterator __pos, > _InputIterator __first, _InputIterator __last, > input_iterator_tag) { > for ( ; __first != __last; ++__first) { > __pos = insert(__pos, *__first); > ++__pos; > } > } > > template <class _ForwardIterator> > void _M_insert_range(iterator __position, > _ForwardIterator __first, _ForwardIterator __last, > forward_iterator_tag) { > if (__first != __last) { > size_type __n = distance(__first, __last); > if (capacity() - size() >= __n) { > copy_backward(__position, end(), _M_finish + difference_type(__n)); > copy(__first, __last, __position); > _M_finish += difference_type(__n); > } > else { > size_type __len = size() + max(size(), __n); > _Bit_type * __q = _M_bit_alloc(__len); > iterator __i = copy(begin(), __position, iterator(__q, 0)); > __i = copy(__first, __last, __i); > _M_finish = copy(__position, end(), __i); > _M_deallocate(); > _M_end_of_storage = __q + (__len + _M_word_bit - 1)/_M_word_bit; > _M_start = iterator(__q, 0); > } > } > } > > public: > iterator begin() { return _M_start; } > const_iterator begin() const { return _M_start; } > iterator end() { return _M_finish; } > const_iterator end() const { return _M_finish; } > > reverse_iterator rbegin() { return reverse_iterator(end()); } > const_reverse_iterator rbegin() const { > return const_reverse_iterator(end()); > } > reverse_iterator rend() { return reverse_iterator(begin()); } > const_reverse_iterator rend() const { > return const_reverse_iterator(begin()); > } > > size_type size() const { return size_type(end() - begin()); } > size_type max_size() const { return size_type(-1); } > size_type capacity() const { > return size_type(const_iterator(_M_end_of_storage, 0) - begin()); > } > bool empty() const { return begin() == end(); } > > reference operator[](size_type __n) > { return *(begin() + difference_type(__n)); } > const_reference operator[](size_type __n) const > { return *(begin() + difference_type(__n)); } > > void _M_range_check(size_type __n) const { > if (__n >= this->size()) > __throw_out_of_range("vector<bool>"); > } > > reference at(size_type __n) > { _M_range_check(__n); return (*this)[__n]; } > const_reference at(size_type __n) const > { _M_range_check(__n); return (*this)[__n]; } > > explicit vector(const allocator_type& __a = allocator_type()) > : _Bvector_base<_Alloc>(__a) {} > > vector(size_type __n, bool __value, > const allocator_type& __a = allocator_type()) > : _Bvector_base<_Alloc>(__a) > { > _M_initialize(__n); > fill(_M_start._M_p, _M_end_of_storage, __value ? ~0 : 0); > } > > explicit vector(size_type __n) > : _Bvector_base<_Alloc>(allocator_type()) > { > _M_initialize(__n); > fill(_M_start._M_p, _M_end_of_storage, 0); > } > > vector(const vector& __x) : _Bvector_base<_Alloc>(__x.get_allocator()) { > _M_initialize(__x.size()); > copy(__x.begin(), __x.end(), _M_start); > } > > > > template <class _Integer> > void _M_initialize_dispatch(_Integer __n, _Integer __x, __true_type) { > _M_initialize(__n); > fill(_M_start._M_p, _M_end_of_storage, __x ? ~0 : 0); > } > > template <class _InputIterator> > void _M_initialize_dispatch(_InputIterator __first, _InputIterator __last, > __false_type) { > _M_initialize_range(__first, __last, __iterator_category(__first)); > } > > template <class _InputIterator> > vector(_InputIterator __first, _InputIterator __last, > const allocator_type& __a = allocator_type()) > : _Bvector_base<_Alloc>(__a) > { > typedef typename _Is_integer<_InputIterator>::_Integral _Integral; > _M_initialize_dispatch(__first, __last, _Integral()); > } > > ~vector() { } > > vector& operator=(const vector& __x) { > if (&__x == this) return *this; > if (__x.size() > capacity()) { > _M_deallocate(); > _M_initialize(__x.size()); > } > copy(__x.begin(), __x.end(), begin()); > _M_finish = begin() + difference_type(__x.size()); > return *this; > } > > > > > > > void _M_fill_assign(size_t __n, bool __x) { > if (__n > size()) { > fill(_M_start._M_p, _M_end_of_storage, __x ? ~0 : 0); > insert(end(), __n - size(), __x); > } > else { > erase(begin() + __n, end()); > fill(_M_start._M_p, _M_end_of_storage, __x ? ~0 : 0); > } > } > > void assign(size_t __n, bool __x) { _M_fill_assign(__n, __x); } > > template <class _InputIterator> > void assign(_InputIterator __first, _InputIterator __last) { > typedef typename _Is_integer<_InputIterator>::_Integral _Integral; > _M_assign_dispatch(__first, __last, _Integral()); > } > > template <class _Integer> > void _M_assign_dispatch(_Integer __n, _Integer __val, __true_type) > { _M_fill_assign((size_t) __n, (bool) __val); } > > template <class _InputIter> > void _M_assign_dispatch(_InputIter __first, _InputIter __last, __false_type) > { _M_assign_aux(__first, __last, __iterator_category(__first)); } > > template <class _InputIterator> > void _M_assign_aux(_InputIterator __first, _InputIterator __last, > input_iterator_tag) { > iterator __cur = begin(); > for ( ; __first != __last && __cur != end(); ++__cur, ++__first) > *__cur = *__first; > if (__first == __last) > erase(__cur, end()); > else > insert(end(), __first, __last); > } > > template <class _ForwardIterator> > void _M_assign_aux(_ForwardIterator __first, _ForwardIterator __last, > forward_iterator_tag) { > size_type __len = distance(__first, __last); > if (__len < size()) > erase(copy(__first, __last, begin()), end()); > else { > _ForwardIterator __mid = __first; > advance(__mid, size()); > copy(__first, __mid, begin()); > insert(end(), __mid, __last); > } > } > > void reserve(size_type __n) { > if (__n > this->max_size()) > __throw_length_error("vector::reserve"); > if (this->capacity() < __n) { > _Bit_type * __q = _M_bit_alloc(__n); > _M_finish = copy(begin(), end(), iterator(__q, 0)); > _M_deallocate(); > _M_start = iterator(__q, 0); > _M_end_of_storage = __q + (__n + _M_word_bit - 1)/_M_word_bit; > } > } > > reference front() { return *begin(); } > const_reference front() const { return *begin(); } > reference back() { return *(end() - 1); } > const_reference back() const { return *(end() - 1); } > void push_back(bool __x) { > if (_M_finish._M_p != _M_end_of_storage) > *_M_finish++ = __x; > else > _M_insert_aux(end(), __x); > } > void swap(vector<bool, _Alloc>& __x) { > std::swap(_M_start, __x._M_start); > std::swap(_M_finish, __x._M_finish); > std::swap(_M_end_of_storage, __x._M_end_of_storage); > } > > > static void swap(reference __x, reference __y) { > bool __tmp = __x; > __x = __y; > __y = __tmp; > } > > iterator insert(iterator __position, bool __x = bool()) { > difference_type __n = __position - begin(); > if (_M_finish._M_p != _M_end_of_storage && __position == end()) > *_M_finish++ = __x; > else > _M_insert_aux(__position, __x); > return begin() + __n; > } > > > > template <class _Integer> > void _M_insert_dispatch(iterator __pos, _Integer __n, _Integer __x, > __true_type) { > _M_fill_insert(__pos, __n, __x); > } > > template <class _InputIterator> > void _M_insert_dispatch(iterator __pos, > _InputIterator __first, _InputIterator __last, > __false_type) { > _M_insert_range(__pos, __first, __last, __iterator_category(__first)); > } > > template <class _InputIterator> > void insert(iterator __position, > _InputIterator __first, _InputIterator __last) { > typedef typename _Is_integer<_InputIterator>::_Integral _Integral; > _M_insert_dispatch(__position, __first, __last, _Integral()); > } > > void _M_fill_insert(iterator __position, size_type __n, bool __x) { > if (__n == 0) return; > if (capacity() - size() >= __n) { > copy_backward(__position, end(), _M_finish + difference_type(__n)); > fill(__position, __position + difference_type(__n), __x); > _M_finish += difference_type(__n); > } > else { > size_type __len = size() + max(size(), __n); > _Bit_type * __q = _M_bit_alloc(__len); > iterator __i = copy(begin(), __position, iterator(__q, 0)); > fill_n(__i, __n, __x); > _M_finish = copy(__position, end(), __i + difference_type(__n)); > _M_deallocate(); > _M_end_of_storage = __q + (__len + _M_word_bit - 1)/_M_word_bit; > _M_start = iterator(__q, 0); > } > } > > void insert(iterator __position, size_type __n, bool __x) { > _M_fill_insert(__position, __n, __x); > } > > void pop_back() { --_M_finish; } > iterator erase(iterator __position) { > if (__position + 1 != end()) > copy(__position + 1, end(), __position); > --_M_finish; > return __position; > } > iterator erase(iterator __first, iterator __last) { > _M_finish = copy(__last, end(), __first); > return __first; > } > void resize(size_type __new_size, bool __x = bool()) { > if (__new_size < size()) > erase(begin() + difference_type(__new_size), end()); > else > insert(end(), __new_size - size(), __x); > } > void flip() { > for (_Bit_type * __p = _M_start._M_p; __p != _M_end_of_storage; ++__p) > *__p = ~*__p; > } > > void clear() { erase(begin(), end()); } > }; > > >typedef vector<bool, __alloc> bit_vector; > >} ># 73 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/vector" 2 3 > > ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/vector.tcc" 1 3 ># 64 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/vector.tcc" 3 >namespace std >{ > template<typename _Tp, typename _Alloc> > void > vector<_Tp,_Alloc>:: > reserve(size_type __n) > { > if (__n > this->max_size()) > __throw_length_error("vector::reserve"); > if (this->capacity() < __n) > { > const size_type __old_size = size(); > pointer __tmp = _M_allocate_and_copy(__n, _M_start, _M_finish); > _Destroy(_M_start, _M_finish); > _M_deallocate(_M_start, _M_end_of_storage - _M_start); > _M_start = __tmp; > _M_finish = __tmp + __old_size; > _M_end_of_storage = _M_start + __n; > } > } > > template<typename _Tp, typename _Alloc> > typename vector<_Tp,_Alloc>::iterator > vector<_Tp,_Alloc>:: > insert(iterator __position, const value_type& __x) > { > size_type __n = __position - begin(); > if (_M_finish != _M_end_of_storage && __position == end()) > { > _Construct(_M_finish, __x); > ++_M_finish; > } > else > _M_insert_aux(__position, __x); > return begin() + __n; > } > > template<typename _Tp, typename _Alloc> > typename vector<_Tp,_Alloc>::iterator > vector<_Tp,_Alloc>:: > erase(iterator __position) > { > if (__position + 1 != end()) > copy(__position + 1, end(), __position); > --_M_finish; > _Destroy(_M_finish); > return __position; > } > > template<typename _Tp, typename _Alloc> > typename vector<_Tp,_Alloc>::iterator > vector<_Tp,_Alloc>:: > erase(iterator __first, iterator __last) > { > iterator __i(copy(__last, end(), __first)); > _Destroy(__i, end()); > _M_finish = _M_finish - (__last - __first); > return __first; > } > > template<typename _Tp, typename _Alloc> > vector<_Tp,_Alloc>& > vector<_Tp,_Alloc>:: > operator=(const vector<_Tp,_Alloc>& __x) > { > if (&__x != this) > { > const size_type __xlen = __x.size(); > if (__xlen > capacity()) > { > pointer __tmp = _M_allocate_and_copy(__xlen, __x.begin(), __x.end()); > _Destroy(_M_start, _M_finish); > _M_deallocate(_M_start, _M_end_of_storage - _M_start); > _M_start = __tmp; > _M_end_of_storage = _M_start + __xlen; > } > else if (size() >= __xlen) > { > iterator __i(copy(__x.begin(), __x.end(), begin())); > _Destroy(__i, end()); > } > else > { > copy(__x.begin(), __x.begin() + size(), _M_start); > uninitialized_copy(__x.begin() + size(), __x.end(), _M_finish); > } > _M_finish = _M_start + __xlen; > } > return *this; > } > > template<typename _Tp, typename _Alloc> > void > vector<_Tp,_Alloc>:: > _M_fill_assign(size_t __n, const value_type& __val) > { > if (__n > capacity()) > { > vector __tmp(__n, __val, get_allocator()); > __tmp.swap(*this); > } > else if (__n > size()) > { > fill(begin(), end(), __val); > _M_finish = uninitialized_fill_n(_M_finish, __n - size(), __val); > } > else > erase(fill_n(begin(), __n, __val), end()); > } > > template<typename _Tp, typename _Alloc> template<typename _InputIter> > void > vector<_Tp,_Alloc>:: > _M_assign_aux(_InputIter __first, _InputIter __last, input_iterator_tag) > { > iterator __cur(begin()); > for ( ; __first != __last && __cur != end(); ++__cur, ++__first) > *__cur = *__first; > if (__first == __last) > erase(__cur, end()); > else > insert(end(), __first, __last); > } > > template<typename _Tp, typename _Alloc> template<typename _ForwardIter> > void > vector<_Tp,_Alloc>:: > _M_assign_aux(_ForwardIter __first, _ForwardIter __last, > forward_iterator_tag) > { > size_type __len = distance(__first, __last); > > if (__len > capacity()) > { > pointer __tmp(_M_allocate_and_copy(__len, __first, __last)); > _Destroy(_M_start, _M_finish); > _M_deallocate(_M_start, _M_end_of_storage - _M_start); > _M_start = __tmp; > _M_end_of_storage = _M_finish = _M_start + __len; > } > else if (size() >= __len) > { > iterator __new_finish(copy(__first, __last, _M_start)); > _Destroy(__new_finish, end()); > _M_finish = __new_finish.base(); > } > else > { > _ForwardIter __mid = __first; > advance(__mid, size()); > copy(__first, __mid, _M_start); > _M_finish = uninitialized_copy(__mid, __last, _M_finish); > } > } > > template<typename _Tp, typename _Alloc> > void > vector<_Tp,_Alloc>:: > _M_insert_aux(iterator __position, const _Tp& __x) > { > if (_M_finish != _M_end_of_storage) > { > _Construct(_M_finish, *(_M_finish - 1)); > ++_M_finish; > _Tp __x_copy = __x; > copy_backward(__position, iterator(_M_finish-2), iterator(_M_finish-1)); > *__position = __x_copy; > } > else > { > const size_type __old_size = size(); > const size_type __len = __old_size != 0 ? 2 * __old_size : 1; > iterator __new_start(_M_allocate(__len)); > iterator __new_finish(__new_start); > 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/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/vector.tcc" 3 > template<typename _Tp, typename _Alloc> > void > vector<_Tp,_Alloc>:: > _M_fill_insert(iterator __position, size_type __n, const value_type& __x) > { > if (__n != 0) > { > if (size_type(_M_end_of_storage - _M_finish) >= __n) > { > value_type __x_copy = __x; > const size_type __elems_after = end() - __position; > iterator __old_finish(_M_finish); > if (__elems_after > __n) > { > uninitialized_copy(_M_finish - __n, _M_finish, _M_finish); > _M_finish += __n; > copy_backward(__position, __old_finish - __n, __old_finish); > fill(__position, __position + __n, __x_copy); > } > else > { > uninitialized_fill_n(_M_finish, __n - __elems_after, __x_copy); > _M_finish += __n - __elems_after; > uninitialized_copy(__position, __old_finish, _M_finish); > _M_finish += __elems_after; > fill(__position, __old_finish, __x_copy); > } > } > else > { > const size_type __old_size = size(); > const size_type __len = __old_size + max(__old_size, __n); > iterator __new_start(_M_allocate(__len)); > iterator __new_finish(__new_start); > 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<typename _Tp, typename _Alloc> template<typename _InputIterator> > void > vector<_Tp,_Alloc>:: > _M_range_insert(iterator __pos, > _InputIterator __first, _InputIterator __last, > input_iterator_tag) > { > for ( ; __first != __last; ++__first) > { > __pos = insert(__pos, *__first); > ++__pos; > } > } > > template<typename _Tp, typename _Alloc> template<typename _ForwardIterator> > void > vector<_Tp,_Alloc>:: > _M_range_insert(iterator __position,_ForwardIterator __first, > _ForwardIterator __last, forward_iterator_tag) > { > if (__first != __last) > { > size_type __n = distance(__first, __last); > if (size_type(_M_end_of_storage - _M_finish) >= __n) > { > const size_type __elems_after = end() - __position; > iterator __old_finish(_M_finish); > if (__elems_after > __n) > { > uninitialized_copy(_M_finish - __n, _M_finish, _M_finish); > _M_finish += __n; > copy_backward(__position, __old_finish - __n, __old_finish); > copy(__first, __last, __position); > } > else > { > _ForwardIterator __mid = __first; > advance(__mid, __elems_after); > uninitialized_copy(__mid, __last, _M_finish); > _M_finish += __n - __elems_after; > uninitialized_copy(__position, __old_finish, _M_finish); > _M_finish += __elems_after; > copy(__first, __mid, __position); > } > } > else > { > const size_type __old_size = size(); > const size_type __len = __old_size + max(__old_size, __n); > iterator __new_start(_M_allocate(__len)); > iterator __new_finish(__new_start); > 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/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/vector" 2 3 ># 18 "../../OgreMain/include/OgreStdHeaders.h" 2 ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/map" 1 3 ># 64 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/map" 3 > ># 65 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/map" 3 > ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_tree.h" 1 3 ># 89 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_tree.h" 3 ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_function.h" 1 3 ># 64 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_function.h" 3 >namespace std >{ ># 101 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_function.h" 3 >template <class _Arg, class _Result> >struct unary_function { > typedef _Arg argument_type; > typedef _Result result_type; >}; > > > > >template <class _Arg1, class _Arg2, class _Result> >struct binary_function { > typedef _Arg1 first_argument_type; > typedef _Arg2 second_argument_type; > typedef _Result result_type; >}; ># 127 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_function.h" 3 >template <class _Tp> >struct plus : public binary_function<_Tp,_Tp,_Tp> { > _Tp operator()(const _Tp& __x, const _Tp& __y) const { return __x + __y; } >}; > > >template <class _Tp> >struct minus : public binary_function<_Tp,_Tp,_Tp> { > _Tp operator()(const _Tp& __x, const _Tp& __y) const { return __x - __y; } >}; > > >template <class _Tp> >struct multiplies : public binary_function<_Tp,_Tp,_Tp> { > _Tp operator()(const _Tp& __x, const _Tp& __y) const { return __x * __y; } >}; > > >template <class _Tp> >struct divides : public binary_function<_Tp,_Tp,_Tp> { > _Tp operator()(const _Tp& __x, const _Tp& __y) const { return __x / __y; } >}; > > >template <class _Tp> >struct modulus : public binary_function<_Tp,_Tp,_Tp> >{ > _Tp operator()(const _Tp& __x, const _Tp& __y) const { return __x % __y; } >}; > > >template <class _Tp> >struct negate : public unary_function<_Tp,_Tp> >{ > _Tp operator()(const _Tp& __x) const { return -__x; } >}; ># 173 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_function.h" 3 >template <class _Tp> >struct equal_to : public binary_function<_Tp,_Tp,bool> >{ > bool operator()(const _Tp& __x, const _Tp& __y) const { return __x == __y; } >}; > > >template <class _Tp> >struct not_equal_to : public binary_function<_Tp,_Tp,bool> >{ > bool operator()(const _Tp& __x, const _Tp& __y) const { return __x != __y; } >}; > > >template <class _Tp> >struct greater : public binary_function<_Tp,_Tp,bool> >{ > bool operator()(const _Tp& __x, const _Tp& __y) const { return __x > __y; } >}; > > >template <class _Tp> >struct less : public binary_function<_Tp,_Tp,bool> >{ > bool operator()(const _Tp& __x, const _Tp& __y) const { return __x < __y; } >}; > > >template <class _Tp> >struct greater_equal : public binary_function<_Tp,_Tp,bool> >{ > bool operator()(const _Tp& __x, const _Tp& __y) const { return __x >= __y; } >}; > > >template <class _Tp> >struct less_equal : public binary_function<_Tp,_Tp,bool> >{ > bool operator()(const _Tp& __x, const _Tp& __y) const { return __x <= __y; } >}; ># 222 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_function.h" 3 >template <class _Tp> >struct logical_and : public binary_function<_Tp,_Tp,bool> >{ > bool operator()(const _Tp& __x, const _Tp& __y) const { return __x && __y; } >}; > > >template <class _Tp> >struct logical_or : public binary_function<_Tp,_Tp,bool> >{ > bool operator()(const _Tp& __x, const _Tp& __y) const { return __x || __y; } >}; > > >template <class _Tp> >struct logical_not : public unary_function<_Tp,bool> >{ > bool operator()(const _Tp& __x) const { return !__x; } >}; ># 271 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_function.h" 3 >template <class _Predicate> >class unary_negate > : public unary_function<typename _Predicate::argument_type, bool> { >protected: > _Predicate _M_pred; >public: > explicit unary_negate(const _Predicate& __x) : _M_pred(__x) {} > bool operator()(const typename _Predicate::argument_type& __x) const { > return !_M_pred(__x); > } >}; > > >template <class _Predicate> >inline unary_negate<_Predicate> >not1(const _Predicate& __pred) >{ > return unary_negate<_Predicate>(__pred); >} > > >template <class _Predicate> >class binary_negate > : public binary_function<typename _Predicate::first_argument_type, > typename _Predicate::second_argument_type, > bool> { >protected: > _Predicate _M_pred; >public: > explicit binary_negate(const _Predicate& __x) : _M_pred(__x) {} > bool operator()(const typename _Predicate::first_argument_type& __x, > const typename _Predicate::second_argument_type& __y) const > { > return !_M_pred(__x, __y); > } >}; > > >template <class _Predicate> >inline binary_negate<_Predicate> >not2(const _Predicate& __pred) >{ > return binary_negate<_Predicate>(__pred); >} ># 349 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_function.h" 3 >template <class _Operation> >class binder1st > : public unary_function<typename _Operation::second_argument_type, > typename _Operation::result_type> { >protected: > _Operation op; > typename _Operation::first_argument_type value; >public: > binder1st(const _Operation& __x, > const typename _Operation::first_argument_type& __y) > : op(__x), value(__y) {} > typename _Operation::result_type > operator()(const typename _Operation::second_argument_type& __x) const { > return op(value, __x); > } > > > typename _Operation::result_type > operator()(typename _Operation::second_argument_type& __x) const { > return op(value, __x); > } > >}; > > >template <class _Operation, class _Tp> >inline binder1st<_Operation> >bind1st(const _Operation& __fn, const _Tp& __x) >{ > typedef typename _Operation::first_argument_type _Arg1_type; > return binder1st<_Operation>(__fn, _Arg1_type(__x)); >} > > >template <class _Operation> >class binder2nd > : public unary_function<typename _Operation::first_argument_type, > typename _Operation::result_type> { >protected: > _Operation op; > typename _Operation::second_argument_type value; >public: > binder2nd(const _Operation& __x, > const typename _Operation::second_argument_type& __y) > : op(__x), value(__y) {} > typename _Operation::result_type > operator()(const typename _Operation::first_argument_type& __x) const { > return op(__x, value); > } > > > typename _Operation::result_type > operator()(typename _Operation::first_argument_type& __x) const { > return op(__x, value); > } > >}; > > >template <class _Operation, class _Tp> >inline binder2nd<_Operation> >bind2nd(const _Operation& __fn, const _Tp& __x) >{ > typedef typename _Operation::second_argument_type _Arg2_type; > return binder2nd<_Operation>(__fn, _Arg2_type(__x)); >} ># 438 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_function.h" 3 >template <class _Arg, class _Result> >class pointer_to_unary_function : public unary_function<_Arg, _Result> { >protected: > _Result (*_M_ptr)(_Arg); >public: > pointer_to_unary_function() {} > explicit pointer_to_unary_function(_Result (*__x)(_Arg)) : _M_ptr(__x) {} > _Result operator()(_Arg __x) const { return _M_ptr(__x); } >}; > > >template <class _Arg, class _Result> >inline pointer_to_unary_function<_Arg, _Result> ptr_fun(_Result (*__x)(_Arg)) >{ > return pointer_to_unary_function<_Arg, _Result>(__x); >} > > >template <class _Arg1, class _Arg2, class _Result> >class pointer_to_binary_function : > public binary_function<_Arg1,_Arg2,_Result> { >protected: > _Result (*_M_ptr)(_Arg1, _Arg2); >public: > pointer_to_binary_function() {} > explicit pointer_to_binary_function(_Result (*__x)(_Arg1, _Arg2)) > : _M_ptr(__x) {} > _Result operator()(_Arg1 __x, _Arg2 __y) const { > return _M_ptr(__x, __y); > } >}; > > >template <class _Arg1, class _Arg2, class _Result> >inline pointer_to_binary_function<_Arg1,_Arg2,_Result> >ptr_fun(_Result (*__x)(_Arg1, _Arg2)) { > return pointer_to_binary_function<_Arg1,_Arg2,_Result>(__x); >} > > >template <class _Tp> >struct _Identity : public unary_function<_Tp,_Tp> { > _Tp& operator()(_Tp& __x) const { return __x; } > const _Tp& operator()(const _Tp& __x) const { return __x; } >}; > >template <class _Pair> >struct _Select1st : public unary_function<_Pair, typename _Pair::first_type> { > typename _Pair::first_type& operator()(_Pair& __x) const { > return __x.first; > } > const typename _Pair::first_type& operator()(const _Pair& __x) const { > return __x.first; > } >}; > >template <class _Pair> >struct _Select2nd : public unary_function<_Pair, typename _Pair::second_type> >{ > typename _Pair::second_type& operator()(_Pair& __x) const { > return __x.second; > } > const typename _Pair::second_type& operator()(const _Pair& __x) const { > return __x.second; > } >}; ># 528 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_function.h" 3 >template <class _Ret, class _Tp> >class mem_fun_t : public unary_function<_Tp*,_Ret> { >public: > explicit mem_fun_t(_Ret (_Tp::*__pf)()) : _M_f(__pf) {} > _Ret operator()(_Tp* __p) const { return (__p->*_M_f)(); } >private: > _Ret (_Tp::*_M_f)(); >}; > > >template <class _Ret, class _Tp> >class const_mem_fun_t : public unary_function<const _Tp*,_Ret> { >public: > explicit const_mem_fun_t(_Ret (_Tp::*__pf)() const) : _M_f(__pf) {} > _Ret operator()(const _Tp* __p) const { return (__p->*_M_f)(); } >private: > _Ret (_Tp::*_M_f)() const; >}; > > >template <class _Ret, class _Tp> >class mem_fun_ref_t : public unary_function<_Tp,_Ret> { >public: > explicit mem_fun_ref_t(_Ret (_Tp::*__pf)()) : _M_f(__pf) {} > _Ret operator()(_Tp& __r) const { return (__r.*_M_f)(); } >private: > _Ret (_Tp::*_M_f)(); >}; > > >template <class _Ret, class _Tp> >class const_mem_fun_ref_t : public unary_function<_Tp,_Ret> { >public: > explicit const_mem_fun_ref_t(_Ret (_Tp::*__pf)() const) : _M_f(__pf) {} > _Ret operator()(const _Tp& __r) const { return (__r.*_M_f)(); } >private: > _Ret (_Tp::*_M_f)() const; >}; > > >template <class _Ret, class _Tp, class _Arg> >class mem_fun1_t : public binary_function<_Tp*,_Arg,_Ret> { >public: > explicit mem_fun1_t(_Ret (_Tp::*__pf)(_Arg)) : _M_f(__pf) {} > _Ret operator()(_Tp* __p, _Arg __x) const { return (__p->*_M_f)(__x); } >private: > _Ret (_Tp::*_M_f)(_Arg); >}; > > >template <class _Ret, class _Tp, class _Arg> >class const_mem_fun1_t : public binary_function<const _Tp*,_Arg,_Ret> { >public: > explicit const_mem_fun1_t(_Ret (_Tp::*__pf)(_Arg) const) : _M_f(__pf) {} > _Ret operator()(const _Tp* __p, _Arg __x) const > { return (__p->*_M_f)(__x); } >private: > _Ret (_Tp::*_M_f)(_Arg) const; >}; > > >template <class _Ret, class _Tp, class _Arg> >class mem_fun1_ref_t : public binary_function<_Tp,_Arg,_Ret> { >public: > explicit mem_fun1_ref_t(_Ret (_Tp::*__pf)(_Arg)) : _M_f(__pf) {} > _Ret operator()(_Tp& __r, _Arg __x) const { return (__r.*_M_f)(__x); } >private: > _Ret (_Tp::*_M_f)(_Arg); >}; > > >template <class _Ret, class _Tp, class _Arg> >class const_mem_fun1_ref_t : public binary_function<_Tp,_Arg,_Ret> { >public: > explicit const_mem_fun1_ref_t(_Ret (_Tp::*__pf)(_Arg) const) : _M_f(__pf) {} > _Ret operator()(const _Tp& __r, _Arg __x) const { return (__r.*_M_f)(__x); } >private: > _Ret (_Tp::*_M_f)(_Arg) const; >}; > > >template <class _Tp> >class mem_fun_t<void, _Tp> : public unary_function<_Tp*,void> { >public: > explicit mem_fun_t(void (_Tp::*__pf)()) : _M_f(__pf) {} > void operator()(_Tp* __p) const { (__p->*_M_f)(); } >private: > void (_Tp::*_M_f)(); >}; > > >template <class _Tp> >class const_mem_fun_t<void, _Tp> : public unary_function<const _Tp*,void> { >public: > explicit const_mem_fun_t(void (_Tp::*__pf)() const) : _M_f(__pf) {} > void operator()(const _Tp* __p) const { (__p->*_M_f)(); } >private: > void (_Tp::*_M_f)() const; >}; > > >template <class _Tp> >class mem_fun_ref_t<void, _Tp> : public unary_function<_Tp,void> { >public: > explicit mem_fun_ref_t(void (_Tp::*__pf)()) : _M_f(__pf) {} > void operator()(_Tp& __r) const { (__r.*_M_f)(); } >private: > void (_Tp::*_M_f)(); >}; > > >template <class _Tp> >class const_mem_fun_ref_t<void, _Tp> : public unary_function<_Tp,void> { >public: > explicit const_mem_fun_ref_t(void (_Tp::*__pf)() const) : _M_f(__pf) {} > void operator()(const _Tp& __r) const { (__r.*_M_f)(); } >private: > void (_Tp::*_M_f)() const; >}; > > >template <class _Tp, class _Arg> >class mem_fun1_t<void, _Tp, _Arg> : public binary_function<_Tp*,_Arg,void> { >public: > explicit mem_fun1_t(void (_Tp::*__pf)(_Arg)) : _M_f(__pf) {} > void operator()(_Tp* __p, _Arg __x) const { (__p->*_M_f)(__x); } >private: > void (_Tp::*_M_f)(_Arg); >}; > > >template <class _Tp, class _Arg> >class const_mem_fun1_t<void, _Tp, _Arg> > : public binary_function<const _Tp*,_Arg,void> { >public: > explicit const_mem_fun1_t(void (_Tp::*__pf)(_Arg) const) : _M_f(__pf) {} > void operator()(const _Tp* __p, _Arg __x) const { (__p->*_M_f)(__x); } >private: > void (_Tp::*_M_f)(_Arg) const; >}; > > >template <class _Tp, class _Arg> >class mem_fun1_ref_t<void, _Tp, _Arg> > : public binary_function<_Tp,_Arg,void> { >public: > explicit mem_fun1_ref_t(void (_Tp::*__pf)(_Arg)) : _M_f(__pf) {} > void operator()(_Tp& __r, _Arg __x) const { (__r.*_M_f)(__x); } >private: > void (_Tp::*_M_f)(_Arg); >}; > > >template <class _Tp, class _Arg> >class const_mem_fun1_ref_t<void, _Tp, _Arg> > : public binary_function<_Tp,_Arg,void> { >public: > explicit const_mem_fun1_ref_t(void (_Tp::*__pf)(_Arg) const) : _M_f(__pf) {} > void operator()(const _Tp& __r, _Arg __x) const { (__r.*_M_f)(__x); } >private: > void (_Tp::*_M_f)(_Arg) const; >}; > > > > > >template <class _Ret, class _Tp> >inline mem_fun_t<_Ret,_Tp> mem_fun(_Ret (_Tp::*__f)()) > { return mem_fun_t<_Ret,_Tp>(__f); } > >template <class _Ret, class _Tp> >inline const_mem_fun_t<_Ret,_Tp> mem_fun(_Ret (_Tp::*__f)() const) > { return const_mem_fun_t<_Ret,_Tp>(__f); } > >template <class _Ret, class _Tp> >inline mem_fun_ref_t<_Ret,_Tp> mem_fun_ref(_Ret (_Tp::*__f)()) > { return mem_fun_ref_t<_Ret,_Tp>(__f); } > >template <class _Ret, class _Tp> >inline const_mem_fun_ref_t<_Ret,_Tp> mem_fun_ref(_Ret (_Tp::*__f)() const) > { return const_mem_fun_ref_t<_Ret,_Tp>(__f); } > >template <class _Ret, class _Tp, class _Arg> >inline mem_fun1_t<_Ret,_Tp,_Arg> mem_fun(_Ret (_Tp::*__f)(_Arg)) > { return mem_fun1_t<_Ret,_Tp,_Arg>(__f); } > >template <class _Ret, class _Tp, class _Arg> >inline const_mem_fun1_t<_Ret,_Tp,_Arg> mem_fun(_Ret (_Tp::*__f)(_Arg) const) > { return const_mem_fun1_t<_Ret,_Tp,_Arg>(__f); } > >template <class _Ret, class _Tp, class _Arg> >inline mem_fun1_ref_t<_Ret,_Tp,_Arg> mem_fun_ref(_Ret (_Tp::*__f)(_Arg)) > { return mem_fun1_ref_t<_Ret,_Tp,_Arg>(__f); } > >template <class _Ret, class _Tp, class _Arg> >inline const_mem_fun1_ref_t<_Ret,_Tp,_Arg> >mem_fun_ref(_Ret (_Tp::*__f)(_Arg) const) > { return const_mem_fun1_ref_t<_Ret,_Tp,_Arg>(__f); } > > > >} ># 90 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_tree.h" 2 3 > >namespace std >{ > enum _Rb_tree_color { _M_red = false, _M_black = true }; > > struct _Rb_tree_node_base > { > typedef _Rb_tree_node_base* _Base_ptr; > > _Rb_tree_color _M_color; > _Base_ptr _M_parent; > _Base_ptr _M_left; > _Base_ptr _M_right; > > static _Base_ptr > _S_minimum(_Base_ptr __x) > { > while (__x->_M_left != 0) __x = __x->_M_left; > return __x; > } > > static _Base_ptr > _S_maximum(_Base_ptr __x) > { > while (__x->_M_right != 0) __x = __x->_M_right; > return __x; > } > }; > > template<typename _Val> > struct _Rb_tree_node : public _Rb_tree_node_base > { > typedef _Rb_tree_node<_Val>* _Link_type; > _Val _M_value_field; > }; > > struct _Rb_tree_base_iterator > { > typedef _Rb_tree_node_base::_Base_ptr _Base_ptr; > typedef bidirectional_iterator_tag iterator_category; > typedef ptrdiff_t difference_type; > > _Base_ptr _M_node; > > void > _M_increment() > { > if (_M_node->_M_right != 0) > { > _M_node = _M_node->_M_right; > while (_M_node->_M_left != 0) > _M_node = _M_node->_M_left; > } > else > { > _Base_ptr __y = _M_node->_M_parent; > while (_M_node == __y->_M_right) > { > _M_node = __y; > __y = __y->_M_parent; > } > if (_M_node->_M_right != __y) > _M_node = __y; > } > } > > void > _M_decrement() > { > if (_M_node->_M_color == _M_red > && _M_node->_M_parent->_M_parent == _M_node) > _M_node = _M_node->_M_right; > else if (_M_node->_M_left != 0) > { > _Base_ptr __y = _M_node->_M_left; > while (__y->_M_right != 0) > __y = __y->_M_right; > _M_node = __y; > } > else > { > _Base_ptr __y = _M_node->_M_parent; > while (_M_node == __y->_M_left) > { > _M_node = __y; > __y = __y->_M_parent; > } > _M_node = __y; > } > } > }; > > template<typename _Val, typename _Ref, typename _Ptr> > struct _Rb_tree_iterator : public _Rb_tree_base_iterator > { > typedef _Val value_type; > typedef _Ref reference; > typedef _Ptr pointer; > typedef _Rb_tree_iterator<_Val, _Val&, _Val*> iterator; > typedef _Rb_tree_iterator<_Val, const _Val&, const _Val*> > const_iterator; > typedef _Rb_tree_iterator<_Val, _Ref, _Ptr> _Self; > typedef _Rb_tree_node<_Val>* _Link_type; > > _Rb_tree_iterator() { _M_node = 0; } > _Rb_tree_iterator(_Link_type __x) { _M_node = __x; } > _Rb_tree_iterator(const iterator& __it) { _M_node = __it._M_node; } > > reference > operator*() const { return _Link_type(_M_node)->_M_value_field; } > > pointer > operator->() const { return &(operator*()); } > > _Self& > operator++() > { > _M_increment(); > return *this; > } > > _Self > operator++(int) > { > _Self __tmp = *this; > _M_increment(); > return __tmp; > } > > _Self& > operator--() { _M_decrement(); return *this; } > > _Self > operator--(int) > { > _Self __tmp = *this; > _M_decrement(); > return __tmp; > } > }; > > template<typename _Val, typename _Ref, typename _Ptr> > inline bool > operator==(const _Rb_tree_iterator<_Val, _Ref, _Ptr>& __x, > const _Rb_tree_iterator<_Val, _Ref, _Ptr>& __y) > { return __x._M_node == __y._M_node; } > > template<typename _Val> > inline bool > operator==(const _Rb_tree_iterator<_Val, const _Val&, const _Val*>& __x, > const _Rb_tree_iterator<_Val, _Val&, _Val*>& __y) > { return __x._M_node == __y._M_node; } > > template<typename _Val> > inline bool > operator==(const _Rb_tree_iterator<_Val, _Val&, _Val*>& __x, > const _Rb_tree_iterator<_Val, const _Val&, const _Val*>& __y) > { return __x._M_node == __y._M_node; } > > template<typename _Val, typename _Ref, typename _Ptr> > inline bool > operator!=(const _Rb_tree_iterator<_Val, _Ref, _Ptr>& __x, > const _Rb_tree_iterator<_Val, _Ref, _Ptr>& __y) > { return __x._M_node != __y._M_node; } > > template<typename _Val> > inline bool > operator!=(const _Rb_tree_iterator<_Val, const _Val&, const _Val*>& __x, > const _Rb_tree_iterator<_Val, _Val&, _Val*>& __y) > { return __x._M_node != __y._M_node; } > > template<typename _Val> > inline bool > operator!=(const _Rb_tree_iterator<_Val, _Val&, _Val*>& __x, > const _Rb_tree_iterator<_Val, const _Val&, const _Val*>& __y) > { return __x._M_node != __y._M_node; } > > inline void > _Rb_tree_rotate_left(_Rb_tree_node_base* __x, _Rb_tree_node_base*& __root) > { > _Rb_tree_node_base* __y = __x->_M_right; > __x->_M_right = __y->_M_left; > if (__y->_M_left !=0) > __y->_M_left->_M_parent = __x; > __y->_M_parent = __x->_M_parent; > > if (__x == __root) > __root = __y; > else if (__x == __x->_M_parent->_M_left) > __x->_M_parent->_M_left = __y; > else > __x->_M_parent->_M_right = __y; > __y->_M_left = __x; > __x->_M_parent = __y; > } > > inline void > _Rb_tree_rotate_right(_Rb_tree_node_base* __x, _Rb_tree_node_base*& __root) > { > _Rb_tree_node_base* __y = __x->_M_left; > __x->_M_left = __y->_M_right; > if (__y->_M_right != 0) > __y->_M_right->_M_parent = __x; > __y->_M_parent = __x->_M_parent; > > if (__x == __root) > __root = __y; > else if (__x == __x->_M_parent->_M_right) > __x->_M_parent->_M_right = __y; > else > __x->_M_parent->_M_left = __y; > __y->_M_right = __x; > __x->_M_parent = __y; > } > > inline void > _Rb_tree_rebalance(_Rb_tree_node_base* __x, _Rb_tree_node_base*& __root) > { > __x->_M_color = _M_red; > while (__x != __root > && __x->_M_parent->_M_color == _M_red) > { > if (__x->_M_parent == __x->_M_parent->_M_parent->_M_left) > { > _Rb_tree_node_base* __y = __x->_M_parent->_M_parent->_M_right; > if (__y && __y->_M_color == _M_red) > { > __x->_M_parent->_M_color = _M_black; > __y->_M_color = _M_black; > __x->_M_parent->_M_parent->_M_color = _M_red; > __x = __x->_M_parent->_M_parent; > } > else > { > if (__x == __x->_M_parent->_M_right) > { > __x = __x->_M_parent; > _Rb_tree_rotate_left(__x, __root); > } > __x->_M_parent->_M_color = _M_black; > __x->_M_parent->_M_parent->_M_color = _M_red; > _Rb_tree_rotate_right(__x->_M_parent->_M_parent, __root); > } > } > else > { > _Rb_tree_node_base* __y = __x->_M_parent->_M_parent->_M_left; > if (__y && __y->_M_color == _M_red) > { > __x->_M_parent->_M_color = _M_black; > __y->_M_color = _M_black; > __x->_M_parent->_M_parent->_M_color = _M_red; > __x = __x->_M_parent->_M_parent; > } > else > { > if (__x == __x->_M_parent->_M_left) > { > __x = __x->_M_parent; > _Rb_tree_rotate_right(__x, __root); > } > __x->_M_parent->_M_color = _M_black; > __x->_M_parent->_M_parent->_M_color = _M_red; > _Rb_tree_rotate_left(__x->_M_parent->_M_parent, __root); > } > } > } > __root->_M_color = _M_black; > } > > inline _Rb_tree_node_base* > _Rb_tree_rebalance_for_erase(_Rb_tree_node_base* __z, > _Rb_tree_node_base*& __root, > _Rb_tree_node_base*& __leftmost, > _Rb_tree_node_base*& __rightmost) > { > _Rb_tree_node_base* __y = __z; > _Rb_tree_node_base* __x = 0; > _Rb_tree_node_base* __x_parent = 0; > if (__y->_M_left == 0) > __x = __y->_M_right; > else > if (__y->_M_right == 0) > __x = __y->_M_left; > else > { > > __y = __y->_M_right; > while (__y->_M_left != 0) > __y = __y->_M_left; > __x = __y->_M_right; > } > if (__y != __z) > { > > __z->_M_left->_M_parent = __y; > __y->_M_left = __z->_M_left; > if (__y != __z->_M_right) > { > __x_parent = __y->_M_parent; > if (__x) __x->_M_parent = __y->_M_parent; > __y->_M_parent->_M_left = __x; > __y->_M_right = __z->_M_right; > __z->_M_right->_M_parent = __y; > } > else > __x_parent = __y; > if (__root == __z) > __root = __y; > else if (__z->_M_parent->_M_left == __z) > __z->_M_parent->_M_left = __y; > else > __z->_M_parent->_M_right = __y; > __y->_M_parent = __z->_M_parent; > std::swap(__y->_M_color, __z->_M_color); > __y = __z; > > } > else > { > __x_parent = __y->_M_parent; > if (__x) > __x->_M_parent = __y->_M_parent; > if (__root == __z) > __root = __x; > else > if (__z->_M_parent->_M_left == __z) > __z->_M_parent->_M_left = __x; > else > __z->_M_parent->_M_right = __x; > if (__leftmost == __z) > if (__z->_M_right == 0) > __leftmost = __z->_M_parent; > > else > __leftmost = _Rb_tree_node_base::_S_minimum(__x); > if (__rightmost == __z) > if (__z->_M_left == 0) > __rightmost = __z->_M_parent; > > else > __rightmost = _Rb_tree_node_base::_S_maximum(__x); > } > if (__y->_M_color != _M_red) > { > while (__x != __root && (__x == 0 || __x->_M_color == _M_black)) > if (__x == __x_parent->_M_left) > { > _Rb_tree_node_base* __w = __x_parent->_M_right; > if (__w->_M_color == _M_red) > { > __w->_M_color = _M_black; > __x_parent->_M_color = _M_red; > _Rb_tree_rotate_left(__x_parent, __root); > __w = __x_parent->_M_right; > } > if ((__w->_M_left == 0 || > __w->_M_left->_M_color == _M_black) && > (__w->_M_right == 0 || > __w->_M_right->_M_color == _M_black)) > { > __w->_M_color = _M_red; > __x = __x_parent; > __x_parent = __x_parent->_M_parent; > } > else > { > if (__w->_M_right == 0 > || __w->_M_right->_M_color == _M_black) > { > __w->_M_left->_M_color = _M_black; > __w->_M_color = _M_red; > _Rb_tree_rotate_right(__w, __root); > __w = __x_parent->_M_right; > } > __w->_M_color = __x_parent->_M_color; > __x_parent->_M_color = _M_black; > if (__w->_M_right) > __w->_M_right->_M_color = _M_black; > _Rb_tree_rotate_left(__x_parent, __root); > break; > } > } > else > { > > _Rb_tree_node_base* __w = __x_parent->_M_left; > if (__w->_M_color == _M_red) > { > __w->_M_color = _M_black; > __x_parent->_M_color = _M_red; > _Rb_tree_rotate_right(__x_parent, __root); > __w = __x_parent->_M_left; > } > if ((__w->_M_right == 0 || > __w->_M_right->_M_color == _M_black) && > (__w->_M_left == 0 || > __w->_M_left->_M_color == _M_black)) > { > __w->_M_color = _M_red; > __x = __x_parent; > __x_parent = __x_parent->_M_parent; > } > else > { > if (__w->_M_left == 0 || __w->_M_left->_M_color == _M_black) > { > __w->_M_right->_M_color = _M_black; > __w->_M_color = _M_red; > _Rb_tree_rotate_left(__w, __root); > __w = __x_parent->_M_left; > } > __w->_M_color = __x_parent->_M_color; > __x_parent->_M_color = _M_black; > if (__w->_M_left) > __w->_M_left->_M_color = _M_black; > _Rb_tree_rotate_right(__x_parent, __root); > break; > } > } > if (__x) __x->_M_color = _M_black; > } > return __y; > } > > > > > > > > template<typename _Tp, typename _Alloc, bool _S_instanceless> > class _Rb_tree_alloc_base > { > public: > typedef typename _Alloc_traits<_Tp, _Alloc>::allocator_type allocator_type; > > allocator_type > get_allocator() const { return _M_node_allocator; } > > _Rb_tree_alloc_base(const allocator_type& __a) > : _M_node_allocator(__a), _M_header(0) {} > > protected: > typename _Alloc_traits<_Rb_tree_node<_Tp>, _Alloc>::allocator_type > _M_node_allocator; > > _Rb_tree_node<_Tp>* _M_header; > > _Rb_tree_node<_Tp>* > _M_get_node() { return _M_node_allocator.allocate(1); } > > void > _M_put_node(_Rb_tree_node<_Tp>* __p) > { _M_node_allocator.deallocate(__p, 1); } > }; > > > template<typename _Tp, typename _Alloc> > class _Rb_tree_alloc_base<_Tp, _Alloc, true> > { > public: > typedef typename _Alloc_traits<_Tp, _Alloc>::allocator_type allocator_type; > allocator_type get_allocator() const { return allocator_type(); } > > _Rb_tree_alloc_base(const allocator_type&) : _M_header(0) {} > > protected: > _Rb_tree_node<_Tp>* _M_header; > > typedef typename _Alloc_traits<_Rb_tree_node<_Tp>, _Alloc>::_Alloc_type > _Alloc_type; > > _Rb_tree_node<_Tp>* > _M_get_node() { return _Alloc_type::allocate(1); } > > void > _M_put_node(_Rb_tree_node<_Tp>* __p) { _Alloc_type::deallocate(__p, 1); } > }; > > template<typename _Tp, typename _Alloc> > struct _Rb_tree_base : public _Rb_tree_alloc_base<_Tp, _Alloc, > _Alloc_traits<_Tp, _Alloc>::_S_instanceless> > { > typedef _Rb_tree_alloc_base<_Tp, > _Alloc, _Alloc_traits<_Tp, _Alloc>::_S_instanceless> _Base; > typedef typename _Base::allocator_type allocator_type; > > _Rb_tree_base(const allocator_type& __a) > : _Base(__a) { _M_header = _M_get_node(); } > ~_Rb_tree_base() { _M_put_node(_M_header); } > }; > > > template<typename _Key, typename _Val, typename _KeyOfValue, > typename _Compare, typename _Alloc = allocator<_Val> > > class _Rb_tree : protected _Rb_tree_base<_Val, _Alloc> > { > typedef _Rb_tree_base<_Val, _Alloc> _Base; > > protected: > typedef _Rb_tree_node_base* _Base_ptr; > typedef _Rb_tree_node<_Val> _Rb_tree_node; > > public: > typedef _Key key_type; > typedef _Val value_type; > typedef value_type* pointer; > typedef const value_type* const_pointer; > typedef value_type& reference; > typedef const value_type& const_reference; > typedef _Rb_tree_node* _Link_type; > typedef size_t size_type; > typedef ptrdiff_t difference_type; > > typedef typename _Base::allocator_type allocator_type; > allocator_type get_allocator() const { return _Base::get_allocator(); } > > protected: > using _Base::_M_get_node; > using _Base::_M_put_node; > using _Base::_M_header; > > _Link_type > _M_create_node(const value_type& __x) > { > _Link_type __tmp = _M_get_node(); > 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<value_type, reference, pointer> iterator; > typedef _Rb_tree_iterator<value_type, const_reference, const_pointer> > const_iterator; > > typedef std::reverse_iterator<const_iterator> const_reverse_iterator; > typedef std::reverse_iterator<iterator> reverse_iterator; > > private: > iterator > _M_insert(_Base_ptr __x, _Base_ptr __y, const value_type& __v); > > _Link_type > _M_copy(_Link_type __x, _Link_type __p); > > void > _M_erase(_Link_type __x); > > public: > > _Rb_tree() > : _Base(allocator_type()), _M_node_count(0), _M_key_compare() > { _M_empty_initialize(); } > > _Rb_tree(const _Compare& __comp) > : _Base(allocator_type()), _M_node_count(0), _M_key_compare(__comp) > { _M_empty_initialize(); } > > _Rb_tree(const _Compare& __comp, const allocator_type& __a) > : _Base(__a), _M_node_count(0), _M_key_compare(__comp) > { _M_empty_initialize(); } > > _Rb_tree(const _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>& __x) > : _Base(__x.get_allocator()), _M_node_count(0), > _M_key_compare(__x._M_key_compare) > { > if (__x._M_root() == 0) > _M_empty_initialize(); > else > { > _S_color(_M_header) = _M_red; > _M_root() = _M_copy(__x._M_root(), _M_header); > _M_leftmost() = _S_minimum(_M_root()); > _M_rightmost() = _S_maximum(_M_root()); > } > _M_node_count = __x._M_node_count; > } > > ~_Rb_tree() { clear(); } > > _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>& > operator=(const _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>& __x); > > private: > void _M_empty_initialize() > { > _S_color(_M_header) = _M_red; > > _M_root() = 0; > _M_leftmost() = _M_header; > _M_rightmost() = _M_header; > } > > public: > > _Compare > key_comp() const { return _M_key_compare; } > > iterator > begin() { return _M_leftmost(); } > > const_iterator > begin() const { return _M_leftmost(); } > > iterator > end() { return _M_header; } > > const_iterator > end() const { return _M_header; } > > reverse_iterator > rbegin() { return reverse_iterator(end()); } > > const_reverse_iterator > rbegin() const { return const_reverse_iterator(end()); } > > reverse_iterator > rend() { return reverse_iterator(begin()); } > > const_reverse_iterator > rend() const { return const_reverse_iterator(begin()); } > > bool > empty() const { return _M_node_count == 0; } > > size_type > size() const { return _M_node_count; } > > size_type > max_size() const { return size_type(-1); } > > void > swap(_Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>& __t) > { > std::swap(_M_header, __t._M_header); > std::swap(_M_node_count, __t._M_node_count); > std::swap(_M_key_compare, __t._M_key_compare); > } > > > pair<iterator,bool> > insert_unique(const value_type& __x); > > iterator > insert_equal(const value_type& __x); > > iterator > insert_unique(iterator __position, const value_type& __x); > > iterator > insert_equal(iterator __position, const value_type& __x); > > template<typename _InputIterator> > void > insert_unique(_InputIterator __first, _InputIterator __last); > > template<typename _InputIterator> > void > insert_equal(_InputIterator __first, _InputIterator __last); > > void > erase(iterator __position); > > size_type > erase(const key_type& __x); > > void > erase(iterator __first, iterator __last); > > void > erase(const key_type* __first, const key_type* __last); > > void > clear() > { > if (_M_node_count != 0) > { > _M_erase(_M_root()); > _M_leftmost() = _M_header; > _M_root() = 0; > _M_rightmost() = _M_header; > _M_node_count = 0; > } > } > > > iterator > find(const key_type& __x); > > const_iterator > find(const key_type& __x) const; > > size_type > count(const key_type& __x) const; > > iterator > lower_bound(const key_type& __x); > > const_iterator > lower_bound(const key_type& __x) const; > > iterator > upper_bound(const key_type& __x); > > const_iterator > upper_bound(const key_type& __x) const; > > pair<iterator,iterator> > equal_range(const key_type& __x); > > pair<const_iterator, const_iterator> > equal_range(const key_type& __x) const; > > > bool > __rb_verify() const; > }; > > template<typename _Key, typename _Val, typename _KeyOfValue, > typename _Compare, typename _Alloc> > inline bool > operator==(const _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>& __x, > const _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>& __y) > { > return __x.size() == __y.size() && > equal(__x.begin(), __x.end(), __y.begin()); > } > > template<typename _Key, typename _Val, typename _KeyOfValue, > typename _Compare, typename _Alloc> > inline bool > operator<(const _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>& __x, > const _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>& __y) > { > return lexicographical_compare(__x.begin(), __x.end(), > __y.begin(), __y.end()); > } > > template<typename _Key, typename _Val, typename _KeyOfValue, > typename _Compare, typename _Alloc> > inline bool > operator!=(const _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>& __x, > const _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>& __y) > { return !(__x == __y); } > > template<typename _Key, typename _Val, typename _KeyOfValue, > typename _Compare, typename _Alloc> > inline bool > operator>(const _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>& __x, > const _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>& __y) > { return __y < __x; } > > template<typename _Key, typename _Val, typename _KeyOfValue, > typename _Compare, typename _Alloc> > inline bool > operator<=(const _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>& __x, > const _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>& __y) > { return !(__y < __x); } > > template<typename _Key, typename _Val, typename _KeyOfValue, > typename _Compare, typename _Alloc> > inline bool > operator>=(const _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>& __x, > const _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>& __y) > { return !(__x < __y); } > > template<typename _Key, typename _Val, typename _KeyOfValue, > typename _Compare, typename _Alloc> > inline void > swap(_Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>& __x, > _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>& __y) > { __x.swap(__y); } > > template<typename _Key, typename _Val, typename _KeyOfValue, > typename _Compare, typename _Alloc> > _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>& > _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>:: > operator=(const _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>& __x) > { > if (this != &__x) > { > > clear(); > _M_node_count = 0; > _M_key_compare = __x._M_key_compare; > if (__x._M_root() == 0) > { > _M_root() = 0; > _M_leftmost() = _M_header; > _M_rightmost() = _M_header; > } > else > { > _M_root() = _M_copy(__x._M_root(), _M_header); > _M_leftmost() = _S_minimum(_M_root()); > _M_rightmost() = _S_maximum(_M_root()); > _M_node_count = __x._M_node_count; > } > } > return *this; > } > > template<typename _Key, typename _Val, typename _KeyOfValue, > typename _Compare, typename _Alloc> > typename _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>::iterator > _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>:: > _M_insert(_Base_ptr __x_, _Base_ptr __y_, const _Val& __v) > { > _Link_type __x = (_Link_type) __x_; > _Link_type __y = (_Link_type) __y_; > _Link_type __z; > > if (__y == _M_header || __x != 0 || > _M_key_compare(_KeyOfValue()(__v), _S_key(__y))) > { > __z = _M_create_node(__v); > _S_left(__y) = __z; > > if (__y == _M_header) > { > _M_root() = __z; > _M_rightmost() = __z; > } > else if (__y == _M_leftmost()) > _M_leftmost() = __z; > } > else > { > __z = _M_create_node(__v); > _S_right(__y) = __z; > > if (__y == _M_rightmost()) > _M_rightmost() = __z; > } > _S_parent(__z) = __y; > _S_left(__z) = 0; > _S_right(__z) = 0; > _Rb_tree_rebalance(__z, _M_header->_M_parent); > ++_M_node_count; > return iterator(__z); > } > > template<typename _Key, typename _Val, typename _KeyOfValue, > typename _Compare, typename _Alloc> > typename _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>::iterator > _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>:: > insert_equal(const _Val& __v) > { > _Link_type __y = _M_header; > _Link_type __x = _M_root(); > while (__x != 0) > { > __y = __x; > __x = _M_key_compare(_KeyOfValue()(__v), _S_key(__x)) ? > _S_left(__x) : _S_right(__x); > } > return _M_insert(__x, __y, __v); > } > > template<typename _Key, typename _Val, typename _KeyOfValue, > typename _Compare, typename _Alloc> > pair<typename _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>::iterator, > bool> > _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>:: > insert_unique(const _Val& __v) > { > _Link_type __y = _M_header; > _Link_type __x = _M_root(); > bool __comp = true; > while (__x != 0) > { > __y = __x; > __comp = _M_key_compare(_KeyOfValue()(__v), _S_key(__x)); > __x = __comp ? _S_left(__x) : _S_right(__x); > } > iterator __j = iterator(__y); > if (__comp) > if (__j == begin()) > return pair<iterator,bool>(_M_insert(__x, __y, __v), true); > else > --__j; > if (_M_key_compare(_S_key(__j._M_node), _KeyOfValue()(__v))) > return pair<iterator,bool>(_M_insert(__x, __y, __v), true); > return pair<iterator,bool>(__j, false); > } > > > template<typename _Key, typename _Val, typename _KeyOfValue, > typename _Compare, typename _Alloc> > typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator > _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: > insert_unique(iterator __position, const _Val& __v) > { > if (__position._M_node == _M_header->_M_left) > { > > if (size() > 0 && > _M_key_compare(_KeyOfValue()(__v), _S_key(__position._M_node))) > return _M_insert(__position._M_node, __position._M_node, __v); > > else > return insert_unique(__v).first; > } > else if (__position._M_node == _M_header) > { > > if (_M_key_compare(_S_key(_M_rightmost()), _KeyOfValue()(__v))) > return _M_insert(0, _M_rightmost(), __v); > else > return insert_unique(__v).first; > } > else > { > iterator __before = __position; > --__before; > if (_M_key_compare(_S_key(__before._M_node), _KeyOfValue()(__v)) > && _M_key_compare(_KeyOfValue()(__v),_S_key(__position._M_node))) > { > if (_S_right(__before._M_node) == 0) > return _M_insert(0, __before._M_node, __v); > else > return _M_insert(__position._M_node, __position._M_node, __v); > > } > else > return insert_unique(__v).first; > } > } > > template<typename _Key, typename _Val, typename _KeyOfValue, > typename _Compare, typename _Alloc> > typename _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>::iterator > _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>:: > insert_equal(iterator __position, const _Val& __v) > { > if (__position._M_node == _M_header->_M_left) > { > > if (size() > 0 && > !_M_key_compare(_S_key(__position._M_node), _KeyOfValue()(__v))) > return _M_insert(__position._M_node, __position._M_node, __v); > > else > return insert_equal(__v); > } > else if (__position._M_node == _M_header) > { > > if (!_M_key_compare(_KeyOfValue()(__v), _S_key(_M_rightmost()))) > return _M_insert(0, _M_rightmost(), __v); > else > return insert_equal(__v); > } > else > { > iterator __before = __position; > --__before; > if (!_M_key_compare(_KeyOfValue()(__v), _S_key(__before._M_node)) > && !_M_key_compare(_S_key(__position._M_node), > _KeyOfValue()(__v))) > { > if (_S_right(__before._M_node) == 0) > return _M_insert(0, __before._M_node, __v); > else > return _M_insert(__position._M_node, __position._M_node, __v); > > } > else > return insert_equal(__v); > } > } > > template<typename _Key, typename _Val, typename _KoV, > typename _Cmp, typename _Alloc> > template<class _II> > void > _Rb_tree<_Key,_Val,_KoV,_Cmp,_Alloc>:: > insert_equal(_II __first, _II __last) > { > for ( ; __first != __last; ++__first) > insert_equal(*__first); > } > > template<typename _Key, typename _Val, typename _KoV, > typename _Cmp, typename _Alloc> > template<class _II> > void > _Rb_tree<_Key,_Val,_KoV,_Cmp,_Alloc>:: > insert_unique(_II __first, _II __last) > { > for ( ; __first != __last; ++__first) > insert_unique(*__first); > } > > template<typename _Key, typename _Val, typename _KeyOfValue, > typename _Compare, typename _Alloc> > inline void > _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>::erase(iterator __position) > { > _Link_type __y = > (_Link_type) _Rb_tree_rebalance_for_erase(__position._M_node, > _M_header->_M_parent, > _M_header->_M_left, > _M_header->_M_right); > destroy_node(__y); > --_M_node_count; > } > > template<typename _Key, typename _Val, typename _KeyOfValue, > typename _Compare, typename _Alloc> > typename _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>::size_type > _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>::erase(const _Key& __x) > { > pair<iterator,iterator> __p = equal_range(__x); > size_type __n = distance(__p.first, __p.second); > erase(__p.first, __p.second); > return __n; > } > > template<typename _Key, typename _Val, typename _KoV, > typename _Compare, typename _Alloc> > typename _Rb_tree<_Key, _Val, _KoV, _Compare, _Alloc>::_Link_type > _Rb_tree<_Key,_Val,_KoV,_Compare,_Alloc>:: > _M_copy(_Link_type __x, _Link_type __p) > { > > _Link_type __top = _M_clone_node(__x); > __top->_M_parent = __p; > > 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<typename _Key, typename _Val, typename _KeyOfValue, > typename _Compare, typename _Alloc> > void > _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>::_M_erase(_Link_type __x) > { > > while (__x != 0) > { > _M_erase(_S_right(__x)); > _Link_type __y = _S_left(__x); > destroy_node(__x); > __x = __y; > } > } > > template<typename _Key, typename _Val, typename _KeyOfValue, > typename _Compare, typename _Alloc> > void > _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>:: > erase(iterator __first, iterator __last) > { > if (__first == begin() && __last == end()) > clear(); > else > while (__first != __last) erase(__first++); > } > > template<typename _Key, typename _Val, typename _KeyOfValue, > typename _Compare, typename _Alloc> > void > _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>:: > erase(const _Key* __first, const _Key* __last) > { > while (__first != __last) > erase(*__first++); > } > > template<typename _Key, typename _Val, typename _KeyOfValue, > typename _Compare, typename _Alloc> > typename _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>::iterator > _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>::find(const _Key& __k) > { > _Link_type __y = _M_header; > _Link_type __x = _M_root(); > > while (__x != 0) > if (!_M_key_compare(_S_key(__x), __k)) > __y = __x, __x = _S_left(__x); > else > __x = _S_right(__x); > > iterator __j = iterator(__y); > return (__j == end() || _M_key_compare(__k, _S_key(__j._M_node))) ? > end() : __j; > } > > template<typename _Key, typename _Val, typename _KeyOfValue, > typename _Compare, typename _Alloc> > typename _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>::const_iterator > _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>:: > find(const _Key& __k) const > { > _Link_type __y = _M_header; > _Link_type __x = _M_root(); > > while (__x != 0) > { > if (!_M_key_compare(_S_key(__x), __k)) > __y = __x, __x = _S_left(__x); > else > __x = _S_right(__x); > } > const_iterator __j = const_iterator(__y); > return (__j == end() || _M_key_compare(__k, _S_key(__j._M_node))) ? > end() : __j; > } > > template<typename _Key, typename _Val, typename _KeyOfValue, > typename _Compare, typename _Alloc> > typename _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>::size_type > _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>:: > count(const _Key& __k) const > { > pair<const_iterator, const_iterator> __p = equal_range(__k); > size_type __n = distance(__p.first, __p.second); > return __n; > } > > template<typename _Key, typename _Val, typename _KeyOfValue, > typename _Compare, typename _Alloc> > typename _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>::iterator > _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>:: > lower_bound(const _Key& __k) > { > _Link_type __y = _M_header; > _Link_type __x = _M_root(); > > while (__x != 0) > if (!_M_key_compare(_S_key(__x), __k)) > __y = __x, __x = _S_left(__x); > else > __x = _S_right(__x); > > return iterator(__y); > } > > template<typename _Key, typename _Val, typename _KeyOfValue, > typename _Compare, typename _Alloc> > typename _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>::const_iterator > _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>:: > lower_bound(const _Key& __k) const > { > _Link_type __y = _M_header; > _Link_type __x = _M_root(); > > while (__x != 0) > if (!_M_key_compare(_S_key(__x), __k)) > __y = __x, __x = _S_left(__x); > else > __x = _S_right(__x); > > return const_iterator(__y); > } > > template<typename _Key, typename _Val, typename _KeyOfValue, > typename _Compare, typename _Alloc> > typename _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>::iterator > _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>:: > upper_bound(const _Key& __k) > { > _Link_type __y = _M_header; > _Link_type __x = _M_root(); > > while (__x != 0) > if (_M_key_compare(__k, _S_key(__x))) > __y = __x, __x = _S_left(__x); > else > __x = _S_right(__x); > > return iterator(__y); > } > > template<typename _Key, typename _Val, typename _KeyOfValue, > typename _Compare, typename _Alloc> > typename _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>::const_iterator > _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>:: > upper_bound(const _Key& __k) const > { > _Link_type __y = _M_header; > _Link_type __x = _M_root(); > > while (__x != 0) > if (_M_key_compare(__k, _S_key(__x))) > __y = __x, __x = _S_left(__x); > else > __x = _S_right(__x); > > return const_iterator(__y); > } > > template<typename _Key, typename _Val, typename _KeyOfValue, > typename _Compare, typename _Alloc> > inline > pair<typename _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>::iterator, > typename _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>::iterator> > _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>:: > equal_range(const _Key& __k) > { return pair<iterator, iterator>(lower_bound(__k), upper_bound(__k)); } > > template<typename _Key, typename _Val, typename _KoV, > typename _Compare, typename _Alloc> > inline > pair<typename _Rb_tree<_Key, _Val, _KoV, _Compare, _Alloc>::const_iterator, > typename _Rb_tree<_Key, _Val, _KoV, _Compare, _Alloc>::const_iterator> > _Rb_tree<_Key, _Val, _KoV, _Compare, _Alloc> > ::equal_range(const _Key& __k) const > { > return pair<const_iterator,const_iterator>(lower_bound(__k), > upper_bound(__k)); > } > > inline int > __black_count(_Rb_tree_node_base* __node, _Rb_tree_node_base* __root) > { > if (__node == 0) > return 0; > int __sum = 0; > do > { > if (__node->_M_color == _M_black) > ++__sum; > if (__node == __root) > break; > __node = __node->_M_parent; > } > while (1); > return __sum; > } > > template<typename _Key, typename _Val, typename _KeyOfValue, > typename _Compare, typename _Alloc> > bool > _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>::__rb_verify() const > { > if (_M_node_count == 0 || begin() == end()) > return _M_node_count == 0 && begin() == end() && > _M_header->_M_left == _M_header && _M_header->_M_right == _M_header; > > int __len = __black_count(_M_leftmost(), _M_root()); > for (const_iterator __it = begin(); __it != end(); ++__it) > { > _Link_type __x = (_Link_type) __it._M_node; > _Link_type __L = _S_left(__x); > _Link_type __R = _S_right(__x); > > if (__x->_M_color == _M_red) > if ((__L && __L->_M_color == _M_red) > || (__R && __R->_M_color == _M_red)) > return false; > > if (__L && _M_key_compare(_S_key(__x), _S_key(__L))) > return false; > if (__R && _M_key_compare(_S_key(__R), _S_key(__x))) > return false; > > if (!__L && !__R && __black_count(__x, _M_root()) != __len) > return false; > } > > if (_M_leftmost() != _Rb_tree_node_base::_S_minimum(_M_root())) > return false; > if (_M_rightmost() != _Rb_tree_node_base::_S_maximum(_M_root())) > return false; > return true; > } >} ># 67 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/map" 2 3 ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_map.h" 1 3 ># 66 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_map.h" 3 >namespace std >{ ># 89 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_map.h" 3 > template <typename _Key, typename _Tp, typename _Compare = less<_Key>, > typename _Alloc = allocator<pair<const _Key, _Tp> > > > class map > { > > > > > public: > typedef _Key key_type; > typedef _Tp mapped_type; > typedef pair<const _Key, _Tp> value_type; > typedef _Compare key_compare; > > class value_compare > : public binary_function<value_type, value_type, bool> > { > friend class map<_Key,_Tp,_Compare,_Alloc>; > protected: > _Compare comp; > value_compare(_Compare __c) : comp(__c) {} > public: > bool operator()(const value_type& __x, const value_type& __y) const > { return comp(__x.first, __y.first); } > }; > > private: > > typedef _Rb_tree<key_type, value_type, > _Select1st<value_type>, key_compare, _Alloc> _Rep_type; > > _Rep_type _M_t; > > public: > > > typedef typename _Rep_type::allocator_type allocator_type; > typedef typename _Rep_type::reference reference; > typedef typename _Rep_type::const_reference const_reference; > typedef typename _Rep_type::iterator iterator; > typedef typename _Rep_type::const_iterator const_iterator; > typedef typename _Rep_type::size_type size_type; > typedef typename _Rep_type::difference_type difference_type; > typedef typename _Rep_type::pointer pointer; > typedef typename _Rep_type::const_pointer const_pointer; > typedef typename _Rep_type::reverse_iterator reverse_iterator; > typedef typename _Rep_type::const_reverse_iterator const_reverse_iterator; ># 144 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_map.h" 3 > map() : _M_t(_Compare(), allocator_type()) { } > > > > > > explicit > map(const _Compare& __comp, const allocator_type& __a = allocator_type()) > : _M_t(__comp, __a) { } ># 161 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_map.h" 3 > map(const map& __x) > : _M_t(__x._M_t) { } ># 173 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_map.h" 3 > template <typename _InputIterator> > map(_InputIterator __first, _InputIterator __last) > : _M_t(_Compare(), allocator_type()) > { _M_t.insert_unique(__first, __last); } ># 189 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_map.h" 3 > template <typename _InputIterator> > map(_InputIterator __first, _InputIterator __last, > const _Compare& __comp, const allocator_type& __a = allocator_type()) > : _M_t(__comp, __a) > { _M_t.insert_unique(__first, __last); } ># 211 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_map.h" 3 > map& > operator=(const map& __x) > { > _M_t = __x._M_t; > return *this; > } > > > allocator_type > get_allocator() const { return _M_t.get_allocator(); } > > > > > > > iterator > begin() { return _M_t.begin(); } > > > > > > > const_iterator > begin() const { return _M_t.begin(); } > > > > > > iterator > end() { return _M_t.end(); } > > > > > > > const_iterator > end() const { return _M_t.end(); } > > > > > > reverse_iterator > rbegin() { return _M_t.rbegin(); } > > > > > > > const_reverse_iterator > rbegin() const { return _M_t.rbegin(); } > > > > > > > reverse_iterator > rend() { return _M_t.rend(); } > > > > > > > const_reverse_iterator > rend() const { return _M_t.rend(); } > > > > bool > empty() const { return _M_t.empty(); } > > > size_type > size() const { return _M_t.size(); } > > > size_type > max_size() const { return _M_t.max_size(); } ># 310 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_map.h" 3 > mapped_type& > operator[](const key_type& __k) > { > > > > iterator __i = lower_bound(__k); > > if (__i == end() || key_comp()(__k, (*__i).first)) > __i = insert(__i, value_type(__k, mapped_type())); > return (*__i).second; > } ># 338 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_map.h" 3 > pair<iterator,bool> > insert(const value_type& __x) > { return _M_t.insert_unique(__x); } ># 362 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_map.h" 3 > iterator > insert(iterator position, const value_type& __x) > { return _M_t.insert_unique(position, __x); } ># 374 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_map.h" 3 > template <typename _InputIterator> > void > insert(_InputIterator __first, _InputIterator __last) > { _M_t.insert_unique(__first, __last); } ># 388 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_map.h" 3 > void > erase(iterator __position) { _M_t.erase(__position); } ># 402 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_map.h" 3 > size_type > erase(const key_type& __x) { return _M_t.erase(__x); } ># 415 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_map.h" 3 > void > erase(iterator __first, iterator __last) { _M_t.erase(__first, __last); } ># 429 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_map.h" 3 > void > swap(map& __x) { _M_t.swap(__x._M_t); } > > > > > > > > void > clear() { _M_t.clear(); } > > > > > > key_compare > key_comp() const { return _M_t.key_comp(); } > > > > > > value_compare > value_comp() const { return value_compare(_M_t.key_comp()); } ># 467 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_map.h" 3 > iterator > find(const key_type& __x) { return _M_t.find(__x); } ># 481 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_map.h" 3 > const_iterator > find(const key_type& __x) const { return _M_t.find(__x); } ># 492 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_map.h" 3 > size_type > count(const key_type& __x) const > { return _M_t.find(__x) == _M_t.end() ? 0 : 1; } ># 507 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_map.h" 3 > iterator > lower_bound(const key_type& __x) { return _M_t.lower_bound(__x); } ># 521 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_map.h" 3 > const_iterator > lower_bound(const key_type& __x) const { return _M_t.lower_bound(__x); } ># 531 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_map.h" 3 > iterator > upper_bound(const key_type& __x) { return _M_t.upper_bound(__x); } ># 542 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_map.h" 3 > const_iterator > upper_bound(const key_type& __x) const > { return _M_t.upper_bound(__x); } ># 561 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_map.h" 3 > pair<iterator,iterator> > equal_range(const key_type& __x) > { return _M_t.equal_range(__x); } ># 580 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_map.h" 3 > pair<const_iterator,const_iterator> > equal_range(const key_type& __x) const > { return _M_t.equal_range(__x); } > > template <typename _K1, typename _T1, typename _C1, typename _A1> > friend bool operator== (const map<_K1,_T1,_C1,_A1>&, > const map<_K1,_T1,_C1,_A1>&); > template <typename _K1, typename _T1, typename _C1, typename _A1> > friend bool operator< (const map<_K1,_T1,_C1,_A1>&, > const map<_K1,_T1,_C1,_A1>&); > }; ># 603 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_map.h" 3 > template <typename _Key, typename _Tp, typename _Compare, typename _Alloc> > inline bool > operator==(const map<_Key,_Tp,_Compare,_Alloc>& __x, > const map<_Key,_Tp,_Compare,_Alloc>& __y) > { return __x._M_t == __y._M_t; } ># 620 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_map.h" 3 > template <typename _Key, typename _Tp, typename _Compare, typename _Alloc> > inline bool > operator<(const map<_Key,_Tp,_Compare,_Alloc>& __x, > const map<_Key,_Tp,_Compare,_Alloc>& __y) > { return __x._M_t < __y._M_t; } > > > template <typename _Key, typename _Tp, typename _Compare, typename _Alloc> > inline bool > operator!=(const map<_Key,_Tp,_Compare,_Alloc>& __x, > const map<_Key,_Tp,_Compare,_Alloc>& __y) > { return !(__x == __y); } > > > template <typename _Key, typename _Tp, typename _Compare, typename _Alloc> > inline bool > operator>(const map<_Key,_Tp,_Compare,_Alloc>& __x, > const map<_Key,_Tp,_Compare,_Alloc>& __y) > { return __y < __x; } > > > template <typename _Key, typename _Tp, typename _Compare, typename _Alloc> > inline bool > operator<=(const map<_Key,_Tp,_Compare,_Alloc>& __x, > const map<_Key,_Tp,_Compare,_Alloc>& __y) > { return !(__y < __x); } > > > template <typename _Key, typename _Tp, typename _Compare, typename _Alloc> > inline bool > operator>=(const map<_Key,_Tp,_Compare,_Alloc>& __x, > const map<_Key,_Tp,_Compare,_Alloc>& __y) > { return !(__x < __y); } > > > template <typename _Key, typename _Tp, typename _Compare, typename _Alloc> > inline void > swap(map<_Key,_Tp,_Compare,_Alloc>& __x, map<_Key,_Tp,_Compare,_Alloc>& __y) > { __x.swap(__y); } >} ># 68 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/map" 2 3 ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_multimap.h" 1 3 ># 66 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_multimap.h" 3 >namespace std >{ > > > template <typename _Key, typename _Tp, > typename _Compare = less<_Key>, > typename _Alloc = allocator<pair<const _Key, _Tp> > > > class multimap; > > template <typename _Key, typename _Tp, typename _Compare, typename _Alloc> > inline bool operator==(const multimap<_Key,_Tp,_Compare,_Alloc>& __x, > const multimap<_Key,_Tp,_Compare,_Alloc>& __y); > > template <typename _Key, typename _Tp, typename _Compare, typename _Alloc> > inline bool operator<(const multimap<_Key,_Tp,_Compare,_Alloc>& __x, > const multimap<_Key,_Tp,_Compare,_Alloc>& __y); ># 104 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_multimap.h" 3 > template <typename _Key, typename _Tp, typename _Compare, typename _Alloc> > class multimap > { > > > > > public: > typedef _Key key_type; > typedef _Tp mapped_type; > typedef pair<const _Key, _Tp> value_type; > typedef _Compare key_compare; > > class value_compare > : public binary_function<value_type, value_type, bool> > { > friend class multimap<_Key,_Tp,_Compare,_Alloc>; > protected: > _Compare comp; > value_compare(_Compare __c) : comp(__c) {} > public: > bool operator()(const value_type& __x, const value_type& __y) const > { return comp(__x.first, __y.first); } > }; > > private: > > typedef _Rb_tree<key_type, value_type, > _Select1st<value_type>, key_compare, _Alloc> _Rep_type; > > _Rep_type _M_t; > > public: > > > typedef typename _Rep_type::allocator_type allocator_type; > typedef typename _Rep_type::reference reference; > typedef typename _Rep_type::const_reference const_reference; > typedef typename _Rep_type::iterator iterator; > typedef typename _Rep_type::const_iterator const_iterator; > typedef typename _Rep_type::size_type size_type; > typedef typename _Rep_type::difference_type difference_type; > typedef typename _Rep_type::pointer pointer; > typedef typename _Rep_type::const_pointer const_pointer; > typedef typename _Rep_type::reverse_iterator reverse_iterator; > typedef typename _Rep_type::const_reverse_iterator const_reverse_iterator; > > > > > > > > multimap() : _M_t(_Compare(), allocator_type()) { } > > > > > > explicit > multimap(const _Compare& __comp, const allocator_type& __a = allocator_type()) > : _M_t(__comp, __a) { } ># 174 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_multimap.h" 3 > multimap(const multimap& __x) > : _M_t(__x._M_t) { } ># 186 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_multimap.h" 3 > template <typename _InputIterator> > multimap(_InputIterator __first, _InputIterator __last) > : _M_t(_Compare(), allocator_type()) > { _M_t.insert_equal(__first, __last); } ># 202 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_multimap.h" 3 > template <typename _InputIterator> > multimap(_InputIterator __first, _InputIterator __last, > const _Compare& __comp, > const allocator_type& __a = allocator_type()) > : _M_t(__comp, __a) > { _M_t.insert_equal(__first, __last); } ># 225 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_multimap.h" 3 > multimap& > operator=(const multimap& __x) > { > _M_t = __x._M_t; > return *this; > } > > > allocator_type > get_allocator() const { return _M_t.get_allocator(); } > > > > > > > iterator > begin() { return _M_t.begin(); } > > > > > > > const_iterator > begin() const { return _M_t.begin(); } > > > > > > iterator > end() { return _M_t.end(); } > > > > > > > const_iterator > end() const { return _M_t.end(); } > > > > > > > reverse_iterator > rbegin() { return _M_t.rbegin(); } > > > > > > > const_reverse_iterator > rbegin() const { return _M_t.rbegin(); } > > > > > > > reverse_iterator > rend() { return _M_t.rend(); } > > > > > > > const_reverse_iterator > rend() const { return _M_t.rend(); } > > > > bool > empty() const { return _M_t.empty(); } > > > size_type > size() const { return _M_t.size(); } > > > size_type > max_size() const { return _M_t.max_size(); } ># 325 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_multimap.h" 3 > iterator > insert(const value_type& __x) { return _M_t.insert_equal(__x); } ># 348 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_multimap.h" 3 > iterator > insert(iterator __position, const value_type& __x) > { return _M_t.insert_equal(__position, __x); } ># 360 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_multimap.h" 3 > template <typename _InputIterator> > void > insert(_InputIterator __first, _InputIterator __last) > { _M_t.insert_equal(__first, __last); } ># 374 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_multimap.h" 3 > void > erase(iterator __position) { _M_t.erase(__position); } ># 388 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_multimap.h" 3 > size_type > erase(const key_type& __x) { return _M_t.erase(__x); } ># 401 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_multimap.h" 3 > void > erase(iterator __first, iterator __last) { _M_t.erase(__first, __last); } ># 415 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_multimap.h" 3 > void > swap(multimap& __x) { _M_t.swap(__x._M_t); } > > > > > > > > void > clear() { _M_t.clear(); } > > > > > > > key_compare > key_comp() const { return _M_t.key_comp(); } > > > > > > value_compare > value_comp() const { return value_compare(_M_t.key_comp()); } ># 454 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_multimap.h" 3 > iterator > find(const key_type& __x) { return _M_t.find(__x); } ># 468 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_multimap.h" 3 > const_iterator > find(const key_type& __x) const { return _M_t.find(__x); } > > > > > > > size_type > count(const key_type& __x) const { return _M_t.count(__x); } ># 490 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_multimap.h" 3 > iterator > lower_bound(const key_type& __x) { return _M_t.lower_bound(__x); } ># 504 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_multimap.h" 3 > const_iterator > lower_bound(const key_type& __x) const { return _M_t.lower_bound(__x); } > > > > > > > iterator > upper_bound(const key_type& __x) { return _M_t.upper_bound(__x); } > > > > > > > > const_iterator > upper_bound(const key_type& __x) const { return _M_t.upper_bound(__x); } ># 537 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_multimap.h" 3 > pair<iterator,iterator> > equal_range(const key_type& __x) { return _M_t.equal_range(__x); } ># 553 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_multimap.h" 3 > pair<const_iterator,const_iterator> > equal_range(const key_type& __x) const { return _M_t.equal_range(__x); } > > template <typename _K1, typename _T1, typename _C1, typename _A1> > friend bool operator== (const multimap<_K1,_T1,_C1,_A1>&, > const multimap<_K1,_T1,_C1,_A1>&); > template <typename _K1, typename _T1, typename _C1, typename _A1> > friend bool operator< (const multimap<_K1,_T1,_C1,_A1>&, > const multimap<_K1,_T1,_C1,_A1>&); > }; ># 575 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_multimap.h" 3 > template <typename _Key, typename _Tp, typename _Compare, typename _Alloc> > inline bool > operator==(const multimap<_Key,_Tp,_Compare,_Alloc>& __x, > const multimap<_Key,_Tp,_Compare,_Alloc>& __y) > { > return __x._M_t == __y._M_t; > } ># 594 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_multimap.h" 3 > template <typename _Key, typename _Tp, typename _Compare, typename _Alloc> > inline bool > operator<(const multimap<_Key,_Tp,_Compare,_Alloc>& __x, > const multimap<_Key,_Tp,_Compare,_Alloc>& __y) > { return __x._M_t < __y._M_t; } > > > template <typename _Key, typename _Tp, typename _Compare, typename _Alloc> > inline bool > operator!=(const multimap<_Key,_Tp,_Compare,_Alloc>& __x, > const multimap<_Key,_Tp,_Compare,_Alloc>& __y) > { return !(__x == __y); } > > > template <typename _Key, typename _Tp, typename _Compare, typename _Alloc> > inline bool > operator>(const multimap<_Key,_Tp,_Compare,_Alloc>& __x, > const multimap<_Key,_Tp,_Compare,_Alloc>& __y) > { return __y < __x; } > > > template <typename _Key, typename _Tp, typename _Compare, typename _Alloc> > inline bool > operator<=(const multimap<_Key,_Tp,_Compare,_Alloc>& __x, > const multimap<_Key,_Tp,_Compare,_Alloc>& __y) > { return !(__y < __x); } > > > template <typename _Key, typename _Tp, typename _Compare, typename _Alloc> > inline bool > operator>=(const multimap<_Key,_Tp,_Compare,_Alloc>& __x, > const multimap<_Key,_Tp,_Compare,_Alloc>& __y) > { return !(__x < __y); } > > > template <typename _Key, typename _Tp, typename _Compare, typename _Alloc> > inline void > swap(multimap<_Key,_Tp,_Compare,_Alloc>& __x, > multimap<_Key,_Tp,_Compare,_Alloc>& __y) > { __x.swap(__y); } >} ># 69 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/map" 2 3 ># 19 "../../OgreMain/include/OgreStdHeaders.h" 2 ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/string" 1 3 ># 43 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/string" 3 > ># 44 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/string" 3 > > > ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/char_traits.h" 1 3 ># 43 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/char_traits.h" 3 > ># 44 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/char_traits.h" 3 > > > > >namespace std >{ ># 61 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/char_traits.h" 3 > template<class _CharT> > struct char_traits > { > typedef _CharT char_type; > > typedef unsigned long int_type; > typedef streampos pos_type; > typedef streamoff off_type; > typedef mbstate_t state_type; > > static void > assign(char_type& __c1, const char_type& __c2); > > static bool > eq(const char_type& __c1, const char_type& __c2); > > static bool > lt(const char_type& __c1, const char_type& __c2); > > static int > compare(const char_type* __s1, const char_type* __s2, size_t __n); > > static size_t > length(const char_type* __s); > > static const char_type* > find(const char_type* __s, size_t __n, const char_type& __a); > > static char_type* > move(char_type* __s1, const char_type* __s2, size_t __n); > > static char_type* > copy(char_type* __s1, const char_type* __s2, size_t __n); > > static char_type* > assign(char_type* __s, size_t __n, char_type __a); > > static char_type > to_char_type(const int_type& __c); > > static int_type > to_int_type(const char_type& __c); > > static bool > eq_int_type(const int_type& __c1, const int_type& __c2); > > static int_type > eof(); > > static int_type > not_eof(const int_type& __c); > }; > > > > template<> > struct char_traits<char> > { > typedef char char_type; > typedef int int_type; > typedef streampos pos_type; > typedef streamoff off_type; > typedef mbstate_t state_type; > > static void > assign(char_type& __c1, const char_type& __c2) > { __c1 = __c2; } > > static bool > eq(const char_type& __c1, const char_type& __c2) > { return __c1 == __c2; } > > static bool > lt(const char_type& __c1, const char_type& __c2) > { return __c1 < __c2; } > > static int > compare(const char_type* __s1, const char_type* __s2, size_t __n) > { return memcmp(__s1, __s2, __n); } > > static size_t > length(const char_type* __s) > { return strlen(__s); } > > static const char_type* > find(const char_type* __s, size_t __n, const char_type& __a) > { return static_cast<const char_type*>(memchr(__s, __a, __n)); } > > static char_type* > move(char_type* __s1, const char_type* __s2, size_t __n) > { return static_cast<char_type*>(memmove(__s1, __s2, __n)); } > > static char_type* > copy(char_type* __s1, const char_type* __s2, size_t __n) > { return static_cast<char_type*>(memcpy(__s1, __s2, __n)); } > > static char_type* > assign(char_type* __s, size_t __n, char_type __a) > { return static_cast<char_type*>(memset(__s, __a, __n)); } > > static char_type > to_char_type(const int_type& __c) > { return static_cast<char_type>(__c); } > > > > static int_type > to_int_type(const char_type& __c) > { return static_cast<int_type>(static_cast<unsigned char>(__c)); } > > static bool > eq_int_type(const int_type& __c1, const int_type& __c2) > { return __c1 == __c2; } > > static int_type > eof() { return static_cast<int_type>((-1)); } > > static int_type > not_eof(const int_type& __c) > { return (__c == eof()) ? 0 : __c; } > }; > > > > > template<> > struct char_traits<wchar_t> > { > typedef wchar_t char_type; > typedef wint_t int_type; > typedef streamoff off_type; > typedef wstreampos pos_type; > typedef mbstate_t state_type; > > static void > assign(char_type& __c1, const char_type& __c2) > { __c1 = __c2; } > > static bool > eq(const char_type& __c1, const char_type& __c2) > { return __c1 == __c2; } > > static bool > lt(const char_type& __c1, const char_type& __c2) > { return __c1 < __c2; } > > static int > compare(const char_type* __s1, const char_type* __s2, size_t __n) > { return wmemcmp(__s1, __s2, __n); } > > static size_t > length(const char_type* __s) > { return wcslen(__s); } > > static const char_type* > find(const char_type* __s, size_t __n, const char_type& __a) > { return wmemchr(__s, __a, __n); } > > static char_type* > move(char_type* __s1, const char_type* __s2, int_type __n) > { return wmemmove(__s1, __s2, __n); } > > static char_type* > copy(char_type* __s1, const char_type* __s2, size_t __n) > { return wmemcpy(__s1, __s2, __n); } > > static char_type* > assign(char_type* __s, size_t __n, char_type __a) > { return wmemset(__s, __a, __n); } > > static char_type > to_char_type(const int_type& __c) { return char_type(__c); } > > static int_type > to_int_type(const char_type& __c) { return int_type(__c); } > > static bool > eq_int_type(const int_type& __c1, const int_type& __c2) > { return __c1 == __c2; } > > static int_type > eof() { return static_cast<int_type>((0xffffffffu)); } > > static int_type > not_eof(const int_type& __c) > { return eq_int_type(__c, eof()) ? 0 : __c; } > }; > > > template<typename _CharT, typename _Traits> > struct _Char_traits_match > { > _CharT _M_c; > _Char_traits_match(_CharT const& __c) : _M_c(__c) { } > > bool > operator()(_CharT const& __a) { return _Traits::eq(_M_c, __a); } > }; >} ># 48 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/string" 2 3 ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/memory" 1 3 ># 52 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/memory" 3 > ># 53 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/memory" 3 > > > > > > ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_raw_storage_iter.h" 1 3 ># 64 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_raw_storage_iter.h" 3 >namespace std >{ > > > > > template <class _ForwardIterator, class _Tp> > class raw_storage_iterator > : public iterator<output_iterator_tag, void, void, void, void> > { > protected: > _ForwardIterator _M_iter; > > public: > explicit > raw_storage_iterator(_ForwardIterator __x) : _M_iter(__x) {} > > raw_storage_iterator& > operator*() { return *this; } > > raw_storage_iterator& > operator=(const _Tp& __element) > { > _Construct(&*_M_iter, __element); > return *this; > } > > raw_storage_iterator<_ForwardIterator, _Tp>& > operator++() > { > ++_M_iter; > return *this; > } > > raw_storage_iterator<_ForwardIterator, _Tp> > operator++(int) > { > raw_storage_iterator<_ForwardIterator, _Tp> __tmp = *this; > ++_M_iter; > return __tmp; > } > }; >} ># 60 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/memory" 2 3 > >namespace std >{ ># 71 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/memory" 3 > template<typename _Tp> > pair<_Tp*, ptrdiff_t> > __get_temporary_buffer(ptrdiff_t __len, _Tp*) > { > if (__len > ptrdiff_t(2147483647 / sizeof(_Tp))) > __len = 2147483647 / sizeof(_Tp); > > while (__len > 0) > { > _Tp* __tmp = (_Tp*) std::malloc((std::size_t)__len * sizeof(_Tp)); > if (__tmp != 0) > return pair<_Tp*, ptrdiff_t>(__tmp, __len); > __len /= 2; > } > return pair<_Tp*, ptrdiff_t>((_Tp*)0, 0); > } ># 103 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/memory" 3 > template<typename _Tp> > inline pair<_Tp*,ptrdiff_t> > get_temporary_buffer(ptrdiff_t __len) > { return __get_temporary_buffer(__len, (_Tp*) 0); } ># 115 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/memory" 3 > template<typename _Tp> > void > return_temporary_buffer(_Tp* __p) > { std::free(__p); } ># 127 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/memory" 3 > template<typename _Tp1> > struct auto_ptr_ref > { > _Tp1* _M_ptr; > > explicit > auto_ptr_ref(_Tp1* __p): _M_ptr(__p) { } > }; ># 166 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/memory" 3 > template<typename _Tp> > class auto_ptr > { > private: > _Tp* _M_ptr; > > public: > > typedef _Tp element_type; > > > > > > > > explicit > auto_ptr(element_type* __p = 0) throw() : _M_ptr(__p) { } ># 192 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/memory" 3 > auto_ptr(auto_ptr& __a) throw() : _M_ptr(__a.release()) { } ># 203 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/memory" 3 > template<typename _Tp1> > auto_ptr(auto_ptr<_Tp1>& __a) throw() : _M_ptr(__a.release()) { } ># 214 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/memory" 3 > auto_ptr& > operator=(auto_ptr& __a) throw() > { > reset(__a.release()); > return *this; > } ># 231 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/memory" 3 > template<typename _Tp1> > auto_ptr& > operator=(auto_ptr<_Tp1>& __a) throw() > { > reset(__a.release()); > return *this; > } ># 251 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/memory" 3 > ~auto_ptr() { delete _M_ptr; } ># 261 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/memory" 3 > element_type& > operator*() const throw() { return *_M_ptr; } > > > > > > > > element_type* > operator->() const throw() { return _M_ptr; } ># 283 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/memory" 3 > element_type* > get() const throw() { return _M_ptr; } ># 297 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/memory" 3 > element_type* > release() throw() > { > element_type* __tmp = _M_ptr; > _M_ptr = 0; > return __tmp; > } ># 312 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/memory" 3 > void > reset(element_type* __p = 0) throw() > { > if (__p != _M_ptr) > { > delete _M_ptr; > _M_ptr = __p; > } > } ># 333 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/memory" 3 > auto_ptr(auto_ptr_ref<element_type> __ref) throw() > : _M_ptr(__ref._M_ptr) { } > > auto_ptr& > operator=(auto_ptr_ref<element_type> __ref) throw() > { > if (__ref._M_ptr != this->get()) > { > delete _M_ptr; > _M_ptr = __ref._M_ptr; > } > return *this; > } > > template<typename _Tp1> > operator auto_ptr_ref<_Tp1>() throw() > { return auto_ptr_ref<_Tp1>(this->release()); } > > template<typename _Tp1> > operator auto_ptr<_Tp1>() throw() > { return auto_ptr<_Tp1>(this->release()); } > > }; >} ># 49 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/string" 2 3 > > > > ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/basic_string.h" 1 3 ># 43 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/basic_string.h" 3 > ># 44 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/basic_string.h" 3 > > > >namespace std >{ ># 108 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/basic_string.h" 3 > template<typename _CharT, typename _Traits, typename _Alloc> > class basic_string > { > > public: > typedef _Traits traits_type; > typedef typename _Traits::char_type value_type; > typedef _Alloc allocator_type; > typedef typename _Alloc::size_type size_type; > typedef typename _Alloc::difference_type difference_type; > typedef typename _Alloc::reference reference; > typedef typename _Alloc::const_reference const_reference; > typedef typename _Alloc::pointer pointer; > typedef typename _Alloc::const_pointer const_pointer; > typedef __gnu_cxx::__normal_iterator<pointer, basic_string> iterator; > typedef __gnu_cxx::__normal_iterator<const_pointer, basic_string> > const_iterator; > typedef std::reverse_iterator<const_iterator> const_reverse_iterator; > typedef std::reverse_iterator<iterator> reverse_iterator; > > private: ># 143 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/basic_string.h" 3 > struct _Rep > { > > typedef typename _Alloc::template rebind<char>::other _Raw_bytes_alloc; ># 161 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/basic_string.h" 3 > static const size_type _S_max_size; > static const _CharT _S_terminal; > > size_type _M_length; > size_type _M_capacity; > _Atomic_word _M_references; > > bool > _M_is_leaked() const > { return _M_references < 0; } > > bool > _M_is_shared() const > { return _M_references > 0; } > > void > _M_set_leaked() > { _M_references = -1; } > > void > _M_set_sharable() > { _M_references = 0; } > > _CharT* > _M_refdata() throw() > { return reinterpret_cast<_CharT*>(this + 1); } > > _CharT& > operator[](size_t __s) throw() > { return _M_refdata() [__s]; } > > _CharT* > _M_grab(const _Alloc& __alloc1, const _Alloc& __alloc2) > { > return (!_M_is_leaked() && __alloc1 == __alloc2) > ? _M_refcopy() : _M_clone(__alloc1); > } > > > static _Rep* > _S_create(size_t, const _Alloc&); > > void > _M_dispose(const _Alloc& __a) > { > if (__exchange_and_add(&_M_references, -1) <= 0) > _M_destroy(__a); > } > > void > _M_destroy(const _Alloc&) throw(); > > _CharT* > _M_refcopy() throw() > { > __atomic_add(&_M_references, 1); > return _M_refdata(); > } > > _CharT* > _M_clone(const _Alloc&, size_type __res = 0); > }; > > > struct _Alloc_hider : _Alloc > { > _Alloc_hider(_CharT* __dat, const _Alloc& __a) > : _Alloc(__a), _M_p(__dat) { } > > _CharT* _M_p; > }; > > public: > > > > static const size_type npos = static_cast<size_type>(-1); > > private: > > mutable _Alloc_hider _M_dataplus; > > > > static size_type _S_empty_rep_storage[(sizeof(_Rep) + sizeof(_CharT) + sizeof(size_type) - 1)/sizeof(size_type)]; > > _CharT* > _M_data() const > { return _M_dataplus._M_p; } > > _CharT* > _M_data(_CharT* __p) > { return (_M_dataplus._M_p = __p); } > > _Rep* > _M_rep() const > { return &((reinterpret_cast<_Rep*> (_M_data()))[-1]); } > > > > iterator > _M_ibegin() const { return iterator(_M_data()); } > > iterator > _M_iend() const { return iterator(_M_data() + this->size()); } > > void > _M_leak() > { > if (!_M_rep()->_M_is_leaked()) > _M_leak_hard(); > } > > iterator > _M_check(size_type __pos) const > { > if (__pos > this->size()) > __throw_out_of_range("basic_string::_M_check"); > return _M_ibegin() + __pos; > } > > > iterator > _M_fold(size_type __pos, size_type __off) const > { > bool __testoff = __off < this->size() - __pos; > size_type __newoff = __testoff ? __off : this->size() - __pos; > return (_M_ibegin() + __pos + __newoff); > } > > > > template<class _Iterator> > static void > _S_copy_chars(_CharT* __p, _Iterator __k1, _Iterator __k2) > { > for (; __k1 != __k2; ++__k1, ++__p) > traits_type::assign(*__p, *__k1); > } > > static void > _S_copy_chars(_CharT* __p, iterator __k1, iterator __k2) > { _S_copy_chars(__p, __k1.base(), __k2.base()); } > > static void > _S_copy_chars(_CharT* __p, const_iterator __k1, const_iterator __k2) > { _S_copy_chars(__p, __k1.base(), __k2.base()); } > > static void > _S_copy_chars(_CharT* __p, _CharT* __k1, _CharT* __k2) > { traits_type::copy(__p, __k1, __k2 - __k1); } > > static void > _S_copy_chars(_CharT* __p, const _CharT* __k1, const _CharT* __k2) > { traits_type::copy(__p, __k1, __k2 - __k1); } > > void > _M_mutate(size_type __pos, size_type __len1, size_type __len2); > > void > _M_leak_hard(); > > static _Rep& > _S_empty_rep() > { return *reinterpret_cast<_Rep*>(&_S_empty_rep_storage); } > > public: > > > > > inline > basic_string(); > > explicit > basic_string(const _Alloc& __a); > > > basic_string(const basic_string& __str); > basic_string(const basic_string& __str, size_type __pos, > size_type __n = npos); > basic_string(const basic_string& __str, size_type __pos, > size_type __n, const _Alloc& __a); > > basic_string(const _CharT* __s, size_type __n, > const _Alloc& __a = _Alloc()); > basic_string(const _CharT* __s, const _Alloc& __a = _Alloc()); > basic_string(size_type __n, _CharT __c, const _Alloc& __a = _Alloc()); > > template<class _InputIterator> > basic_string(_InputIterator __beg, _InputIterator __end, > const _Alloc& __a = _Alloc()); > > ~basic_string() > { _M_rep()->_M_dispose(this->get_allocator()); } > > basic_string& > operator=(const basic_string& __str) { return this->assign(__str); } > > basic_string& > operator=(const _CharT* __s) { return this->assign(__s); } > > basic_string& > operator=(_CharT __c) { return this->assign(1, __c); } > > > iterator > begin() > { > _M_leak(); > return iterator(_M_data()); > } > > const_iterator > begin() const > { return const_iterator(_M_data()); } > > iterator > end() > { > _M_leak(); > return iterator(_M_data() + this->size()); > } > > const_iterator > end() const > { return const_iterator(_M_data() + this->size()); } > > reverse_iterator > rbegin() > { return reverse_iterator(this->end()); } > > const_reverse_iterator > rbegin() const > { return const_reverse_iterator(this->end()); } > > reverse_iterator > rend() > { return reverse_iterator(this->begin()); } > > const_reverse_iterator > rend() const > { return const_reverse_iterator(this->begin()); } > > public: > > size_type > size() const { return _M_rep()->_M_length; } > > size_type > length() const { return _M_rep()->_M_length; } > > size_type > max_size() const { return _Rep::_S_max_size; } > > void > resize(size_type __n, _CharT __c); > > void > resize(size_type __n) { this->resize(__n, _CharT()); } > > size_type > capacity() const { return _M_rep()->_M_capacity; } > > void > reserve(size_type __res_arg = 0); > > void > clear() { _M_mutate(0, this->size(), 0); } > > bool > empty() const { return this->size() == 0; } > > > const_reference > operator[] (size_type __pos) const > { return _M_data()[__pos]; } > > reference > operator[](size_type __pos) > { > _M_leak(); > return _M_data()[__pos]; > } > > const_reference > at(size_type __n) const > { > if (__n >= this->size()) > __throw_out_of_range("basic_string::at"); > return _M_data()[__n]; > } > > reference > at(size_type __n) > { > if (__n >= size()) > __throw_out_of_range("basic_string::at"); > _M_leak(); > return _M_data()[__n]; > } > > > basic_string& > operator+=(const basic_string& __str) { return this->append(__str); } > > basic_string& > operator+=(const _CharT* __s) { return this->append(__s); } > > basic_string& > operator+=(_CharT __c) { return this->append(size_type(1), __c); } > > basic_string& > append(const basic_string& __str); > > basic_string& > append(const basic_string& __str, size_type __pos, size_type __n); > > basic_string& > append(const _CharT* __s, size_type __n); > > basic_string& > append(const _CharT* __s) > { return this->append(__s, traits_type::length(__s)); } > > basic_string& > append(size_type __n, _CharT __c); > > template<class _InputIterator> > basic_string& > append(_InputIterator __first, _InputIterator __last) > { return this->replace(_M_iend(), _M_iend(), __first, __last); } > > void > push_back(_CharT __c) > { this->replace(_M_iend(), _M_iend(), 1, __c); } > > basic_string& > assign(const basic_string& __str); > > basic_string& > assign(const basic_string& __str, size_type __pos, size_type __n); > > basic_string& > assign(const _CharT* __s, size_type __n); > > basic_string& > assign(const _CharT* __s) > { return this->assign(__s, traits_type::length(__s)); } > > basic_string& > assign(size_type __n, _CharT __c) > { return this->replace(_M_ibegin(), _M_iend(), __n, __c); } > > template<class _InputIterator> > basic_string& > assign(_InputIterator __first, _InputIterator __last) > { return this->replace(_M_ibegin(), _M_iend(), __first, __last); } > > void > insert(iterator __p, size_type __n, _CharT __c) > { this->replace(__p, __p, __n, __c); } > > template<class _InputIterator> > void insert(iterator __p, _InputIterator __beg, _InputIterator __end) > { this->replace(__p, __p, __beg, __end); } > > basic_string& > insert(size_type __pos1, const basic_string& __str) > { return this->insert(__pos1, __str, 0, __str.size()); } > > basic_string& > insert(size_type __pos1, const basic_string& __str, > size_type __pos2, size_type __n); > > basic_string& > insert(size_type __pos, const _CharT* __s, size_type __n); > > basic_string& > insert(size_type __pos, const _CharT* __s) > { return this->insert(__pos, __s, traits_type::length(__s)); } > > basic_string& > insert(size_type __pos, size_type __n, _CharT __c) > { > this->insert(_M_check(__pos), __n, __c); > return *this; > } > > iterator > insert(iterator __p, _CharT __c = _CharT()) > { > size_type __pos = __p - _M_ibegin(); > this->insert(_M_check(__pos), size_type(1), __c); > _M_rep()->_M_set_leaked(); > return this->_M_ibegin() + __pos; > } > > basic_string& > erase(size_type __pos = 0, size_type __n = npos) > { > return this->replace(_M_check(__pos), _M_fold(__pos, __n), > _M_data(), _M_data()); > } > > iterator > erase(iterator __position) > { > size_type __i = __position - _M_ibegin(); > this->replace(__position, __position + 1, _M_data(), _M_data()); > _M_rep()->_M_set_leaked(); > return _M_ibegin() + __i; > } > > iterator > erase(iterator __first, iterator __last) > { > size_type __i = __first - _M_ibegin(); > this->replace(__first, __last, _M_data(), _M_data()); > _M_rep()->_M_set_leaked(); > return _M_ibegin() + __i; > } > > basic_string& > replace(size_type __pos, size_type __n, const basic_string& __str) > { return this->replace(__pos, __n, __str._M_data(), __str.size()); } > > basic_string& > replace(size_type __pos1, size_type __n1, const basic_string& __str, > size_type __pos2, size_type __n2); > > basic_string& > replace(size_type __pos, size_type __n1, const _CharT* __s, > size_type __n2); > > basic_string& > replace(size_type __pos, size_type __n1, const _CharT* __s) > { return this->replace(__pos, __n1, __s, traits_type::length(__s)); } > > basic_string& > replace(size_type __pos, size_type __n1, size_type __n2, _CharT __c) > { return this->replace(_M_check(__pos), _M_fold(__pos, __n1), __n2, __c); } > > basic_string& > replace(iterator __i1, iterator __i2, const basic_string& __str) > { return this->replace(__i1, __i2, __str._M_data(), __str.size()); } > > basic_string& > replace(iterator __i1, iterator __i2, > const _CharT* __s, size_type __n) > { return this->replace(__i1 - _M_ibegin(), __i2 - __i1, __s, __n); } > > basic_string& > replace(iterator __i1, iterator __i2, const _CharT* __s) > { return this->replace(__i1, __i2, __s, traits_type::length(__s)); } > > basic_string& > replace(iterator __i1, iterator __i2, size_type __n, _CharT __c); > > template<class _InputIterator> > basic_string& > replace(iterator __i1, iterator __i2, > _InputIterator __k1, _InputIterator __k2) > { return _M_replace(__i1, __i2, __k1, __k2, > typename iterator_traits<_InputIterator>::iterator_category()); } > > > > basic_string& > replace(iterator __i1, iterator __i2, _CharT* __k1, _CharT* __k2) > { return this->replace(__i1 - _M_ibegin(), __i2 - __i1, > __k1, __k2 - __k1); } > > basic_string& > replace(iterator __i1, iterator __i2, const _CharT* __k1, const _CharT* __k2) > { return this->replace(__i1 - _M_ibegin(), __i2 - __i1, > __k1, __k2 - __k1); } > > basic_string& > replace(iterator __i1, iterator __i2, iterator __k1, iterator __k2) > { return this->replace(__i1 - _M_ibegin(), __i2 - __i1, > __k1.base(), __k2 - __k1); > } > > basic_string& > replace(iterator __i1, iterator __i2, const_iterator __k1, const_iterator __k2) > { return this->replace(__i1 - _M_ibegin(), __i2 - __i1, > __k1.base(), __k2 - __k1); > } > > private: > template<class _InputIterator> > basic_string& > _M_replace(iterator __i1, iterator __i2, _InputIterator __k1, > _InputIterator __k2, input_iterator_tag); > > template<class _ForwardIterator> > basic_string& > _M_replace_safe(iterator __i1, iterator __i2, _ForwardIterator __k1, > _ForwardIterator __k2); > > > > template<class _InIter> > static _CharT* > _S_construct_aux(_InIter __beg, _InIter __end, const _Alloc& __a, > __false_type) > { > typedef typename iterator_traits<_InIter>::iterator_category _Tag; > return _S_construct(__beg, __end, __a, _Tag()); > } > > template<class _InIter> > static _CharT* > _S_construct_aux(_InIter __beg, _InIter __end, const _Alloc& __a, > __true_type) > { > return _S_construct(static_cast<size_type>(__beg), > static_cast<value_type>(__end), __a); > } > > template<class _InIter> > static _CharT* > _S_construct(_InIter __beg, _InIter __end, const _Alloc& __a) > { > typedef typename _Is_integer<_InIter>::_Integral _Integral; > return _S_construct_aux(__beg, __end, __a, _Integral()); > } > > > template<class _InIter> > static _CharT* > _S_construct(_InIter __beg, _InIter __end, const _Alloc& __a, > input_iterator_tag); > > > > template<class _FwdIter> > static _CharT* > _S_construct(_FwdIter __beg, _FwdIter __end, const _Alloc& __a, > forward_iterator_tag); > > static _CharT* > _S_construct(size_type __req, _CharT __c, const _Alloc& __a); > > public: > > size_type > copy(_CharT* __s, size_type __n, size_type __pos = 0) const; > > void > swap(basic_string<_CharT, _Traits, _Alloc>& __s); > > > const _CharT* > c_str() const > { > > size_type __n = this->size(); > traits_type::assign(_M_data()[__n], _Rep::_S_terminal); > return _M_data(); > } > > const _CharT* > data() const { return _M_data(); } > > allocator_type > get_allocator() const { return _M_dataplus; } > > size_type > find(const _CharT* __s, size_type __pos, size_type __n) const; > > size_type > find(const basic_string& __str, size_type __pos = 0) const > { return this->find(__str.data(), __pos, __str.size()); } > > size_type > find(const _CharT* __s, size_type __pos = 0) const > { return this->find(__s, __pos, traits_type::length(__s)); } > > size_type > find(_CharT __c, size_type __pos = 0) const; > > size_type > rfind(const basic_string& __str, size_type __pos = npos) const > { return this->rfind(__str.data(), __pos, __str.size()); } > > size_type > rfind(const _CharT* __s, size_type __pos, size_type __n) const; > > size_type > rfind(const _CharT* __s, size_type __pos = npos) const > { return this->rfind(__s, __pos, traits_type::length(__s)); } > > size_type > rfind(_CharT __c, size_type __pos = npos) const; > > size_type > find_first_of(const basic_string& __str, size_type __pos = 0) const > { return this->find_first_of(__str.data(), __pos, __str.size()); } > > size_type > find_first_of(const _CharT* __s, size_type __pos, size_type __n) const; > > size_type > find_first_of(const _CharT* __s, size_type __pos = 0) const > { return this->find_first_of(__s, __pos, traits_type::length(__s)); } > > size_type > find_first_of(_CharT __c, size_type __pos = 0) const > { return this->find(__c, __pos); } > > size_type > find_last_of(const basic_string& __str, size_type __pos = npos) const > { return this->find_last_of(__str.data(), __pos, __str.size()); } > > size_type > find_last_of(const _CharT* __s, size_type __pos, size_type __n) const; > > size_type > find_last_of(const _CharT* __s, size_type __pos = npos) const > { return this->find_last_of(__s, __pos, traits_type::length(__s)); } > > size_type > find_last_of(_CharT __c, size_type __pos = npos) const > { return this->rfind(__c, __pos); } > > size_type > find_first_not_of(const basic_string& __str, size_type __pos = 0) const > { return this->find_first_not_of(__str.data(), __pos, __str.size()); } > > size_type > find_first_not_of(const _CharT* __s, size_type __pos, > size_type __n) const; > > size_type > find_first_not_of(const _CharT* __s, size_type __pos = 0) const > { return this->find_first_not_of(__s, __pos, traits_type::length(__s)); } > > size_type > find_first_not_of(_CharT __c, size_type __pos = 0) const; > > size_type > find_last_not_of(const basic_string& __str, size_type __pos = npos) const > { return this->find_last_not_of(__str.data(), __pos, __str.size()); } > > size_type > find_last_not_of(const _CharT* __s, size_type __pos, > size_type __n) const; > size_type > find_last_not_of(const _CharT* __s, size_type __pos = npos) const > { return this->find_last_not_of(__s, __pos, traits_type::length(__s)); } > > size_type > find_last_not_of(_CharT __c, size_type __pos = npos) const; > > basic_string > substr(size_type __pos = 0, size_type __n = npos) const > { > if (__pos > this->size()) > __throw_out_of_range("basic_string::substr"); > return basic_string(*this, __pos, __n); > } > > int > compare(const basic_string& __str) const > { > size_type __size = this->size(); > size_type __osize = __str.size(); > size_type __len = std::min(__size, __osize); > > int __r = traits_type::compare(_M_data(), __str.data(), __len); > if (!__r) > __r = __size - __osize; > return __r; > } > > int > compare(size_type __pos, size_type __n, const basic_string& __str) const; > > int > compare(size_type __pos1, size_type __n1, const basic_string& __str, > size_type __pos2, size_type __n2) const; > > int > compare(const _CharT* __s) const; > > > > int > compare(size_type __pos, size_type __n1, const _CharT* __s) const; > > int > compare(size_type __pos, size_type __n1, const _CharT* __s, > size_type __n2) const; > }; > > > template<typename _CharT, typename _Traits, typename _Alloc> > inline basic_string<_CharT, _Traits, _Alloc>:: > basic_string() > : _M_dataplus(_S_empty_rep()._M_refcopy(), _Alloc()) { } > > > template<typename _CharT, typename _Traits, typename _Alloc> > basic_string<_CharT, _Traits, _Alloc> > operator+(const basic_string<_CharT, _Traits, _Alloc>& __lhs, > const basic_string<_CharT, _Traits, _Alloc>& __rhs) > { > basic_string<_CharT, _Traits, _Alloc> __str(__lhs); > __str.append(__rhs); > return __str; > } > > template<typename _CharT, typename _Traits, typename _Alloc> > basic_string<_CharT,_Traits,_Alloc> > operator+(const _CharT* __lhs, > const basic_string<_CharT,_Traits,_Alloc>& __rhs); > > template<typename _CharT, typename _Traits, typename _Alloc> > basic_string<_CharT,_Traits,_Alloc> > operator+(_CharT __lhs, const basic_string<_CharT,_Traits,_Alloc>& __rhs); > > template<typename _CharT, typename _Traits, typename _Alloc> > inline basic_string<_CharT, _Traits, _Alloc> > operator+(const basic_string<_CharT, _Traits, _Alloc>& __lhs, > const _CharT* __rhs) > { > basic_string<_CharT, _Traits, _Alloc> __str(__lhs); > __str.append(__rhs); > return __str; > } > > template<typename _CharT, typename _Traits, typename _Alloc> > inline basic_string<_CharT, _Traits, _Alloc> > operator+(const basic_string<_CharT, _Traits, _Alloc>& __lhs, _CharT __rhs) > { > typedef basic_string<_CharT, _Traits, _Alloc> __string_type; > typedef typename __string_type::size_type __size_type; > __string_type __str(__lhs); > __str.append(__size_type(1), __rhs); > return __str; > } > > > template<typename _CharT, typename _Traits, typename _Alloc> > inline bool > operator==(const basic_string<_CharT, _Traits, _Alloc>& __lhs, > const basic_string<_CharT, _Traits, _Alloc>& __rhs) > { return __lhs.compare(__rhs) == 0; } > > template<typename _CharT, typename _Traits, typename _Alloc> > inline bool > operator==(const _CharT* __lhs, > const basic_string<_CharT, _Traits, _Alloc>& __rhs) > { return __rhs.compare(__lhs) == 0; } > > template<typename _CharT, typename _Traits, typename _Alloc> > inline bool > operator==(const basic_string<_CharT, _Traits, _Alloc>& __lhs, > const _CharT* __rhs) > { return __lhs.compare(__rhs) == 0; } > > > template<typename _CharT, typename _Traits, typename _Alloc> > inline bool > operator!=(const basic_string<_CharT, _Traits, _Alloc>& __lhs, > const basic_string<_CharT, _Traits, _Alloc>& __rhs) > { return __rhs.compare(__lhs) != 0; } > > template<typename _CharT, typename _Traits, typename _Alloc> > inline bool > operator!=(const _CharT* __lhs, > const basic_string<_CharT, _Traits, _Alloc>& __rhs) > { return __rhs.compare(__lhs) != 0; } > > template<typename _CharT, typename _Traits, typename _Alloc> > inline bool > operator!=(const basic_string<_CharT, _Traits, _Alloc>& __lhs, > const _CharT* __rhs) > { return __lhs.compare(__rhs) != 0; } > > > template<typename _CharT, typename _Traits, typename _Alloc> > inline bool > operator<(const basic_string<_CharT, _Traits, _Alloc>& __lhs, > const basic_string<_CharT, _Traits, _Alloc>& __rhs) > { return __lhs.compare(__rhs) < 0; } > > template<typename _CharT, typename _Traits, typename _Alloc> > inline bool > operator<(const basic_string<_CharT, _Traits, _Alloc>& __lhs, > const _CharT* __rhs) > { return __lhs.compare(__rhs) < 0; } > > template<typename _CharT, typename _Traits, typename _Alloc> > inline bool > operator<(const _CharT* __lhs, > const basic_string<_CharT, _Traits, _Alloc>& __rhs) > { return __rhs.compare(__lhs) > 0; } > > > template<typename _CharT, typename _Traits, typename _Alloc> > inline bool > operator>(const basic_string<_CharT, _Traits, _Alloc>& __lhs, > const basic_string<_CharT, _Traits, _Alloc>& __rhs) > { return __lhs.compare(__rhs) > 0; } > > template<typename _CharT, typename _Traits, typename _Alloc> > inline bool > operator>(const basic_string<_CharT, _Traits, _Alloc>& __lhs, > const _CharT* __rhs) > { return __lhs.compare(__rhs) > 0; } > > template<typename _CharT, typename _Traits, typename _Alloc> > inline bool > operator>(const _CharT* __lhs, > const basic_string<_CharT, _Traits, _Alloc>& __rhs) > { return __rhs.compare(__lhs) < 0; } > > > template<typename _CharT, typename _Traits, typename _Alloc> > inline bool > operator<=(const basic_string<_CharT, _Traits, _Alloc>& __lhs, > const basic_string<_CharT, _Traits, _Alloc>& __rhs) > { return __lhs.compare(__rhs) <= 0; } > > template<typename _CharT, typename _Traits, typename _Alloc> > inline bool > operator<=(const basic_string<_CharT, _Traits, _Alloc>& __lhs, > const _CharT* __rhs) > { return __lhs.compare(__rhs) <= 0; } > > template<typename _CharT, typename _Traits, typename _Alloc> > inline bool > operator<=(const _CharT* __lhs, > const basic_string<_CharT, _Traits, _Alloc>& __rhs) > { return __rhs.compare(__lhs) >= 0; } > > > template<typename _CharT, typename _Traits, typename _Alloc> > inline bool > operator>=(const basic_string<_CharT, _Traits, _Alloc>& __lhs, > const basic_string<_CharT, _Traits, _Alloc>& __rhs) > { return __lhs.compare(__rhs) >= 0; } > > template<typename _CharT, typename _Traits, typename _Alloc> > inline bool > operator>=(const basic_string<_CharT, _Traits, _Alloc>& __lhs, > const _CharT* __rhs) > { return __lhs.compare(__rhs) >= 0; } > > template<typename _CharT, typename _Traits, typename _Alloc> > inline bool > operator>=(const _CharT* __lhs, > const basic_string<_CharT, _Traits, _Alloc>& __rhs) > { return __rhs.compare(__lhs) <= 0; } > > > template<typename _CharT, typename _Traits, typename _Alloc> > inline void > swap(basic_string<_CharT, _Traits, _Alloc>& __lhs, > basic_string<_CharT, _Traits, _Alloc>& __rhs) > { __lhs.swap(__rhs); } > > template<typename _CharT, typename _Traits, typename _Alloc> > basic_istream<_CharT, _Traits>& > operator>>(basic_istream<_CharT, _Traits>& __is, > basic_string<_CharT, _Traits, _Alloc>& __str); > > template<typename _CharT, typename _Traits, typename _Alloc> > basic_ostream<_CharT, _Traits>& > operator<<(basic_ostream<_CharT, _Traits>& __os, > const basic_string<_CharT, _Traits, _Alloc>& __str); > > template<typename _CharT, typename _Traits, typename _Alloc> > basic_istream<_CharT,_Traits>& > getline(basic_istream<_CharT, _Traits>& __is, > basic_string<_CharT, _Traits, _Alloc>& __str, _CharT __delim); > > template<typename _CharT, typename _Traits, typename _Alloc> > inline basic_istream<_CharT,_Traits>& > getline(basic_istream<_CharT, _Traits>& __is, > basic_string<_CharT, _Traits, _Alloc>& __str); >} ># 54 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/string" 2 3 > > ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/algorithm" 1 3 ># 64 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/algorithm" 3 > ># 65 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/algorithm" 3 > > > > ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_algo.h" 1 3 ># 64 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_algo.h" 3 ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_heap.h" 1 3 ># 63 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_heap.h" 3 >namespace std >{ > > > > template<typename _RandomAccessIterator, typename _Distance, typename _Tp> > void > __push_heap(_RandomAccessIterator __first, > _Distance __holeIndex, _Distance __topIndex, _Tp __value) > { > _Distance __parent = (__holeIndex - 1) / 2; > while (__holeIndex > __topIndex && *(__first + __parent) < __value) { > *(__first + __holeIndex) = *(__first + __parent); > __holeIndex = __parent; > __parent = (__holeIndex - 1) / 2; > } > *(__first + __holeIndex) = __value; > } > > template<typename _RandomAccessIterator> > inline void > push_heap(_RandomAccessIterator __first, _RandomAccessIterator __last) > { > typedef typename iterator_traits<_RandomAccessIterator>::value_type > _ValueType; > typedef typename iterator_traits<_RandomAccessIterator>::difference_type > _DistanceType; > > > > > > > __push_heap(__first, _DistanceType((__last - __first) - 1), _DistanceType(0), > _ValueType(*(__last - 1))); > } > > template<typename _RandomAccessIterator, typename _Distance, typename _Tp, > typename _Compare> > void > __push_heap(_RandomAccessIterator __first, _Distance __holeIndex, > _Distance __topIndex, _Tp __value, _Compare __comp) > { > _Distance __parent = (__holeIndex - 1) / 2; > while (__holeIndex > __topIndex && __comp(*(__first + __parent), __value)) { > *(__first + __holeIndex) = *(__first + __parent); > __holeIndex = __parent; > __parent = (__holeIndex - 1) / 2; > } > *(__first + __holeIndex) = __value; > } > > template<typename _RandomAccessIterator, typename _Compare> > inline void > push_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, > _Compare __comp) > { > typedef typename iterator_traits<_RandomAccessIterator>::value_type > _ValueType; > typedef typename iterator_traits<_RandomAccessIterator>::difference_type > _DistanceType; > > > > > > __push_heap(__first, _DistanceType((__last - __first) - 1), _DistanceType(0), > _ValueType(*(__last - 1)), __comp); > } > > template<typename _RandomAccessIterator, typename _Distance, typename _Tp> > void > __adjust_heap(_RandomAccessIterator __first, _Distance __holeIndex, > _Distance __len, _Tp __value) > { > _Distance __topIndex = __holeIndex; > _Distance __secondChild = 2 * __holeIndex + 2; > while (__secondChild < __len) { > if (*(__first + __secondChild) < *(__first + (__secondChild - 1))) > __secondChild--; > *(__first + __holeIndex) = *(__first + __secondChild); > __holeIndex = __secondChild; > __secondChild = 2 * (__secondChild + 1); > } > if (__secondChild == __len) { > *(__first + __holeIndex) = *(__first + (__secondChild - 1)); > __holeIndex = __secondChild - 1; > } > __push_heap(__first, __holeIndex, __topIndex, __value); > } > > template<typename _RandomAccessIterator, typename _Tp> > inline void > __pop_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, > _RandomAccessIterator __result, _Tp __value) > { > typedef typename iterator_traits<_RandomAccessIterator>::difference_type _Distance; > *__result = *__first; > __adjust_heap(__first, _Distance(0), _Distance(__last - __first), __value); > } > > template<typename _RandomAccessIterator> > inline void > pop_heap(_RandomAccessIterator __first, _RandomAccessIterator __last) > { > typedef typename iterator_traits<_RandomAccessIterator>::value_type _ValueType; > > > > > > > __pop_heap(__first, __last - 1, __last - 1, _ValueType(*(__last - 1))); > } > > template<typename _RandomAccessIterator, typename _Distance, > typename _Tp, typename _Compare> > void > __adjust_heap(_RandomAccessIterator __first, _Distance __holeIndex, > _Distance __len, _Tp __value, _Compare __comp) > { > _Distance __topIndex = __holeIndex; > _Distance __secondChild = 2 * __holeIndex + 2; > while (__secondChild < __len) { > if (__comp(*(__first + __secondChild), *(__first + (__secondChild - 1)))) > __secondChild--; > *(__first + __holeIndex) = *(__first + __secondChild); > __holeIndex = __secondChild; > __secondChild = 2 * (__secondChild + 1); > } > if (__secondChild == __len) { > *(__first + __holeIndex) = *(__first + (__secondChild - 1)); > __holeIndex = __secondChild - 1; > } > __push_heap(__first, __holeIndex, __topIndex, __value, __comp); > } > > template<typename _RandomAccessIterator, typename _Tp, typename _Compare> > inline void > __pop_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, > _RandomAccessIterator __result, _Tp __value, _Compare __comp) > { > typedef typename iterator_traits<_RandomAccessIterator>::difference_type _Distance; > *__result = *__first; > __adjust_heap(__first, _Distance(0), _Distance(__last - __first), > __value, __comp); > } > > template<typename _RandomAccessIterator, typename _Compare> > inline void > pop_heap(_RandomAccessIterator __first, > _RandomAccessIterator __last, _Compare __comp) > { > > > > > typedef typename iterator_traits<_RandomAccessIterator>::value_type _ValueType; > __pop_heap(__first, __last - 1, __last - 1, _ValueType(*(__last - 1)), __comp); > } > > template<typename _RandomAccessIterator> > void > make_heap(_RandomAccessIterator __first, _RandomAccessIterator __last) > { > typedef typename iterator_traits<_RandomAccessIterator>::value_type > _ValueType; > typedef typename iterator_traits<_RandomAccessIterator>::difference_type > _DistanceType; > > > > > > > if (__last - __first < 2) return; > _DistanceType __len = __last - __first; > _DistanceType __parent = (__len - 2)/2; > > while (true) { > __adjust_heap(__first, __parent, __len, _ValueType(*(__first + __parent))); > if (__parent == 0) return; > __parent--; > } > } > > template<typename _RandomAccessIterator, typename _Compare> > inline void > make_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, > _Compare __comp) > { > typedef typename iterator_traits<_RandomAccessIterator>::value_type > _ValueType; > typedef typename iterator_traits<_RandomAccessIterator>::difference_type > _DistanceType; > > > > > > if (__last - __first < 2) return; > _DistanceType __len = __last - __first; > _DistanceType __parent = (__len - 2)/2; > > while (true) { > __adjust_heap(__first, __parent, __len, > _ValueType(*(__first + __parent)), __comp); > if (__parent == 0) return; > __parent--; > } > } > > template<typename _RandomAccessIterator> > void > sort_heap(_RandomAccessIterator __first, _RandomAccessIterator __last) > { > > > > > > > while (__last - __first > 1) > pop_heap(__first, __last--); > } > > template<typename _RandomAccessIterator, typename _Compare> > void > sort_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, > _Compare __comp) > { > > > > > while (__last - __first > 1) > pop_heap(__first, __last--, __comp); > } > >} ># 65 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_algo.h" 2 3 ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_tempbuf.h" 1 3 ># 64 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_tempbuf.h" 3 >namespace std >{ ># 74 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_tempbuf.h" 3 >template <class _ForwardIterator, class _Tp> > class _Temporary_buffer >{ > > > > ptrdiff_t _M_original_len; > ptrdiff_t _M_len; > _Tp* _M_buffer; > > > void _M_allocate_buffer() { > _M_original_len = _M_len; > _M_buffer = 0; > > if (_M_len > (ptrdiff_t)(2147483647 / sizeof(_Tp))) > _M_len = 2147483647 / sizeof(_Tp); > > while (_M_len > 0) { > _M_buffer = (_Tp*) malloc(_M_len * sizeof(_Tp)); > if (_M_buffer) > break; > _M_len /= 2; > } > } > > void _M_initialize_buffer(const _Tp&, __true_type) {} > void _M_initialize_buffer(const _Tp& val, __false_type) { > uninitialized_fill_n(_M_buffer, _M_len, val); > } > >public: > > ptrdiff_t size() const { return _M_len; } > > ptrdiff_t requested_size() const { return _M_original_len; } > > _Tp* begin() { return _M_buffer; } > > _Tp* end() { return _M_buffer + _M_len; } > > _Temporary_buffer(_ForwardIterator __first, _ForwardIterator __last) { > > typedef typename __type_traits<_Tp>::has_trivial_default_constructor > _Trivial; > > 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/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_algo.h" 2 3 > > > >namespace std >{ ># 84 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_algo.h" 3 > template<typename _Tp> > inline const _Tp& > __median(const _Tp& __a, const _Tp& __b, const _Tp& __c) > { > > > if (__a < __b) > if (__b < __c) > return __b; > else if (__a < __c) > return __c; > else > return __a; > else if (__a < __c) > return __a; > else if (__b < __c) > return __c; > else > return __b; > } ># 118 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_algo.h" 3 > template<typename _Tp, typename _Compare> > inline const _Tp& > __median(const _Tp& __a, const _Tp& __b, const _Tp& __c, _Compare __comp) > { > > > if (__comp(__a, __b)) > if (__comp(__b, __c)) > return __b; > else if (__comp(__a, __c)) > return __c; > else > return __a; > else if (__comp(__a, __c)) > return __a; > else if (__comp(__b, __c)) > return __c; > else > return __b; > } ># 150 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_algo.h" 3 > template<typename _InputIter, typename _Function> > _Function > for_each(_InputIter __first, _InputIter __last, _Function __f) > { > > > for ( ; __first != __last; ++__first) > __f(*__first); > return __f; > } > > > > > > > template<typename _InputIter, typename _Tp> > inline _InputIter > find(_InputIter __first, _InputIter __last, > const _Tp& __val, > input_iterator_tag) > { > while (__first != __last && !(*__first == __val)) > ++__first; > return __first; > } > > > > > > > template<typename _InputIter, typename _Predicate> > inline _InputIter > find_if(_InputIter __first, _InputIter __last, > _Predicate __pred, > input_iterator_tag) > { > while (__first != __last && !__pred(*__first)) > ++__first; > return __first; > } > > > > > > > template<typename _RandomAccessIter, typename _Tp> > _RandomAccessIter > find(_RandomAccessIter __first, _RandomAccessIter __last, > const _Tp& __val, > random_access_iterator_tag) > { > typename iterator_traits<_RandomAccessIter>::difference_type __trip_count > = (__last - __first) >> 2; > > for ( ; __trip_count > 0 ; --__trip_count) { > if (*__first == __val) return __first; > ++__first; > > if (*__first == __val) return __first; > ++__first; > > if (*__first == __val) return __first; > ++__first; > > if (*__first == __val) return __first; > ++__first; > } > > switch(__last - __first) { > case 3: > if (*__first == __val) return __first; > ++__first; > case 2: > if (*__first == __val) return __first; > ++__first; > case 1: > if (*__first == __val) return __first; > ++__first; > case 0: > default: > return __last; > } > } > > > > > > > template<typename _RandomAccessIter, typename _Predicate> > _RandomAccessIter > find_if(_RandomAccessIter __first, _RandomAccessIter __last, > _Predicate __pred, > random_access_iterator_tag) > { > typename iterator_traits<_RandomAccessIter>::difference_type __trip_count > = (__last - __first) >> 2; > > for ( ; __trip_count > 0 ; --__trip_count) { > if (__pred(*__first)) return __first; > ++__first; > > if (__pred(*__first)) return __first; > ++__first; > > if (__pred(*__first)) return __first; > ++__first; > > if (__pred(*__first)) return __first; > ++__first; > } > > switch(__last - __first) { > case 3: > if (__pred(*__first)) return __first; > ++__first; > case 2: > if (__pred(*__first)) return __first; > ++__first; > case 1: > if (__pred(*__first)) return __first; > ++__first; > case 0: > default: > return __last; > } > } ># 289 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_algo.h" 3 > template<typename _InputIter, typename _Tp> > inline _InputIter > find(_InputIter __first, _InputIter __last, > const _Tp& __val) > { > > > > > return find(__first, __last, __val, __iterator_category(__first)); > } ># 309 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_algo.h" 3 > template<typename _InputIter, typename _Predicate> > inline _InputIter > find_if(_InputIter __first, _InputIter __last, > _Predicate __pred) > { > > > > > return find_if(__first, __last, __pred, __iterator_category(__first)); > } ># 329 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_algo.h" 3 > template<typename _ForwardIter> > _ForwardIter > adjacent_find(_ForwardIter __first, _ForwardIter __last) > { > > > > > if (__first == __last) > return __last; > _ForwardIter __next = __first; > while(++__next != __last) { > if (*__first == *__next) > return __first; > __first = __next; > } > return __last; > } ># 358 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_algo.h" 3 > template<typename _ForwardIter, typename _BinaryPredicate> > _ForwardIter > adjacent_find(_ForwardIter __first, _ForwardIter __last, > _BinaryPredicate __binary_pred) > { > > > > > > if (__first == __last) > return __last; > _ForwardIter __next = __first; > while(++__next != __last) { > if (__binary_pred(*__first, *__next)) > return __first; > __first = __next; > } > return __last; > } ># 387 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_algo.h" 3 > template<typename _InputIter, typename _Tp> > typename iterator_traits<_InputIter>::difference_type > count(_InputIter __first, _InputIter __last, const _Tp& __value) > { > > > > > > typename iterator_traits<_InputIter>::difference_type __n = 0; > for ( ; __first != __last; ++__first) > if (*__first == __value) > ++__n; > return __n; > } ># 411 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_algo.h" 3 > template<typename _InputIter, typename _Predicate> > typename iterator_traits<_InputIter>::difference_type > count_if(_InputIter __first, _InputIter __last, _Predicate __pred) > { > > > > > typename iterator_traits<_InputIter>::difference_type __n = 0; > for ( ; __first != __last; ++__first) > if (__pred(*__first)) > ++__n; > return __n; > } ># 450 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_algo.h" 3 > template<typename _ForwardIter1, typename _ForwardIter2> > _ForwardIter1 > search(_ForwardIter1 __first1, _ForwardIter1 __last1, > _ForwardIter2 __first2, _ForwardIter2 __last2) > { > > > > > > > > > if (__first1 == __last1 || __first2 == __last2) > return __first1; > > > _ForwardIter2 __tmp(__first2); > ++__tmp; > if (__tmp == __last2) > return find(__first1, __last1, *__first2); > > > > _ForwardIter2 __p1, __p; > > __p1 = __first2; ++__p1; > > _ForwardIter1 __current = __first1; > > while (__first1 != __last1) { > __first1 = find(__first1, __last1, *__first2); > if (__first1 == __last1) > return __last1; > > __p = __p1; > __current = __first1; > if (++__current == __last1) > return __last1; > > while (*__current == *__p) { > if (++__p == __last2) > return __first1; > if (++__current == __last1) > return __last1; > } > > ++__first1; > } > return __first1; > } ># 522 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_algo.h" 3 > template<typename _ForwardIter1, typename _ForwardIter2, typename _BinaryPred> > _ForwardIter1 > search(_ForwardIter1 __first1, _ForwardIter1 __last1, > _ForwardIter2 __first2, _ForwardIter2 __last2, > _BinaryPred __predicate) > { > > > > > > > > > if (__first1 == __last1 || __first2 == __last2) > return __first1; > > > _ForwardIter2 __tmp(__first2); > ++__tmp; > if (__tmp == __last2) { > while (__first1 != __last1 && !__predicate(*__first1, *__first2)) > ++__first1; > return __first1; > } > > > > _ForwardIter2 __p1, __p; > > __p1 = __first2; ++__p1; > > _ForwardIter1 __current = __first1; > > while (__first1 != __last1) { > while (__first1 != __last1) { > if (__predicate(*__first1, *__first2)) > break; > ++__first1; > } > while (__first1 != __last1 && !__predicate(*__first1, *__first2)) > ++__first1; > if (__first1 == __last1) > return __last1; > > __p = __p1; > __current = __first1; > if (++__current == __last1) return __last1; > > while (__predicate(*__current, *__p)) { > if (++__p == __last2) > return __first1; > if (++__current == __last1) > return __last1; > } > > ++__first1; > } > return __first1; > } ># 596 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_algo.h" 3 > template<typename _ForwardIter, typename _Integer, typename _Tp> > _ForwardIter > search_n(_ForwardIter __first, _ForwardIter __last, > _Integer __count, const _Tp& __val) > { > > > > > > > if (__count <= 0) > return __first; > else { > __first = find(__first, __last, __val); > while (__first != __last) { > typename iterator_traits<_ForwardIter>::difference_type __n = __count; > --__n; > _ForwardIter __i = __first; > ++__i; > while (__i != __last && __n != 0 && *__i == __val) { > ++__i; > --__n; > } > if (__n == 0) > return __first; > else > __first = find(__i, __last, __val); > } > return __last; > } > } ># 644 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_algo.h" 3 > template<typename _ForwardIter, typename _Integer, typename _Tp, > typename _BinaryPred> > _ForwardIter > search_n(_ForwardIter __first, _ForwardIter __last, > _Integer __count, const _Tp& __val, > _BinaryPred __binary_pred) > { > > > > > > if (__count <= 0) > return __first; > else { > while (__first != __last) { > if (__binary_pred(*__first, __val)) > break; > ++__first; > } > while (__first != __last) { > typename iterator_traits<_ForwardIter>::difference_type __n = __count; > --__n; > _ForwardIter __i = __first; > ++__i; > while (__i != __last && __n != 0 && __binary_pred(*__i, __val)) { > ++__i; > --__n; > } > if (__n == 0) > return __first; > else { > while (__i != __last) { > if (__binary_pred(*__i, __val)) > break; > ++__i; > } > __first = __i; > } > } > return __last; > } > } ># 699 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_algo.h" 3 > template<typename _ForwardIter1, typename _ForwardIter2> > _ForwardIter2 > swap_ranges(_ForwardIter1 __first1, _ForwardIter1 __last1, > _ForwardIter2 __first2) > { > > > > > > > > > > > for ( ; __first1 != __last1; ++__first1, ++__first2) > iter_swap(__first1, __first2); > return __first2; > } ># 734 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_algo.h" 3 > template<typename _InputIter, typename _OutputIter, typename _UnaryOperation> > _OutputIter > transform(_InputIter __first, _InputIter __last, > _OutputIter __result, _UnaryOperation __unary_op) > { > > > > > > > for ( ; __first != __last; ++__first, ++__result) > *__result = __unary_op(*__first); > return __result; > } ># 767 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_algo.h" 3 > template<typename _InputIter1, typename _InputIter2, typename _OutputIter, > typename _BinaryOperation> > _OutputIter > transform(_InputIter1 __first1, _InputIter1 __last1, > _InputIter2 __first2, _OutputIter __result, > _BinaryOperation __binary_op) > { > > > > > > > > for ( ; __first1 != __last1; ++__first1, ++__first2, ++__result) > *__result = __binary_op(*__first1, *__first2); > return __result; > } ># 798 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_algo.h" 3 > template<typename _ForwardIter, typename _Tp> > void > replace(_ForwardIter __first, _ForwardIter __last, > const _Tp& __old_value, const _Tp& __new_value) > { > > > > > > > > for ( ; __first != __last; ++__first) > if (*__first == __old_value) > *__first = __new_value; > } ># 827 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_algo.h" 3 > template<typename _ForwardIter, typename _Predicate, typename _Tp> > void > replace_if(_ForwardIter __first, _ForwardIter __last, > _Predicate __pred, const _Tp& __new_value) > { > > > > > > > > for ( ; __first != __last; ++__first) > if (__pred(*__first)) > *__first = __new_value; > } ># 858 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_algo.h" 3 > template<typename _InputIter, typename _OutputIter, typename _Tp> > _OutputIter > replace_copy(_InputIter __first, _InputIter __last, > _OutputIter __result, > const _Tp& __old_value, const _Tp& __new_value) > { > > > > > > > > for ( ; __first != __last; ++__first, ++__result) > *__result = *__first == __old_value ? __new_value : *__first; > return __result; > } ># 890 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_algo.h" 3 > template<typename _InputIter, typename _OutputIter, typename _Predicate, > typename _Tp> > _OutputIter > replace_copy_if(_InputIter __first, _InputIter __last, > _OutputIter __result, > _Predicate __pred, const _Tp& __new_value) > { > > > > > > > > for ( ; __first != __last; ++__first, ++__result) > *__result = __pred(*__first) ? __new_value : *__first; > return __result; > } ># 920 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_algo.h" 3 > template<typename _ForwardIter, typename _Generator> > void > generate(_ForwardIter __first, _ForwardIter __last, _Generator __gen) > { > > > > > > for ( ; __first != __last; ++__first) > *__first = __gen(); > } ># 944 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_algo.h" 3 > template<typename _OutputIter, typename _Size, typename _Generator> > _OutputIter > generate_n(_OutputIter __first, _Size __n, _Generator __gen) > { > > > > > > for ( ; __n > 0; --__n, ++__first) > *__first = __gen(); > return __first; > } ># 971 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_algo.h" 3 > template<typename _InputIter, typename _OutputIter, typename _Tp> > _OutputIter > remove_copy(_InputIter __first, _InputIter __last, > _OutputIter __result, const _Tp& __value) > { > > > > > > > > for ( ; __first != __last; ++__first) > if (!(*__first == __value)) { > *__result = *__first; > ++__result; > } > return __result; > } ># 1005 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_algo.h" 3 > template<typename _InputIter, typename _OutputIter, typename _Predicate> > _OutputIter > remove_copy_if(_InputIter __first, _InputIter __last, > _OutputIter __result, _Predicate __pred) > { > > > > > > > > for ( ; __first != __last; ++__first) > if (!__pred(*__first)) { > *__result = *__first; > ++__result; > } > return __result; > } ># 1041 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_algo.h" 3 > template<typename _ForwardIter, typename _Tp> > _ForwardIter > remove(_ForwardIter __first, _ForwardIter __last, > const _Tp& __value) > { > > > > > > > > __first = find(__first, __last, __value); > _ForwardIter __i = __first; > return __first == __last ? __first > : remove_copy(++__i, __last, __first, __value); > } ># 1075 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_algo.h" 3 > template<typename _ForwardIter, typename _Predicate> > _ForwardIter > remove_if(_ForwardIter __first, _ForwardIter __last, > _Predicate __pred) > { > > > > > > __first = find_if(__first, __last, __pred); > _ForwardIter __i = __first; > return __first == __last ? __first > : remove_copy_if(++__i, __last, __first, __pred); > } > > > > > > > > template<typename _InputIter, typename _OutputIter> > _OutputIter > __unique_copy(_InputIter __first, _InputIter __last, > _OutputIter __result, > output_iterator_tag) > { > > typename iterator_traits<_InputIter>::value_type __value = *__first; > *__result = __value; > while (++__first != __last) > if (!(__value == *__first)) { > __value = *__first; > *++__result = __value; > } > return ++__result; > } > > > > > > > > template<typename _InputIter, typename _ForwardIter> > _ForwardIter > __unique_copy(_InputIter __first, _InputIter __last, > _ForwardIter __result, > forward_iterator_tag) > { > > *__result = *__first; > while (++__first != __last) > if (!(*__result == *__first)) > *++__result = *__first; > return ++__result; > } ># 1147 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_algo.h" 3 > template<typename _InputIter, typename _OutputIter> > inline _OutputIter > unique_copy(_InputIter __first, _InputIter __last, > _OutputIter __result) > { > > > > > > > > typedef typename iterator_traits<_OutputIter>::iterator_category _IterType; > > if (__first == __last) return __result; > return __unique_copy(__first, __last, __result, _IterType()); > } ># 1172 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_algo.h" 3 > template<typename _InputIter, typename _OutputIter, typename _BinaryPredicate> > _OutputIter > __unique_copy(_InputIter __first, _InputIter __last, > _OutputIter __result, > _BinaryPredicate __binary_pred, > output_iterator_tag) > { > > > > > > typename iterator_traits<_InputIter>::value_type __value = *__first; > *__result = __value; > while (++__first != __last) > if (!__binary_pred(__value, *__first)) { > __value = *__first; > *++__result = __value; > } > return ++__result; > } ># 1201 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_algo.h" 3 > template<typename _InputIter, typename _ForwardIter, typename _BinaryPredicate> > _ForwardIter > __unique_copy(_InputIter __first, _InputIter __last, > _ForwardIter __result, > _BinaryPredicate __binary_pred, > forward_iterator_tag) > { > > > > > > *__result = *__first; > while (++__first != __last) > if (!__binary_pred(*__result, *__first)) *++__result = *__first; > return ++__result; > } ># 1234 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_algo.h" 3 > template<typename _InputIter, typename _OutputIter, typename _BinaryPredicate> > inline _OutputIter > unique_copy(_InputIter __first, _InputIter __last, > _OutputIter __result, > _BinaryPredicate __binary_pred) > { > > > > > > typedef typename iterator_traits<_OutputIter>::iterator_category _IterType; > > if (__first == __last) return __result; > return __unique_copy(__first, __last, >__result, __binary_pred, _IterType()); > } ># 1265 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_algo.h" 3 > template<typename _ForwardIter> > _ForwardIter > unique(_ForwardIter __first, _ForwardIter __last) > { > > > > > > __first = adjacent_find(__first, __last); > return unique_copy(__first, __last, __first); > } ># 1292 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_algo.h" 3 > template<typename _ForwardIter, typename _BinaryPredicate> > _ForwardIter > unique(_ForwardIter __first, _ForwardIter __last, > _BinaryPredicate __binary_pred) > { > > > > > > > __first = adjacent_find(__first, __last, __binary_pred); > return unique_copy(__first, __last, __first, __binary_pred); > } > > > > > > > > template<typename _BidirectionalIter> > void > __reverse(_BidirectionalIter __first, _BidirectionalIter __last, > bidirectional_iterator_tag) > { > while (true) > if (__first == __last || __first == --__last) > return; > else > iter_swap(__first++, __last); > } > > > > > > > > template<typename _RandomAccessIter> > void > __reverse(_RandomAccessIter __first, _RandomAccessIter __last, > random_access_iterator_tag) > { > while (__first < __last) > iter_swap(__first++, --__last); > } ># 1351 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_algo.h" 3 > template<typename _BidirectionalIter> > inline void > reverse(_BidirectionalIter __first, _BidirectionalIter __last) > { > > > > __reverse(__first, __last, __iterator_category(__first)); > } ># 1376 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_algo.h" 3 > template<typename _BidirectionalIter, typename _OutputIter> > _OutputIter > reverse_copy(_BidirectionalIter __first, _BidirectionalIter __last, > _OutputIter __result) > { > > > > > > while (__first != __last) { > --__last; > *__result = *__last; > ++__result; > } > return __result; > } ># 1401 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_algo.h" 3 > template<typename _EuclideanRingElement> > _EuclideanRingElement > __gcd(_EuclideanRingElement __m, _EuclideanRingElement __n) > { > while (__n != 0) { > _EuclideanRingElement __t = __m % __n; > __m = __n; > __n = __t; > } > return __m; > } > > > > > > > template<typename _ForwardIter> > void > __rotate(_ForwardIter __first, > _ForwardIter __middle, > _ForwardIter __last, > forward_iterator_tag) > { > if ((__first == __middle) || (__last == __middle)) > return; > > _ForwardIter __first2 = __middle; > do { > swap(*__first++, *__first2++); > if (__first == __middle) > __middle = __first2; > } while (__first2 != __last); > > __first2 = __middle; > > while (__first2 != __last) { > swap(*__first++, *__first2++); > if (__first == __middle) > __middle = __first2; > else if (__first2 == __last) > __first2 = __middle; > } > } > > > > > > > template<typename _BidirectionalIter> > void > __rotate(_BidirectionalIter __first, > _BidirectionalIter __middle, > _BidirectionalIter __last, > bidirectional_iterator_tag) > { > > > > > if ((__first == __middle) || (__last == __middle)) > return; > > __reverse(__first, __middle, bidirectional_iterator_tag()); > __reverse(__middle, __last, bidirectional_iterator_tag()); > > while (__first != __middle && __middle != __last) > swap (*__first++, *--__last); > > if (__first == __middle) { > __reverse(__middle, __last, bidirectional_iterator_tag()); > } > else { > __reverse(__first, __middle, bidirectional_iterator_tag()); > } > } > > > > > > > template<typename _RandomAccessIter> > void > __rotate(_RandomAccessIter __first, > _RandomAccessIter __middle, > _RandomAccessIter __last, > random_access_iterator_tag) > { > > > > > if ((__first == __middle) || (__last == __middle)) > return; > > typedef typename iterator_traits<_RandomAccessIter>::difference_type _Distance; > typedef typename iterator_traits<_RandomAccessIter>::value_type _ValueType; > > _Distance __n = __last - __first; > _Distance __k = __middle - __first; > _Distance __l = __n - __k; > > if (__k == __l) { > swap_ranges(__first, __middle, __middle); > return; > } > > _Distance __d = __gcd(__n, __k); > > for (_Distance __i = 0; __i < __d; __i++) { > _ValueType __tmp = *__first; > _RandomAccessIter __p = __first; > > if (__k < __l) { > for (_Distance __j = 0; __j < __l/__d; __j++) { > if (__p > __first + __l) { > *__p = *(__p - __l); > __p -= __l; > } > > *__p = *(__p + __k); > __p += __k; > } > } > > else { > for (_Distance __j = 0; __j < __k/__d - 1; __j ++) { > if (__p < __last - __k) { > *__p = *(__p + __k); > __p += __k; > } > > *__p = * (__p - __l); > __p -= __l; > } > } > > *__p = __tmp; > ++__first; > } > } ># 1563 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_algo.h" 3 > template<typename _ForwardIter> > inline void > rotate(_ForwardIter __first, _ForwardIter __middle, _ForwardIter __last) > { > > > > typedef typename iterator_traits<_ForwardIter>::iterator_category _IterType; > __rotate(__first, __middle, __last, _IterType()); > } ># 1591 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_algo.h" 3 > template<typename _ForwardIter, typename _OutputIter> > _OutputIter > rotate_copy(_ForwardIter __first, _ForwardIter __middle, > _ForwardIter __last, _OutputIter __result) > { > > > > > > return copy(__first, __middle, copy(__middle, __last, __result)); > } ># 1614 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_algo.h" 3 > template<typename _Distance> > inline _Distance > __random_number(_Distance __n) > { > > return lrand48() % __n; > > > > } ># 1636 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_algo.h" 3 > template<typename _RandomAccessIter> > inline void > random_shuffle(_RandomAccessIter __first, _RandomAccessIter __last) > { > > > > > if (__first == __last) return; > for (_RandomAccessIter __i = __first + 1; __i != __last; ++__i) > iter_swap(__i, __first + __random_number((__i - __first) + 1)); > } ># 1662 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_algo.h" 3 > template<typename _RandomAccessIter, typename _RandomNumberGenerator> > void > random_shuffle(_RandomAccessIter __first, _RandomAccessIter __last, > _RandomNumberGenerator& __rand) > { > > > > > if (__first == __last) return; > for (_RandomAccessIter __i = __first + 1; __i != __last; ++__i) > iter_swap(__i, __first + __rand((__i - __first) + 1)); > } > > > > > > > > template<typename _ForwardIter, typename _Predicate> > _ForwardIter > __partition(_ForwardIter __first, _ForwardIter __last, > _Predicate __pred, > forward_iterator_tag) > { > if (__first == __last) return __first; > > while (__pred(*__first)) > if (++__first == __last) return __first; > > _ForwardIter __next = __first; > > while (++__next != __last) > if (__pred(*__next)) { > swap(*__first, *__next); > ++__first; > } > > return __first; > } > > > > > > > template<typename _BidirectionalIter, typename _Predicate> > _BidirectionalIter > __partition(_BidirectionalIter __first, _BidirectionalIter __last, > _Predicate __pred, > bidirectional_iterator_tag) > { > while (true) { > while (true) > if (__first == __last) > return __first; > else if (__pred(*__first)) > ++__first; > else > break; > --__last; > while (true) > if (__first == __last) > return __first; > else if (!__pred(*__last)) > --__last; > else > break; > iter_swap(__first, __last); > ++__first; > } > } ># 1750 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_algo.h" 3 > template<typename _ForwardIter, typename _Predicate> > inline _ForwardIter > partition(_ForwardIter __first, _ForwardIter __last, > _Predicate __pred) > { > > > > > > return __partition(__first, __last, __pred, __iterator_category(__first)); > } > > > > > > > > template<typename _ForwardIter, typename _Predicate, typename _Distance> > _ForwardIter > __inplace_stable_partition(_ForwardIter __first, _ForwardIter __last, > _Predicate __pred, _Distance __len) > { > if (__len == 1) > return __pred(*__first) ? __last : __first; > _ForwardIter __middle = __first; > advance(__middle, __len / 2); > _ForwardIter __begin = __inplace_stable_partition(__first, __middle, > __pred, > __len / 2); > _ForwardIter __end = __inplace_stable_partition(__middle, __last, > __pred, > __len - __len / 2); > rotate(__begin, __middle, __end); > advance(__begin, distance(__middle, __end)); > return __begin; > } > > > > > > > template<typename _ForwardIter, typename _Pointer, typename _Predicate, > typename _Distance> > _ForwardIter > __stable_partition_adaptive(_ForwardIter __first, _ForwardIter __last, > _Predicate __pred, _Distance __len, > _Pointer __buffer, > _Distance __buffer_size) > { > if (__len <= __buffer_size) { > _ForwardIter __result1 = __first; > _Pointer __result2 = __buffer; > for ( ; __first != __last ; ++__first) > if (__pred(*__first)) { > *__result1 = *__first; > ++__result1; > } > else { > *__result2 = *__first; > ++__result2; > } > copy(__buffer, __result2, __result1); > return __result1; > } > else { > _ForwardIter __middle = __first; > advance(__middle, __len / 2); > _ForwardIter __begin = __stable_partition_adaptive(__first, __middle, > __pred, > __len / 2, > __buffer, __buffer_size); > _ForwardIter __end = __stable_partition_adaptive( __middle, __last, > __pred, > __len - __len / 2, > __buffer, __buffer_size); > rotate(__begin, __middle, __end); > advance(__begin, distance(__middle, __end)); > return __begin; > } > } ># 1850 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_algo.h" 3 > template<typename _ForwardIter, typename _Predicate> > _ForwardIter > stable_partition(_ForwardIter __first, _ForwardIter __last, > _Predicate __pred) > { > > > > > > if (__first == __last) > return __first; > else > { > typedef typename iterator_traits<_ForwardIter>::value_type _ValueType; > typedef typename iterator_traits<_ForwardIter>::difference_type _DistanceType; > > _Temporary_buffer<_ForwardIter, _ValueType> __buf(__first, __last); > if (__buf.size() > 0) > return __stable_partition_adaptive(__first, __last, __pred, > _DistanceType(__buf.requested_size()), > __buf.begin(), __buf.size()); > else > return __inplace_stable_partition(__first, __last, __pred, > _DistanceType(__buf.requested_size())); > } > } > > > > > > > template<typename _RandomAccessIter, typename _Tp> > _RandomAccessIter > __unguarded_partition(_RandomAccessIter __first, _RandomAccessIter __last, > _Tp __pivot) > { > while (true) { > while (*__first < __pivot) > ++__first; > --__last; > while (__pivot < *__last) > --__last; > if (!(__first < __last)) > return __first; > iter_swap(__first, __last); > ++__first; > } > } > > > > > > > template<typename _RandomAccessIter, typename _Tp, typename _Compare> > _RandomAccessIter > __unguarded_partition(_RandomAccessIter __first, _RandomAccessIter __last, > _Tp __pivot, _Compare __comp) > { > while (true) { > while (__comp(*__first, __pivot)) > ++__first; > --__last; > while (__comp(__pivot, *__last)) > --__last; > if (!(__first < __last)) > return __first; > iter_swap(__first, __last); > ++__first; > } > } ># 1931 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_algo.h" 3 > enum { _M_threshold = 16 }; > > > > > > > template<typename _RandomAccessIter, typename _Tp> > void > __unguarded_linear_insert(_RandomAccessIter __last, _Tp __val) > { > _RandomAccessIter __next = __last; > --__next; > while (__val < *__next) { > *__last = *__next; > __last = __next; > --__next; > } > *__last = __val; > } > > > > > > > template<typename _RandomAccessIter, typename _Tp, typename _Compare> > void > __unguarded_linear_insert(_RandomAccessIter __last, _Tp __val, _Compare __comp) > { > _RandomAccessIter __next = __last; > --__next; > while (__comp(__val, *__next)) { > *__last = *__next; > __last = __next; > --__next; > } > *__last = __val; > } > > > > > > > template<typename _RandomAccessIter> > void > __insertion_sort(_RandomAccessIter __first, _RandomAccessIter __last) > { > if (__first == __last) return; > > for (_RandomAccessIter __i = __first + 1; __i != __last; ++__i) > { > typename iterator_traits<_RandomAccessIter>::value_type __val = *__i; > if (__val < *__first) { > copy_backward(__first, __i, __i + 1); > *__first = __val; > } > else > __unguarded_linear_insert(__i, __val); > } > } > > > > > > > template<typename _RandomAccessIter, typename _Compare> > void > __insertion_sort(_RandomAccessIter __first, _RandomAccessIter __last, > _Compare __comp) > { > if (__first == __last) return; > > for (_RandomAccessIter __i = __first + 1; __i != __last; ++__i) > { > typename iterator_traits<_RandomAccessIter>::value_type __val = *__i; > if (__comp(__val, *__first)) { > copy_backward(__first, __i, __i + 1); > *__first = __val; > } > else > __unguarded_linear_insert(__i, __val, __comp); > } > } > > > > > > > template<typename _RandomAccessIter> > inline void > __unguarded_insertion_sort(_RandomAccessIter __first, _RandomAccessIter __last) > { > typedef typename iterator_traits<_RandomAccessIter>::value_type _ValueType; > > for (_RandomAccessIter __i = __first; __i != __last; ++__i) > __unguarded_linear_insert(__i, _ValueType(*__i)); > } > > > > > > > template<typename _RandomAccessIter, typename _Compare> > inline void > __unguarded_insertion_sort(_RandomAccessIter __first, _RandomAccessIter __last, > _Compare __comp) > { > typedef typename iterator_traits<_RandomAccessIter>::value_type _ValueType; > > for (_RandomAccessIter __i = __first; __i != __last; ++__i) > __unguarded_linear_insert(__i, _ValueType(*__i), __comp); > } > > > > > > > template<typename _RandomAccessIter> > void > __final_insertion_sort(_RandomAccessIter __first, _RandomAccessIter __last) > { > if (__last - __first > _M_threshold) { > __insertion_sort(__first, __first + _M_threshold); > __unguarded_insertion_sort(__first + _M_threshold, __last); > } > else > __insertion_sort(__first, __last); > } > > > > > > > template<typename _RandomAccessIter, typename _Compare> > void > __final_insertion_sort(_RandomAccessIter __first, _RandomAccessIter __last, > _Compare __comp) > { > if (__last - __first > _M_threshold) { > __insertion_sort(__first, __first + _M_threshold, __comp); > __unguarded_insertion_sort(__first + _M_threshold, __last, __comp); > } > else > __insertion_sort(__first, __last, __comp); > } > > > > > > > template<typename _Size> > inline _Size > __lg(_Size __n) > { > _Size __k; > for (__k = 0; __n != 1; __n >>= 1) ++__k; > return __k; > } > > > > > > > template<typename _RandomAccessIter, typename _Size> > void > __introsort_loop(_RandomAccessIter __first, _RandomAccessIter __last, > _Size __depth_limit) > { > typedef typename iterator_traits<_RandomAccessIter>::value_type _ValueType; > > while (__last - __first > _M_threshold) { > if (__depth_limit == 0) { > partial_sort(__first, __last, __last); > return; > } > --__depth_limit; > _RandomAccessIter __cut = > __unguarded_partition(__first, __last, > _ValueType(__median(*__first, > *(__first + (__last - __first)/2), > *(__last - 1)))); > __introsort_loop(__cut, __last, __depth_limit); > __last = __cut; > } > } > > > > > > > template<typename _RandomAccessIter, typename _Size, typename _Compare> > void > __introsort_loop(_RandomAccessIter __first, _RandomAccessIter __last, > _Size __depth_limit, _Compare __comp) > { > typedef typename iterator_traits<_RandomAccessIter>::value_type _ValueType; > > while (__last - __first > _M_threshold) { > if (__depth_limit == 0) { > partial_sort(__first, __last, __last, __comp); > return; > } > --__depth_limit; > _RandomAccessIter __cut = > __unguarded_partition(__first, __last, > _ValueType(__median(*__first, > *(__first + (__last - __first)/2), > *(__last - 1), __comp)), > __comp); > __introsort_loop(__cut, __last, __depth_limit, __comp); > __last = __cut; > } > } ># 2168 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_algo.h" 3 > template<typename _RandomAccessIter> > inline void > sort(_RandomAccessIter __first, _RandomAccessIter __last) > { > typedef typename iterator_traits<_RandomAccessIter>::value_type _ValueType; > > > > > > > if (__first != __last) { > __introsort_loop(__first, __last, __lg(__last - __first) * 2); > __final_insertion_sort(__first, __last); > } > } ># 2199 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_algo.h" 3 > template<typename _RandomAccessIter, typename _Compare> > inline void > sort(_RandomAccessIter __first, _RandomAccessIter __last, _Compare __comp) > { > typedef typename iterator_traits<_RandomAccessIter>::value_type _ValueType; > > > > > > > if (__first != __last) { > __introsort_loop(__first, __last, __lg(__last - __first) * 2, __comp); > __final_insertion_sort(__first, __last, __comp); > } > } > > > > > > > > template<typename _RandomAccessIter> > void > __inplace_stable_sort(_RandomAccessIter __first, _RandomAccessIter __last) > { > if (__last - __first < 15) { > __insertion_sort(__first, __last); > return; > } > _RandomAccessIter __middle = __first + (__last - __first) / 2; > __inplace_stable_sort(__first, __middle); > __inplace_stable_sort(__middle, __last); > __merge_without_buffer(__first, __middle, __last, > __middle - __first, > __last - __middle); > } > > > > > > > template<typename _RandomAccessIter, typename _Compare> > void > __inplace_stable_sort(_RandomAccessIter __first, _RandomAccessIter __last, > _Compare __comp) > { > if (__last - __first < 15) { > __insertion_sort(__first, __last, __comp); > return; > } > _RandomAccessIter __middle = __first + (__last - __first) / 2; > __inplace_stable_sort(__first, __middle, __comp); > __inplace_stable_sort(__middle, __last, __comp); > __merge_without_buffer(__first, __middle, __last, > __middle - __first, > __last - __middle, > __comp); > } > > template<typename _RandomAccessIter1, typename _RandomAccessIter2, > typename _Distance> > void > __merge_sort_loop(_RandomAccessIter1 __first, _RandomAccessIter1 __last, > _RandomAccessIter2 __result, _Distance __step_size) > { > _Distance __two_step = 2 * __step_size; > > while (__last - __first >= __two_step) { > __result = merge(__first, __first + __step_size, > __first + __step_size, __first + __two_step, > __result); > __first += __two_step; > } > > __step_size = min(_Distance(__last - __first), __step_size); > merge(__first, __first + __step_size, __first + __step_size, __last, > __result); > } > > template<typename _RandomAccessIter1, typename _RandomAccessIter2, > typename _Distance, typename _Compare> > void > __merge_sort_loop(_RandomAccessIter1 __first, _RandomAccessIter1 __last, > _RandomAccessIter2 __result, _Distance __step_size, > _Compare __comp) > { > _Distance __two_step = 2 * __step_size; > > while (__last - __first >= __two_step) { > __result = merge(__first, __first + __step_size, > __first + __step_size, __first + __two_step, > __result, > __comp); > __first += __two_step; > } > __step_size = min(_Distance(__last - __first), __step_size); > > merge(__first, __first + __step_size, > __first + __step_size, __last, > __result, > __comp); > } > > enum { _M_chunk_size = 7 }; > > template<typename _RandomAccessIter, typename _Distance> > void > __chunk_insertion_sort(_RandomAccessIter __first, _RandomAccessIter __last, > _Distance __chunk_size) > { > while (__last - __first >= __chunk_size) { > __insertion_sort(__first, __first + __chunk_size); > __first += __chunk_size; > } > __insertion_sort(__first, __last); > } > > template<typename _RandomAccessIter, typename _Distance, typename _Compare> > void > __chunk_insertion_sort(_RandomAccessIter __first, _RandomAccessIter __last, > _Distance __chunk_size, _Compare __comp) > { > while (__last - __first >= __chunk_size) { > __insertion_sort(__first, __first + __chunk_size, __comp); > __first += __chunk_size; > } > __insertion_sort(__first, __last, __comp); > } > > template<typename _RandomAccessIter, typename _Pointer> > void > __merge_sort_with_buffer(_RandomAccessIter __first, _RandomAccessIter __last, > _Pointer __buffer) > { > typedef typename iterator_traits<_RandomAccessIter>::difference_type _Distance; > > _Distance __len = __last - __first; > _Pointer __buffer_last = __buffer + __len; > > _Distance __step_size = _M_chunk_size; > __chunk_insertion_sort(__first, __last, __step_size); > > while (__step_size < __len) { > __merge_sort_loop(__first, __last, __buffer, __step_size); > __step_size *= 2; > __merge_sort_loop(__buffer, __buffer_last, __first, __step_size); > __step_size *= 2; > } > } > > template<typename _RandomAccessIter, typename _Pointer, typename _Compare> > void > __merge_sort_with_buffer(_RandomAccessIter __first, _RandomAccessIter __last, > _Pointer __buffer, _Compare __comp) > { > typedef typename iterator_traits<_RandomAccessIter>::difference_type _Distance; > > _Distance __len = __last - __first; > _Pointer __buffer_last = __buffer + __len; > > _Distance __step_size = _M_chunk_size; > __chunk_insertion_sort(__first, __last, __step_size, __comp); > > while (__step_size < __len) { > __merge_sort_loop(__first, __last, __buffer, __step_size, __comp); > __step_size *= 2; > __merge_sort_loop(__buffer, __buffer_last, __first, __step_size, __comp); > __step_size *= 2; > } > } > > template<typename _RandomAccessIter, typename _Pointer, typename _Distance> > void > __stable_sort_adaptive(_RandomAccessIter __first, _RandomAccessIter __last, > _Pointer __buffer, _Distance __buffer_size) > { > _Distance __len = (__last - __first + 1) / 2; > _RandomAccessIter __middle = __first + __len; > if (__len > __buffer_size) { > __stable_sort_adaptive(__first, __middle, __buffer, __buffer_size); > __stable_sort_adaptive(__middle, __last, __buffer, __buffer_size); > } > else { > __merge_sort_with_buffer(__first, __middle, __buffer); > __merge_sort_with_buffer(__middle, __last, __buffer); > } > __merge_adaptive(__first, __middle, __last, _Distance(__middle - __first), > _Distance(__last - __middle), __buffer, __buffer_size); > } > > template<typename _RandomAccessIter, typename _Pointer, typename _Distance, > typename _Compare> > void > __stable_sort_adaptive(_RandomAccessIter __first, _RandomAccessIter __last, > _Pointer __buffer, _Distance __buffer_size, > _Compare __comp) > { > _Distance __len = (__last - __first + 1) / 2; > _RandomAccessIter __middle = __first + __len; > if (__len > __buffer_size) { > __stable_sort_adaptive(__first, __middle, __buffer, __buffer_size, > __comp); > __stable_sort_adaptive(__middle, __last, __buffer, __buffer_size, > __comp); > } > else { > __merge_sort_with_buffer(__first, __middle, __buffer, __comp); > __merge_sort_with_buffer(__middle, __last, __buffer, __comp); > } > __merge_adaptive(__first, __middle, __last, _Distance(__middle - __first), > _Distance(__last - __middle), __buffer, __buffer_size, > __comp); > } ># 2432 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_algo.h" 3 > template<typename _RandomAccessIter> > inline void > stable_sort(_RandomAccessIter __first, _RandomAccessIter __last) > { > typedef typename iterator_traits<_RandomAccessIter>::value_type _ValueType; > typedef typename iterator_traits<_RandomAccessIter>::difference_type _DistanceType; > > > > > > > _Temporary_buffer<_RandomAccessIter, _ValueType> buf(__first, __last); > if (buf.begin() == 0) > __inplace_stable_sort(__first, __last); > else > __stable_sort_adaptive(__first, __last, buf.begin(), _DistanceType(buf.size())); > } ># 2468 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_algo.h" 3 > template<typename _RandomAccessIter, typename _Compare> > inline void > stable_sort(_RandomAccessIter __first, _RandomAccessIter __last, _Compare __comp) > { > typedef typename iterator_traits<_RandomAccessIter>::value_type _ValueType; > typedef typename iterator_traits<_RandomAccessIter>::difference_type _DistanceType; > > > > > > > > _Temporary_buffer<_RandomAccessIter, _ValueType> buf(__first, __last); > if (buf.begin() == 0) > __inplace_stable_sort(__first, __last, __comp); > else > __stable_sort_adaptive(__first, __last, buf.begin(), _DistanceType(buf.size()), > __comp); > } ># 2504 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_algo.h" 3 > template<typename _RandomAccessIter> > void > partial_sort(_RandomAccessIter __first, > _RandomAccessIter __middle, > _RandomAccessIter __last) > { > typedef typename iterator_traits<_RandomAccessIter>::value_type _ValueType; > > > > > > > make_heap(__first, __middle); > for (_RandomAccessIter __i = __middle; __i < __last; ++__i) > if (*__i < *__first) > __pop_heap(__first, __middle, __i, _ValueType(*__i)); > sort_heap(__first, __middle); > } ># 2542 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_algo.h" 3 > template<typename _RandomAccessIter, typename _Compare> > void > partial_sort(_RandomAccessIter __first, > _RandomAccessIter __middle, > _RandomAccessIter __last, > _Compare __comp) > { > typedef typename iterator_traits<_RandomAccessIter>::value_type _ValueType; > > > > > > > > make_heap(__first, __middle, __comp); > for (_RandomAccessIter __i = __middle; __i < __last; ++__i) > if (__comp(*__i, *__first)) > __pop_heap(__first, __middle, __i, _ValueType(*__i), __comp); > sort_heap(__first, __middle, __comp); > } ># 2581 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_algo.h" 3 > template<typename _InputIter, typename _RandomAccessIter> > _RandomAccessIter > partial_sort_copy(_InputIter __first, _InputIter __last, > _RandomAccessIter __result_first, > _RandomAccessIter __result_last) > { > typedef typename iterator_traits<_InputIter>::value_type _InputValueType; > typedef typename iterator_traits<_RandomAccessIter>::value_type _OutputValueType; > typedef typename iterator_traits<_RandomAccessIter>::difference_type _DistanceType; > > > > > > > > if (__result_first == __result_last) return __result_last; > _RandomAccessIter __result_real_last = __result_first; > while(__first != __last && __result_real_last != __result_last) { > *__result_real_last = *__first; > ++__result_real_last; > ++__first; > } > make_heap(__result_first, __result_real_last); > while (__first != __last) { > if (*__first < *__result_first) > __adjust_heap(__result_first, _DistanceType(0), > _DistanceType(__result_real_last - __result_first), > _InputValueType(*__first)); > ++__first; > } > sort_heap(__result_first, __result_real_last); > return __result_real_last; > } ># 2635 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_algo.h" 3 > template<typename _InputIter, typename _RandomAccessIter, typename _Compare> > _RandomAccessIter > partial_sort_copy(_InputIter __first, _InputIter __last, > _RandomAccessIter __result_first, > _RandomAccessIter __result_last, > _Compare __comp) > { > typedef typename iterator_traits<_InputIter>::value_type _InputValueType; > typedef typename iterator_traits<_RandomAccessIter>::value_type _OutputValueType; > typedef typename iterator_traits<_RandomAccessIter>::difference_type _DistanceType; > > > > > > > > > if (__result_first == __result_last) return __result_last; > _RandomAccessIter __result_real_last = __result_first; > while(__first != __last && __result_real_last != __result_last) { > *__result_real_last = *__first; > ++__result_real_last; > ++__first; > } > make_heap(__result_first, __result_real_last, __comp); > while (__first != __last) { > if (__comp(*__first, *__result_first)) > __adjust_heap(__result_first, _DistanceType(0), > _DistanceType(__result_real_last - __result_first), > _InputValueType(*__first), > __comp); > ++__first; > } > sort_heap(__result_first, __result_real_last, __comp); > return __result_real_last; > } ># 2688 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_algo.h" 3 > template<typename _RandomAccessIter> > void > nth_element(_RandomAccessIter __first, > _RandomAccessIter __nth, > _RandomAccessIter __last) > { > typedef typename iterator_traits<_RandomAccessIter>::value_type _ValueType; > > > > > > while (__last - __first > 3) { > _RandomAccessIter __cut = > __unguarded_partition(__first, __last, > _ValueType(__median(*__first, > *(__first + (__last - __first)/2), > *(__last - 1)))); > if (__cut <= __nth) > __first = __cut; > else > __last = __cut; > } > __insertion_sort(__first, __last); > } ># 2730 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_algo.h" 3 > template<typename _RandomAccessIter, typename _Compare> > void > nth_element(_RandomAccessIter __first, > _RandomAccessIter __nth, > _RandomAccessIter __last, > _Compare __comp) > { > typedef typename iterator_traits<_RandomAccessIter>::value_type _ValueType; > > > > > > > while (__last - __first > 3) { > _RandomAccessIter __cut = > __unguarded_partition(__first, __last, > _ValueType(__median(*__first, > *(__first + (__last - __first)/2), > *(__last - 1), > __comp)), > __comp); > if (__cut <= __nth) > __first = __cut; > else > __last = __cut; > } > __insertion_sort(__first, __last, __comp); > } ># 2770 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_algo.h" 3 > template<typename _ForwardIter, typename _Tp> > _ForwardIter > lower_bound(_ForwardIter __first, _ForwardIter __last, const _Tp& __val) > { > typedef typename iterator_traits<_ForwardIter>::value_type _ValueType; > typedef typename iterator_traits<_ForwardIter>::difference_type _DistanceType; > > > > > > > > > > > _DistanceType __len = distance(__first, __last); > _DistanceType __half; > _ForwardIter __middle; > > while (__len > 0) { > __half = __len >> 1; > __middle = __first; > advance(__middle, __half); > if (*__middle < __val) { > __first = __middle; > ++__first; > __len = __len - __half - 1; > } > else > __len = __half; > } > return __first; > } ># 2818 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_algo.h" 3 > template<typename _ForwardIter, typename _Tp, typename _Compare> > _ForwardIter > lower_bound(_ForwardIter __first, _ForwardIter __last, > const _Tp& __val, _Compare __comp) > { > typedef typename iterator_traits<_ForwardIter>::value_type _ValueType; > typedef typename iterator_traits<_ForwardIter>::difference_type _DistanceType; > > > > > > _DistanceType __len = distance(__first, __last); > _DistanceType __half; > _ForwardIter __middle; > > while (__len > 0) { > __half = __len >> 1; > __middle = __first; > advance(__middle, __half); > if (__comp(*__middle, __val)) { > __first = __middle; > ++__first; > __len = __len - __half - 1; > } > else > __len = __half; > } > return __first; > } ># 2858 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_algo.h" 3 > template<typename _ForwardIter, typename _Tp> > _ForwardIter > upper_bound(_ForwardIter __first, _ForwardIter __last, const _Tp& __val) > { > typedef typename iterator_traits<_ForwardIter>::value_type _ValueType; > typedef typename iterator_traits<_ForwardIter>::difference_type _DistanceType; > > > > > > > > _DistanceType __len = distance(__first, __last); > _DistanceType __half; > _ForwardIter __middle; > > while (__len > 0) { > __half = __len >> 1; > __middle = __first; > advance(__middle, __half); > if (__val < *__middle) > __len = __half; > else { > __first = __middle; > ++__first; > __len = __len - __half - 1; > } > } > return __first; > } ># 2903 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_algo.h" 3 > template<typename _ForwardIter, typename _Tp, typename _Compare> > _ForwardIter > upper_bound(_ForwardIter __first, _ForwardIter __last, > const _Tp& __val, _Compare __comp) > { > typedef typename iterator_traits<_ForwardIter>::value_type _ValueType; > typedef typename iterator_traits<_ForwardIter>::difference_type _DistanceType; > > > > > > _DistanceType __len = distance(__first, __last); > _DistanceType __half; > _ForwardIter __middle; > > while (__len > 0) { > __half = __len >> 1; > __middle = __first; > advance(__middle, __half); > if (__comp(__val, *__middle)) > __len = __half; > else { > __first = __middle; > ++__first; > __len = __len - __half - 1; > } > } > return __first; > } ># 2950 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_algo.h" 3 > template<typename _ForwardIter, typename _Tp> > pair<_ForwardIter, _ForwardIter> > equal_range(_ForwardIter __first, _ForwardIter __last, const _Tp& __val) > { > typedef typename iterator_traits<_ForwardIter>::value_type _ValueType; > typedef typename iterator_traits<_ForwardIter>::difference_type _DistanceType; > > > > > > > > _DistanceType __len = distance(__first, __last); > _DistanceType __half; > _ForwardIter __middle, __left, __right; > > while (__len > 0) { > __half = __len >> 1; > __middle = __first; > advance(__middle, __half); > if (*__middle < __val) { > __first = __middle; > ++__first; > __len = __len - __half - 1; > } > else if (__val < *__middle) > __len = __half; > else { > __left = lower_bound(__first, __middle, __val); > advance(__first, __len); > __right = upper_bound(++__middle, __first, __val); > return pair<_ForwardIter, _ForwardIter>(__left, __right); > } > } > return pair<_ForwardIter, _ForwardIter>(__first, __first); > } ># 3005 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_algo.h" 3 > template<typename _ForwardIter, typename _Tp, typename _Compare> > pair<_ForwardIter, _ForwardIter> > equal_range(_ForwardIter __first, _ForwardIter __last, const _Tp& __val, > _Compare __comp) > { > typedef typename iterator_traits<_ForwardIter>::value_type _ValueType; > typedef typename iterator_traits<_ForwardIter>::difference_type _DistanceType; > > > > > > > _DistanceType __len = distance(__first, __last); > _DistanceType __half; > _ForwardIter __middle, __left, __right; > > while (__len > 0) { > __half = __len >> 1; > __middle = __first; > advance(__middle, __half); > if (__comp(*__middle, __val)) { > __first = __middle; > ++__first; > __len = __len - __half - 1; > } > else if (__comp(__val, *__middle)) > __len = __half; > else { > __left = lower_bound(__first, __middle, __val, __comp); > advance(__first, __len); > __right = upper_bound(++__middle, __first, __val, __comp); > return pair<_ForwardIter, _ForwardIter>(__left, __right); > } > } > return pair<_ForwardIter, _ForwardIter>(__first, __first); > } ># 3054 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_algo.h" 3 > template<typename _ForwardIter, typename _Tp> > bool > binary_search(_ForwardIter __first, _ForwardIter __last, > const _Tp& __val) > { > > > > > > > > _ForwardIter __i = lower_bound(__first, __last, __val); > return __i != __last && !(__val < *__i); > } ># 3085 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_algo.h" 3 > template<typename _ForwardIter, typename _Tp, typename _Compare> > bool > binary_search(_ForwardIter __first, _ForwardIter __last, > const _Tp& __val, _Compare __comp) > { > > > > > > > > _ForwardIter __i = lower_bound(__first, __last, __val, __comp); > return __i != __last && !__comp(__val, *__i); > } ># 3117 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_algo.h" 3 > template<typename _InputIter1, typename _InputIter2, typename _OutputIter> > _OutputIter > merge(_InputIter1 __first1, _InputIter1 __last1, > _InputIter2 __first2, _InputIter2 __last2, > _OutputIter __result) > { > > > > > > > > > > > > while (__first1 != __last1 && __first2 != __last2) { > if (*__first2 < *__first1) { > *__result = *__first2; > ++__first2; > } > else { > *__result = *__first1; > ++__first1; > } > ++__result; > } > return copy(__first2, __last2, copy(__first1, __last1, __result)); > } ># 3168 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_algo.h" 3 > template<typename _InputIter1, typename _InputIter2, typename _OutputIter, > typename _Compare> > _OutputIter > merge(_InputIter1 __first1, _InputIter1 __last1, > _InputIter2 __first2, _InputIter2 __last2, > _OutputIter __result, _Compare __comp) > { > > > > > > > > > > > > > while (__first1 != __last1 && __first2 != __last2) { > if (__comp(*__first2, *__first1)) { > *__result = *__first2; > ++__first2; > } > else { > *__result = *__first1; > ++__first1; > } > ++__result; > } > return copy(__first2, __last2, copy(__first1, __last1, __result)); > } > > > > > > > template<typename _BidirectionalIter, typename _Distance> > void > __merge_without_buffer(_BidirectionalIter __first, > _BidirectionalIter __middle, > _BidirectionalIter __last, > _Distance __len1, _Distance __len2) > { > if (__len1 == 0 || __len2 == 0) > return; > if (__len1 + __len2 == 2) { > if (*__middle < *__first) > iter_swap(__first, __middle); > return; > } > _BidirectionalIter __first_cut = __first; > _BidirectionalIter __second_cut = __middle; > _Distance __len11 = 0; > _Distance __len22 = 0; > if (__len1 > __len2) { > __len11 = __len1 / 2; > advance(__first_cut, __len11); > __second_cut = lower_bound(__middle, __last, *__first_cut); > __len22 = distance(__middle, __second_cut); > } > else { > __len22 = __len2 / 2; > advance(__second_cut, __len22); > __first_cut = upper_bound(__first, __middle, *__second_cut); > __len11 = distance(__first, __first_cut); > } > rotate(__first_cut, __middle, __second_cut); > _BidirectionalIter __new_middle = __first_cut; > advance(__new_middle, distance(__middle, __second_cut)); > __merge_without_buffer(__first, __first_cut, __new_middle, > __len11, __len22); > __merge_without_buffer(__new_middle, __second_cut, __last, > __len1 - __len11, __len2 - __len22); > } > > > > > > > template<typename _BidirectionalIter, typename _Distance, typename _Compare> > void > __merge_without_buffer(_BidirectionalIter __first, > _BidirectionalIter __middle, > _BidirectionalIter __last, > _Distance __len1, _Distance __len2, > _Compare __comp) > { > if (__len1 == 0 || __len2 == 0) > return; > if (__len1 + __len2 == 2) { > if (__comp(*__middle, *__first)) > iter_swap(__first, __middle); > return; > } > _BidirectionalIter __first_cut = __first; > _BidirectionalIter __second_cut = __middle; > _Distance __len11 = 0; > _Distance __len22 = 0; > if (__len1 > __len2) { > __len11 = __len1 / 2; > advance(__first_cut, __len11); > __second_cut = lower_bound(__middle, __last, *__first_cut, __comp); > __len22 = distance(__middle, __second_cut); > } > else { > __len22 = __len2 / 2; > advance(__second_cut, __len22); > __first_cut = upper_bound(__first, __middle, *__second_cut, __comp); > __len11 = distance(__first, __first_cut); > } > rotate(__first_cut, __middle, __second_cut); > _BidirectionalIter __new_middle = __first_cut; > advance(__new_middle, distance(__middle, __second_cut)); > __merge_without_buffer(__first, __first_cut, __new_middle, > __len11, __len22, __comp); > __merge_without_buffer(__new_middle, __second_cut, __last, > __len1 - __len11, __len2 - __len22, __comp); > } > > > > > > > template<typename _BidirectionalIter1, typename _BidirectionalIter2, > typename _Distance> > _BidirectionalIter1 > __rotate_adaptive(_BidirectionalIter1 __first, > _BidirectionalIter1 __middle, > _BidirectionalIter1 __last, > _Distance __len1, _Distance __len2, > _BidirectionalIter2 __buffer, > _Distance __buffer_size) > { > _BidirectionalIter2 __buffer_end; > if (__len1 > __len2 && __len2 <= __buffer_size) { > __buffer_end = copy(__middle, __last, __buffer); > copy_backward(__first, __middle, __last); > return copy(__buffer, __buffer_end, __first); > } > else if (__len1 <= __buffer_size) { > __buffer_end = copy(__first, __middle, __buffer); > copy(__middle, __last, __first); > return copy_backward(__buffer, __buffer_end, __last); > } > else { > rotate(__first, __middle, __last); > advance(__first, distance(__middle, __last)); > return __first; > } > } > > > > > > > template<typename _BidirectionalIter1, typename _BidirectionalIter2, > typename _BidirectionalIter3> > _BidirectionalIter3 > __merge_backward(_BidirectionalIter1 __first1, _BidirectionalIter1 __last1, > _BidirectionalIter2 __first2, _BidirectionalIter2 __last2, > _BidirectionalIter3 __result) > { > if (__first1 == __last1) > return copy_backward(__first2, __last2, __result); > if (__first2 == __last2) > return copy_backward(__first1, __last1, __result); > --__last1; > --__last2; > while (true) { > if (*__last2 < *__last1) { > *--__result = *__last1; > if (__first1 == __last1) > return copy_backward(__first2, ++__last2, __result); > --__last1; > } > else { > *--__result = *__last2; > if (__first2 == __last2) > return copy_backward(__first1, ++__last1, __result); > --__last2; > } > } > } > > > > > > > template<typename _BidirectionalIter1, typename _BidirectionalIter2, > typename _BidirectionalIter3, typename _Compare> > _BidirectionalIter3 > __merge_backward(_BidirectionalIter1 __first1, _BidirectionalIter1 __last1, > _BidirectionalIter2 __first2, _BidirectionalIter2 __last2, > _BidirectionalIter3 __result, > _Compare __comp) > { > if (__first1 == __last1) > return copy_backward(__first2, __last2, __result); > if (__first2 == __last2) > return copy_backward(__first1, __last1, __result); > --__last1; > --__last2; > while (true) { > if (__comp(*__last2, *__last1)) { > *--__result = *__last1; > if (__first1 == __last1) > return copy_backward(__first2, ++__last2, __result); > --__last1; > } > else { > *--__result = *__last2; > if (__first2 == __last2) > return copy_backward(__first1, ++__last1, __result); > --__last2; > } > } > } > > > > > > > template<typename _BidirectionalIter, typename _Distance, typename _Pointer> > void > __merge_adaptive(_BidirectionalIter __first, > _BidirectionalIter __middle, > _BidirectionalIter __last, > _Distance __len1, _Distance __len2, > _Pointer __buffer, _Distance __buffer_size) > { > if (__len1 <= __len2 && __len1 <= __buffer_size) { > _Pointer __buffer_end = copy(__first, __middle, __buffer); > merge(__buffer, __buffer_end, __middle, __last, __first); > } > else if (__len2 <= __buffer_size) { > _Pointer __buffer_end = copy(__middle, __last, __buffer); > __merge_backward(__first, __middle, __buffer, __buffer_end, __last); > } > else { > _BidirectionalIter __first_cut = __first; > _BidirectionalIter __second_cut = __middle; > _Distance __len11 = 0; > _Distance __len22 = 0; > if (__len1 > __len2) { > __len11 = __len1 / 2; > advance(__first_cut, __len11); > __second_cut = lower_bound(__middle, __last, *__first_cut); > __len22 = distance(__middle, __second_cut); > } > else { > __len22 = __len2 / 2; > advance(__second_cut, __len22); > __first_cut = upper_bound(__first, __middle, *__second_cut); > __len11 = distance(__first, __first_cut); > } > _BidirectionalIter __new_middle = > __rotate_adaptive(__first_cut, __middle, __second_cut, > __len1 - __len11, __len22, __buffer, > __buffer_size); > __merge_adaptive(__first, __first_cut, __new_middle, __len11, > __len22, __buffer, __buffer_size); > __merge_adaptive(__new_middle, __second_cut, __last, __len1 - __len11, > __len2 - __len22, __buffer, __buffer_size); > } > } > > > > > > > template<typename _BidirectionalIter, typename _Distance, typename _Pointer, > typename _Compare> > void > __merge_adaptive(_BidirectionalIter __first, > _BidirectionalIter __middle, > _BidirectionalIter __last, > _Distance __len1, _Distance __len2, > _Pointer __buffer, _Distance __buffer_size, > _Compare __comp) > { > if (__len1 <= __len2 && __len1 <= __buffer_size) { > _Pointer __buffer_end = copy(__first, __middle, __buffer); > merge(__buffer, __buffer_end, __middle, __last, __first, __comp); > } > else if (__len2 <= __buffer_size) { > _Pointer __buffer_end = copy(__middle, __last, __buffer); > __merge_backward(__first, __middle, __buffer, __buffer_end, __last, > __comp); > } > else { > _BidirectionalIter __first_cut = __first; > _BidirectionalIter __second_cut = __middle; > _Distance __len11 = 0; > _Distance __len22 = 0; > if (__len1 > __len2) { > __len11 = __len1 / 2; > advance(__first_cut, __len11); > __second_cut = lower_bound(__middle, __last, *__first_cut, __comp); > __len22 = distance(__middle, __second_cut); > } > else { > __len22 = __len2 / 2; > advance(__second_cut, __len22); > __first_cut = upper_bound(__first, __middle, *__second_cut, __comp); > __len11 = distance(__first, __first_cut); > } > _BidirectionalIter __new_middle = > __rotate_adaptive(__first_cut, __middle, __second_cut, > __len1 - __len11, __len22, __buffer, > __buffer_size); > __merge_adaptive(__first, __first_cut, __new_middle, __len11, > __len22, __buffer, __buffer_size, __comp); > __merge_adaptive(__new_middle, __second_cut, __last, __len1 - __len11, > __len2 - __len22, __buffer, __buffer_size, __comp); > } > } ># 3510 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_algo.h" 3 > template<typename _BidirectionalIter> > void > inplace_merge(_BidirectionalIter __first, > _BidirectionalIter __middle, > _BidirectionalIter __last) > { > typedef typename iterator_traits<_BidirectionalIter>::value_type > _ValueType; > typedef typename iterator_traits<_BidirectionalIter>::difference_type > _DistanceType; > > > > > > > if (__first == __middle || __middle == __last) > return; > > _DistanceType __len1 = distance(__first, __middle); > _DistanceType __len2 = distance(__middle, __last); > > _Temporary_buffer<_BidirectionalIter, _ValueType> __buf(__first, __last); > if (__buf.begin() == 0) > __merge_without_buffer(__first, __middle, __last, __len1, __len2); > else > __merge_adaptive(__first, __middle, __last, __len1, __len2, > __buf.begin(), _DistanceType(__buf.size())); > } ># 3561 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_algo.h" 3 > template<typename _BidirectionalIter, typename _Compare> > void > inplace_merge(_BidirectionalIter __first, > _BidirectionalIter __middle, > _BidirectionalIter __last, > _Compare __comp) > { > typedef typename iterator_traits<_BidirectionalIter>::value_type > _ValueType; > typedef typename iterator_traits<_BidirectionalIter>::difference_type > _DistanceType; > > > > > > > > if (__first == __middle || __middle == __last) > return; > > _DistanceType __len1 = distance(__first, __middle); > _DistanceType __len2 = distance(__middle, __last); > > _Temporary_buffer<_BidirectionalIter, _ValueType> __buf(__first, __last); > if (__buf.begin() == 0) > __merge_without_buffer(__first, __middle, __last, __len1, __len2, __comp); > else > __merge_adaptive(__first, __middle, __last, __len1, __len2, > __buf.begin(), _DistanceType(__buf.size()), > __comp); > } > > > > > > > template<typename _InputIter1, typename _InputIter2> > bool > includes(_InputIter1 __first1, _InputIter1 __last1, > _InputIter2 __first2, _InputIter2 __last2) > { > > > > > > > > > > while (__first1 != __last1 && __first2 != __last2) > if (*__first2 < *__first1) > return false; > else if(*__first1 < *__first2) > ++__first1; > else > ++__first1, ++__first2; > > return __first2 == __last2; > } > > template<typename _InputIter1, typename _InputIter2, typename _Compare> > bool > includes(_InputIter1 __first1, _InputIter1 __last1, > _InputIter2 __first2, _InputIter2 __last2, _Compare __comp) > { > > > > > > > > > > > while (__first1 != __last1 && __first2 != __last2) > if (__comp(*__first2, *__first1)) > return false; > else if(__comp(*__first1, *__first2)) > ++__first1; > else > ++__first1, ++__first2; > > return __first2 == __last2; > } > > template<typename _InputIter1, typename _InputIter2, typename _OutputIter> > _OutputIter > set_union(_InputIter1 __first1, _InputIter1 __last1, > _InputIter2 __first2, _InputIter2 __last2, > _OutputIter __result) > { > > > > > > > > > > > > while (__first1 != __last1 && __first2 != __last2) { > if (*__first1 < *__first2) { > *__result = *__first1; > ++__first1; > } > else if (*__first2 < *__first1) { > *__result = *__first2; > ++__first2; > } > else { > *__result = *__first1; > ++__first1; > ++__first2; > } > ++__result; > } > return copy(__first2, __last2, copy(__first1, __last1, __result)); > } > > template<typename _InputIter1, typename _InputIter2, typename _OutputIter, > typename _Compare> > _OutputIter > set_union(_InputIter1 __first1, _InputIter1 __last1, > _InputIter2 __first2, _InputIter2 __last2, > _OutputIter __result, _Compare __comp) > { > > > > > > > > > > > > > while (__first1 != __last1 && __first2 != __last2) { > if (__comp(*__first1, *__first2)) { > *__result = *__first1; > ++__first1; > } > else if (__comp(*__first2, *__first1)) { > *__result = *__first2; > ++__first2; > } > else { > *__result = *__first1; > ++__first1; > ++__first2; > } > ++__result; > } > return copy(__first2, __last2, copy(__first1, __last1, __result)); > } > > template<typename _InputIter1, typename _InputIter2, typename _OutputIter> > _OutputIter > set_intersection(_InputIter1 __first1, _InputIter1 __last1, > _InputIter2 __first2, _InputIter2 __last2, > _OutputIter __result) > { > > > > > > > > > > > > while (__first1 != __last1 && __first2 != __last2) > if (*__first1 < *__first2) > ++__first1; > else if (*__first2 < *__first1) > ++__first2; > else { > *__result = *__first1; > ++__first1; > ++__first2; > ++__result; > } > return __result; > } > > template<typename _InputIter1, typename _InputIter2, typename _OutputIter, > typename _Compare> > _OutputIter > set_intersection(_InputIter1 __first1, _InputIter1 __last1, > _InputIter2 __first2, _InputIter2 __last2, > _OutputIter __result, _Compare __comp) > { > > > > > > > > > > > > > while (__first1 != __last1 && __first2 != __last2) > if (__comp(*__first1, *__first2)) > ++__first1; > else if (__comp(*__first2, *__first1)) > ++__first2; > else { > *__result = *__first1; > ++__first1; > ++__first2; > ++__result; > } > return __result; > } > > template<typename _InputIter1, typename _InputIter2, typename _OutputIter> > _OutputIter > set_difference(_InputIter1 __first1, _InputIter1 __last1, > _InputIter2 __first2, _InputIter2 __last2, > _OutputIter __result) > { > > > > > > > > > > > > while (__first1 != __last1 && __first2 != __last2) > if (*__first1 < *__first2) { > *__result = *__first1; > ++__first1; > ++__result; > } > else if (*__first2 < *__first1) > ++__first2; > else { > ++__first1; > ++__first2; > } > return copy(__first1, __last1, __result); > } > > template<typename _InputIter1, typename _InputIter2, typename _OutputIter, > typename _Compare> > _OutputIter > set_difference(_InputIter1 __first1, _InputIter1 __last1, > _InputIter2 __first2, _InputIter2 __last2, > _OutputIter __result, _Compare __comp) > { > > > > > > > > > > > > > while (__first1 != __last1 && __first2 != __last2) > if (__comp(*__first1, *__first2)) { > *__result = *__first1; > ++__first1; > ++__result; > } > else if (__comp(*__first2, *__first1)) > ++__first2; > else { > ++__first1; > ++__first2; > } > return copy(__first1, __last1, __result); > } > > template<typename _InputIter1, typename _InputIter2, typename _OutputIter> > _OutputIter > set_symmetric_difference(_InputIter1 __first1, _InputIter1 __last1, > _InputIter2 __first2, _InputIter2 __last2, > _OutputIter __result) > { > > > > > > > > > > > > while (__first1 != __last1 && __first2 != __last2) > if (*__first1 < *__first2) { > *__result = *__first1; > ++__first1; > ++__result; > } > else if (*__first2 < *__first1) { > *__result = *__first2; > ++__first2; > ++__result; > } > else { > ++__first1; > ++__first2; > } > return copy(__first2, __last2, copy(__first1, __last1, __result)); > } > > template<typename _InputIter1, typename _InputIter2, typename _OutputIter, > typename _Compare> > _OutputIter > set_symmetric_difference(_InputIter1 __first1, _InputIter1 __last1, > _InputIter2 __first2, _InputIter2 __last2, > _OutputIter __result, > _Compare __comp) > { > > > > > > > > > > > > > while (__first1 != __last1 && __first2 != __last2) > if (__comp(*__first1, *__first2)) { > *__result = *__first1; > ++__first1; > ++__result; > } > else if (__comp(*__first2, *__first1)) { > *__result = *__first2; > ++__first2; > ++__result; > } > else { > ++__first1; > ++__first2; > } > return copy(__first2, __last2, copy(__first1, __last1, __result)); > } > > > > > template<typename _ForwardIter> > _ForwardIter > max_element(_ForwardIter __first, _ForwardIter __last) > { > > > > > > if (__first == __last) return __first; > _ForwardIter __result = __first; > while (++__first != __last) > if (*__result < *__first) > __result = __first; > return __result; > } > > template<typename _ForwardIter, typename _Compare> > _ForwardIter > max_element(_ForwardIter __first, _ForwardIter __last, > _Compare __comp) > { > > > > > > > if (__first == __last) return __first; > _ForwardIter __result = __first; > while (++__first != __last) > if (__comp(*__result, *__first)) __result = __first; > return __result; > } > > template<typename _ForwardIter> > _ForwardIter > min_element(_ForwardIter __first, _ForwardIter __last) > { > > > > > > if (__first == __last) return __first; > _ForwardIter __result = __first; > while (++__first != __last) > if (*__first < *__result) > __result = __first; > return __result; > } > > template<typename _ForwardIter, typename _Compare> > _ForwardIter > min_element(_ForwardIter __first, _ForwardIter __last, > _Compare __comp) > { > > > > > > > if (__first == __last) return __first; > _ForwardIter __result = __first; > while (++__first != __last) > if (__comp(*__first, *__result)) > __result = __first; > return __result; > } > > > > > template<typename _BidirectionalIter> > bool > next_permutation(_BidirectionalIter __first, _BidirectionalIter __last) > { > > > > > > if (__first == __last) > return false; > _BidirectionalIter __i = __first; > ++__i; > if (__i == __last) > return false; > __i = __last; > --__i; > > for(;;) { > _BidirectionalIter __ii = __i; > --__i; > if (*__i < *__ii) { > _BidirectionalIter __j = __last; > while (!(*__i < *--__j)) > {} > iter_swap(__i, __j); > reverse(__ii, __last); > return true; > } > if (__i == __first) { > reverse(__first, __last); > return false; > } > } > } > > template<typename _BidirectionalIter, typename _Compare> > bool > next_permutation(_BidirectionalIter __first, _BidirectionalIter __last, > _Compare __comp) > { > > > > > > > if (__first == __last) > return false; > _BidirectionalIter __i = __first; > ++__i; > if (__i == __last) > return false; > __i = __last; > --__i; > > for(;;) { > _BidirectionalIter __ii = __i; > --__i; > if (__comp(*__i, *__ii)) { > _BidirectionalIter __j = __last; > while (!__comp(*__i, *--__j)) > {} > iter_swap(__i, __j); > reverse(__ii, __last); > return true; > } > if (__i == __first) { > reverse(__first, __last); > return false; > } > } > } > > template<typename _BidirectionalIter> > bool > prev_permutation(_BidirectionalIter __first, _BidirectionalIter __last) > { > > > > > > if (__first == __last) > return false; > _BidirectionalIter __i = __first; > ++__i; > if (__i == __last) > return false; > __i = __last; > --__i; > > for(;;) { > _BidirectionalIter __ii = __i; > --__i; > if (*__ii < *__i) { > _BidirectionalIter __j = __last; > while (!(*--__j < *__i)) > {} > iter_swap(__i, __j); > reverse(__ii, __last); > return true; > } > if (__i == __first) { > reverse(__first, __last); > return false; > } > } > } > > template<typename _BidirectionalIter, typename _Compare> > bool > prev_permutation(_BidirectionalIter __first, _BidirectionalIter __last, > _Compare __comp) > { > > > > > > > if (__first == __last) > return false; > _BidirectionalIter __i = __first; > ++__i; > if (__i == __last) > return false; > __i = __last; > --__i; > > for(;;) { > _BidirectionalIter __ii = __i; > --__i; > if (__comp(*__ii, *__i)) { > _BidirectionalIter __j = __last; > while (!__comp(*--__j, *__i)) > {} > iter_swap(__i, __j); > reverse(__ii, __last); > return true; > } > if (__i == __first) { > reverse(__first, __last); > return false; > } > } > } > > > > template<typename _InputIter, typename _ForwardIter> > _InputIter > find_first_of(_InputIter __first1, _InputIter __last1, > _ForwardIter __first2, _ForwardIter __last2) > { > > > > > > > > for ( ; __first1 != __last1; ++__first1) > for (_ForwardIter __iter = __first2; __iter != __last2; ++__iter) > if (*__first1 == *__iter) > return __first1; > return __last1; > } > > template<typename _InputIter, typename _ForwardIter, typename _BinaryPredicate> > _InputIter > find_first_of(_InputIter __first1, _InputIter __last1, > _ForwardIter __first2, _ForwardIter __last2, > _BinaryPredicate __comp) > { > > > > > > > > > > > for ( ; __first1 != __last1; ++__first1) > for (_ForwardIter __iter = __first2; __iter != __last2; ++__iter) > if (__comp(*__first1, *__iter)) > return __first1; > return __last1; > } ># 4203 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_algo.h" 3 > template<typename _ForwardIter1, typename _ForwardIter2> > _ForwardIter1 > __find_end(_ForwardIter1 __first1, _ForwardIter1 __last1, > _ForwardIter2 __first2, _ForwardIter2 __last2, > forward_iterator_tag, forward_iterator_tag) > { > if (__first2 == __last2) > return __last1; > else { > _ForwardIter1 __result = __last1; > while (1) { > _ForwardIter1 __new_result > = search(__first1, __last1, __first2, __last2); > if (__new_result == __last1) > return __result; > else { > __result = __new_result; > __first1 = __new_result; > ++__first1; > } > } > } > } > > template<typename _ForwardIter1, typename _ForwardIter2, > typename _BinaryPredicate> > _ForwardIter1 > __find_end(_ForwardIter1 __first1, _ForwardIter1 __last1, > _ForwardIter2 __first2, _ForwardIter2 __last2, > forward_iterator_tag, forward_iterator_tag, > _BinaryPredicate __comp) > { > if (__first2 == __last2) > return __last1; > else { > _ForwardIter1 __result = __last1; > while (1) { > _ForwardIter1 __new_result > = search(__first1, __last1, __first2, __last2, __comp); > if (__new_result == __last1) > return __result; > else { > __result = __new_result; > __first1 = __new_result; > ++__first1; > } > } > } > } > > > template<typename _BidirectionalIter1, typename _BidirectionalIter2> > _BidirectionalIter1 > __find_end(_BidirectionalIter1 __first1, _BidirectionalIter1 __last1, > _BidirectionalIter2 __first2, _BidirectionalIter2 __last2, > bidirectional_iterator_tag, bidirectional_iterator_tag) > { > > > > > typedef reverse_iterator<_BidirectionalIter1> _RevIter1; > typedef reverse_iterator<_BidirectionalIter2> _RevIter2; > > _RevIter1 __rlast1(__first1); > _RevIter2 __rlast2(__first2); > _RevIter1 __rresult = search(_RevIter1(__last1), __rlast1, > _RevIter2(__last2), __rlast2); > > if (__rresult == __rlast1) > return __last1; > else { > _BidirectionalIter1 __result = __rresult.base(); > advance(__result, -distance(__first2, __last2)); > return __result; > } > } > > template<typename _BidirectionalIter1, typename _BidirectionalIter2, > typename _BinaryPredicate> > _BidirectionalIter1 > __find_end(_BidirectionalIter1 __first1, _BidirectionalIter1 __last1, > _BidirectionalIter2 __first2, _BidirectionalIter2 __last2, > bidirectional_iterator_tag, bidirectional_iterator_tag, > _BinaryPredicate __comp) > { > > > > > typedef reverse_iterator<_BidirectionalIter1> _RevIter1; > typedef reverse_iterator<_BidirectionalIter2> _RevIter2; > > _RevIter1 __rlast1(__first1); > _RevIter2 __rlast2(__first2); > _RevIter1 __rresult = search(_RevIter1(__last1), __rlast1, > _RevIter2(__last2), __rlast2, > __comp); > > if (__rresult == __rlast1) > return __last1; > else { > _BidirectionalIter1 __result = __rresult.base(); > advance(__result, -distance(__first2, __last2)); > return __result; > } > } > > > > template<typename _ForwardIter1, typename _ForwardIter2> > inline _ForwardIter1 > find_end(_ForwardIter1 __first1, _ForwardIter1 __last1, > _ForwardIter2 __first2, _ForwardIter2 __last2) > { > > > > > > > > return __find_end(__first1, __last1, __first2, __last2, > __iterator_category(__first1), > __iterator_category(__first2)); > } > > template<typename _ForwardIter1, typename _ForwardIter2, > typename _BinaryPredicate> > inline _ForwardIter1 > find_end(_ForwardIter1 __first1, _ForwardIter1 __last1, > _ForwardIter2 __first2, _ForwardIter2 __last2, > _BinaryPredicate __comp) > { > > > > > > > > return __find_end(__first1, __last1, __first2, __last2, > __iterator_category(__first1), > __iterator_category(__first2), > __comp); > } > >} ># 70 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/algorithm" 2 3 ># 57 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/string" 2 3 ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/basic_string.tcc" 1 3 ># 44 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/basic_string.tcc" 3 > ># 45 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/basic_string.tcc" 3 > >namespace std >{ > template<typename _CharT, typename _Traits, typename _Alloc> > const typename basic_string<_CharT, _Traits, _Alloc>::size_type > basic_string<_CharT, _Traits, _Alloc>:: > _Rep::_S_max_size = (((npos - sizeof(_Rep))/sizeof(_CharT)) - 1) / 4; > > template<typename _CharT, typename _Traits, typename _Alloc> > const _CharT > basic_string<_CharT, _Traits, _Alloc>:: > _Rep::_S_terminal = _CharT(); > > template<typename _CharT, typename _Traits, typename _Alloc> > const typename basic_string<_CharT, _Traits, _Alloc>::size_type > basic_string<_CharT, _Traits, _Alloc>::npos; > > > > template<typename _CharT, typename _Traits, typename _Alloc> > typename basic_string<_CharT, _Traits, _Alloc>::size_type > basic_string<_CharT, _Traits, _Alloc>::_S_empty_rep_storage[ > (sizeof(_Rep) + sizeof(_CharT) + sizeof(size_type) - 1)/sizeof(size_type)]; > > > > > > template<typename _CharT, typename _Traits, typename _Alloc> > template<typename _InIter> > _CharT* > basic_string<_CharT, _Traits, _Alloc>:: > _S_construct(_InIter __beg, _InIter __end, const _Alloc& __a, > input_iterator_tag) > { > if (__beg == __end && __a == _Alloc()) > return _S_empty_rep()._M_refcopy(); > > _CharT __buf[100]; > size_type __i = 0; > while (__beg != __end && __i < sizeof(__buf) / sizeof(_CharT)) > { > __buf[__i++] = *__beg; > ++__beg; > } > _Rep* __r = _Rep::_S_create(__i, __a); > traits_type::copy(__r->_M_refdata(), __buf, __i); > __r->_M_length = __i; > 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<typename _CharT, typename _Traits, typename _Alloc> > template <class _InIter> > _CharT* > basic_string<_CharT, _Traits, _Alloc>:: > _S_construct(_InIter __beg, _InIter __end, const _Alloc& __a, > forward_iterator_tag) > { > if (__beg == __end && __a == _Alloc()) > return _S_empty_rep()._M_refcopy(); > > > if (__builtin_expect(__beg == _InIter(), 0)) > __throw_logic_error("attempt to create string with null pointer"); > > size_type __dnew = static_cast<size_type>(std::distance(__beg, __end)); > > > _Rep* __r = _Rep::_S_create(__dnew, __a); > 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<typename _CharT, typename _Traits, typename _Alloc> > _CharT* > basic_string<_CharT, _Traits, _Alloc>:: > _S_construct(size_type __n, _CharT __c, const _Alloc& __a) > { > if (__n == 0 && __a == _Alloc()) > return _S_empty_rep()._M_refcopy(); > > > _Rep* __r = _Rep::_S_create(__n, __a); > try > { > if (__n) > traits_type::assign(__r->_M_refdata(), __n, __c); > } > catch(...) > { > __r->_M_destroy(__a); > throw; > } > __r->_M_length = __n; > __r->_M_refdata()[__n] = _Rep::_S_terminal; > return __r->_M_refdata(); > } > > template<typename _CharT, typename _Traits, typename _Alloc> > basic_string<_CharT, _Traits, _Alloc>:: > basic_string(const basic_string& __str) > : _M_dataplus(__str._M_rep()->_M_grab(_Alloc(), __str.get_allocator()), > __str.get_allocator()) > { } > > template<typename _CharT, typename _Traits, typename _Alloc> > basic_string<_CharT, _Traits, _Alloc>:: > basic_string(const _Alloc& __a) > : _M_dataplus(_S_construct(size_type(), _CharT(), __a), __a) > { } > > template<typename _CharT, typename _Traits, typename _Alloc> > basic_string<_CharT, _Traits, _Alloc>:: > basic_string(const basic_string& __str, size_type __pos, size_type __n) > : _M_dataplus(_S_construct(__str._M_check(__pos), > __str._M_fold(__pos, __n), _Alloc()), _Alloc()) > { } > > template<typename _CharT, typename _Traits, typename _Alloc> > basic_string<_CharT, _Traits, _Alloc>:: > basic_string(const basic_string& __str, size_type __pos, > size_type __n, const _Alloc& __a) > : _M_dataplus(_S_construct(__str._M_check(__pos), > __str._M_fold(__pos, __n), __a), __a) > { } > > template<typename _CharT, typename _Traits, typename _Alloc> > basic_string<_CharT, _Traits, _Alloc>:: > basic_string(const _CharT* __s, size_type __n, const _Alloc& __a) > : _M_dataplus(_S_construct(__s, __s + __n, __a), __a) > { } > > template<typename _CharT, typename _Traits, typename _Alloc> > basic_string<_CharT, _Traits, _Alloc>:: > basic_string(const _CharT* __s, const _Alloc& __a) > : _M_dataplus(_S_construct(__s, __s ? __s + traits_type::length(__s) : > __s + npos, __a), __a) > { } > > template<typename _CharT, typename _Traits, typename _Alloc> > basic_string<_CharT, _Traits, _Alloc>:: > basic_string(size_type __n, _CharT __c, const _Alloc& __a) > : _M_dataplus(_S_construct(__n, __c, __a), __a) > { } > > template<typename _CharT, typename _Traits, typename _Alloc> > template<typename _InputIter> > basic_string<_CharT, _Traits, _Alloc>:: > basic_string(_InputIter __beg, _InputIter __end, const _Alloc& __a) > : _M_dataplus(_S_construct(__beg, __end, __a), __a) > { } > > template<typename _CharT, typename _Traits, typename _Alloc> > basic_string<_CharT, _Traits, _Alloc>& > basic_string<_CharT, _Traits, _Alloc>::assign(const basic_string& __str) > { > if (_M_rep() != __str._M_rep()) > { > > allocator_type __a = this->get_allocator(); > _CharT* __tmp = __str._M_rep()->_M_grab(__a, __str.get_allocator()); > _M_rep()->_M_dispose(__a); > _M_data(__tmp); > } > return *this; > } > > template<typename _CharT, typename _Traits, typename _Alloc> > basic_string<_CharT, _Traits, _Alloc>& > basic_string<_CharT, _Traits, _Alloc>:: > assign(const basic_string& __str, size_type __pos, size_type __n) > { > const size_type __strsize = __str.size(); > if (__pos > __strsize) > __throw_out_of_range("basic_string::assign"); > const bool __testn = __n < __strsize - __pos; > const size_type __newsize = __testn ? __n : __strsize - __pos; > return this->assign(__str._M_data() + __pos, __newsize); > } > > template<typename _CharT, typename _Traits, typename _Alloc> > basic_string<_CharT, _Traits, _Alloc>& > basic_string<_CharT, _Traits, _Alloc>:: > assign(const _CharT* __s, size_type __n) > { > if (__n > this->max_size()) > __throw_length_error("basic_string::assign"); > if (_M_rep()->_M_is_shared() || less<const _CharT*>()(__s, _M_data()) > || less<const _CharT*>()(_M_data() + this->size(), __s)) > return _M_replace_safe(_M_ibegin(), _M_iend(), __s, __s + __n); > else > { > > const size_type __pos = __s - _M_data(); > if (__pos >= __n) > traits_type::copy(_M_data(), __s, __n); > else if (__pos) > traits_type::move(_M_data(), __s, __n); > _M_rep()->_M_length = __n; > _M_data()[__n] = _Rep::_S_terminal; > return *this; > } > } > > template<typename _CharT, typename _Traits, typename _Alloc> > basic_string<_CharT, _Traits, _Alloc>& > basic_string<_CharT, _Traits, _Alloc>:: > insert(size_type __pos1, const basic_string& __str, > size_type __pos2, size_type __n) > { > const size_type __strsize = __str.size(); > if (__pos2 > __strsize) > __throw_out_of_range("basic_string::insert"); > const bool __testn = __n < __strsize - __pos2; > const size_type __newsize = __testn ? __n : __strsize - __pos2; > return this->insert(__pos1, __str._M_data() + __pos2, __newsize); > } > > template<typename _CharT, typename _Traits, typename _Alloc> > basic_string<_CharT, _Traits, _Alloc>& > basic_string<_CharT, _Traits, _Alloc>:: > insert(size_type __pos, const _CharT* __s, size_type __n) > { > const size_type __size = this->size(); > if (__pos > __size) > __throw_out_of_range("basic_string::insert"); > if (__size > this->max_size() - __n) > __throw_length_error("basic_string::insert"); > if (_M_rep()->_M_is_shared() || less<const _CharT*>()(__s, _M_data()) > || less<const _CharT*>()(_M_data() + __size, __s)) > return _M_replace_safe(_M_ibegin() + __pos, _M_ibegin() + __pos, > __s, __s + __n); > else > { > > > > const size_type __off = __s - _M_data(); > _M_mutate(__pos, 0, __n); > __s = _M_data() + __off; > _CharT* __p = _M_data() + __pos; > if (__s + __n <= __p) > traits_type::copy(__p, __s, __n); > else if (__s >= __p) > traits_type::copy(__p, __s + __n, __n); > else > { > traits_type::copy(__p, __s, __p - __s); > traits_type::copy(__p + (__p-__s), __p + __n, __n - (__p-__s)); > } > return *this; > } > } > > template<typename _CharT, typename _Traits, typename _Alloc> > basic_string<_CharT, _Traits, _Alloc>& > basic_string<_CharT, _Traits, _Alloc>:: > replace(size_type __pos, size_type __n1, const _CharT* __s, > size_type __n2) > { > const size_type __size = this->size(); > if (__pos > __size) > __throw_out_of_range("basic_string::replace"); > const bool __testn1 = __n1 < __size - __pos; > const size_type __foldn1 = __testn1 ? __n1 : __size - __pos; > if (__size - __foldn1 > this->max_size() - __n2) > __throw_length_error("basic_string::replace"); > if (_M_rep()->_M_is_shared() || less<const _CharT*>()(__s, _M_data()) > || less<const _CharT*>()(_M_data() + __size, __s)) > return _M_replace_safe(_M_ibegin() + __pos, > _M_ibegin() + __pos + __foldn1, __s, __s + __n2); > > else > return _M_replace(_M_ibegin() + __pos, _M_ibegin() + __pos + __foldn1, > __s, __s + __n2, > typename iterator_traits<const _CharT*>::iterator_category()); > } > > template<typename _CharT, typename _Traits, typename _Alloc> > void > basic_string<_CharT, _Traits, _Alloc>::_Rep:: > _M_destroy(const _Alloc& __a) throw () > { > size_type __size = sizeof(_Rep) + (_M_capacity + 1) * sizeof(_CharT); > _Raw_bytes_alloc(__a).deallocate(reinterpret_cast<char*>(this), __size); > } > > template<typename _CharT, typename _Traits, typename _Alloc> > void > basic_string<_CharT, _Traits, _Alloc>::_M_leak_hard() > { > if (_M_rep()->_M_is_shared()) > _M_mutate(0, 0, 0); > _M_rep()->_M_set_leaked(); > } > > > > > > > > template<typename _CharT, typename _Traits, typename _Alloc> > void > basic_string<_CharT, _Traits, _Alloc>:: > _M_mutate(size_type __pos, size_type __len1, size_type __len2) > { > size_type __old_size = this->size(); > const size_type __new_size = __old_size + __len2 - __len1; > const _CharT* __src = _M_data() + __pos + __len1; > const size_type __how_much = __old_size - __pos - __len1; > > if (_M_rep()->_M_is_shared() || __new_size > capacity()) > { > > allocator_type __a = get_allocator(); > > > const size_type __pagesize = 4096; > const size_type __malloc_header_size = 4 * sizeof (void*); > > const size_type __page_capacity = (__pagesize - __malloc_header_size > - sizeof(_Rep) - sizeof(_CharT)) > / sizeof(_CharT); > _Rep* __r; > if (__new_size > capacity() && __new_size > __page_capacity) > > __r = _Rep::_S_create(__new_size > 2*capacity() ? > __new_size : 2*capacity(), __a); > else > __r = _Rep::_S_create(__new_size, __a); > try > { > if (__pos) > traits_type::copy(__r->_M_refdata(), _M_data(), __pos); > if (__how_much) > traits_type::copy(__r->_M_refdata() + __pos + __len2, > __src, __how_much); > } > catch(...) > { > __r->_M_dispose(get_allocator()); > throw; > } > _M_rep()->_M_dispose(__a); > _M_data(__r->_M_refdata()); > } > else if (__how_much && __len1 != __len2) > { > > traits_type::move(_M_data() + __pos + __len2, __src, __how_much); > } > _M_rep()->_M_set_sharable(); > _M_rep()->_M_length = __new_size; > _M_data()[__new_size] = _Rep::_S_terminal; > > } > > template<typename _CharT, typename _Traits, typename _Alloc> > void > basic_string<_CharT, _Traits, _Alloc>::reserve(size_type __res) > { > if (__res > this->capacity() || _M_rep()->_M_is_shared()) > { > if (__res > this->max_size()) > __throw_length_error("basic_string::reserve"); > > if (__res < this->size()) > __res = this->size(); > allocator_type __a = get_allocator(); > _CharT* __tmp = _M_rep()->_M_clone(__a, __res - this->size()); > _M_rep()->_M_dispose(__a); > _M_data(__tmp); > } > } > > template<typename _CharT, typename _Traits, typename _Alloc> > void basic_string<_CharT, _Traits, _Alloc>::swap(basic_string& __s) > { > if (_M_rep()->_M_is_leaked()) > _M_rep()->_M_set_sharable(); > if (__s._M_rep()->_M_is_leaked()) > __s._M_rep()->_M_set_sharable(); > if (this->get_allocator() == __s.get_allocator()) > { > _CharT* __tmp = _M_data(); > _M_data(__s._M_data()); > __s._M_data(__tmp); > } > > else > { > basic_string __tmp1(_M_ibegin(), _M_iend(), __s.get_allocator()); > basic_string __tmp2(__s._M_ibegin(), __s._M_iend(), > this->get_allocator()); > *this = __tmp2; > __s = __tmp1; > } > } > > template<typename _CharT, typename _Traits, typename _Alloc> > typename basic_string<_CharT, _Traits, _Alloc>::_Rep* > basic_string<_CharT, _Traits, _Alloc>::_Rep:: > _S_create(size_t __capacity, const _Alloc& __alloc) > { > typedef basic_string<_CharT, _Traits, _Alloc> __string_type; > > > if (__capacity > _S_max_size) > > > > __throw_length_error("basic_string::_S_create"); > > > > > size_t __size = (__capacity + 1) * sizeof(_CharT) + sizeof(_Rep); ># 532 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/basic_string.tcc" 3 > const size_t __pagesize = 4096; > const size_t __subpagesize = 128; > const size_t __malloc_header_size = 4 * sizeof (void*); > if ((__size + __malloc_header_size) > __pagesize) > { > size_t __extra = > (__pagesize - ((__size + __malloc_header_size) % __pagesize)) > % __pagesize; > __capacity += __extra / sizeof(_CharT); > __size = (__capacity + 1) * sizeof(_CharT) + sizeof(_Rep); > } > else if (__size > __subpagesize) > { > size_t __extra = > (__subpagesize - ((__size + __malloc_header_size) % __subpagesize)) > % __subpagesize; > __capacity += __extra / sizeof(_CharT); > __size = (__capacity + 1) * sizeof(_CharT) + sizeof(_Rep); > } > > > > void* __place = _Raw_bytes_alloc(__alloc).allocate(__size); > _Rep *__p = new (__place) _Rep; > __p->_M_capacity = __capacity; > __p->_M_set_sharable(); > __p->_M_length = 0; > return __p; > } > > template<typename _CharT, typename _Traits, typename _Alloc> > _CharT* > basic_string<_CharT, _Traits, _Alloc>::_Rep:: > _M_clone(const _Alloc& __alloc, size_type __res) > { > > const size_type __requested_cap = _M_length + __res; > > const size_type __pagesize = 4096; > const size_type __malloc_header_size = 4 * sizeof (void*); > > const size_type __page_capacity = > (__pagesize - __malloc_header_size - sizeof(_Rep) - sizeof(_CharT)) > / sizeof(_CharT); > _Rep* __r; > if (__requested_cap > _M_capacity && __requested_cap > __page_capacity) > > __r = _Rep::_S_create(__requested_cap > 2*_M_capacity ? > __requested_cap : 2*_M_capacity, __alloc); > else > __r = _Rep::_S_create(__requested_cap, __alloc); > > if (_M_length) > { > try > { traits_type::copy(__r->_M_refdata(), _M_refdata(), _M_length); } > catch(...) > { > __r->_M_destroy(__alloc); > throw; > } > } > __r->_M_length = _M_length; > __r->_M_refdata()[_M_length] = _Rep::_S_terminal; > return __r->_M_refdata(); > } > > template<typename _CharT, typename _Traits, typename _Alloc> > void > basic_string<_CharT, _Traits, _Alloc>::resize(size_type __n, _CharT __c) > { > if (__n > max_size()) > __throw_length_error("basic_string::resize"); > size_type __size = this->size(); > if (__size < __n) > this->append(__n - __size, __c); > else if (__n < __size) > this->erase(__n); > > } > > > > > template<typename _CharT, typename _Traits, typename _Alloc> > template<typename _InputIter> > basic_string<_CharT, _Traits, _Alloc>& > basic_string<_CharT, _Traits, _Alloc>:: > _M_replace(iterator __i1, iterator __i2, _InputIter __k1, > _InputIter __k2, input_iterator_tag) > { > > basic_string __s(__k1, __k2); > return _M_replace_safe(__i1, __i2, __s._M_ibegin(), __s._M_iend()); > } > > > > > template<typename _CharT, typename _Traits, typename _Alloc> > template<typename _ForwardIter> > basic_string<_CharT, _Traits, _Alloc>& > basic_string<_CharT, _Traits, _Alloc>:: > _M_replace_safe(iterator __i1, iterator __i2, _ForwardIter __k1, > _ForwardIter __k2) > { > size_type __dnew = static_cast<size_type>(std::distance(__k1, __k2)); > size_type __dold = __i2 - __i1; > size_type __dmax = this->max_size(); > > if (__dmax <= __dnew) > __throw_length_error("basic_string::_M_replace"); > size_type __off = __i1 - _M_ibegin(); > _M_mutate(__off, __dold, __dnew); > > > if (__dnew) > _S_copy_chars(_M_data() + __off, __k1, __k2); > > return *this; > } > > template<typename _CharT, typename _Traits, typename _Alloc> > basic_string<_CharT, _Traits, _Alloc>& > basic_string<_CharT, _Traits, _Alloc>:: > replace(size_type __pos1, size_type __n1, const basic_string& __str, > size_type __pos2, size_type __n2) > { > const size_type __strsize = __str.size(); > if (__pos2 > __strsize) > __throw_out_of_range("basic_string::replace"); > const bool __testn2 = __n2 < __strsize - __pos2; > const size_type __foldn2 = __testn2 ? __n2 : __strsize - __pos2; > return this->replace(__pos1, __n1, > __str._M_data() + __pos2, __foldn2); > } > > template<typename _CharT, typename _Traits, typename _Alloc> > basic_string<_CharT, _Traits, _Alloc>& > basic_string<_CharT, _Traits, _Alloc>:: > append(const basic_string& __str) > { > > > > size_type __size = __str.size(); > size_type __len = __size + this->size(); > if (__len > this->capacity()) > this->reserve(__len); > return _M_replace_safe(_M_iend(), _M_iend(), __str._M_ibegin(), > __str._M_iend()); > } > > template<typename _CharT, typename _Traits, typename _Alloc> > basic_string<_CharT, _Traits, _Alloc>& > basic_string<_CharT, _Traits, _Alloc>:: > append(const basic_string& __str, size_type __pos, size_type __n) > { > > > > size_type __len = std::min(size_type(__str.size() - __pos), > __n) + this->size(); > if (__len > this->capacity()) > this->reserve(__len); > return _M_replace_safe(_M_iend(), _M_iend(), __str._M_check(__pos), > __str._M_fold(__pos, __n)); > } > > template<typename _CharT, typename _Traits, typename _Alloc> > basic_string<_CharT, _Traits, _Alloc>& > basic_string<_CharT, _Traits, _Alloc>:: > append(const _CharT* __s, size_type __n) > { > size_type __len = __n + this->size(); > if (__len > this->capacity()) > this->reserve(__len); > return _M_replace_safe(_M_iend(), _M_iend(), __s, __s + __n); > } > > template<typename _CharT, typename _Traits, typename _Alloc> > basic_string<_CharT, _Traits, _Alloc>& > basic_string<_CharT, _Traits, _Alloc>:: > append(size_type __n, _CharT __c) > { > size_type __len = __n + this->size(); > if (__len > this->capacity()) > this->reserve(__len); > return this->replace(_M_iend(), _M_iend(), __n, __c); > } > > template<typename _CharT, typename _Traits, typename _Alloc> > basic_string<_CharT, _Traits, _Alloc> > operator+(const _CharT* __lhs, > const basic_string<_CharT, _Traits, _Alloc>& __rhs) > { > typedef basic_string<_CharT, _Traits, _Alloc> __string_type; > typedef typename __string_type::size_type __size_type; > __size_type __len = _Traits::length(__lhs); > __string_type __str; > __str.reserve(__len + __rhs.size()); > __str.append(__lhs, __lhs + __len); > __str.append(__rhs); > return __str; > } > > template<typename _CharT, typename _Traits, typename _Alloc> > basic_string<_CharT, _Traits, _Alloc> > operator+(_CharT __lhs, const basic_string<_CharT, _Traits, _Alloc>& __rhs) > { > typedef basic_string<_CharT, _Traits, _Alloc> __string_type; > typedef typename __string_type::size_type __size_type; > __string_type __str; > __size_type __len = __rhs.size(); > __str.reserve(__len + 1); > __str.append(__size_type(1), __lhs); > __str.append(__rhs); > return __str; > } > > template<typename _CharT, typename _Traits, typename _Alloc> > basic_string<_CharT, _Traits, _Alloc>& > basic_string<_CharT, _Traits, _Alloc>:: > replace(iterator __i1, iterator __i2, size_type __n2, _CharT __c) > { > size_type __n1 = __i2 - __i1; > size_type __off1 = __i1 - _M_ibegin(); > if (max_size() - (this->size() - __n1) <= __n2) > __throw_length_error("basic_string::replace"); > _M_mutate (__off1, __n1, __n2); > > if (__n2) > traits_type::assign(_M_data() + __off1, __n2, __c); > return *this; > } > > template<typename _CharT, typename _Traits, typename _Alloc> > typename basic_string<_CharT, _Traits, _Alloc>::size_type > basic_string<_CharT, _Traits, _Alloc>:: > copy(_CharT* __s, size_type __n, size_type __pos) const > { > if (__pos > this->size()) > __throw_out_of_range("basic_string::copy"); > > if (__n > this->size() - __pos) > __n = this->size() - __pos; > > traits_type::copy(__s, _M_data() + __pos, __n); > > return __n; > } > > template<typename _CharT, typename _Traits, typename _Alloc> > typename basic_string<_CharT, _Traits, _Alloc>::size_type > basic_string<_CharT, _Traits, _Alloc>:: > find(const _CharT* __s, size_type __pos, size_type __n) const > { > size_type __size = this->size(); > size_t __xpos = __pos; > const _CharT* __data = _M_data(); > for (; __xpos + __n <= __size; ++__xpos) > if (traits_type::compare(__data + __xpos, __s, __n) == 0) > return __xpos; > return npos; > } > > template<typename _CharT, typename _Traits, typename _Alloc> > typename basic_string<_CharT, _Traits, _Alloc>::size_type > basic_string<_CharT, _Traits, _Alloc>:: > find(_CharT __c, size_type __pos) const > { > size_type __size = this->size(); > size_type __ret = npos; > if (__pos < __size) > { > const _CharT* __data = _M_data(); > size_type __n = __size - __pos; > const _CharT* __p = traits_type::find(__data + __pos, __n, __c); > if (__p) > __ret = __p - __data; > } > return __ret; > } > > > template<typename _CharT, typename _Traits, typename _Alloc> > typename basic_string<_CharT, _Traits, _Alloc>::size_type > basic_string<_CharT, _Traits, _Alloc>:: > rfind(const _CharT* __s, size_type __pos, size_type __n) const > { > size_type __size = this->size(); > if (__n <= __size) > { > __pos = std::min(size_type(__size - __n), __pos); > const _CharT* __data = _M_data(); > do > { > if (traits_type::compare(__data + __pos, __s, __n) == 0) > return __pos; > } > while (__pos-- > 0); > } > return npos; > } > > template<typename _CharT, typename _Traits, typename _Alloc> > typename basic_string<_CharT, _Traits, _Alloc>::size_type > basic_string<_CharT, _Traits, _Alloc>:: > rfind(_CharT __c, size_type __pos) const > { > size_type __size = this->size(); > if (__size) > { > size_t __xpos = __size - 1; > if (__xpos > __pos) > __xpos = __pos; > > for (++__xpos; __xpos-- > 0; ) > if (traits_type::eq(_M_data()[__xpos], __c)) > return __xpos; > } > return npos; > } > > template<typename _CharT, typename _Traits, typename _Alloc> > typename basic_string<_CharT, _Traits, _Alloc>::size_type > basic_string<_CharT, _Traits, _Alloc>:: > find_first_of(const _CharT* __s, size_type __pos, size_type __n) const > { > for (; __n && __pos < this->size(); ++__pos) > { > const _CharT* __p = traits_type::find(__s, __n, _M_data()[__pos]); > if (__p) > return __pos; > } > return npos; > } > > template<typename _CharT, typename _Traits, typename _Alloc> > typename basic_string<_CharT, _Traits, _Alloc>::size_type > basic_string<_CharT, _Traits, _Alloc>:: > find_last_of(const _CharT* __s, size_type __pos, size_type __n) const > { > size_type __size = this->size(); > if (__size && __n) > { > if (--__size > __pos) > __size = __pos; > do > { > if (traits_type::find(__s, __n, _M_data()[__size])) > return __size; > } > while (__size-- != 0); > } > return npos; > } > > template<typename _CharT, typename _Traits, typename _Alloc> > typename basic_string<_CharT, _Traits, _Alloc>::size_type > basic_string<_CharT, _Traits, _Alloc>:: > find_first_not_of(const _CharT* __s, size_type __pos, size_type __n) const > { > size_t __xpos = __pos; > for (; __xpos < this->size(); ++__xpos) > if (!traits_type::find(__s, __n, _M_data()[__xpos])) > return __xpos; > return npos; > } > > template<typename _CharT, typename _Traits, typename _Alloc> > typename basic_string<_CharT, _Traits, _Alloc>::size_type > basic_string<_CharT, _Traits, _Alloc>:: > find_first_not_of(_CharT __c, size_type __pos) const > { > size_t __xpos = __pos; > for (; __xpos < this->size(); ++__xpos) > if (!traits_type::eq(_M_data()[__xpos], __c)) > return __xpos; > return npos; > } > > template<typename _CharT, typename _Traits, typename _Alloc> > typename basic_string<_CharT, _Traits, _Alloc>::size_type > basic_string<_CharT, _Traits, _Alloc>:: > find_last_not_of(const _CharT* __s, size_type __pos, size_type __n) const > { > size_type __size = this->size(); > if (__size) > { > if (--__size > __pos) > __size = __pos; > do > { > if (!traits_type::find(__s, __n, _M_data()[__size])) > return __size; > } > while (__size--); > } > return npos; > } > > template<typename _CharT, typename _Traits, typename _Alloc> > typename basic_string<_CharT, _Traits, _Alloc>::size_type > basic_string<_CharT, _Traits, _Alloc>:: > find_last_not_of(_CharT __c, size_type __pos) const > { > size_type __size = this->size(); > if (__size) > { > if (--__size > __pos) > __size = __pos; > do > { > if (!traits_type::eq(_M_data()[__size], __c)) > return __size; > } > while (__size--); > } > return npos; > } > > template<typename _CharT, typename _Traits, typename _Alloc> > int > basic_string<_CharT, _Traits, _Alloc>:: > compare(size_type __pos, size_type __n, const basic_string& __str) const > { > size_type __size = this->size(); > size_type __osize = __str.size(); > if (__pos > __size) > __throw_out_of_range("basic_string::compare"); > > size_type __rsize= std::min(size_type(__size - __pos), __n); > size_type __len = std::min(__rsize, __osize); > int __r = traits_type::compare(_M_data() + __pos, __str.data(), __len); > if (!__r) > __r = __rsize - __osize; > return __r; > } > > template<typename _CharT, typename _Traits, typename _Alloc> > int > basic_string<_CharT, _Traits, _Alloc>:: > compare(size_type __pos1, size_type __n1, const basic_string& __str, > size_type __pos2, size_type __n2) const > { > size_type __size = this->size(); > size_type __osize = __str.size(); > if (__pos1 > __size || __pos2 > __osize) > __throw_out_of_range("basic_string::compare"); > > size_type __rsize = std::min(size_type(__size - __pos1), __n1); > size_type __rosize = std::min(size_type(__osize - __pos2), __n2); > size_type __len = std::min(__rsize, __rosize); > int __r = traits_type::compare(_M_data() + __pos1, > __str.data() + __pos2, __len); > if (!__r) > __r = __rsize - __rosize; > return __r; > } > > > template<typename _CharT, typename _Traits, typename _Alloc> > int > basic_string<_CharT, _Traits, _Alloc>:: > compare(const _CharT* __s) const > { > size_type __size = this->size(); > size_type __osize = traits_type::length(__s); > size_type __len = std::min(__size, __osize); > int __r = traits_type::compare(_M_data(), __s, __len); > if (!__r) > __r = __size - __osize; > return __r; > } > > > template<typename _CharT, typename _Traits, typename _Alloc> > int > basic_string <_CharT, _Traits, _Alloc>:: > compare(size_type __pos, size_type __n1, const _CharT* __s) const > { > size_type __size = this->size(); > if (__pos > __size) > __throw_out_of_range("basic_string::compare"); > > size_type __osize = traits_type::length(__s); > size_type __rsize = std::min(size_type(__size - __pos), __n1); > size_type __len = std::min(__rsize, __osize); > int __r = traits_type::compare(_M_data() + __pos, __s, __len); > if (!__r) > __r = __rsize - __osize; > return __r; > } > > template<typename _CharT, typename _Traits, typename _Alloc> > int > basic_string <_CharT, _Traits, _Alloc>:: > compare(size_type __pos, size_type __n1, const _CharT* __s, > size_type __n2) const > { > size_type __size = this->size(); > if (__pos > __size) > __throw_out_of_range("basic_string::compare"); > > size_type __rsize = std::min(size_type(__size - __pos), __n1); > size_type __len = std::min(__rsize, __n2); > int __r = traits_type::compare(_M_data() + __pos, __s, __len); > if (!__r) > __r = __rsize - __n2; > return __r; > } > > template <class _CharT, class _Traits, class _Alloc> > void > _S_string_copy(const basic_string<_CharT, _Traits, _Alloc>& __str, > _CharT* __buf, typename _Alloc::size_type __bufsiz) > { > typedef typename _Alloc::size_type size_type; > size_type __strsize = __str.size(); > size_type __bytes = std::min(__strsize, __bufsiz - 1); > _Traits::copy(__buf, __str.data(), __bytes); > __buf[__bytes] = _CharT(); > } > > > > > > extern template class basic_string<char>; > extern template > basic_istream<char>& > operator>>(basic_istream<char>&, string&); > extern template > basic_ostream<char>& > operator<<(basic_ostream<char>&, const string&); > extern template > basic_istream<char>& > getline(basic_istream<char>&, string&, char); > extern template > basic_istream<char>& > getline(basic_istream<char>&, string&); > > > extern template class basic_string<wchar_t>; > extern template > basic_istream<wchar_t>& > operator>>(basic_istream<wchar_t>&, wstring&); > extern template > basic_ostream<wchar_t>& > operator<<(basic_ostream<wchar_t>&, const wstring&); > extern template > basic_istream<wchar_t>& > getline(basic_istream<wchar_t>&, wstring&, wchar_t); > extern template > basic_istream<wchar_t>& > getline(basic_istream<wchar_t>&, wstring&); > > >} ># 58 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/string" 2 3 ># 20 "../../OgreMain/include/OgreStdHeaders.h" 2 ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/set" 1 3 ># 64 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/set" 3 > ># 65 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/set" 3 > > ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_set.h" 1 3 ># 66 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_set.h" 3 >namespace std >{ > > > >template <class _Key, class _Compare = less<_Key>, > class _Alloc = allocator<_Key> > >class set; > >template <class _Key, class _Compare, class _Alloc> >inline bool operator==(const set<_Key,_Compare,_Alloc>& __x, > const set<_Key,_Compare,_Alloc>& __y); > >template <class _Key, class _Compare, class _Alloc> >inline bool operator<(const set<_Key,_Compare,_Alloc>& __x, > const set<_Key,_Compare,_Alloc>& __y); > > >template <class _Key, class _Compare, class _Alloc> >class set >{ > > > ; > >public: > > typedef _Key key_type; > typedef _Key value_type; > typedef _Compare key_compare; > typedef _Compare value_compare; >private: > typedef _Rb_tree<key_type, value_type, > _Identity<value_type>, key_compare, _Alloc> _Rep_type; > _Rep_type _M_t; >public: > typedef typename _Alloc::pointer pointer; > typedef typename _Alloc::const_pointer const_pointer; > typedef typename _Alloc::reference reference; > typedef typename _Alloc::const_reference const_reference; > typedef typename _Rep_type::const_iterator iterator; > typedef typename _Rep_type::const_iterator const_iterator; > typedef typename _Rep_type::const_reverse_iterator reverse_iterator; > typedef typename _Rep_type::const_reverse_iterator const_reverse_iterator; > typedef typename _Rep_type::size_type size_type; > typedef typename _Rep_type::difference_type difference_type; > typedef typename _Rep_type::allocator_type allocator_type; > > > > set() : _M_t(_Compare(), allocator_type()) {} > explicit set(const _Compare& __comp, > const allocator_type& __a = allocator_type()) > : _M_t(__comp, __a) {} > > template <class _InputIterator> > set(_InputIterator __first, _InputIterator __last) > : _M_t(_Compare(), allocator_type()) > { _M_t.insert_unique(__first, __last); } > > template <class _InputIterator> > set(_InputIterator __first, _InputIterator __last, const _Compare& __comp, > const allocator_type& __a = allocator_type()) > : _M_t(__comp, __a) { _M_t.insert_unique(__first, __last); } > > set(const set<_Key,_Compare,_Alloc>& __x) : _M_t(__x._M_t) {} > set<_Key,_Compare,_Alloc>& operator=(const set<_Key, _Compare, _Alloc>& __x) > { > _M_t = __x._M_t; > return *this; > } > > > > key_compare key_comp() const { return _M_t.key_comp(); } > value_compare value_comp() const { return _M_t.key_comp(); } > allocator_type get_allocator() const { return _M_t.get_allocator(); } > > iterator begin() const { return _M_t.begin(); } > iterator end() const { return _M_t.end(); } > reverse_iterator rbegin() const { return _M_t.rbegin(); } > reverse_iterator rend() const { return _M_t.rend(); } > bool empty() const { return _M_t.empty(); } > size_type size() const { return _M_t.size(); } > size_type max_size() const { return _M_t.max_size(); } > void swap(set<_Key,_Compare,_Alloc>& __x) { _M_t.swap(__x._M_t); } > > > pair<iterator,bool> insert(const value_type& __x) { > pair<typename _Rep_type::iterator, bool> __p = _M_t.insert_unique(__x); > return pair<iterator, bool>(__p.first, __p.second); > } > iterator insert(iterator __position, const value_type& __x) { > typedef typename _Rep_type::iterator _Rep_iterator; > return _M_t.insert_unique((_Rep_iterator&)__position, __x); > } > template <class _InputIterator> > void insert(_InputIterator __first, _InputIterator __last) { > _M_t.insert_unique(__first, __last); > } > void erase(iterator __position) { > typedef typename _Rep_type::iterator _Rep_iterator; > _M_t.erase((_Rep_iterator&)__position); > } > size_type erase(const key_type& __x) { > return _M_t.erase(__x); > } > void erase(iterator __first, iterator __last) { > typedef typename _Rep_type::iterator _Rep_iterator; > _M_t.erase((_Rep_iterator&)__first, (_Rep_iterator&)__last); > } > void clear() { _M_t.clear(); } > > > > size_type count(const key_type& __x) const { > return _M_t.find(__x) == _M_t.end() ? 0 : 1; > } > > > > iterator find(const key_type& __x) { return _M_t.find(__x); } > const_iterator find(const key_type& __x) const { return _M_t.find(__x); } > iterator lower_bound(const key_type& __x) { > return _M_t.lower_bound(__x); > } > const_iterator lower_bound(const key_type& __x) const { > return _M_t.lower_bound(__x); > } > iterator upper_bound(const key_type& __x) { > return _M_t.upper_bound(__x); > } > const_iterator upper_bound(const key_type& __x) const { > return _M_t.upper_bound(__x); > } > pair<iterator,iterator> equal_range(const key_type& __x) { > return _M_t.equal_range(__x); > } > pair<const_iterator,const_iterator> equal_range(const key_type& __x) const { > return _M_t.equal_range(__x); > } ># 220 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_set.h" 3 > template <class _K1, class _C1, class _A1> > friend bool operator== (const set<_K1,_C1,_A1>&, const set<_K1,_C1,_A1>&); > template <class _K1, class _C1, class _A1> > friend bool operator< (const set<_K1,_C1,_A1>&, const set<_K1,_C1,_A1>&); >}; > >template <class _Key, class _Compare, class _Alloc> >inline bool operator==(const set<_Key,_Compare,_Alloc>& __x, > const set<_Key,_Compare,_Alloc>& __y) { > return __x._M_t == __y._M_t; >} > >template <class _Key, class _Compare, class _Alloc> >inline bool operator<(const set<_Key,_Compare,_Alloc>& __x, > const set<_Key,_Compare,_Alloc>& __y) { > return __x._M_t < __y._M_t; >} > >template <class _Key, class _Compare, class _Alloc> >inline bool operator!=(const set<_Key,_Compare,_Alloc>& __x, > const set<_Key,_Compare,_Alloc>& __y) { > return !(__x == __y); >} > >template <class _Key, class _Compare, class _Alloc> >inline bool operator>(const set<_Key,_Compare,_Alloc>& __x, > const set<_Key,_Compare,_Alloc>& __y) { > return __y < __x; >} > >template <class _Key, class _Compare, class _Alloc> >inline bool operator<=(const set<_Key,_Compare,_Alloc>& __x, > const set<_Key,_Compare,_Alloc>& __y) { > return !(__y < __x); >} > >template <class _Key, class _Compare, class _Alloc> >inline bool operator>=(const set<_Key,_Compare,_Alloc>& __x, > const set<_Key,_Compare,_Alloc>& __y) { > return !(__x < __y); >} > >template <class _Key, class _Compare, class _Alloc> >inline void swap(set<_Key,_Compare,_Alloc>& __x, > set<_Key,_Compare,_Alloc>& __y) { > __x.swap(__y); >} > >} ># 68 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/set" 2 3 ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_multiset.h" 1 3 ># 66 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_multiset.h" 3 >namespace std >{ > > > >template <class _Key, class _Compare = less<_Key>, > class _Alloc = allocator<_Key> > >class multiset; > >template <class _Key, class _Compare, class _Alloc> >inline bool operator==(const multiset<_Key,_Compare,_Alloc>& __x, > const multiset<_Key,_Compare,_Alloc>& __y); > >template <class _Key, class _Compare, class _Alloc> >inline bool operator<(const multiset<_Key,_Compare,_Alloc>& __x, > const multiset<_Key,_Compare,_Alloc>& __y); > >template <class _Key, class _Compare, class _Alloc> >class multiset >{ > > > ; > >public: > > > > typedef _Key key_type; > typedef _Key value_type; > typedef _Compare key_compare; > typedef _Compare value_compare; >private: > typedef _Rb_tree<key_type, value_type, > _Identity<value_type>, key_compare, _Alloc> _Rep_type; > _Rep_type _M_t; >public: > typedef typename _Alloc::pointer pointer; > typedef typename _Alloc::const_pointer const_pointer; > typedef typename _Alloc::reference reference; > typedef typename _Alloc::const_reference const_reference; > typedef typename _Rep_type::const_iterator iterator; > typedef typename _Rep_type::const_iterator const_iterator; > typedef typename _Rep_type::const_reverse_iterator reverse_iterator; > typedef typename _Rep_type::const_reverse_iterator const_reverse_iterator; > typedef typename _Rep_type::size_type size_type; > typedef typename _Rep_type::difference_type difference_type; > typedef typename _Rep_type::allocator_type allocator_type; > > > > multiset() : _M_t(_Compare(), allocator_type()) {} > explicit multiset(const _Compare& __comp, > const allocator_type& __a = allocator_type()) > : _M_t(__comp, __a) {} > > template <class _InputIterator> > multiset(_InputIterator __first, _InputIterator __last) > : _M_t(_Compare(), allocator_type()) > { _M_t.insert_equal(__first, __last); } > > template <class _InputIterator> > multiset(_InputIterator __first, _InputIterator __last, > const _Compare& __comp, > const allocator_type& __a = allocator_type()) > : _M_t(__comp, __a) { _M_t.insert_equal(__first, __last); } > > multiset(const multiset<_Key,_Compare,_Alloc>& __x) : _M_t(__x._M_t) {} > > multiset<_Key,_Compare,_Alloc>& > operator=(const multiset<_Key,_Compare,_Alloc>& __x) { > _M_t = __x._M_t; > return *this; > } > > > > key_compare key_comp() const { return _M_t.key_comp(); } > value_compare value_comp() const { return _M_t.key_comp(); } > allocator_type get_allocator() const { return _M_t.get_allocator(); } > > iterator begin() const { return _M_t.begin(); } > iterator end() const { return _M_t.end(); } > reverse_iterator rbegin() const { return _M_t.rbegin(); } > reverse_iterator rend() const { return _M_t.rend(); } > bool empty() const { return _M_t.empty(); } > size_type size() const { return _M_t.size(); } > size_type max_size() const { return _M_t.max_size(); } > void swap(multiset<_Key,_Compare,_Alloc>& __x) { _M_t.swap(__x._M_t); } > > > iterator insert(const value_type& __x) { > return _M_t.insert_equal(__x); > } > iterator insert(iterator __position, const value_type& __x) { > typedef typename _Rep_type::iterator _Rep_iterator; > return _M_t.insert_equal((_Rep_iterator&)__position, __x); > } > > template <class _InputIterator> > void insert(_InputIterator __first, _InputIterator __last) { > _M_t.insert_equal(__first, __last); > } > void erase(iterator __position) { > typedef typename _Rep_type::iterator _Rep_iterator; > _M_t.erase((_Rep_iterator&)__position); > } > size_type erase(const key_type& __x) { > return _M_t.erase(__x); > } > void erase(iterator __first, iterator __last) { > typedef typename _Rep_type::iterator _Rep_iterator; > _M_t.erase((_Rep_iterator&)__first, (_Rep_iterator&)__last); > } > void clear() { _M_t.clear(); } > > > > size_type count(const key_type& __x) const { return _M_t.count(__x); } > > > > iterator find(const key_type& __x) { return _M_t.find(__x); } > const_iterator find(const key_type& __x) const { return _M_t.find(__x); } > iterator lower_bound(const key_type& __x) { > return _M_t.lower_bound(__x); > } > const_iterator lower_bound(const key_type& __x) const { > return _M_t.lower_bound(__x); > } > iterator upper_bound(const key_type& __x) { > return _M_t.upper_bound(__x); > } > const_iterator upper_bound(const key_type& __x) const { > return _M_t.upper_bound(__x); > } > pair<iterator,iterator> equal_range(const key_type& __x) { > return _M_t.equal_range(__x); > } > pair<const_iterator,const_iterator> equal_range(const key_type& __x) const { > return _M_t.equal_range(__x); > } ># 221 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_multiset.h" 3 > template <class _K1, class _C1, class _A1> > friend bool operator== (const multiset<_K1,_C1,_A1>&, > const multiset<_K1,_C1,_A1>&); > template <class _K1, class _C1, class _A1> > friend bool operator< (const multiset<_K1,_C1,_A1>&, > const multiset<_K1,_C1,_A1>&); >}; > >template <class _Key, class _Compare, class _Alloc> >inline bool operator==(const multiset<_Key,_Compare,_Alloc>& __x, > const multiset<_Key,_Compare,_Alloc>& __y) { > return __x._M_t == __y._M_t; >} > >template <class _Key, class _Compare, class _Alloc> >inline bool operator<(const multiset<_Key,_Compare,_Alloc>& __x, > const multiset<_Key,_Compare,_Alloc>& __y) { > return __x._M_t < __y._M_t; >} > >template <class _Key, class _Compare, class _Alloc> >inline bool operator!=(const multiset<_Key,_Compare,_Alloc>& __x, > const multiset<_Key,_Compare,_Alloc>& __y) { > return !(__x == __y); >} > >template <class _Key, class _Compare, class _Alloc> >inline bool operator>(const multiset<_Key,_Compare,_Alloc>& __x, > const multiset<_Key,_Compare,_Alloc>& __y) { > return __y < __x; >} > >template <class _Key, class _Compare, class _Alloc> >inline bool operator<=(const multiset<_Key,_Compare,_Alloc>& __x, > const multiset<_Key,_Compare,_Alloc>& __y) { > return !(__y < __x); >} > >template <class _Key, class _Compare, class _Alloc> >inline bool operator>=(const multiset<_Key,_Compare,_Alloc>& __x, > const multiset<_Key,_Compare,_Alloc>& __y) { > return !(__x < __y); >} > >template <class _Key, class _Compare, class _Alloc> >inline void swap(multiset<_Key,_Compare,_Alloc>& __x, > multiset<_Key,_Compare,_Alloc>& __y) { > __x.swap(__y); >} > >} ># 69 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/set" 2 3 ># 21 "../../OgreMain/include/OgreStdHeaders.h" 2 ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/list" 1 3 ># 64 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/list" 3 > ># 65 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/list" 3 > ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/functexcept.h" 1 3 ># 34 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/functexcept.h" 3 ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/exception_defines.h" 1 3 ># 35 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/functexcept.h" 2 3 > >namespace std >{ > > void > __throw_bad_exception(void); > > > void > __throw_bad_alloc(void); > > > void > __throw_bad_cast(void); > > void > __throw_bad_typeid(void); > > > void > __throw_logic_error(const char* __s); > > void > __throw_domain_error(const char* __s); > > void > __throw_invalid_argument(const char* __s); > > void > __throw_length_error(const char* __s); > > void > __throw_out_of_range(const char* __s); > > void > __throw_runtime_error(const char* __s); > > void > __throw_range_error(const char* __s); > > void > __throw_overflow_error(const char* __s); > > void > __throw_underflow_error(const char* __s); > > > void > __throw_ios_failure(const char* __s); >} ># 67 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/list" 2 3 > > > > ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_list.h" 1 3 ># 66 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_list.h" 3 >namespace std >{ > > > > > > > struct _List_node_base > { > _List_node_base* _M_next; > _List_node_base* _M_prev; > }; > > > template<typename _Tp> > struct _List_node : public _List_node_base > { > _Tp _M_data; > }; ># 97 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_list.h" 3 > struct _List_iterator_base > { > typedef size_t size_type; > typedef ptrdiff_t difference_type; > typedef bidirectional_iterator_tag iterator_category; > > > _List_node_base* _M_node; > > _List_iterator_base(_List_node_base* __x) > : _M_node(__x) > { } > > _List_iterator_base() > : _M_node() > { } > > > void > _M_incr() > { _M_node = _M_node->_M_next; } > > > void > _M_decr() > { _M_node = _M_node->_M_prev; } > > bool > operator==(const _List_iterator_base& __x) const > { return _M_node == __x._M_node; } > > bool > operator!=(const _List_iterator_base& __x) const > { return _M_node != __x._M_node; } > }; ># 143 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_list.h" 3 > template<typename _Tp, typename _Ref, typename _Ptr> > struct _List_iterator : public _List_iterator_base > { > typedef _List_iterator<_Tp,_Tp&,_Tp*> iterator; > typedef _List_iterator<_Tp,const _Tp&,const _Tp*> const_iterator; > typedef _List_iterator<_Tp,_Ref,_Ptr> _Self; > > typedef _Tp value_type; > typedef _Ptr pointer; > typedef _Ref reference; > typedef _List_node<_Tp> _Node; > > _List_iterator(_Node* __x) > : _List_iterator_base(__x) > { } > > _List_iterator() > : _List_iterator_base() > { } > > _List_iterator(const iterator& __x) > : _List_iterator_base(__x._M_node) > { } > > reference > operator*() const > { return static_cast<_Node*>(_M_node)->_M_data; } > > > pointer > operator->() const > { return &(operator*()); } > > _Self& > operator++() > { > this->_M_incr(); > return *this; > } > > _Self > operator++(int) > { > _Self __tmp = *this; > this->_M_incr(); > return __tmp; > } > > _Self& > operator--() > { > this->_M_decr(); > return *this; > } > > _Self > operator--(int) > { > _Self __tmp = *this; > this->_M_decr(); > return __tmp; > } > }; ># 214 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_list.h" 3 > template<typename _Tp, typename _Allocator, bool _IsStatic> > class _List_alloc_base > { > public: > typedef typename _Alloc_traits<_Tp, _Allocator>::allocator_type > allocator_type; > > allocator_type > get_allocator() const { return _M_node_allocator; } > > _List_alloc_base(const allocator_type& __a) > : _M_node_allocator(__a) > { } > > protected: > _List_node<_Tp>* > _M_get_node() > { return _M_node_allocator.allocate(1); } > > void > _M_put_node(_List_node<_Tp>* __p) > { _M_node_allocator.deallocate(__p, 1); } ># 249 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_list.h" 3 > typename _Alloc_traits<_List_node<_Tp>, _Allocator>::allocator_type > _M_node_allocator; > > _List_node<_Tp>* _M_node; > }; > > > template<typename _Tp, typename _Allocator> > class _List_alloc_base<_Tp, _Allocator, true> > { > public: > typedef typename _Alloc_traits<_Tp, _Allocator>::allocator_type > allocator_type; > > allocator_type > get_allocator() const { return allocator_type(); } > > _List_alloc_base(const allocator_type&) > { } > > protected: > > > typedef typename _Alloc_traits<_List_node<_Tp>, _Allocator>::_Alloc_type > _Alloc_type; > > _List_node<_Tp>* > _M_get_node() > { return _Alloc_type::allocate(1); } > > void > _M_put_node(_List_node<_Tp>* __p) > { _Alloc_type::deallocate(__p, 1); } > > _List_node<_Tp>* _M_node; > }; > > > > > > > > template <typename _Tp, typename _Alloc> > class _List_base > : public _List_alloc_base<_Tp, _Alloc, > _Alloc_traits<_Tp, _Alloc>::_S_instanceless> > { > public: > typedef _List_alloc_base<_Tp, _Alloc, > _Alloc_traits<_Tp, _Alloc>::_S_instanceless> > _Base; > typedef typename _Base::allocator_type allocator_type; > > _List_base(const allocator_type& __a) > : _Base(__a) > { > _M_node = _M_get_node(); > _M_node->_M_next = _M_node; > _M_node->_M_prev = _M_node; > } > > > ~_List_base() > { > __clear(); > _M_put_node(_M_node); > } > > void > __clear(); > }; ># 367 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_list.h" 3 > template<typename _Tp, typename _Alloc = allocator<_Tp> > > class list : protected _List_base<_Tp, _Alloc> > { > > > > typedef _List_base<_Tp, _Alloc> _Base; > > public: > typedef _Tp value_type; > typedef value_type* pointer; > typedef const value_type* const_pointer; > typedef _List_iterator<_Tp,_Tp&,_Tp*> iterator; > typedef _List_iterator<_Tp,const _Tp&,const _Tp*> const_iterator; > typedef std::reverse_iterator<const_iterator> const_reverse_iterator; > typedef std::reverse_iterator<iterator> reverse_iterator; > typedef value_type& reference; > typedef const value_type& const_reference; > typedef size_t size_type; > typedef ptrdiff_t difference_type; > typedef typename _Base::allocator_type allocator_type; > > protected: > > typedef _List_node<_Tp> _Node; > > > > > > > > using _Base::_M_node; > using _Base::_M_put_node; > using _Base::_M_get_node; ># 410 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_list.h" 3 > _Node* > _M_create_node(const value_type& __x) > { > _Node* __p = _M_get_node(); > try { > _Construct(&__p->_M_data, __x); > } > catch(...) > { > _M_put_node(__p); > throw; > } > return __p; > } > > > > > > > > _Node* > _M_create_node() > { > _Node* __p = _M_get_node(); > try { > _Construct(&__p->_M_data); > } > catch(...) > { > _M_put_node(__p); > throw; > } > return __p; > } > > public: > > > > > > explicit > list(const allocator_type& __a = allocator_type()) > : _Base(__a) { } ># 463 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_list.h" 3 > list(size_type __n, const value_type& __value, > const allocator_type& __a = allocator_type()) > : _Base(__a) > { this->insert(begin(), __n, __value); } ># 475 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_list.h" 3 > explicit > list(size_type __n) > : _Base(allocator_type()) > { this->insert(begin(), __n, value_type()); } ># 487 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_list.h" 3 > list(const list& __x) > : _Base(__x.get_allocator()) > { this->insert(begin(), __x.begin(), __x.end()); } ># 504 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_list.h" 3 > template<typename _InputIterator> > list(_InputIterator __first, _InputIterator __last, > const allocator_type& __a = allocator_type()) > : _Base(__a) > { this->insert(begin(), __first, __last); } > > > > > > > ~list() { } ># 524 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_list.h" 3 > list& > operator=(const list& __x); ># 537 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_list.h" 3 > void > assign(size_type __n, const value_type& __val) { _M_fill_assign(__n, __val); } ># 552 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_list.h" 3 > template<typename _InputIterator> > void > assign(_InputIterator __first, _InputIterator __last) > { > > typedef typename _Is_integer<_InputIterator>::_Integral _Integral; > _M_assign_dispatch(__first, __last, _Integral()); > } > > > allocator_type > get_allocator() const { return _Base::get_allocator(); } > > > > > > > iterator > begin() { return static_cast<_Node*>(_M_node->_M_next); } > > > > > > const_iterator > begin() const { return static_cast<_Node*>(_M_node->_M_next); } > > > > > > iterator > end() { return _M_node; } > > > > > > const_iterator > end() const { return _M_node; } > > > > > > 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->_M_next == _M_node; } > > > size_type > size() const { return distance(begin(), end()); } > > > size_type > max_size() const { return size_type(-1); } ># 650 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_list.h" 3 > void > resize(size_type __new_size, const value_type& __x); ># 662 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_list.h" 3 > void > resize(size_type __new_size) { this->resize(__new_size, value_type()); } > > > > > > > reference > front() { return *begin(); } > > > > > > const_reference > front() const { return *begin(); } > > > > > > reference > back() { return *(--end()); } > > > > > > const_reference > back() const { return *(--end()); } ># 704 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_list.h" 3 > void > push_front(const value_type& __x) { this->insert(begin(), __x); } ># 735 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_list.h" 3 > void > pop_front() { this->erase(begin()); } ># 747 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_list.h" 3 > void > push_back(const value_type& __x) { this->insert(end(), __x); } ># 778 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_list.h" 3 > void > pop_back() > { > iterator __tmp = end(); > this->erase(--__tmp); > } ># 796 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_list.h" 3 > iterator > insert(iterator __position, const value_type& __x); ># 831 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_list.h" 3 > void > insert(iterator __pos, size_type __n, const value_type& __x) > { _M_fill_insert(__pos, __n, __x); } ># 847 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_list.h" 3 > template<typename _InputIterator> > void > insert(iterator __pos, _InputIterator __first, _InputIterator __last) > { > > typedef typename _Is_integer<_InputIterator>::_Integral _Integral; > _M_insert_dispatch(__pos, __first, __last, _Integral()); > } ># 872 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_list.h" 3 > iterator > erase(iterator __position); ># 894 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_list.h" 3 > iterator > erase(iterator __first, iterator __last) > { > while (__first != __last) > erase(__first++); > return __last; > } ># 911 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_list.h" 3 > void > swap(list& __x) { std::swap(_M_node, __x._M_node); } > > > > > > > > void > clear() { _Base::__clear(); } > > > > > > void > splice(iterator __position, list& __x) > { > if (!__x.empty()) > this->_M_transfer(__position, __x.begin(), __x.end()); > } > > > > > void > splice(iterator __position, list&, iterator __i) > { > iterator __j = __i; > ++__j; > if (__position == __i || __position == __j) return; > this->_M_transfer(__position, __i, __j); > } > > > > > void > splice(iterator __position, list&, iterator __first, iterator __last) > { > if (__first != __last) > this->_M_transfer(__position, __first, __last); > } > > > > > void > remove(const _Tp& __value); > > > > > template<typename _Predicate> > void > remove_if(_Predicate); > > > > > void > unique(); > > > > > template<typename _BinaryPredicate> > void > unique(_BinaryPredicate); > > > > > void > merge(list& __x); > > > > > template<typename _StrictWeakOrdering> > void > merge(list&, _StrictWeakOrdering); > > > > > void > reverse() { __List_base_reverse(this->_M_node); } > > > > > void > sort(); > > > > > template<typename _StrictWeakOrdering> > void > sort(_StrictWeakOrdering); > > protected: > > > > template<typename _Integer> > void > _M_assign_dispatch(_Integer __n, _Integer __val, __true_type) > { > _M_fill_assign(static_cast<size_type>(__n), > static_cast<value_type>(__val)); > } > > > template<typename _InputIter> > void > _M_assign_dispatch(_InputIter __first, _InputIter __last, __false_type); > > > > void > _M_fill_assign(size_type __n, const value_type& __val); > > > > > > template<typename _Integer> > void > _M_insert_dispatch(iterator __pos, _Integer __n, _Integer __x, > __true_type) > { > _M_fill_insert(__pos, static_cast<size_type>(__n), > static_cast<value_type>(__x)); > } > > > template<typename _InputIterator> > void > _M_insert_dispatch(iterator __pos, > _InputIterator __first, _InputIterator __last, > __false_type) > { > for ( ; __first != __last; ++__first) > insert(__pos, *__first); > } > > > > void > _M_fill_insert(iterator __pos, size_type __n, const value_type& __x) > { > for ( ; __n > 0; --__n) > insert(__pos, __x); > } > > > > void > _M_transfer(iterator __position, iterator __first, iterator __last) > { > if (__position != __last) { > > __last._M_node->_M_prev->_M_next = __position._M_node; > __first._M_node->_M_prev->_M_next = __last._M_node; > __position._M_node->_M_prev->_M_next = __first._M_node; > > > _List_node_base* __tmp = __position._M_node->_M_prev; > __position._M_node->_M_prev = __last._M_node->_M_prev; > __last._M_node->_M_prev = __first._M_node->_M_prev; > __first._M_node->_M_prev = __tmp; > } > } > }; ># 1100 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_list.h" 3 > template<typename _Tp, typename _Alloc> > inline bool > operator==(const list<_Tp,_Alloc>& __x, const list<_Tp,_Alloc>& __y) > { > typedef typename list<_Tp,_Alloc>::const_iterator const_iterator; > const_iterator __end1 = __x.end(); > const_iterator __end2 = __y.end(); > > const_iterator __i1 = __x.begin(); > const_iterator __i2 = __y.begin(); > while (__i1 != __end1 && __i2 != __end2 && *__i1 == *__i2) { > ++__i1; > ++__i2; > } > return __i1 == __end1 && __i2 == __end2; > } ># 1128 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_list.h" 3 > template<typename _Tp, typename _Alloc> > inline bool > operator<(const list<_Tp,_Alloc>& __x, const list<_Tp,_Alloc>& __y) > { > return lexicographical_compare(__x.begin(), __x.end(), > __y.begin(), __y.end()); > } > > > template<typename _Tp, typename _Alloc> > inline bool > operator!=(const list<_Tp,_Alloc>& __x, const list<_Tp,_Alloc>& __y) > { return !(__x == __y); } > > > template<typename _Tp, typename _Alloc> > inline bool > operator>(const list<_Tp,_Alloc>& __x, const list<_Tp,_Alloc>& __y) > { return __y < __x; } > > > template<typename _Tp, typename _Alloc> > inline bool > operator<=(const list<_Tp,_Alloc>& __x, const list<_Tp,_Alloc>& __y) > { return !(__y < __x); } > > > template<typename _Tp, typename _Alloc> > inline bool > operator>=(const list<_Tp,_Alloc>& __x, const list<_Tp,_Alloc>& __y) > { return !(__x < __y); } > > > template<typename _Tp, typename _Alloc> > inline void > swap(list<_Tp, _Alloc>& __x, list<_Tp, _Alloc>& __y) > { __x.swap(__y); } >} ># 72 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/list" 2 3 > > ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/list.tcc" 1 3 ># 64 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/list.tcc" 3 >namespace std >{ > template<typename _Tp, typename _Alloc> > void > _List_base<_Tp,_Alloc>:: > __clear() > { > typedef _List_node<_Tp> _Node; > _Node* __cur = static_cast<_Node*>(_M_node->_M_next); > while (__cur != _M_node) > { > _Node* __tmp = __cur; > __cur = static_cast<_Node*>(__cur->_M_next); > _Destroy(&__tmp->_M_data); > _M_put_node(__tmp); > } > _M_node->_M_next = _M_node; > _M_node->_M_prev = _M_node; > } > > template<typename _Tp, typename _Alloc> > typename list<_Tp,_Alloc>::iterator > list<_Tp,_Alloc>:: > insert(iterator __position, const value_type& __x) > { > _Node* __tmp = _M_create_node(__x); > __tmp->_M_next = __position._M_node; > __tmp->_M_prev = __position._M_node->_M_prev; > __position._M_node->_M_prev->_M_next = __tmp; > __position._M_node->_M_prev = __tmp; > return __tmp; > } > > template<typename _Tp, typename _Alloc> > typename list<_Tp,_Alloc>::iterator > list<_Tp,_Alloc>:: > erase(iterator __position) > { > _List_node_base* __next_node = __position._M_node->_M_next; > _List_node_base* __prev_node = __position._M_node->_M_prev; > _Node* __n = static_cast<_Node*>(__position._M_node); > __prev_node->_M_next = __next_node; > __next_node->_M_prev = __prev_node; > _Destroy(&__n->_M_data); > _M_put_node(__n); > return iterator(static_cast<_Node*>(__next_node)); > } > > template<typename _Tp, typename _Alloc> > void > list<_Tp,_Alloc>:: > resize(size_type __new_size, const value_type& __x) > { > iterator __i = begin(); > size_type __len = 0; > for ( ; __i != end() && __len < __new_size; ++__i, ++__len) > ; > if (__len == __new_size) > erase(__i, end()); > else > insert(end(), __new_size - __len, __x); > } > > template<typename _Tp, typename _Alloc> > list<_Tp,_Alloc>& > list<_Tp,_Alloc>:: > operator=(const list& __x) > { > if (this != &__x) > { > iterator __first1 = begin(); > iterator __last1 = end(); > const_iterator __first2 = __x.begin(); > const_iterator __last2 = __x.end(); > while (__first1 != __last1 && __first2 != __last2) > *__first1++ = *__first2++; > if (__first2 == __last2) > erase(__first1, __last1); > else > insert(__last1, __first2, __last2); > } > return *this; > } > > template<typename _Tp, typename _Alloc> > void > list<_Tp,_Alloc>:: > _M_fill_assign(size_type __n, const value_type& __val) > { > iterator __i = begin(); > for ( ; __i != end() && __n > 0; ++__i, --__n) > *__i = __val; > if (__n > 0) > insert(end(), __n, __val); > else > erase(__i, end()); > } > > template<typename _Tp, typename _Alloc> > template <typename _InputIter> > void > list<_Tp,_Alloc>:: > _M_assign_dispatch(_InputIter __first2, _InputIter __last2, __false_type) > { > iterator __first1 = begin(); > iterator __last1 = end(); > for (; __first1 != __last1 && __first2 != __last2; ++__first1, ++__first2) > *__first1 = *__first2; > if (__first2 == __last2) > erase(__first1, __last1); > else > insert(__last1, __first2, __last2); > } > > template<typename _Tp, typename _Alloc> > void > list<_Tp,_Alloc>:: > remove(const value_type& __value) > { > iterator __first = begin(); > iterator __last = end(); > while (__first != __last) > { > iterator __next = __first; > ++__next; > if (*__first == __value) > erase(__first); > __first = __next; > } > } > > template<typename _Tp, typename _Alloc> > void > list<_Tp,_Alloc>:: > unique() > { > iterator __first = begin(); > iterator __last = end(); > if (__first == __last) return; > iterator __next = __first; > while (++__next != __last) > { > if (*__first == *__next) > erase(__next); > else > __first = __next; > __next = __first; > } > } > > template<typename _Tp, typename _Alloc> > void > list<_Tp,_Alloc>:: > merge(list& __x) > { > > > if (this != &__x) > { > iterator __first1 = begin(); > iterator __last1 = end(); > iterator __first2 = __x.begin(); > iterator __last2 = __x.end(); > while (__first1 != __last1 && __first2 != __last2) > if (*__first2 < *__first1) > { > iterator __next = __first2; > _M_transfer(__first1, __first2, ++__next); > __first2 = __next; > } > else > ++__first1; > if (__first2 != __last2) > _M_transfer(__last1, __first2, __last2); > } > } > > > inline void > __List_base_reverse(_List_node_base* __p) > { > _List_node_base* __tmp = __p; > do { > std::swap(__tmp->_M_next, __tmp->_M_prev); > __tmp = __tmp->_M_prev; > } while (__tmp != __p); > } > > template<typename _Tp, typename _Alloc> > void > list<_Tp,_Alloc>:: > sort() > { > > if (_M_node->_M_next != _M_node && _M_node->_M_next->_M_next != _M_node) > { > list __carry; > list __counter[64]; > int __fill = 0; > while (!empty()) > { > __carry.splice(__carry.begin(), *this, begin()); > int __i = 0; > while(__i < __fill && !__counter[__i].empty()) > { > __counter[__i].merge(__carry); > __carry.swap(__counter[__i++]); > } > __carry.swap(__counter[__i]); > if (__i == __fill) ++__fill; > } > > for (int __i = 1; __i < __fill; ++__i) > __counter[__i].merge(__counter[__i-1]); > swap(__counter[__fill-1]); > } > } > > template<typename _Tp, typename _Alloc> > template <typename _Predicate> > void > list<_Tp,_Alloc>:: > remove_if(_Predicate __pred) > { > iterator __first = begin(); > iterator __last = end(); > while (__first != __last) > { > iterator __next = __first; > ++__next; > if (__pred(*__first)) erase(__first); > __first = __next; > } > } > > template<typename _Tp, typename _Alloc> > template <typename _BinaryPredicate> > void > list<_Tp,_Alloc>:: > unique(_BinaryPredicate __binary_pred) > { > iterator __first = begin(); > iterator __last = end(); > if (__first == __last) return; > iterator __next = __first; > while (++__next != __last) > { > if (__binary_pred(*__first, *__next)) > erase(__next); > else > __first = __next; > __next = __first; > } > } > > template<typename _Tp, typename _Alloc> > template <typename _StrictWeakOrdering> > void > list<_Tp,_Alloc>:: > merge(list& __x, _StrictWeakOrdering __comp) > { > > > if (this != &__x) > { > iterator __first1 = begin(); > iterator __last1 = end(); > iterator __first2 = __x.begin(); > iterator __last2 = __x.end(); > while (__first1 != __last1 && __first2 != __last2) > if (__comp(*__first2, *__first1)) > { > iterator __next = __first2; > _M_transfer(__first1, __first2, ++__next); > __first2 = __next; > } > else > ++__first1; > if (__first2 != __last2) _M_transfer(__last1, __first2, __last2); > } > } > > template<typename _Tp, typename _Alloc> > template <typename _StrictWeakOrdering> > void > list<_Tp,_Alloc>:: > sort(_StrictWeakOrdering __comp) > { > > if (_M_node->_M_next != _M_node && _M_node->_M_next->_M_next != _M_node) > { > list __carry; > list __counter[64]; > int __fill = 0; > while (!empty()) > { > __carry.splice(__carry.begin(), *this, begin()); > int __i = 0; > while(__i < __fill && !__counter[__i].empty()) > { > __counter[__i].merge(__carry, __comp); > __carry.swap(__counter[__i++]); > } > __carry.swap(__counter[__i]); > if (__i == __fill) ++__fill; > } > > for (int __i = 1; __i < __fill; ++__i) > __counter[__i].merge(__counter[__i-1], __comp); > swap(__counter[__fill-1]); > } > } >} ># 75 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/list" 2 3 ># 22 "../../OgreMain/include/OgreStdHeaders.h" 2 ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/deque" 1 3 ># 64 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/deque" 3 > ># 65 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/deque" 3 > ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/functexcept.h" 1 3 ># 34 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/functexcept.h" 3 ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/exception_defines.h" 1 3 ># 35 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/functexcept.h" 2 3 > >namespace std >{ > > void > __throw_bad_exception(void); > > > void > __throw_bad_alloc(void); > > > void > __throw_bad_cast(void); > > void > __throw_bad_typeid(void); > > > void > __throw_logic_error(const char* __s); > > void > __throw_domain_error(const char* __s); > > void > __throw_invalid_argument(const char* __s); > > void > __throw_length_error(const char* __s); > > void > __throw_out_of_range(const char* __s); > > void > __throw_runtime_error(const char* __s); > > void > __throw_range_error(const char* __s); > > void > __throw_overflow_error(const char* __s); > > void > __throw_underflow_error(const char* __s); > > > void > __throw_ios_failure(const char* __s); >} ># 67 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/deque" 2 3 > > > > ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_deque.h" 1 3 ># 68 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_deque.h" 3 >namespace std >{ ># 82 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_deque.h" 3 > inline size_t > __deque_buf_size(size_t __size) > { return __size < 512 ? size_t(512 / __size) : size_t(1); } ># 99 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_deque.h" 3 > template <typename _Tp, typename _Ref, typename _Ptr> > struct _Deque_iterator > { > typedef _Deque_iterator<_Tp, _Tp&, _Tp*> iterator; > typedef _Deque_iterator<_Tp, const _Tp&, const _Tp*> const_iterator; > static size_t _S_buffer_size() { return __deque_buf_size(sizeof(_Tp)); } > > typedef random_access_iterator_tag iterator_category; > typedef _Tp value_type; > typedef _Ptr pointer; > typedef _Ref reference; > typedef size_t size_type; > typedef ptrdiff_t difference_type; > typedef _Tp** _Map_pointer; > typedef _Deque_iterator _Self; > > _Tp* _M_cur; > _Tp* _M_first; > _Tp* _M_last; > _Map_pointer _M_node; > > _Deque_iterator(_Tp* __x, _Map_pointer __y) > : _M_cur(__x), _M_first(*__y), > _M_last(*__y + _S_buffer_size()), _M_node(__y) {} > _Deque_iterator() : _M_cur(0), _M_first(0), _M_last(0), _M_node(0) {} > _Deque_iterator(const iterator& __x) > : _M_cur(__x._M_cur), _M_first(__x._M_first), > _M_last(__x._M_last), _M_node(__x._M_node) {} > > reference operator*() const { return *_M_cur; } > pointer operator->() const { return _M_cur; } > > _Self& operator++() { > ++_M_cur; > if (_M_cur == _M_last) { > _M_set_node(_M_node + 1); > _M_cur = _M_first; > } > return *this; > } > _Self operator++(int) { > _Self __tmp = *this; > ++*this; > return __tmp; > } > > _Self& operator--() { > if (_M_cur == _M_first) { > _M_set_node(_M_node - 1); > _M_cur = _M_last; > } > --_M_cur; > return *this; > } > _Self operator--(int) { > _Self __tmp = *this; > --*this; > return __tmp; > } > > _Self& operator+=(difference_type __n) > { > difference_type __offset = __n + (_M_cur - _M_first); > if (__offset >= 0 && __offset < difference_type(_S_buffer_size())) > _M_cur += __n; > else { > difference_type __node_offset = > __offset > 0 ? __offset / difference_type(_S_buffer_size()) > : -difference_type((-__offset - 1) / _S_buffer_size()) - 1; > _M_set_node(_M_node + __node_offset); > _M_cur = _M_first + > (__offset - __node_offset * difference_type(_S_buffer_size())); > } > return *this; > } > > _Self operator+(difference_type __n) const > { > _Self __tmp = *this; > return __tmp += __n; > } > > _Self& operator-=(difference_type __n) { return *this += -__n; } > > _Self operator-(difference_type __n) const { > _Self __tmp = *this; > return __tmp -= __n; > } > > reference operator[](difference_type __n) const { return *(*this + __n); } > > > > > > > > void > _M_set_node(_Map_pointer __new_node) > { > _M_node = __new_node; > _M_first = *__new_node; > _M_last = _M_first + difference_type(_S_buffer_size()); > } > }; > > > > > template <typename _Tp, typename _Ref, typename _Ptr> > inline bool > operator==(const _Deque_iterator<_Tp, _Ref, _Ptr>& __x, > const _Deque_iterator<_Tp, _Ref, _Ptr>& __y) > { > return __x._M_cur == __y._M_cur; > } > > template <typename _Tp, typename _RefL, typename _PtrL, > typename _RefR, typename _PtrR> > inline bool > operator==(const _Deque_iterator<_Tp, _RefL, _PtrL>& __x, > const _Deque_iterator<_Tp, _RefR, _PtrR>& __y) > { > return __x._M_cur == __y._M_cur; > } > > template <typename _Tp, typename _Ref, typename _Ptr> > inline bool > operator!=(const _Deque_iterator<_Tp, _Ref, _Ptr>& __x, > const _Deque_iterator<_Tp, _Ref, _Ptr>& __y) > { > return !(__x == __y); > } > > template <typename _Tp, typename _RefL, typename _PtrL, > typename _RefR, typename _PtrR> > inline bool > operator!=(const _Deque_iterator<_Tp, _RefL, _PtrL>& __x, > const _Deque_iterator<_Tp, _RefR, _PtrR>& __y) > { > return !(__x == __y); > } > > template <typename _Tp, typename _Ref, typename _Ptr> > inline bool > operator<(const _Deque_iterator<_Tp, _Ref, _Ptr>& __x, > const _Deque_iterator<_Tp, _Ref, _Ptr>& __y) > { > return (__x._M_node == __y._M_node) ? > (__x._M_cur < __y._M_cur) : (__x._M_node < __y._M_node); > } > > template <typename _Tp, typename _RefL, typename _PtrL, > typename _RefR, typename _PtrR> > inline bool > operator<(const _Deque_iterator<_Tp, _RefL, _PtrL>& __x, > const _Deque_iterator<_Tp, _RefR, _PtrR>& __y) > { > return (__x._M_node == __y._M_node) ? > (__x._M_cur < __y._M_cur) : (__x._M_node < __y._M_node); > } > > template <typename _Tp, typename _Ref, typename _Ptr> > inline bool > operator>(const _Deque_iterator<_Tp, _Ref, _Ptr>& __x, > const _Deque_iterator<_Tp, _Ref, _Ptr>& __y) > { > return __y < __x; > } > > template <typename _Tp, typename _RefL, typename _PtrL, > typename _RefR, typename _PtrR> > inline bool > operator>(const _Deque_iterator<_Tp, _RefL, _PtrL>& __x, > const _Deque_iterator<_Tp, _RefR, _PtrR>& __y) > { > return __y < __x; > } > > template <typename _Tp, typename _Ref, typename _Ptr> > inline bool > operator<=(const _Deque_iterator<_Tp, _Ref, _Ptr>& __x, > const _Deque_iterator<_Tp, _Ref, _Ptr>& __y) > { > return !(__y < __x); > } > > template <typename _Tp, typename _RefL, typename _PtrL, > typename _RefR, typename _PtrR> > inline bool > operator<=(const _Deque_iterator<_Tp, _RefL, _PtrL>& __x, > const _Deque_iterator<_Tp, _RefR, _PtrR>& __y) > { > return !(__y < __x); > } > > template <typename _Tp, typename _Ref, typename _Ptr> > inline bool > operator>=(const _Deque_iterator<_Tp, _Ref, _Ptr>& __x, > const _Deque_iterator<_Tp, _Ref, _Ptr>& __y) > { > return !(__x < __y); > } > > template <typename _Tp, typename _RefL, typename _PtrL, > typename _RefR, typename _PtrR> > inline bool > operator>=(const _Deque_iterator<_Tp, _RefL, _PtrL>& __x, > const _Deque_iterator<_Tp, _RefR, _PtrR>& __y) > { > return !(__x < __y); > } > > > > > > template <typename _Tp, typename _RefL, typename _PtrL, > typename _RefR, typename _PtrR> > inline typename _Deque_iterator<_Tp, _RefL, _PtrL>::difference_type > operator-(const _Deque_iterator<_Tp, _RefL, _PtrL>& __x, > const _Deque_iterator<_Tp, _RefR, _PtrR>& __y) > { > return _Deque_iterator<_Tp, _RefL, _PtrL>::difference_type > (_Deque_iterator<_Tp, _RefL, _PtrL>::_S_buffer_size()) * > (__x._M_node - __y._M_node - 1) + (__x._M_cur - __x._M_first) + > (__y._M_last - __y._M_cur); > } > > template <typename _Tp, typename _Ref, typename _Ptr> > inline _Deque_iterator<_Tp, _Ref, _Ptr> > operator+(ptrdiff_t __n, const _Deque_iterator<_Tp, _Ref, _Ptr>& __x) > { > return __x + __n; > } ># 348 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_deque.h" 3 > template <typename _Tp, typename _Alloc, bool __is_static> > class _Deque_alloc_base > { > public: > typedef typename _Alloc_traits<_Tp,_Alloc>::allocator_type allocator_type; > allocator_type get_allocator() const { return _M_node_allocator; } > > _Deque_alloc_base(const allocator_type& __a) > : _M_node_allocator(__a), _M_map_allocator(__a), > _M_map(0), _M_map_size(0) > {} > > protected: > typedef typename _Alloc_traits<_Tp*, _Alloc>::allocator_type > _Map_allocator_type; > > _Tp* > _M_allocate_node() > { > return _M_node_allocator.allocate(__deque_buf_size(sizeof(_Tp))); > } > > void > _M_deallocate_node(_Tp* __p) > { > _M_node_allocator.deallocate(__p, __deque_buf_size(sizeof(_Tp))); > } > > _Tp** > _M_allocate_map(size_t __n) > { return _M_map_allocator.allocate(__n); } > > void > _M_deallocate_map(_Tp** __p, size_t __n) > { _M_map_allocator.deallocate(__p, __n); } > > allocator_type _M_node_allocator; > _Map_allocator_type _M_map_allocator; > _Tp** _M_map; > size_t _M_map_size; > }; > > > template <typename _Tp, typename _Alloc> > class _Deque_alloc_base<_Tp, _Alloc, true> > { > public: > typedef typename _Alloc_traits<_Tp,_Alloc>::allocator_type allocator_type; > allocator_type get_allocator() const { return allocator_type(); } > > _Deque_alloc_base(const allocator_type&) > : _M_map(0), _M_map_size(0) > {} > > protected: > typedef typename _Alloc_traits<_Tp,_Alloc>::_Alloc_type _Node_alloc_type; > typedef typename _Alloc_traits<_Tp*,_Alloc>::_Alloc_type _Map_alloc_type; > > _Tp* > _M_allocate_node() > { > return _Node_alloc_type::allocate(__deque_buf_size(sizeof(_Tp))); > } > > void > _M_deallocate_node(_Tp* __p) > { > _Node_alloc_type::deallocate(__p, __deque_buf_size(sizeof(_Tp))); > } > > _Tp** > _M_allocate_map(size_t __n) > { return _Map_alloc_type::allocate(__n); } > > void > _M_deallocate_map(_Tp** __p, size_t __n) > { _Map_alloc_type::deallocate(__p, __n); } > > _Tp** _M_map; > size_t _M_map_size; > }; ># 442 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_deque.h" 3 > template <typename _Tp, typename _Alloc> > class _Deque_base > : public _Deque_alloc_base<_Tp,_Alloc, > _Alloc_traits<_Tp, _Alloc>::_S_instanceless> > { > public: > typedef _Deque_alloc_base<_Tp,_Alloc, > _Alloc_traits<_Tp, _Alloc>::_S_instanceless> > _Base; > typedef typename _Base::allocator_type allocator_type; > typedef _Deque_iterator<_Tp,_Tp&,_Tp*> iterator; > typedef _Deque_iterator<_Tp,const _Tp&,const _Tp*> const_iterator; > > _Deque_base(const allocator_type& __a, size_t __num_elements) > : _Base(__a), _M_start(), _M_finish() > { _M_initialize_map(__num_elements); } > _Deque_base(const allocator_type& __a) > : _Base(__a), _M_start(), _M_finish() {} > ~_Deque_base(); > > protected: > void _M_initialize_map(size_t); > void _M_create_nodes(_Tp** __nstart, _Tp** __nfinish); > void _M_destroy_nodes(_Tp** __nstart, _Tp** __nfinish); > enum { _S_initial_map_size = 8 }; > > iterator _M_start; > iterator _M_finish; > }; > > > template <typename _Tp, typename _Alloc> > _Deque_base<_Tp,_Alloc>::~_Deque_base() > { > if (_M_map) > { > _M_destroy_nodes(_M_start._M_node, _M_finish._M_node + 1); > _M_deallocate_map(_M_map, _M_map_size); > } > } ># 493 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_deque.h" 3 > template <typename _Tp, typename _Alloc> > void > _Deque_base<_Tp,_Alloc>::_M_initialize_map(size_t __num_elements) > { > size_t __num_nodes = > __num_elements / __deque_buf_size(sizeof(_Tp)) + 1; > > _M_map_size = max((size_t) _S_initial_map_size, __num_nodes + 2); > _M_map = _M_allocate_map(_M_map_size); > > > > > > _Tp** __nstart = _M_map + (_M_map_size - __num_nodes) / 2; > _Tp** __nfinish = __nstart + __num_nodes; > > try > { _M_create_nodes(__nstart, __nfinish); } > catch(...) > { > _M_deallocate_map(_M_map, _M_map_size); > _M_map = 0; > _M_map_size = 0; > throw; > } > > _M_start._M_set_node(__nstart); > _M_finish._M_set_node(__nfinish - 1); > _M_start._M_cur = _M_start._M_first; > _M_finish._M_cur = _M_finish._M_first + > __num_elements % __deque_buf_size(sizeof(_Tp)); > } > > template <typename _Tp, typename _Alloc> > void _Deque_base<_Tp,_Alloc>::_M_create_nodes(_Tp** __nstart, _Tp** __nfinish) > { > _Tp** __cur; > try > { > for (__cur = __nstart; __cur < __nfinish; ++__cur) > *__cur = _M_allocate_node(); > } > catch(...) > { > _M_destroy_nodes(__nstart, __cur); > throw; > } > } > > template <typename _Tp, typename _Alloc> > void > _Deque_base<_Tp,_Alloc>::_M_destroy_nodes(_Tp** __nstart, _Tp** __nfinish) > { > for (_Tp** __n = __nstart; __n < __nfinish; ++__n) > _M_deallocate_node(*__n); > } ># 636 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_deque.h" 3 > template <typename _Tp, typename _Alloc = allocator<_Tp> > > class deque : protected _Deque_base<_Tp, _Alloc> > { > > > > typedef _Deque_base<_Tp, _Alloc> _Base; > > public: > typedef _Tp value_type; > typedef value_type* pointer; > typedef const value_type* const_pointer; > typedef typename _Base::iterator iterator; > typedef typename _Base::const_iterator const_iterator; > typedef std::reverse_iterator<const_iterator> const_reverse_iterator; > typedef std::reverse_iterator<iterator> reverse_iterator; > typedef value_type& reference; > typedef const value_type& const_reference; > typedef size_t size_type; > typedef ptrdiff_t difference_type; > typedef typename _Base::allocator_type allocator_type; > > protected: > typedef pointer* _Map_pointer; > static size_t _S_buffer_size() { return __deque_buf_size(sizeof(_Tp)); } > > > using _Base::_M_initialize_map; > using _Base::_M_create_nodes; > using _Base::_M_destroy_nodes; > using _Base::_M_allocate_node; > using _Base::_M_deallocate_node; > using _Base::_M_allocate_map; > using _Base::_M_deallocate_map; > > > > > > > > using _Base::_M_map; > using _Base::_M_map_size; > using _Base::_M_start; > using _Base::_M_finish; > > public: > > > > > > explicit > deque(const allocator_type& __a = allocator_type()) > : _Base(__a, 0) {} ># 699 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_deque.h" 3 > deque(size_type __n, const value_type& __value, > const allocator_type& __a = allocator_type()) > : _Base(__a, __n) > { _M_fill_initialize(__value); } ># 711 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_deque.h" 3 > explicit > deque(size_type __n) > : _Base(allocator_type(), __n) > { _M_fill_initialize(value_type()); } ># 723 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_deque.h" 3 > deque(const deque& __x) > : _Base(__x.get_allocator(), __x.size()) > { uninitialized_copy(__x.begin(), __x.end(), _M_start); } ># 740 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_deque.h" 3 > template<typename _InputIterator> > deque(_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()); > } > > > > > > > ~deque() { _Destroy(_M_start, _M_finish); } ># 764 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_deque.h" 3 > deque& > operator=(const deque& __x); ># 777 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_deque.h" 3 > void > assign(size_type __n, const value_type& __val) { _M_fill_assign(__n, __val); } ># 792 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_deque.h" 3 > template<typename _InputIterator> > void > assign(_InputIterator __first, _InputIterator __last) > { > typedef typename _Is_integer<_InputIterator>::_Integral _Integral; > _M_assign_dispatch(__first, __last, _Integral()); > } > > > allocator_type > get_allocator() const { return _Base::get_allocator(); } > > > > > > > iterator > begin() { return _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(_M_finish); } > > > > > > const_reverse_iterator > rbegin() const { return const_reverse_iterator(_M_finish); } > > > > > > > reverse_iterator > rend() { return reverse_iterator(_M_start); } > > > > > > > const_reverse_iterator > rend() const { return const_reverse_iterator(_M_start); } > > > > size_type > size() const { return _M_finish - _M_start; } > > > size_type > max_size() const { return size_type(-1); } ># 882 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_deque.h" 3 > void > resize(size_type __new_size, const value_type& __x) > { > const size_type __len = size(); > if (__new_size < __len) > erase(_M_start + __new_size, _M_finish); > else > insert(_M_finish, __new_size - __len, __x); > } ># 901 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_deque.h" 3 > void > resize(size_type new_size) { resize(new_size, value_type()); } > > > > > bool empty() const { return _M_finish == _M_start; } ># 919 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_deque.h" 3 > reference > operator[](size_type __n) { return _M_start[difference_type(__n)]; } ># 931 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_deque.h" 3 > const_reference > operator[](size_type __n) const { return _M_start[difference_type(__n)]; } > > protected: > > void > _M_range_check(size_type __n) const > { > if (__n >= this->size()) > __throw_out_of_range("deque [] access out of range"); > } > > public: ># 954 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_deque.h" 3 > reference > at(size_type __n) { _M_range_check(__n); return (*this)[__n]; } ># 967 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_deque.h" 3 > const_reference > at(size_type __n) const { _M_range_check(__n); return (*this)[__n]; } > > > > > > reference > front() { return *_M_start; } > > > > > > const_reference > front() const { return *_M_start; } > > > > > > reference > back() > { > iterator __tmp = _M_finish; > --__tmp; > return *__tmp; > } > > > > > > const_reference > back() const > { > const_iterator __tmp = _M_finish; > --__tmp; > return *__tmp; > } ># 1017 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_deque.h" 3 > void > push_front(const value_type& __x) > { > if (_M_start._M_cur != _M_start._M_first) { > _Construct(_M_start._M_cur - 1, __x); > --_M_start._M_cur; > } > else > _M_push_front_aux(__x); > } ># 1061 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_deque.h" 3 > void > push_back(const value_type& __x) > { > if (_M_finish._M_cur != _M_finish._M_last - 1) { > _Construct(_M_finish._M_cur, __x); > ++_M_finish._M_cur; > } > else > _M_push_back_aux(__x); > } ># 1105 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_deque.h" 3 > void > pop_front() > { > if (_M_start._M_cur != _M_start._M_last - 1) { > _Destroy(_M_start._M_cur); > ++_M_start._M_cur; > } > else > _M_pop_front_aux(); > } ># 1124 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_deque.h" 3 > void > pop_back() > { > if (_M_finish._M_cur != _M_finish._M_first) { > --_M_finish._M_cur; > _Destroy(_M_finish._M_cur); > } > else > _M_pop_back_aux(); > } ># 1144 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_deque.h" 3 > iterator > insert(iterator position, const value_type& __x); ># 1175 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_deque.h" 3 > void > insert(iterator __position, size_type __n, const value_type& __x) > { _M_fill_insert(__position, __n, __x); } ># 1189 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_deque.h" 3 > template<typename _InputIterator> > void > insert(iterator __pos, _InputIterator __first, _InputIterator __last) > { > > typedef typename _Is_integer<_InputIterator>::_Integral _Integral; > _M_insert_dispatch(__pos, __first, __last, _Integral()); > } ># 1211 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_deque.h" 3 > iterator > erase(iterator __position); ># 1230 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_deque.h" 3 > iterator > erase(iterator __first, iterator __last); ># 1242 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_deque.h" 3 > void > swap(deque& __x) > { > std::swap(_M_start, __x._M_start); > std::swap(_M_finish, __x._M_finish); > std::swap(_M_map, __x._M_map); > std::swap(_M_map_size, __x._M_map_size); > } > > > > > > > > void clear(); > > protected: > > > > template<typename _Integer> > void > _M_initialize_dispatch(_Integer __n, _Integer __x, __true_type) > { > _M_initialize_map(__n); > _M_fill_initialize(__x); > } > > > template<typename _InputIter> > void > _M_initialize_dispatch(_InputIter __first, _InputIter __last, > __false_type) > { > typedef typename iterator_traits<_InputIter>::iterator_category > _IterCategory; > _M_range_initialize(__first, __last, _IterCategory()); > } ># 1296 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_deque.h" 3 > template <typename _InputIterator> > void > _M_range_initialize(_InputIterator __first, _InputIterator __last, > input_iterator_tag); > > > template <typename _ForwardIterator> > void > _M_range_initialize(_ForwardIterator __first, _ForwardIterator __last, > forward_iterator_tag); ># 1320 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_deque.h" 3 > void > _M_fill_initialize(const value_type& __value); > > > > > > > template<typename _Integer> > void > _M_assign_dispatch(_Integer __n, _Integer __val, __true_type) > { > _M_fill_assign(static_cast<size_type>(__n), > static_cast<value_type>(__val)); > } > > > template<typename _InputIter> > void > _M_assign_dispatch(_InputIter __first, _InputIter __last, __false_type) > { > typedef typename iterator_traits<_InputIter>::iterator_category > _IterCategory; > _M_assign_aux(__first, __last, _IterCategory()); > } > > > template <typename _InputIterator> > void > _M_assign_aux(_InputIterator __first, _InputIterator __last, > input_iterator_tag); > > > template <typename _ForwardIterator> > void > _M_assign_aux(_ForwardIterator __first, _ForwardIterator __last, > forward_iterator_tag) > { > size_type __len = distance(__first, __last); > if (__len > size()) { > _ForwardIterator __mid = __first; > advance(__mid, size()); > copy(__first, __mid, begin()); > insert(end(), __mid, __last); > } > else > erase(copy(__first, __last, begin()), end()); > } > > > > void > _M_fill_assign(size_type __n, const value_type& __val) > { > if (__n > size()) > { > fill(begin(), end(), __val); > insert(end(), __n - size(), __val); > } > else > { > erase(begin() + __n, end()); > fill(begin(), end(), __val); > } > } ># 1393 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_deque.h" 3 > void _M_push_back_aux(const value_type&); > void _M_push_front_aux(const value_type&); > > > > > void _M_pop_back_aux(); > void _M_pop_front_aux(); > > > > > > > > template<typename _Integer> > void > _M_insert_dispatch(iterator __pos, > _Integer __n, _Integer __x, __true_type) > { > _M_fill_insert(__pos, static_cast<size_type>(__n), > static_cast<value_type>(__x)); > } > > > template<typename _InputIterator> > void > _M_insert_dispatch(iterator __pos, > _InputIterator __first, _InputIterator __last, > __false_type) > { > typedef typename iterator_traits<_InputIterator>::iterator_category > _IterCategory; > _M_range_insert_aux(__pos, __first, __last, _IterCategory()); > } > > > template <typename _InputIterator> > void > _M_range_insert_aux(iterator __pos, _InputIterator __first, > _InputIterator __last, input_iterator_tag); > > > template <typename _ForwardIterator> > void > _M_range_insert_aux(iterator __pos, _ForwardIterator __first, > _ForwardIterator __last, forward_iterator_tag); > > > > > void > _M_fill_insert(iterator __pos, size_type __n, const value_type& __x); > > > iterator > _M_insert_aux(iterator __pos, const value_type& __x); > > > void > _M_insert_aux(iterator __pos, size_type __n, const value_type& __x); > > > template <typename _ForwardIterator> > void > _M_insert_aux(iterator __pos, > _ForwardIterator __first, _ForwardIterator __last, > size_type __n); ># 1474 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_deque.h" 3 > iterator > _M_reserve_elements_at_front(size_type __n) > { > size_type __vacancies = _M_start._M_cur - _M_start._M_first; > if (__n > __vacancies) > _M_new_elements_at_front(__n - __vacancies); > return _M_start - difference_type(__n); > } > > iterator > _M_reserve_elements_at_back(size_type __n) > { > size_type __vacancies = (_M_finish._M_last - _M_finish._M_cur) - 1; > if (__n > __vacancies) > _M_new_elements_at_back(__n - __vacancies); > return _M_finish + difference_type(__n); > } > > void > _M_new_elements_at_front(size_type __new_elements); > > void > _M_new_elements_at_back(size_type __new_elements); ># 1510 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_deque.h" 3 > void > _M_reserve_map_at_back (size_type __nodes_to_add = 1) > { > if (__nodes_to_add + 1 > _M_map_size - (_M_finish._M_node - _M_map)) > _M_reallocate_map(__nodes_to_add, false); > } > > void > _M_reserve_map_at_front (size_type __nodes_to_add = 1) > { > if (__nodes_to_add > size_type(_M_start._M_node - _M_map)) > _M_reallocate_map(__nodes_to_add, true); > } > > void > _M_reallocate_map(size_type __nodes_to_add, bool __add_at_front); > > }; ># 1540 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_deque.h" 3 > template <typename _Tp, typename _Alloc> > inline bool operator==(const deque<_Tp, _Alloc>& __x, > const deque<_Tp, _Alloc>& __y) > { > return __x.size() == __y.size() && > equal(__x.begin(), __x.end(), __y.begin()); > } ># 1559 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_deque.h" 3 > template <typename _Tp, typename _Alloc> > inline bool operator<(const deque<_Tp, _Alloc>& __x, > const deque<_Tp, _Alloc>& __y) > { > return lexicographical_compare(__x.begin(), __x.end(), > __y.begin(), __y.end()); > } > > > template <typename _Tp, typename _Alloc> > inline bool operator!=(const deque<_Tp, _Alloc>& __x, > const deque<_Tp, _Alloc>& __y) { > return !(__x == __y); > } > > > template <typename _Tp, typename _Alloc> > inline bool operator>(const deque<_Tp, _Alloc>& __x, > const deque<_Tp, _Alloc>& __y) { > return __y < __x; > } > > > template <typename _Tp, typename _Alloc> > inline bool operator<=(const deque<_Tp, _Alloc>& __x, > const deque<_Tp, _Alloc>& __y) { > return !(__y < __x); > } > > > template <typename _Tp, typename _Alloc> > inline bool operator>=(const deque<_Tp, _Alloc>& __x, > const deque<_Tp, _Alloc>& __y) { > return !(__x < __y); > } > > > template <typename _Tp, typename _Alloc> > inline void swap(deque<_Tp,_Alloc>& __x, deque<_Tp,_Alloc>& __y) > { > __x.swap(__y); > } >} ># 72 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/deque" 2 3 > > ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/deque.tcc" 1 3 ># 64 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/deque.tcc" 3 >namespace std >{ > template <typename _Tp, typename _Alloc> > deque<_Tp,_Alloc>& > deque<_Tp,_Alloc>:: > operator=(const deque& __x) > { > const size_type __len = size(); > if (&__x != this) > { > if (__len >= __x.size()) > erase(copy(__x.begin(), __x.end(), _M_start), _M_finish); > else > { > const_iterator __mid = __x.begin() + difference_type(__len); > copy(__x.begin(), __mid, _M_start); > insert(_M_finish, __mid, __x.end()); > } > } > return *this; > } > > template <typename _Tp, typename _Alloc> > typename deque<_Tp,_Alloc>::iterator > deque<_Tp,_Alloc>:: > insert(iterator position, const value_type& __x) > { > if (position._M_cur == _M_start._M_cur) > { > push_front(__x); > return _M_start; > } > else if (position._M_cur == _M_finish._M_cur) > { > push_back(__x); > iterator __tmp = _M_finish; > --__tmp; > return __tmp; > } > else > return _M_insert_aux(position, __x); > } > > template <typename _Tp, typename _Alloc> > typename deque<_Tp,_Alloc>::iterator > deque<_Tp,_Alloc>:: > erase(iterator __position) > { > iterator __next = __position; > ++__next; > size_type __index = __position - _M_start; > if (__index < (size() >> 1)) > { > copy_backward(_M_start, __position, __next); > pop_front(); > } > else > { > copy(__next, _M_finish, __position); > pop_back(); > } > return _M_start + __index; > } > > template <typename _Tp, typename _Alloc> > typename deque<_Tp,_Alloc>::iterator > deque<_Tp,_Alloc>:: > erase(iterator __first, iterator __last) > { > if (__first == _M_start && __last == _M_finish) > { > clear(); > return _M_finish; > } > else > { > difference_type __n = __last - __first; > difference_type __elems_before = __first - _M_start; > if (static_cast<size_type>(__elems_before) < (size() - __n) / 2) > { > copy_backward(_M_start, __first, __last); > iterator __new_start = _M_start + __n; > _Destroy(_M_start, __new_start); > _M_destroy_nodes(_M_start._M_node, __new_start._M_node); > _M_start = __new_start; > } > else > { > copy(__last, _M_finish, __first); > iterator __new_finish = _M_finish - __n; > _Destroy(__new_finish, _M_finish); > _M_destroy_nodes(__new_finish._M_node + 1, _M_finish._M_node + 1); > _M_finish = __new_finish; > } > return _M_start + __elems_before; > } > } > > template <typename _Tp, typename _Alloc> > void > deque<_Tp,_Alloc>:: > clear() > { > for (_Map_pointer __node = _M_start._M_node + 1; > __node < _M_finish._M_node; > ++__node) > { > _Destroy(*__node, *__node + _S_buffer_size()); > _M_deallocate_node(*__node); > } > > if (_M_start._M_node != _M_finish._M_node) > { > _Destroy(_M_start._M_cur, _M_start._M_last); > _Destroy(_M_finish._M_first, _M_finish._M_cur); > _M_deallocate_node(_M_finish._M_first); > } > else > _Destroy(_M_start._M_cur, _M_finish._M_cur); > > _M_finish = _M_start; > } > > template <typename _Tp, class _Alloc> > template <typename _InputIter> > void > deque<_Tp,_Alloc> > ::_M_assign_aux(_InputIter __first, _InputIter __last, input_iterator_tag) > { > iterator __cur = begin(); > for ( ; __first != __last && __cur != end(); ++__cur, ++__first) > *__cur = *__first; > if (__first == __last) > erase(__cur, end()); > else > insert(end(), __first, __last); > } > > template <typename _Tp, typename _Alloc> > void > deque<_Tp,_Alloc>:: > _M_fill_insert(iterator __pos, size_type __n, const value_type& __x) > { > if (__pos._M_cur == _M_start._M_cur) > { > iterator __new_start = _M_reserve_elements_at_front(__n); > try > { > uninitialized_fill(__new_start, _M_start, __x); > _M_start = __new_start; > } > catch(...) > { > _M_destroy_nodes(__new_start._M_node, _M_start._M_node); > throw; > } > } > else if (__pos._M_cur == _M_finish._M_cur) > { > iterator __new_finish = _M_reserve_elements_at_back(__n); > try > { > uninitialized_fill(_M_finish, __new_finish, __x); > _M_finish = __new_finish; > } > catch(...) > { > _M_destroy_nodes(_M_finish._M_node + 1, __new_finish._M_node + 1); > throw; > } > } > else > _M_insert_aux(__pos, __n, __x); > } > > template <typename _Tp, typename _Alloc> > void > deque<_Tp,_Alloc>:: > _M_fill_initialize(const value_type& __value) > { > _Map_pointer __cur; > try > { > for (__cur = _M_start._M_node; __cur < _M_finish._M_node; ++__cur) > uninitialized_fill(*__cur, *__cur + _S_buffer_size(), __value); > uninitialized_fill(_M_finish._M_first, _M_finish._M_cur, __value); > } > catch(...) > { > _Destroy(_M_start, iterator(*__cur, __cur)); > throw; > } > } > > template <typename _Tp, typename _Alloc> > template <typename _InputIterator> > void > deque<_Tp,_Alloc>:: > _M_range_initialize(_InputIterator __first, _InputIterator __last, > input_iterator_tag) > { > _M_initialize_map(0); > try > { > for ( ; __first != __last; ++__first) > push_back(*__first); > } > catch(...) > { > clear(); > throw; > } > } > > template <typename _Tp, typename _Alloc> > template <typename _ForwardIterator> > void > deque<_Tp,_Alloc>:: > _M_range_initialize(_ForwardIterator __first, _ForwardIterator __last, > forward_iterator_tag) > { > size_type __n = distance(__first, __last); > _M_initialize_map(__n); > > _Map_pointer __cur_node; > try > { > for (__cur_node = _M_start._M_node; > __cur_node < _M_finish._M_node; > ++__cur_node) > { > _ForwardIterator __mid = __first; > advance(__mid, _S_buffer_size()); > uninitialized_copy(__first, __mid, *__cur_node); > __first = __mid; > } > uninitialized_copy(__first, __last, _M_finish._M_first); > } > catch(...) > { > _Destroy(_M_start, iterator(*__cur_node, __cur_node)); > throw; > } > } > > > template <typename _Tp, typename _Alloc> > void > deque<_Tp,_Alloc>:: > _M_push_back_aux(const value_type& __t) > { > value_type __t_copy = __t; > _M_reserve_map_at_back(); > *(_M_finish._M_node + 1) = _M_allocate_node(); > try > { > _Construct(_M_finish._M_cur, __t_copy); > _M_finish._M_set_node(_M_finish._M_node + 1); > _M_finish._M_cur = _M_finish._M_first; > } > catch(...) > { > _M_deallocate_node(*(_M_finish._M_node + 1)); > throw; > } > } ># 355 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/deque.tcc" 3 > template <typename _Tp, typename _Alloc> > void > deque<_Tp,_Alloc>:: > _M_push_front_aux(const value_type& __t) > { > value_type __t_copy = __t; > _M_reserve_map_at_front(); > *(_M_start._M_node - 1) = _M_allocate_node(); > try > { > _M_start._M_set_node(_M_start._M_node - 1); > _M_start._M_cur = _M_start._M_last - 1; > _Construct(_M_start._M_cur, __t_copy); > } > catch(...) > { > ++_M_start; > _M_deallocate_node(*(_M_start._M_node - 1)); > throw; > } > } ># 402 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/deque.tcc" 3 > template <typename _Tp, typename _Alloc> > void deque<_Tp,_Alloc>:: > _M_pop_back_aux() > { > _M_deallocate_node(_M_finish._M_first); > _M_finish._M_set_node(_M_finish._M_node - 1); > _M_finish._M_cur = _M_finish._M_last - 1; > _Destroy(_M_finish._M_cur); > } > > > > > > template <typename _Tp, typename _Alloc> > void deque<_Tp,_Alloc>:: > _M_pop_front_aux() > { > _Destroy(_M_start._M_cur); > _M_deallocate_node(_M_start._M_first); > _M_start._M_set_node(_M_start._M_node + 1); > _M_start._M_cur = _M_start._M_first; > } > > template <typename _Tp, typename _Alloc> > template <typename _InputIterator> > void > deque<_Tp,_Alloc>:: > _M_range_insert_aux(iterator __pos, > _InputIterator __first, _InputIterator __last, > input_iterator_tag) > { > copy(__first, __last, inserter(*this, __pos)); > } > > template <typename _Tp, typename _Alloc> > template <typename _ForwardIterator> > void > deque<_Tp,_Alloc>:: > _M_range_insert_aux(iterator __pos, > _ForwardIterator __first, _ForwardIterator __last, > forward_iterator_tag) > { > size_type __n = distance(__first, __last); > if (__pos._M_cur == _M_start._M_cur) > { > iterator __new_start = _M_reserve_elements_at_front(__n); > try > { > uninitialized_copy(__first, __last, __new_start); > _M_start = __new_start; > } > catch(...) > { > _M_destroy_nodes(__new_start._M_node, _M_start._M_node); > throw; > } > } > else if (__pos._M_cur == _M_finish._M_cur) > { > iterator __new_finish = _M_reserve_elements_at_back(__n); > try > { > uninitialized_copy(__first, __last, _M_finish); > _M_finish = __new_finish; > } > catch(...) > { > _M_destroy_nodes(_M_finish._M_node + 1, __new_finish._M_node + 1); > throw; > } > } > else > _M_insert_aux(__pos, __first, __last, __n); > } > > template <typename _Tp, typename _Alloc> > typename deque<_Tp, _Alloc>::iterator > deque<_Tp,_Alloc>:: > _M_insert_aux(iterator __pos, const value_type& __x) > { > difference_type __index = __pos - _M_start; > value_type __x_copy = __x; > if (static_cast<size_type>(__index) < size() / 2) > { > push_front(front()); > iterator __front1 = _M_start; > ++__front1; > iterator __front2 = __front1; > ++__front2; > __pos = _M_start + __index; > iterator __pos1 = __pos; > ++__pos1; > copy(__front2, __pos1, __front1); > } > else > { > push_back(back()); > iterator __back1 = _M_finish; > --__back1; > iterator __back2 = __back1; > --__back2; > __pos = _M_start + __index; > copy_backward(__pos, __back2, __back1); > } > *__pos = __x_copy; > return __pos; > } ># 549 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/deque.tcc" 3 > template <typename _Tp, typename _Alloc> > void > deque<_Tp,_Alloc>:: > _M_insert_aux(iterator __pos, size_type __n, const value_type& __x) > { > const difference_type __elems_before = __pos - _M_start; > size_type __length = this->size(); > value_type __x_copy = __x; > if (__elems_before < difference_type(__length / 2)) > { > iterator __new_start = _M_reserve_elements_at_front(__n); > iterator __old_start = _M_start; > __pos = _M_start + __elems_before; > try > { > if (__elems_before >= difference_type(__n)) > { > iterator __start_n = _M_start + difference_type(__n); > uninitialized_copy(_M_start, __start_n, __new_start); > _M_start = __new_start; > copy(__start_n, __pos, __old_start); > fill(__pos - difference_type(__n), __pos, __x_copy); > } > else > { > __uninitialized_copy_fill(_M_start, __pos, __new_start, > _M_start, __x_copy); > _M_start = __new_start; > fill(__old_start, __pos, __x_copy); > } > } > catch(...) > { > _M_destroy_nodes(__new_start._M_node, _M_start._M_node); > throw; > } > } > else > { > iterator __new_finish = _M_reserve_elements_at_back(__n); > iterator __old_finish = _M_finish; > const difference_type __elems_after = > difference_type(__length) - __elems_before; > __pos = _M_finish - __elems_after; > try > { > if (__elems_after > difference_type(__n)) > { > iterator __finish_n = _M_finish - difference_type(__n); > uninitialized_copy(__finish_n, _M_finish, _M_finish); > _M_finish = __new_finish; > copy_backward(__pos, __finish_n, __old_finish); > fill(__pos, __pos + difference_type(__n), __x_copy); > } > else > { > __uninitialized_fill_copy(_M_finish, __pos + difference_type(__n), > __x_copy, __pos, _M_finish); > _M_finish = __new_finish; > fill(__pos, __old_finish, __x_copy); > } > } > catch(...) > { > _M_destroy_nodes(_M_finish._M_node + 1, __new_finish._M_node + 1); > throw; > } > } > } > > template <typename _Tp, typename _Alloc> > template <typename _ForwardIterator> > void > deque<_Tp,_Alloc>:: > _M_insert_aux(iterator __pos, > _ForwardIterator __first, _ForwardIterator __last, > size_type __n) > { > const difference_type __elemsbefore = __pos - _M_start; > size_type __length = size(); > if (static_cast<size_type>(__elemsbefore) < __length / 2) > { > iterator __new_start = _M_reserve_elements_at_front(__n); > iterator __old_start = _M_start; > __pos = _M_start + __elemsbefore; > try > { > if (__elemsbefore >= difference_type(__n)) > { > iterator __start_n = _M_start + difference_type(__n); > uninitialized_copy(_M_start, __start_n, __new_start); > _M_start = __new_start; > copy(__start_n, __pos, __old_start); > copy(__first, __last, __pos - difference_type(__n)); > } > else > { > _ForwardIterator __mid = __first; > advance(__mid, difference_type(__n) - __elemsbefore); > __uninitialized_copy_copy(_M_start, __pos, __first, __mid, > __new_start); > _M_start = __new_start; > copy(__mid, __last, __old_start); > } > } > catch(...) > { > _M_destroy_nodes(__new_start._M_node, _M_start._M_node); > throw; > } > } > else > { > iterator __new_finish = _M_reserve_elements_at_back(__n); > iterator __old_finish = _M_finish; > const difference_type __elemsafter = > difference_type(__length) - __elemsbefore; > __pos = _M_finish - __elemsafter; > try > { > if (__elemsafter > difference_type(__n)) > { > iterator __finish_n = _M_finish - difference_type(__n); > uninitialized_copy(__finish_n, _M_finish, _M_finish); > _M_finish = __new_finish; > copy_backward(__pos, __finish_n, __old_finish); > copy(__first, __last, __pos); > } > else > { > _ForwardIterator __mid = __first; > advance(__mid, __elemsafter); > __uninitialized_copy_copy(__mid, __last, __pos, > _M_finish, _M_finish); > _M_finish = __new_finish; > copy(__first, __mid, __pos); > } > } > catch(...) > { > _M_destroy_nodes(_M_finish._M_node + 1, __new_finish._M_node + 1); > throw; > } > } > } > > template <typename _Tp, typename _Alloc> > void > deque<_Tp,_Alloc>:: > _M_new_elements_at_front(size_type __new_elems) > { > size_type __new_nodes > = (__new_elems + _S_buffer_size() - 1) / _S_buffer_size(); > _M_reserve_map_at_front(__new_nodes); > size_type __i; > try > { > for (__i = 1; __i <= __new_nodes; ++__i) > *(_M_start._M_node - __i) = _M_allocate_node(); > } > catch(...) > { > for (size_type __j = 1; __j < __i; ++__j) > _M_deallocate_node(*(_M_start._M_node - __j)); > throw; > } > } > > template <typename _Tp, typename _Alloc> > void > deque<_Tp,_Alloc>:: > _M_new_elements_at_back(size_type __new_elems) > { > size_type __new_nodes > = (__new_elems + _S_buffer_size() - 1) / _S_buffer_size(); > _M_reserve_map_at_back(__new_nodes); > size_type __i; > try > { > for (__i = 1; __i <= __new_nodes; ++__i) > *(_M_finish._M_node + __i) = _M_allocate_node(); > } > catch(...) > { > for (size_type __j = 1; __j < __i; ++__j) > _M_deallocate_node(*(_M_finish._M_node + __j)); > throw; > } > } > > template <typename _Tp, typename _Alloc> > void > deque<_Tp,_Alloc>:: > _M_reallocate_map(size_type __nodes_to_add, bool __add_at_front) > { > size_type __old_num_nodes = _M_finish._M_node - _M_start._M_node + 1; > size_type __new_num_nodes = __old_num_nodes + __nodes_to_add; > > _Map_pointer __new_nstart; > if (_M_map_size > 2 * __new_num_nodes) > { > __new_nstart = _M_map + (_M_map_size - __new_num_nodes) / 2 > + (__add_at_front ? __nodes_to_add : 0); > if (__new_nstart < _M_start._M_node) > copy(_M_start._M_node, _M_finish._M_node + 1, __new_nstart); > else > copy_backward(_M_start._M_node, _M_finish._M_node + 1, > __new_nstart + __old_num_nodes); > } > else > { > size_type __new_map_size = > _M_map_size + max(_M_map_size, __nodes_to_add) + 2; > > _Map_pointer __new_map = _M_allocate_map(__new_map_size); > __new_nstart = __new_map + (__new_map_size - __new_num_nodes) / 2 > + (__add_at_front ? __nodes_to_add : 0); > copy(_M_start._M_node, _M_finish._M_node + 1, __new_nstart); > _M_deallocate_map(_M_map, _M_map_size); > > _M_map = __new_map; > _M_map_size = __new_map_size; > } > > _M_start._M_set_node(__new_nstart); > _M_finish._M_set_node(__new_nstart + __old_num_nodes - 1); > } >} ># 75 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/deque" 2 3 ># 23 "../../OgreMain/include/OgreStdHeaders.h" 2 ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/queue" 1 3 ># 64 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/queue" 3 > ># 65 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/queue" 3 > ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/functexcept.h" 1 3 ># 34 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/functexcept.h" 3 ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/exception_defines.h" 1 3 ># 35 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/functexcept.h" 2 3 > >namespace std >{ > > void > __throw_bad_exception(void); > > > void > __throw_bad_alloc(void); > > > void > __throw_bad_cast(void); > > void > __throw_bad_typeid(void); > > > void > __throw_logic_error(const char* __s); > > void > __throw_domain_error(const char* __s); > > void > __throw_invalid_argument(const char* __s); > > void > __throw_length_error(const char* __s); > > void > __throw_out_of_range(const char* __s); > > void > __throw_runtime_error(const char* __s); > > void > __throw_range_error(const char* __s); > > void > __throw_overflow_error(const char* __s); > > void > __throw_underflow_error(const char* __s); > > > void > __throw_ios_failure(const char* __s); >} ># 67 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/queue" 2 3 ># 75 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/queue" 3 ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_queue.h" 1 3 ># 66 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_queue.h" 3 >namespace std >{ > > > template <typename _Tp, typename _Sequence = deque<_Tp> > > class queue; > > template <typename _Tp, typename _Seq> > inline bool operator==(const queue<_Tp,_Seq>&, const queue<_Tp,_Seq>&); > > template <typename _Tp, typename _Seq> > inline bool operator<(const queue<_Tp,_Seq>&, const queue<_Tp,_Seq>&); ># 104 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_queue.h" 3 > template <typename _Tp, typename _Sequence> > class queue > { > > typedef typename _Sequence::value_type _Sequence_value_type; > > > > > > template <typename _Tp1, typename _Seq1> > friend bool operator== (const queue<_Tp1, _Seq1>&, > const queue<_Tp1, _Seq1>&); > template <typename _Tp1, typename _Seq1> > friend bool operator< (const queue<_Tp1, _Seq1>&, > const queue<_Tp1, _Seq1>&); > > public: > typedef typename _Sequence::value_type value_type; > typedef typename _Sequence::reference reference; > typedef typename _Sequence::const_reference const_reference; > typedef typename _Sequence::size_type size_type; > typedef _Sequence container_type; > > protected: > > > > > > > > _Sequence c; > > public: > > > > explicit > queue(const _Sequence& __c = _Sequence()) > : c(__c) {} > > > > > bool > empty() const { return c.empty(); } > > > size_type > size() const { return c.size(); } > > > > > > reference > front() { return c.front(); } > > > > > > const_reference > front() const { return c.front(); } > > > > > > reference > back() { return c.back(); } > > > > > > const_reference > back() const { return c.back(); } ># 193 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_queue.h" 3 > void > push(const value_type& __x) { c.push_back(__x); } ># 206 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_queue.h" 3 > void > pop() { c.pop_front(); } > }; ># 222 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_queue.h" 3 > template <typename _Tp, typename _Sequence> > inline bool > operator==(const queue<_Tp,_Sequence>& __x, const queue<_Tp,_Sequence>& __y) > { return __x.c == __y.c; } ># 239 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_queue.h" 3 > template <typename _Tp, typename _Sequence> > inline bool > operator<(const queue<_Tp,_Sequence>& __x, const queue<_Tp,_Sequence>& __y) > { return __x.c < __y.c; } > > > template <typename _Tp, typename _Sequence> > inline bool > operator!=(const queue<_Tp,_Sequence>& __x, const queue<_Tp,_Sequence>& __y) > { return !(__x == __y); } > > > template <typename _Tp, typename _Sequence> > inline bool > operator>(const queue<_Tp,_Sequence>& __x, const queue<_Tp,_Sequence>& __y) > { return __y < __x; } > > > template <typename _Tp, typename _Sequence> > inline bool > operator<=(const queue<_Tp,_Sequence>& __x, const queue<_Tp,_Sequence>& __y) > { return !(__y < __x); } > > > template <typename _Tp, typename _Sequence> > inline bool > operator>=(const queue<_Tp,_Sequence>& __x, const queue<_Tp,_Sequence>& __y) > { return !(__x < __y); } ># 303 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_queue.h" 3 > template <typename _Tp, typename _Sequence = vector<_Tp>, > typename _Compare = less<typename _Sequence::value_type> > > class priority_queue > { > > typedef typename _Sequence::value_type _Sequence_value_type; > > > > > > > public: > typedef typename _Sequence::value_type value_type; > typedef typename _Sequence::reference reference; > typedef typename _Sequence::const_reference const_reference; > typedef typename _Sequence::size_type size_type; > typedef _Sequence container_type; > > protected: > > _Sequence c; > _Compare comp; > > public: > > > > explicit > priority_queue(const _Compare& __x = _Compare(), > const _Sequence& __s = _Sequence()) > : c(__s), comp(__x) > { make_heap(c.begin(), c.end(), comp); } ># 351 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_queue.h" 3 > template <typename _InputIterator> > priority_queue(_InputIterator __first, _InputIterator __last, > const _Compare& __x = _Compare(), > const _Sequence& __s = _Sequence()) > : c(__s), comp(__x) > { > c.insert(c.end(), __first, __last); > make_heap(c.begin(), c.end(), comp); > } > > > > > bool > empty() const { return c.empty(); } > > > size_type > size() const { return c.size(); } > > > > > > const_reference > top() const { return c.front(); } ># 386 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_queue.h" 3 > void > push(const value_type& __x) > { > try > { > c.push_back(__x); > push_heap(c.begin(), c.end(), comp); > } > catch(...) > { > c.clear(); > throw; > } > } ># 411 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_queue.h" 3 > void > pop() > { > try > { > pop_heap(c.begin(), c.end(), comp); > c.pop_back(); > } > catch(...) > { > c.clear(); > throw; > } > } > }; > > >} ># 76 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/queue" 2 3 ># 24 "../../OgreMain/include/OgreStdHeaders.h" 2 > > > ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/ext/hash_map" 1 3 ># 65 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/ext/hash_map" 3 ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/ext/stl_hashtable.h" 1 3 ># 69 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/ext/stl_hashtable.h" 3 ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/iterator" 1 3 ># 64 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/iterator" 3 > ># 65 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/iterator" 3 > > > > > ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/ostream" 1 3 ># 43 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/ostream" 3 > ># 44 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/ostream" 3 > ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/ios" 1 3 ># 42 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/ios" 3 > ># 43 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/ios" 3 > > > > > ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/localefwd.h" 1 3 ># 43 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/localefwd.h" 3 > ># 44 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/localefwd.h" 3 > > > > ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/functexcept.h" 1 3 ># 34 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/functexcept.h" 3 ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/exception_defines.h" 1 3 ># 35 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/functexcept.h" 2 3 > >namespace std >{ > > void > __throw_bad_exception(void); > > > void > __throw_bad_alloc(void); > > > void > __throw_bad_cast(void); > > void > __throw_bad_typeid(void); > > > void > __throw_logic_error(const char* __s); > > void > __throw_domain_error(const char* __s); > > void > __throw_invalid_argument(const char* __s); > > void > __throw_length_error(const char* __s); > > void > __throw_out_of_range(const char* __s); > > void > __throw_runtime_error(const char* __s); > > void > __throw_range_error(const char* __s); > > void > __throw_overflow_error(const char* __s); > > void > __throw_underflow_error(const char* __s); > > > void > __throw_ios_failure(const char* __s); >} ># 49 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/localefwd.h" 2 3 > >namespace std >{ > > class locale; > > > template<typename _CharT> > inline bool > isspace(_CharT, const locale&); > > template<typename _CharT> > inline bool > isprint(_CharT, const locale&); > > template<typename _CharT> > inline bool > iscntrl(_CharT, const locale&); > > template<typename _CharT> > inline bool > isupper(_CharT, const locale&); > > template<typename _CharT> > inline bool > islower(_CharT, const locale&); > > template<typename _CharT> > inline bool > isalpha(_CharT, const locale&); > > template<typename _CharT> > inline bool > isdigit(_CharT, const locale&); > > template<typename _CharT> > inline bool > ispunct(_CharT, const locale&); > > template<typename _CharT> > inline bool > isxdigit(_CharT, const locale&); > > template<typename _CharT> > inline bool > isalnum(_CharT, const locale&); > > template<typename _CharT> > inline bool > isgraph(_CharT, const locale&); > > template<typename _CharT> > inline _CharT > toupper(_CharT, const locale&); > > template<typename _CharT> > inline _CharT > tolower(_CharT, const locale&); > > > class ctype_base; > template<typename _CharT> > class ctype; > template<> class ctype<char>; > > template<> class ctype<wchar_t>; > > template<typename _CharT> > class ctype_byname; > > > class codecvt_base; > class __enc_traits; > template<typename _InternT, typename _ExternT, typename _StateT> > class codecvt; > template<> class codecvt<char, char, mbstate_t>; > > template<> class codecvt<wchar_t, char, mbstate_t>; > > template<typename _InternT, typename _ExternT, typename _StateT> > class codecvt_byname; > > > template<typename _CharT, typename _InIter = istreambuf_iterator<_CharT> > > class num_get; > template<typename _CharT, typename _OutIter = ostreambuf_iterator<_CharT> > > class num_put; > template<typename _CharT> class numpunct; > template<typename _CharT> class numpunct_byname; > > > template<typename _CharT> > class collate; > template<typename _CharT> class > collate_byname; > > > class time_base; > template<typename _CharT, typename _InIter = istreambuf_iterator<_CharT> > > class time_get; > template<typename _CharT, typename _InIter = istreambuf_iterator<_CharT> > > class time_get_byname; > template<typename _CharT, typename _OutIter = ostreambuf_iterator<_CharT> > > class time_put; > template<typename _CharT, typename _OutIter = ostreambuf_iterator<_CharT> > > class time_put_byname; > > > class money_base; > template<typename _CharT, typename _InIter = istreambuf_iterator<_CharT> > > class money_get; > template<typename _CharT, typename _OutIter = ostreambuf_iterator<_CharT> > > class money_put; > template<typename _CharT, bool _Intl = false> > class moneypunct; > template<typename _CharT, bool _Intl = false> > class moneypunct_byname; > > > class messages_base; > template<typename _CharT> > class messages; > template<typename _CharT> > class messages_byname; > > template<typename _Facet> > const _Facet& > use_facet(const locale& __loc); > > template<typename _Facet> > bool > has_facet(const locale& __loc) throw(); >} ># 49 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/ios" 2 3 ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/ios_base.h" 1 3 ># 43 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/ios_base.h" 3 > ># 44 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/ios_base.h" 3 > > > ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/locale_classes.h" 1 3 ># 43 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/locale_classes.h" 3 > ># 44 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/locale_classes.h" 3 > > > > > > >namespace std >{ > class __locale_cache_base; > template<typename _Facet> class __locale_cache; > > > class locale > { > public: > > typedef unsigned int category; > > > class facet; > class id; > class _Impl; > > friend class facet; > friend class _Impl; > > template<typename _Facet> > friend const _Facet& > use_facet(const locale&); > > template<typename _Facet> > friend bool > has_facet(const locale&) throw(); > > template<typename _Facet> > 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<typename _Facet> > locale(const locale& __other, _Facet* __f); > > ~locale() throw(); > > const locale& > operator=(const locale& __other) throw(); > > template<typename _Facet> > 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<typename _Char, typename _Traits, typename _Alloc> > 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<typename _Facet> > friend const _Facet& > use_facet(const locale&); > > template<typename _Facet> > friend bool > has_facet(const locale&) throw(); > > template<typename _Facet> > 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<typename _Facet> > 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<locale::facet*>(__cache); > } > > }; > > template<typename _Facet> > 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<typename _Facet> > friend const _Facet& > use_facet(const locale&); > template<typename _Facet> > 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/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/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<int>(__a) & static_cast<int>(__b)); } > > inline _Ios_Fmtflags > operator|(_Ios_Fmtflags __a, _Ios_Fmtflags __b) > { return _Ios_Fmtflags(static_cast<int>(__a) | static_cast<int>(__b)); } > > inline _Ios_Fmtflags > operator^(_Ios_Fmtflags __a, _Ios_Fmtflags __b) > { return _Ios_Fmtflags(static_cast<int>(__a) ^ static_cast<int>(__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<int>(__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<int>(__a) & static_cast<int>(__b)); } > > inline _Ios_Openmode > operator|(_Ios_Openmode __a, _Ios_Openmode __b) > { return _Ios_Openmode(static_cast<int>(__a) | static_cast<int>(__b)); } > > inline _Ios_Openmode > operator^(_Ios_Openmode __a, _Ios_Openmode __b) > { return _Ios_Openmode(static_cast<int>(__a) ^ static_cast<int>(__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<int>(__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<int>(__a) & static_cast<int>(__b)); } > > inline _Ios_Iostate > operator|(_Ios_Iostate __a, _Ios_Iostate __b) > { return _Ios_Iostate(static_cast<int>(__a) | static_cast<int>(__b)); } > > inline _Ios_Iostate > operator^(_Ios_Iostate __a, _Ios_Iostate __b) > { return _Ios_Iostate(static_cast<int>(__a) ^ static_cast<int>(__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<int>(__a)); } > > enum _Ios_Seekdir { _M_ios_seekdir_end = 1L << 16 }; ># 158 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/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/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/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/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/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/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/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/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/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/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/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/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/ios_base.h" 3 > inline fmtflags > flags(fmtflags __fmtfl) > { > fmtflags __old = _M_flags; > _M_flags = __fmtfl; > return __old; > } ># 497 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/ios_base.h" 3 > inline fmtflags > setf(fmtflags __fmtfl) > { > fmtflags __old = _M_flags; > _M_flags |= __fmtfl; > return __old; > } ># 514 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/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/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/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/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/ios_base.h" 3 > static bool > sync_with_stdio(bool __sync = true); ># 602 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/ios_base.h" 3 > locale > imbue(const locale& __loc); ># 613 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/ios_base.h" 3 > inline locale > getloc() const { return _M_ios_locale; } ># 623 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/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/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/ios" 2 3 ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/streambuf" 1 3 ># 43 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/streambuf" 3 > ># 44 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/streambuf" 3 > > > > > > > >namespace std >{ > > > > > > template<typename _CharT, typename _Traits> > streamsize > __copy_streambufs(basic_ios<_CharT, _Traits>& _ios, > basic_streambuf<_CharT, _Traits>* __sbin, > basic_streambuf<_CharT, _Traits>* __sbout); ># 124 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/streambuf" 3 > template<typename _CharT, typename _Traits> > 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/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/streambuf" 3 > typedef ctype<char_type> __ctype_type; > typedef basic_streambuf<char_type, traits_type> __streambuf_type; > typedef typename traits_type::state_type __state_type; > > > friend class basic_ios<char_type, traits_type>; > friend class basic_istream<char_type, traits_type>; > friend class basic_ostream<char_type, traits_type>; > friend class istreambuf_iterator<char_type, traits_type>; > friend class ostreambuf_iterator<char_type, traits_type>; > > friend streamsize > __copy_streambufs<>(basic_ios<char_type, traits_type>& __ios, > __streambuf_type* __sbin,__streambuf_type* __sbout); > > protected: ># 171 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/streambuf" 3 > char_type* _M_buf; > > > > > > > size_t _M_buf_size; > > > > > > > size_t _M_buf_size_opt; > > > > > > > > bool _M_buf_unified; ># 205 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/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/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/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/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/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/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/streambuf" 3 > locale > pubimbue(const locale &__loc) > { > locale __tmp(this->getloc()); > this->imbue(__loc); > _M_buf_locale = __loc; > return __tmp; > } ># 394 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/streambuf" 3 > locale > getloc() const > { return _M_buf_locale; } ># 407 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/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/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/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/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/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/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/streambuf" 3 > int_type > sbumpc(); ># 488 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/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/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/streambuf" 3 > streamsize > sgetn(char_type* __s, streamsize __n) > { return this->xsgetn(__s, __n); } ># 521 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/streambuf" 3 > int_type > sputbackc(char_type __c); ># 533 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/streambuf" 3 > int_type > sungetc(); ># 549 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/streambuf" 3 > int_type > sputc(char_type __c); ># 563 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/streambuf" 3 > streamsize > sputn(const char_type* __s, streamsize __n) > { return this->xsputn(__s, __n); } > > protected: ># 577 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/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/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/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/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/streambuf" 3 > void > gbump(int __n) { _M_in_cur += __n; } ># 625 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/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/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/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/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/streambuf" 3 > void > pbump(int __n) { _M_out_cur += __n; } ># 673 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/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/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/streambuf" 3 > virtual void > imbue(const locale&) > { } ># 711 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/streambuf" 3 > virtual basic_streambuf<char_type,_Traits>* > setbuf(char_type*, streamsize) > { return this; } ># 722 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/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/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/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/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/streambuf" 3 > virtual int > sync() { return 0; } ># 769 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/streambuf" 3 > virtual streamsize > showmanyc() { return 0; } ># 785 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/streambuf" 3 > virtual streamsize > xsgetn(char_type* __s, streamsize __n); ># 807 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/streambuf" 3 > virtual int_type > underflow() > { return traits_type::eof(); } ># 820 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/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/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/streambuf" 3 > virtual int_type > pbackfail(int_type = traits_type::eof()) > { return traits_type::eof(); } ># 864 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/streambuf" 3 > virtual streamsize > xsputn(const char_type* __s, streamsize __n); ># 889 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/streambuf" 3 > virtual int_type > overflow(int_type = traits_type::eof()) > { return traits_type::eof(); } ># 920 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/streambuf" 3 > private: > basic_streambuf(const __streambuf_type&) { }; > > __streambuf_type& > operator=(const __streambuf_type&) { return *this; }; > > }; >} > > > > > ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/streambuf.tcc" 1 3 ># 38 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/streambuf.tcc" 3 > ># 39 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/streambuf.tcc" 3 > >namespace std >{ > template<typename _CharT, typename _Traits> > const size_t > basic_streambuf<_CharT, _Traits>::_S_pback_size; > > template<typename _CharT, typename _Traits> > 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 _CharT, typename _Traits> > 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 _CharT, typename _Traits> > 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 _CharT, typename _Traits> > 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<typename _CharT, typename _Traits> > 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<typename _CharT, typename _Traits> > 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<typename _CharT, typename _Traits> > 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<char>; > extern template > streamsize > __copy_streambufs(basic_ios<char>&, basic_streambuf<char>*, > basic_streambuf<char>*); > > > extern template class basic_streambuf<wchar_t>; > extern template > streamsize > __copy_streambufs(basic_ios<wchar_t>&, basic_streambuf<wchar_t>*, > basic_streambuf<wchar_t>*); > > >} ># 934 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/streambuf" 2 3 ># 51 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/ios" 2 3 ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/basic_ios.h" 1 3 ># 39 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/basic_ios.h" 3 > ># 40 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/basic_ios.h" 3 > ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/streambuf_iterator.h" 1 3 ># 39 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/streambuf_iterator.h" 3 > ># 40 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/streambuf_iterator.h" 3 > > > > > >namespace std >{ > > template<typename _CharT, typename _Traits> > class istreambuf_iterator > : public iterator<input_iterator_tag, _CharT, typename _Traits::off_type, > _CharT*, _CharT&> > { > 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<typename _CharT, typename _Traits> > inline bool > operator==(const istreambuf_iterator<_CharT, _Traits>& __a, > const istreambuf_iterator<_CharT, _Traits>& __b) > { return __a.equal(__b); } > > template<typename _CharT, typename _Traits> > inline bool > operator!=(const istreambuf_iterator<_CharT, _Traits>& __a, > const istreambuf_iterator<_CharT, _Traits>& __b) > { return !__a.equal(__b); } > > template<typename _CharT, typename _Traits> > class ostreambuf_iterator > : public iterator<output_iterator_tag, void, void, void, void> > { > 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/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/basic_ios.h" 2 3 > > ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/locale_facets.h" 1 3 ># 43 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/locale_facets.h" 3 > ># 44 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/locale_facets.h" 3 > > ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/cwctype" 1 3 ># 47 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/cwctype" 3 > ># 48 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/cwctype" 3 > > > > ># 1 "/usr/include/wctype.h" 1 3 4 ># 35 "/usr/include/wctype.h" 3 4 ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/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/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/cwctype" 2 3 ># 77 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/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/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/locale_facets.h" 2 3 > > > > >namespace std >{ ># 63 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/locale_facets.h" 3 > template<typename _Tv> > 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<typename _CharT, typename _Traits> > 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/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/locale_facets.h" 3 > template<typename _CharT> > bool > __verify_grouping(const basic_string<_CharT>& __grouping, > basic_string<_CharT>& __grouping_tmp); > > > > > > > template<typename _CharT> > _CharT* > __add_grouping(_CharT* __s, _CharT __sep, > const char* __gbeg, const char* __gend, > const _CharT* __first, const _CharT* __last); > > > > > template<typename _CharT> > inline > ostreambuf_iterator<_CharT> > __write(ostreambuf_iterator<_CharT> __s, const _CharT* __ws, int __len) > { > __s._M_put(__ws, __len); > return __s; > } > > > template<typename _CharT, typename _OutIter> > 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/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/i686-pc-linux-gnu/bits/ctype_base.h" 1 3 ># 36 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/i686-pc-linux-gnu/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/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/locale_facets.h" 2 3 > > > template<typename _CharT> > 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<typename _CharT> > 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<typename _CharT> > locale::id ctype<_CharT>::id; > > > template<> > class ctype<char> : public __ctype_abstract_base<char> > { > 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<unsigned char>(-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<char>& > use_facet<ctype<char> >(const locale& __loc); > > > > template<> > class ctype<wchar_t> : public __ctype_abstract_base<wchar_t> > { > 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<wchar_t>& > use_facet<ctype<wchar_t> >(const locale& __loc); > > > ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/i686-pc-linux-gnu/bits/ctype_inline.h" 1 3 ># 37 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/i686-pc-linux-gnu/bits/ctype_inline.h" 3 > bool > ctype<char>:: > is(mask __m, char __c) const > { return _M_table[static_cast<unsigned char>(__c)] & __m; } > > const char* > ctype<char>:: > is(const char* __low, const char* __high, mask* __vec) const > { > while (__low < __high) > *__vec++ = _M_table[static_cast<unsigned char>(*__low++)]; > return __high; > } > > const char* > ctype<char>:: > scan_is(mask __m, const char* __low, const char* __high) const > { > while (__low < __high > && !(_M_table[static_cast<unsigned char>(*__low)] & __m)) > ++__low; > return __low; > } > > const char* > ctype<char>:: > scan_not(mask __m, const char* __low, const char* __high) const > { > while (__low < __high > && (_M_table[static_cast<unsigned char>(*__low)] & __m) != 0) > ++__low; > return __low; > } ># 504 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/locale_facets.h" 2 3 > > > template<typename _CharT> > 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<char>::ctype_byname(const char*, size_t refs); > > template<> > ctype_byname<wchar_t>::ctype_byname(const char*, size_t refs); > > ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/codecvt.h" 1 3 ># 44 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/codecvt.h" 3 > ># 45 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/codecvt.h" 3 > > > class codecvt_base > { > public: > enum result > { > ok, > partial, > error, > noconv > }; > }; > > > > > > template<typename _InternT, typename _ExternT, typename _StateT> > 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<typename _InternT, typename _ExternT, typename _StateT> > 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<typename _InternT, typename _ExternT, typename _StateT> > locale::id codecvt<_InternT, _ExternT, _StateT>::id; > > > template<> > class codecvt<char, char, mbstate_t> > : public __codecvt_abstract_base<char, char, mbstate_t> > { > 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<wchar_t, char, mbstate_t> > : public __codecvt_abstract_base<wchar_t, char, mbstate_t> > { > 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<typename _InternT, typename _ExternT, typename _StateT> > 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/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/i686-pc-linux-gnu/bits/codecvt_specializations.h" 1 3 ># 46 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/i686-pc-linux-gnu/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<iconv_t>(-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<iconv_t>(-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<iconv_t>(-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<typename _InternT, typename _ExternT> > 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<intern_type, extern_type, state_type>(__refs) > { } > > explicit > codecvt(__enc_type* __enc, size_t __refs = 0) > : __codecvt_abstract_base<intern_type, extern_type, state_type>(__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<typename _InternT, typename _ExternT> > locale::id > codecvt<_InternT, _ExternT, __enc_traits>::id; > > > > > > template<typename _T> > 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<typename _InternT, typename _ExternT> > 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<char*>(__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<intern_type*>(__builtin_alloca(sizeof(intern_type) * (__size + 1))); > __cfixed[0] = static_cast<intern_type>(__int_bom); > char_traits<intern_type>::copy(__cfixed + 1, __from, __size); > __cfrom = reinterpret_cast<char*>(__cfixed); > __conv = __iconv_adaptor(iconv, *__desc, &__cfrom, > &__fbytes, &__cto, &__tbytes); > } > else > { > intern_type* __cfixed = const_cast<intern_type*>(__from); > __cfrom = reinterpret_cast<char*>(__cfixed); > __conv = __iconv_adaptor(iconv, *__desc, &__cfrom, &__fbytes, > &__cto, &__tbytes); > } > > if (__conv != size_t(-1)) > { > __from_next = reinterpret_cast<const intern_type*>(__cfrom); > __to_next = reinterpret_cast<extern_type*>(__cto); > __ret = codecvt_base::ok; > } > else > { > if (__fbytes < __fmultiple * (__from_end - __from)) > { > __from_next = reinterpret_cast<const intern_type*>(__cfrom); > __to_next = reinterpret_cast<extern_type*>(__cto); > __ret = codecvt_base::partial; > } > else > __ret = codecvt_base::error; > } > } > return __ret; > } > > template<typename _InternT, typename _ExternT> > 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<char*>(__to); > size_t __conv = __iconv_adaptor(iconv,*__desc, __null, __null, > &__cto, &__tlen); > > if (__conv != size_t(-1)) > { > __to_next = reinterpret_cast<extern_type*>(__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<typename _InternT, typename _ExternT> > 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<char*>(__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<extern_type*>(__builtin_alloca(sizeof(extern_type) * (__size + 1))); > __cfixed[0] = static_cast<extern_type>(__ext_bom); > char_traits<extern_type>::copy(__cfixed + 1, __from, __size); > __cfrom = reinterpret_cast<char*>(__cfixed); > __conv = __iconv_adaptor(iconv, *__desc, &__cfrom, > &__flen, &__cto, &__tlen); > } > else > { > extern_type* __cfixed = const_cast<extern_type*>(__from); > __cfrom = reinterpret_cast<char*>(__cfixed); > __conv = __iconv_adaptor(iconv, *__desc, &__cfrom, > &__flen, &__cto, &__tlen); > } > > > if (__conv != size_t(-1)) > { > __from_next = reinterpret_cast<const extern_type*>(__cfrom); > __to_next = reinterpret_cast<intern_type*>(__cto); > __ret = codecvt_base::ok; > } > else > { > if (__flen < static_cast<size_t>(__from_end - __from)) > { > __from_next = reinterpret_cast<const extern_type*>(__cfrom); > __to_next = reinterpret_cast<intern_type*>(__cto); > __ret = codecvt_base::partial; > } > else > __ret = codecvt_base::error; > } > } > return __ret; > } > > template<typename _InternT, typename _ExternT> > 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<typename _InternT, typename _ExternT> > bool > codecvt<_InternT, _ExternT, __enc_traits>:: > do_always_noconv() const throw() > { return false; } > > template<typename _InternT, typename _ExternT> > 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<size_t>(__end - __from)); } > > > > template<typename _InternT, typename _ExternT> > int > codecvt<_InternT, _ExternT, __enc_traits>:: > do_max_length() const throw() > { return 1; } ># 335 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/codecvt.h" 2 3 ># 529 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/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<typename _CharT> > class __locale_cache; > > template<typename _CharT> > class numpunct : public locale::facet > { > public: > > typedef _CharT char_type; > typedef basic_string<_CharT> string_type; > > friend class __locale_cache<numpunct<_CharT> >; > > 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<typename _CharT> > locale::id numpunct<_CharT>::id; > > template<> > numpunct<char>::~numpunct(); > > template<> > void > numpunct<char>::_M_initialize_numpunct(__c_locale __cloc); > > > template<> > numpunct<wchar_t>::~numpunct(); > > template<> > void > numpunct<wchar_t>::_M_initialize_numpunct(__c_locale __cloc); > > > template<typename _CharT> > 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<typename _CharT, typename _InIter> > 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<typename _CharT, typename _InIter> > locale::id num_get<_CharT, _InIter>::id; ># 853 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/locale_facets.h" 3 > template<typename _CharT, typename _OutIter> > 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<typename _ValueT> > 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<typename _ValueT> > 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<typename _ValueT> > 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 <typename _CharT, typename _OutIter> > locale::id num_put<_CharT, _OutIter>::id; > > > template<typename _CharT> > 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<typename _CharT> > locale::id collate<_CharT>::id; > > > template<> > int > collate<char>::_M_compare(const char*, const char*) const; > > template<> > size_t > collate<char>::_M_transform(char*, const char*, size_t) const; > > > template<> > int > collate<wchar_t>::_M_compare(const wchar_t*, const wchar_t*) const; > > template<> > size_t > collate<wchar_t>::_M_transform(wchar_t*, const wchar_t*, size_t) const; > > > template<typename _CharT> > 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<typename _CharT> > 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<typename _CharT> > locale::id __timepunct<_CharT>::id; > > > template<> > const char* > __timepunct<char>::_S_timezones[14]; > > template<> > void > __timepunct<char>::_M_initialize_timepunct(__c_locale __cloc); > > template<> > void > __timepunct<char>::_M_put(char*, size_t, const char*, const tm*) const; > > > template<> > const wchar_t* > __timepunct<wchar_t>::_S_timezones[14]; > > template<> > void > __timepunct<wchar_t>::_M_initialize_timepunct(__c_locale __cloc); > > template<> > void > __timepunct<wchar_t>::_M_put(wchar_t*, size_t, const wchar_t*, > const tm*) const; > > > > template<typename _CharT> > const _CharT* __timepunct<_CharT>::_S_timezones[14]; > > ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/i686-pc-linux-gnu/bits/time_members.h" 1 3 ># 37 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/i686-pc-linux-gnu/bits/time_members.h" 3 > template<typename _CharT> > __timepunct<_CharT>::__timepunct(size_t __refs) > : locale::facet(__refs) > { > > > > _M_initialize_timepunct(); > } > > template<typename _CharT> > __timepunct<_CharT>::__timepunct(__c_locale __cloc, > const char* __s, > size_t __refs) > : locale::facet(__refs) > { > > > > > _M_initialize_timepunct(__cloc); > } > > template<typename _CharT> > __timepunct<_CharT>::~__timepunct() > { > > > > > _S_destroy_c_locale(_M_c_locale_timepunct); > } ># 1311 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/locale_facets.h" 2 3 > > template<typename _CharT, typename _InIter> > 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<typename _CharT, typename _InIter> > locale::id time_get<_CharT, _InIter>::id; > > template<typename _CharT, typename _InIter> > 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<typename _CharT, typename _OutIter> > 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<typename _CharT, typename _OutIter> > locale::id time_put<_CharT, _OutIter>::id; > > template<typename _CharT, typename _OutIter> > 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<typename _CharT, bool _Intl> > 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<typename _CharT, bool _Intl> > locale::id moneypunct<_CharT, _Intl>::id; > > template<typename _CharT, bool _Intl> > const bool moneypunct<_CharT, _Intl>::intl; > > template<> > moneypunct<char, true>::~moneypunct(); > > template<> > moneypunct<char, false>::~moneypunct(); > > template<> > void > moneypunct<char, true>::_M_initialize_moneypunct(__c_locale, const char*); > > template<> > void > moneypunct<char, false>::_M_initialize_moneypunct(__c_locale, const char*); > > > template<> > moneypunct<wchar_t, true>::~moneypunct(); > > template<> > moneypunct<wchar_t, false>::~moneypunct(); > > template<> > void > moneypunct<wchar_t, true>::_M_initialize_moneypunct(__c_locale, > const char*); > > template<> > void > moneypunct<wchar_t, false>::_M_initialize_moneypunct(__c_locale, > const char*); > > > template<typename _CharT, bool _Intl> > 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<typename _CharT, bool _Intl> > const bool moneypunct_byname<_CharT, _Intl>::intl; > > template<typename _CharT, typename _InIter> > 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<typename _CharT, typename _InIter> > locale::id money_get<_CharT, _InIter>::id; > > template<typename _CharT, typename _OutIter> > 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<typename _CharT, typename _OutIter> > locale::id money_put<_CharT, _OutIter>::id; > > > struct messages_base > { > typedef int catalog; > }; > > template<typename _CharT> > 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<char>& __s, const locale& __loc) const > { return this->do_open(__s, __loc); } > > > catalog > open(const basic_string<char>&, 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<char>&, 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<char*>(const_cast<_CharT*>(__msg.c_str())); > } > > > string_type > _M_convert_from_char(char* __msg) const > { > > size_t __len = char_traits<char>::length(__msg) - 1; ># 1856 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/locale_facets.h" 3 > return string_type(); > } > }; > > template<typename _CharT> > locale::id messages<_CharT>::id; > > > template<> > string > messages<char>::do_get(catalog, int, int, const string&) const; > > > template<> > wstring > messages<wchar_t>::do_get(catalog, int, int, const wstring&) const; > > > template<typename _CharT> > 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/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/i686-pc-linux-gnu/bits/messages_members.h" 1 3 ># 37 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/i686-pc-linux-gnu/bits/messages_members.h" 3 > template<typename _CharT> > messages<_CharT>::messages(size_t __refs) > : locale::facet(__refs) > { > > > > _M_c_locale_messages = _S_c_locale; > } > > template<typename _CharT> > 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 _CharT> > typename messages<_CharT>::catalog > messages<_CharT>::open(const basic_string<char>& __s, const locale& __loc, > const char* __dir) const > { > bindtextdomain(__s.c_str(), __dir); > return this->do_open(__s, __loc); > } > > > template<typename _CharT> > messages<_CharT>::~messages() > { > > > > > _S_destroy_c_locale(_M_c_locale_messages); > } > > template<typename _CharT> > typename messages<_CharT>::catalog > messages<_CharT>::do_open(const basic_string<char>& __s, > const locale&) const > { > > > textdomain(__s.c_str()); > return 0; > } > > template<typename _CharT> > void > messages<_CharT>::do_close(catalog) const > { } > > > template<typename _CharT> > 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/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/locale_facets.h" 2 3 > > > > > > > template<typename _CharT> > inline bool > isspace(_CharT __c, const locale& __loc) > { return use_facet<ctype<_CharT> >(__loc).is(ctype_base::space, __c); } > > template<typename _CharT> > inline bool > isprint(_CharT __c, const locale& __loc) > { return use_facet<ctype<_CharT> >(__loc).is(ctype_base::print, __c); } > > template<typename _CharT> > inline bool > iscntrl(_CharT __c, const locale& __loc) > { return use_facet<ctype<_CharT> >(__loc).is(ctype_base::cntrl, __c); } > > template<typename _CharT> > inline bool > isupper(_CharT __c, const locale& __loc) > { return use_facet<ctype<_CharT> >(__loc).is(ctype_base::upper, __c); } > > template<typename _CharT> > inline bool islower(_CharT __c, const locale& __loc) > { return use_facet<ctype<_CharT> >(__loc).is(ctype_base::lower, __c); } > > template<typename _CharT> > inline bool > isalpha(_CharT __c, const locale& __loc) > { return use_facet<ctype<_CharT> >(__loc).is(ctype_base::alpha, __c); } > > template<typename _CharT> > inline bool > isdigit(_CharT __c, const locale& __loc) > { return use_facet<ctype<_CharT> >(__loc).is(ctype_base::digit, __c); } > > template<typename _CharT> > inline bool > ispunct(_CharT __c, const locale& __loc) > { return use_facet<ctype<_CharT> >(__loc).is(ctype_base::punct, __c); } > > template<typename _CharT> > inline bool > isxdigit(_CharT __c, const locale& __loc) > { return use_facet<ctype<_CharT> >(__loc).is(ctype_base::xdigit, __c); } > > template<typename _CharT> > inline bool > isalnum(_CharT __c, const locale& __loc) > { return use_facet<ctype<_CharT> >(__loc).is(ctype_base::alnum, __c); } > > template<typename _CharT> > inline bool > isgraph(_CharT __c, const locale& __loc) > { return use_facet<ctype<_CharT> >(__loc).is(ctype_base::graph, __c); } > > template<typename _CharT> > inline _CharT > toupper(_CharT __c, const locale& __loc) > { return use_facet<ctype<_CharT> >(__loc).toupper(__c); } > > template<typename _CharT> > inline _CharT > tolower(_CharT __c, const locale& __loc) > { return use_facet<ctype<_CharT> >(__loc).tolower(__c); } ># 1973 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/locale_facets.h" 3 > class __locale_cache_base > { > friend class std::locale::_Impl; > friend class locale; > > public: > virtual > ~__locale_cache_base() { } > > }; > > > > template<typename _Facet> > class __locale_cache : public __locale_cache_base > { > > __locale_cache(const locale&) {} > }; > > template<typename _CharT> > class __locale_cache<numpunct<_CharT> > : 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/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/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/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/basic_ios.h" 2 3 > >namespace std >{ > > > > > > > > template<typename _CharT, typename _Traits> > 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/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/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<basic_ios*>(this); } > > bool > operator!() const > { return this->fail(); } ># 124 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/basic_ios.h" 3 > iostate > rdstate() const > { return _M_streambuf_state; } ># 135 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/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/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/basic_ios.h" 3 > bool > fail() const > { return (this->rdstate() & (badbit | failbit)) != 0; } > > > > > > > > bool > bad() const > { return (this->rdstate() & badbit) != 0; } ># 209 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/basic_ios.h" 3 > iostate > exceptions() const > { return _M_exception; } ># 244 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/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/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/basic_ios.h" 3 > basic_ostream<_CharT, _Traits>* > tie() const > { return _M_tie; } ># 293 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/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/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/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/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/basic_ios.h" 3 > char_type > fill(char_type __ch) > { > char_type __old = this->fill(); > _M_fill = __ch; > return __old; > } ># 381 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/basic_ios.h" 3 > locale > imbue(const locale& __loc); ># 401 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/basic_ios.h" 3 > char > narrow(char_type __c, char __dfault) const; ># 419 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/basic_ios.h" 3 > char_type > widen(char __c) const; > > protected: > > > > > > > > basic_ios() : ios_base() > { } ># 441 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/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/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/basic_ios.tcc" 1 3 ># 33 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/basic_ios.tcc" 3 > ># 34 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/basic_ios.tcc" 3 > >namespace std >{ > template<typename _CharT, typename _Traits> > 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<typename _CharT, typename _Traits> > 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<typename _CharT, typename _Traits> > 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<typename _CharT, typename _Traits> > 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<typename _CharT, typename _Traits> > _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<typename _CharT, typename _Traits> > 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<typename _CharT, typename _Traits> > 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/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/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<typename _CharT, typename _Traits> > 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<typename _CharT, typename _Traits> > 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<char>; > > > extern template class basic_ios<wchar_t>; > > >} ># 466 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/basic_ios.h" 2 3 ># 52 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/ios" 2 3 ># 46 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/ostream" 2 3 > >namespace std >{ ># 57 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/ostream" 3 > template<typename _CharT, typename _Traits> > 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<typename _CharT2, typename _Traits2> > friend basic_ostream<_CharT2, _Traits2>& > operator<<(basic_ostream<_CharT2, _Traits2>&, _CharT2); > > template<typename _Traits2> > friend basic_ostream<char, _Traits2>& > operator<<(basic_ostream<char, _Traits2>&, char); > > template<typename _CharT2, typename _Traits2> > friend basic_ostream<_CharT2, _Traits2>& > operator<<(basic_ostream<_CharT2, _Traits2>&, const _CharT2*); > > template<typename _Traits2> > friend basic_ostream<char, _Traits2>& > operator<<(basic_ostream<char, _Traits2>&, const char*); > > template<typename _CharT2, typename _Traits2> > friend basic_ostream<_CharT2, _Traits2>& > operator<<(basic_ostream<_CharT2, _Traits2>&, const char*); ># 104 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/ostream" 3 > explicit > basic_ostream(__streambuf_type* __sb) > { this->init(__sb); } > > > > > > > virtual > ~basic_ostream() { } > > > class sentry; > friend class sentry; ># 130 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/ostream" 3 > __ostream_type& > operator<<(__ostream_type& (*__pf)(__ostream_type&)); > > __ostream_type& > operator<<(__ios_type& (*__pf)(__ios_type&)); > > __ostream_type& > operator<<(ios_base& (*__pf) (ios_base&)); ># 167 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/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<unsigned long> > (static_cast<unsigned short>(__n))); > else > return this->operator<<(static_cast<long>(__n)); > } > > __ostream_type& > operator<<(unsigned short __n) > { return this->operator<<(static_cast<unsigned long>(__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<unsigned long> > (static_cast<unsigned int>(__n))); > else > return this->operator<<(static_cast<long>(__n)); > } > > __ostream_type& > operator<<(unsigned int __n) > { return this->operator<<(static_cast<unsigned long>(__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<double>(__f)); } > > __ostream_type& > operator<<(long double __f); > > __ostream_type& > operator<<(const void* __p); ># 248 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/ostream" 3 > __ostream_type& > operator<<(__streambuf_type* __sb); ># 281 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/ostream" 3 > __ostream_type& > put(char_type __c); ># 300 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/ostream" 3 > __ostream_type& > write(const char_type* __s, streamsize __n); ># 313 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/ostream" 3 > __ostream_type& > flush(); ># 324 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/ostream" 3 > pos_type > tellp(); ># 335 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/ostream" 3 > __ostream_type& > seekp(pos_type); ># 347 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/ostream" 3 > __ostream_type& > seekp(off_type, ios_base::seekdir); > }; ># 361 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/ostream" 3 > template <typename _CharT, typename _Traits> > class basic_ostream<_CharT, _Traits>::sentry > { > > bool _M_ok; > basic_ostream<_CharT,_Traits>& _M_os; > > public: ># 380 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/ostream" 3 > explicit > sentry(basic_ostream<_CharT,_Traits>& __os); ># 390 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/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/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/ostream" 3 > operator bool() > { return _M_ok; } > }; ># 429 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/ostream" 3 > template<typename _CharT, typename _Traits> > basic_ostream<_CharT, _Traits>& > operator<<(basic_ostream<_CharT, _Traits>& __out, _CharT __c); > > template<typename _CharT, typename _Traits> > basic_ostream<_CharT, _Traits>& > operator<<(basic_ostream<_CharT, _Traits>& __out, char __c) > { return (__out << __out.widen(__c)); } > > > template <class _Traits> > basic_ostream<char, _Traits>& > operator<<(basic_ostream<char, _Traits>& __out, char __c); > > > template<class _Traits> > basic_ostream<char, _Traits>& > operator<<(basic_ostream<char, _Traits>& __out, signed char __c) > { return (__out << static_cast<char>(__c)); } > > template<class _Traits> > basic_ostream<char, _Traits>& > operator<<(basic_ostream<char, _Traits>& __out, unsigned char __c) > { return (__out << static_cast<char>(__c)); } ># 469 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/ostream" 3 > template<typename _CharT, typename _Traits> > basic_ostream<_CharT, _Traits>& > operator<<(basic_ostream<_CharT, _Traits>& __out, const _CharT* __s); > > template<typename _CharT, typename _Traits> > basic_ostream<_CharT, _Traits> & > operator<<(basic_ostream<_CharT, _Traits>& __out, const char* __s); > > > template<class _Traits> > basic_ostream<char, _Traits>& > operator<<(basic_ostream<char, _Traits>& __out, const char* __s); > > > template<class _Traits> > basic_ostream<char, _Traits>& > operator<<(basic_ostream<char, _Traits>& __out, const signed char* __s) > { return (__out << reinterpret_cast<const char*>(__s)); } > > template<class _Traits> > basic_ostream<char, _Traits> & > operator<<(basic_ostream<char, _Traits>& __out, const unsigned char* __s) > { return (__out << reinterpret_cast<const char*>(__s)); } ># 503 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/ostream" 3 > template<typename _CharT, typename _Traits> > basic_ostream<_CharT, _Traits>& > endl(basic_ostream<_CharT, _Traits>& __os) > { return flush(__os.put(__os.widen('\n'))); } > > > > > > > > template<typename _CharT, typename _Traits> > basic_ostream<_CharT, _Traits>& > ends(basic_ostream<_CharT, _Traits>& __os) > { return __os.put(_CharT()); } > > > > > > > template<typename _CharT, typename _Traits> > basic_ostream<_CharT, _Traits>& > flush(basic_ostream<_CharT, _Traits>& __os) > { return __os.flush(); } > >} > > > > > ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/ostream.tcc" 1 3 ># 35 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/ostream.tcc" 3 > ># 36 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/ostream.tcc" 3 > ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/locale" 1 3 ># 42 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/locale" 3 > ># 43 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/locale" 3 > > > > ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/locale_facets.tcc" 1 3 ># 36 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/locale_facets.tcc" 3 > ># 37 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/locale_facets.tcc" 3 > ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/cerrno" 1 3 ># 46 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/cerrno" 3 > ># 47 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/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/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/cerrno" 2 3 ># 39 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/locale_facets.tcc" 2 3 > > > > ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/limits" 1 3 ># 46 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/limits" 3 > ># 47 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/limits" 3 ># 150 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/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<typename _Tp> > 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<bool> > { > 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<char> > { > 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<char>(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<signed char> > { > 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<signed char>(0); } > static signed char quiet_NaN() throw() > { return static_cast<signed char>(0); } > static signed char signaling_NaN() throw() > { return static_cast<signed char>(0); } > static signed char denorm_min() throw() > { return static_cast<signed char>(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<unsigned char> > { > 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<unsigned char>(0); } > static unsigned char quiet_NaN() throw() > { return static_cast<unsigned char>(0); } > static unsigned char signaling_NaN() throw() > { return static_cast<unsigned char>(0); } > static unsigned char denorm_min() throw() > { return static_cast<unsigned char>(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<wchar_t> > { > 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<short> > { > 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<unsigned short> > { > 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<unsigned short>(0); } > static unsigned short quiet_NaN() throw() > { return static_cast<unsigned short>(0); } > static unsigned short signaling_NaN() throw() > { return static_cast<unsigned short>(0); } > static unsigned short denorm_min() throw() > { return static_cast<unsigned short>(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<int> > { > 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<int>(0); } > static int quiet_NaN() throw() > { return static_cast<int>(0); } > static int signaling_NaN() throw() > { return static_cast<int>(0); } > static int denorm_min() throw() > { return static_cast<int>(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<unsigned int> > { > 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<unsigned int>(0); } > static unsigned int quiet_NaN() throw() > { return static_cast<unsigned int>(0); } > static unsigned int signaling_NaN() throw() > { return static_cast<unsigned int>(0); } > static unsigned int denorm_min() throw() > { return static_cast<unsigned int>(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<long> > { > 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<long>(0); } > static long quiet_NaN() throw() > { return static_cast<long>(0); } > static long signaling_NaN() throw() > { return static_cast<long>(0); } > static long denorm_min() throw() > { return static_cast<long>(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<unsigned long> > { > 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<unsigned long>(0); } > static unsigned long quiet_NaN() throw() > { return static_cast<unsigned long>(0); } > static unsigned long signaling_NaN() throw() > { return static_cast<unsigned long>(0); } > static unsigned long denorm_min() throw() > { return static_cast<unsigned long>(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<long long> > { > 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<long long>(0); } > static long long quiet_NaN() throw() > { return static_cast<long long>(0); } > static long long signaling_NaN() throw() > { return static_cast<long long>(0); } > static long long denorm_min() throw() > { return static_cast<long long>(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<unsigned long long> > { > 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<unsigned long long>(0); } > static unsigned long long quiet_NaN() throw() > { return static_cast<unsigned long long>(0); } > static unsigned long long signaling_NaN() throw() > { return static_cast<unsigned long long>(0); } > static unsigned long long denorm_min() throw() > { return static_cast<unsigned long long>(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<float> > { > 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<double> > { > 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<long double> > { > 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; > }; > > > > > >} ># 44 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/locale_facets.tcc" 2 3 ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/typeinfo" 1 3 ># 40 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/typeinfo" 3 >extern "C++" { > >namespace __cxxabiv1 >{ > class __class_type_info; >} ># 55 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/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/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/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(); > }; >} > >} ># 45 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/locale_facets.tcc" 2 3 > > >namespace std >{ > template<typename _Facet> > 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<typename _CharT, typename _Traits, typename _Alloc> > 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<typename _Facet> > 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<const _Facet&>(*__facets[__i]); > } > > template<typename _Facet> > 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<typename _Facet> > 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<const __locale_cache<_Facet>&>(*__cache); > } > > > template<typename _CharT, typename _InIter> > _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<ctype<_CharT> >(__loc); > const numpunct<_CharT>& __np = use_facet<numpunct<_CharT> >(__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(); > bool __check_grouping = __grouping.size(); > 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 && !__traits_type::eq(__c, char_type())) > { > > ++__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<char>(__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<char>(__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<char>(__sep_pos); > if (!__verify_grouping(__grouping, __found_grouping)) > __err |= ios_base::failbit; > } > > > __xtrc += char(); > if (__beg == __end) > __err |= ios_base::eofbit; > return __beg; > } > > > template<typename _CharT, typename _InIter> > _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<ctype<_CharT> >(__loc); > const numpunct<_CharT>& __np = use_facet<numpunct<_CharT> >(__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(); > bool __check_grouping = __grouping.size(); > 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 && !__traits_type::eq(__c, char_type())) > { > > __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<char>(__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<char>(__sep_pos); > if (!__verify_grouping(__grouping, __found_grouping)) > __err |= ios_base::failbit; > } > > > __xtrc += char(); > if (__beg == __end) > __err |= ios_base::eofbit; > return __beg; > } > > > > template<typename _CharT, typename _InIter> > _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<numpunct<_CharT> >(__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<typename _CharT, typename _InIter> > _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; > 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<typename _CharT, typename _InIter> > _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; > 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<unsigned short>::max()) > __v = static_cast<unsigned short>(__ul); > else > __err |= ios_base::failbit; > return __beg; > } > > template<typename _CharT, typename _InIter> > _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; > 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<unsigned int>::max()) > __v = static_cast<unsigned int>(__ul); > else > __err |= ios_base::failbit; > return __beg; > } > > template<typename _CharT, typename _InIter> > _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; > 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<typename _CharT, typename _InIter> > _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; > 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<typename _CharT, typename _InIter> > _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; > 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<typename _CharT, typename _InIter> > _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<typename _CharT, typename _InIter> > _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<typename _CharT, typename _InIter> > _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<typename _CharT, typename _InIter> > _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(); > fmtflags __fmtmask = ~(ios_base::showpos | ios_base::basefield > | ios_base::uppercase | ios_base::internal); > __io.flags(__fmt & __fmtmask | (ios_base::hex | ios_base::showbase)); > > string __xtrc; > 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<void*>(__ul); > else > __err |= ios_base::failbit; > return __beg; > } > > > > template<typename _CharT, typename _OutIter> > 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<int>(__w); > } > > > template<typename _CharT> > inline int > __int_to_char(_CharT* __out, const int __size, long __v, > const _CharT* __lit, ios_base::fmtflags __flags) > { > unsigned long __ul = static_cast<unsigned long>(__v); > bool __neg = false; > if (__v < 0) > { > __ul = -__ul; > __neg = true; > } > return __int_to_char(__out, __size, __ul, __lit, __flags, __neg); > } > > template<typename _CharT> > 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, false); } > > > template<typename _CharT> > 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<unsigned long long>(__v); > bool __neg = false; > if (__v < 0) > { > __ull = -__ull; > __neg = true; > } > return __int_to_char(__out, __size, __ull, __lit, __flags, __neg); > } > > template<typename _CharT> > 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, false); } > > > template<typename _CharT, typename _ValueT> > 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<typename _CharT, typename _OutIter> > 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<typename _CharT, typename _OutIter> > template<typename _ValueT> > _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<numpunct<_CharT> > __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<streamsize>(__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<typename _CharT, typename _OutIter> > 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; > > } ># 880 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/locale_facets.tcc" 3 > template<typename _CharT, typename _OutIter> > template<typename _ValueT> > _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<streamsize>(0)) > __prec = static_cast<streamsize>(6); > > const int __max_digits = numeric_limits<_ValueT>::digits10; > > typedef numpunct<_CharT> __facet_type; > typedef __locale_cache<numpunct<_CharT> > __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<char*>(__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<char*>(__builtin_alloca(__cs_size)); > __len = __convert_from_v(__cs, __cs_size, __fbuf, __v, > _S_c_locale, __prec); > } ># 942 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/locale_facets.tcc" 3 > const ctype<_CharT>& __ctype = use_facet<ctype<_CharT> >(__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<streamsize>(__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<typename _CharT, typename _OutIter> > _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<numpunct<_CharT> > __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<streamsize>(__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<typename _CharT, typename _OutIter> > _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<typename _CharT, typename _OutIter> > _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<typename _CharT, typename _OutIter> > _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<typename _CharT, typename _OutIter> > _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<typename _CharT, typename _OutIter> > _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<typename _CharT, typename _OutIter> > _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<typename _CharT, typename _OutIter> > _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<unsigned long>(__v)); > __io.flags(__flags); > } > catch (...) > { > __io.flags(__flags); > throw; > } > return __s; > } > > > template<typename _CharT, typename _InIter> > _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<char*>(__builtin_alloca(__cs_size)); > const locale __loc = __io.getloc(); > const ctype<_CharT>& __ctype = use_facet<ctype<_CharT> >(__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<typename _CharT, typename _InIter> > _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<ctype<_CharT> >(__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; > > char_type __c = *__beg; > char_type __eof = static_cast<char_type>(char_traits<char_type>::eof()); > for (int __i = 0; __beg != __end && __i < 4 && __testvalid; ++__i) > { > part __which = static_cast<part>(__p.field[__i]); > switch (__which) > { > case money_base::symbol: > if (__io.flags() & ios_base::showbase > || __i < 2 || __sign.size() > 1 > || ((static_cast<part>(__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() && __neg_sign.size()) > { > > if (__c == __pos_sign[0]) > { > __sign = __pos_sign; > __c = *(++__beg); > } > else if (__c == __neg_sign[0]) > { > __sign = __neg_sign; > __c = *(++__beg); > } > else > __testvalid = false; > } > else 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); > } > 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<char>(__sep_pos); > __sep_pos = 0; > __testdecfound = true; > } > else if (__c == __sep) > { > if (__grouping.size()) > { > > __grouping_tmp += static_cast<char>(__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<typename _CharT, typename _OutIter> > _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<ctype<_CharT> >(__loc); > > > int __cs_size = 64; > char* __cs = static_cast<char*>(__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<char*>(__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<typename _CharT, typename _OutIter> > _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<size_type>(__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<ctype<_CharT> >(__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 __res; > string_type __value; > const string_type __symbol = __intl ? __mpt.curr_symbol() > : __mpf.curr_symbol(); > > > const int __frac = __intl ? __mpt.frac_digits() > : __mpf.frac_digits(); > if (__frac > 0) > { > const char_type __d = __intl ? __mpt.decimal_point() > : __mpf.decimal_point(); > if (__end - __beg >= __frac) > { > __value = string_type(__end - __frac, __end); > __value.insert(__value.begin(), __d); > __end -= __frac; > } > else > { > > __value = string_type(__beg, __end); > int __paddec = __frac - (__end - __beg); > char_type __zero = __ctype.widen('0'); > __value.insert(__value.begin(), __paddec, __zero); > __value.insert(__value.begin(), __d); > __beg = __end; > } > } > > > > if (__beg != __end) > { > 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.c_str(); > 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); > __value.insert(0, __ws2, __ws_end - __ws2); > } > else > __value.insert(0, string_type(__beg, __end)); > } > > > 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; > bool __testipad = __f == ios_base::internal && __len < __width; > > > for (int __i = 0; __i < 4; ++__i) > { > part __which = static_cast<part>(__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.c_str(), __len); > } > __io.width(0); > return __s; > } > > > > > > template<typename _CharT, typename _InIter> > time_base::dateorder > time_get<_CharT, _InIter>::do_date_order() const > { return time_base::no_order; } > > template<typename _CharT, typename _InIter> > 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<ctype<_CharT> >(__loc); > size_t __len = char_traits<_CharT>::length(__format); > > for (size_t __i = 0; __beg != __end && __i < __len && !__err; ++__i) > { > char __c = __format[__i]; > if (__c == '%') > { > > __c = __format[++__i]; > char __mod = 0; > int __mem = 0; > if (__c == 'E' || __c == 'O') > { > __mod = __c; > __c = __format[++__i]; > } > 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, > numeric_limits<int>::max(), 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 (__c == __ctype.narrow(*__beg, 0)) > ++__beg; > else > __err |= ios_base::failbit; > } > } > } > > template<typename _CharT, typename _InIter> > 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 > { > size_t __i = 0; > string __digits; > bool __testvalid = true; > char_type __c = *__beg; > while (__beg != __end && __i < __len > && __ctype.is(ctype_base::digit, __c)) > { > __digits += __ctype.narrow(__c, 0); > __c = *(++__beg); > ++__i; > } > if (__i == __len) > { > int __value = atoi(__digits.c_str()); > if (__min <= __value && __value <= __max) > __member = __value; > else > __testvalid = false; > } > else > __testvalid = false; > if (!__testvalid) > __err |= ios_base::failbit; > } > > > > template<typename _CharT, typename _InIter> > 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<int*>(__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<typename _CharT, typename _InIter> > _InIter > time_get<_CharT, _InIter>:: > do_get_time(iter_type __beg, iter_type __end, ios_base& __io, > ios_base::iostate& __err, tm* __tm) const > { > _CharT __wcs[3]; > const char* __cs = "%X"; > locale __loc = __io.getloc(); > ctype<_CharT> const& __ctype = use_facet<ctype<_CharT> >(__loc); > __ctype.widen(__cs, __cs + 3, __wcs); > _M_extract_via_format(__beg, __end, __io, __err, __tm, __wcs); > if (__beg == __end) > __err |= ios_base::eofbit; > return __beg; > } > > template<typename _CharT, typename _InIter> > _InIter > time_get<_CharT, _InIter>:: > do_get_date(iter_type __beg, iter_type __end, ios_base& __io, > ios_base::iostate& __err, tm* __tm) const > { > _CharT __wcs[3]; > const char* __cs = "%x"; > locale __loc = __io.getloc(); > ctype<_CharT> const& __ctype = use_facet<ctype<_CharT> >(__loc); > __ctype.widen(__cs, __cs + 3, __wcs); > _M_extract_via_format(__beg, __end, __io, __err, __tm, __wcs); > if (__beg == __end) > __err |= ios_base::eofbit; > return __beg; > } > > template<typename _CharT, typename _InIter> > _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<typename _CharT, typename _InIter> > _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<typename _CharT, typename _InIter> > _InIter > time_get<_CharT, _InIter>:: > do_get_year(iter_type __beg, iter_type __end, ios_base& __io, > ios_base::iostate& __err, tm* __tm) const > { > locale __loc = __io.getloc(); > const ctype<_CharT>& __ctype = use_facet<ctype<_CharT> >(__loc); > > char_type __c = *__beg; > size_t __i = 0; > string __digits; > while (__i < 4 && __beg != __end && __ctype.is(ctype_base::digit, __c)) > { > __digits += __ctype.narrow(__c, 0); > __c = *(++__beg); > ++__i; > } > if (__i == 2 || __i == 4) > { > long __l; > __convert_to_v(__digits.c_str(), __l, __err, _S_c_locale); > if (!(__err & ios_base::failbit) && __l <= 2147483647) > { > __l = __i == 2 ? __l : __l - 1900; > __tm->tm_year = static_cast<int>(__l); > } > } > else > __err |= ios_base::failbit; > if (__beg == __end) > __err |= ios_base::eofbit; > return __beg; > } > > template<typename _CharT, typename _OutIter> > _OutIter > time_put<_CharT, _OutIter>:: > put(iter_type __s, ios_base& __io, char_type, const tm* __tm, > const _CharT* __beg, const _CharT* __end) const > { > locale __loc = __io.getloc(); > ctype<_CharT> const& __ctype = use_facet<ctype<_CharT> >(__loc); > while (__beg != __end) > { > char __c = __ctype.narrow(*__beg, 0); > ++__beg; > if (__c == '%') > { > char __format; > char __mod = 0; > size_t __len = 1; > __c = __ctype.narrow(*__beg, 0); > ++__beg; > if (__c == 'E' || __c == 'O') > { > __mod = __c; > __format = __ctype.narrow(*__beg, 0); > ++__beg; > } > else > __format = __c; > __s = this->do_put(__s, __io, _CharT(), __tm, __format, __mod); > } > else > { > *__s = __c; > ++__s; > } > } > return __s; > } > > template<typename _CharT, typename _OutIter> > _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<ctype<_CharT> >(__loc); > __timepunct<_CharT> const& __tp = use_facet<__timepunct<_CharT> >(__loc); > > > > const size_t __maxlen = 64; > char_type* __res = static_cast<char_type*>(__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<char_type>::length(__res)); > } > > > > template<typename _CharT> > int > collate<_CharT>::_M_compare(const _CharT*, const _CharT*) const > { return 0; } > > > template<typename _CharT> > size_t > collate<_CharT>::_M_transform(_CharT*, const _CharT*, size_t) const > { return 0; } > > template<typename _CharT> > 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 _CharT> > 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<typename _CharT> > 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<unsigned long>::digits - 7))); > return static_cast<long>(__val); > } ># 2165 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/locale_facets.tcc" 3 > template<typename _CharT, typename _Traits> > 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<size_t>(__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<ctype<_CharT> >(__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<typename _CharT> > 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<typename _CharT> > _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<typename _CharT, typename _OutIter> > template<typename _ValueT> > _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<char*>(__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<char*>(__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<typename _CharT, typename _OutIter> > _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<ctype<_CharT> >(__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<numpunct<_CharT> >(__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<typename _CharT, typename _OutIter> > _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<ctype<_CharT> >(__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<numpunct<_CharT> >(__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<typename _CharT, typename _OutIter> > _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<streamsize>(__len)) > { > __pad<_CharT, __traits_type>::_S_pad(__io, __fill, __ws2, __ws, > __w, __len, true); > __len = static_cast<int>(__w); > > __ws = __ws2; > } > __io.width(0); > > > > return __write(__s, __ws, __len); > } > > > template<typename _CharT> > __locale_cache<numpunct<_CharT> >::__locale_cache(const locale& __loc) > : _M_truename(0), _M_falsename(0), _M_use_grouping(false), > _M_grouping(0) > { > if (has_facet<numpunct<_CharT> >(__loc)) > { > const numpunct<_CharT>& __np = use_facet<numpunct<_CharT> >(__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<ctype<_CharT> >(__loc)) > { > const ctype<_CharT>& __ct = use_facet<ctype<_CharT> >(__loc); > __ct.widen(__num_base::_S_atoms_out, > __num_base::_S_atoms_out + __num_base::_S_end, > _M_atoms_out); > } > } > > > > template<typename _CharT> > __locale_cache<numpunct<_CharT> >:: > __locale_cache(const locale& __loc, bool) > { > > const numpunct<_CharT>& __np = use_facet<numpunct<_CharT> >(__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<ctype<_CharT> >(__loc); > __ct.widen(__num_base::_S_atoms_out, > __num_base::_S_atoms_out + __num_base::_S_end, > _M_atoms_out); > } > > > > > > extern template class moneypunct<char, false>; > extern template class moneypunct<char, true>; > extern template class moneypunct_byname<char, false>; > extern template class moneypunct_byname<char, true>; > extern template class money_get<char>; > extern template class money_put<char>; > extern template class numpunct<char>; > extern template class numpunct_byname<char>; > extern template class num_get<char>; > extern template class num_put<char>; > extern template class __timepunct<char>; > extern template class time_put<char>; > extern template class time_put_byname<char>; > extern template class time_get<char>; > extern template class time_get_byname<char>; > extern template class messages<char>; > extern template class messages_byname<char>; > extern template class ctype_byname<char>; > extern template class codecvt_byname<char, char, mbstate_t>; > extern template class collate<char>; > extern template class collate_byname<char>; > > extern template > const codecvt<char, char, mbstate_t>& > use_facet<codecvt<char, char, mbstate_t> >(const locale&); > > extern template > const collate<char>& > use_facet<collate<char> >(const locale&); > > extern template > const numpunct<char>& > use_facet<numpunct<char> >(const locale&); > > extern template > const num_put<char>& > use_facet<num_put<char> >(const locale&); > > extern template > const num_get<char>& > use_facet<num_get<char> >(const locale&); > > extern template > const moneypunct<char, true>& > use_facet<moneypunct<char, true> >(const locale&); > > extern template > const moneypunct<char, false>& > use_facet<moneypunct<char, false> >(const locale&); > > extern template > const money_put<char>& > use_facet<money_put<char> >(const locale&); > > extern template > const money_get<char>& > use_facet<money_get<char> >(const locale&); > > extern template > const __timepunct<char>& > use_facet<__timepunct<char> >(const locale&); > > extern template > const time_put<char>& > use_facet<time_put<char> >(const locale&); > > extern template > const time_get<char>& > use_facet<time_get<char> >(const locale&); > > extern template > const messages<char>& > use_facet<messages<char> >(const locale&); > > extern template > bool > has_facet<ctype<char> >(const locale&); > > extern template > bool > has_facet<codecvt<char, char, mbstate_t> >(const locale&); > > extern template > bool > has_facet<collate<char> >(const locale&); > > extern template > bool > has_facet<numpunct<char> >(const locale&); > > extern template > bool > has_facet<num_put<char> >(const locale&); > > extern template > bool > has_facet<num_get<char> >(const locale&); > > extern template > bool > has_facet<moneypunct<char> >(const locale&); > > extern template > bool > has_facet<money_put<char> >(const locale&); > > extern template > bool > has_facet<money_get<char> >(const locale&); > > extern template > bool > has_facet<__timepunct<char> >(const locale&); > > extern template > bool > has_facet<time_put<char> >(const locale&); > > extern template > bool > has_facet<time_get<char> >(const locale&); > > extern template > bool > has_facet<messages<char> >(const locale&); > > > extern template class moneypunct<wchar_t, false>; > extern template class moneypunct<wchar_t, true>; > extern template class moneypunct_byname<wchar_t, false>; > extern template class moneypunct_byname<wchar_t, true>; > extern template class money_get<wchar_t>; > extern template class money_put<wchar_t>; > extern template class numpunct<wchar_t>; > extern template class numpunct_byname<wchar_t>; > extern template class num_get<wchar_t>; > extern template class num_put<wchar_t>; > extern template class __timepunct<wchar_t>; > extern template class time_put<wchar_t>; > extern template class time_put_byname<wchar_t>; > extern template class time_get<wchar_t>; > extern template class time_get_byname<wchar_t>; > extern template class messages<wchar_t>; > extern template class messages_byname<wchar_t>; > extern template class ctype_byname<wchar_t>; > extern template class codecvt_byname<wchar_t, char, mbstate_t>; > extern template class collate<wchar_t>; > extern template class collate_byname<wchar_t>; > > extern template > const codecvt<wchar_t, char, mbstate_t>& > use_facet<codecvt<wchar_t, char, mbstate_t> >(locale const&); > > extern template > const collate<wchar_t>& > use_facet<collate<wchar_t> >(const locale&); > > extern template > const numpunct<wchar_t>& > use_facet<numpunct<wchar_t> >(const locale&); > > extern template > const num_put<wchar_t>& > use_facet<num_put<wchar_t> >(const locale&); > > extern template > const num_get<wchar_t>& > use_facet<num_get<wchar_t> >(const locale&); > > extern template > const moneypunct<wchar_t, true>& > use_facet<moneypunct<wchar_t, true> >(const locale&); > > extern template > const moneypunct<wchar_t, false>& > use_facet<moneypunct<wchar_t, false> >(const locale&); > > extern template > const money_put<wchar_t>& > use_facet<money_put<wchar_t> >(const locale&); > > extern template > const money_get<wchar_t>& > use_facet<money_get<wchar_t> >(const locale&); > > extern template > const __timepunct<wchar_t>& > use_facet<__timepunct<wchar_t> >(const locale&); > > extern template > const time_put<wchar_t>& > use_facet<time_put<wchar_t> >(const locale&); > > extern template > const time_get<wchar_t>& > use_facet<time_get<wchar_t> >(const locale&); > > extern template > const messages<wchar_t>& > use_facet<messages<wchar_t> >(const locale&); > > extern template > bool > has_facet<ctype<wchar_t> >(const locale&); > > extern template > bool > has_facet<codecvt<wchar_t, char, mbstate_t> >(const locale&); > > extern template > bool > has_facet<collate<wchar_t> >(const locale&); > > extern template > bool > has_facet<numpunct<wchar_t> >(const locale&); > > extern template > bool > has_facet<num_put<wchar_t> >(const locale&); > > extern template > bool > has_facet<num_get<wchar_t> >(const locale&); > > extern template > bool > has_facet<moneypunct<wchar_t> >(const locale&); > > extern template > bool > has_facet<money_put<wchar_t> >(const locale&); > > extern template > bool > has_facet<money_get<wchar_t> >(const locale&); > > extern template > bool > has_facet<__timepunct<wchar_t> >(const locale&); > > extern template > bool > has_facet<time_put<wchar_t> >(const locale&); > > extern template > bool > has_facet<time_get<wchar_t> >(const locale&); > > extern template > bool > has_facet<messages<wchar_t> >(const locale&); > > >} ># 48 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/locale" 2 3 ># 38 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/ostream.tcc" 2 3 > >namespace std >{ > template<typename _CharT, typename _Traits> > 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<typename _CharT, typename _Traits> > basic_ostream<_CharT, _Traits>& > basic_ostream<_CharT, _Traits>:: > operator<<(__ostream_type& (*__pf)(__ostream_type&)) > { > > > > return __pf(*this); > } > > template<typename _CharT, typename _Traits> > basic_ostream<_CharT, _Traits>& > basic_ostream<_CharT, _Traits>:: > operator<<(__ios_type& (*__pf)(__ios_type&)) > { > > > > __pf(*this); > return *this; > } > > template<typename _CharT, typename _Traits> > basic_ostream<_CharT, _Traits>& > basic_ostream<_CharT, _Traits>:: > operator<<(ios_base& (*__pf)(ios_base&)) > { > > > > __pf(*this); > return *this; > } > > template<typename _CharT, typename _Traits> > 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<typename _CharT, typename _Traits> > 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<unsigned long>(__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<typename _CharT, typename _Traits> > 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<typename _CharT, typename _Traits> > 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<unsigned long long>(__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<typename _CharT, typename _Traits> > 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<typename _CharT, typename _Traits> > 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<typename _CharT, typename _Traits> > 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<typename _CharT, typename _Traits> > 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<typename _CharT, typename _Traits> > 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<typename _CharT, typename _Traits> > 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<typename _CharT, typename _Traits> > 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<typename _CharT, typename _Traits> > 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 _CharT, typename _Traits> > 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<typename _CharT, typename _Traits> > 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<typename _CharT, typename _Traits> > 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<typename _CharT, typename _Traits> > 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 <class _Traits> > basic_ostream<char, _Traits>& > operator<<(basic_ostream<char, _Traits>& __out, char __c) > { > typedef basic_ostream<char, _Traits> __ostream_type; > typename __ostream_type::sentry __cerb(__out); > if (__cerb) > { > try > { > const streamsize __w = __out.width() > 0 ? __out.width() : 0; > char* __pads = static_cast<char*>(__builtin_alloca(__w + 1)); > __pads[0] = __c; > streamsize __len = 1; > if (__w > __len) > { > __pad<char, _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<typename _CharT, typename _Traits> > 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<streamsize>(_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<typename _CharT, typename _Traits> > basic_ostream<_CharT, _Traits>& > operator<<(basic_ostream<_CharT, _Traits>& __out, const char* __s) > { > typedef basic_ostream<_CharT, _Traits> __ostream_type; > > > > typedef char_traits<char> __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<streamsize>(__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<class _Traits> > basic_ostream<char, _Traits>& > operator<<(basic_ostream<char, _Traits>& __out, const char* __s) > { > typedef basic_ostream<char, _Traits> __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<char*>(__builtin_alloca(__w)); > streamsize __len = static_cast<streamsize>(_Traits::length(__s)); > > if (__w > __len) > { > __pad<char, _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<typename _CharT, typename _Traits, typename _Alloc> > 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<streamsize>(__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<char>; > 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<wchar_t>; > 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/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/ostream" 2 3 ># 71 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/iterator" 2 3 ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/istream" 1 3 ># 42 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/istream" 3 > ># 43 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/istream" 3 > > > > >namespace std >{ ># 57 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/istream" 3 > template<typename _CharT, typename _Traits> > 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<typename _CharT2, typename _Traits2> > friend basic_istream<_CharT2, _Traits2>& > operator>>(basic_istream<_CharT2, _Traits2>&, _CharT2&); > > template<typename _CharT2, typename _Traits2> > friend basic_istream<_CharT2, _Traits2>& > operator>>(basic_istream<_CharT2, _Traits2>&, _CharT2*); > > protected: > > > > > > > > streamsize _M_gcount; > > public: ># 103 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/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/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/istream" 3 > __istream_type& > operator>>(__istream_type& (*__pf)(__istream_type&)); > > __istream_type& > operator>>(__ios_type& (*__pf)(__ios_type&)); > > __istream_type& > operator>>(ios_base& (*__pf)(ios_base&)); ># 171 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/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/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/istream" 3 > __istream_type& > operator>>(__streambuf_type* __sb); ># 242 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/istream" 3 > inline streamsize > gcount() const > { return _M_gcount; } ># 274 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/istream" 3 > int_type > get(); ># 288 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/istream" 3 > __istream_type& > get(char_type& __c); ># 315 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/istream" 3 > __istream_type& > get(char_type* __s, streamsize __n, char_type __delim); ># 326 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/istream" 3 > inline __istream_type& > get(char_type* __s, streamsize __n) > { return this->get(__s, __n, this->widen('\n')); } ># 349 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/istream" 3 > __istream_type& > get(__streambuf_type& __sb, char_type __delim); ># 359 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/istream" 3 > inline __istream_type& > get(__streambuf_type& __sb) > { return this->get(__sb, this->widen('\n')); } ># 388 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/istream" 3 > __istream_type& > getline(char_type* __s, streamsize __n, char_type __delim); ># 399 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/istream" 3 > inline __istream_type& > getline(char_type* __s, streamsize __n) > { return this->getline(__s, __n, this->widen('\n')); } ># 418 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/istream" 3 > __istream_type& > ignore(streamsize __n = 1, int_type __delim = traits_type::eof()); ># 429 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/istream" 3 > int_type > peek(); ># 447 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/istream" 3 > __istream_type& > read(char_type* __s, streamsize __n); ># 466 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/istream" 3 > streamsize > readsome(char_type* __s, streamsize __n); ># 482 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/istream" 3 > __istream_type& > putback(char_type __c); ># 497 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/istream" 3 > __istream_type& > unget(); ># 515 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/istream" 3 > int > sync(); ># 529 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/istream" 3 > pos_type > tellg(); ># 544 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/istream" 3 > __istream_type& > seekg(pos_type); ># 560 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/istream" 3 > __istream_type& > seekg(off_type, ios_base::seekdir); > > }; ># 576 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/istream" 3 > template<typename _CharT, typename _Traits> > 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/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/istream" 3 > explicit > sentry(basic_istream<_CharT, _Traits>& __is, bool __noskipws = false); ># 618 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/istream" 3 > operator bool() { return _M_ok; } > > private: > bool _M_ok; > }; ># 637 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/istream" 3 > template<typename _CharT, typename _Traits> > basic_istream<_CharT, _Traits>& > operator>>(basic_istream<_CharT, _Traits>& __in, _CharT& __c); > > template<class _Traits> > basic_istream<char, _Traits>& > operator>>(basic_istream<char, _Traits>& __in, unsigned char& __c) > { return (__in >> reinterpret_cast<char&>(__c)); } > > template<class _Traits> > basic_istream<char, _Traits>& > operator>>(basic_istream<char, _Traits>& __in, signed char& __c) > { return (__in >> reinterpret_cast<char&>(__c)); } ># 678 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/istream" 3 > template<typename _CharT, typename _Traits> > basic_istream<_CharT, _Traits>& > operator>>(basic_istream<_CharT, _Traits>& __in, _CharT* __s); > > template<class _Traits> > basic_istream<char,_Traits>& > operator>>(basic_istream<char,_Traits>& __in, unsigned char* __s) > { return (__in >> reinterpret_cast<char*>(__s)); } > > template<class _Traits> > basic_istream<char,_Traits>& > operator>>(basic_istream<char,_Traits>& __in, signed char* __s) > { return (__in >> reinterpret_cast<char*>(__s)); } ># 700 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/istream" 3 > template<typename _CharT, typename _Traits> > 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/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/istream" 3 > template<typename _CharT, typename _Traits> > basic_istream<_CharT, _Traits>& > ws(basic_istream<_CharT, _Traits>& __is); >} > > > > > ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/istream.tcc" 1 3 ># 35 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/istream.tcc" 3 > ># 36 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/istream.tcc" 3 > > > > >namespace std >{ > template<typename _CharT, typename _Traits> > 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<typename _CharT, typename _Traits> > basic_istream<_CharT, _Traits>& > basic_istream<_CharT, _Traits>:: > operator>>(__istream_type& (*__pf)(__istream_type&)) > { return __pf(*this); } > > template<typename _CharT, typename _Traits> > basic_istream<_CharT, _Traits>& > basic_istream<_CharT, _Traits>:: > operator>>(__ios_type& (*__pf)(__ios_type&)) > { > __pf(*this); > return *this; > } > > template<typename _CharT, typename _Traits> > basic_istream<_CharT, _Traits>& > basic_istream<_CharT, _Traits>:: > operator>>(ios_base& (*__pf)(ios_base&)) > { > __pf(*this); > return *this; > } > > template<typename _CharT, typename _Traits> > 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<typename _CharT, typename _Traits> > 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<short>::min() <= __l > && __l <= numeric_limits<short>::max())) > __n = __l; > else > __err |= ios_base::failbit; > } > catch(...) > { this->_M_setstate(ios_base::badbit); } > if (__err) > this->setstate(__err); > } > return *this; > } > > template<typename _CharT, typename _Traits> > 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<typename _CharT, typename _Traits> > 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<int>::min() <= __l > && __l <= numeric_limits<int>::max())) > __n = __l; > else > __err |= ios_base::failbit; > } > catch(...) > { this->_M_setstate(ios_base::badbit); } > if (__err) > this->setstate(__err); > } > return *this; > } > > template<typename _CharT, typename _Traits> > 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<typename _CharT, typename _Traits> > 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<typename _CharT, typename _Traits> > 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<typename _CharT, typename _Traits> > 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<typename _CharT, typename _Traits> > 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<typename _CharT, typename _Traits> > 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<typename _CharT, typename _Traits> > 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<typename _CharT, typename _Traits> > 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<typename _CharT, typename _Traits> > 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<typename _CharT, typename _Traits> > 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 _CharT, typename _Traits> > 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<typename _CharT, typename _Traits> > 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<typename _CharT, typename _Traits> > 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<typename _CharT, typename _Traits> > 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<typename _CharT, typename _Traits> > 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<typename _CharT, typename _Traits> > 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<streamsize>::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 _CharT, typename _Traits> > 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<typename _CharT, typename _Traits> > 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<typename _CharT, typename _Traits> > 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<typename _CharT, typename _Traits> > 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<typename _CharT, typename _Traits> > 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<typename _CharT, typename _Traits> > 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 _CharT, typename _Traits> > 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<typename _CharT, typename _Traits> > 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<typename _CharT, typename _Traits> > 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<typename _CharT, typename _Traits> > 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<typename _CharT, typename _Traits> > 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<streamsize>::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<typename _CharT, typename _Traits> > 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<typename _CharT, typename _Traits, typename _Alloc> > 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(); > 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))) > { > __str += _Traits::to_char_type(__c); > ++__extracted; > __c = __sb->snextc(); > } > 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<typename _CharT, typename _Traits, typename _Alloc> > 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(); > __int_type __idelim = _Traits::to_int_type(__delim); > __streambuf_type* __sb = __in.rdbuf(); > __int_type __c = __sb->sbumpc(); > const __int_type __eof = _Traits::eof(); > __testdelim = _Traits::eq_int_type(__c, __idelim); > > while (!_Traits::eq_int_type(__c, __eof) && !__testdelim > && __extracted < __n) > { > __str += _Traits::to_char_type(__c); > ++__extracted; > __c = __sb->sbumpc(); > __testdelim = _Traits::eq_int_type(__c, __idelim); > } > if (_Traits::eq_int_type(__c, __eof)) > __err |= ios_base::eofbit; > } > catch(...) > { > > > > __in._M_setstate(ios_base::badbit); > } > } > if ((!__extracted && !__testdelim) || __extracted == __n) > __err |= ios_base::failbit; > if (__err) > __in.setstate(__err); > return __in; > } > > template<class _CharT, class _Traits, class _Alloc> > 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<char>; > 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<wchar_t>; > extern template wistream& ws(wistream&); > extern template wistream& operator>>(wistream&, wchar_t&); > extern template wistream& operator>>(wistream&, wchar_t*); > > >} ># 769 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/istream" 2 3 ># 72 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/iterator" 2 3 ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stream_iterator.h" 1 3 ># 38 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stream_iterator.h" 3 > ># 39 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stream_iterator.h" 3 > >namespace std >{ > template<typename _Tp, typename _CharT = char, > typename _Traits = char_traits<_CharT>, typename _Dist = ptrdiff_t> > class istream_iterator > : public iterator<input_iterator_tag, _Tp, _Dist, const _Tp*, const _Tp&> > { > public: > typedef _CharT char_type; > typedef _Traits traits_type; > typedef basic_istream<_CharT, _Traits> istream_type; > > private: > istream_type* _M_stream; > _Tp _M_value; > bool _M_ok; > > public: > istream_iterator() : _M_stream(0), _M_ok(false) {} > > istream_iterator(istream_type& __s) : _M_stream(&__s) { _M_read(); } > > istream_iterator(const istream_iterator& __obj) > : _M_stream(__obj._M_stream), _M_value(__obj._M_value), > _M_ok(__obj._M_ok) > { } > > const _Tp& > operator*() const { return _M_value; } > > const _Tp* > operator->() const { return &(operator*()); } > > istream_iterator& > operator++() > { _M_read(); return *this; } > > istream_iterator > operator++(int) > { > istream_iterator __tmp = *this; > _M_read(); > return __tmp; > } > > bool > _M_equal(const istream_iterator& __x) const > { return (_M_ok == __x._M_ok) && (!_M_ok || _M_stream == __x._M_stream);} > > private: > void > _M_read() > { > _M_ok = (_M_stream && *_M_stream) ? true : false; > if (_M_ok) > { > *_M_stream >> _M_value; > _M_ok = *_M_stream ? true : false; > } > } > }; > > template<typename _Tp, typename _CharT, typename _Traits, typename _Dist> > inline bool > operator==(const istream_iterator<_Tp, _CharT, _Traits, _Dist>& __x, > const istream_iterator<_Tp, _CharT, _Traits, _Dist>& __y) > { return __x._M_equal(__y); } > > template <class _Tp, class _CharT, class _Traits, class _Dist> > inline bool > operator!=(const istream_iterator<_Tp, _CharT, _Traits, _Dist>& __x, > const istream_iterator<_Tp, _CharT, _Traits, _Dist>& __y) > { return !__x._M_equal(__y); } > > > template<typename _Tp, typename _CharT = char, > typename _Traits = char_traits<_CharT> > > class ostream_iterator > : public iterator<output_iterator_tag, void, void, void, void> > { > public: > typedef _CharT char_type; > typedef _Traits traits_type; > typedef basic_ostream<_CharT, _Traits> ostream_type; > > private: > ostream_type* _M_stream; > const _CharT* _M_string; > > public: > ostream_iterator(ostream_type& __s) : _M_stream(&__s), _M_string(0) {} > > ostream_iterator(ostream_type& __s, const _CharT* __c) > : _M_stream(&__s), _M_string(__c) { } > > ostream_iterator(const ostream_iterator& __obj) > : _M_stream(__obj._M_stream), _M_string(__obj._M_string) { } > > ostream_iterator& > operator=(const _Tp& __value) > { > *_M_stream << __value; > if (_M_string) *_M_stream << _M_string; > return *this; > } > > ostream_iterator& > operator*() { return *this; } > > ostream_iterator& > operator++() { return *this; } > > ostream_iterator& > operator++(int) { return *this; } > }; >} ># 73 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/iterator" 2 3 ># 70 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/ext/stl_hashtable.h" 2 3 > > ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/ext/stl_hash_fun.h" 1 3 ># 67 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/ext/stl_hash_fun.h" 3 >namespace __gnu_cxx >{ >using std::size_t; > >template <class _Key> struct hash { }; > >inline size_t __stl_hash_string(const char* __s) >{ > unsigned long __h = 0; > for ( ; *__s; ++__s) > __h = 5*__h + *__s; > > return size_t(__h); >} > >template<> struct hash<char*> >{ > size_t operator()(const char* __s) const { return __stl_hash_string(__s); } >}; > >template<> struct hash<const char*> >{ > size_t operator()(const char* __s) const { return __stl_hash_string(__s); } >}; > >template<> struct hash<char> { > size_t operator()(char __x) const { return __x; } >}; >template<> struct hash<unsigned char> { > size_t operator()(unsigned char __x) const { return __x; } >}; >template<> struct hash<signed char> { > size_t operator()(unsigned char __x) const { return __x; } >}; >template<> struct hash<short> { > size_t operator()(short __x) const { return __x; } >}; >template<> struct hash<unsigned short> { > size_t operator()(unsigned short __x) const { return __x; } >}; >template<> struct hash<int> { > size_t operator()(int __x) const { return __x; } >}; >template<> struct hash<unsigned int> { > size_t operator()(unsigned int __x) const { return __x; } >}; >template<> struct hash<long> { > size_t operator()(long __x) const { return __x; } >}; >template<> struct hash<unsigned long> { > size_t operator()(unsigned long __x) const { return __x; } >}; > >} ># 73 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/ext/stl_hashtable.h" 2 3 > >namespace __gnu_cxx >{ >using std::size_t; >using std::ptrdiff_t; >using std::forward_iterator_tag; >using std::input_iterator_tag; >using std::_Alloc_traits; >using std::_Construct; >using std::_Destroy; >using std::distance; >using std::vector; >using std::pair; >using std::__iterator_category; > >template <class _Val> >struct _Hashtable_node >{ > _Hashtable_node* _M_next; > _Val _M_val; >}; > >template <class _Val, class _Key, class _HashFcn, > class _ExtractKey, class _EqualKey, class _Alloc = std::__alloc> >class hashtable; > >template <class _Val, class _Key, class _HashFcn, > class _ExtractKey, class _EqualKey, class _Alloc> >struct _Hashtable_iterator; > >template <class _Val, class _Key, class _HashFcn, > class _ExtractKey, class _EqualKey, class _Alloc> >struct _Hashtable_const_iterator; > >template <class _Val, class _Key, class _HashFcn, > class _ExtractKey, class _EqualKey, class _Alloc> >struct _Hashtable_iterator { > typedef hashtable<_Val,_Key,_HashFcn,_ExtractKey,_EqualKey,_Alloc> > _Hashtable; > typedef _Hashtable_iterator<_Val, _Key, _HashFcn, > _ExtractKey, _EqualKey, _Alloc> > iterator; > typedef _Hashtable_const_iterator<_Val, _Key, _HashFcn, > _ExtractKey, _EqualKey, _Alloc> > const_iterator; > typedef _Hashtable_node<_Val> _Node; > > typedef forward_iterator_tag iterator_category; > typedef _Val value_type; > typedef ptrdiff_t difference_type; > typedef size_t size_type; > typedef _Val& reference; > typedef _Val* pointer; > > _Node* _M_cur; > _Hashtable* _M_ht; > > _Hashtable_iterator(_Node* __n, _Hashtable* __tab) > : _M_cur(__n), _M_ht(__tab) {} > _Hashtable_iterator() {} > reference operator*() const { return _M_cur->_M_val; } > pointer operator->() const { return &(operator*()); } > iterator& operator++(); > iterator operator++(int); > bool operator==(const iterator& __it) const > { return _M_cur == __it._M_cur; } > bool operator!=(const iterator& __it) const > { return _M_cur != __it._M_cur; } >}; > > >template <class _Val, class _Key, class _HashFcn, > class _ExtractKey, class _EqualKey, class _Alloc> >struct _Hashtable_const_iterator { > typedef hashtable<_Val,_Key,_HashFcn,_ExtractKey,_EqualKey,_Alloc> > _Hashtable; > typedef _Hashtable_iterator<_Val,_Key,_HashFcn, > _ExtractKey,_EqualKey,_Alloc> > iterator; > typedef _Hashtable_const_iterator<_Val, _Key, _HashFcn, > _ExtractKey, _EqualKey, _Alloc> > const_iterator; > typedef _Hashtable_node<_Val> _Node; > > typedef forward_iterator_tag iterator_category; > typedef _Val value_type; > typedef ptrdiff_t difference_type; > typedef size_t size_type; > typedef const _Val& reference; > typedef const _Val* pointer; > > const _Node* _M_cur; > const _Hashtable* _M_ht; > > _Hashtable_const_iterator(const _Node* __n, const _Hashtable* __tab) > : _M_cur(__n), _M_ht(__tab) {} > _Hashtable_const_iterator() {} > _Hashtable_const_iterator(const iterator& __it) > : _M_cur(__it._M_cur), _M_ht(__it._M_ht) {} > reference operator*() const { return _M_cur->_M_val; } > pointer operator->() const { return &(operator*()); } > const_iterator& operator++(); > const_iterator operator++(int); > bool operator==(const const_iterator& __it) const > { return _M_cur == __it._M_cur; } > bool operator!=(const const_iterator& __it) const > { return _M_cur != __it._M_cur; } >}; > > >enum { __stl_num_primes = 28 }; > >static const unsigned long __stl_prime_list[__stl_num_primes] = >{ > 53ul, 97ul, 193ul, 389ul, 769ul, > 1543ul, 3079ul, 6151ul, 12289ul, 24593ul, > 49157ul, 98317ul, 196613ul, 393241ul, 786433ul, > 1572869ul, 3145739ul, 6291469ul, 12582917ul, 25165843ul, > 50331653ul, 100663319ul, 201326611ul, 402653189ul, 805306457ul, > 1610612741ul, 3221225473ul, 4294967291ul >}; > >inline unsigned long __stl_next_prime(unsigned long __n) >{ > const unsigned long* __first = __stl_prime_list; > const unsigned long* __last = __stl_prime_list + (int)__stl_num_primes; > const unsigned long* pos = std::lower_bound(__first, __last, __n); > return pos == __last ? *(__last - 1) : *pos; >} > > > >template <class _Val, class _Key, class _HF, class _Ex, class _Eq, class _All> >class hashtable; > >template <class _Val, class _Key, class _HF, class _Ex, class _Eq, class _All> >bool operator==(const hashtable<_Val,_Key,_HF,_Ex,_Eq,_All>& __ht1, > const hashtable<_Val,_Key,_HF,_Ex,_Eq,_All>& __ht2); ># 221 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/ext/stl_hashtable.h" 3 >template <class _Val, class _Key, class _HashFcn, > class _ExtractKey, class _EqualKey, class _Alloc> >class hashtable { >public: > typedef _Key key_type; > typedef _Val value_type; > typedef _HashFcn hasher; > typedef _EqualKey key_equal; > > typedef size_t size_type; > typedef ptrdiff_t difference_type; > typedef value_type* pointer; > typedef const value_type* const_pointer; > typedef value_type& reference; > typedef const value_type& const_reference; > > hasher hash_funct() const { return _M_hash; } > key_equal key_eq() const { return _M_equals; } > >private: > typedef _Hashtable_node<_Val> _Node; > >public: > typedef typename _Alloc_traits<_Val,_Alloc>::allocator_type allocator_type; > allocator_type get_allocator() const { return _M_node_allocator; } >private: > typename _Alloc_traits<_Node, _Alloc>::allocator_type _M_node_allocator; > _Node* _M_get_node() { return _M_node_allocator.allocate(1); } > void _M_put_node(_Node* __p) { _M_node_allocator.deallocate(__p, 1); } > >private: > hasher _M_hash; > key_equal _M_equals; > _ExtractKey _M_get_key; > vector<_Node*,_Alloc> _M_buckets; > size_type _M_num_elements; > >public: > typedef _Hashtable_iterator<_Val,_Key,_HashFcn,_ExtractKey,_EqualKey,_Alloc> > iterator; > typedef _Hashtable_const_iterator<_Val,_Key,_HashFcn,_ExtractKey,_EqualKey, > _Alloc> > const_iterator; > > friend struct > _Hashtable_iterator<_Val,_Key,_HashFcn,_ExtractKey,_EqualKey,_Alloc>; > friend struct > _Hashtable_const_iterator<_Val,_Key,_HashFcn,_ExtractKey,_EqualKey,_Alloc>; > >public: > hashtable(size_type __n, > const _HashFcn& __hf, > const _EqualKey& __eql, > const _ExtractKey& __ext, > const allocator_type& __a = allocator_type()) > : _M_node_allocator(__a), > _M_hash(__hf), > _M_equals(__eql), > _M_get_key(__ext), > _M_buckets(__a), > _M_num_elements(0) > { > _M_initialize_buckets(__n); > } > > hashtable(size_type __n, > const _HashFcn& __hf, > const _EqualKey& __eql, > const allocator_type& __a = allocator_type()) > : _M_node_allocator(__a), > _M_hash(__hf), > _M_equals(__eql), > _M_get_key(_ExtractKey()), > _M_buckets(__a), > _M_num_elements(0) > { > _M_initialize_buckets(__n); > } > > hashtable(const hashtable& __ht) > : _M_node_allocator(__ht.get_allocator()), > _M_hash(__ht._M_hash), > _M_equals(__ht._M_equals), > _M_get_key(__ht._M_get_key), > _M_buckets(__ht.get_allocator()), > _M_num_elements(0) > { > _M_copy_from(__ht); > } > > hashtable& operator= (const hashtable& __ht) > { > if (&__ht != this) { > clear(); > _M_hash = __ht._M_hash; > _M_equals = __ht._M_equals; > _M_get_key = __ht._M_get_key; > _M_copy_from(__ht); > } > return *this; > } > > ~hashtable() { clear(); } > > size_type size() const { return _M_num_elements; } > size_type max_size() const { return size_type(-1); } > bool empty() const { return size() == 0; } > > void swap(hashtable& __ht) > { > std::swap(_M_hash, __ht._M_hash); > std::swap(_M_equals, __ht._M_equals); > std::swap(_M_get_key, __ht._M_get_key); > _M_buckets.swap(__ht._M_buckets); > std::swap(_M_num_elements, __ht._M_num_elements); > } > > iterator begin() > { > for (size_type __n = 0; __n < _M_buckets.size(); ++__n) > if (_M_buckets[__n]) > return iterator(_M_buckets[__n], this); > return end(); > } > > iterator end() { return iterator(0, this); } > > const_iterator begin() const > { > for (size_type __n = 0; __n < _M_buckets.size(); ++__n) > if (_M_buckets[__n]) > return const_iterator(_M_buckets[__n], this); > return end(); > } > > const_iterator end() const { return const_iterator(0, this); } > > template <class _Vl, class _Ky, class _HF, class _Ex, class _Eq, class _Al> > friend bool operator== (const hashtable<_Vl, _Ky, _HF, _Ex, _Eq, _Al>&, > const hashtable<_Vl, _Ky, _HF, _Ex, _Eq, _Al>&); >public: > > size_type bucket_count() const { return _M_buckets.size(); } > > size_type max_bucket_count() const > { return __stl_prime_list[(int)__stl_num_primes - 1]; } > > size_type elems_in_bucket(size_type __bucket) const > { > size_type __result = 0; > for (_Node* __cur = _M_buckets[__bucket]; __cur; __cur = __cur->_M_next) > __result += 1; > return __result; > } > > pair<iterator, bool> insert_unique(const value_type& __obj) > { > resize(_M_num_elements + 1); > return insert_unique_noresize(__obj); > } > > iterator insert_equal(const value_type& __obj) > { > resize(_M_num_elements + 1); > return insert_equal_noresize(__obj); > } > > pair<iterator, bool> insert_unique_noresize(const value_type& __obj); > iterator insert_equal_noresize(const value_type& __obj); > > template <class _InputIterator> > void insert_unique(_InputIterator __f, _InputIterator __l) > { > insert_unique(__f, __l, __iterator_category(__f)); > } > > template <class _InputIterator> > void insert_equal(_InputIterator __f, _InputIterator __l) > { > insert_equal(__f, __l, __iterator_category(__f)); > } > > template <class _InputIterator> > void insert_unique(_InputIterator __f, _InputIterator __l, > input_iterator_tag) > { > for ( ; __f != __l; ++__f) > insert_unique(*__f); > } > > template <class _InputIterator> > void insert_equal(_InputIterator __f, _InputIterator __l, > input_iterator_tag) > { > for ( ; __f != __l; ++__f) > insert_equal(*__f); > } > > template <class _ForwardIterator> > void insert_unique(_ForwardIterator __f, _ForwardIterator __l, > forward_iterator_tag) > { > size_type __n = distance(__f, __l); > resize(_M_num_elements + __n); > for ( ; __n > 0; --__n, ++__f) > insert_unique_noresize(*__f); > } > > template <class _ForwardIterator> > void insert_equal(_ForwardIterator __f, _ForwardIterator __l, > forward_iterator_tag) > { > size_type __n = distance(__f, __l); > resize(_M_num_elements + __n); > for ( ; __n > 0; --__n, ++__f) > insert_equal_noresize(*__f); > } > > reference find_or_insert(const value_type& __obj); > > iterator find(const key_type& __key) > { > size_type __n = _M_bkt_num_key(__key); > _Node* __first; > for ( __first = _M_buckets[__n]; > __first && !_M_equals(_M_get_key(__first->_M_val), __key); > __first = __first->_M_next) > {} > return iterator(__first, this); > } > > const_iterator find(const key_type& __key) const > { > size_type __n = _M_bkt_num_key(__key); > const _Node* __first; > for ( __first = _M_buckets[__n]; > __first && !_M_equals(_M_get_key(__first->_M_val), __key); > __first = __first->_M_next) > {} > return const_iterator(__first, this); > } > > size_type count(const key_type& __key) const > { > const size_type __n = _M_bkt_num_key(__key); > size_type __result = 0; > > for (const _Node* __cur = _M_buckets[__n]; __cur; __cur = __cur->_M_next) > if (_M_equals(_M_get_key(__cur->_M_val), __key)) > ++__result; > return __result; > } > > pair<iterator, iterator> > equal_range(const key_type& __key); > > pair<const_iterator, const_iterator> > equal_range(const key_type& __key) const; > > size_type erase(const key_type& __key); > void erase(const iterator& __it); > void erase(iterator __first, iterator __last); > > void erase(const const_iterator& __it); > void erase(const_iterator __first, const_iterator __last); > > void resize(size_type __num_elements_hint); > void clear(); > >private: > size_type _M_next_size(size_type __n) const > { return __stl_next_prime(__n); } > > void _M_initialize_buckets(size_type __n) > { > const size_type __n_buckets = _M_next_size(__n); > _M_buckets.reserve(__n_buckets); > _M_buckets.insert(_M_buckets.end(), __n_buckets, (_Node*) 0); > _M_num_elements = 0; > } > > size_type _M_bkt_num_key(const key_type& __key) const > { > return _M_bkt_num_key(__key, _M_buckets.size()); > } > > size_type _M_bkt_num(const value_type& __obj) const > { > return _M_bkt_num_key(_M_get_key(__obj)); > } > > size_type _M_bkt_num_key(const key_type& __key, size_t __n) const > { > return _M_hash(__key) % __n; > } > > size_type _M_bkt_num(const value_type& __obj, size_t __n) const > { > return _M_bkt_num_key(_M_get_key(__obj), __n); > } > > _Node* _M_new_node(const value_type& __obj) > { > _Node* __n = _M_get_node(); > __n->_M_next = 0; > try { > _Construct(&__n->_M_val, __obj); > return __n; > } > catch(...) > { > _M_put_node(__n); > throw; > } > } > > void _M_delete_node(_Node* __n) > { > _Destroy(&__n->_M_val); > _M_put_node(__n); > } > > void _M_erase_bucket(const size_type __n, _Node* __first, _Node* __last); > void _M_erase_bucket(const size_type __n, _Node* __last); > > void _M_copy_from(const hashtable& __ht); > >}; > >template <class _Val, class _Key, class _HF, class _ExK, class _EqK, > class _All> >_Hashtable_iterator<_Val,_Key,_HF,_ExK,_EqK,_All>& >_Hashtable_iterator<_Val,_Key,_HF,_ExK,_EqK,_All>::operator++() >{ > const _Node* __old = _M_cur; > _M_cur = _M_cur->_M_next; > if (!_M_cur) { > size_type __bucket = _M_ht->_M_bkt_num(__old->_M_val); > while (!_M_cur && ++__bucket < _M_ht->_M_buckets.size()) > _M_cur = _M_ht->_M_buckets[__bucket]; > } > return *this; >} > >template <class _Val, class _Key, class _HF, class _ExK, class _EqK, > class _All> >inline _Hashtable_iterator<_Val,_Key,_HF,_ExK,_EqK,_All> >_Hashtable_iterator<_Val,_Key,_HF,_ExK,_EqK,_All>::operator++(int) >{ > iterator __tmp = *this; > ++*this; > return __tmp; >} > >template <class _Val, class _Key, class _HF, class _ExK, class _EqK, > class _All> >_Hashtable_const_iterator<_Val,_Key,_HF,_ExK,_EqK,_All>& >_Hashtable_const_iterator<_Val,_Key,_HF,_ExK,_EqK,_All>::operator++() >{ > const _Node* __old = _M_cur; > _M_cur = _M_cur->_M_next; > if (!_M_cur) { > size_type __bucket = _M_ht->_M_bkt_num(__old->_M_val); > while (!_M_cur && ++__bucket < _M_ht->_M_buckets.size()) > _M_cur = _M_ht->_M_buckets[__bucket]; > } > return *this; >} > >template <class _Val, class _Key, class _HF, class _ExK, class _EqK, > class _All> >inline _Hashtable_const_iterator<_Val,_Key,_HF,_ExK,_EqK,_All> >_Hashtable_const_iterator<_Val,_Key,_HF,_ExK,_EqK,_All>::operator++(int) >{ > const_iterator __tmp = *this; > ++*this; > return __tmp; >} > >template <class _Val, class _Key, class _HF, class _Ex, class _Eq, class _All> >bool operator==(const hashtable<_Val,_Key,_HF,_Ex,_Eq,_All>& __ht1, > const hashtable<_Val,_Key,_HF,_Ex,_Eq,_All>& __ht2) >{ > typedef typename hashtable<_Val,_Key,_HF,_Ex,_Eq,_All>::_Node _Node; > if (__ht1._M_buckets.size() != __ht2._M_buckets.size()) > return false; > for (size_t __n = 0; __n < __ht1._M_buckets.size(); ++__n) { > _Node* __cur1 = __ht1._M_buckets[__n]; > _Node* __cur2 = __ht2._M_buckets[__n]; > > for ( ; __cur1 && __cur2; > __cur1 = __cur1->_M_next, __cur2 = __cur2->_M_next) > {} > if (__cur1 || __cur2) > return false; > > for (__cur1 = __ht1._M_buckets[__n] ; __cur1; __cur1 = __cur1->_M_next) > { > bool _found__cur1 = false; > for (_Node* __cur2 = __ht2._M_buckets[__n]; > __cur2; __cur2 = __cur2->_M_next) > { > if (__cur1->_M_val == __cur2->_M_val) > { > _found__cur1 = true; > break; > } > } > if (!_found__cur1) > return false; > } > } > return true; >} > >template <class _Val, class _Key, class _HF, class _Ex, class _Eq, class _All> >inline bool operator!=(const hashtable<_Val,_Key,_HF,_Ex,_Eq,_All>& __ht1, > const hashtable<_Val,_Key,_HF,_Ex,_Eq,_All>& __ht2) { > return !(__ht1 == __ht2); >} > >template <class _Val, class _Key, class _HF, class _Extract, class _EqKey, > class _All> >inline void swap(hashtable<_Val, _Key, _HF, _Extract, _EqKey, _All>& __ht1, > hashtable<_Val, _Key, _HF, _Extract, _EqKey, _All>& __ht2) { > __ht1.swap(__ht2); >} > > >template <class _Val, class _Key, class _HF, class _Ex, class _Eq, class _All> >pair<typename hashtable<_Val,_Key,_HF,_Ex,_Eq,_All>::iterator, bool> >hashtable<_Val,_Key,_HF,_Ex,_Eq,_All> > ::insert_unique_noresize(const value_type& __obj) >{ > const size_type __n = _M_bkt_num(__obj); > _Node* __first = _M_buckets[__n]; > > for (_Node* __cur = __first; __cur; __cur = __cur->_M_next) > if (_M_equals(_M_get_key(__cur->_M_val), _M_get_key(__obj))) > return pair<iterator, bool>(iterator(__cur, this), false); > > _Node* __tmp = _M_new_node(__obj); > __tmp->_M_next = __first; > _M_buckets[__n] = __tmp; > ++_M_num_elements; > return pair<iterator, bool>(iterator(__tmp, this), true); >} > >template <class _Val, class _Key, class _HF, class _Ex, class _Eq, class _All> >typename hashtable<_Val,_Key,_HF,_Ex,_Eq,_All>::iterator >hashtable<_Val,_Key,_HF,_Ex,_Eq,_All> > ::insert_equal_noresize(const value_type& __obj) >{ > const size_type __n = _M_bkt_num(__obj); > _Node* __first = _M_buckets[__n]; > > for (_Node* __cur = __first; __cur; __cur = __cur->_M_next) > if (_M_equals(_M_get_key(__cur->_M_val), _M_get_key(__obj))) { > _Node* __tmp = _M_new_node(__obj); > __tmp->_M_next = __cur->_M_next; > __cur->_M_next = __tmp; > ++_M_num_elements; > return iterator(__tmp, this); > } > > _Node* __tmp = _M_new_node(__obj); > __tmp->_M_next = __first; > _M_buckets[__n] = __tmp; > ++_M_num_elements; > return iterator(__tmp, this); >} > >template <class _Val, class _Key, class _HF, class _Ex, class _Eq, class _All> >typename hashtable<_Val,_Key,_HF,_Ex,_Eq,_All>::reference >hashtable<_Val,_Key,_HF,_Ex,_Eq,_All>::find_or_insert(const value_type& __obj) >{ > resize(_M_num_elements + 1); > > size_type __n = _M_bkt_num(__obj); > _Node* __first = _M_buckets[__n]; > > for (_Node* __cur = __first; __cur; __cur = __cur->_M_next) > if (_M_equals(_M_get_key(__cur->_M_val), _M_get_key(__obj))) > return __cur->_M_val; > > _Node* __tmp = _M_new_node(__obj); > __tmp->_M_next = __first; > _M_buckets[__n] = __tmp; > ++_M_num_elements; > return __tmp->_M_val; >} > >template <class _Val, class _Key, class _HF, class _Ex, class _Eq, class _All> >pair<typename hashtable<_Val,_Key,_HF,_Ex,_Eq,_All>::iterator, > typename hashtable<_Val,_Key,_HF,_Ex,_Eq,_All>::iterator> >hashtable<_Val,_Key,_HF,_Ex,_Eq,_All>::equal_range(const key_type& __key) >{ > typedef pair<iterator, iterator> _Pii; > const size_type __n = _M_bkt_num_key(__key); > > for (_Node* __first = _M_buckets[__n]; __first; __first = __first->_M_next) > if (_M_equals(_M_get_key(__first->_M_val), __key)) { > for (_Node* __cur = __first->_M_next; __cur; __cur = __cur->_M_next) > if (!_M_equals(_M_get_key(__cur->_M_val), __key)) > return _Pii(iterator(__first, this), iterator(__cur, this)); > for (size_type __m = __n + 1; __m < _M_buckets.size(); ++__m) > if (_M_buckets[__m]) > return _Pii(iterator(__first, this), > iterator(_M_buckets[__m], this)); > return _Pii(iterator(__first, this), end()); > } > return _Pii(end(), end()); >} > >template <class _Val, class _Key, class _HF, class _Ex, class _Eq, class _All> >pair<typename hashtable<_Val,_Key,_HF,_Ex,_Eq,_All>::const_iterator, > typename hashtable<_Val,_Key,_HF,_Ex,_Eq,_All>::const_iterator> >hashtable<_Val,_Key,_HF,_Ex,_Eq,_All> > ::equal_range(const key_type& __key) const >{ > typedef pair<const_iterator, const_iterator> _Pii; > const size_type __n = _M_bkt_num_key(__key); > > for (const _Node* __first = _M_buckets[__n] ; > __first; > __first = __first->_M_next) { > if (_M_equals(_M_get_key(__first->_M_val), __key)) { > for (const _Node* __cur = __first->_M_next; > __cur; > __cur = __cur->_M_next) > if (!_M_equals(_M_get_key(__cur->_M_val), __key)) > return _Pii(const_iterator(__first, this), > const_iterator(__cur, this)); > for (size_type __m = __n + 1; __m < _M_buckets.size(); ++__m) > if (_M_buckets[__m]) > return _Pii(const_iterator(__first, this), > const_iterator(_M_buckets[__m], this)); > return _Pii(const_iterator(__first, this), end()); > } > } > return _Pii(end(), end()); >} > >template <class _Val, class _Key, class _HF, class _Ex, class _Eq, class _All> >typename hashtable<_Val,_Key,_HF,_Ex,_Eq,_All>::size_type >hashtable<_Val,_Key,_HF,_Ex,_Eq,_All>::erase(const key_type& __key) >{ > const size_type __n = _M_bkt_num_key(__key); > _Node* __first = _M_buckets[__n]; > size_type __erased = 0; > > if (__first) { > _Node* __cur = __first; > _Node* __next = __cur->_M_next; > while (__next) { > if (_M_equals(_M_get_key(__next->_M_val), __key)) { > __cur->_M_next = __next->_M_next; > _M_delete_node(__next); > __next = __cur->_M_next; > ++__erased; > --_M_num_elements; > } > else { > __cur = __next; > __next = __cur->_M_next; > } > } > if (_M_equals(_M_get_key(__first->_M_val), __key)) { > _M_buckets[__n] = __first->_M_next; > _M_delete_node(__first); > ++__erased; > --_M_num_elements; > } > } > return __erased; >} > >template <class _Val, class _Key, class _HF, class _Ex, class _Eq, class _All> >void hashtable<_Val,_Key,_HF,_Ex,_Eq,_All>::erase(const iterator& __it) >{ > _Node* __p = __it._M_cur; > if (__p) { > const size_type __n = _M_bkt_num(__p->_M_val); > _Node* __cur = _M_buckets[__n]; > > if (__cur == __p) { > _M_buckets[__n] = __cur->_M_next; > _M_delete_node(__cur); > --_M_num_elements; > } > else { > _Node* __next = __cur->_M_next; > while (__next) { > if (__next == __p) { > __cur->_M_next = __next->_M_next; > _M_delete_node(__next); > --_M_num_elements; > break; > } > else { > __cur = __next; > __next = __cur->_M_next; > } > } > } > } >} > >template <class _Val, class _Key, class _HF, class _Ex, class _Eq, class _All> >void hashtable<_Val,_Key,_HF,_Ex,_Eq,_All> > ::erase(iterator __first, iterator __last) >{ > size_type __f_bucket = __first._M_cur ? > _M_bkt_num(__first._M_cur->_M_val) : _M_buckets.size(); > size_type __l_bucket = __last._M_cur ? > _M_bkt_num(__last._M_cur->_M_val) : _M_buckets.size(); > > if (__first._M_cur == __last._M_cur) > return; > else if (__f_bucket == __l_bucket) > _M_erase_bucket(__f_bucket, __first._M_cur, __last._M_cur); > else { > _M_erase_bucket(__f_bucket, __first._M_cur, 0); > for (size_type __n = __f_bucket + 1; __n < __l_bucket; ++__n) > _M_erase_bucket(__n, 0); > if (__l_bucket != _M_buckets.size()) > _M_erase_bucket(__l_bucket, __last._M_cur); > } >} > >template <class _Val, class _Key, class _HF, class _Ex, class _Eq, class _All> >inline void >hashtable<_Val,_Key,_HF,_Ex,_Eq,_All>::erase(const_iterator __first, > const_iterator __last) >{ > erase(iterator(const_cast<_Node*>(__first._M_cur), > const_cast<hashtable*>(__first._M_ht)), > iterator(const_cast<_Node*>(__last._M_cur), > const_cast<hashtable*>(__last._M_ht))); >} > >template <class _Val, class _Key, class _HF, class _Ex, class _Eq, class _All> >inline void >hashtable<_Val,_Key,_HF,_Ex,_Eq,_All>::erase(const const_iterator& __it) >{ > erase(iterator(const_cast<_Node*>(__it._M_cur), > const_cast<hashtable*>(__it._M_ht))); >} > >template <class _Val, class _Key, class _HF, class _Ex, class _Eq, class _All> >void hashtable<_Val,_Key,_HF,_Ex,_Eq,_All> > ::resize(size_type __num_elements_hint) >{ > const size_type __old_n = _M_buckets.size(); > if (__num_elements_hint > __old_n) { > const size_type __n = _M_next_size(__num_elements_hint); > if (__n > __old_n) { > vector<_Node*, _All> __tmp(__n, (_Node*)(0), > _M_buckets.get_allocator()); > try { > for (size_type __bucket = 0; __bucket < __old_n; ++__bucket) { > _Node* __first = _M_buckets[__bucket]; > while (__first) { > size_type __new_bucket = _M_bkt_num(__first->_M_val, __n); > _M_buckets[__bucket] = __first->_M_next; > __first->_M_next = __tmp[__new_bucket]; > __tmp[__new_bucket] = __first; > __first = _M_buckets[__bucket]; > } > } > _M_buckets.swap(__tmp); > } > catch(...) { > for (size_type __bucket = 0; __bucket < __tmp.size(); ++__bucket) { > while (__tmp[__bucket]) { > _Node* __next = __tmp[__bucket]->_M_next; > _M_delete_node(__tmp[__bucket]); > __tmp[__bucket] = __next; > } > } > throw; > } > } > } >} > >template <class _Val, class _Key, class _HF, class _Ex, class _Eq, class _All> >void hashtable<_Val,_Key,_HF,_Ex,_Eq,_All> > ::_M_erase_bucket(const size_type __n, _Node* __first, _Node* __last) >{ > _Node* __cur = _M_buckets[__n]; > if (__cur == __first) > _M_erase_bucket(__n, __last); > else { > _Node* __next; > for (__next = __cur->_M_next; > __next != __first; > __cur = __next, __next = __cur->_M_next) > ; > while (__next != __last) { > __cur->_M_next = __next->_M_next; > _M_delete_node(__next); > __next = __cur->_M_next; > --_M_num_elements; > } > } >} > >template <class _Val, class _Key, class _HF, class _Ex, class _Eq, class _All> >void hashtable<_Val,_Key,_HF,_Ex,_Eq,_All> > ::_M_erase_bucket(const size_type __n, _Node* __last) >{ > _Node* __cur = _M_buckets[__n]; > while (__cur != __last) { > _Node* __next = __cur->_M_next; > _M_delete_node(__cur); > __cur = __next; > _M_buckets[__n] = __cur; > --_M_num_elements; > } >} > >template <class _Val, class _Key, class _HF, class _Ex, class _Eq, class _All> >void hashtable<_Val,_Key,_HF,_Ex,_Eq,_All>::clear() >{ > for (size_type __i = 0; __i < _M_buckets.size(); ++__i) { > _Node* __cur = _M_buckets[__i]; > while (__cur != 0) { > _Node* __next = __cur->_M_next; > _M_delete_node(__cur); > __cur = __next; > } > _M_buckets[__i] = 0; > } > _M_num_elements = 0; >} > > >template <class _Val, class _Key, class _HF, class _Ex, class _Eq, class _All> >void hashtable<_Val,_Key,_HF,_Ex,_Eq,_All> > ::_M_copy_from(const hashtable& __ht) >{ > _M_buckets.clear(); > _M_buckets.reserve(__ht._M_buckets.size()); > _M_buckets.insert(_M_buckets.end(), __ht._M_buckets.size(), (_Node*) 0); > try { > for (size_type __i = 0; __i < __ht._M_buckets.size(); ++__i) { > const _Node* __cur = __ht._M_buckets[__i]; > if (__cur) { > _Node* __local_copy = _M_new_node(__cur->_M_val); > _M_buckets[__i] = __local_copy; > > for (_Node* __next = __cur->_M_next; > __next; > __cur = __next, __next = __cur->_M_next) { > __local_copy->_M_next = _M_new_node(__next->_M_val); > __local_copy = __local_copy->_M_next; > } > } > } > _M_num_elements = __ht._M_num_elements; > } > catch(...) > { > clear(); > throw; > } >} > >} ># 66 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/ext/hash_map" 2 3 > > >namespace __gnu_cxx >{ >using std::equal_to; >using std::allocator; >using std::pair; >using std::_Select1st; > > > >template <class _Key, class _Tp, > class _HashFcn = hash<_Key>, > class _EqualKey = equal_to<_Key>, > class _Alloc = allocator<_Tp> > >class hash_map; > >template <class _Key, class _Tp, class _HashFn, class _EqKey, class _Alloc> >inline bool operator==(const hash_map<_Key, _Tp, _HashFn, _EqKey, _Alloc>&, > const hash_map<_Key, _Tp, _HashFn, _EqKey, _Alloc>&); > > > > > >template <class _Key, class _Tp, class _HashFcn, class _EqualKey, > class _Alloc> >class hash_map >{ >private: > typedef hashtable<pair<const _Key,_Tp>,_Key,_HashFcn, > _Select1st<pair<const _Key,_Tp> >,_EqualKey,_Alloc> _Ht; > _Ht _M_ht; > >public: > typedef typename _Ht::key_type key_type; > typedef _Tp data_type; > typedef _Tp mapped_type; > typedef typename _Ht::value_type value_type; > typedef typename _Ht::hasher hasher; > typedef typename _Ht::key_equal key_equal; > > typedef typename _Ht::size_type size_type; > typedef typename _Ht::difference_type difference_type; > typedef typename _Ht::pointer pointer; > typedef typename _Ht::const_pointer const_pointer; > typedef typename _Ht::reference reference; > typedef typename _Ht::const_reference const_reference; > > typedef typename _Ht::iterator iterator; > typedef typename _Ht::const_iterator const_iterator; > > typedef typename _Ht::allocator_type allocator_type; > > hasher hash_funct() const { return _M_ht.hash_funct(); } > key_equal key_eq() const { return _M_ht.key_eq(); } > allocator_type get_allocator() const { return _M_ht.get_allocator(); } > >public: > hash_map() : _M_ht(100, hasher(), key_equal(), allocator_type()) {} > explicit hash_map(size_type __n) > : _M_ht(__n, hasher(), key_equal(), allocator_type()) {} > hash_map(size_type __n, const hasher& __hf) > : _M_ht(__n, __hf, key_equal(), allocator_type()) {} > hash_map(size_type __n, const hasher& __hf, const key_equal& __eql, > const allocator_type& __a = allocator_type()) > : _M_ht(__n, __hf, __eql, __a) {} > > template <class _InputIterator> > hash_map(_InputIterator __f, _InputIterator __l) > : _M_ht(100, hasher(), key_equal(), allocator_type()) > { _M_ht.insert_unique(__f, __l); } > template <class _InputIterator> > hash_map(_InputIterator __f, _InputIterator __l, size_type __n) > : _M_ht(__n, hasher(), key_equal(), allocator_type()) > { _M_ht.insert_unique(__f, __l); } > template <class _InputIterator> > hash_map(_InputIterator __f, _InputIterator __l, size_type __n, > const hasher& __hf) > : _M_ht(__n, __hf, key_equal(), allocator_type()) > { _M_ht.insert_unique(__f, __l); } > template <class _InputIterator> > hash_map(_InputIterator __f, _InputIterator __l, size_type __n, > const hasher& __hf, const key_equal& __eql, > const allocator_type& __a = allocator_type()) > : _M_ht(__n, __hf, __eql, __a) > { _M_ht.insert_unique(__f, __l); } > >public: > size_type size() const { return _M_ht.size(); } > size_type max_size() const { return _M_ht.max_size(); } > bool empty() const { return _M_ht.empty(); } > void swap(hash_map& __hs) { _M_ht.swap(__hs._M_ht); } > > template <class _K1, class _T1, class _HF, class _EqK, class _Al> > friend bool operator== (const hash_map<_K1, _T1, _HF, _EqK, _Al>&, > const hash_map<_K1, _T1, _HF, _EqK, _Al>&); > > iterator begin() { return _M_ht.begin(); } > iterator end() { return _M_ht.end(); } > const_iterator begin() const { return _M_ht.begin(); } > const_iterator end() const { return _M_ht.end(); } > >public: > pair<iterator,bool> insert(const value_type& __obj) > { return _M_ht.insert_unique(__obj); } > template <class _InputIterator> > void insert(_InputIterator __f, _InputIterator __l) > { _M_ht.insert_unique(__f,__l); } > pair<iterator,bool> insert_noresize(const value_type& __obj) > { return _M_ht.insert_unique_noresize(__obj); } > > iterator find(const key_type& __key) { return _M_ht.find(__key); } > const_iterator find(const key_type& __key) const > { return _M_ht.find(__key); } > > _Tp& operator[](const key_type& __key) { > return _M_ht.find_or_insert(value_type(__key, _Tp())).second; > } > > size_type count(const key_type& __key) const { return _M_ht.count(__key); } > > pair<iterator, iterator> equal_range(const key_type& __key) > { return _M_ht.equal_range(__key); } > pair<const_iterator, const_iterator> > equal_range(const key_type& __key) const > { return _M_ht.equal_range(__key); } > > size_type erase(const key_type& __key) {return _M_ht.erase(__key); } > void erase(iterator __it) { _M_ht.erase(__it); } > void erase(iterator __f, iterator __l) { _M_ht.erase(__f, __l); } > void clear() { _M_ht.clear(); } > > void resize(size_type __hint) { _M_ht.resize(__hint); } > size_type bucket_count() const { return _M_ht.bucket_count(); } > size_type max_bucket_count() const { return _M_ht.max_bucket_count(); } > size_type elems_in_bucket(size_type __n) const > { return _M_ht.elems_in_bucket(__n); } >}; > >template <class _Key, class _Tp, class _HashFcn, class _EqlKey, class _Alloc> >inline bool >operator==(const hash_map<_Key,_Tp,_HashFcn,_EqlKey,_Alloc>& __hm1, > const hash_map<_Key,_Tp,_HashFcn,_EqlKey,_Alloc>& __hm2) >{ > return __hm1._M_ht == __hm2._M_ht; >} > >template <class _Key, class _Tp, class _HashFcn, class _EqlKey, class _Alloc> >inline bool >operator!=(const hash_map<_Key,_Tp,_HashFcn,_EqlKey,_Alloc>& __hm1, > const hash_map<_Key,_Tp,_HashFcn,_EqlKey,_Alloc>& __hm2) { > return !(__hm1 == __hm2); >} > >template <class _Key, class _Tp, class _HashFcn, class _EqlKey, class _Alloc> >inline void >swap(hash_map<_Key,_Tp,_HashFcn,_EqlKey,_Alloc>& __hm1, > hash_map<_Key,_Tp,_HashFcn,_EqlKey,_Alloc>& __hm2) >{ > __hm1.swap(__hm2); >} > > > >template <class _Key, class _Tp, > class _HashFcn = hash<_Key>, > class _EqualKey = equal_to<_Key>, > class _Alloc = allocator<_Tp> > >class hash_multimap; > >template <class _Key, class _Tp, class _HF, class _EqKey, class _Alloc> >inline bool >operator==(const hash_multimap<_Key,_Tp,_HF,_EqKey,_Alloc>& __hm1, > const hash_multimap<_Key,_Tp,_HF,_EqKey,_Alloc>& __hm2); > > > > > > >template <class _Key, class _Tp, class _HashFcn, class _EqualKey, class _Alloc> >class hash_multimap >{ > > > > ; > ; > >private: > typedef hashtable<pair<const _Key, _Tp>, _Key, _HashFcn, > _Select1st<pair<const _Key, _Tp> >, _EqualKey, _Alloc> > _Ht; > _Ht _M_ht; > >public: > typedef typename _Ht::key_type key_type; > typedef _Tp data_type; > typedef _Tp mapped_type; > typedef typename _Ht::value_type value_type; > typedef typename _Ht::hasher hasher; > typedef typename _Ht::key_equal key_equal; > > typedef typename _Ht::size_type size_type; > typedef typename _Ht::difference_type difference_type; > typedef typename _Ht::pointer pointer; > typedef typename _Ht::const_pointer const_pointer; > typedef typename _Ht::reference reference; > typedef typename _Ht::const_reference const_reference; > > typedef typename _Ht::iterator iterator; > typedef typename _Ht::const_iterator const_iterator; > > typedef typename _Ht::allocator_type allocator_type; > > hasher hash_funct() const { return _M_ht.hash_funct(); } > key_equal key_eq() const { return _M_ht.key_eq(); } > allocator_type get_allocator() const { return _M_ht.get_allocator(); } > >public: > hash_multimap() : _M_ht(100, hasher(), key_equal(), allocator_type()) {} > explicit hash_multimap(size_type __n) > : _M_ht(__n, hasher(), key_equal(), allocator_type()) {} > hash_multimap(size_type __n, const hasher& __hf) > : _M_ht(__n, __hf, key_equal(), allocator_type()) {} > hash_multimap(size_type __n, const hasher& __hf, const key_equal& __eql, > const allocator_type& __a = allocator_type()) > : _M_ht(__n, __hf, __eql, __a) {} > > template <class _InputIterator> > hash_multimap(_InputIterator __f, _InputIterator __l) > : _M_ht(100, hasher(), key_equal(), allocator_type()) > { _M_ht.insert_equal(__f, __l); } > template <class _InputIterator> > hash_multimap(_InputIterator __f, _InputIterator __l, size_type __n) > : _M_ht(__n, hasher(), key_equal(), allocator_type()) > { _M_ht.insert_equal(__f, __l); } > template <class _InputIterator> > hash_multimap(_InputIterator __f, _InputIterator __l, size_type __n, > const hasher& __hf) > : _M_ht(__n, __hf, key_equal(), allocator_type()) > { _M_ht.insert_equal(__f, __l); } > template <class _InputIterator> > hash_multimap(_InputIterator __f, _InputIterator __l, size_type __n, > const hasher& __hf, const key_equal& __eql, > const allocator_type& __a = allocator_type()) > : _M_ht(__n, __hf, __eql, __a) > { _M_ht.insert_equal(__f, __l); } > >public: > size_type size() const { return _M_ht.size(); } > size_type max_size() const { return _M_ht.max_size(); } > bool empty() const { return _M_ht.empty(); } > void swap(hash_multimap& __hs) { _M_ht.swap(__hs._M_ht); } > > template <class _K1, class _T1, class _HF, class _EqK, class _Al> > friend bool operator== (const hash_multimap<_K1, _T1, _HF, _EqK, _Al>&, > const hash_multimap<_K1, _T1, _HF, _EqK, _Al>&); > > iterator begin() { return _M_ht.begin(); } > iterator end() { return _M_ht.end(); } > const_iterator begin() const { return _M_ht.begin(); } > const_iterator end() const { return _M_ht.end(); } > >public: > iterator insert(const value_type& __obj) > { return _M_ht.insert_equal(__obj); } > template <class _InputIterator> > void insert(_InputIterator __f, _InputIterator __l) > { _M_ht.insert_equal(__f,__l); } > iterator insert_noresize(const value_type& __obj) > { return _M_ht.insert_equal_noresize(__obj); } > > iterator find(const key_type& __key) { return _M_ht.find(__key); } > const_iterator find(const key_type& __key) const > { return _M_ht.find(__key); } > > size_type count(const key_type& __key) const { return _M_ht.count(__key); } > > pair<iterator, iterator> equal_range(const key_type& __key) > { return _M_ht.equal_range(__key); } > pair<const_iterator, const_iterator> > equal_range(const key_type& __key) const > { return _M_ht.equal_range(__key); } > > size_type erase(const key_type& __key) {return _M_ht.erase(__key); } > void erase(iterator __it) { _M_ht.erase(__it); } > void erase(iterator __f, iterator __l) { _M_ht.erase(__f, __l); } > void clear() { _M_ht.clear(); } > >public: > void resize(size_type __hint) { _M_ht.resize(__hint); } > size_type bucket_count() const { return _M_ht.bucket_count(); } > size_type max_bucket_count() const { return _M_ht.max_bucket_count(); } > size_type elems_in_bucket(size_type __n) const > { return _M_ht.elems_in_bucket(__n); } >}; > >template <class _Key, class _Tp, class _HF, class _EqKey, class _Alloc> >inline bool >operator==(const hash_multimap<_Key,_Tp,_HF,_EqKey,_Alloc>& __hm1, > const hash_multimap<_Key,_Tp,_HF,_EqKey,_Alloc>& __hm2) >{ > return __hm1._M_ht == __hm2._M_ht; >} > >template <class _Key, class _Tp, class _HF, class _EqKey, class _Alloc> >inline bool >operator!=(const hash_multimap<_Key,_Tp,_HF,_EqKey,_Alloc>& __hm1, > const hash_multimap<_Key,_Tp,_HF,_EqKey,_Alloc>& __hm2) { > return !(__hm1 == __hm2); >} > >template <class _Key, class _Tp, class _HashFcn, class _EqlKey, class _Alloc> >inline void >swap(hash_multimap<_Key,_Tp,_HashFcn,_EqlKey,_Alloc>& __hm1, > hash_multimap<_Key,_Tp,_HashFcn,_EqlKey,_Alloc>& __hm2) >{ > __hm1.swap(__hm2); >} > >} > >namespace std >{ > > > >template <class _Key, class _Tp, class _HashFn, class _EqKey, class _Alloc> >class insert_iterator<__gnu_cxx::hash_map<_Key, _Tp, _HashFn, _EqKey, _Alloc> > { >protected: > typedef __gnu_cxx::hash_map<_Key, _Tp, _HashFn, _EqKey, _Alloc> _Container; > _Container* container; >public: > typedef _Container container_type; > typedef output_iterator_tag iterator_category; > typedef void value_type; > typedef void difference_type; > typedef void pointer; > typedef void reference; > > insert_iterator(_Container& __x) : container(&__x) {} > insert_iterator(_Container& __x, typename _Container::iterator) > : container(&__x) {} > insert_iterator<_Container>& > operator=(const typename _Container::value_type& __value) { > container->insert(__value); > return *this; > } > insert_iterator<_Container>& operator*() { return *this; } > insert_iterator<_Container>& operator++() { return *this; } > insert_iterator<_Container>& operator++(int) { return *this; } >}; > >template <class _Key, class _Tp, class _HashFn, class _EqKey, class _Alloc> >class insert_iterator<__gnu_cxx::hash_multimap<_Key, _Tp, _HashFn, _EqKey, _Alloc> > { >protected: > typedef __gnu_cxx::hash_multimap<_Key, _Tp, _HashFn, _EqKey, _Alloc> _Container; > _Container* container; > typename _Container::iterator iter; >public: > typedef _Container container_type; > typedef output_iterator_tag iterator_category; > typedef void value_type; > typedef void difference_type; > typedef void pointer; > typedef void reference; > > insert_iterator(_Container& __x) : container(&__x) {} > insert_iterator(_Container& __x, typename _Container::iterator) > : container(&__x) {} > insert_iterator<_Container>& > operator=(const typename _Container::value_type& __value) { > container->insert(__value); > return *this; > } > insert_iterator<_Container>& operator*() { return *this; } > insert_iterator<_Container>& operator++() { return *this; } > insert_iterator<_Container>& operator++(int) { return *this; } >}; > >} ># 28 "../../OgreMain/include/OgreStdHeaders.h" 2 ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/ext/hash_set" 1 3 ># 68 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/ext/hash_set" 3 >namespace __gnu_cxx >{ >using std::equal_to; >using std::allocator; >using std::pair; >using std::_Identity; > > > >template <class _Value, > class _HashFcn = hash<_Value>, > class _EqualKey = equal_to<_Value>, > class _Alloc = allocator<_Value> > >class hash_set; > >template <class _Value, class _HashFcn, class _EqualKey, class _Alloc> >inline bool >operator==(const hash_set<_Value,_HashFcn,_EqualKey,_Alloc>& __hs1, > const hash_set<_Value,_HashFcn,_EqualKey,_Alloc>& __hs2); > > > > > > >template <class _Value, class _HashFcn, class _EqualKey, class _Alloc> >class hash_set >{ > > > ; > ; > >private: > typedef hashtable<_Value, _Value, _HashFcn, _Identity<_Value>, > _EqualKey, _Alloc> _Ht; > _Ht _M_ht; > >public: > typedef typename _Ht::key_type key_type; > typedef typename _Ht::value_type value_type; > typedef typename _Ht::hasher hasher; > typedef typename _Ht::key_equal key_equal; > > typedef typename _Ht::size_type size_type; > typedef typename _Ht::difference_type difference_type; > 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 _Ht::const_iterator iterator; > typedef typename _Ht::const_iterator const_iterator; > > typedef typename _Ht::allocator_type allocator_type; > > hasher hash_funct() const { return _M_ht.hash_funct(); } > key_equal key_eq() const { return _M_ht.key_eq(); } > allocator_type get_allocator() const { return _M_ht.get_allocator(); } > >public: > hash_set() > : _M_ht(100, hasher(), key_equal(), allocator_type()) {} > explicit hash_set(size_type __n) > : _M_ht(__n, hasher(), key_equal(), allocator_type()) {} > hash_set(size_type __n, const hasher& __hf) > : _M_ht(__n, __hf, key_equal(), allocator_type()) {} > hash_set(size_type __n, const hasher& __hf, const key_equal& __eql, > const allocator_type& __a = allocator_type()) > : _M_ht(__n, __hf, __eql, __a) {} > > template <class _InputIterator> > hash_set(_InputIterator __f, _InputIterator __l) > : _M_ht(100, hasher(), key_equal(), allocator_type()) > { _M_ht.insert_unique(__f, __l); } > template <class _InputIterator> > hash_set(_InputIterator __f, _InputIterator __l, size_type __n) > : _M_ht(__n, hasher(), key_equal(), allocator_type()) > { _M_ht.insert_unique(__f, __l); } > template <class _InputIterator> > hash_set(_InputIterator __f, _InputIterator __l, size_type __n, > const hasher& __hf) > : _M_ht(__n, __hf, key_equal(), allocator_type()) > { _M_ht.insert_unique(__f, __l); } > template <class _InputIterator> > hash_set(_InputIterator __f, _InputIterator __l, size_type __n, > const hasher& __hf, const key_equal& __eql, > const allocator_type& __a = allocator_type()) > : _M_ht(__n, __hf, __eql, __a) > { _M_ht.insert_unique(__f, __l); } > >public: > size_type size() const { return _M_ht.size(); } > size_type max_size() const { return _M_ht.max_size(); } > bool empty() const { return _M_ht.empty(); } > void swap(hash_set& __hs) { _M_ht.swap(__hs._M_ht); } > > template <class _Val, class _HF, class _EqK, class _Al> > friend bool operator== (const hash_set<_Val, _HF, _EqK, _Al>&, > const hash_set<_Val, _HF, _EqK, _Al>&); > > iterator begin() const { return _M_ht.begin(); } > iterator end() const { return _M_ht.end(); } > >public: > pair<iterator, bool> insert(const value_type& __obj) > { > pair<typename _Ht::iterator, bool> __p = _M_ht.insert_unique(__obj); > return pair<iterator,bool>(__p.first, __p.second); > } > template <class _InputIterator> > void insert(_InputIterator __f, _InputIterator __l) > { _M_ht.insert_unique(__f,__l); } > pair<iterator, bool> insert_noresize(const value_type& __obj) > { > pair<typename _Ht::iterator, bool> __p = > _M_ht.insert_unique_noresize(__obj); > return pair<iterator, bool>(__p.first, __p.second); > } > > iterator find(const key_type& __key) const { return _M_ht.find(__key); } > > size_type count(const key_type& __key) const { return _M_ht.count(__key); } > > pair<iterator, iterator> equal_range(const key_type& __key) const > { return _M_ht.equal_range(__key); } > > size_type erase(const key_type& __key) {return _M_ht.erase(__key); } > void erase(iterator __it) { _M_ht.erase(__it); } > void erase(iterator __f, iterator __l) { _M_ht.erase(__f, __l); } > void clear() { _M_ht.clear(); } > >public: > void resize(size_type __hint) { _M_ht.resize(__hint); } > size_type bucket_count() const { return _M_ht.bucket_count(); } > size_type max_bucket_count() const { return _M_ht.max_bucket_count(); } > size_type elems_in_bucket(size_type __n) const > { return _M_ht.elems_in_bucket(__n); } >}; > >template <class _Value, class _HashFcn, class _EqualKey, class _Alloc> >inline bool >operator==(const hash_set<_Value,_HashFcn,_EqualKey,_Alloc>& __hs1, > const hash_set<_Value,_HashFcn,_EqualKey,_Alloc>& __hs2) >{ > return __hs1._M_ht == __hs2._M_ht; >} > >template <class _Value, class _HashFcn, class _EqualKey, class _Alloc> >inline bool >operator!=(const hash_set<_Value,_HashFcn,_EqualKey,_Alloc>& __hs1, > const hash_set<_Value,_HashFcn,_EqualKey,_Alloc>& __hs2) { > return !(__hs1 == __hs2); >} > >template <class _Val, class _HashFcn, class _EqualKey, class _Alloc> >inline void >swap(hash_set<_Val,_HashFcn,_EqualKey,_Alloc>& __hs1, > hash_set<_Val,_HashFcn,_EqualKey,_Alloc>& __hs2) >{ > __hs1.swap(__hs2); >} > > >template <class _Value, > class _HashFcn = hash<_Value>, > class _EqualKey = equal_to<_Value>, > class _Alloc = allocator<_Value> > >class hash_multiset; > >template <class _Val, class _HashFcn, class _EqualKey, class _Alloc> >inline bool >operator==(const hash_multiset<_Val,_HashFcn,_EqualKey,_Alloc>& __hs1, > const hash_multiset<_Val,_HashFcn,_EqualKey,_Alloc>& __hs2); > > > > > > > >template <class _Value, class _HashFcn, class _EqualKey, class _Alloc> >class hash_multiset >{ > > > ; > ; > >private: > typedef hashtable<_Value, _Value, _HashFcn, _Identity<_Value>, > _EqualKey, _Alloc> _Ht; > _Ht _M_ht; > >public: > typedef typename _Ht::key_type key_type; > typedef typename _Ht::value_type value_type; > typedef typename _Ht::hasher hasher; > typedef typename _Ht::key_equal key_equal; > > typedef typename _Ht::size_type size_type; > typedef typename _Ht::difference_type difference_type; > 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 _Ht::const_iterator iterator; > typedef typename _Ht::const_iterator const_iterator; > > typedef typename _Ht::allocator_type allocator_type; > > hasher hash_funct() const { return _M_ht.hash_funct(); } > key_equal key_eq() const { return _M_ht.key_eq(); } > allocator_type get_allocator() const { return _M_ht.get_allocator(); } > >public: > hash_multiset() > : _M_ht(100, hasher(), key_equal(), allocator_type()) {} > explicit hash_multiset(size_type __n) > : _M_ht(__n, hasher(), key_equal(), allocator_type()) {} > hash_multiset(size_type __n, const hasher& __hf) > : _M_ht(__n, __hf, key_equal(), allocator_type()) {} > hash_multiset(size_type __n, const hasher& __hf, const key_equal& __eql, > const allocator_type& __a = allocator_type()) > : _M_ht(__n, __hf, __eql, __a) {} > > template <class _InputIterator> > hash_multiset(_InputIterator __f, _InputIterator __l) > : _M_ht(100, hasher(), key_equal(), allocator_type()) > { _M_ht.insert_equal(__f, __l); } > template <class _InputIterator> > hash_multiset(_InputIterator __f, _InputIterator __l, size_type __n) > : _M_ht(__n, hasher(), key_equal(), allocator_type()) > { _M_ht.insert_equal(__f, __l); } > template <class _InputIterator> > hash_multiset(_InputIterator __f, _InputIterator __l, size_type __n, > const hasher& __hf) > : _M_ht(__n, __hf, key_equal(), allocator_type()) > { _M_ht.insert_equal(__f, __l); } > template <class _InputIterator> > hash_multiset(_InputIterator __f, _InputIterator __l, size_type __n, > const hasher& __hf, const key_equal& __eql, > const allocator_type& __a = allocator_type()) > : _M_ht(__n, __hf, __eql, __a) > { _M_ht.insert_equal(__f, __l); } > >public: > size_type size() const { return _M_ht.size(); } > size_type max_size() const { return _M_ht.max_size(); } > bool empty() const { return _M_ht.empty(); } > void swap(hash_multiset& hs) { _M_ht.swap(hs._M_ht); } > > template <class _Val, class _HF, class _EqK, class _Al> > friend bool operator== (const hash_multiset<_Val, _HF, _EqK, _Al>&, > const hash_multiset<_Val, _HF, _EqK, _Al>&); > > iterator begin() const { return _M_ht.begin(); } > iterator end() const { return _M_ht.end(); } > >public: > iterator insert(const value_type& __obj) > { return _M_ht.insert_equal(__obj); } > template <class _InputIterator> > void insert(_InputIterator __f, _InputIterator __l) > { _M_ht.insert_equal(__f,__l); } > iterator insert_noresize(const value_type& __obj) > { return _M_ht.insert_equal_noresize(__obj); } > > iterator find(const key_type& __key) const { return _M_ht.find(__key); } > > size_type count(const key_type& __key) const { return _M_ht.count(__key); } > > pair<iterator, iterator> equal_range(const key_type& __key) const > { return _M_ht.equal_range(__key); } > > size_type erase(const key_type& __key) {return _M_ht.erase(__key); } > void erase(iterator __it) { _M_ht.erase(__it); } > void erase(iterator __f, iterator __l) { _M_ht.erase(__f, __l); } > void clear() { _M_ht.clear(); } > >public: > void resize(size_type __hint) { _M_ht.resize(__hint); } > size_type bucket_count() const { return _M_ht.bucket_count(); } > size_type max_bucket_count() const { return _M_ht.max_bucket_count(); } > size_type elems_in_bucket(size_type __n) const > { return _M_ht.elems_in_bucket(__n); } >}; > >template <class _Val, class _HashFcn, class _EqualKey, class _Alloc> >inline bool >operator==(const hash_multiset<_Val,_HashFcn,_EqualKey,_Alloc>& __hs1, > const hash_multiset<_Val,_HashFcn,_EqualKey,_Alloc>& __hs2) >{ > return __hs1._M_ht == __hs2._M_ht; >} > >template <class _Val, class _HashFcn, class _EqualKey, class _Alloc> >inline bool >operator!=(const hash_multiset<_Val,_HashFcn,_EqualKey,_Alloc>& __hs1, > const hash_multiset<_Val,_HashFcn,_EqualKey,_Alloc>& __hs2) { > return !(__hs1 == __hs2); >} > >template <class _Val, class _HashFcn, class _EqualKey, class _Alloc> >inline void >swap(hash_multiset<_Val,_HashFcn,_EqualKey,_Alloc>& __hs1, > hash_multiset<_Val,_HashFcn,_EqualKey,_Alloc>& __hs2) { > __hs1.swap(__hs2); >} > >} > >namespace std >{ > > > >template <class _Value, class _HashFcn, class _EqualKey, class _Alloc> >class insert_iterator<__gnu_cxx::hash_set<_Value, _HashFcn, _EqualKey, _Alloc> > { >protected: > typedef __gnu_cxx::hash_set<_Value, _HashFcn, _EqualKey, _Alloc> _Container; > _Container* container; >public: > typedef _Container container_type; > typedef output_iterator_tag iterator_category; > typedef void value_type; > typedef void difference_type; > typedef void pointer; > typedef void reference; > > insert_iterator(_Container& __x) : container(&__x) {} > insert_iterator(_Container& __x, typename _Container::iterator) > : container(&__x) {} > insert_iterator<_Container>& > operator=(const typename _Container::value_type& __value) { > container->insert(__value); > return *this; > } > insert_iterator<_Container>& operator*() { return *this; } > insert_iterator<_Container>& operator++() { return *this; } > insert_iterator<_Container>& operator++(int) { return *this; } >}; > >template <class _Value, class _HashFcn, class _EqualKey, class _Alloc> >class insert_iterator<__gnu_cxx::hash_multiset<_Value, _HashFcn, _EqualKey, _Alloc> > { >protected: > typedef __gnu_cxx::hash_multiset<_Value, _HashFcn, _EqualKey, _Alloc> _Container; > _Container* container; > typename _Container::iterator iter; >public: > typedef _Container container_type; > typedef output_iterator_tag iterator_category; > typedef void value_type; > typedef void difference_type; > typedef void pointer; > typedef void reference; > > insert_iterator(_Container& __x) : container(&__x) {} > insert_iterator(_Container& __x, typename _Container::iterator) > : container(&__x) {} > insert_iterator<_Container>& > operator=(const typename _Container::value_type& __value) { > container->insert(__value); > return *this; > } > insert_iterator<_Container>& operator*() { return *this; } > insert_iterator<_Container>& operator++() { return *this; } > insert_iterator<_Container>& operator++(int) { return *this; } >}; > >} ># 29 "../../OgreMain/include/OgreStdHeaders.h" 2 > > > > > > > ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/functional" 1 3 ># 52 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/functional" 3 > ># 53 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/functional" 3 ># 37 "../../OgreMain/include/OgreStdHeaders.h" 2 > > > ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/fstream" 1 3 ># 43 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/fstream" 3 > ># 44 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/fstream" 3 > > > > ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/i686-pc-linux-gnu/bits/basic_file.h" 1 3 ># 42 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/i686-pc-linux-gnu/bits/basic_file.h" 3 > ># 43 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/i686-pc-linux-gnu/bits/basic_file.h" 3 > > > > >namespace std >{ > > template<typename _CharT> > class __basic_file; > > > template<> > class __basic_file<char> > { > > __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/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/fstream" 2 3 > > >namespace std >{ ># 62 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/fstream" 3 > template<typename _CharT, typename _Traits> > 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<char_type, traits_type> __streambuf_type; > typedef basic_filebuf<char_type, traits_type> __filebuf_type; > typedef __basic_file<char> __file_type; > typedef typename traits_type::state_type __state_type; > typedef codecvt<char_type, char, __state_type> __codecvt_type; > typedef ctype<char_type> __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/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/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/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/fstream" 3 > __filebuf_type* > open(const char* __s, ios_base::openmode __mode); ># 190 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/fstream" 3 > __filebuf_type* > close() throw(); > > protected: > > > > > > void > _M_allocate_internal_buffer(); > > > > > > > void > _M_destroy_internal_buffer() throw(); > > > > virtual streamsize > showmanyc(); ># 231 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/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/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/fstream" 3 > virtual int_type > overflow(int_type __c = _Traits::eof()); ># 271 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/fstream" 3 > int_type > _M_really_overflow(int_type __c = _Traits::eof()); ># 281 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/fstream" 3 > void > _M_convert_to_external(char_type*, streamsize, streamsize&, streamsize&); ># 296 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/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/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/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<char>::int_type > basic_filebuf<char>::_M_underflow_common(bool __bump); > > > template<> > basic_filebuf<wchar_t>::int_type > basic_filebuf<wchar_t>::_M_underflow_common(bool __bump); > > > > template <typename _CharT, typename _Traits> > typename basic_filebuf<_CharT, _Traits>::int_type > basic_filebuf<_CharT, _Traits>::underflow() > { return _M_underflow_common(false); } > > template <typename _CharT, typename _Traits> > typename basic_filebuf<_CharT, _Traits>::int_type > basic_filebuf<_CharT, _Traits>::uflow() > { return _M_underflow_common(true); } ># 471 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/fstream" 3 > template<typename _CharT, typename _Traits> > 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<char_type, traits_type> __filebuf_type; > typedef basic_istream<char_type, traits_type> __istream_type; > > private: > > > > > > __filebuf_type _M_filebuf; > > public: ># 503 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/fstream" 3 > basic_ifstream() > : __istream_type(__null), _M_filebuf() > { this->init(&_M_filebuf); } ># 517 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/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/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/fstream" 3 > __filebuf_type* > rdbuf() const > { return const_cast<__filebuf_type*>(&_M_filebuf); } > > > > > > bool > is_open() { return _M_filebuf.is_open(); } ># 563 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/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/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/fstream" 3 > template<typename _CharT, typename _Traits> > 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<char_type, traits_type> __filebuf_type; > typedef basic_ostream<char_type, traits_type> __ostream_type; > > private: > > > > > > __filebuf_type _M_filebuf; > > public: ># 626 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/fstream" 3 > basic_ofstream() > : __ostream_type(__null), _M_filebuf() > { this->init(&_M_filebuf); } ># 641 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/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/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/fstream" 3 > __filebuf_type* > rdbuf() const > { return const_cast<__filebuf_type*>(&_M_filebuf); } > > > > > > bool > is_open() { return _M_filebuf.is_open(); } ># 688 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/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/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/fstream" 3 > template<typename _CharT, typename _Traits> > 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<char_type, traits_type> __filebuf_type; > typedef basic_ios<char_type, traits_type> __ios_type; > typedef basic_iostream<char_type, traits_type> __iostream_type; > > private: > > > > > > __filebuf_type _M_filebuf; > > public: ># 753 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/fstream" 3 > basic_fstream() > : __iostream_type(__null), _M_filebuf() > { this->init(&_M_filebuf); } ># 765 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/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/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/fstream" 3 > __filebuf_type* > rdbuf() const > { return const_cast<__filebuf_type*>(&_M_filebuf); } > > > > > > bool > is_open() { return _M_filebuf.is_open(); } ># 812 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/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/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/fstream.tcc" 1 3 ># 38 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/fstream.tcc" 3 > ># 39 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/fstream.tcc" 3 > >namespace std >{ > template<typename _CharT, typename _Traits> > 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<typename _CharT, typename _Traits> > 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<typename _CharT, typename _Traits> > 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 _CharT, typename _Traits> > 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 _CharT, typename _Traits> > 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/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/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<typename _CharT, typename _Traits> > 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 _CharT, typename _Traits> > 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 _CharT, typename _Traits> > 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<typename _CharT, typename _Traits> > 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<char*>(__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<char*>(__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<char*>(__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 _CharT, typename _Traits> > 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 _CharT, typename _Traits> > 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 _CharT, typename _Traits> > typename basic_filebuf<_CharT, _Traits>::pos_type > basic_filebuf<_CharT, _Traits>:: > 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; > > 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 && (__testin || __testout)) > { > > _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, __mode); > _M_set_indeterminate(); > } > > > else > { > pos_type __tmp = > _M_file.seekoff(__off, ios_base::cur, __mode); > if (__tmp >= 0) > { > > __ret = __tmp; > __ret += max(_M_out_cur, _M_in_cur) - _M_filepos; > } > } > } > _M_last_overflowed = false; > return __ret; > } > > template<typename _CharT, typename _Traits> > typename basic_filebuf<_CharT, _Traits>::pos_type > basic_filebuf<_CharT, _Traits>:: > seekpos(pos_type __pos, ios_base::openmode __mode) > { > > > return this->seekoff(off_type(__pos), ios_base::beg, __mode); > > } > > template<typename _CharT, typename _Traits> > void > basic_filebuf<_CharT, _Traits>:: > _M_output_unshift() > { } > > template<typename _CharT, typename _Traits> > void > basic_filebuf<_CharT, _Traits>:: > imbue(const locale&) > { _M_last_overflowed = false; } > > > > > > extern template class basic_filebuf<char>; > extern template class basic_ifstream<char>; > extern template class basic_ofstream<char>; > extern template class basic_fstream<char>; > > > extern template class basic_filebuf<wchar_t>; > extern template class basic_ifstream<wchar_t>; > extern template class basic_ofstream<wchar_t>; > extern template class basic_fstream<wchar_t>; > > >} ># 840 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/fstream" 2 3 ># 41 "../../OgreMain/include/OgreStdHeaders.h" 2 ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/iostream" 1 3 ># 42 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/iostream" 3 > ># 43 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/iostream" 3 > > > > > >namespace std >{ ># 63 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/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; >} ># 42 "../../OgreMain/include/OgreStdHeaders.h" 2 ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/iomanip" 1 3 ># 43 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/iomanip" 3 > ># 44 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/iomanip" 3 > > > > > >namespace std >{ > > > > struct _Resetiosflags { ios_base::fmtflags _M_mask; }; ># 63 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/iomanip" 3 > inline _Resetiosflags > resetiosflags(ios_base::fmtflags __mask) > { > _Resetiosflags __x; > __x._M_mask = __mask; > return __x; > } > > template<typename _CharT, typename _Traits> > 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<typename _CharT, typename _Traits> > 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/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/iomanip" 3 > inline _Setiosflags > setiosflags(ios_base::fmtflags __mask) > { > _Setiosflags __x; > __x._M_mask = __mask; > return __x; > } > > template<typename _CharT, typename _Traits> > inline basic_istream<_CharT,_Traits>& > operator>>(basic_istream<_CharT,_Traits>& __is, _Setiosflags __f) > { > __is.setf(__f._M_mask); > return __is; > } > > template<typename _CharT, typename _Traits> > 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/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/iomanip" 3 > inline _Setbase > setbase(int __base) > { > _Setbase __x; > __x._M_base = __base; > return __x; > } > > template<typename _CharT, typename _Traits> > 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<typename _CharT, typename _Traits> > 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<typename _CharT> > struct _Setfill { _CharT _M_c; }; ># 173 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/iomanip" 3 > template<typename _CharT> > inline _Setfill<_CharT> > setfill(_CharT __c) > { > _Setfill<_CharT> __x; > __x._M_c = __c; > return __x; > } > > template<typename _CharT, typename _Traits> > inline basic_istream<_CharT,_Traits>& > operator>>(basic_istream<_CharT,_Traits>& __is, _Setfill<_CharT> __f) > { > __is.fill(__f._M_c); > return __is; > } > > template<typename _CharT, typename _Traits> > 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/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/iomanip" 3 > inline _Setprecision > setprecision(int __n) > { > _Setprecision __x; > __x._M_n = __n; > return __x; > } > > template<typename _CharT, typename _Traits> > inline basic_istream<_CharT,_Traits>& > operator>>(basic_istream<_CharT,_Traits>& __is, _Setprecision __f) > { > __is.precision(__f._M_n); > return __is; > } > > template<typename _CharT, typename _Traits> > 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/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/iomanip" 3 > inline _Setw > setw(int __n) > { > _Setw __x; > __x._M_n = __n; > return __x; > } > > template<typename _CharT, typename _Traits> > inline basic_istream<_CharT,_Traits>& > operator>>(basic_istream<_CharT,_Traits>& __is, _Setw __f) > { > __is.width(__f._M_n); > return __is; > } > > template<typename _CharT, typename _Traits> > 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<char>); > 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<char>); > 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<wchar_t>); > 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<wchar_t>); > 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); > > >} ># 43 "../../OgreMain/include/OgreStdHeaders.h" 2 ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/sstream" 1 3 ># 42 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/sstream" 3 > ># 43 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/sstream" 3 > > > > >namespace std >{ ># 61 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/sstream" 3 > template<typename _CharT, typename _Traits, typename _Alloc> > 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<char_type, traits_type> __streambuf_type; > typedef basic_string<char_type, _Traits, _Alloc> __string_type; > typedef typename __string_type::size_type __size_type; > > > protected: > > > > > > > __string_type _M_string; > > public: ># 105 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/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/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/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/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/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/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/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/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/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/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/sstream" 3 > virtual int > _M_really_sync(__size_type __i, __size_type __o) > { > char_type* __base = const_cast<char_type*>(_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/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/sstream" 3 > template<typename _CharT, typename _Traits, typename _Alloc> > 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<char_type, traits_type> __istream_type; > > private: > > > > > > __stringbuf_type _M_stringbuf; > > public: ># 331 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/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/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/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/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/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/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/sstream" 3 > template <typename _CharT, typename _Traits, typename _Alloc> > 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<char_type, traits_type> __ostream_type; > > private: > > > > > > __stringbuf_type _M_stringbuf; > > public: ># 450 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/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/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/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/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/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/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/sstream" 3 > template <typename _CharT, typename _Traits, typename _Alloc> > 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<char_type, traits_type> __iostream_type; > > private: > > > > > > __stringbuf_type _M_stringbuf; > > public: ># 567 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/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/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/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/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/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/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/sstream.tcc" 1 3 ># 38 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/sstream.tcc" 3 > ># 39 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/sstream.tcc" 3 > ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/sstream" 1 3 ># 41 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/sstream.tcc" 2 3 > >namespace std >{ > template <class _CharT, class _Traits, class _Alloc> > 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 <class _CharT, class _Traits, class _Alloc> > 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 <class _CharT, class _Traits, class _Alloc> > 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 <class _CharT, class _Traits, class _Alloc> > 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/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/sstream.tcc" 3 >} ># 636 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/sstream" 2 3 ># 44 "../../OgreMain/include/OgreStdHeaders.h" 2 ># 52 "../../OgreMain/include/OgreStdHeaders.h" >extern "C" { > > ># 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 () __attribute__ ((__nonnull__ (1, 2))); > > > >extern int fstat (int __fd, struct stat *__buf) throw () __attribute__ ((__nonnull__ (2))); ># 226 "/usr/include/sys/stat.h" 3 4 >extern int stat64 (__const char *__restrict __file, > struct stat64 *__restrict __buf) throw () __attribute__ ((__nonnull__ (1, 2))); >extern int fstat64 (int __fd, struct stat64 *__buf) throw () __attribute__ ((__nonnull__ (2))); > > > > > > >extern int lstat (__const char *__restrict __file, > struct stat *__restrict __buf) throw () __attribute__ ((__nonnull__ (1, 2))); ># 248 "/usr/include/sys/stat.h" 3 4 >extern int lstat64 (__const char *__restrict __file, > struct stat64 *__restrict __buf) > throw () __attribute__ ((__nonnull__ (1, 2))); > > > > > >extern int chmod (__const char *__file, __mode_t __mode) > throw () __attribute__ ((__nonnull__ (1))); > > > > > >extern int lchmod (__const char *__file, __mode_t __mode) > throw () __attribute__ ((__nonnull__ (1))); > > > > >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 () __attribute__ ((__nonnull__ (1))); > > > > > >extern int mknod (__const char *__path, __mode_t __mode, __dev_t __dev) > throw () __attribute__ ((__nonnull__ (1))); > > > > >extern int mkfifo (__const char *__path, __mode_t __mode) > throw () __attribute__ ((__nonnull__ (1))); ># 324 "/usr/include/sys/stat.h" 3 4 >extern int __fxstat (int __ver, int __fildes, struct stat *__stat_buf) > throw () __attribute__ ((__nonnull__ (3))); >extern int __xstat (int __ver, __const char *__filename, > struct stat *__stat_buf) throw () __attribute__ ((__nonnull__ (2, 3))); >extern int __lxstat (int __ver, __const char *__filename, > struct stat *__stat_buf) throw () __attribute__ ((__nonnull__ (2, 3))); ># 350 "/usr/include/sys/stat.h" 3 4 >extern int __fxstat64 (int __ver, int __fildes, struct stat64 *__stat_buf) > throw () __attribute__ ((__nonnull__ (3))); >extern int __xstat64 (int __ver, __const char *__filename, > struct stat64 *__stat_buf) throw () __attribute__ ((__nonnull__ (2, 3))); >extern int __lxstat64 (int __ver, __const char *__filename, > struct stat64 *__stat_buf) throw () __attribute__ ((__nonnull__ (2, 3))); > >extern int __xmknod (int __ver, __const char *__path, __mode_t __mode, > __dev_t *__dev) throw () __attribute__ ((__nonnull__ (2, 4))); > > > > >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); >} > > > > >} ># 56 "../../OgreMain/include/OgreStdHeaders.h" 2 > >} ># 67 "../../OgreMain/include/OgreStdHeaders.h" >extern "C" { > > ># 1 "/usr/include/dlfcn.h" 1 3 4 ># 25 "/usr/include/dlfcn.h" 3 4 ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/stddef.h" 1 3 4 ># 26 "/usr/include/dlfcn.h" 2 3 4 > > ># 1 "/usr/include/bits/dlfcn.h" 1 3 4 ># 58 "/usr/include/bits/dlfcn.h" 3 4 >extern "C" { > > >extern void _dl_mcount_wrapper_check (void *__selfpc) throw (); > >} ># 29 "/usr/include/dlfcn.h" 2 3 4 ># 45 "/usr/include/dlfcn.h" 3 4 >typedef long int Lmid_t; > > > > > > > >extern "C" { > > > >extern void *dlopen (__const char *__file, int __mode) throw (); > > > >extern int dlclose (void *__handle) throw () __attribute__ ((__nonnull__ (1))); > > > >extern void *dlsym (void *__restrict __handle, > __const char *__restrict __name) throw () __attribute__ ((__nonnull__ (2))); > > > >extern void *dlmopen (Lmid_t __nsid, __const char *__file, int __mode) throw (); > > > >extern void *dlvsym (void *__restrict __handle, > __const char *__restrict __name, > __const char *__restrict __version) > throw () __attribute__ ((__nonnull__ (2, 3))); > > > > > >extern char *dlerror (void) throw (); > > > > > >typedef struct >{ > __const char *dli_fname; > void *dli_fbase; > __const char *dli_sname; > void *dli_saddr; >} Dl_info; > > > >extern int dladdr (__const void *__address, Dl_info *__info) > throw () __attribute__ ((__nonnull__ (2))); > > >extern int dladdr1 (__const void *__address, Dl_info *__info, > void **__extra_info, int __flags) throw () __attribute__ ((__nonnull__ (2))); > > > > >enum > { > > RTLD_DL_SYMENT = 1, > > > RTLD_DL_LINKMAP = 2 > }; > > > > > > > >extern int dlinfo (void *__restrict __handle, > int __request, void *__restrict __arg) > throw () __attribute__ ((__nonnull__ (1, 3))); > > >enum > { > > RTLD_DI_LMID = 1, > > > > RTLD_DI_LINKMAP = 2, > > > > > > > RTLD_DI_SERINFO = 4, > RTLD_DI_SERINFOSIZE = 5, > > > > RTLD_DI_ORIGIN = 6, > > RTLD_DI_CONFIGADDR = 3 > }; > > > > >typedef struct >{ > char *dls_name; > unsigned int dls_flags; >} Dl_serpath; > > > >typedef struct >{ > size_t dls_size; > unsigned int dls_cnt; > Dl_serpath dls_serpath[1]; >} Dl_serinfo; > > > >} ># 71 "../../OgreMain/include/OgreStdHeaders.h" 2 > >} ># 89 "../../OgreMain/include/OgrePrerequisites.h" 2 > > ># 1 "../../OgreMain/include/OgreMemoryManager.h" 1 ># 44 "../../OgreMain/include/OgreMemoryManager.h" >namespace Ogre { ># 378 "../../OgreMain/include/OgreMemoryManager.h" > class MemoryManager > { > public: > static MemoryManager sMemManager; > > MemoryManager(); > ~MemoryManager(); > > > > void *allocMem( const char *szFile, size_t uLine, size_t count ) throw ( ); > > > > void *rllocMem( const char *szFile, size_t uLine, void *ptr , size_t count ) throw ( ); > > > > void *cllocMem( const char *szFile, size_t uLine, size_t num, size_t size ) throw ( ); > > > > void dllocMem( const char *szFile, size_t uLine, void *ptr ) throw ( ); > }; > >} ># 92 "../../OgreMain/include/OgrePrerequisites.h" 2 > > > >namespace Ogre { ># 111 "../../OgreMain/include/OgrePrerequisites.h" > typedef float Real; ># 139 "../../OgreMain/include/OgrePrerequisites.h" > typedef unsigned char uchar; > typedef unsigned short ushort; > typedef unsigned int uint; > typedef unsigned long ulong; ># 151 "../../OgreMain/include/OgrePrerequisites.h" > typedef std::string _StringBase; > > > typedef _StringBase String; ># 185 "../../OgreMain/include/OgrePrerequisites.h" > class Angle; > class Animation; > class AnimationState; > class AnimationTrack; > class Archive; > class ArchiveFactory; > class ArchiveManager; > class AutoParamDataSource; > class AxisAlignedBox; > class AxisAlignedBoxSceneQuery; > class Billboard; > class BillboardSet; > class Bone; > class Camera; > class Codec; > class ColourValue; > class ConfigDialog; > template <typename T> class Controller; > template <typename T> class ControllerFunction; > class ControllerManager; > template <typename T> class ControllerValue; > class Cursor; > class Degree; > class DynLib; > class DynLibManager; > class EdgeData; > class EdgeListBuilder; > class Entity; > class ErrorDialog; > class EventDispatcher; > class EventProcessor; > class EventQueue; > class EventTarget; > class ExternalTextureSourceManager; > class Factory; > class Font; > class FontPtr; > class FontManager; > struct FrameEvent; > class FrameListener; > class Frustum; > class GpuProgram; > class GpuProgramPtr; > class GpuProgramManager; > class GpuProgramUsage; > class HardwareIndexBuffer; > class HardwareOcclusionQuery; > class HardwareVertexBuffer; > class HardwarePixelBuffer; > class HardwarePixelBufferSharedPtr; > class HighLevelGpuProgram; > class HighLevelGpuProgramPtr; > class HighLevelGpuProgramManager; > class HighLevelGpuProgramFactory; > class IndexData; > class InputEvent; > class InputReader; > class IntersectionSceneQuery; > class IntersectionSceneQueryListener; > class Image; > class KeyEvent; > class KeyFrame; > class KeyListener; > class KeyTarget; > class Light; > class Log; > class LogManager; > class ManualResourceLoader; > class Material; > class MaterialPtr; > class MaterialManager; > class Math; > class Matrix3; > class Matrix4; > class MemoryManager; > class Mesh; > class MeshPtr; > class MeshSerializer; > class MeshSerializerImpl; > class MeshManager; > class MovableObject; > class MovablePlane; > class MouseEvent; > class MouseListener; > class MouseMotionListener; > class MouseTarget; > class Node; > class Overlay; > class OverlayContainer; > class OverlayElement; > class OverlayElementFactory; > class OverlayManager; > class Particle; > class ParticleAffector; > class ParticleAffectorFactory; > class ParticleEmitter; > class ParticleEmitterFactory; > class ParticleSystem; > class ParticleSystemManager; > class ParticleSystemRenderer; > class ParticleSystemRendererFactory; > class ParticleVisualData; > class Pass; > class PatchMesh; > class PixelBox; > class PlatformManager; > class Plane; > class PlaneBoundedVolume; > class PositionTarget; > class ProgressiveMesh; > class Profile; > class Profiler; > class Quaternion; > class Radian; > class Ray; > class RaySceneQuery; > class RaySceneQueryListener; > class Renderable; > class RenderPriorityGroup; > class RenderQueue; > class RenderQueueGroup; > class RenderQueueListener; > class RenderSystem; > class RenderSystemCapabilities; > class RenderTarget; > class RenderTargetListener; > class RenderTexture; > class RenderWindow; > class RenderOperation; > class Resource; > class ResourceBackgroundQueue; > class ResourceGroupManager; > class ResourceManager; > class Root; > class SceneManager; > class SceneManagerEnumerator; > class SceneNode; > class SceneQuery; > class SceneQueryListener; > class ScriptLoader; > class Serializer; > class ShadowCaster; > class ShadowRenderable; > class SimpleRenderable; > class SimpleSpline; > class Skeleton; > class SkeletonPtr; > class SkeletonInstance; > class SkeletonManager; > class Sphere; > class SphereSceneQuery; > class StaticGeometry; > class StringConverter; > class StringInterface; > class SubEntity; > class SubMesh; > class TagPoint; > class TargetManager; > class Technique; > class ExternalTextureSource; > class TextureUnitState; > class Texture; > class TexturePtr; > class TextureFont; > class TextureManager; > class Timer; > class UserDefinedObject; > class Vector2; > class Vector3; > class Vector4; > class Viewport; > class VertexBufferBinding; > class VertexData; > class VertexDeclaration; > class WireBoundingBox; >} ># 30 "../../OgreMain/include/OgreAnimationTrack.h" 2 ># 1 "../../OgreMain/include/OgreSimpleSpline.h" 1 ># 30 "../../OgreMain/include/OgreSimpleSpline.h" ># 1 "../../OgreMain/include/OgreVector3.h" 1 ># 29 "../../OgreMain/include/OgreVector3.h" ># 1 "../../OgreMain/include/OgreMath.h" 1 ># 30 "../../OgreMain/include/OgreMath.h" >namespace Ogre >{ > > > > > > class Radian > { > Real mRad; > > public: > explicit Radian ( Real r=0 ) : mRad(r) {} > Radian ( const Degree& d ); > const Radian& operator = ( const Real& f ) { mRad = f; return *this; } > const Radian& operator = ( const Radian& r ) { mRad = r.mRad; return *this; } > const Radian& operator = ( const Degree& d ); > > Real valueDegrees() const; > Real valueRadians() const { return mRad; } > Real valueAngleUnits() const; > > Radian operator + ( const Radian& r ) const { return Radian ( mRad + r.mRad ); } > Radian operator + ( const Degree& d ) const; > Radian& operator += ( const Radian& r ) { mRad += r.mRad; return *this; } > Radian& operator += ( const Degree& d ); > Radian operator - () { return Radian(-mRad); } > Radian operator - ( const Radian& r ) const { return Radian ( mRad - r.mRad ); } > Radian operator - ( const Degree& d ) const; > Radian& operator -= ( const Radian& r ) { mRad -= r.mRad; return *this; } > Radian& operator -= ( const Degree& d ); > Radian operator * ( Real f ) const { return Radian ( mRad * f ); } > Radian operator * ( const Radian& f ) const { return Radian ( mRad * f.mRad ); } > Radian& operator *= ( Real f ) { mRad *= f; return *this; } > Radian operator / ( Real f ) const { return Radian ( mRad / f ); } > Radian& operator /= ( Real f ) { mRad /= f; return *this; } > > bool operator < ( const Radian& r ) const { return mRad < r.mRad; } > bool operator <= ( const Radian& r ) const { return mRad <= r.mRad; } > bool operator == ( const Radian& r ) const { return mRad == r.mRad; } > bool operator != ( const Radian& r ) const { return mRad != r.mRad; } > bool operator >= ( const Radian& r ) const { return mRad >= r.mRad; } > bool operator > ( const Radian& r ) const { return mRad > r.mRad; } > }; > > > > > > > class Degree > { > Real mDeg; > > public: > explicit Degree ( Real d=0 ) : mDeg(d) {} > Degree ( const Radian& r ) : mDeg(r.valueDegrees()) {} > const Degree& operator = ( const Real& f ) { mDeg = f; return *this; } > const Degree& operator = ( const Degree& d ) { mDeg = d.mDeg; return *this; } > const Degree& operator = ( const Radian& r ) { mDeg = r.valueDegrees(); return *this; } > > Real valueDegrees() const { return mDeg; } > Real valueRadians() const; > Real valueAngleUnits() const; > > Degree operator + ( const Degree& d ) const { return Degree ( mDeg + d.mDeg ); } > Degree operator + ( const Radian& r ) const { return Degree ( mDeg + r.valueDegrees() ); } > Degree& operator += ( const Degree& d ) { mDeg += d.mDeg; return *this; } > Degree& operator += ( const Radian& r ) { mDeg += r.valueDegrees(); return *this; } > Degree operator - () { return Degree(-mDeg); } > Degree operator - ( const Degree& d ) const { return Degree ( mDeg - d.mDeg ); } > Degree operator - ( const Radian& r ) const { return Degree ( mDeg - r.valueDegrees() ); } > Degree& operator -= ( const Degree& d ) { mDeg -= d.mDeg; return *this; } > Degree& operator -= ( const Radian& r ) { mDeg -= r.valueDegrees(); return *this; } > Degree operator * ( Real f ) const { return Degree ( mDeg * f ); } > Degree operator * ( const Degree& f ) const { return Degree ( mDeg * f.mDeg ); } > Degree& operator *= ( Real f ) { mDeg *= f; return *this; } > Degree operator / ( Real f ) const { return Degree ( mDeg / f ); } > Degree& operator /= ( Real f ) { mDeg /= f; return *this; } > > bool operator < ( const Degree& d ) const { return mDeg < d.mDeg; } > bool operator <= ( const Degree& d ) const { return mDeg <= d.mDeg; } > bool operator == ( const Degree& d ) const { return mDeg == d.mDeg; } > bool operator != ( const Degree& d ) const { return mDeg != d.mDeg; } > bool operator >= ( const Degree& d ) const { return mDeg >= d.mDeg; } > bool operator > ( const Degree& d ) const { return mDeg > d.mDeg; } > }; > > > > > > > > class Angle > { > Real mAngle; > public: > explicit Angle ( Real angle ) : mAngle(angle) {} > operator Radian(); > operator Degree(); > }; > > > > inline Radian::Radian ( const Degree& d ) : mRad(d.valueRadians()) { > } > inline const Radian& Radian::operator = ( const Degree& d ) { > mRad = d.valueRadians(); return *this; > } > inline Radian Radian::operator + ( const Degree& d ) const { > return Radian ( mRad + d.valueRadians() ); > } > inline Radian& Radian::operator += ( const Degree& d ) { > mRad += d.valueRadians(); > return *this; > } > inline Radian Radian::operator - ( const Degree& d ) const { > return Radian ( mRad - d.valueRadians() ); > } > inline Radian& Radian::operator -= ( const Degree& d ) { > mRad -= d.valueRadians(); > return *this; > } ># 165 "../../OgreMain/include/OgreMath.h" > class Math > { > public: > > > > > > enum AngleUnit > { > AU_DEGREE, > AU_RADIAN > }; > > protected: > > static AngleUnit msAngleUnit; > > > static int mTrigTableSize; > > > static Real mTrigTableFactor; > static Real* mSinTable; > static Real* mTanTable; > > > > void buildTrigTables(); > > static Real SinTable (Real fValue); > static Real TanTable (Real fValue); > public: > > > > > > Math(unsigned int trigTableSize = 4096); > > > > ~Math(); > > static inline int IAbs (int iValue) { return ( iValue >= 0 ? iValue : -iValue ); } > static inline int ICeil (float fValue) { return int(ceil(fValue)); } > static inline int IFloor (float fValue) { return int(floor(fValue)); } > static int ISign (int iValue); > > static inline Real Abs (Real fValue) { return Real(fabs(fValue)); } > static inline Degree Abs (const Degree& dValue) { return Degree(fabs(dValue.valueDegrees())); } > static inline Radian Abs (const Radian& rValue) { return Radian(fabs(rValue.valueRadians())); } > static Radian ACos (Real fValue); > static Radian ASin (Real fValue); > static inline Radian ATan (Real fValue) { return Radian(atan(fValue)); } > static inline Radian ATan2 (Real fY, Real fX) { return Radian(atan2(fY,fX)); } > static inline Real Ceil (Real fValue) { return Real(ceil(fValue)); } ># 230 "../../OgreMain/include/OgreMath.h" > static inline Real Cos (const Radian& fValue, bool useTables = false) { > return (!useTables) ? Real(cos(fValue.valueRadians())) : SinTable(fValue.valueRadians() + HALF_PI); > } > > > > > > > > static inline Real Cos (Real fValue, bool useTables = false) { > return (!useTables) ? Real(cos(fValue)) : SinTable(fValue + HALF_PI); > } > > static inline Real Exp (Real fValue) { return Real(exp(fValue)); } > > static inline Real Floor (Real fValue) { return Real(floor(fValue)); } > > static inline Real Log (Real fValue) { return Real(log(fValue)); } > > static inline Real Pow (Real fBase, Real fExponent) { return Real(pow(fBase,fExponent)); } > > static Real Sign (Real fValue); > static inline Radian Sign ( const Radian& rValue ) > { > return Radian(Sign(rValue.valueRadians())); > } > static inline Degree Sign ( const Degree& dValue ) > { > return Degree(Sign(dValue.valueDegrees())); > } ># 269 "../../OgreMain/include/OgreMath.h" > static inline Real Sin (const Radian& fValue, bool useTables = false) { > return (!useTables) ? Real(sin(fValue.valueRadians())) : SinTable(fValue.valueRadians()); > } > > > > > > > > static inline Real Sin (Real fValue, bool useTables = false) { > return (!useTables) ? Real(sin(fValue)) : SinTable(fValue); > } > > static inline Real Sqr (Real fValue) { return fValue*fValue; } > > static inline Real Sqrt (Real fValue) { return Real(sqrt(fValue)); } > > static inline Radian Sqrt (const Radian& fValue) { return Radian(sqrt(fValue.valueRadians())); } > > static inline Degree Sqrt (const Degree& fValue) { return Degree(sqrt(fValue.valueDegrees())); } > > > > > static Real InvSqrt(Real fValue); > > static Real UnitRandom (); > > static Real RangeRandom (Real fLow, Real fHigh); > > static Real SymmetricRandom (); ># 309 "../../OgreMain/include/OgreMath.h" > static inline Real Tan (const Radian& fValue, bool useTables = false) { > return (!useTables) ? Real(tan(fValue.valueRadians())) : TanTable(fValue.valueRadians()); > } > > > > > > > > static inline Real Tan (Real fValue, bool useTables = false) { > return (!useTables) ? Real(tan(fValue)) : TanTable(fValue); > } > > static inline Real DegreesToRadians(Real degrees) { return degrees * fDeg2Rad; } > static inline Real RadiansToDegrees(Real radians) { return radians * fRad2Deg; } > > > > > > > > static void setAngleUnit(AngleUnit unit); > > static AngleUnit getAngleUnit(void); > > > static Real AngleUnitsToRadians(Real units); > > static Real RadiansToAngleUnits(Real radians); > > static Real AngleUnitsToDegrees(Real units); > > static Real DegreesToAngleUnits(Real degrees); ># 374 "../../OgreMain/include/OgreMath.h" > static bool pointInTri2D( Real px, Real pz, Real ax, Real az, Real bx, Real bz, Real cx, Real cz ); > > > static std::pair<bool, Real> intersects(const Ray& ray, const Plane& plane); > > > static std::pair<bool, Real> intersects(const Ray& ray, const Sphere& sphere, > bool discardInside = true); > > > static std::pair<bool, Real> intersects(const Ray& ray, const AxisAlignedBox& sphere); > > > static bool intersects(const Sphere& sphere, const AxisAlignedBox& box); > > > static bool intersects(const Plane& plane, const AxisAlignedBox& box); > > > > > > > static std::pair<bool, Real> intersects( > const Ray& ray, const std::vector<Plane>& planeList, > bool normalIsOutside); > > > > > > static std::pair<bool, Real> intersects( > const Ray& ray, const std::list<Plane>& planeList, > bool normalIsOutside); > > > > > static bool intersects(const Sphere& sphere, const Plane& plane); > > > > static bool RealEqual(Real a, Real b, > Real tolerance = std::numeric_limits<Real>::epsilon()); > > > static Vector3 calculateTangentSpaceVector( > const Vector3& position1, const Vector3& position2, const Vector3& position3, > Real u1, Real v1, Real u2, Real v2, Real u3, Real v3); > > > static Matrix4 buildReflectionMatrix(const Plane& p); > > static Vector4 calculateFaceNormal(const Vector3& v1, const Vector3& v2, const Vector3& v3); > > static Vector3 calculateBasicFaceNormal(const Vector3& v1, const Vector3& v2, const Vector3& v3); > > static Vector4 calculateFaceNormalWithoutNormalize(const Vector3& v1, const Vector3& v2, const Vector3& v3); > > static Vector3 calculateBasicFaceNormalWithoutNormalize(const Vector3& v1, const Vector3& v2, const Vector3& v3); > > static const Real POS_INFINITY; > static const Real NEG_INFINITY; > static const Real PI; > static const Real TWO_PI; > static const Real HALF_PI; > static const Real fDeg2Rad; > static const Real fRad2Deg; > > }; > > > > > inline Real Radian::valueDegrees() const > { > return Math::RadiansToDegrees ( mRad ); > } > > inline Real Radian::valueAngleUnits() const > { > return Math::RadiansToAngleUnits ( mRad ); > } > > inline Real Degree::valueRadians() const > { > return Math::DegreesToRadians ( mDeg ); > } > > inline Real Degree::valueAngleUnits() const > { > return Math::DegreesToAngleUnits ( mDeg ); > } > > inline Angle::operator Radian() > { > return Radian(Math::AngleUnitsToRadians(mAngle)); > } > > inline Angle::operator Degree() > { > return Degree(Math::AngleUnitsToDegrees(mAngle)); > } > > inline Radian operator * ( Real a, const Radian& b ) > { > return Radian ( a * b.valueRadians() ); > } > > inline Radian operator / ( Real a, const Radian& b ) > { > return Radian ( a / b.valueRadians() ); > } > > inline Degree operator * ( Real a, const Degree& b ) > { > return Degree ( a * b.valueDegrees() ); > } > > inline Degree operator / ( Real a, const Degree& b ) > { > return Degree ( a / b.valueDegrees() ); > } > >} ># 30 "../../OgreMain/include/OgreVector3.h" 2 ># 1 "../../OgreMain/include/OgreQuaternion.h" 1 ># 45 "../../OgreMain/include/OgreQuaternion.h" >namespace Ogre { > > > > class Quaternion > { > public: > inline Quaternion ( > Real fW = 1.0, > Real fX = 0.0, Real fY = 0.0, Real fZ = 0.0) > { > w = fW; > x = fX; > y = fY; > z = fZ; > } > inline Quaternion (const Quaternion& rkQ) > { > w = rkQ.w; > x = rkQ.x; > y = rkQ.y; > z = rkQ.z; > } > > inline Quaternion(const Matrix3& rot) > { > this->FromRotationMatrix(rot); > } > > inline Quaternion(const Radian& rfAngle, const Vector3& rkAxis) > { > this->FromAngleAxis(rfAngle, rkAxis); > } > > > > > > > > inline Quaternion(const Vector3& xaxis, const Vector3& yaxis, const Vector3& zaxis) > { > this->FromAxes(xaxis, yaxis, zaxis); > } > > inline Quaternion(const Vector3* akAxis) > { > this->FromAxes(akAxis); > } > > void FromRotationMatrix (const Matrix3& kRot); > void ToRotationMatrix (Matrix3& kRot) const; > void FromAngleAxis (const Radian& rfAngle, const Vector3& rkAxis); > void ToAngleAxis (Radian& rfAngle, Vector3& rkAxis) const; > inline void ToAngleAxis (Degree& dAngle, Vector3& rkAxis) const { > Radian rAngle; > ToAngleAxis ( rAngle, rkAxis ); > dAngle = rAngle; > } ># 114 "../../OgreMain/include/OgreQuaternion.h" > void FromAxes (const Vector3* akAxis); > void FromAxes (const Vector3& xAxis, const Vector3& yAxis, const Vector3& zAxis); > void ToAxes (Vector3* akAxis) const; > void ToAxes (Vector3& xAxis, Vector3& yAxis, Vector3& zAxis) const; > > Vector3 xAxis(void) const; > > Vector3 yAxis(void) const; > > Vector3 zAxis(void) const; > > inline Quaternion& operator= (const Quaternion& rkQ) > { > w = rkQ.w; > x = rkQ.x; > y = rkQ.y; > z = rkQ.z; > return *this; > } > Quaternion operator+ (const Quaternion& rkQ) const; > Quaternion operator- (const Quaternion& rkQ) const; > Quaternion operator* (const Quaternion& rkQ) const; > Quaternion operator* (Real fScalar) const; > friend Quaternion operator* (Real fScalar, > const Quaternion& rkQ); > Quaternion operator- () const; > inline bool operator== (const Quaternion& rhs) const > { > return (rhs.x == x) && (rhs.y == y) && > (rhs.z == z) && (rhs.w == w); > } > inline bool operator!= (const Quaternion& rhs) const > { > return !operator==(rhs); > } > > Real Dot (const Quaternion& rkQ) const; > Real Norm () const; > > Real normalise(void); > Quaternion Inverse () const; > Quaternion UnitInverse () const; > Quaternion Exp () const; > Quaternion Log () const; > > > Vector3 operator* (const Vector3& rkVector) const; > > > Radian getRoll(void) const; > > Radian getPitch(void) const; > > Radian getYaw(void) const; > > bool equals(const Quaternion& rhs, const Radian& tolerance) const; > > > static Quaternion Slerp (Real fT, const Quaternion& rkP, > const Quaternion& rkQ, bool shortestPath = false); > > static Quaternion SlerpExtraSpins (Real fT, > const Quaternion& rkP, const Quaternion& rkQ, > int iExtraSpins); > > > static void Intermediate (const Quaternion& rkQ0, > const Quaternion& rkQ1, const Quaternion& rkQ2, > Quaternion& rka, Quaternion& rkB); > > > static Quaternion Squad (Real fT, const Quaternion& rkP, > const Quaternion& rkA, const Quaternion& rkB, > const Quaternion& rkQ, bool shortestPath = false); > > > static Quaternion nlerp(Real fT, const Quaternion& rkP, > const Quaternion& rkQ, bool shortestPath = false); > > > static const Real ms_fEpsilon; > > > static const Quaternion ZERO; > static const Quaternion IDENTITY; > > Real w, x, y, z; > > > > inline friend std::ostream& operator << > ( std::ostream& o, const Quaternion& q ) > { > o << "Quaternion(" << q.x << ", " << q.y << ", " << q.z << ", " << q.w << ")"; > return o; > } > > }; > >} ># 31 "../../OgreMain/include/OgreVector3.h" 2 > >namespace Ogre >{ ># 42 "../../OgreMain/include/OgreVector3.h" > class Vector3 > { > public: > union { > struct { > Real x, y, z; > }; > Real val[3]; > }; > > public: > inline Vector3() > { > } > > inline Vector3( Real fX, Real fY, Real fZ ) > : x( fX ), y( fY ), z( fZ ) > { > } > > inline Vector3( Real afCoordinate[3] ) > : x( afCoordinate[0] ), > y( afCoordinate[1] ), > z( afCoordinate[2] ) > { > } > > inline Vector3( int afCoordinate[3] ) > { > x = (Real)afCoordinate[0]; > y = (Real)afCoordinate[1]; > z = (Real)afCoordinate[2]; > } > > inline Vector3( const Real* const r ) > : x( r[0] ), y( r[1] ), z( r[2] ) > { > } > > inline Vector3( const Vector3& rkVector ) > : x( rkVector.x ), y( rkVector.y ), z( rkVector.z ) > { > } > > inline Real operator [] ( size_t i ) const > { > (static_cast<void> ((i < 3) ? 0 : (__assert_fail ("i < 3", "../../OgreMain/include/OgreVector3.h", 88, __PRETTY_FUNCTION__), 0))); > > return *(&x+i); > } > > inline Real& operator [] ( size_t i ) > { > (static_cast<void> ((i < 3) ? 0 : (__assert_fail ("i < 3", "../../OgreMain/include/OgreVector3.h", 95, __PRETTY_FUNCTION__), 0))); > > return *(&x+i); > } > > > > > > inline Vector3& operator = ( const Vector3& rkVector ) > { > x = rkVector.x; > y = rkVector.y; > z = rkVector.z; > > return *this; > } > > inline bool operator == ( const Vector3& rkVector ) const > { > return ( x == rkVector.x && y == rkVector.y && z == rkVector.z ); > } > > inline bool operator != ( const Vector3& rkVector ) const > { > return ( x != rkVector.x || y != rkVector.y || z != rkVector.z ); > } > > > inline Vector3 operator + ( const Vector3& rkVector ) const > { > Vector3 kSum; > > kSum.x = x + rkVector.x; > kSum.y = y + rkVector.y; > kSum.z = z + rkVector.z; > > return kSum; > } > > inline Vector3 operator - ( const Vector3& rkVector ) const > { > Vector3 kDiff; > > kDiff.x = x - rkVector.x; > kDiff.y = y - rkVector.y; > kDiff.z = z - rkVector.z; > > return kDiff; > } > > inline Vector3 operator * ( Real fScalar ) const > { > Vector3 kProd; > > kProd.x = fScalar*x; > kProd.y = fScalar*y; > kProd.z = fScalar*z; > > return kProd; > } > > inline Vector3 operator * ( const Vector3& rhs) const > { > Vector3 kProd; > > kProd.x = rhs.x * x; > kProd.y = rhs.y * y; > kProd.z = rhs.z * z; > > return kProd; > } > > inline Vector3 operator / ( Real fScalar ) const > { > (static_cast<void> ((fScalar != 0.0) ? 0 : (__assert_fail ("fScalar != 0.0", "../../OgreMain/include/OgreVector3.h", 170, __PRETTY_FUNCTION__), 0))); > > Vector3 kDiv; > > Real fInv = 1.0 / fScalar; > kDiv.x = x * fInv; > kDiv.y = y * fInv; > kDiv.z = z * fInv; > > return kDiv; > } > > inline Vector3 operator / ( const Vector3& rhs) const > { > Vector3 kDiv; > > kDiv.x = x / rhs.x; > kDiv.y = y / rhs.y; > kDiv.z = z / rhs.z; > > return kDiv; > } > > > inline Vector3 operator - () const > { > Vector3 kNeg; > > kNeg.x = -x; > kNeg.y = -y; > kNeg.z = -z; > > return kNeg; > } > > inline friend Vector3 operator * ( Real fScalar, const Vector3& rkVector ) > { > Vector3 kProd; > > kProd.x = fScalar * rkVector.x; > kProd.y = fScalar * rkVector.y; > kProd.z = fScalar * rkVector.z; > > return kProd; > } > > > inline Vector3& operator += ( const Vector3& rkVector ) > { > x += rkVector.x; > y += rkVector.y; > z += rkVector.z; > > return *this; > } > > inline Vector3& operator -= ( const Vector3& rkVector ) > { > x -= rkVector.x; > y -= rkVector.y; > z -= rkVector.z; > > return *this; > } > > inline Vector3& operator *= ( Real fScalar ) > { > x *= fScalar; > y *= fScalar; > z *= fScalar; > return *this; > } > > inline Vector3& operator *= ( const Vector3& rkVector ) > { > x *= rkVector.x; > y *= rkVector.y; > z *= rkVector.z; > > return *this; > } > > inline Vector3& operator /= ( Real fScalar ) > { > (static_cast<void> ((fScalar != 0.0) ? 0 : (__assert_fail ("fScalar != 0.0", "../../OgreMain/include/OgreVector3.h", 254, __PRETTY_FUNCTION__), 0))); > > Real fInv = 1.0 / fScalar; > > x *= fInv; > y *= fInv; > z *= fInv; > > return *this; > } > > inline Vector3& operator /= ( const Vector3& rkVector ) > { > x /= rkVector.x; > y /= rkVector.y; > z /= rkVector.z; > > return *this; > } ># 282 "../../OgreMain/include/OgreVector3.h" > inline Real length () const > { > return Math::Sqrt( x * x + y * y + z * z ); > } ># 297 "../../OgreMain/include/OgreVector3.h" > inline Real squaredLength () const > { > return x * x + y * y + z * z; > } ># 316 "../../OgreMain/include/OgreVector3.h" > inline Real dotProduct(const Vector3& vec) const > { > return x * vec.x + y * vec.y + z * vec.z; > } ># 330 "../../OgreMain/include/OgreVector3.h" > inline Real normalise() > { > Real fLength = Math::Sqrt( x * x + y * y + z * z ); > > > if ( fLength > 1e-08 ) > { > Real fInvLength = 1.0 / fLength; > x *= fInvLength; > y *= fInvLength; > z *= fInvLength; > } > > return fLength; > } ># 373 "../../OgreMain/include/OgreVector3.h" > inline Vector3 crossProduct( const Vector3& rkVector ) const > { > Vector3 kCross; > > kCross.x = y * rkVector.z - z * rkVector.y; > kCross.y = z * rkVector.x - x * rkVector.z; > kCross.z = x * rkVector.y - y * rkVector.x; > > return kCross; > } > > > > > inline Vector3 midPoint( const Vector3& vec ) const > { > return Vector3( > ( x + vec.x ) * 0.5, > ( y + vec.y ) * 0.5, > ( z + vec.z ) * 0.5 ); > } > > > > > inline bool operator < ( const Vector3& rhs ) const > { > if( x < rhs.x && y < rhs.y && z < rhs.z ) > return true; > return false; > } > > > > > inline bool operator > ( const Vector3& rhs ) const > { > if( x > rhs.x && y > rhs.y && z > rhs.z ) > return true; > return false; > } ># 422 "../../OgreMain/include/OgreVector3.h" > inline void makeFloor( const Vector3& cmp ) > { > if( cmp.x < x ) x = cmp.x; > if( cmp.y < y ) y = cmp.y; > if( cmp.z < z ) z = cmp.z; > } ># 436 "../../OgreMain/include/OgreVector3.h" > inline void makeCeil( const Vector3& cmp ) > { > if( cmp.x > x ) x = cmp.x; > if( cmp.y > y ) y = cmp.y; > if( cmp.z > z ) z = cmp.z; > } ># 450 "../../OgreMain/include/OgreVector3.h" > inline Vector3 perpendicular(void) const > { > static const Real fSquareZero = 1e-06 * 1e-06; > > Vector3 perp = this->crossProduct( Vector3::UNIT_X ); > > > if( perp.squaredLength() < fSquareZero ) > { > > > > perp = this->crossProduct( Vector3::UNIT_Y ); > } > > return perp; > } ># 486 "../../OgreMain/include/OgreVector3.h" > inline Vector3 randomDeviant( > const Radian& angle, > const Vector3& up = Vector3::ZERO ) const > { > Vector3 newUp; > > if (up == Vector3::ZERO) > { > > newUp = this->perpendicular(); > } > else > { > newUp = up; > } > > > Quaternion q; > q.FromAngleAxis( Radian(Math::UnitRandom() * Math::TWO_PI), *this ); > newUp = q * newUp; > > > q.FromAngleAxis( angle, newUp ); > return q * (*this); > } ># 526 "../../OgreMain/include/OgreVector3.h" > Quaternion getRotationTo(const Vector3& dest) const > { > > Quaternion q; > > Vector3 v0 = *this; > Vector3 v1 = dest; > v0.normalise(); > v1.normalise(); > > Vector3 c = v0.crossProduct(v1); > > > > Real d = v0.dotProduct(v1); > > if (d >= 1.0f) > { > return Quaternion::IDENTITY; > } > Real s = Math::Sqrt( (1+d)*2 ); > (static_cast<void> ((s != 0 && "Divide by zero!") ? 0 : (__assert_fail ("s != 0 && \"Divide by zero!\"", "../../OgreMain/include/OgreVector3.h", 547, __PRETTY_FUNCTION__), 0))); > Real invs = 1 / s; > > > q.x = c.x * invs; > q.y = c.y * invs; > q.z = c.z * invs; > q.w = s * 0.5; > return q; > } > > > inline bool isZeroLength(void) const > { > Real sqlen = (x * x) + (y * y) + (z * z); > return (sqlen < (1e-06 * 1e-06)); > > } > > > > inline Vector3 normalisedCopy(void) const > { > Vector3 ret = *this; > ret.normalise(); > return ret; > } > > > > > inline Vector3 reflect(const Vector3& normal) const > { > return Vector3( *this - ( 2 * this->dotProduct(normal) * normal ) ); > } > > > > > > > > inline bool positionEquals(const Vector3& rhs, Real tolerance = 1e-03) const > { > return Math::RealEqual(x, rhs.x, tolerance) && > Math::RealEqual(y, rhs.y, tolerance) && > Math::RealEqual(z, rhs.z, tolerance); > > } > > > > > > > inline bool directionEquals(const Vector3& rhs, > const Radian& tolerance) const > { > Real dot = dotProduct(rhs); > Radian angle = Math::ACos(dot); > > return Math::Abs(angle.valueRadians()) <= tolerance.valueRadians(); > > } > > > static const Vector3 ZERO; > static const Vector3 UNIT_X; > static const Vector3 UNIT_Y; > static const Vector3 UNIT_Z; > static const Vector3 NEGATIVE_UNIT_X; > static const Vector3 NEGATIVE_UNIT_Y; > static const Vector3 NEGATIVE_UNIT_Z; > static const Vector3 UNIT_SCALE; > > > > inline friend std::ostream& operator << > ( std::ostream& o, const Vector3& v ) > { > o << "Vector3(" << v.x << ", " << v.y << ", " << v.z << ")"; > return o; > } > }; > >} ># 31 "../../OgreMain/include/OgreSimpleSpline.h" 2 ># 1 "../../OgreMain/include/OgreMatrix4.h" 1 ># 32 "../../OgreMain/include/OgreMatrix4.h" ># 1 "../../OgreMain/include/OgreMatrix3.h" 1 ># 50 "../../OgreMain/include/OgreMatrix3.h" >namespace Ogre >{ > > > > > > > > class Matrix3 > { > public: > > > > > inline Matrix3 () {}; > inline explicit Matrix3 (const Real arr[3][3]) > { > memcpy(m,arr,9*sizeof(Real)); > } > inline Matrix3 (const Matrix3& rkMatrix) > { > memcpy(m,rkMatrix.m,9*sizeof(Real)); > } > Matrix3 (Real fEntry00, Real fEntry01, Real fEntry02, > Real fEntry10, Real fEntry11, Real fEntry12, > Real fEntry20, Real fEntry21, Real fEntry22) > { > m[0][0] = fEntry00; > m[0][1] = fEntry01; > m[0][2] = fEntry02; > m[1][0] = fEntry10; > m[1][1] = fEntry11; > m[1][2] = fEntry12; > m[2][0] = fEntry20; > m[2][1] = fEntry21; > m[2][2] = fEntry22; > } > > > inline Real* operator[] (size_t iRow) const > { > return (Real*)m[iRow]; > } > > > > > Vector3 GetColumn (size_t iCol) const; > void SetColumn(size_t iCol, const Vector3& vec); > void FromAxes(const Vector3& xAxis, const Vector3& yAxis, const Vector3& zAxis); > > > inline Matrix3& operator= (const Matrix3& rkMatrix) > { > memcpy(m,rkMatrix.m,9*sizeof(Real)); > return *this; > } > bool operator== (const Matrix3& rkMatrix) const; > inline bool operator!= (const Matrix3& rkMatrix) const > { > return !operator==(rkMatrix); > } > > > Matrix3 operator+ (const Matrix3& rkMatrix) const; > Matrix3 operator- (const Matrix3& rkMatrix) const; > Matrix3 operator* (const Matrix3& rkMatrix) const; > Matrix3 operator- () const; > > > Vector3 operator* (const Vector3& rkVector) const; > > > friend Vector3 operator* (const Vector3& rkVector, > const Matrix3& rkMatrix); > > > Matrix3 operator* (Real fScalar) const; > > > friend Matrix3 operator* (Real fScalar, const Matrix3& rkMatrix); > > > Matrix3 Transpose () const; > bool Inverse (Matrix3& rkInverse, Real fTolerance = 1e-06) const; > Matrix3 Inverse (Real fTolerance = 1e-06) const; > Real Determinant () const; > > > void SingularValueDecomposition (Matrix3& rkL, Vector3& rkS, > Matrix3& rkR) const; > void SingularValueComposition (const Matrix3& rkL, > const Vector3& rkS, const Matrix3& rkR); > > > void Orthonormalize (); > > > void QDUDecomposition (Matrix3& rkQ, Vector3& rkD, > Vector3& rkU) const; > > Real SpectralNorm () const; > > > void ToAxisAngle (Vector3& rkAxis, Radian& rfAngle) const; > inline void ToAxisAngle (Vector3& rkAxis, Degree& rfAngle) const { > Radian r; > ToAxisAngle ( rkAxis, r ); > rfAngle = r; > } > void FromAxisAngle (const Vector3& rkAxis, const Radian& fRadians); ># 177 "../../OgreMain/include/OgreMatrix3.h" > bool ToEulerAnglesXYZ (Radian& rfYAngle, Radian& rfPAngle, > Radian& rfRAngle) const; > bool ToEulerAnglesXZY (Radian& rfYAngle, Radian& rfPAngle, > Radian& rfRAngle) const; > bool ToEulerAnglesYXZ (Radian& rfYAngle, Radian& rfPAngle, > Radian& rfRAngle) const; > bool ToEulerAnglesYZX (Radian& rfYAngle, Radian& rfPAngle, > Radian& rfRAngle) const; > bool ToEulerAnglesZXY (Radian& rfYAngle, Radian& rfPAngle, > Radian& rfRAngle) const; > bool ToEulerAnglesZYX (Radian& rfYAngle, Radian& rfPAngle, > Radian& rfRAngle) const; > void FromEulerAnglesXYZ (const Radian& fYAngle, const Radian& fPAngle, const Radian& fRAngle); > void FromEulerAnglesXZY (const Radian& fYAngle, const Radian& fPAngle, const Radian& fRAngle); > void FromEulerAnglesYXZ (const Radian& fYAngle, const Radian& fPAngle, const Radian& fRAngle); > void FromEulerAnglesYZX (const Radian& fYAngle, const Radian& fPAngle, const Radian& fRAngle); > void FromEulerAnglesZXY (const Radian& fYAngle, const Radian& fPAngle, const Radian& fRAngle); > void FromEulerAnglesZYX (const Radian& fYAngle, const Radian& fPAngle, const Radian& fRAngle); ># 270 "../../OgreMain/include/OgreMatrix3.h" > void EigenSolveSymmetric (Real afEigenvalue[3], > Vector3 akEigenvector[3]) const; > > static void TensorProduct (const Vector3& rkU, const Vector3& rkV, > Matrix3& rkProduct); > > static const Real EPSILON; > static const Matrix3 ZERO; > static const Matrix3 IDENTITY; > > protected: > > void Tridiagonal (Real afDiag[3], Real afSubDiag[3]); > bool QLAlgorithm (Real afDiag[3], Real afSubDiag[3]); > > > static const Real ms_fSvdEpsilon; > static const unsigned int ms_iSvdMaxIterations; > static void Bidiagonalize (Matrix3& kA, Matrix3& kL, > Matrix3& kR); > static void GolubKahanStep (Matrix3& kA, Matrix3& kL, > Matrix3& kR); > > > static Real MaxCubicRoot (Real afCoeff[3]); > > Real m[3][3]; > > > friend class Matrix4; > }; >} ># 33 "../../OgreMain/include/OgreMatrix4.h" 2 ># 1 "../../OgreMain/include/OgreVector4.h" 1 ># 31 "../../OgreMain/include/OgreVector4.h" >namespace Ogre >{ > > > > class Vector4 > { > public: > union { > struct { > Real x, y, z, w; > }; > Real val[4]; > }; > > public: > inline Vector4() > { > } > > inline Vector4( Real fX, Real fY, Real fZ, Real fW ) > : x( fX ), y( fY ), z( fZ ), w( fW) > { > } > > inline Vector4( Real afCoordinate[4] ) > : x( afCoordinate[0] ), > y( afCoordinate[1] ), > z( afCoordinate[2] ), > w (afCoordinate[3] ) > { > } > > inline Vector4( int afCoordinate[4] ) > { > x = (Real)afCoordinate[0]; > y = (Real)afCoordinate[1]; > z = (Real)afCoordinate[2]; > w = (Real)afCoordinate[3]; > } > > inline Vector4( const Real* const r ) > : x( r[0] ), y( r[1] ), z( r[2] ), w( r[3] ) > { > } > > inline Vector4( const Vector4& rkVector ) > : x( rkVector.x ), y( rkVector.y ), z( rkVector.z ), w (rkVector.w) > { > } > > inline Real operator [] ( size_t i ) const > { > (static_cast<void> ((i < 4) ? 0 : (__assert_fail ("i < 4", "../../OgreMain/include/OgreVector4.h", 84, __PRETTY_FUNCTION__), 0))); > > return *(&x+i); > } > > inline Real& operator [] ( size_t i ) > { > (static_cast<void> ((i < 4) ? 0 : (__assert_fail ("i < 4", "../../OgreMain/include/OgreVector4.h", 91, __PRETTY_FUNCTION__), 0))); > > return *(&x+i); > } > > > > > > inline Vector4& operator = ( const Vector4& rkVector ) > { > x = rkVector.x; > y = rkVector.y; > z = rkVector.z; > w = rkVector.w; > > return *this; > } > > inline bool operator == ( const Vector4& rkVector ) const > { > return ( x == rkVector.x && > y == rkVector.y && > z == rkVector.z && > w == rkVector.w ); > } > > inline bool operator != ( const Vector4& rkVector ) const > { > return ( x != rkVector.x || > y != rkVector.y || > z != rkVector.z || > w != rkVector.w ); > } > > inline Vector4& operator = (const Vector3& rhs) > { > x = rhs.x; > y = rhs.y; > z = rhs.z; > w = 1.0f; > return *this; > } > > > inline Vector4 operator + ( const Vector4& rkVector ) const > { > Vector4 kSum; > > kSum.x = x + rkVector.x; > kSum.y = y + rkVector.y; > kSum.z = z + rkVector.z; > kSum.w = w + rkVector.w; > > return kSum; > } > > inline Vector4 operator - ( const Vector4& rkVector ) const > { > Vector4 kDiff; > > kDiff.x = x - rkVector.x; > kDiff.y = y - rkVector.y; > kDiff.z = z - rkVector.z; > kDiff.w = w - rkVector.w; > > return kDiff; > } > > inline Vector4 operator * ( Real fScalar ) const > { > Vector4 kProd; > > kProd.x = fScalar*x; > kProd.y = fScalar*y; > kProd.z = fScalar*z; > kProd.w = fScalar*w; > > return kProd; > } > > inline Vector4 operator * ( const Vector4& rhs) const > { > Vector4 kProd; > > kProd.x = rhs.x * x; > kProd.y = rhs.y * y; > kProd.z = rhs.z * z; > kProd.w = rhs.w * w; > > return kProd; > } > > inline Vector4 operator / ( Real fScalar ) const > { > (static_cast<void> ((fScalar != 0.0) ? 0 : (__assert_fail ("fScalar != 0.0", "../../OgreMain/include/OgreVector4.h", 186, __PRETTY_FUNCTION__), 0))); > > Vector4 kDiv; > > Real fInv = 1.0 / fScalar; > kDiv.x = x * fInv; > kDiv.y = y * fInv; > kDiv.z = z * fInv; > kDiv.w = w * fInv; > > return kDiv; > } > > inline Vector4 operator / ( const Vector4& rhs) const > { > Vector4 kDiv; > > kDiv.x = x / rhs.x; > kDiv.y = y / rhs.y; > kDiv.z = z / rhs.z; > kDiv.w = w / rhs.w; > > return kDiv; > } > > > inline Vector4 operator - () const > { > Vector4 kNeg; > > kNeg.x = -x; > kNeg.y = -y; > kNeg.z = -z; > kNeg.w = -w; > > return kNeg; > } > > inline friend Vector4 operator * ( Real fScalar, const Vector4& rkVector ) > { > Vector4 kProd; > > kProd.x = fScalar * rkVector.x; > kProd.y = fScalar * rkVector.y; > kProd.z = fScalar * rkVector.z; > kProd.w = fScalar * rkVector.w; > > return kProd; > } > > > inline Vector4& operator += ( const Vector4& rkVector ) > { > x += rkVector.x; > y += rkVector.y; > z += rkVector.z; > w += rkVector.w; > > return *this; > } > > inline Vector4& operator -= ( const Vector4& rkVector ) > { > x -= rkVector.x; > y -= rkVector.y; > z -= rkVector.z; > w -= rkVector.w; > > return *this; > } > > inline Vector4& operator *= ( Real fScalar ) > { > x *= fScalar; > y *= fScalar; > z *= fScalar; > w *= fScalar; > return *this; > } > > inline Vector4& operator *= ( const Vector4& rkVector ) > { > x *= rkVector.x; > y *= rkVector.y; > z *= rkVector.z; > w *= rkVector.w; > > return *this; > } > > inline Vector4& operator /= ( Real fScalar ) > { > (static_cast<void> ((fScalar != 0.0) ? 0 : (__assert_fail ("fScalar != 0.0", "../../OgreMain/include/OgreVector4.h", 278, __PRETTY_FUNCTION__), 0))); > > Real fInv = 1.0 / fScalar; > > x *= fInv; > y *= fInv; > z *= fInv; > w *= fInv; > > return *this; > } > > inline Vector4& operator /= ( const Vector4& rkVector ) > { > x /= rkVector.x; > y /= rkVector.y; > z /= rkVector.z; > w /= rkVector.w; > > return *this; > } ># 307 "../../OgreMain/include/OgreVector4.h" > inline Real dotProduct(const Vector4& vec) const > { > return x * vec.x + y * vec.y + z * vec.z + w * vec.w; > } > > > inline friend std::ostream& operator << > ( std::ostream& o, const Vector4& v ) > { > o << "Vector4(" << v.x << ", " << v.y << ", " << v.z << ", " << v.w << ")"; > return o; > } > }; > >} ># 34 "../../OgreMain/include/OgreMatrix4.h" 2 ># 1 "../../OgreMain/include/OgrePlane.h" 1 ># 37 "../../OgreMain/include/OgrePlane.h" >namespace Ogre { ># 49 "../../OgreMain/include/OgrePlane.h" > class Plane > { > public: > > > Plane (); > Plane (const Plane& rhs); > > Plane (const Vector3& rkNormal, Real fConstant); > Plane (const Vector3& rkNormal, const Vector3& rkPoint); > Plane (const Vector3& rkPoint0, const Vector3& rkPoint1, > const Vector3& rkPoint2); > > > > > > enum Side > { > NO_SIDE, > POSITIVE_SIDE, > NEGATIVE_SIDE > }; > > Side getSide (const Vector3& rkPoint) const; ># 83 "../../OgreMain/include/OgrePlane.h" > Real getDistance (const Vector3& rkPoint) const; > > > void redefine(const Vector3& rkPoint0, const Vector3& rkPoint1, > const Vector3& rkPoint2); > > Vector3 normal; > Real d; > > bool operator==(const Plane& rhs) const > { > return (rhs.d == d && rhs.normal == normal); > } > > friend std::ostream& operator<< (std::ostream& o, Plane& p); > }; > > typedef std::vector<Plane> PlaneList; > >} ># 35 "../../OgreMain/include/OgreMatrix4.h" 2 >namespace Ogre >{ ># 69 "../../OgreMain/include/OgreMatrix4.h" > class Matrix4 > { > protected: > > union { > Real m[4][4]; > Real _m[16]; > }; > public: > > > > > inline Matrix4() > { > } > > inline Matrix4( > Real m00, Real m01, Real m02, Real m03, > Real m10, Real m11, Real m12, Real m13, > Real m20, Real m21, Real m22, Real m23, > Real m30, Real m31, Real m32, Real m33 ) > { > m[0][0] = m00; > m[0][1] = m01; > m[0][2] = m02; > m[0][3] = m03; > m[1][0] = m10; > m[1][1] = m11; > m[1][2] = m12; > m[1][3] = m13; > m[2][0] = m20; > m[2][1] = m21; > m[2][2] = m22; > m[2][3] = m23; > m[3][0] = m30; > m[3][1] = m31; > m[3][2] = m32; > m[3][3] = m33; > } > > > > > inline Matrix4(const Matrix3& m3x3) > { > operator=(IDENTITY); > operator=(m3x3); > } > > > > > inline Matrix4(const Quaternion& rot) > { > Matrix3 m3x3; > rot.ToRotationMatrix(m3x3); > operator=(IDENTITY); > operator=(m3x3); > } > > > inline Real* operator [] ( size_t iRow ) > { > (static_cast<void> ((iRow < 4) ? 0 : (__assert_fail ("iRow < 4", "../../OgreMain/include/OgreMatrix4.h", 133, __PRETTY_FUNCTION__), 0))); > return m[iRow]; > } > > inline const Real *const operator [] ( size_t iRow ) const > { > (static_cast<void> ((iRow < 4) ? 0 : (__assert_fail ("iRow < 4", "../../OgreMain/include/OgreMatrix4.h", 139, __PRETTY_FUNCTION__), 0))); > return m[iRow]; > } > > inline Matrix4 concatenate(const Matrix4 &m2) const > { > Matrix4 r; > r.m[0][0] = m[0][0] * m2.m[0][0] + m[0][1] * m2.m[1][0] + m[0][2] * m2.m[2][0] + m[0][3] * m2.m[3][0]; > r.m[0][1] = m[0][0] * m2.m[0][1] + m[0][1] * m2.m[1][1] + m[0][2] * m2.m[2][1] + m[0][3] * m2.m[3][1]; > r.m[0][2] = m[0][0] * m2.m[0][2] + m[0][1] * m2.m[1][2] + m[0][2] * m2.m[2][2] + m[0][3] * m2.m[3][2]; > r.m[0][3] = m[0][0] * m2.m[0][3] + m[0][1] * m2.m[1][3] + m[0][2] * m2.m[2][3] + m[0][3] * m2.m[3][3]; > > r.m[1][0] = m[1][0] * m2.m[0][0] + m[1][1] * m2.m[1][0] + m[1][2] * m2.m[2][0] + m[1][3] * m2.m[3][0]; > r.m[1][1] = m[1][0] * m2.m[0][1] + m[1][1] * m2.m[1][1] + m[1][2] * m2.m[2][1] + m[1][3] * m2.m[3][1]; > r.m[1][2] = m[1][0] * m2.m[0][2] + m[1][1] * m2.m[1][2] + m[1][2] * m2.m[2][2] + m[1][3] * m2.m[3][2]; > r.m[1][3] = m[1][0] * m2.m[0][3] + m[1][1] * m2.m[1][3] + m[1][2] * m2.m[2][3] + m[1][3] * m2.m[3][3]; > > r.m[2][0] = m[2][0] * m2.m[0][0] + m[2][1] * m2.m[1][0] + m[2][2] * m2.m[2][0] + m[2][3] * m2.m[3][0]; > r.m[2][1] = m[2][0] * m2.m[0][1] + m[2][1] * m2.m[1][1] + m[2][2] * m2.m[2][1] + m[2][3] * m2.m[3][1]; > r.m[2][2] = m[2][0] * m2.m[0][2] + m[2][1] * m2.m[1][2] + m[2][2] * m2.m[2][2] + m[2][3] * m2.m[3][2]; > r.m[2][3] = m[2][0] * m2.m[0][3] + m[2][1] * m2.m[1][3] + m[2][2] * m2.m[2][3] + m[2][3] * m2.m[3][3]; > > r.m[3][0] = m[3][0] * m2.m[0][0] + m[3][1] * m2.m[1][0] + m[3][2] * m2.m[2][0] + m[3][3] * m2.m[3][0]; > r.m[3][1] = m[3][0] * m2.m[0][1] + m[3][1] * m2.m[1][1] + m[3][2] * m2.m[2][1] + m[3][3] * m2.m[3][1]; > r.m[3][2] = m[3][0] * m2.m[0][2] + m[3][1] * m2.m[1][2] + m[3][2] * m2.m[2][2] + m[3][3] * m2.m[3][2]; > r.m[3][3] = m[3][0] * m2.m[0][3] + m[3][1] * m2.m[1][3] + m[3][2] * m2.m[2][3] + m[3][3] * m2.m[3][3]; > > return r; > } > > > > inline Matrix4 operator * ( const Matrix4 &m2 ) const > { > return concatenate( m2 ); > } ># 185 "../../OgreMain/include/OgreMatrix4.h" > inline Vector3 operator * ( const Vector3 &v ) const > { > Vector3 r; > > Real fInvW = 1.0 / ( m[3][0] * v.x + m[3][1] * v.y + m[3][2] * v.z + m[3][3] ); > > r.x = ( m[0][0] * v.x + m[0][1] * v.y + m[0][2] * v.z + m[0][3] ) * fInvW; > r.y = ( m[1][0] * v.x + m[1][1] * v.y + m[1][2] * v.z + m[1][3] ) * fInvW; > r.z = ( m[2][0] * v.x + m[2][1] * v.y + m[2][2] * v.z + m[2][3] ) * fInvW; > > return r; > } > inline Vector4 operator * (const Vector4& v) const > { > return Vector4( > m[0][0] * v.x + m[0][1] * v.y + m[0][2] * v.z + m[0][3] * v.w, > m[1][0] * v.x + m[1][1] * v.y + m[1][2] * v.z + m[1][3] * v.w, > m[2][0] * v.x + m[2][1] * v.y + m[2][2] * v.z + m[2][3] * v.w, > m[3][0] * v.x + m[3][1] * v.y + m[3][2] * v.z + m[3][3] * v.w > ); > } > inline Plane operator * (const Plane& p) const > { > Plane ret; > Matrix4 invTrans = inverse().transpose(); > ret.normal.x = > invTrans[0][0] * p.normal.x + invTrans[0][1] * p.normal.y + invTrans[0][2] * p.normal.z; > ret.normal.y = > invTrans[1][0] * p.normal.x + invTrans[1][1] * p.normal.y + invTrans[1][2] * p.normal.z; > ret.normal.z = > invTrans[2][0] * p.normal.x + invTrans[2][1] * p.normal.y + invTrans[2][2] * p.normal.z; > Vector3 pt = p.normal * -p.d; > pt = *this * pt; > ret.d = - pt.dotProduct(ret.normal); > return ret; > } > > > > > inline Matrix4 operator + ( const Matrix4 &m2 ) const > { > Matrix4 r; > > r.m[0][0] = m[0][0] + m2.m[0][0]; > r.m[0][1] = m[0][1] + m2.m[0][1]; > r.m[0][2] = m[0][2] + m2.m[0][2]; > r.m[0][3] = m[0][3] + m2.m[0][3]; > > r.m[1][0] = m[1][0] + m2.m[1][0]; > r.m[1][1] = m[1][1] + m2.m[1][1]; > r.m[1][2] = m[1][2] + m2.m[1][2]; > r.m[1][3] = m[1][3] + m2.m[1][3]; > > r.m[2][0] = m[2][0] + m2.m[2][0]; > r.m[2][1] = m[2][1] + m2.m[2][1]; > r.m[2][2] = m[2][2] + m2.m[2][2]; > r.m[2][3] = m[2][3] + m2.m[2][3]; > > r.m[3][0] = m[3][0] + m2.m[3][0]; > r.m[3][1] = m[3][1] + m2.m[3][1]; > r.m[3][2] = m[3][2] + m2.m[3][2]; > r.m[3][3] = m[3][3] + m2.m[3][3]; > > return r; > } > > > > inline Matrix4 operator - ( const Matrix4 &m2 ) const > { > Matrix4 r; > r.m[0][0] = m[0][0] - m2.m[0][0]; > r.m[0][1] = m[0][1] - m2.m[0][1]; > r.m[0][2] = m[0][2] - m2.m[0][2]; > r.m[0][3] = m[0][3] - m2.m[0][3]; > > r.m[1][0] = m[1][0] - m2.m[1][0]; > r.m[1][1] = m[1][1] - m2.m[1][1]; > r.m[1][2] = m[1][2] - m2.m[1][2]; > r.m[1][3] = m[1][3] - m2.m[1][3]; > > r.m[2][0] = m[2][0] - m2.m[2][0]; > r.m[2][1] = m[2][1] - m2.m[2][1]; > r.m[2][2] = m[2][2] - m2.m[2][2]; > r.m[2][3] = m[2][3] - m2.m[2][3]; > > r.m[3][0] = m[3][0] - m2.m[3][0]; > r.m[3][1] = m[3][1] - m2.m[3][1]; > r.m[3][2] = m[3][2] - m2.m[3][2]; > r.m[3][3] = m[3][3] - m2.m[3][3]; > > return r; > } > > > > inline bool operator == ( const Matrix4& m2 ) const > { > if( > m[0][0] != m2.m[0][0] || m[0][1] != m2.m[0][1] || m[0][2] != m2.m[0][2] || m[0][3] != m2.m[0][3] || > m[1][0] != m2.m[1][0] || m[1][1] != m2.m[1][1] || m[1][2] != m2.m[1][2] || m[1][3] != m2.m[1][3] || > m[2][0] != m2.m[2][0] || m[2][1] != m2.m[2][1] || m[2][2] != m2.m[2][2] || m[2][3] != m2.m[2][3] || > m[3][0] != m2.m[3][0] || m[3][1] != m2.m[3][1] || m[3][2] != m2.m[3][2] || m[3][3] != m2.m[3][3] ) > return false; > return true; > } > > > > inline bool operator != ( const Matrix4& m2 ) const > { > if( > m[0][0] != m2.m[0][0] || m[0][1] != m2.m[0][1] || m[0][2] != m2.m[0][2] || m[0][3] != m2.m[0][3] || > m[1][0] != m2.m[1][0] || m[1][1] != m2.m[1][1] || m[1][2] != m2.m[1][2] || m[1][3] != m2.m[1][3] || > m[2][0] != m2.m[2][0] || m[2][1] != m2.m[2][1] || m[2][2] != m2.m[2][2] || m[2][3] != m2.m[2][3] || > m[3][0] != m2.m[3][0] || m[3][1] != m2.m[3][1] || m[3][2] != m2.m[3][2] || m[3][3] != m2.m[3][3] ) > return true; > return false; > } > > > > inline void operator = ( const Matrix3& mat3 ) > { > m[0][0] = mat3.m[0][0]; m[0][1] = mat3.m[0][1]; m[0][2] = mat3.m[0][2]; > m[1][0] = mat3.m[1][0]; m[1][1] = mat3.m[1][1]; m[1][2] = mat3.m[1][2]; > m[2][0] = mat3.m[2][0]; m[2][1] = mat3.m[2][1]; m[2][2] = mat3.m[2][2]; > } > > inline Matrix4 transpose(void) const > { > return Matrix4(m[0][0], m[1][0], m[2][0], m[3][0], > m[0][1], m[1][1], m[2][1], m[3][1], > m[0][2], m[1][2], m[2][2], m[3][2], > m[0][3], m[1][3], m[2][3], m[3][3]); > } ># 330 "../../OgreMain/include/OgreMatrix4.h" > inline void setTrans( const Vector3& v ) > { > m[0][3] = v.x; > m[1][3] = v.y; > m[2][3] = v.z; > } > > > > inline Vector3 getTrans() const > { > return Vector3(m[0][3], m[1][3], m[2][3]); > } > > > > > inline void makeTrans( const Vector3& v ) > { > m[0][0] = 1.0; m[0][1] = 0.0; m[0][2] = 0.0; m[0][3] = v.x; > m[1][0] = 0.0; m[1][1] = 1.0; m[1][2] = 0.0; m[1][3] = v.y; > m[2][0] = 0.0; m[2][1] = 0.0; m[2][2] = 1.0; m[2][3] = v.z; > m[3][0] = 0.0; m[3][1] = 0.0; m[3][2] = 0.0; m[3][3] = 1.0; > } > > inline void makeTrans( Real tx, Real ty, Real tz ) > { > m[0][0] = 1.0; m[0][1] = 0.0; m[0][2] = 0.0; m[0][3] = tx; > m[1][0] = 0.0; m[1][1] = 1.0; m[1][2] = 0.0; m[1][3] = ty; > m[2][0] = 0.0; m[2][1] = 0.0; m[2][2] = 1.0; m[2][3] = tz; > m[3][0] = 0.0; m[3][1] = 0.0; m[3][2] = 0.0; m[3][3] = 1.0; > } > > > > inline static Matrix4 getTrans( const Vector3& v ) > { > Matrix4 r; > > r.m[0][0] = 1.0; r.m[0][1] = 0.0; r.m[0][2] = 0.0; r.m[0][3] = v.x; > r.m[1][0] = 0.0; r.m[1][1] = 1.0; r.m[1][2] = 0.0; r.m[1][3] = v.y; > r.m[2][0] = 0.0; r.m[2][1] = 0.0; r.m[2][2] = 1.0; r.m[2][3] = v.z; > r.m[3][0] = 0.0; r.m[3][1] = 0.0; r.m[3][2] = 0.0; r.m[3][3] = 1.0; > > return r; > } > > > > inline static Matrix4 getTrans( Real t_x, Real t_y, Real t_z ) > { > Matrix4 r; > > r.m[0][0] = 1.0; r.m[0][1] = 0.0; r.m[0][2] = 0.0; r.m[0][3] = t_x; > r.m[1][0] = 0.0; r.m[1][1] = 1.0; r.m[1][2] = 0.0; r.m[1][3] = t_y; > r.m[2][0] = 0.0; r.m[2][1] = 0.0; r.m[2][2] = 1.0; r.m[2][3] = t_z; > r.m[3][0] = 0.0; r.m[3][1] = 0.0; r.m[3][2] = 0.0; r.m[3][3] = 1.0; > > return r; > } ># 398 "../../OgreMain/include/OgreMatrix4.h" > inline void setScale( const Vector3& v ) > { > m[0][0] = v.x; > m[1][1] = v.y; > m[2][2] = v.z; > } > > > > inline static Matrix4 getScale( const Vector3& v ) > { > Matrix4 r; > r.m[0][0] = v.x; r.m[0][1] = 0.0; r.m[0][2] = 0.0; r.m[0][3] = 0.0; > r.m[1][0] = 0.0; r.m[1][1] = v.y; r.m[1][2] = 0.0; r.m[1][3] = 0.0; > r.m[2][0] = 0.0; r.m[2][1] = 0.0; r.m[2][2] = v.z; r.m[2][3] = 0.0; > r.m[3][0] = 0.0; r.m[3][1] = 0.0; r.m[3][2] = 0.0; r.m[3][3] = 1.0; > > return r; > } > > > > inline static Matrix4 getScale( Real s_x, Real s_y, Real s_z ) > { > Matrix4 r; > r.m[0][0] = s_x; r.m[0][1] = 0.0; r.m[0][2] = 0.0; r.m[0][3] = 0.0; > r.m[1][0] = 0.0; r.m[1][1] = s_y; r.m[1][2] = 0.0; r.m[1][3] = 0.0; > r.m[2][0] = 0.0; r.m[2][1] = 0.0; r.m[2][2] = s_z; r.m[2][3] = 0.0; > r.m[3][0] = 0.0; r.m[3][1] = 0.0; r.m[3][2] = 0.0; r.m[3][3] = 1.0; > > return r; > } > > > > > inline void extract3x3Matrix(Matrix3& m3x3) const > { > m3x3.m[0][0] = m[0][0]; > m3x3.m[0][1] = m[0][1]; > m3x3.m[0][2] = m[0][2]; > m3x3.m[1][0] = m[1][0]; > m3x3.m[1][1] = m[1][1]; > m3x3.m[1][2] = m[1][2]; > m3x3.m[2][0] = m[2][0]; > m3x3.m[2][1] = m[2][1]; > m3x3.m[2][2] = m[2][2]; > > } > > > > inline Quaternion extractQuaternion() const > { > Matrix3 m3x3; > extract3x3Matrix(m3x3); > return Quaternion(m3x3); > } > > static const Matrix4 ZERO; > static const Matrix4 IDENTITY; > > > static const Matrix4 CLIPSPACE2DTOIMAGESPACE; > > inline Matrix4 operator*(Real scalar) > { > return Matrix4( > scalar*m[0][0], scalar*m[0][1], scalar*m[0][2], scalar*m[0][3], > scalar*m[1][0], scalar*m[1][1], scalar*m[1][2], scalar*m[1][3], > scalar*m[2][0], scalar*m[2][1], scalar*m[2][2], scalar*m[2][3], > scalar*m[3][0], scalar*m[3][1], scalar*m[3][2], scalar*m[3][3]); > } > > > > inline friend std::ostream& operator << > ( std::ostream& o, const Matrix4& m ) > { > o << "Matrix4("; > for (size_t i = 0; i < 4; ++i) > { > o << " row" << (unsigned)i << "{"; > for(size_t j = 0; j < 4; ++j) > { > o << m[i][j] << " "; > } > o << "}"; > } > o << ")"; > return o; > } > > Matrix4 adjoint() const; > Real determinant() const; > Matrix4 inverse() const; > > }; > > > > > > inline Vector4 operator * (const Vector4& v, const Matrix4& mat) > { > return Vector4( > v.x*mat[0][0] + v.y*mat[1][0] + v.z*mat[2][0] + v.w*mat[3][0], > v.x*mat[0][1] + v.y*mat[1][1] + v.z*mat[2][1] + v.w*mat[3][1], > v.x*mat[0][2] + v.y*mat[1][2] + v.z*mat[2][2] + v.w*mat[3][2], > v.x*mat[0][3] + v.y*mat[1][3] + v.z*mat[2][3] + v.w*mat[3][3] > ); > } > >} ># 32 "../../OgreMain/include/OgreSimpleSpline.h" 2 > >namespace Ogre { ># 47 "../../OgreMain/include/OgreSimpleSpline.h" > class SimpleSpline > { > public: > SimpleSpline(); > ~SimpleSpline(); > > > void addPoint(const Vector3& p); > > > const Vector3& getPoint(unsigned short index) const; > > > unsigned short getNumPoints(void) const; > > > void clear(void); > > > > > > void updatePoint(unsigned short index, const Vector3& value); > > > > > > > > Vector3 interpolate(Real t); > > > > > > Vector3 interpolate(unsigned int fromIndex, Real t); ># 98 "../../OgreMain/include/OgreSimpleSpline.h" > void setAutoCalculate(bool autoCalc); > > > > > > > void recalcTangents(void); > > protected: > > bool mAutoCalc; > > std::vector<Vector3> mPoints; > std::vector<Vector3> mTangents; > > > Matrix4 mCoeffs; > > > > }; > > >} ># 31 "../../OgreMain/include/OgreAnimationTrack.h" 2 ># 1 "../../OgreMain/include/OgreRotationalSpline.h" 1 ># 31 "../../OgreMain/include/OgreRotationalSpline.h" >namespace Ogre { ># 48 "../../OgreMain/include/OgreRotationalSpline.h" > class RotationalSpline > { > public: > RotationalSpline(); > ~RotationalSpline(); > > > void addPoint(const Quaternion& p); > > > const Quaternion& getPoint(unsigned short index) const; > > > unsigned short getNumPoints(void) const; > > > void clear(void); > > > > > > void updatePoint(unsigned short index, const Quaternion& value); ># 79 "../../OgreMain/include/OgreRotationalSpline.h" > Quaternion interpolate(Real t, bool useShortestPath=true); > > > > > > > Quaternion interpolate(unsigned int fromIndex, Real t, bool useShortestPath=true); ># 100 "../../OgreMain/include/OgreRotationalSpline.h" > void setAutoCalculate(bool autoCalc); > > > > > > > void recalcTangents(void); > > protected: > > bool mAutoCalc; > > > > std::vector<Quaternion> mPoints; > std::vector<Quaternion> mTangents; > > }; > > >} ># 32 "../../OgreMain/include/OgreAnimationTrack.h" 2 > >namespace Ogre >{ ># 54 "../../OgreMain/include/OgreAnimationTrack.h" > class AnimationTrack > { > public: > > AnimationTrack(Animation* parent); > > AnimationTrack(Animation* parent, Node* targetNode); > > virtual ~AnimationTrack(); > > > unsigned short getNumKeyFrames(void) const; > > > KeyFrame* getKeyFrame(unsigned short index) const; ># 91 "../../OgreMain/include/OgreAnimationTrack.h" > Real getKeyFramesAtTime(Real timePos, KeyFrame** keyFrame1, KeyFrame** keyFrame2, > unsigned short* firstKeyIndex = 0) const; ># 101 "../../OgreMain/include/OgreAnimationTrack.h" > KeyFrame* createKeyFrame(Real timePos); > > > void removeKeyFrame(unsigned short index); > > > void removeAllKeyFrames(void); ># 121 "../../OgreMain/include/OgreAnimationTrack.h" > KeyFrame getInterpolatedKeyFrame(Real timeIndex) const; ># 133 "../../OgreMain/include/OgreAnimationTrack.h" > void apply(Real timePos, Real weight = 1.0, bool accumulate = false, > Real scale = 1.0f); > > > Node* getAssociatedNode(void) const; > > > void setAssociatedNode(Node* node); > > > void applyToNode(Node* node, Real timePos, Real weight = 1.0, > bool accumulate = false, Real scale = 1.0f); > > > void setUseShortestRotationPath(bool useShortestPath); > > > bool getUseShortestRotationPath() const; > > > > void _keyFrameDataChanged(void) const; > > > > > > bool hasNonZeroKeyFrames(void) const; > > > void optimise(void); > protected: > typedef std::vector<KeyFrame*> KeyFrameList; > KeyFrameList mKeyFrames; > Real mMaxKeyFrameTime; > Animation* mParent; > Node* mTargetNode; > > > void buildInterpolationSplines(void) const; > > > mutable bool mSplineBuildNeeded; > mutable SimpleSpline mPositionSpline; > mutable SimpleSpline mScaleSpline; > mutable RotationalSpline mRotationSpline; > > mutable bool mUseShortestRotationPath ; > > > }; >} ># 27 "OgreAnimationTrack.cpp" 2 ># 1 "../../OgreMain/include/OgreAnimation.h" 1 ># 30 "../../OgreMain/include/OgreAnimation.h" ># 1 "../../OgreMain/include/OgreString.h" 1 ># 34 "../../OgreMain/include/OgreString.h" >namespace __gnu_cxx >{ > template <> struct hash< Ogre::_StringBase > > { > size_t operator()( const Ogre::_StringBase _stringBase ) const > { > > > > > > > register size_t ret = 0; > for( Ogre::_StringBase::const_iterator it = _stringBase.begin(); it != _stringBase.end(); ++it ) > ret = 5 * ret + *it; > > return ret; > } > }; >} ># 82 "../../OgreMain/include/OgreString.h" >namespace Ogre { > > > class StringUtil > { > public: > typedef std::stringstream StrStreamType; ># 97 "../../OgreMain/include/OgreString.h" > static void trim( String& str, bool left = true, bool right = true ); ># 107 "../../OgreMain/include/OgreString.h" > static std::vector< String > split( const String& str, const String& delims = "\t\n ", unsigned int maxSplits = 0); > > > > static void toLowerCase( String& str ); > > > > static void toUpperCase( String& str ); > > > > > > > static Real toReal( const String& str ); > > > > > > > static bool startsWith(const String& str, const String& pattern, bool lowerCase = true); > > > > > > > static bool endsWith(const String& str, const String& pattern, bool lowerCase = true); > > > > static String standardisePath( const String &init); > > > > > > > static void splitFilename(const String& qualifiedName, > String& outBasename, String& outPath); > > > > > > > static bool match(const String& str, const String& pattern, bool caseSensitive = true); > > > > > > > static const String BLANK; > }; > > > > typedef ::__gnu_cxx::hash< _StringBase > _StringHash; ># 178 "../../OgreMain/include/OgreString.h" >} ># 31 "../../OgreMain/include/OgreAnimation.h" 2 ># 1 "../../OgreMain/include/OgreIteratorWrappers.h" 1 ># 30 "../../OgreMain/include/OgreIteratorWrappers.h" >namespace Ogre { ># 46 "../../OgreMain/include/OgreIteratorWrappers.h" > template <class T> > class VectorIterator > { > private: > typename T::iterator mCurrent; > typename T::iterator mEnd; > > VectorIterator() {}; > public: > typedef typename T::value_type ValueType; > > > > > > VectorIterator(typename T::iterator start, typename T::iterator end) > : mCurrent(start), mEnd(end) > { > } > > > bool hasMoreElements(void) const > { > return mCurrent != mEnd; > } > > > typename T::value_type getNext(void) > { > return *mCurrent++; > } > > typename T::value_type peekNext(void) > { > return *mCurrent; > } > > typename T::pointer peekNextPtr(void) > { > return &(*mCurrent); > } > > void moveNext(void) > { > mCurrent++; > } > > > > }; ># 111 "../../OgreMain/include/OgreIteratorWrappers.h" > template <class T> > class MapIterator > { > private: > typename T::iterator mCurrent; > typename T::iterator mEnd; > > MapIterator() {}; > public: > typedef typename T::mapped_type MappedType; > typedef typename T::key_type KeyType; > > > > > > MapIterator(typename T::iterator start, typename T::iterator end) > : mCurrent(start), mEnd(end) > { > } > > > bool hasMoreElements(void) const > { > return mCurrent != mEnd; > } > > > typename T::mapped_type getNext(void) > { > return (mCurrent++)->second; > } > > typename T::mapped_type peekNextValue(void) > { > return mCurrent->second; > } > > typename T::key_type peekNextKey(void) > { > return mCurrent->first; > } > > MapIterator<T> & operator=( MapIterator<T> &rhs ) > { > mCurrent = rhs.mCurrent; > mEnd = rhs.mEnd; > return *this; > } > > > typename T::pointer peekNextValuePtr(void) > { > return &(mCurrent->second); > } > > void moveNext(void) > { > mCurrent++; > } > > > > }; ># 189 "../../OgreMain/include/OgreIteratorWrappers.h" > template <class T> > class ConstVectorIterator > { > private: > mutable typename T::const_iterator mCurrent; > typename T::const_iterator mEnd; > > ConstVectorIterator() {}; > public: > typedef typename T::value_type ValueType; > > > > > > ConstVectorIterator(typename T::const_iterator start, typename T::const_iterator end) > : mCurrent(start), mEnd(end) > { > } > > > bool hasMoreElements(void) const > { > return mCurrent != mEnd; > } > > > typename T::value_type getNext(void) > { > return *mCurrent++; > } > > typename T::value_type peekNext(void) const > { > return *mCurrent; > } > > typename T::const_pointer peekNextPtr(void) const > { > return &(*mCurrent); > } > > void moveNext(void) const > { > mCurrent++; > } > > > > }; ># 254 "../../OgreMain/include/OgreIteratorWrappers.h" > template <class T> > class ConstMapIterator > { > private: > mutable typename T::const_iterator mCurrent; > typename T::const_iterator mEnd; > > ConstMapIterator() {}; > public: > typedef typename T::mapped_type MappedType; > typedef typename T::key_type KeyType; > > > > > > ConstMapIterator(typename T::const_iterator start, typename T::const_iterator end) > : mCurrent(start), mEnd(end) > { > } > > > bool hasMoreElements(void) const > { > return mCurrent != mEnd; > } > > > typename T::mapped_type getNext(void) > { > return (mCurrent++)->second; > } > > typename T::mapped_type peekNextValue(void) const > { > return mCurrent->second; > } > > typename T::key_type peekNextKey(void) const > { > return mCurrent->first; > } > > MapIterator<T> & operator=( MapIterator<T> &rhs ) > { > mCurrent = rhs.mCurrent; > mEnd = rhs.mEnd; > return *this; > } > > > typename T::const_pointer peekNextValuePtr(void) const > { > return &(mCurrent->second); > } > > void moveNext(void) const > { > mCurrent++; > } > > > > }; >} ># 32 "../../OgreMain/include/OgreAnimation.h" 2 > >namespace Ogre { ># 45 "../../OgreMain/include/OgreAnimation.h" > class Animation > { > > public: > > enum InterpolationMode > { > > IM_LINEAR, > > IM_SPLINE > }; > > > enum RotationInterpolationMode > { > > > > RIM_LINEAR, > > > > RIM_SPHERICAL > }; > > > > > Animation(const String& name, Real length); > virtual ~Animation(); > > > const String& getName(void) const; > > > Real getLength(void) const; > > > > > > AnimationTrack* createTrack(unsigned short handle); ># 97 "../../OgreMain/include/OgreAnimation.h" > AnimationTrack* createTrack(unsigned short handle, Node* node); > > > unsigned short getNumTracks(void) const; > > > AnimationTrack* getTrack(unsigned short handle) const; > > > > void destroyTrack(unsigned short handle); > > > void destroyAllTracks(void); ># 122 "../../OgreMain/include/OgreAnimation.h" > void apply(Real timePos, Real weight = 1.0, bool accumulate = false, > Real scale = 1.0f); ># 135 "../../OgreMain/include/OgreAnimation.h" > void apply(Skeleton* skeleton, Real timePos, Real weight = 1.0, > bool accumulate = false, Real scale = 1.0f); ># 150 "../../OgreMain/include/OgreAnimation.h" > void setInterpolationMode(InterpolationMode im); > > > > > > InterpolationMode getInterpolationMode(void) const; ># 167 "../../OgreMain/include/OgreAnimation.h" > void setRotationInterpolationMode(RotationInterpolationMode im); > > > > > > RotationInterpolationMode getRotationInterpolationMode(void) const; ># 182 "../../OgreMain/include/OgreAnimation.h" > static void setDefaultInterpolationMode(InterpolationMode im); > > > static InterpolationMode getDefaultInterpolationMode(void); > > > > > > > > static void setDefaultRotationInterpolationMode(RotationInterpolationMode im); > > > static RotationInterpolationMode getDefaultRotationInterpolationMode(void); > > typedef std::map<unsigned short, AnimationTrack*> TrackList; > typedef ConstMapIterator<TrackList> TrackIterator; > > > const TrackList& _getTrackList(void) const; > > > TrackIterator getTrackIterator(void) const > { return TrackIterator(mTrackList.begin(), mTrackList.end()); } ># 217 "../../OgreMain/include/OgreAnimation.h" > void optimise(void); > > > > protected: > > TrackList mTrackList; > String mName; > > Real mLength; > > InterpolationMode mInterpolationMode; > RotationInterpolationMode mRotationInterpolationMode; > > static InterpolationMode msDefaultInterpolationMode; > static RotationInterpolationMode msDefaultRotationInterpolationMode; > > > }; > > > >} ># 28 "OgreAnimationTrack.cpp" 2 ># 1 "../../OgreMain/include/OgreKeyFrame.h" 1 ># 33 "../../OgreMain/include/OgreKeyFrame.h" >namespace Ogre >{ ># 43 "../../OgreMain/include/OgreKeyFrame.h" > class KeyFrame > { > public: > > > KeyFrame(const AnimationTrack* parent, Real time); > > > Real getTime(void) const; > > > > > > > void setTranslate(const Vector3& trans); > > > const Vector3& getTranslate(void) const; > > > > > > > void setScale(const Vector3& scale); > > > const Vector3& getScale(void) const; > > > > > > void setRotation(const Quaternion& rot); > > > const Quaternion& getRotation(void) const; > > > protected: > Real mTime; > Vector3 mTranslate; > Vector3 mScale; > Quaternion mRotate; > const AnimationTrack* mParentTrack; > }; > >} ># 29 "OgreAnimationTrack.cpp" 2 ># 1 "../../OgreMain/include/OgreNode.h" 1 ># 34 "../../OgreMain/include/OgreNode.h" ># 1 "../../OgreMain/include/OgreRenderable.h" 1 ># 29 "../../OgreMain/include/OgreRenderable.h" ># 1 "../../OgreMain/include/OgreCommon.h" 1 ># 29 "../../OgreMain/include/OgreCommon.h" ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/utility" 1 3 ># 64 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/utility" 3 > ># 65 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/utility" 3 > ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_relops.h" 1 3 ># 74 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_relops.h" 3 >namespace std >{ > namespace rel_ops > { ># 90 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_relops.h" 3 >template <class _Tp> >inline bool operator!=(const _Tp& __x, const _Tp& __y) { > return !(__x == __y); >} ># 103 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_relops.h" 3 >template <class _Tp> >inline bool operator>(const _Tp& __x, const _Tp& __y) { > return __y < __x; >} ># 116 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_relops.h" 3 >template <class _Tp> >inline bool operator<=(const _Tp& __x, const _Tp& __y) { > return !(__y < __x); >} ># 129 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/bits/stl_relops.h" 3 >template <class _Tp> >inline bool operator>=(const _Tp& __x, const _Tp& __y) { > return !(__x < __y); >} > > } >} ># 67 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3/utility" 2 3 ># 30 "../../OgreMain/include/OgreCommon.h" 2 > >namespace Ogre { > > > > > enum CompareFunction > { > CMPF_ALWAYS_FAIL, > CMPF_ALWAYS_PASS, > CMPF_LESS, > CMPF_LESS_EQUAL, > CMPF_EQUAL, > CMPF_NOT_EQUAL, > CMPF_GREATER_EQUAL, > CMPF_GREATER > }; > > > > enum TextureFilterOptions > { > > TFO_NONE, > > TFO_BILINEAR, > > TFO_TRILINEAR, > > TFO_ANISOTROPIC > }; > > enum FilterType > { > > FT_MIN, > > FT_MAG, > > FT_MIP > }; > > enum FilterOptions > { > > FO_NONE, > > FO_POINT, > > FO_LINEAR, > > FO_ANISOTROPIC > }; > > > enum ShadeOptions > { > SO_FLAT, > SO_GOURAUD, > SO_PHONG > }; > > > enum FogMode > { > > FOG_NONE, > > FOG_EXP, > > FOG_EXP2, > > FOG_LINEAR > }; > > > > enum CullingMode > { > > CULL_NONE = 1, > > CULL_CLOCKWISE = 2, > > CULL_ANTICLOCKWISE = 3 > }; > > > > > > > enum ManualCullingMode > { > > MANUAL_CULL_NONE = 1, > > MANUAL_CULL_BACK = 2, > > MANUAL_CULL_FRONT = 3 > }; > > > enum WaveformType > { > > WFT_SINE, > > WFT_TRIANGLE, > > WFT_SQUARE, > > WFT_SAWTOOTH, > > WFT_INVERSE_SAWTOOTH > }; > > > enum SceneDetailLevel > { > > SDL_POINTS = 1, > > SDL_WIREFRAME = 2, > > SDL_SOLID = 3 > }; > > > enum ShadowTechnique > { > > SHADOWTYPE_NONE, > > > > > > > SHADOWTYPE_STENCIL_MODULATIVE, > > > > > > > > SHADOWTYPE_STENCIL_ADDITIVE, > > > > > SHADOWTYPE_TEXTURE_MODULATIVE > }; > > > typedef int TrackVertexColourType; > enum TrackVertexColourEnum { > TVC_NONE = 0x0, > TVC_AMBIENT = 0x1, > TVC_DIFFUSE = 0x2, > TVC_SPECULAR = 0x4, > TVC_EMISSIVE = 0x8 > }; > > typedef std::vector<Light*> LightList; > > typedef std::map<String, bool> UnaryOptionList; > typedef std::map<String, String> BinaryOptionList; > > > typedef std::map<String, String> NameValuePairList; > > > > struct Rect > { > long left, top, right, bottom; > > Rect() > { > } > Rect( long l, long t, long r, long b ) > { > left = l; > top = t; > right = r; > bottom = b; > } > Rect& operator = ( const Rect& other ) > { > left = other.left; > top = other.top; > right = other.right; > bottom = other.bottom; > > return *this; > } > }; > > > > > > struct Box > { > size_t left, top, right, bottom, front, back; > > Box() > { > } ># 250 "../../OgreMain/include/OgreCommon.h" > Box( size_t l, size_t t, size_t r, size_t b ): > left(l), > top(t), > right(r), > bottom(b), > front(0), > back(1) > { > (static_cast<void> ((right >= left && bottom >= top && back >= front) ? 0 : (__assert_fail ("right >= left && bottom >= top && back >= front", "../../OgreMain/include/OgreCommon.h", 258, __PRETTY_FUNCTION__), 0))); > } ># 271 "../../OgreMain/include/OgreCommon.h" > Box( size_t l, size_t t, size_t ff, size_t r, size_t b, size_t bb ): > left(l), > top(t), > right(r), > bottom(b), > front(ff), > back(bb) > { > (static_cast<void> ((right >= left && bottom >= top && back >= front) ? 0 : (__assert_fail ("right >= left && bottom >= top && back >= front", "../../OgreMain/include/OgreCommon.h", 279, __PRETTY_FUNCTION__), 0))); > } > > > bool contains(const Box &def) const > { > return (def.left >= left && def.top >= top && def.front >= front && > def.right <= right && def.bottom <= bottom && def.back <= back); > } > > > size_t getWidth() const { return right-left; } > > size_t getHeight() const { return bottom-top; } > > size_t getDepth() const { return back-front; } > }; ># 310 "../../OgreMain/include/OgreCommon.h" > int findCommandLineOpts(int numargs, char** argv, UnaryOptionList& unaryOptList, > BinaryOptionList& binOptList); > >} ># 30 "../../OgreMain/include/OgreRenderable.h" 2 > ># 1 "../../OgreMain/include/OgreRenderOperation.h" 1 ># 29 "../../OgreMain/include/OgreRenderOperation.h" ># 1 "../../OgreMain/include/OgreVertexIndexData.h" 1 ># 29 "../../OgreMain/include/OgreVertexIndexData.h" ># 1 "../../OgreMain/include/OgreHardwareVertexBuffer.h" 1 ># 30 "../../OgreMain/include/OgreHardwareVertexBuffer.h" ># 1 "../../OgreMain/include/OgreHardwareBuffer.h" 1 ># 31 "../../OgreMain/include/OgreHardwareBuffer.h" >namespace Ogre { ># 64 "../../OgreMain/include/OgreHardwareBuffer.h" > class HardwareBuffer > { > > public: > > enum Usage > { > > > > HBU_STATIC = 1, > > > > > > HBU_DYNAMIC = 2, > > > > > > > HBU_WRITE_ONLY = 4, ># 96 "../../OgreMain/include/OgreHardwareBuffer.h" > HBU_DISCARDABLE = 8, > > HBU_STATIC_WRITE_ONLY = 5, > > > > > > HBU_DYNAMIC_WRITE_ONLY = 6, > > HBU_DYNAMIC_WRITE_ONLY_DISCARDABLE = 14 > > > }; > > enum LockOptions > { > > HBL_NORMAL, > > > > > HBL_DISCARD, > > > > HBL_READ_ONLY, > > > > HBL_NO_OVERWRITE > > }; > protected: > size_t mSizeInBytes; > Usage mUsage; > bool mIsLocked; > size_t mLockStart; > size_t mLockSize; > bool mSystemMemory; > bool mUseShadowBuffer; > HardwareBuffer* mpShadowBuffer; > bool mShadowUpdated; > bool mSuppressHardwareUpdate; > > > virtual void* lockImpl(size_t offset, size_t length, LockOptions options) = 0; > > virtual void unlockImpl(void) = 0; > > public: > > HardwareBuffer(Usage usage, bool systemMemory, bool useShadowBuffer) > : mUsage(usage), mIsLocked(false), mSystemMemory(systemMemory), > mUseShadowBuffer(useShadowBuffer), mpShadowBuffer(__null), mShadowUpdated(false), > mSuppressHardwareUpdate(false) > { > > if (useShadowBuffer && usage == HBU_DYNAMIC) > { > mUsage = HBU_DYNAMIC_WRITE_ONLY; > } > else if (useShadowBuffer && usage == HBU_STATIC) > { > mUsage = HBU_STATIC_WRITE_ONLY; > } > } > virtual ~HardwareBuffer() {} > > > > > > > virtual void* lock(size_t offset, size_t length, LockOptions options) > { > (static_cast<void> ((!isLocked() && "Cannot lock this buffer, it is already locked!") ? 0 : (__assert_fail ("!isLocked() && \"Cannot lock this buffer, it is already locked!\"", "../../OgreMain/include/OgreHardwareBuffer.h", 173, __PRETTY_FUNCTION__), 0))); > void* ret; > if (mUseShadowBuffer) > { > if (options != HBL_READ_ONLY) > { > > > mShadowUpdated = true; > } > > ret = mpShadowBuffer->lock(offset, length, options); > } > else > { > > ret = lockImpl(offset, length, options); > mIsLocked = true; > } > mLockStart = offset; > mLockSize = length; > return ret; > } > > > > > > void* lock(LockOptions options) > { > return this->lock(0, mSizeInBytes, options); > } ># 217 "../../OgreMain/include/OgreHardwareBuffer.h" > virtual void unlock(void) > { > (static_cast<void> ((isLocked() && "Cannot unlock this buffer, it is not locked!") ? 0 : (__assert_fail ("isLocked() && \"Cannot unlock this buffer, it is not locked!\"", "../../OgreMain/include/OgreHardwareBuffer.h", 219, __PRETTY_FUNCTION__), 0))); > > > if (mUseShadowBuffer && mpShadowBuffer->isLocked()) > { > mpShadowBuffer->unlock(); > > _updateFromShadow(); > } > else > { > > unlockImpl(); > mIsLocked = false; > } > > } > > > > > > > > virtual void readData(size_t offset, size_t length, void* pDest) = 0; ># 252 "../../OgreMain/include/OgreHardwareBuffer.h" > virtual void writeData(size_t offset, size_t length, const void* pSource, > bool discardWholeBuffer = false) = 0; ># 265 "../../OgreMain/include/OgreHardwareBuffer.h" > virtual void copyData(HardwareBuffer& srcBuffer, size_t srcOffset, > size_t dstOffset, size_t length, bool discardWholeBuffer = false) > { > const void *srcData = srcBuffer.lock( > srcOffset, length, HBL_READ_ONLY); > this->writeData(dstOffset, length, srcData, discardWholeBuffer); > srcBuffer.unlock(); > } > > > virtual void _updateFromShadow(void) > { > if (mUseShadowBuffer && mShadowUpdated && !mSuppressHardwareUpdate) > { > > const void *srcData = mpShadowBuffer->lockImpl( > mLockStart, mLockSize, HBL_READ_ONLY); > > LockOptions lockOpt; > if (mLockStart == 0 && mLockSize == mSizeInBytes) > lockOpt = HBL_DISCARD; > else > lockOpt = HBL_NORMAL; > > void *destData = this->lockImpl( > mLockStart, mLockSize, lockOpt); > > memcpy(destData, srcData, mLockSize); > this->unlockImpl(); > mpShadowBuffer->unlockImpl(); > mShadowUpdated = false; > } > } > > > size_t getSizeInBytes(void) const { return mSizeInBytes; } > > Usage getUsage(void) const { return mUsage; } > > bool isSystemMemory(void) const { return mSystemMemory; } > > bool hasShadowBuffer(void) const { return mUseShadowBuffer; } > > bool isLocked(void) const { > return mIsLocked || (mUseShadowBuffer && mpShadowBuffer->isLocked()); > } > > void suppressHardwareUpdate(bool suppress) { > mSuppressHardwareUpdate = suppress; > if (!suppress) > _updateFromShadow(); > } > > > > > > }; >} ># 31 "../../OgreMain/include/OgreHardwareVertexBuffer.h" 2 ># 1 "../../OgreMain/include/OgreSharedPtr.h" 1 ># 30 "../../OgreMain/include/OgreSharedPtr.h" >namespace Ogre { ># 44 "../../OgreMain/include/OgreSharedPtr.h" > template<class T> class SharedPtr { > protected: > T* pRep; > unsigned int* pUseCount; > public: > > > > > > SharedPtr() : pRep(0), pUseCount(0) {} > explicit SharedPtr(T* rep) : pRep(rep), pUseCount(new unsigned int(1)) > { > > } > SharedPtr(const SharedPtr& r) > { > > > > pRep = r.pRep; > pUseCount = r.pUseCount; > > if(pUseCount) > { > ++(*pUseCount); > } > } > SharedPtr& operator=(const SharedPtr& r) { > if (pRep == r.pRep) > return *this; > release(); > > > > pRep = r.pRep; > pUseCount = r.pUseCount; > if (pUseCount) > { > ++(*pUseCount); > } > return *this; > } > virtual ~SharedPtr() { > release(); > } > > > inline T& operator*() const { (static_cast<void> ((pRep) ? 0 : (__assert_fail ("pRep", "../../OgreMain/include/OgreSharedPtr.h", 92, __PRETTY_FUNCTION__), 0))); return *pRep; } > inline T* operator->() const { (static_cast<void> ((pRep) ? 0 : (__assert_fail ("pRep", "../../OgreMain/include/OgreSharedPtr.h", 93, __PRETTY_FUNCTION__), 0))); return pRep; } > inline T* get() const { return pRep; } > > > > > > void bind(T* rep) { > (static_cast<void> ((!pRep && !pUseCount) ? 0 : (__assert_fail ("!pRep && !pUseCount", "../../OgreMain/include/OgreSharedPtr.h", 101, __PRETTY_FUNCTION__), 0))); > > > pUseCount = new unsigned int(1); > pRep = rep; > } > > inline bool unique() const { (static_cast<void> ((pUseCount) ? 0 : (__assert_fail ("pUseCount", "../../OgreMain/include/OgreSharedPtr.h", 108, __PRETTY_FUNCTION__), 0))); return *pUseCount == 1; } > inline unsigned int useCount() const { (static_cast<void> ((pUseCount) ? 0 : (__assert_fail ("pUseCount", "../../OgreMain/include/OgreSharedPtr.h", 109, __PRETTY_FUNCTION__), 0))); return *pUseCount; } > inline unsigned int* useCountPointer() const { return pUseCount; } > > inline T* getPointer() const { return pRep; } > > inline bool isNull(void) const { return pRep == 0; } > > inline void setNull(void) { > if (pRep) > { > > release(); > pRep = 0; > pUseCount = 0; > > } > } > > protected: > > inline void release(void) { > bool destroyThis = false; > { > > > if (pUseCount) > { > if (--(*pUseCount) == 0) > { > destroyThis = true; > } > } > } > if (destroyThis) > destroy(); > } > > virtual void destroy(void) > { > > > > > delete pRep; > delete pUseCount; > > } > }; > > template<class T, class U> inline bool operator==(SharedPtr<T> const& a, SharedPtr<U> const& b) > { > return a.get() == b.get(); > } > > template<class T, class U> inline bool operator!=(SharedPtr<T> const& a, SharedPtr<U> const& b) > { > return a.get() != b.get(); > } > >} ># 32 "../../OgreMain/include/OgreHardwareVertexBuffer.h" 2 ># 1 "../../OgreMain/include/OgreColourValue.h" 1 ># 30 "../../OgreMain/include/OgreColourValue.h" >namespace Ogre { > > typedef uint32 RGBA; > typedef uint32 ARGB; > typedef uint32 ABGR; ># 47 "../../OgreMain/include/OgreColourValue.h" > class ColourValue > { > public: > static ColourValue Black; > static ColourValue White; > static ColourValue Red; > static ColourValue Green; > static ColourValue Blue; > > explicit ColourValue( float red = 1.0f, > float green = 1.0f, > float blue = 1.0f, > float alpha = 1.0f ) : r(red), g(green), b(blue), a(alpha) > { } > > bool operator==(const ColourValue& rhs) const; > bool operator!=(const ColourValue& rhs) const; > > union { > struct { > float r,g,b,a; > }; > float val[4]; > }; > > > > RGBA getAsRGBA(void) const; > > > > ARGB getAsARGB(void) const; > > > ABGR getAsABGR(void) const; > > > > void setAsRGBA(const RGBA val); > > > > void setAsARGB(const ARGB val); > > > > void setAsABGR(const ABGR val); > > > inline ColourValue operator + ( const ColourValue& rkVector ) const > { > ColourValue kSum; > > kSum.r = r + rkVector.r; > kSum.g = g + rkVector.g; > kSum.b = b + rkVector.b; > kSum.a = a + rkVector.a; > > return kSum; > } > > inline ColourValue operator - ( const ColourValue& rkVector ) const > { > ColourValue kDiff; > > kDiff.r = r - rkVector.r; > kDiff.g = g - rkVector.g; > kDiff.b = b - rkVector.b; > kDiff.a = a - rkVector.a; > > return kDiff; > } > > inline ColourValue operator * (const float fScalar ) const > { > ColourValue kProd; > > kProd.r = fScalar*r; > kProd.g = fScalar*g; > kProd.b = fScalar*b; > kProd.a = fScalar*a; > > return kProd; > } > > inline ColourValue operator * ( const ColourValue& rhs) const > { > ColourValue kProd; > > kProd.r = rhs.r * r; > kProd.g = rhs.g * g; > kProd.b = rhs.b * b; > kProd.a = rhs.a * a; > > return kProd; > } > > inline ColourValue operator / ( const ColourValue& rhs) const > { > ColourValue kProd; > > kProd.r = rhs.r / r; > kProd.g = rhs.g / g; > kProd.b = rhs.b / b; > kProd.a = rhs.a / a; > > return kProd; > } > > inline ColourValue operator / (const float fScalar ) const > { > (static_cast<void> ((fScalar != 0.0) ? 0 : (__assert_fail ("fScalar != 0.0", "../../OgreMain/include/OgreColourValue.h", 158, __PRETTY_FUNCTION__), 0))); > > ColourValue kDiv; > > float fInv = 1.0 / fScalar; > kDiv.r = r * fInv; > kDiv.g = g * fInv; > kDiv.b = b * fInv; > kDiv.a = a * fInv; > > return kDiv; > } > > inline friend ColourValue operator * (const float fScalar, const ColourValue& rkVector ) > { > ColourValue kProd; > > kProd.r = fScalar * rkVector.r; > kProd.g = fScalar * rkVector.g; > kProd.b = fScalar * rkVector.b; > kProd.a = fScalar * rkVector.a; > > return kProd; > } > > > inline ColourValue& operator += ( const ColourValue& rkVector ) > { > r += rkVector.r; > g += rkVector.g; > b += rkVector.b; > a += rkVector.a; > > return *this; > } > > inline ColourValue& operator -= ( const ColourValue& rkVector ) > { > r -= rkVector.r; > g -= rkVector.g; > b -= rkVector.b; > a -= rkVector.a; > > return *this; > } > > inline ColourValue& operator *= (const float fScalar ) > { > r *= fScalar; > g *= fScalar; > b *= fScalar; > a *= fScalar; > return *this; > } > > inline ColourValue& operator /= (const float fScalar ) > { > (static_cast<void> ((fScalar != 0.0) ? 0 : (__assert_fail ("fScalar != 0.0", "../../OgreMain/include/OgreColourValue.h", 215, __PRETTY_FUNCTION__), 0))); > > float fInv = 1.0 / fScalar; > > r *= fInv; > g *= fInv; > b *= fInv; > a *= fInv; > > return *this; > } > > > }; > >} ># 33 "../../OgreMain/include/OgreHardwareVertexBuffer.h" 2 > >namespace Ogre { > > class HardwareVertexBuffer : public HardwareBuffer > { > protected: > > size_t mNumVertices; > size_t mVertexSize; > > public: > > HardwareVertexBuffer(size_t vertexSize, size_t numVertices, > HardwareBuffer::Usage usage, bool useSystemMemory, bool useShadowBuffer); > ~HardwareVertexBuffer(); > > size_t getVertexSize(void) const { return mVertexSize; } > > size_t getNumVertices(void) const { return mNumVertices; } > > > > > > }; > > > class HardwareVertexBufferSharedPtr : public SharedPtr<HardwareVertexBuffer> > { > public: > HardwareVertexBufferSharedPtr() : SharedPtr<HardwareVertexBuffer>() {} > explicit HardwareVertexBufferSharedPtr(HardwareVertexBuffer* buf); > > > }; > > > enum VertexElementSemantic { > > VES_POSITION = 1, > > VES_BLEND_WEIGHTS = 2, > > VES_BLEND_INDICES = 3, > > VES_NORMAL = 4, > > VES_DIFFUSE = 5, > > VES_SPECULAR = 6, > > VES_TEXTURE_COORDINATES = 7, > > VES_BINORMAL = 8, > > VES_TANGENT = 9 > > }; > > > enum VertexElementType > { > VET_FLOAT1, > VET_FLOAT2, > VET_FLOAT3, > VET_FLOAT4, > VET_COLOUR, > VET_SHORT1, > VET_SHORT2, > VET_SHORT3, > VET_SHORT4, > VET_UBYTE4 > }; ># 116 "../../OgreMain/include/OgreHardwareVertexBuffer.h" > class VertexElement > { > protected: > > unsigned short mSource; > > size_t mOffset; > > VertexElementType mType; > > VertexElementSemantic mSemantic; > > unsigned short mIndex; > public: > > VertexElement(unsigned short source, size_t offset, VertexElementType theType, > VertexElementSemantic semantic, unsigned short index = 0); > > unsigned short getSource(void) const { return mSource; } > > size_t getOffset(void) const { return mOffset; } > > VertexElementType getType(void) const { return mType; } > > VertexElementSemantic getSemantic(void) const { return mSemantic; } > > unsigned short getIndex(void) const { return mIndex; } > > size_t getSize(void) const; > > static size_t getTypeSize(VertexElementType etype); > > static unsigned short getTypeCount(VertexElementType etype); > > > > static VertexElementType multiplyTypeCount(VertexElementType baseType, unsigned short count); > > > > static VertexElementType getBaseType(VertexElementType multiType); > > inline bool operator== (const VertexElement& rhs) const > { > if (mType != rhs.mType || > mIndex != rhs.mIndex || > mOffset != rhs.mOffset || > mSemantic != rhs.mSemantic || > mSource != rhs.mSource) > return false; > else > return true; > > } > > > > > > > > inline void baseVertexPointerToElement(void* pBase, void** pElem) const > { > > > *pElem = static_cast<void*>( > static_cast<unsigned char*>(pBase) + mOffset); > } > > > > > > > > inline void baseVertexPointerToElement(void* pBase, float** pElem) const > { > > > > *pElem = static_cast<float*>( > static_cast<void*>( > static_cast<unsigned char*>(pBase) + mOffset)); > } ># 208 "../../OgreMain/include/OgreHardwareVertexBuffer.h" > inline void baseVertexPointerToElement(void* pBase, RGBA** pElem) const > { > *pElem = static_cast<RGBA*>( > static_cast<void*>( > static_cast<unsigned char*>(pBase) + mOffset)); > } > > > > > > > > inline void baseVertexPointerToElement(void* pBase, unsigned char** pElem) const > { > *pElem = static_cast<unsigned char*>(pBase) + mOffset; > } ># 233 "../../OgreMain/include/OgreHardwareVertexBuffer.h" > inline void baseVertexPointerToElement(void* pBase, unsigned short** pElem) const > { > *pElem = static_cast<unsigned short*>(pBase) + mOffset; > } > > > }; ># 262 "../../OgreMain/include/OgreHardwareVertexBuffer.h" > class VertexDeclaration > { > public: > > typedef std::list<VertexElement> VertexElementList; > > static bool vertexElementLess(const VertexElement& e1, const VertexElement& e2); > protected: > VertexElementList mElementList; > public: > > VertexDeclaration(); > virtual ~VertexDeclaration(); > > > size_t getElementCount(void) { return mElementList.size(); } > > const VertexElementList& getElements(void) const; > > const VertexElement* getElement(unsigned short index); ># 291 "../../OgreMain/include/OgreHardwareVertexBuffer.h" > void sort(void); ># 303 "../../OgreMain/include/OgreHardwareVertexBuffer.h" > void closeGapsInSource(void); > > > > > > > > VertexDeclaration* getAutoOrganisedDeclaration(bool animated); > > > unsigned short getMaxSource(void) const; ># 331 "../../OgreMain/include/OgreHardwareVertexBuffer.h" > virtual const VertexElement& addElement(unsigned short source, size_t offset, VertexElementType theType, > VertexElementSemantic semantic, unsigned short index = 0); ># 346 "../../OgreMain/include/OgreHardwareVertexBuffer.h" > virtual const VertexElement& insertElement(unsigned short atPosition, > unsigned short source, size_t offset, VertexElementType theType, > VertexElementSemantic semantic, unsigned short index = 0); > > > virtual void removeElement(unsigned short elem_index); > > > > > > > > virtual void removeElement(VertexElementSemantic semantic, unsigned short index = 0); > > > > > > > virtual void modifyElement(unsigned short elem_index, unsigned short source, size_t offset, VertexElementType theType, > VertexElementSemantic semantic, unsigned short index = 0); > > > > > > > virtual const VertexElement* findElementBySemantic(VertexElementSemantic sem, unsigned short index = 0); ># 384 "../../OgreMain/include/OgreHardwareVertexBuffer.h" > virtual VertexElementList findElementsBySource(unsigned short source); > > > virtual size_t getVertexSize(unsigned short source); > > > virtual VertexDeclaration* clone(void); > > inline bool operator== (const VertexDeclaration& rhs) const > { > if (mElementList.size() != rhs.mElementList.size()) > return false; > > VertexElementList::const_iterator i, iend, rhsi, rhsiend; > iend = mElementList.end(); > rhsiend = rhs.mElementList.end(); > rhsi = rhs.mElementList.begin(); > for (i = mElementList.begin(); i != iend && rhsi != rhsiend; ++i, ++rhsi) > { > if ( !(*i == *rhsi) ) > return false; > } > > return true; > } > inline bool operator!= (const VertexDeclaration& rhs) const > { > return !(*this == rhs); > } > > }; ># 429 "../../OgreMain/include/OgreHardwareVertexBuffer.h" > class VertexBufferBinding > { > public: > > typedef std::map<unsigned short, HardwareVertexBufferSharedPtr> VertexBufferBindingMap; > protected: > VertexBufferBindingMap mBindingMap; > mutable unsigned short mHighIndex; > public: > > VertexBufferBinding(); > virtual ~VertexBufferBinding(); ># 449 "../../OgreMain/include/OgreHardwareVertexBuffer.h" > virtual void setBinding(unsigned short index, HardwareVertexBufferSharedPtr buffer); > > virtual void unsetBinding(unsigned short index); > > > virtual void unsetAllBindings(void); > > > virtual const VertexBufferBindingMap& getBindings(void) const; > > > virtual HardwareVertexBufferSharedPtr getBuffer(unsigned short index); > > virtual size_t getBufferCount(void) const { return mBindingMap.size(); } > > > > > > > virtual unsigned short getNextIndex(void) const { return mHighIndex++; } > > > > > }; > > > >} ># 30 "../../OgreMain/include/OgreVertexIndexData.h" 2 ># 1 "../../OgreMain/include/OgreHardwareIndexBuffer.h" 1 ># 33 "../../OgreMain/include/OgreHardwareIndexBuffer.h" >namespace Ogre { > > > class HardwareIndexBuffer : public HardwareBuffer > { > public: > enum IndexType { > IT_16BIT, > IT_32BIT > }; > > protected: > IndexType mIndexType; > size_t mNumIndexes; > size_t mIndexSize; > > public: > > HardwareIndexBuffer(IndexType idxType, size_t numIndexes, HardwareBuffer::Usage usage, > bool useSystemMemory, bool useShadowBuffer); > ~HardwareIndexBuffer(); > > IndexType getType(void) const { return mIndexType; } > > size_t getNumIndexes(void) const { return mNumIndexes; } > > size_t getIndexSize(void) const { return mIndexSize; } > > > }; > > > > class HardwareIndexBufferSharedPtr : public SharedPtr<HardwareIndexBuffer> > { > public: > HardwareIndexBufferSharedPtr() : SharedPtr<HardwareIndexBuffer>() {} > explicit HardwareIndexBufferSharedPtr(HardwareIndexBuffer* buf); > }; >} ># 31 "../../OgreMain/include/OgreVertexIndexData.h" 2 > >namespace Ogre { > > > typedef std::vector<HardwareBuffer::Usage> BufferUsageList; > > > > class VertexData > { > private: > > VertexData(const VertexData& rhs); > > VertexData& operator=(const VertexData& rhs); > public: > VertexData(); > ~VertexData(); > > > > > VertexDeclaration* vertexDeclaration; > > > > VertexBufferBinding* vertexBufferBinding; > > size_t vertexStart; > > size_t vertexCount; > > > > > VertexData* clone(bool copyData = true) const; ># 87 "../../OgreMain/include/OgreVertexIndexData.h" > void prepareForShadowVolume(void); ># 102 "../../OgreMain/include/OgreVertexIndexData.h" > HardwareVertexBufferSharedPtr hardwareShadowVolWBuffer; ># 121 "../../OgreMain/include/OgreVertexIndexData.h" > void reorganiseBuffers(VertexDeclaration* newDeclaration, BufferUsageList bufferUsage); ># 138 "../../OgreMain/include/OgreVertexIndexData.h" > void reorganiseBuffers(VertexDeclaration* newDeclaration); > > > > }; > > > class IndexData > { > protected: > > IndexData(const IndexData& rhs); > > IndexData& operator=(const IndexData& rhs); > public: > IndexData(); > ~IndexData(); > > HardwareIndexBufferSharedPtr indexBuffer; > > > size_t indexStart; > > > size_t indexCount; > > > > > IndexData* clone(bool copyData = true) const; > }; > > >} ># 30 "../../OgreMain/include/OgreRenderOperation.h" 2 > >namespace Ogre { > > > > class RenderOperation { > public: > > enum OperationType { > > OT_POINT_LIST = 1, > > OT_LINE_LIST = 2, > > OT_LINE_STRIP = 3, > > OT_TRIANGLE_LIST = 4, > > OT_TRIANGLE_STRIP = 5, > > OT_TRIANGLE_FAN = 6 > }; > > > VertexData *vertexData; > > > OperationType operationType; > > > > > > bool useIndexes; > > > IndexData *indexData; > > Renderable* srcRenderable; > > > RenderOperation() : > vertexData(0), operationType(OT_TRIANGLE_LIST), useIndexes(true), > indexData(0) {} > > }; >} ># 32 "../../OgreMain/include/OgreRenderable.h" 2 > ># 1 "../../OgreMain/include/OgreMaterial.h" 1 ># 30 "../../OgreMain/include/OgreMaterial.h" ># 1 "../../OgreMain/include/OgreResource.h" 1 ># 31 "../../OgreMain/include/OgreResource.h" ># 1 "../../OgreMain/include/OgreStringInterface.h" 1 ># 33 "../../OgreMain/include/OgreStringInterface.h" >namespace Ogre { > > > > enum ParameterType > { > PT_BOOL, > PT_REAL, > PT_INT, > PT_UNSIGNED_INT, > PT_SHORT, > PT_UNSIGNED_SHORT, > PT_LONG, > PT_UNSIGNED_LONG, > PT_STRING, > PT_VECTOR3, > PT_MATRIX3, > PT_MATRIX4, > PT_QUATERNION, > PT_COLOURVALUE > }; > > > class ParameterDef > { > public: > String name; > String description; > ParameterType paramType; > ParameterDef(const String& newName, const String& newDescription, ParameterType newType) > : name(newName), description(newDescription), paramType(newType) {} > }; > typedef std::vector<ParameterDef> ParameterList; > > > class ParamCommand > { > public: > virtual String doGet(const void* target) const = 0; > virtual void doSet(void* target, const String& val) = 0; > > virtual ~ParamCommand() { } > }; > typedef std::map<String, ParamCommand* > ParamCommandMap; > > > class ParamDictionary > { > friend class StringInterface; > protected: > > ParameterList mParamDefs; > > > ParamCommandMap mParamCommands; > > > ParamCommand* getParamCommand(const String& name) > { > ParamCommandMap::iterator i = mParamCommands.find(name); > if (i != mParamCommands.end()) > { > return i->second; > } > else > { > return 0; > } > } > > const ParamCommand* getParamCommand(const String& name) const > { > ParamCommandMap::const_iterator i = mParamCommands.find(name); > if (i != mParamCommands.end()) > { > return i->second; > } > else > { > return 0; > } > } > public: > ParamDictionary() {} > > > > > > > void addParameter(const ParameterDef& paramDef, ParamCommand* paramCmd) > { > mParamDefs.push_back(paramDef); > mParamCommands[paramDef.name] = paramCmd; > } > > > > > > const ParameterList& getParameters(void) const > { > return mParamDefs; > } > > > > }; > typedef std::map<String, ParamDictionary> ParamDictionaryMap; ># 152 "../../OgreMain/include/OgreStringInterface.h" > class StringInterface > { > protected: > > > static ParamDictionaryMap msDictionary; > > > String mParamDictName; ># 172 "../../OgreMain/include/OgreStringInterface.h" > bool createParamDictionary(const String& className) > { > mParamDictName = className; > if (msDictionary.find(className) == msDictionary.end()) > { > msDictionary[className] = ParamDictionary(); > return true; > } > return false; > > } > > public: > > > virtual ~StringInterface() {} ># 196 "../../OgreMain/include/OgreStringInterface.h" > ParamDictionary* getParamDictionary(void) > { > ParamDictionaryMap::iterator i = msDictionary.find(mParamDictName); > if (i != msDictionary.end()) > { > return &(i->second); > } > else > { > return 0; > } > } > > const ParamDictionary* getParamDictionary(void) const > { > ParamDictionaryMap::const_iterator i = msDictionary.find(mParamDictName); > if (i != msDictionary.end()) > { > return &(i->second); > } > else > { > return 0; > } > } > > > > > > > const ParameterList& getParameters(void) const; ># 243 "../../OgreMain/include/OgreStringInterface.h" > virtual bool setParameter(const String& name, const String& value); ># 253 "../../OgreMain/include/OgreStringInterface.h" > virtual void setParameterList(const NameValuePairList& paramList); ># 265 "../../OgreMain/include/OgreStringInterface.h" > virtual String getParameter(const String& name) const > { > > const ParamDictionary* dict = getParamDictionary(); > > if (dict) > { > > const ParamCommand* cmd = dict->getParamCommand(name); > > if (cmd) > { > return cmd->doGet(this); > } > } > > > return ""; > } ># 296 "../../OgreMain/include/OgreStringInterface.h" > virtual void copyParametersTo(StringInterface* dest) const > { > > const ParamDictionary* dict = getParamDictionary(); > > if (dict) > { > > ParameterList::const_iterator i; > > for (i = dict->mParamDefs.begin(); > i != dict->mParamDefs.end(); ++i) > { > dest->setParameter(i->name, getParameter(i->name)); > } > } > > > } > > > > > static void cleanupDictionary () ; > > }; > > > >} ># 32 "../../OgreMain/include/OgreResource.h" 2 > >namespace Ogre { > > typedef unsigned long ResourceHandle; > > > > class ManualResourceLoader; ># 67 "../../OgreMain/include/OgreResource.h" > class Resource : public StringInterface > { > public: > > protected: > > ResourceManager* mCreator; > > String mName; > > String mGroup; > > ResourceHandle mHandle; > > bool mIsLoaded; > > size_t mSize; > > bool mIsManual; > > String mOrigin; > > ManualResourceLoader* mLoader; > > > > Resource() > : mCreator(0), mHandle(0), mIsLoaded(false), mSize(0), mIsManual(0), mLoader(0) > { > } > > > > > virtual void loadImpl(void) = 0; > > > > virtual void unloadImpl(void) = 0; > > virtual size_t calculateSize(void) const = 0; > > public: ># 124 "../../OgreMain/include/OgreResource.h" > Resource(ResourceManager* creator, const String& name, ResourceHandle handle, > const String& group, bool isManual = false, ManualResourceLoader* loader = 0); > > > > > > > virtual ~Resource(); ># 142 "../../OgreMain/include/OgreResource.h" > virtual void load(void); > > > > > > > virtual void reload(void); > > > > bool isManuallyLoaded(void) const > { > return mIsManual; > } > > > > > virtual void unload(void); > > > > size_t getSize(void) const > { > return mSize; > } > > > > virtual void touch(void); > > > > const String& getName(void) const > { > return mName; > } > > ResourceHandle getHandle(void) const > { > return mHandle; > } > > > > bool isLoaded(void) const > { > > return mIsLoaded; > } > > > const String& getGroup(void) { return mGroup; } > > > ResourceManager* getCreator(void) { return mCreator; } > > > > > > > const String& getOrigin(void) const { return mOrigin; } > > void _notifyOrigin(const String& origin) { mOrigin = origin; } > > }; ># 229 "../../OgreMain/include/OgreResource.h" > typedef SharedPtr<Resource> ResourcePtr; ># 252 "../../OgreMain/include/OgreResource.h" > class ManualResourceLoader > { > public: > ManualResourceLoader() {} > virtual ~ManualResourceLoader() {} > > > > > virtual void loadResource(Resource* resource) = 0; > }; >} ># 31 "../../OgreMain/include/OgreMaterial.h" 2 > > > ># 1 "../../OgreMain/include/OgreBlendMode.h" 1 ># 31 "../../OgreMain/include/OgreBlendMode.h" >namespace Ogre { > > > > enum LayerBlendType > { > LBT_COLOUR, > LBT_ALPHA > }; ># 48 "../../OgreMain/include/OgreBlendMode.h" > enum LayerBlendOperation { > > LBO_REPLACE, > > LBO_ADD, > > LBO_MODULATE, > > LBO_ALPHA_BLEND > > }; > > > > > > > > enum LayerBlendOperationEx { > > LBX_SOURCE1, > > LBX_SOURCE2, > > LBX_MODULATE, > > LBX_MODULATE_X2, > > LBX_MODULATE_X4, > > LBX_ADD, > > LBX_ADD_SIGNED, > > LBX_ADD_SMOOTH, > > LBX_SUBTRACT, > > LBX_BLEND_DIFFUSE_ALPHA, > > LBX_BLEND_TEXTURE_ALPHA, > > LBX_BLEND_CURRENT_ALPHA, > > LBX_BLEND_MANUAL, > > LBX_DOTPRODUCT > }; > > > > > > enum LayerBlendSource > { > > LBS_CURRENT, > > LBS_TEXTURE, > > LBS_DIFFUSE, > > LBS_SPECULAR, > > LBS_MANUAL > }; ># 128 "../../OgreMain/include/OgreBlendMode.h" > class LayerBlendModeEx > { > public: > > LayerBlendType blendType; > > LayerBlendOperationEx operation; > > LayerBlendSource source1; > > LayerBlendSource source2; > > > ColourValue colourArg1; > > ColourValue colourArg2; > > Real alphaArg1; > > Real alphaArg2; > > Real factor; > > bool operator==(const LayerBlendModeEx& rhs) const > { > if (blendType != rhs.blendType) return false; > > if (blendType == LBT_COLOUR) > { > > if (operation == rhs.operation && > source1 == rhs.source1 && > source2 == rhs.source2 && > colourArg1 == rhs.colourArg1 && > colourArg2 == rhs.colourArg2 && > factor == rhs.factor) > { > return true; > } > } > else > { > if (operation == rhs.operation && > source1 == rhs.source1 && > source2 == rhs.source2 && > alphaArg1 == rhs.alphaArg1 && > alphaArg2 == rhs.alphaArg2 && > factor == rhs.factor) > { > return true; > } > } > return false; > } > > bool operator!=(const LayerBlendModeEx& rhs) const > { > return !(*this == rhs); > } > > > > }; ># 204 "../../OgreMain/include/OgreBlendMode.h" > enum SceneBlendType > { > > SBT_TRANSPARENT_ALPHA, > > SBT_TRANSPARENT_COLOUR, > > SBT_ADD, > > SBT_MODULATE > > }; > > > > > > enum SceneBlendFactor > { > SBF_ONE, > SBF_ZERO, > SBF_DEST_COLOUR, > SBF_SOURCE_COLOUR, > SBF_ONE_MINUS_DEST_COLOUR, > SBF_ONE_MINUS_SOURCE_COLOUR, > SBF_DEST_ALPHA, > SBF_SOURCE_ALPHA, > SBF_ONE_MINUS_DEST_ALPHA, > SBF_ONE_MINUS_SOURCE_ALPHA > > }; >} ># 35 "../../OgreMain/include/OgreMaterial.h" 2 > > >namespace Ogre { > > > class MaterialPtr; ># 79 "../../OgreMain/include/OgreMaterial.h" > class Material : public Resource > { > friend class SceneManager; > friend class MaterialManager; > > public: > > typedef std::vector<Real> LodDistanceList; > typedef ConstVectorIterator<LodDistanceList> LodDistanceIterator; > protected: > > > > > void applyDefaults(void); > > typedef std::vector<Technique*> Techniques; > Techniques mTechniques; > Techniques mSupportedTechniques; > typedef std::map<unsigned short, Technique*> BestTechniqueList; > BestTechniqueList mBestTechniqueList; > > LodDistanceList mLodDistances; > bool mReceiveShadows; > bool mTransparencyCastsShadows; > > bool mCompilationRequired; > > > > > > > void fixupBestTechniqueList(void); > > > > void loadImpl(void); > > > > > > void unloadImpl(void); > > size_t calculateSize(void) const { return 0; } > public: > > > > Material(ResourceManager* creator, const String& name, ResourceHandle handle, > const String& group, bool isManual = false, ManualResourceLoader* loader = 0); > > ~Material(); > > > Material& operator=( const Material& rhs ); > > > > > bool isTransparent(void) const; ># 155 "../../OgreMain/include/OgreMaterial.h" > void setReceiveShadows(bool enabled) { mReceiveShadows = enabled; } > > bool getReceiveShadows(void) const { return mReceiveShadows; } ># 167 "../../OgreMain/include/OgreMaterial.h" > void setTransparencyCastsShadows(bool enabled) { mTransparencyCastsShadows = enabled; } > > bool getTransparencyCastsShadows(void) const { return mTransparencyCastsShadows; } ># 185 "../../OgreMain/include/OgreMaterial.h" > Technique* createTechnique(void); > > Technique* getTechnique(unsigned short index); > > unsigned short getNumTechniques(void) const; > > void removeTechnique(unsigned short index); > > void removeAllTechniques(void); > typedef VectorIterator<Techniques> TechniqueIterator; > > TechniqueIterator getTechniqueIterator(void); > > > > > > > TechniqueIterator getSupportedTechniqueIterator(void); > > > Technique* getSupportedTechnique(unsigned short index); > > unsigned short getNumSupportedTechniques(void) const; > > > > > > > unsigned short getNumLodLevels(void) const { > return static_cast<unsigned short>(mBestTechniqueList.size()); } ># 229 "../../OgreMain/include/OgreMaterial.h" > Technique* getBestTechnique(unsigned short lodIndex = 0); > > > > > > > > MaterialPtr clone(const String& newName, bool changeGroup = false, > const String& newGroup = StringUtil::BLANK) const; > > > > > > void copyDetailsTo(MaterialPtr& mat) const; ># 261 "../../OgreMain/include/OgreMaterial.h" > void compile(bool autoManageTextureUnits = true); ># 277 "../../OgreMain/include/OgreMaterial.h" > void setAmbient(Real red, Real green, Real blue); ># 288 "../../OgreMain/include/OgreMaterial.h" > void setAmbient(const ColourValue& ambient); ># 299 "../../OgreMain/include/OgreMaterial.h" > void setDiffuse(Real red, Real green, Real blue, Real alpha); ># 310 "../../OgreMain/include/OgreMaterial.h" > void setDiffuse(const ColourValue& diffuse); ># 321 "../../OgreMain/include/OgreMaterial.h" > void setSpecular(Real red, Real green, Real blue, Real alpha); ># 332 "../../OgreMain/include/OgreMaterial.h" > void setSpecular(const ColourValue& specular); ># 343 "../../OgreMain/include/OgreMaterial.h" > void setShininess(Real val); ># 354 "../../OgreMain/include/OgreMaterial.h" > void setSelfIllumination(Real red, Real green, Real blue); ># 365 "../../OgreMain/include/OgreMaterial.h" > void setSelfIllumination(const ColourValue& selfIllum); ># 376 "../../OgreMain/include/OgreMaterial.h" > void setDepthCheckEnabled(bool enabled); ># 387 "../../OgreMain/include/OgreMaterial.h" > void setDepthWriteEnabled(bool enabled); ># 398 "../../OgreMain/include/OgreMaterial.h" > void setDepthFunction( CompareFunction func ); ># 409 "../../OgreMain/include/OgreMaterial.h" > void setColourWriteEnabled(bool enabled); ># 420 "../../OgreMain/include/OgreMaterial.h" > void setCullingMode( CullingMode mode ); ># 431 "../../OgreMain/include/OgreMaterial.h" > void setManualCullingMode( ManualCullingMode mode ); ># 442 "../../OgreMain/include/OgreMaterial.h" > void setLightingEnabled(bool enabled); ># 453 "../../OgreMain/include/OgreMaterial.h" > void setShadingMode( ShadeOptions mode ); ># 464 "../../OgreMain/include/OgreMaterial.h" > void setFog( > bool overrideScene, > FogMode mode = FOG_NONE, > const ColourValue& colour = ColourValue::White, > Real expDensity = 0.001, Real linearStart = 0.0, Real linearEnd = 1.0 ); ># 479 "../../OgreMain/include/OgreMaterial.h" > void setDepthBias(ushort bias); ># 489 "../../OgreMain/include/OgreMaterial.h" > void setTextureFiltering(TextureFilterOptions filterType); ># 498 "../../OgreMain/include/OgreMaterial.h" > void setTextureAnisotropy(int maxAniso); ># 509 "../../OgreMain/include/OgreMaterial.h" > void setSceneBlending( const SceneBlendType sbt ); ># 520 "../../OgreMain/include/OgreMaterial.h" > void setSceneBlending( const SceneBlendFactor sourceFactor, const SceneBlendFactor destFactor); > > > > void _notifyNeedsRecompile(void); ># 538 "../../OgreMain/include/OgreMaterial.h" > void setLodLevels(const LodDistanceList& lodDistances); > > > > > > > > LodDistanceIterator getLodDistanceIterator(void) const; > > > unsigned short getLodIndex(Real d) const; > > unsigned short getLodIndexSquaredDepth(Real squaredDepth) const; > > > > void touch(void) > { > if (mCompilationRequired) > compile(); > > Resource::touch(); > } > > > }; > > > > > > > > class MaterialPtr : public SharedPtr<Material> > { > public: > MaterialPtr() : SharedPtr<Material>() {} > explicit MaterialPtr(Material* rep) : SharedPtr<Material>(rep) {} > MaterialPtr(const MaterialPtr& r) : SharedPtr<Material>(r) {} > MaterialPtr(const ResourcePtr& r) : SharedPtr<Material>() > { > > > > pRep = static_cast<Material*>(r.getPointer()); > pUseCount = r.useCountPointer(); > if (pUseCount) > { > ++(*pUseCount); > } > } > > > MaterialPtr& operator=(const ResourcePtr& r) > { > if (pRep == static_cast<Material*>(r.getPointer())) > return *this; > release(); > > > > pRep = static_cast<Material*>(r.getPointer()); > pUseCount = r.useCountPointer(); > if (pUseCount) > { > ++(*pUseCount); > } > return *this; > } > }; > >} ># 34 "../../OgreMain/include/OgreRenderable.h" 2 > ># 1 "../../OgreMain/include/OgreGpuProgram.h" 1 ># 34 "../../OgreMain/include/OgreGpuProgram.h" >namespace Ogre { > > > enum GpuProgramType > { > GPT_VERTEX_PROGRAM, > GPT_FRAGMENT_PROGRAM > }; ># 55 "../../OgreMain/include/OgreGpuProgram.h" > class GpuProgramParameters > { > public: > > > > enum AutoConstantType > { > > ACT_WORLD_MATRIX, > > ACT_WORLD_MATRIX_ARRAY_3x4, > > ACT_WORLD_MATRIX_ARRAY, > > ACT_VIEW_MATRIX, > > ACT_PROJECTION_MATRIX, > > ACT_VIEWPROJ_MATRIX, > > ACT_WORLDVIEW_MATRIX, > > ACT_WORLDVIEWPROJ_MATRIX, > > ACT_INVERSE_WORLD_MATRIX, > > ACT_INVERSE_VIEW_MATRIX, > > ACT_INVERSE_WORLDVIEW_MATRIX, > > ACT_INVERSETRANSPOSE_WORLD_MATRIX, > > ACT_INVERSETRANSPOSE_WORLDVIEW_MATRIX, > > ACT_LIGHT_DIFFUSE_COLOUR, > > ACT_LIGHT_SPECULAR_COLOUR, > > ACT_LIGHT_ATTENUATION, > > ACT_LIGHT_POSITION, > > ACT_LIGHT_DIRECTION, > > ACT_LIGHT_POSITION_OBJECT_SPACE, > > ACT_LIGHT_DIRECTION_OBJECT_SPACE, > > > > > ACT_LIGHT_DISTANCE_OBJECT_SPACE, > > > > ACT_SHADOW_EXTRUSION_DISTANCE, > > ACT_CAMERA_POSITION_OBJECT_SPACE, > > ACT_AMBIENT_LIGHT_COLOUR, > > ACT_TEXTURE_VIEWPROJ_MATRIX, > > ACT_CUSTOM, > > ACT_CAMERA_POSITION, > > > > ACT_TIME_0_X, > > ACT_COSTIME_0_X, > > ACT_SINTIME_0_X, > > ACT_TANTIME_0_X, > > > > ACT_TIME_0_X_PACKED, > > > > > ACT_TIME_0_1, > > ACT_COSTIME_0_1, > > ACT_SINTIME_0_1, > > ACT_TANTIME_0_1, > > > > ACT_TIME_0_1_PACKED, > > > > > ACT_TIME_0_2PI, > > ACT_COSTIME_0_2PI, > > ACT_SINTIME_0_2PI, > > ACT_TANTIME_0_2PI, > > > > ACT_TIME_0_2PI_PACKED, > > ACT_FPS, > > > > > ACT_VIEWPORT_WIDTH, > > > > ACT_VIEWPORT_HEIGHT, > > > > ACT_INVERSE_VIEWPORT_WIDTH, > > > > ACT_INVERSE_VIEWPORT_HEIGHT, > > > > > > ACT_VIEW_DIRECTION, > > > > ACT_VIEW_SIDE_VECTOR, > > > > ACT_VIEW_UP_VECTOR, > > > > ACT_FOV, > > > > ACT_NEAR_CLIP_DISTANCE, > > > > ACT_FAR_CLIP_DISTANCE, > > > > > > ACT_INVERSE_VIEWPROJ_MATRIX, > > > > ACT_INVERSETRANSPOSE_VIEWPROJ_MATRIX, > > > > ACT_TRANSPOSE_VIEWPROJ_MATRIX, > > > > > ACT_TRANSPOSE_VIEW_MATRIX, > > > > ACT_INVERSETRANSPOSE_VIEW_MATRIX, > > > > > ACT_TRANSPOSE_PROJECTION_MATRIX, > > > > ACT_INVERSE_PROJECTION_MATRIX, > > > > ACT_INVERSETRANSPOSE_PROJECTION_MATRIX, > > > > > ACT_TRANSPOSE_WORLDVIEWPROJ_MATRIX, > > > > ACT_INVERSE_WORLDVIEWPROJ_MATRIX, > > > > ACT_INVERSETRANSPOSE_WORLDVIEWPROJ_MATRIX, > > > > > ACT_TRANSPOSE_WORLDVIEW_MATRIX, > > > > ACT_INVERSE_TRANSPOSE_WORLDVIEW_MATRIX, > > > > > ACT_TRANSPOSE_WORLD_MATRIX, > > > > ACT_INVERSE_TRANSPOSE_WORLD_MATRIX > > }; > > class AutoConstantEntry > { > public: > > AutoConstantType paramType; > > size_t index; > > union{ > size_t data; > Real fData; > }; > > AutoConstantEntry(AutoConstantType theType, size_t theIndex, size_t theData) > : paramType(theType), index(theIndex), data(theData) {} > > AutoConstantEntry(AutoConstantType theType, size_t theIndex, Real theData) > : paramType(theType), index(theIndex), fData(theData) {} > > }; > > > > > struct RealConstantEntry > { > float val[4]; > bool isSet; > RealConstantEntry() : isSet(false) {} > }; > > > > > struct IntConstantEntry > { > int val[4]; > bool isSet; > IntConstantEntry() : isSet(false) {} > }; > protected: > > typedef std::vector<RealConstantEntry> RealConstantList; > typedef std::vector<IntConstantEntry> IntConstantList; > > typedef std::vector<AutoConstantEntry> AutoConstantList; > > RealConstantList mRealConstants; > > IntConstantList mIntConstants; > > AutoConstantList mAutoConstants; > > typedef std::map<String, size_t> ParamNameMap; > ParamNameMap mParamNameMap; > > bool mTransposeMatrices; > > bool mAutoAddParamName; > > public: > GpuProgramParameters(); > ~GpuProgramParameters() {} > > > > > > > void setConstant(size_t index, const Vector4& vec); > > > > > > > > void setConstant(size_t index, Real val); > > > > > > > > void setConstant(size_t index, const Vector3& vec); > > > > > > > void setConstant(size_t index, const Matrix4& m); > > > > > > > > void setConstant(size_t index, const Matrix4* m, size_t numEntries); > > > > > > > void setConstant(size_t index, const float *val, size_t count); > > > > > > > void setConstant(size_t index, const double *val, size_t count); > > > > > > void setConstant(size_t index, const ColourValue& colour); ># 417 "../../OgreMain/include/OgreGpuProgram.h" > void setConstant(size_t index, const int *val, size_t count); > > > void resetRealConstants(void) { mRealConstants.clear(); } > > void resetIntConstants(void) { mIntConstants.clear(); } > > typedef ConstVectorIterator<RealConstantList> RealConstantIterator; > typedef ConstVectorIterator<IntConstantList> IntConstantIterator; > > RealConstantIterator getRealConstantIterator(void) const; > > IntConstantIterator getIntConstantIterator(void) const; > > > > > > RealConstantEntry* getRealConstantEntry(const size_t index); > > > > > IntConstantEntry* getIntConstantEntry(const size_t index); > > > > > RealConstantEntry* getNamedRealConstantEntry(const String& name); > > > > IntConstantEntry* getNamedIntConstantEntry(const String& name); > > size_t getRealConstantCount(void) const { return mRealConstants.size(); } > > size_t getIntConstantCount(void) const { return mIntConstants.size(); } > > bool hasRealConstantParams(void) const { return !(mRealConstants.empty()); } > > bool hasIntConstantParams(void) const { return !(mIntConstants.empty()); } ># 472 "../../OgreMain/include/OgreGpuProgram.h" > void setAutoConstant(size_t index, AutoConstantType acType, size_t extraInfo = 0); > void setAutoConstantReal(size_t index, AutoConstantType acType, Real rData); > > > > > void setConstantFromTime(size_t index, Real factor); > > > void clearAutoConstants(void); > typedef ConstVectorIterator<AutoConstantList> AutoConstantIterator; > > AutoConstantIterator getAutoConstantIterator(void) const; > > bool hasAutoConstants(void) const { return !(mAutoConstants.empty()); } > > void _updateAutoParamsNoLights(const AutoParamDataSource& source); > > void _updateAutoParamsLightsOnly(const AutoParamDataSource& source); ># 503 "../../OgreMain/include/OgreGpuProgram.h" > void setAutoAddParamName(bool state) { mAutoAddParamName = state; } ># 524 "../../OgreMain/include/OgreGpuProgram.h" > void setNamedConstant(const String& name, Real val); ># 544 "../../OgreMain/include/OgreGpuProgram.h" > void setNamedConstant(const String& name, int val); > > > > > void setNamedConstant(const String& name, const Vector4& vec); ># 562 "../../OgreMain/include/OgreGpuProgram.h" > void setNamedConstant(const String& name, const Vector3& vec); > > > > > void setNamedConstant(const String& name, const Matrix4& m); > > > > > > > > void setNamedConstant(const String& name, const Matrix4* m, size_t numEntries); ># 596 "../../OgreMain/include/OgreGpuProgram.h" > void setNamedConstant(const String& name, const float *val, size_t count); ># 617 "../../OgreMain/include/OgreGpuProgram.h" > void setNamedConstant(const String& name, const double *val, size_t count); > > > > > void setNamedConstant(const String& name, const ColourValue& colour); ># 644 "../../OgreMain/include/OgreGpuProgram.h" > void setNamedConstant(const String& name, const int *val, size_t count); ># 660 "../../OgreMain/include/OgreGpuProgram.h" > void setNamedAutoConstant(const String& name, AutoConstantType acType, size_t extraInfo = 0); ># 669 "../../OgreMain/include/OgreGpuProgram.h" > void setNamedConstantFromTime(const String& name, Real factor); > > void _mapParameterNameToIndex(const String& name, size_t index); > > > size_t getParamIndex(const String& name); ># 684 "../../OgreMain/include/OgreGpuProgram.h" > void setTransposeMatrices(bool val) { mTransposeMatrices = val; } > > bool getTransposeMatrices(void) const { return mTransposeMatrices; } > > > > > void copyConstantsFrom(const GpuProgramParameters& source); > > }; > > > typedef SharedPtr<GpuProgramParameters> GpuProgramParametersSharedPtr; > > > class GpuProgramPtr; ># 710 "../../OgreMain/include/OgreGpuProgram.h" > class GpuProgram : public Resource > { > protected: > > class CmdType : public ParamCommand > { > public: > String doGet(const void* target) const; > void doSet(void* target, const String& val); > }; > class CmdSyntax : public ParamCommand > { > public: > String doGet(const void* target) const; > void doSet(void* target, const String& val); > }; > class CmdSkeletal : public ParamCommand > { > public: > String doGet(const void* target) const; > void doSet(void* target, const String& val); > }; > > static CmdType msTypeCmd; > static CmdSyntax msSyntaxCmd; > static CmdSkeletal msSkeletalCmd; > > > GpuProgramType mType; > > String mFilename; > > String mSource; > > bool mLoadFromFile; > > String mSyntaxCode; > > bool mSkeletalAnimation; > > GpuProgramParametersSharedPtr mDefaultParams; > > bool mPassSurfaceAndLightStates; ># 762 "../../OgreMain/include/OgreGpuProgram.h" > void setupBaseParamDictionary(void); > > > size_t calculateSize(void) const { return 0; } > > > void loadImpl(void); > public: > > GpuProgram(ResourceManager* creator, const String& name, ResourceHandle handle, > const String& group, bool isManual = false, ManualResourceLoader* loader = 0); > > virtual ~GpuProgram() {} > > > > > > virtual void setSourceFile(const String& filename); > > > > > > virtual void setSource(const String& source); > > > virtual const String& getSyntaxCode(void) const { return mSyntaxCode; } > > > virtual void setSyntaxCode(const String& syntax); > > > virtual const String& getSourceFile(void) const { return mFilename; } > > virtual const String& getSource(void) const { return mSource; } > > virtual void setType(GpuProgramType t); > > virtual GpuProgramType getType(void) const { return mType; } > > > > > > virtual GpuProgram* _getBindingDelegate(void) { return this; } > > > virtual bool isSupported(void) const; ># 819 "../../OgreMain/include/OgreGpuProgram.h" > virtual GpuProgramParametersSharedPtr createParameters(void); > > > > > > > > virtual void setSkeletalAnimationIncluded(bool included) > { mSkeletalAnimation = included; } > > > > > > > > virtual bool isSkeletalAnimationIncluded(void) const { return mSkeletalAnimation; } ># 848 "../../OgreMain/include/OgreGpuProgram.h" > virtual GpuProgramParametersSharedPtr getDefaultParameters(void); ># 858 "../../OgreMain/include/OgreGpuProgram.h" > virtual void setSurfaceAndPassLightStates(bool state) > { mPassSurfaceAndLightStates = state; } > > > > > virtual bool getPassSurfaceAndLightStates(void) const { return mPassSurfaceAndLightStates; } > > protected: > > virtual void loadFromSource(void) = 0; > > }; ># 879 "../../OgreMain/include/OgreGpuProgram.h" > class GpuProgramPtr : public SharedPtr<GpuProgram> > { > public: > GpuProgramPtr() : SharedPtr<GpuProgram>() {} > explicit GpuProgramPtr(GpuProgram* rep) : SharedPtr<GpuProgram>(rep) {} > GpuProgramPtr(const GpuProgramPtr& r) : SharedPtr<GpuProgram>(r) {} > GpuProgramPtr(const ResourcePtr& r) : SharedPtr<GpuProgram>() > { > > > > pRep = static_cast<GpuProgram*>(r.getPointer()); > pUseCount = r.useCountPointer(); > if (pUseCount) > { > ++(*pUseCount); > } > } > > > GpuProgramPtr& operator=(const ResourcePtr& r) > { > if (pRep == static_cast<GpuProgram*>(r.getPointer())) > return *this; > release(); > > > > pRep = static_cast<GpuProgram*>(r.getPointer()); > pUseCount = r.useCountPointer(); > if (pUseCount) > { > ++(*pUseCount); > } > return *this; > } > > GpuProgramPtr& operator=(const HighLevelGpuProgramPtr& r); > }; >} ># 36 "../../OgreMain/include/OgreRenderable.h" 2 > ># 1 "../../OgreMain/include/OgreException.h" 1 ># 91 "../../OgreMain/include/OgreException.h" >namespace Ogre { ># 105 "../../OgreMain/include/OgreException.h" > class Exception > { > protected: > long line; > int number; > String description; > String source; > String file; > ushort stackDepth; > static Exception* last; > > static String msFunctionStack[ 512 ]; > static ushort msStackDepth; > public: > > > > > > enum ExceptionCodes { > UNIMPLEMENTED_FEATURE, > ERR_CANNOT_WRITE_TO_FILE, > ERR_NO_RENDERSYSTEM_SELECTED, > ERR_DIALOG_OPEN_ERROR, > ERR_INVALIDPARAMS, > ERR_RENDERINGAPI_ERROR, > ERR_DUPLICATE_ITEM, > ERR_ITEM_NOT_FOUND, > ERR_FILE_NOT_FOUND, > ERR_INTERNAL_ERROR, > ERR_RT_ASSERTION_FAILED > }; > > > > Exception( int number, const String& description, const String& source ); > > > > Exception( int number, const String& description, const String& source, char* file, long line ); > > > > Exception(const Exception& rhs); > > > > void operator = (const Exception& rhs); ># 164 "../../OgreMain/include/OgreException.h" > String getFullDescription(void) const; > > > > int getNumber(void) const throw(); > > > > const String &getSource() const { return source; } > > > > const String &getFile() const { return file; } > > > > long getLine() const { return line; } > > > > > > const String &getDescription(void) const { return description; } > > > > static Exception* getLastException(void) throw(); > > > > static void _pushFunction( const String& strFuncName ) throw(); > > > static void _popFunction() throw(); > > > }; > > > class AutomaticGuardUnguard { > public: > AutomaticGuardUnguard(const String& funcName) throw() > { > Exception::_pushFunction(funcName); > } > ~AutomaticGuardUnguard() throw() > { > Exception::_popFunction(); > } > }; > >} ># 38 "../../OgreMain/include/OgreRenderable.h" 2 > >namespace Ogre { ># 52 "../../OgreMain/include/OgreRenderable.h" > class Renderable > { > public: > Renderable() : mRenderDetailOverrideable(true) {} > > virtual ~Renderable() { } > > > > > > virtual const MaterialPtr& getMaterial(void) const = 0; > > > > > > virtual Technique* getTechnique(void) const { return getMaterial()->getBestTechnique(); } > > > virtual void getRenderOperation(RenderOperation& op) = 0; ># 82 "../../OgreMain/include/OgreRenderable.h" > virtual void getWorldTransforms(Matrix4* xform) const = 0; > > > > > > virtual const Quaternion& getWorldOrientation(void) const = 0; > > > > > > virtual const Vector3& getWorldPosition(void) const = 0; ># 104 "../../OgreMain/include/OgreRenderable.h" > virtual unsigned short getNumWorldTransforms(void) const { return 1; } ># 114 "../../OgreMain/include/OgreRenderable.h" > virtual bool useIdentityProjection(void) const { return false; } ># 124 "../../OgreMain/include/OgreRenderable.h" > virtual bool useIdentityView(void) const { return false; } > > > > > > > virtual Real getSquaredViewDepth(const Camera* cam) const = 0; > > > > virtual SceneDetailLevel getRenderDetail() const {return SDL_SOLID;} > > > virtual bool getNormaliseNormals(void) const { return false; } > > > > > > virtual const LightList& getLights(void) const = 0; > > virtual const PlaneList& getClipPlanes() const { return msDummyPlaneList; }; > > > > > > > > virtual bool getCastsShadows(void) const { return false; } ># 171 "../../OgreMain/include/OgreRenderable.h" > void setCustomParameter(size_t index, const Vector4& value) > { > mCustomParameters[index] = value; > } > > > > > > const Vector4& getCustomParameter(size_t index) const > { > CustomParameterMap::const_iterator i = mCustomParameters.find(index); > if (i != mCustomParameters.end()) > { > return i->second; > } > else > { > throw( Ogre::Exception( Exception::ERR_ITEM_NOT_FOUND, "Parameter at the given index was not found.", "Renderable::getCustomParameter", "../../OgreMain/include/OgreRenderable.h", 191 ) ); > > > } > } ># 219 "../../OgreMain/include/OgreRenderable.h" > virtual void _updateCustomGpuParameter( > const GpuProgramParameters::AutoConstantEntry& constantEntry, > GpuProgramParameters* params) const > { > CustomParameterMap::const_iterator i = mCustomParameters.find(constantEntry.data); > if (i != mCustomParameters.end()) > { > params->setConstant(constantEntry.index, i->second); > } > } > > > > > > > virtual void setRenderDetailOverrideable(bool override) > { > mRenderDetailOverrideable = override; > } > > > > > virtual bool getRenderDetailOverrideable(void) const > { > return mRenderDetailOverrideable; > } > > > protected: > static const PlaneList msDummyPlaneList; > typedef std::map<size_t, Vector4> CustomParameterMap; > CustomParameterMap mCustomParameters; > bool mRenderDetailOverrideable; > }; > > > >} ># 35 "../../OgreMain/include/OgreNode.h" 2 > > >namespace Ogre { ># 50 "../../OgreMain/include/OgreNode.h" > class Node : public Renderable > { > public: > > > enum TransformSpace > { > > TS_LOCAL, > > TS_PARENT, > > TS_WORLD > }; > typedef ::__gnu_cxx::hash_map<String, Node*> ChildNodeMap; > typedef MapIterator<ChildNodeMap> ChildNodeIterator; > > protected: > > Node* mParent; > > ChildNodeMap mChildren; > > typedef std::set<Node*> ChildUpdateSet; > > mutable ChildUpdateSet mChildrenToUpdate; > > mutable bool mNeedParentUpdate; > > mutable bool mNeedChildUpdate; > > mutable bool mParentNotified ; > > > String mName; > > > static unsigned long msNextGeneratedNameExt; > > > Quaternion mOrientation; > > > Vector3 mPosition; > > > Vector3 mScale; > > > bool mInheritScale; > > > mutable MaterialPtr mpMaterial; > > > virtual void setParent(Node* parent); ># 114 "../../OgreMain/include/OgreNode.h" > mutable Quaternion mDerivedOrientation; ># 123 "../../OgreMain/include/OgreNode.h" > mutable Vector3 mDerivedPosition; ># 132 "../../OgreMain/include/OgreNode.h" > mutable Vector3 mDerivedScale; > > > > > > > > virtual void _updateFromParent(void) const; > > > virtual Node* createChildImpl(void) = 0; > > > virtual Node* createChildImpl(const String& name) = 0; > > > > > > > > void makeTransform( > const Vector3& position, > const Vector3& scale, > const Quaternion& orientation, > Matrix4& destMatrix ) const; > > > > > > > void makeInverseTransform( > const Vector3& position, > const Vector3& scale, > const Quaternion& orientation, > Matrix4& destMatrix ); > > > Vector3 mInitialPosition; > > Quaternion mInitialOrientation; > > Vector3 mInitialScale; > > > Real mAccumAnimWeight; > > Vector3 mTransFromInitial; > > Quaternion mRotFromInitial; > > Vector3 mScaleFromInitial; > > > mutable Matrix4 mCachedTransform; > mutable bool mCachedTransformOutOfDate; > > > public: > > > > > Node(); > > > > > Node(const String& name); > > virtual ~Node(); > > > const String& getName(void) const; > > > > virtual Node* getParent(void) const; > > > > virtual const Quaternion & getOrientation() const; > > > > virtual void setOrientation( const Quaternion& q ); > > > > virtual void setOrientation( Real w, Real x, Real y, Real z); > > > > virtual void resetOrientation(void); > > > > virtual void setPosition(const Vector3& pos); > > > > virtual void setPosition(Real x, Real y, Real z); > > > > virtual const Vector3 & getPosition(void) const; ># 254 "../../OgreMain/include/OgreNode.h" > virtual void setScale(const Vector3& scale); ># 269 "../../OgreMain/include/OgreNode.h" > virtual void setScale(Real x, Real y, Real z); > > > > virtual const Vector3 & getScale(void) const; ># 288 "../../OgreMain/include/OgreNode.h" > virtual void setInheritScale(bool inherit); > > > > > > virtual bool getInheritScale(void) const; ># 305 "../../OgreMain/include/OgreNode.h" > virtual void scale(const Vector3& scale); ># 316 "../../OgreMain/include/OgreNode.h" > virtual void scale(Real x, Real y, Real z); ># 327 "../../OgreMain/include/OgreNode.h" > virtual void translate(const Vector3& d, TransformSpace relativeTo = TS_PARENT); ># 341 "../../OgreMain/include/OgreNode.h" > virtual void translate(Real x, Real y, Real z, TransformSpace relativeTo = TS_PARENT); ># 361 "../../OgreMain/include/OgreNode.h" > virtual void translate(const Matrix3& axes, const Vector3& move, TransformSpace relativeTo = TS_PARENT); ># 381 "../../OgreMain/include/OgreNode.h" > virtual void translate(const Matrix3& axes, Real x, Real y, Real z, TransformSpace relativeTo = TS_PARENT); > > > > virtual void roll(const Radian& angle, TransformSpace relativeTo = TS_LOCAL); ># 394 "../../OgreMain/include/OgreNode.h" > virtual void pitch(const Radian& angle, TransformSpace relativeTo = TS_LOCAL); ># 403 "../../OgreMain/include/OgreNode.h" > virtual void yaw(const Radian& angle, TransformSpace relativeTo = TS_LOCAL); ># 412 "../../OgreMain/include/OgreNode.h" > virtual void rotate(const Vector3& axis, const Radian& angle, TransformSpace relativeTo = TS_LOCAL); ># 421 "../../OgreMain/include/OgreNode.h" > virtual void rotate(const Quaternion& q, TransformSpace relativeTo = TS_LOCAL); > > > > virtual Matrix3 getLocalAxes(void) const; > > > > > > > > virtual Node* createChild( > const Vector3& translate = Vector3::ZERO, > const Quaternion& rotate = Quaternion::IDENTITY ); ># 446 "../../OgreMain/include/OgreNode.h" > virtual Node* createChild(const String& name, const Vector3& translate = Vector3::ZERO, const Quaternion& rotate = Quaternion::IDENTITY); > > > > > virtual void addChild(Node* child); > > > > virtual unsigned short numChildren(void) const; > > > > > > virtual Node* getChild(unsigned short index) const; > > > > virtual Node* getChild(const String& name) const; ># 477 "../../OgreMain/include/OgreNode.h" > virtual ChildNodeIterator getChildIterator(void); ># 486 "../../OgreMain/include/OgreNode.h" > virtual Node* removeChild(unsigned short index); > > > > > > > > virtual Node* removeChild(Node* child); > > > > > > > virtual Node* removeChild(const String& name); > > > > virtual void removeAllChildren(void); > > > > virtual const Quaternion & _getDerivedOrientation(void) const; > > > > virtual const Vector3 & _getDerivedPosition(void) const; > > > > virtual const Vector3 & _getDerivedScale(void) const; ># 528 "../../OgreMain/include/OgreNode.h" > virtual Matrix4 _getFullTransform(void) const; ># 542 "../../OgreMain/include/OgreNode.h" > virtual void _update(bool updateChildren, bool parentHasChanged); > > > > > > > > const MaterialPtr& getMaterial(void) const; > > > > > > > void getRenderOperation(RenderOperation& op); > > > > > > > void getWorldTransforms(Matrix4* xform) const; > > const Quaternion& getWorldOrientation(void) const; > > const Vector3& getWorldPosition(void) const; ># 580 "../../OgreMain/include/OgreNode.h" > virtual void setInitialState(void); > > > virtual void resetToInitialState(void); > > > > > > virtual const Vector3& getInitialPosition(void) const; > > > virtual const Quaternion& getInitialOrientation(void) const; > > > virtual const Vector3& getInitialScale(void) const; ># 605 "../../OgreMain/include/OgreNode.h" > virtual void _weightedTransform(Real weight, const Vector3& translate, > const Quaternion& rotate, const Vector3& scale); > > > Real getSquaredViewDepth(const Camera* cam) const; > > > > > > > virtual void needUpdate(); > > virtual void requestUpdate(Node* child); > > virtual void cancelUpdate(Node* child); > > > const LightList& getLights(void) const; > > > > }; > >} ># 30 "OgreAnimationTrack.cpp" 2 ># 1 "../../OgreMain/include/OgreLogManager.h" 1 ># 31 "../../OgreMain/include/OgreLogManager.h" ># 1 "../../OgreMain/include/OgreLog.h" 1 ># 31 "../../OgreMain/include/OgreLog.h" >namespace Ogre { > > > > > > > enum LoggingLevel > { > LL_LOW = 1, > LL_NORMAL = 2, > LL_BOREME = 3 > }; > > > > enum LogMessageLevel > { > LML_TRIVIAL = 1, > LML_NORMAL = 2, > LML_CRITICAL = 3 > }; > > > > > > class Log > { > protected: > std::ofstream mfpLog; > LoggingLevel mLogLevel; > bool mDebugOut; > String mName; > > public: > > > Log( const String& name, bool debugOutput = true); > > > > ~Log(); > > > > > void logMessage( > const String& message, > LogMessageLevel lml = LML_NORMAL, > bool maskDebug = false); > > > > void setLogDetail(LoggingLevel ll); > }; > >} ># 32 "../../OgreMain/include/OgreLogManager.h" 2 ># 1 "../../OgreMain/include/OgreSingleton.h" 1 ># 46 "../../OgreMain/include/OgreSingleton.h" >namespace Ogre { > > > > template <typename T> class Singleton > { > protected: > > static T* ms_Singleton; > > public: > Singleton( void ) > { > (static_cast<void> ((!ms_Singleton) ? 0 : (__assert_fail ("!ms_Singleton", "../../OgreMain/include/OgreSingleton.h", 59, __PRETTY_FUNCTION__), 0))); > > > > > ms_Singleton = static_cast< T* >( this ); > > } > ~Singleton( void ) > { (static_cast<void> ((ms_Singleton) ? 0 : (__assert_fail ("ms_Singleton", "../../OgreMain/include/OgreSingleton.h", 68, __PRETTY_FUNCTION__), 0))); ms_Singleton = 0; } > static T& getSingleton( void ) > { (static_cast<void> ((ms_Singleton) ? 0 : (__assert_fail ("ms_Singleton", "../../OgreMain/include/OgreSingleton.h", 70, __PRETTY_FUNCTION__), 0))); return ( *ms_Singleton ); } > static T* getSingletonPtr( void ) > { return ms_Singleton; } > }; >} ># 33 "../../OgreMain/include/OgreLogManager.h" 2 > > >namespace Ogre { > > > > > > class LogListener > { > public: > > > virtual void write( const String& name, > const String& message, > LogMessageLevel lml = LML_NORMAL, > bool maskDebug = false ) = 0; > virtual ~LogListener(); > }; ># 62 "../../OgreMain/include/OgreLogManager.h" > class LogManager : public Singleton<LogManager> > { > friend class Log; > > protected: > > > > > void _routeMessage( const String& name, > const String& message, > LogMessageLevel lml = LML_NORMAL, > bool maskDebug = false ); > > typedef std::map<String, Log*, std::less<String> > LogList; > typedef std::vector<LogListener*> LogListenerList; > > > LogList mLogs; > > > Log* mDefaultLog; > > > LogListenerList mListeners; > > public: > LogManager(); > ~LogManager(); > > > > > > void addListener( LogListener * listener ); > > > > > > void removeListener( LogListener * listener ); ># 116 "../../OgreMain/include/OgreLogManager.h" > Log* createLog( const String& name, bool defaultLog = false, bool debuggerOutput = true ); > > > > Log* getLog( const String& name); > > > > Log* getDefaultLog(); > > > > > Log* setDefaultLog(Log* newLog); > > > > void logMessage( const String& message, LogMessageLevel lml = LML_NORMAL, > bool maskDebug = false); > > > > void logMessage( LogMessageLevel lml, const String& message, > bool maskDebug = false) { logMessage(message, lml, maskDebug); } > > > > void setLogDetail(LoggingLevel ll); ># 159 "../../OgreMain/include/OgreLogManager.h" > static LogManager& getSingleton(void); ># 175 "../../OgreMain/include/OgreLogManager.h" > static LogManager* getSingletonPtr(void); > > }; > >} ># 31 "OgreAnimationTrack.cpp" 2 > > ># 1 "../../OgreMain/include/OgreRenderWindow.h" 1 ># 30 "../../OgreMain/include/OgreRenderWindow.h" ># 1 "../../OgreMain/include/OgreRenderTarget.h" 1 ># 31 "../../OgreMain/include/OgreRenderTarget.h" ># 1 "../../OgreMain/include/OgreTextureManager.h" 1 ># 31 "../../OgreMain/include/OgreTextureManager.h" ># 1 "../../OgreMain/include/OgreResourceManager.h" 1 ># 31 "../../OgreMain/include/OgreResourceManager.h" ># 1 "../../OgreMain/include/OgreResourceGroupManager.h" 1 ># 31 "../../OgreMain/include/OgreResourceGroupManager.h" ># 1 "../../OgreMain/include/OgreDataStream.h" 1 ># 33 "../../OgreMain/include/OgreDataStream.h" >namespace Ogre { ># 54 "../../OgreMain/include/OgreDataStream.h" > class DataStream > { > protected: > > String mName; > > size_t mSize; > > > char mTmpArea[128]; > public: > > DataStream() : mSize(0) {} > > DataStream(const String& name) : mName(name), mSize(0) {} > > const String& getName(void) { return mName; } > virtual ~DataStream() {} > > template<typename T> DataStream& operator>>(T& val); > > > > > > > virtual size_t read(void* buf, size_t count) = 0; ># 92 "../../OgreMain/include/OgreDataStream.h" > virtual size_t readLine(char* buf, size_t maxCount, const String& delim = "\n") = 0; ># 105 "../../OgreMain/include/OgreDataStream.h" > virtual String getLine( bool trimAfter = true ); > > > > > > > virtual String getAsString(void); > > > > > > virtual size_t skipLine(const String& delim = "\n") = 0; > > > > virtual void skip(long count) = 0; > > > > virtual void seek( size_t pos ) = 0; > > > virtual size_t tell(void) const = 0; > > > > virtual bool eof(void) const = 0; > > > > > size_t size(void) const { return mSize; } > > > virtual void close(void) = 0; > > > }; > > > > > typedef SharedPtr<DataStream> DataStreamPtr; > > > typedef std::list<DataStreamPtr> DataStreamList; > > typedef SharedPtr<DataStreamList> DataStreamListPtr; > > > > class MemoryDataStream : public DataStream > { > protected: > > uchar* mData; > > uchar* mPos; > > uchar* mEnd; > > bool mFreeOnClose; > public: > > > > > > > > MemoryDataStream(void* pMem, size_t size, bool freeOnClose = false); ># 186 "../../OgreMain/include/OgreDataStream.h" > MemoryDataStream(const String& name, void* pMem, size_t size, > bool freeOnClose = false); ># 199 "../../OgreMain/include/OgreDataStream.h" > MemoryDataStream(DataStream& sourceStream, > bool freeOnClose = true); ># 212 "../../OgreMain/include/OgreDataStream.h" > MemoryDataStream(DataStreamPtr& sourceStream, > bool freeOnClose = true); ># 227 "../../OgreMain/include/OgreDataStream.h" > MemoryDataStream(const String& name, DataStream& sourceStream, > bool freeOnClose = true); ># 242 "../../OgreMain/include/OgreDataStream.h" > MemoryDataStream(const String& name, const DataStreamPtr& sourceStream, > bool freeOnClose = true); > > > > > > > MemoryDataStream(size_t size, bool freeOnClose = true); > > > > > > > MemoryDataStream(const String& name, size_t size, > bool freeOnClose = true); > > ~MemoryDataStream(); > > > uchar* getPtr(void) { return mData; } > > > uchar* getCurrentPtr(void) { return mPos; } > > > > size_t read(void* buf, size_t count); > > > size_t readLine(char* buf, size_t maxCount, const String& delim = "\n"); > > > > size_t skipLine(const String& delim = "\n"); > > > > void skip(long count); > > > > void seek( size_t pos ); > > > > size_t tell(void) const; > > > > bool eof(void) const; > > > > void close(void); > > > void setFreeOnClose(bool free) { mFreeOnClose = free; } > }; > > > > > typedef SharedPtr<MemoryDataStream> MemoryDataStreamPtr; > > > > > class FileStreamDataStream : public DataStream > { > protected: > > std::ifstream* mpStream; > bool mFreeOnClose; > public: > > > > > > FileStreamDataStream(std::ifstream* s, > bool freeOnClose = true); > > > > > > > FileStreamDataStream(const String& name, > std::ifstream* s, > bool freeOnClose = true); ># 347 "../../OgreMain/include/OgreDataStream.h" > FileStreamDataStream(const String& name, > std::ifstream* s, > size_t size, > bool freeOnClose = true); > > ~FileStreamDataStream(); > > > > size_t read(void* buf, size_t count); > > > size_t readLine(char* buf, size_t maxCount, const String& delim = "\n"); > > > > size_t skipLine(const String& delim = "\n"); > > > > void skip(long count); > > > > void seek( size_t pos ); > > > > size_t tell(void) const; > > > > bool eof(void) const; > > > > void close(void); > > > }; ># 397 "../../OgreMain/include/OgreDataStream.h" > class FileHandleDataStream : public DataStream > { > protected: > FILE* mFileHandle; > public: > > FileHandleDataStream(FILE* handle); > > FileHandleDataStream(const String& name, FILE* handle); > ~FileHandleDataStream(); > > > > size_t read(void* buf, size_t count); > > > size_t readLine(char* buf, size_t maxCount, const String& delim = "\n"); > > > > size_t skipLine(const String& delim = "\n"); > > > > void skip(long count); > > > > void seek( size_t pos ); > > > > size_t tell(void) const; > > > > bool eof(void) const; > > > > void close(void); > > }; >} ># 32 "../../OgreMain/include/OgreResourceGroupManager.h" 2 > ># 1 "../../OgreMain/include/OgreArchive.h" 1 ># 32 "../../OgreMain/include/OgreArchive.h" ># 1 "../../OgreMain/include/OgreStringVector.h" 1 ># 34 "../../OgreMain/include/OgreStringVector.h" >namespace Ogre { > > typedef std::vector<String> StringVector; > typedef SharedPtr<StringVector> StringVectorPtr; > >} ># 33 "../../OgreMain/include/OgreArchive.h" 2 > >namespace Ogre { > > > > > > > struct FileInfo { > > > Archive* archive; > > String filename; > > String path; > > String basename; > > size_t compressedSize; > > size_t uncompressedSize; > }; > > typedef std::vector<FileInfo> FileInfoList; > typedef SharedPtr<FileInfoList> FileInfoListPtr; ># 76 "../../OgreMain/include/OgreArchive.h" > class Archive > { > protected: > > String mName; > > String mType; > public: > > > > > Archive( const String& name, const String& archType ) > : mName(name), mType(archType) {} > > > > virtual ~Archive() {} > > > const String& getName(void) const { return mName; } > > > virtual bool isCaseSensitive(void) const = 0; ># 108 "../../OgreMain/include/OgreArchive.h" > virtual void load() = 0; > > > > > > > virtual void unload() = 0; ># 126 "../../OgreMain/include/OgreArchive.h" > virtual DataStreamPtr open(const String& filename) const = 0; ># 136 "../../OgreMain/include/OgreArchive.h" > virtual StringVectorPtr list(bool recursive = true ) = 0; > > > > > > > > virtual FileInfoListPtr listFileInfo(bool recursive = true ) = 0; ># 155 "../../OgreMain/include/OgreArchive.h" > virtual StringVectorPtr find(const String& pattern, bool recursive = true) = 0; > > > virtual bool exists(const String& filename) = 0; ># 168 "../../OgreMain/include/OgreArchive.h" > virtual FileInfoListPtr findFileInfo(const String& pattern, > bool recursive = true) = 0; > > > const String& getType(void) const { return mType; } > > }; >} ># 34 "../../OgreMain/include/OgreResourceGroupManager.h" 2 > >namespace Ogre { ># 63 "../../OgreMain/include/OgreResourceGroupManager.h" > class ResourceGroupListener > { > public: > virtual ~ResourceGroupListener() {} > > > > > > virtual void resourceGroupScriptingStarted(const String& groupName, size_t scriptCount) = 0; > > > > virtual void scriptParseStarted(const String& scriptName) = 0; > > > virtual void scriptParseEnded(void) = 0; > > virtual void resourceGroupScriptingEnded(const String& groupName) = 0; > > > > > > > virtual void resourceGroupLoadStarted(const String& groupName, size_t resourceCount) = 0; > > > > virtual void resourceLoadStarted(const ResourcePtr& resource) = 0; > > > virtual void resourceLoadEnded(void) = 0; > > > > > > virtual void worldGeometryStageStarted(const String& description) = 0; > > > > > > virtual void worldGeometryStageEnded(void) = 0; > > > virtual void resourceGroupLoadEnded(const String& groupName) = 0; > > }; ># 161 "../../OgreMain/include/OgreResourceGroupManager.h" > class ResourceGroupManager : public Singleton<ResourceGroupManager> > { > public: > > > static String DEFAULT_RESOURCE_GROUP_NAME; > > static String BOOTSTRAP_RESOURCE_GROUP_NAME; > > struct ResourceDeclaration > { > String resourceName; > String resourceType; > NameValuePairList parameters; > }; > > typedef std::list<ResourceDeclaration> ResourceDeclarationList; > protected: > > typedef std::map<String, ResourceManager*> ResourceManagerMap; > ResourceManagerMap mResourceManagerMap; > > > typedef std::multimap<Real, ScriptLoader*> ScriptLoaderOrderMap; > ScriptLoaderOrderMap mScriptLoaderOrderMap; > > typedef std::vector<ResourceGroupListener*> ResourceGroupListenerList; > ResourceGroupListenerList mResourceGroupListenerList; > > > typedef std::map<String, Archive*> ResourceLocationIndex; > > > struct ResourceLocation > { > > Archive* archive; > > bool recursive; > }; > > typedef std::list<ResourceLocation*> LocationList; > > typedef std::list<ResourcePtr> LoadUnloadResourceList; > > struct ResourceGroup > { > > > String name; > > bool initialised; > > LocationList locationList; > > ResourceLocationIndex resourceIndexCaseSensitive; > > ResourceLocationIndex resourceIndexCaseInsensitive; > > ResourceDeclarationList resourceDeclarations; > > > > typedef std::map<Real, LoadUnloadResourceList*> LoadResourceOrderMap; > LoadResourceOrderMap loadResourceOrderMap; > > String worldGeometry; > > SceneManager* worldGeometrySceneManager; > }; > > typedef std::map<String, ResourceGroup*> ResourceGroupMap; > ResourceGroupMap mResourceGroupMap; > > > String mWorldGroupName; > > > > > > > void parseResourceGroupScripts(ResourceGroup* grp); > > > > > void createDeclaredResources(ResourceGroup* grp); > > void addCreatedResource(ResourcePtr& res, ResourceGroup& group); > > ResourceGroup* getResourceGroup(const String& name); > > void dropGroupContents(ResourceGroup* grp); > > void deleteGroup(ResourceGroup* grp); > > void fireResourceGroupScriptingStarted(const String& groupName, size_t scriptCount); > > void fireScriptStarted(const String& scriptName); > > void fireScriptEnded(void); > > void fireResourceGroupScriptingEnded(const String& groupName); > > void fireResourceGroupLoadStarted(const String& groupName, size_t resourceCount); > > void fireResourceStarted(const ResourcePtr& resource); > > void fireResourceEnded(void); > > void fireResourceGroupLoadEnded(const String& groupName); > > > > > ResourceGroup* mCurrentGroup; > public: > ResourceGroupManager(); > virtual ~ResourceGroupManager(); ># 309 "../../OgreMain/include/OgreResourceGroupManager.h" > void createResourceGroup(const String& name); ># 351 "../../OgreMain/include/OgreResourceGroupManager.h" > void initialiseResourceGroup(const String& name); > > > > > void initialiseAllResourceGroups(void); ># 375 "../../OgreMain/include/OgreResourceGroupManager.h" > void loadResourceGroup(const String& name, bool loadMainResources = true, > bool loadWorldGeom = true); ># 387 "../../OgreMain/include/OgreResourceGroupManager.h" > void unloadResourceGroup(const String& name); ># 398 "../../OgreMain/include/OgreResourceGroupManager.h" > void clearResourceGroup(const String& name); > > > > > > > void destroyResourceGroup(const String& name); ># 429 "../../OgreMain/include/OgreResourceGroupManager.h" > void addResourceLocation(const String& name, const String& locType, > const String& resGroup = DEFAULT_RESOURCE_GROUP_NAME, bool recursive = false); > > void removeResourceLocation(const String& name, > const String& resGroup = DEFAULT_RESOURCE_GROUP_NAME); ># 467 "../../OgreMain/include/OgreResourceGroupManager.h" > void declareResource(const String& name, const String& resourceType, > const String& groupName = DEFAULT_RESOURCE_GROUP_NAME, > const NameValuePairList& loadParameters = NameValuePairList()); ># 480 "../../OgreMain/include/OgreResourceGroupManager.h" > void undeclareResource(const String& name, const String& groupName); ># 494 "../../OgreMain/include/OgreResourceGroupManager.h" > DataStreamPtr openResource(const String& resourceName, > const String& groupName = DEFAULT_RESOURCE_GROUP_NAME); ># 508 "../../OgreMain/include/OgreResourceGroupManager.h" > DataStreamListPtr openResources(const String& pattern, > const String& groupName = DEFAULT_RESOURCE_GROUP_NAME); ># 518 "../../OgreMain/include/OgreResourceGroupManager.h" > StringVectorPtr listResourceNames(const String& groupName); > > > > > > > FileInfoListPtr listResourceFileInfo(const String& groupName); ># 535 "../../OgreMain/include/OgreResourceGroupManager.h" > StringVectorPtr findResourceNames(const String& groupName, const String& pattern); > > > > > > bool resourceExists(const String& group, const String& filename); ># 550 "../../OgreMain/include/OgreResourceGroupManager.h" > FileInfoListPtr findResourceFileInfo(const String& group, const String& pattern); > > > > > > void addResourceGroupListener(ResourceGroupListener* l); > > void removeResourceGroupListener(ResourceGroupListener* l); > > > > > > > > void setWorldResourceGroupName(const String& groupName) {mWorldGroupName = groupName;} > > > const String& getWorldResourceGroupName(void) const { return mWorldGroupName; } ># 584 "../../OgreMain/include/OgreResourceGroupManager.h" > void linkWorldGeometryToResourceGroup(const String& group, > const String& worldGeometry, SceneManager* sceneManager); > > > > > > void unlinkWorldGeometryFromResourceGroup(const String& group); > > > void shutdownAll(void); ># 606 "../../OgreMain/include/OgreResourceGroupManager.h" > void _registerResourceManager(const String& resourceType, ResourceManager* rm); > > > > > > > > void _unregisterResourceManager(const String& resourceType); > > > > > > > void _registerScriptLoader(ScriptLoader* su); > > > > > void _unregisterScriptLoader(ScriptLoader* su); > > > > > ResourceManager* _getResourceManager(const String& resourceType); > > > > > void _notifyResourceCreated(ResourcePtr& res); > > > > > void _notifyResourceRemoved(ResourcePtr& res); > > > > > > void _notifyAllResourcesRemoved(ResourceManager* manager); ># 656 "../../OgreMain/include/OgreResourceGroupManager.h" > void _notifyWorldGeometryStageStarted(const String& description); > > > > > > > > void _notifyWorldGeometryStageEnded(void); > > > > > > > StringVector getResourceGroups(void); > > > > > > > ResourceDeclarationList getResourceDeclarationList(const String& groupName); ># 695 "../../OgreMain/include/OgreResourceGroupManager.h" > static ResourceGroupManager& getSingleton(void); ># 711 "../../OgreMain/include/OgreResourceGroupManager.h" > static ResourceGroupManager* getSingletonPtr(void); > > }; >} ># 32 "../../OgreMain/include/OgreResourceManager.h" 2 > > > > ># 1 "../../OgreMain/include/OgreScriptLoader.h" 1 ># 32 "../../OgreMain/include/OgreScriptLoader.h" >namespace Ogre { ># 49 "../../OgreMain/include/OgreScriptLoader.h" > class ScriptLoader > { > public: > virtual ~ScriptLoader(); ># 61 "../../OgreMain/include/OgreScriptLoader.h" > virtual const StringVector& getScriptPatterns(void) const = 0; > > > > > > > virtual void parseScript(DataStreamPtr& stream, const String& groupName) = 0; ># 77 "../../OgreMain/include/OgreScriptLoader.h" > virtual Real getLoadingOrder(void) const = 0; > > }; > > >} ># 37 "../../OgreMain/include/OgreResourceManager.h" 2 > >namespace Ogre { ># 64 "../../OgreMain/include/OgreResourceManager.h" > class ResourceManager : public ScriptLoader > { > public: > > ResourceManager(); > virtual ~ResourceManager(); ># 90 "../../OgreMain/include/OgreResourceManager.h" > virtual ResourcePtr create(const String& name, const String& group, > bool isManual = false, ManualResourceLoader* loader = 0, > const NameValuePairList* createParams = 0); > > > > > > > > virtual void setMemoryBudget( size_t bytes); > > > > virtual size_t getMemoryBudget(void) const; > > > > > > > > virtual void unload(const String& name); > > > > > > > > virtual void unload(ResourceHandle handle); > > > > > > > > virtual void unloadAll(void); > > > > > > virtual void reloadAll(void); ># 153 "../../OgreMain/include/OgreResourceManager.h" > virtual void remove(ResourcePtr& r); ># 172 "../../OgreMain/include/OgreResourceManager.h" > virtual void remove(const String& name); ># 191 "../../OgreMain/include/OgreResourceManager.h" > virtual void remove(ResourceHandle handle); ># 206 "../../OgreMain/include/OgreResourceManager.h" > virtual void removeAll(void); > > > > virtual ResourcePtr getByName(const String& name); > > > virtual ResourcePtr getByHandle(ResourceHandle handle); > > > virtual bool resourceExists(const String& name) > { > return !getByName(name).isNull(); > } > > virtual bool resourceExists(ResourceHandle handle) > { > return !getByHandle(handle).isNull(); > } > > > > > virtual void _notifyResourceTouched(Resource* res); > > > > > virtual void _notifyResourceLoaded(Resource* res); > > > > > virtual void _notifyResourceUnloaded(Resource* res); ># 254 "../../OgreMain/include/OgreResourceManager.h" > virtual ResourcePtr load(const String& name, > const String& group, bool isManual = false, > ManualResourceLoader* loader = 0, const NameValuePairList* loadParams = 0); ># 273 "../../OgreMain/include/OgreResourceManager.h" > virtual const StringVector& getScriptPatterns(void) const { return mScriptPatterns; } ># 288 "../../OgreMain/include/OgreResourceManager.h" > virtual void parseScript(DataStreamPtr& stream, const String& groupName) {} > > > > > > > > virtual Real getLoadingOrder(void) const { return mLoadOrder; } > > > const String& getResourceType(void) const { return mResourceType; } > > protected: > > > ResourceHandle getNextHandle(void); ># 327 "../../OgreMain/include/OgreResourceManager.h" > virtual Resource* createImpl(const String& name, ResourceHandle handle, > const String& group, bool isManual, ManualResourceLoader* loader, > const NameValuePairList* createParams) = 0; > > virtual void addImpl( ResourcePtr& res ); > > virtual void removeImpl( ResourcePtr& res ); > > > virtual void checkUsage(void); > > virtual size_t getMemoryUsage(void) const { return mMemoryUsage; } > > > public: > typedef ::__gnu_cxx::hash_map< String, ResourcePtr > ResourceMap; > typedef std::map<ResourceHandle, ResourcePtr> ResourceHandleMap; > protected: > ResourceHandleMap mResourcesByHandle; > ResourceMap mResources; > ResourceHandle mNextHandle; > size_t mMemoryBudget; > size_t mMemoryUsage; > > > > > StringVector mScriptPatterns; > > Real mLoadOrder; > > String mResourceType; > > public: > typedef MapIterator<ResourceHandleMap> ResourceMapIterator; > > > > > ResourceMapIterator getResourceIterator(void) > { > return ResourceMapIterator(mResourcesByHandle.begin(), mResourcesByHandle.end()); > } > > > > }; > >} ># 32 "../../OgreMain/include/OgreTextureManager.h" 2 ># 1 "../../OgreMain/include/OgreTexture.h" 1 ># 31 "../../OgreMain/include/OgreTexture.h" ># 1 "../../OgreMain/include/OgreImage.h" 1 ># 30 "../../OgreMain/include/OgreImage.h" ># 1 "../../OgreMain/include/OgrePixelFormat.h" 1 ># 31 "../../OgreMain/include/OgrePixelFormat.h" >namespace Ogre { > > enum PixelFormat > { > > PF_UNKNOWN = 0, > > PF_L8 = 1, > PF_BYTE_L = PF_L8, > > PF_L16 = 2, > PF_SHORT_L = PF_L16, > > PF_A8 = 3, > PF_BYTE_A = PF_A8, > > PF_A4L4 = 4, > > PF_BYTE_LA = 5, > > PF_R5G6B5 = 6, > > PF_B5G6R5 = 7, > > PF_R3G3B2 = 31, > > PF_A4R4G4B4 = 8, > > PF_A1R5G5B5 = 9, > > PF_R8G8B8 = 10, > > PF_B8G8R8 = 11, > > PF_A8R8G8B8 = 12, > > PF_A8B8G8R8 = 13, > > PF_B8G8R8A8 = 14, > > PF_R8G8B8A8 = 28, > > > PF_X8R8G8B8 = 26, > > > PF_X8B8G8R8 = 27, ># 89 "../../OgreMain/include/OgrePixelFormat.h" > PF_BYTE_RGB = PF_B8G8R8, > > PF_BYTE_BGR = PF_R8G8B8, > > PF_BYTE_BGRA = PF_A8R8G8B8, > > PF_BYTE_RGBA = PF_A8B8G8R8, > > > PF_A2R10G10B10 = 15, > > PF_A2B10G10R10 = 16, > > PF_DXT1 = 17, > > PF_DXT2 = 18, > > PF_DXT3 = 19, > > PF_DXT4 = 20, > > PF_DXT5 = 21, > > PF_FLOAT16_R = 32, > > PF_FLOAT16_RGB = 22, > > PF_FLOAT16_RGBA = 23, > > PF_FLOAT32_R = 33, > > PF_FLOAT32_RGB = 24, > > PF_FLOAT32_RGBA = 25, > > PF_DEPTH = 29, > > PF_SHORT_RGBA = 30, > > PF_COUNT = 34 > }; > > > > > enum PixelFormatFlags { > > PFF_HASALPHA = 0x00000001, > > > PFF_COMPRESSED = 0x00000002, > > PFF_FLOAT = 0x00000004, > > PFF_DEPTH = 0x00000008, > > > PFF_NATIVEENDIAN = 0x00000010, > > > PFF_LUMINANCE = 0x00000020 > }; > > > > > > class PixelBox: public Box { > public: > > PixelBox() {} > > > > > > > > PixelBox(const Box &extents, PixelFormat pixelFormat, void *pixelData=0): > Box(extents), data(pixelData), format(pixelFormat) > { > setConsecutive(); > } ># 181 "../../OgreMain/include/OgrePixelFormat.h" > PixelBox(size_t width, size_t height, size_t depth, PixelFormat pixelFormat, void *pixelData=0): > Box(0, 0, 0, width, height, depth), > data(pixelData), format(pixelFormat) > { > setConsecutive(); > } > > > void *data; > > PixelFormat format; > > > > > size_t rowPitch; > > > > > > size_t slicePitch; > > > > > void setConsecutive() > { > rowPitch = getWidth(); > slicePitch = getWidth()*getHeight(); > } > > > > > size_t getRowSkip() const { return rowPitch - getWidth(); } > > > > > size_t getSliceSkip() const { return slicePitch - (getHeight() * rowPitch); } > > > > > bool isConsecutive() const > { > return rowPitch == getWidth() && slicePitch == getWidth()*getHeight(); > } > > > > size_t getConsecutiveSize() const; ># 242 "../../OgreMain/include/OgrePixelFormat.h" > PixelBox getSubVolume(const Box &def) const; > }; > > > > > > class PixelUtil { > public: > > > > > > > static size_t getNumElemBytes( PixelFormat format ); > > > > > > > > static size_t getNumElemBits( PixelFormat format ); ># 284 "../../OgreMain/include/OgrePixelFormat.h" > static size_t getMemorySize(size_t width, size_t height, size_t depth, PixelFormat format); ># 293 "../../OgreMain/include/OgrePixelFormat.h" > static unsigned int getFlags( PixelFormat format ); > > > static bool hasAlpha(PixelFormat format); > > static bool isFloatingPoint(PixelFormat format); > > static bool isCompressed(PixelFormat format); > > static bool isDepth(PixelFormat format); > > static bool isNativeEndian(PixelFormat format); > > static bool isLuminance(PixelFormat format); ># 320 "../../OgreMain/include/OgrePixelFormat.h" > static bool isValidExtent(size_t width, size_t height, size_t depth, PixelFormat format); > > > > > static void getBitDepths(PixelFormat format, int rgba[4]); > > > > > static void getBitMasks(PixelFormat format, uint32 rgba[4]); > > > > static String getFormatName(PixelFormat srcformat); ># 343 "../../OgreMain/include/OgrePixelFormat.h" > static bool isAccessible(PixelFormat srcformat); > > > > > > > static void packColour(const ColourValue &colour, const PixelFormat pf, const void* dest); > > > > > > static void packColour(const uint8 r, const uint8 g, const uint8 b, const uint8 a, const PixelFormat pf, const void* dest); > > > > > > > > static void packColour(const float r, const float g, const float b, const float a, const PixelFormat pf, const void* dest); > > > > > > > static void unpackColour(ColourValue *colour, PixelFormat pf, const void* src); ># 380 "../../OgreMain/include/OgrePixelFormat.h" > static void unpackColour(uint8 *r, uint8 *g, uint8 *b, uint8 *a, PixelFormat pf, const void* src); > > > > > > static void unpackColour(float *r, float *g, float *b, float *a, PixelFormat pf, const void* src); ># 396 "../../OgreMain/include/OgrePixelFormat.h" > static void bulkPixelConversion(void *src, PixelFormat srcFormat, void *dest, PixelFormat dstFormat, unsigned int count); ># 405 "../../OgreMain/include/OgrePixelFormat.h" > static void bulkPixelConversion(const PixelBox &src, const PixelBox &dst); > }; > >}; ># 31 "../../OgreMain/include/OgreImage.h" 2 > > >namespace Ogre { > > enum ImageFlags > { > IF_COMPRESSED = 0x00000001, > IF_CUBEMAP = 0x00000002, > IF_3D_TEXTURE = 0x00000004 > }; ># 52 "../../OgreMain/include/OgreImage.h" > class Image > { > public: > typedef Ogre::Box Box; > typedef Ogre::Rect Rect; > public: > > > Image(); > > > Image( const Image &img ); > > > > virtual ~Image(); > > > > Image & operator = ( const Image & img ); ># 92 "../../OgreMain/include/OgreImage.h" > Image & flipAroundY(); ># 108 "../../OgreMain/include/OgreImage.h" > Image & flipAroundX(); ># 139 "../../OgreMain/include/OgreImage.h" > Image& Image::loadDynamicImage( uchar* pData, size_t uWidth, size_t uHeight, > size_t depth, > PixelFormat eFormat, bool autoDelete = false, > size_t numFaces = 1, size_t numMipMaps = 0); ># 165 "../../OgreMain/include/OgreImage.h" > Image& loadDynamicImage( uchar* pData, size_t uWidth, > size_t uHeight, PixelFormat eFormat) > { > return loadDynamicImage(pData, uWidth, uHeight, 1, eFormat); > } > > > > > > Image & loadRawData( > DataStreamPtr& stream, > size_t uWidth, size_t uHeight, size_t uDepth, > PixelFormat eFormat, > size_t numFaces = 1, size_t numMipMaps = 0); > > > > > > Image & loadRawData( > DataStreamPtr& stream, > size_t uWidth, size_t uHeight, > PixelFormat eFormat ) > { > return loadRawData(stream, uWidth, uHeight, 1, eFormat); > } ># 207 "../../OgreMain/include/OgreImage.h" > Image & load( const String& strFileName, const String& groupName ); ># 223 "../../OgreMain/include/OgreImage.h" > Image & load(DataStreamPtr& stream, const String& type ); > > > void save(const String& filename); > > > > uchar* getData(void); > > > > const uchar * getData() const; > > > > size_t getSize() const; > > > > size_t getNumMipmaps() const; > > > > bool hasFlag(const ImageFlags imgFlag) const; > > > > size_t getWidth(void) const; > > > > size_t getHeight(void) const; > > > > size_t getDepth(void) const; > > > > > size_t getNumFaces(void) const; > > > > size_t getRowSpan(void) const; > > > > PixelFormat getFormat() const; > > > > uchar getBPP() const; > > > > bool getHasAlpha() const; > > > > > > > static void applyGamma( uchar *buffer, Real gamma, size_t size, uchar bpp ); > > > > > > > ColourValue getColourAt(int x, int y, int z); > > > > > PixelBox getPixelBox(size_t face = 0, size_t mipmap = 0) const; > > enum Filter > { > FILTER_NEAREST, > FILTER_LINEAR, > FILTER_BILINEAR, > FILTER_BOX, > FILTER_TRIANGLE, > FILTER_BICUBIC > }; > > > > > > > > static void scale(const PixelBox &src, const PixelBox &dst, Filter filter = FILTER_BILINEAR); > > > void resize(ushort width, ushort height, Filter filter = FILTER_BILINEAR); > > > static size_t calculateSize(size_t mipmaps, size_t faces, size_t width, size_t height, size_t depth, PixelFormat format); > private: > > size_t m_uWidth; > > size_t m_uHeight; > > size_t m_uDepth; > > size_t m_uSize; > > size_t m_uNumMipmaps; > > int m_uFlags; > > > PixelFormat m_eFormat; > > > uchar m_ucPixelSize; > uchar* m_pBuffer; > > > bool m_bAutoDelete; > }; > >} ># 32 "../../OgreMain/include/OgreTexture.h" 2 > >namespace Ogre { > > > > enum TextureUsage > { > > TU_STATIC = HardwareBuffer::HBU_STATIC, > TU_DYNAMIC = HardwareBuffer::HBU_DYNAMIC, > TU_WRITE_ONLY = HardwareBuffer::HBU_WRITE_ONLY, > TU_STATIC_WRITE_ONLY = HardwareBuffer::HBU_STATIC_WRITE_ONLY, > TU_DYNAMIC_WRITE_ONLY = HardwareBuffer::HBU_DYNAMIC_WRITE_ONLY, > TU_DYNAMIC_WRITE_ONLY_DISCARDABLE = HardwareBuffer::HBU_DYNAMIC_WRITE_ONLY_DISCARDABLE, > > TU_AUTOMIPMAP = 0x100, > > > TU_RENDERTARGET = 0x200, > > TU_DEFAULT = TU_AUTOMIPMAP | TU_STATIC_WRITE_ONLY > > }; > > > > enum TextureType > { > > TEX_TYPE_1D = 1, > > TEX_TYPE_2D = 2, > > TEX_TYPE_3D = 3, > > TEX_TYPE_CUBE_MAP = 4 > }; > > > > enum TextureMipmap > { > > MIP_UNLIMITED = 0x7FFFFFFF > }; > > > class TexturePtr; ># 90 "../../OgreMain/include/OgreTexture.h" > class Texture : public Resource > { > public: > Texture(ResourceManager* creator, const String& name, ResourceHandle handle, > const String& group, bool isManual = false, ManualResourceLoader* loader = 0); > > > > void setTextureType(TextureType ttype ) { mTextureType = ttype; } > > > > TextureType getTextureType(void) const { return mTextureType; } > > > > size_t getNumMipmaps(void) const {return mNumMipmaps;} > > > > > > void setNumMipmaps(size_t num) {mNumMipmaps = num;} > > > > float getGamma(void) const { return mGamma; } > > > > > > void setGamma(float g) { mGamma = g; } > > > > unsigned int getHeight(void) const { return mHeight; } > > > > unsigned int getWidth(void) const { return mWidth; } > > > > unsigned int getDepth(void) const { return mDepth; } > > > > void setHeight(unsigned int h) { mHeight = mSrcHeight = h; } > > > > void setWidth(unsigned int w) { mWidth = mSrcWidth = w; } > > > > > void setDepth(unsigned int d) { mDepth = d; } > > > > int getUsage() const > { > return mUsage; > } ># 163 "../../OgreMain/include/OgreTexture.h" > void setUsage(int u) { mUsage = u; } ># 176 "../../OgreMain/include/OgreTexture.h" > virtual void createInternalResources(void); > > > > virtual void freeInternalResources(void); > > > virtual void copyToTexture( TexturePtr& target ) {} > > > > virtual void loadImage( const Image &img ) = 0; > > > > virtual void loadRawData( DataStreamPtr& stream, > ushort uWidth, ushort uHeight, PixelFormat eFormat); > > void enable32Bit( bool setting = true ) > { > setting ? mFinalBpp = 32 : mFinalBpp = 16; > } > > > virtual PixelFormat getFormat() const > { > return mFormat; > } > > > virtual void setFormat(PixelFormat pf); > > > virtual bool hasAlpha(void) const > { > return mHasAlpha; > } > > > > > virtual size_t getNumFaces() const; ># 229 "../../OgreMain/include/OgreTexture.h" > virtual HardwarePixelBufferSharedPtr getBuffer(size_t face=0, size_t mipmap=0) = 0; > > protected: > unsigned long mHeight; > unsigned long mWidth; > unsigned long mDepth; > > size_t mNumMipmaps; > float mGamma; > > TextureType mTextureType; > PixelFormat mFormat; > int mUsage; > > unsigned short mSrcBpp; > unsigned long mSrcWidth, mSrcHeight; > unsigned short mFinalBpp; > bool mHasAlpha; > > bool mInternalResourcesCreated; > > > size_t calculateSize(void) const; ># 261 "../../OgreMain/include/OgreTexture.h" > void _loadImages( const std::vector<const Image*>& images ); > > > > > virtual void createInternalResourcesImpl(void) = 0; > > > > virtual void freeInternalResourcesImpl(void) = 0; > > > void unloadImpl(void); > > }; > > > > > > > > class TexturePtr : public SharedPtr<Texture> > { > public: > TexturePtr() : SharedPtr<Texture>() {} > explicit TexturePtr(Texture* rep) : SharedPtr<Texture>(rep) {} > TexturePtr(const TexturePtr& r) : SharedPtr<Texture>(r) {} > TexturePtr(const ResourcePtr& r) : SharedPtr<Texture>() > { > > > > pRep = static_cast<Texture*>(r.getPointer()); > pUseCount = r.useCountPointer(); > if (pUseCount) > { > ++(*pUseCount); > } > } > > > TexturePtr& operator=(const ResourcePtr& r) > { > if (pRep == static_cast<Texture*>(r.getPointer())) > return *this; > release(); > > > > pRep = static_cast<Texture*>(r.getPointer()); > pUseCount = r.useCountPointer(); > if (pUseCount) > { > ++(*pUseCount); > } > return *this; > } > }; > >} ># 33 "../../OgreMain/include/OgreTextureManager.h" 2 > > > >namespace Ogre { ># 51 "../../OgreMain/include/OgreTextureManager.h" > class TextureManager : public ResourceManager, public Singleton<TextureManager> > { > public: > > TextureManager(bool enable32Bit = true); > virtual ~TextureManager(); ># 73 "../../OgreMain/include/OgreTextureManager.h" > virtual TexturePtr load( > const String& name, const String& group, > TextureType texType = TEX_TYPE_2D, int numMipmaps = -1, > Real gamma = 1.0f); ># 95 "../../OgreMain/include/OgreTextureManager.h" > virtual TexturePtr loadImage( > const String &name, const String& group, const Image &img, > TextureType texType = TEX_TYPE_2D, > int iNumMipmaps = -1, Real gamma = 1.0f); ># 123 "../../OgreMain/include/OgreTextureManager.h" > virtual TexturePtr loadRawData(const String &name, const String& group, > DataStreamPtr& stream, ushort uWidth, ushort uHeight, > PixelFormat format, TextureType texType = TEX_TYPE_2D, > int iNumMipmaps = -1, Real gamma = 1.0f); ># 162 "../../OgreMain/include/OgreTextureManager.h" > virtual TexturePtr createManual(const String & name, const String& group, > TextureType texType, uint width, uint height, uint depth, > int num_mips, PixelFormat format, int usage = TU_DEFAULT, ManualResourceLoader* loader = 0 ); ># 200 "../../OgreMain/include/OgreTextureManager.h" > TexturePtr createManual(const String & name, const String& group, > TextureType texType, uint width, uint height, int num_mips, > PixelFormat format, int usage = TU_DEFAULT, ManualResourceLoader* loader = 0 ) > { > return createManual(name, group, texType, width, height, 1, > num_mips, format, usage, loader); > } > > > > virtual void enable32BitTextures(bool setting = true); ># 220 "../../OgreMain/include/OgreTextureManager.h" > virtual void setDefaultNumMipmaps(size_t num); > > > > virtual size_t getDefaultNumMipmaps() > { > return mDefaultNumMipmaps; > } ># 244 "../../OgreMain/include/OgreTextureManager.h" > static TextureManager& getSingleton(void); ># 260 "../../OgreMain/include/OgreTextureManager.h" > static TextureManager* getSingletonPtr(void); > > protected: > > bool mIs32Bit; > size_t mDefaultNumMipmaps; > }; >} ># 32 "../../OgreMain/include/OgreRenderTarget.h" 2 ># 1 "../../OgreMain/include/OgreViewport.h" 1 ># 32 "../../OgreMain/include/OgreViewport.h" >namespace Ogre { ># 46 "../../OgreMain/include/OgreViewport.h" > class Viewport > { > public: ># 71 "../../OgreMain/include/OgreViewport.h" > Viewport( > Camera* camera, > RenderTarget* target, > Real left, Real top, > Real width, Real height, > int ZOrder); > > > > ~Viewport(); ># 89 "../../OgreMain/include/OgreViewport.h" > void _updateDimensions(void); > > > > void update(void); > > > > RenderTarget* getTarget(void) const; > > > > Camera* getCamera(void) const; > > > void setCamera(Camera* cam); > > > int getZOrder(void) const; > > > > Real getLeft(void) const; > > > > > Real getTop(void) const; > > > > > > Real getWidth(void) const; > > > > > Real getHeight(void) const; > > > > > int getActualLeft(void) const; > > > > > int getActualTop(void) const; > > > > int getActualWidth(void) const; > > > > > int getActualHeight(void) const; ># 160 "../../OgreMain/include/OgreViewport.h" > void setDimensions(Real left, Real top, Real width, Real height); > > > > > void setBackgroundColour(const ColourValue& colour); > > > > const ColourValue& getBackgroundColour(void) const; ># 178 "../../OgreMain/include/OgreViewport.h" > void setClearEveryFrame(bool clear); > > > > bool getClearEveryFrame(void) const; > > > > void getActualDimensions( > int &left, int &top, int &width, int &height ) const; > > bool _isUpdated(void) const; > void _clearUpdatedFlag(void); > > > > unsigned int _getNumRenderedFaces(void) const; ># 206 "../../OgreMain/include/OgreViewport.h" > void setOverlaysEnabled(bool enabled); > > > > bool getOverlaysEnabled(void) const; > > > protected: > Camera* mCamera; > RenderTarget* mTarget; > > float mRelLeft, mRelTop, mRelWidth, mRelHeight; > > int mActLeft, mActTop, mActWidth, mActHeight; > > int mZOrder; > > ColourValue mBackColour; > bool mClearEveryFrame; > bool mUpdated; > bool mShowOverlays; > }; > >} ># 33 "../../OgreMain/include/OgreRenderTarget.h" 2 ># 1 "../../OgreMain/include/OgreTimer.h" 1 ># 30 "../../OgreMain/include/OgreTimer.h" >namespace Ogre >{ > > > > > class Timer > { > protected: > clock_t zeroClock ; > > public: > > > > > > Timer() ; > virtual ~Timer() { } > > > > virtual void reset(); > > > > virtual unsigned long getMilliseconds() ; > > > > virtual unsigned long getMillisecondsCPU(); > > > > virtual unsigned long getMicroseconds() ; > > > > virtual unsigned long getMicrosecondsCPU(); > } ; >} ># 34 "../../OgreMain/include/OgreRenderTarget.h" 2 ># 42 "../../OgreMain/include/OgreRenderTarget.h" >namespace Ogre { ># 55 "../../OgreMain/include/OgreRenderTarget.h" > class RenderTarget > { > public: > enum StatFlags > { > SF_NONE = 0, > SF_FPS = 1, > SF_AVG_FPS = 2, > SF_BEST_FPS = 4, > SF_WORST_FPS = 8, > SF_TRIANGLE_COUNT = 16, > SF_ALL = 0xFFFF > }; > > struct FrameStats > { > float lastFPS; > float avgFPS; > float bestFPS; > float worstFPS; > unsigned long bestFrameTime; > unsigned long worstFrameTime; > size_t triangleCount; > }; > > RenderTarget(); > virtual ~RenderTarget(); > > > virtual const String& getName(void) const; > > > virtual void getMetrics(unsigned int& width, unsigned int& height, unsigned int& colourDepth); > > virtual unsigned int getWidth(void) const; > virtual unsigned int getHeight(void) const; > virtual unsigned int getColourDepth(void) const; ># 106 "../../OgreMain/include/OgreRenderTarget.h" > virtual void update(void); ># 131 "../../OgreMain/include/OgreRenderTarget.h" > virtual Viewport* addViewport(Camera* cam, int ZOrder = 0, float left = 0.0f, float top = 0.0f , > float width = 1.0f, float height = 1.0f); > > > virtual unsigned short getNumViewports(void) const; > > > virtual Viewport* getViewport(unsigned short index); > > > > virtual void removeViewport(int ZOrder); > > > > virtual void removeAllViewports(void); ># 166 "../../OgreMain/include/OgreRenderTarget.h" > virtual void getStatistics(float& lastFPS, float& avgFPS, > float& bestFPS, float& worstFPS) const; > > virtual const FrameStats& getStatistics(void) const; > > > > virtual float getLastFPS() const; > > > > virtual float getAverageFPS() const; > > > > virtual float getBestFPS() const; > > > > virtual float getWorstFPS() const; > > > > virtual float getBestFrameTime() const; > > > > virtual float getWorstFrameTime() const; > > > > virtual void resetStatistics(void); ># 208 "../../OgreMain/include/OgreRenderTarget.h" > virtual void getCustomAttribute(const String& name, void* pData); > > > virtual void setDebugText(const String& text); > > > const String& getDebugText() const; ># 224 "../../OgreMain/include/OgreRenderTarget.h" > virtual void addListener(RenderTargetListener* listener); > > virtual void removeListener(RenderTargetListener* listener); > > virtual void removeAllListeners(void); ># 237 "../../OgreMain/include/OgreRenderTarget.h" > virtual void setPriority( uchar priority ) { mPriority = priority; } > > virtual uchar getPriority() const { return mPriority; } > > > > virtual bool isActive() const; > > > > virtual void setActive( bool state ); ># 260 "../../OgreMain/include/OgreRenderTarget.h" > virtual void setAutoUpdated(bool autoupdate); > > > > virtual bool isAutoUpdated(void) const; > > > virtual void writeContentsToFile(const String& filename) = 0; > > > > virtual String writeContentsToTimestampedFile(const String& filenamePrefix, const String& filenameSuffix); > > virtual bool requiresTextureFlipping() const = 0; > > > virtual size_t getTriangleCount(void) const; > > > > virtual void _notifyCameraRemoved(const Camera* cam); > > > > > > > > virtual bool isPrimary(void) const; > > protected: > > String mName; > > uchar mPriority; > > unsigned int mWidth; > unsigned int mHeight; > unsigned int mColourDepth; > bool mIsDepthBuffered; > > > FrameStats mStats; > > Timer* mTimer ; > String mDebugText; > unsigned long mLastSecond; > unsigned long mLastTime; > size_t mFrameCount; > > bool mActive; > bool mAutoUpdate; > > void updateStats(void); > > typedef std::map<int, Viewport*, std::less<int> > ViewportList; > > ViewportList mViewportList; > > typedef std::vector<RenderTargetListener*> RenderTargetListenerList; > RenderTargetListenerList mListeners; > > > virtual void firePreUpdate(void); > > virtual void firePostUpdate(void); > > virtual void fireViewportPreUpdate(Viewport* vp); > > virtual void fireViewportPostUpdate(Viewport* vp); > }; > >} ># 31 "../../OgreMain/include/OgreRenderWindow.h" 2 > >namespace Ogre >{ ># 55 "../../OgreMain/include/OgreRenderWindow.h" > class RenderWindow : public RenderTarget > { > > public: > > > RenderWindow(); ># 86 "../../OgreMain/include/OgreRenderWindow.h" > virtual void create(const String& name, unsigned int width, unsigned int height, > bool fullScreen, const NameValuePairList *miscParams) = 0; > > > > virtual void destroy(void) = 0; > > > > virtual void resize(unsigned int width, unsigned int height) = 0; > > > > > > virtual void windowMovedOrResized() {} > > > > virtual void reposition(int left, int top) = 0; > > > > virtual bool isVisible(void) const { return true; } > > > > virtual bool isActive(void) const { return mActive && isVisible(); } > > > > virtual bool isClosed(void) const = 0; > > > > > > > > virtual bool isPrimary(void) const; ># 147 "../../OgreMain/include/OgreRenderWindow.h" > virtual void swapBuffers(bool waitForVSync = true) = 0; > > > > > > > > virtual void update(void); > > > > virtual bool isFullScreen(void) const; > > > > > virtual void getMetrics(unsigned int& width, unsigned int& height, unsigned int& colourDepth, > int& left, int& top); > > protected: > bool mIsFullScreen; > bool mIsPrimary; > int mLeft; > int mTop; > > > > > void _setPrimary() { mIsPrimary = true; } > > friend class Root; > }; > > > > > > > > typedef void (*DLL_CREATERENDERWINDOW)(RenderWindow** ppWindow); > >} ># 34 "OgreAnimationTrack.cpp" 2 ># 1 "../../OgreMain/include/OgreRoot.h" 1 ># 33 "../../OgreMain/include/OgreRoot.h" ># 1 "../../OgreMain/include/OgreSceneManagerEnumerator.h" 1 ># 30 "../../OgreMain/include/OgreSceneManagerEnumerator.h" ># 1 "../../OgreMain/include/OgreSceneManager.h" 1 ># 32 "../../OgreMain/include/OgreSceneManager.h" ># 1 "../../OgreMain/include/OgreSceneNode.h" 1 ># 32 "../../OgreMain/include/OgreSceneNode.h" ># 1 "../../OgreMain/include/OgreAxisAlignedBox.h" 1 ># 34 "../../OgreMain/include/OgreAxisAlignedBox.h" >namespace Ogre { ># 45 "../../OgreMain/include/OgreAxisAlignedBox.h" > class AxisAlignedBox > { > protected: > Vector3 mMinimum; > Vector3 mMaximum; > bool mNull; > > Vector3 mCorners[8]; > > > > void updateCorners(void) > { > > > > > > mCorners[0] = mMinimum; > mCorners[1].x = mMinimum.x; mCorners[1].y = mMaximum.y; mCorners[1].z = mMinimum.z; > mCorners[2].x = mMaximum.x; mCorners[2].y = mMaximum.y; mCorners[2].z = mMinimum.z; > mCorners[3].x = mMaximum.x; mCorners[3].y = mMinimum.y; mCorners[3].z = mMinimum.z; > > mCorners[4] = mMaximum; > mCorners[5].x = mMinimum.x; mCorners[5].y = mMaximum.y; mCorners[5].z = mMaximum.z; > mCorners[6].x = mMinimum.x; mCorners[6].y = mMinimum.y; mCorners[6].z = mMaximum.z; > mCorners[7].x = mMaximum.x; mCorners[7].y = mMinimum.y; mCorners[7].z = mMaximum.z; > } > > public: > inline AxisAlignedBox() > { > > setMinimum( -0.5, -0.5, -0.5 ); > setMaximum( 0.5, 0.5, 0.5 ); > mNull = true; > } > > inline AxisAlignedBox( const Vector3& min, const Vector3& max ) > { > setExtents( min, max ); > } > > inline AxisAlignedBox( > Real mx, Real my, Real mz, > Real Mx, Real My, Real Mz ) > { > setExtents( mx, my, mz, Mx, My, Mz ); > } > > > > inline const Vector3& getMinimum(void) const > { > return mMinimum; > } > > > > inline const Vector3& getMaximum(void) const > { > return mMaximum; > } > > > > inline void setMinimum( const Vector3& vec ) > { > mNull = false; > mMinimum = vec; > updateCorners(); > } > > inline void setMinimum( Real x, Real y, Real z ) > { > mNull = false; > mMinimum.x = x; > mMinimum.y = y; > mMinimum.z = z; > updateCorners(); > } > > > > inline void setMaximum( const Vector3& vec ) > { > mNull = false; > mMaximum = vec; > updateCorners(); > } > > inline void setMaximum( Real x, Real y, Real z ) > { > mNull = false; > mMaximum.x = x; > mMaximum.y = y; > mMaximum.z = z; > updateCorners(); > } > > > > inline void setExtents( const Vector3& min, const Vector3& max ) > { > mNull = false; > mMinimum = min; > mMaximum = max; > updateCorners(); > } > > inline void setExtents( > Real mx, Real my, Real mz, > Real Mx, Real My, Real Mz ) > { > mNull = false; > > mMinimum.x = mx; > mMinimum.y = my; > mMinimum.z = mz; > > mMaximum.x = Mx; > mMaximum.y = My; > mMaximum.z = Mz; > > updateCorners(); > } ># 195 "../../OgreMain/include/OgreAxisAlignedBox.h" > inline const Vector3* getAllCorners(void) const > { > (static_cast<void> ((!mNull && "Can't get corners of a null AAB") ? 0 : (__assert_fail ("!mNull && \"Can't get corners of a null AAB\"", "../../OgreMain/include/OgreAxisAlignedBox.h", 197, __PRETTY_FUNCTION__), 0))); > return (const Vector3*)mCorners; > } > > friend std::ostream& operator<<( std::ostream& o, AxisAlignedBox aab ) > { > if (aab.isNull()) > { > o << "AxisAlignedBox(null)"; > } > else > { > o << "AxisAlignedBox(min=" << aab.mMinimum << ", max=" << aab.mMaximum; > o << ", corners="; > for (int i = 0; i < 7; ++i) > o << aab.mCorners[i] << ", "; > o << aab.mCorners[7] << ")"; > } > return o; > } > > > > > void merge( const AxisAlignedBox& rhs ) > { > > if (rhs.mNull) > { > return; > } > > else if (mNull) > { > setExtents(rhs.mMinimum, rhs.mMaximum); > } > > else > { > Vector3 min = mMinimum; > Vector3 max = mMaximum; > max.makeCeil(rhs.mMaximum); > min.makeFloor(rhs.mMinimum); > > setExtents(min, max); > } > > } > > > > void merge( const Vector3& point ) > { > if (mNull){ > setExtents(point, point); > } else { > mMaximum.makeCeil(point); > mMinimum.makeFloor(point); > updateCorners(); > } > } ># 268 "../../OgreMain/include/OgreAxisAlignedBox.h" > void transform( const Matrix4& matrix ) > { > > if( mNull ) > return; > > Vector3 min, max, temp; > bool first = true; > size_t i; > > for( i = 0; i < 8; ++i ) > { > > temp = matrix * mCorners[i]; > if( first || temp.x > max.x ) > max.x = temp.x; > if( first || temp.y > max.y ) > max.y = temp.y; > if( first || temp.z > max.z ) > max.z = temp.z; > if( first || temp.x < min.x ) > min.x = temp.x; > if( first || temp.y < min.y ) > min.y = temp.y; > if( first || temp.z < min.z ) > min.z = temp.z; > > first = false; > } > > setExtents( min,max ); > > } > > > > inline void setNull() > { > mNull = true; > } > > > > bool isNull(void) const > { > return mNull; > } > > > inline bool intersects(const AxisAlignedBox& b2) const > { > > if (this->isNull() || b2.isNull()) > return false; > > > if (mMaximum.x < b2.mMinimum.x) > return false; > if (mMaximum.y < b2.mMinimum.y) > return false; > if (mMaximum.z < b2.mMinimum.z) > return false; > > if (mMinimum.x > b2.mMaximum.x) > return false; > if (mMinimum.y > b2.mMaximum.y) > return false; > if (mMinimum.z > b2.mMaximum.z) > return false; > > > return true; > > } > > > inline AxisAlignedBox intersection(const AxisAlignedBox& b2) const > { > if (!this->intersects(b2)) > { > return AxisAlignedBox(); > } > Vector3 intMin, intMax; > > const Vector3& b2max = b2.getMaximum(); > const Vector3& b2min = b2.getMinimum(); > > if (b2max.x > mMaximum.x && mMaximum.x > b2min.x) > intMax.x = mMaximum.x; > else > intMax.x = b2max.x; > if (b2max.y > mMaximum.y && mMaximum.y > b2min.y) > intMax.y = mMaximum.y; > else > intMax.y = b2max.y; > if (b2max.z > mMaximum.z && mMaximum.z > b2min.z) > intMax.z = mMaximum.z; > else > intMax.z = b2max.z; > > if (b2min.x < mMinimum.x && mMinimum.x < b2max.x) > intMin.x = mMinimum.x; > else > intMin.x= b2min.x; > if (b2min.y < mMinimum.y && mMinimum.y < b2max.y) > intMin.y = mMinimum.y; > else > intMin.y= b2min.y; > if (b2min.z < mMinimum.z && mMinimum.z < b2max.z) > intMin.z = mMinimum.z; > else > intMin.z= b2min.z; > > return AxisAlignedBox(intMin, intMax); > > } > > > Real volume(void) const > { > if (mNull) > { > return 0.0f; > } > else > { > Vector3 diff = mMaximum - mMinimum; > return diff.x * diff.y * diff.z; > } > > } > > > inline void scale(const Vector3& s) > { > > Vector3 min = mMinimum * s; > Vector3 max = mMaximum * s; > setExtents(min, max); > } > > > bool intersects(const Sphere& s) const > { > return Math::intersects(s, *this); > } > > bool intersects(const Plane& p) const > { > return Math::intersects(p, *this); > } > > bool intersects(const Vector3& v) const > { > return(v.x >= mMinimum.x && v.x <= mMaximum.x && > v.y >= mMinimum.y && v.y <= mMaximum.y && > v.z >= mMinimum.z && v.z <= mMaximum.z); > } > > Vector3 getCenter(void) const > { > return Vector3((mMaximum + mMinimum) * 0.5); > } > > > }; > >} ># 33 "../../OgreMain/include/OgreSceneNode.h" 2 > >namespace Ogre { ># 45 "../../OgreMain/include/OgreSceneNode.h" > class SceneNode : public Node > { > public: > typedef ::__gnu_cxx::hash_map<String, MovableObject*> ObjectMap; > typedef MapIterator<ObjectMap> ObjectIterator; > typedef ConstMapIterator<ObjectMap> ConstObjectIterator; > > protected: > ObjectMap mObjectsByName; > mutable LightList mLightList; > mutable bool mLightListDirty; > > > WireBoundingBox *mWireBoundingBox; > > bool mShowBoundingBox; > > > SceneManager* mCreator; > > > AxisAlignedBox mWorldAABB; > > > > virtual void _updateBounds(void); > > > Node* createChildImpl(void); > > > Node* createChildImpl(const String& name); > > > void setParent(Node* parent); > > > > > void setInSceneGraph(bool inGraph); > > > bool mYawFixed; > > Vector3 mYawFixedAxis; > > > SceneNode* mAutoTrackTarget; > > Vector3 mAutoTrackOffset; > > Vector3 mAutoTrackLocalDirection; > > bool mIsInSceneGraph; > public: > > > > > SceneNode(SceneManager* creator); > > > > > SceneNode(SceneManager* creator, const String& name); > ~SceneNode(); > > > > > > > virtual void attachObject(MovableObject* obj); > > > > virtual unsigned short numAttachedObjects(void) const; > > > > > > virtual MovableObject* getAttachedObject(unsigned short index); > > > > > virtual MovableObject* getAttachedObject(const String& name); > > > > > > > virtual MovableObject* detachObject(unsigned short index); > > virtual void detachObject(MovableObject* obj); > > > virtual MovableObject* detachObject(const String& name); > > > > virtual void detachAllObjects(void); > > > > > virtual bool isInSceneGraph(void) const { return mIsInSceneGraph; } > > > > > > virtual void _notifyRootNode(void) { mIsInSceneGraph = true; } ># 174 "../../OgreMain/include/OgreSceneNode.h" > virtual void _update(bool updateChildren, bool parentHasChanged); ># 192 "../../OgreMain/include/OgreSceneNode.h" > virtual void _findVisibleObjects(Camera* cam, RenderQueue* queue, > bool includeChildren = true, bool displayNodes = false, bool onlyShadowCasters = false); > > > > > > > virtual AxisAlignedBox _getWorldAABB(void) const; ># 212 "../../OgreMain/include/OgreSceneNode.h" > virtual ObjectIterator getAttachedObjectIterator(void); ># 223 "../../OgreMain/include/OgreSceneNode.h" > virtual ConstObjectIterator getAttachedObjectIterator(void) const; > > > > > > > SceneManager* getCreator(void) const; ># 242 "../../OgreMain/include/OgreSceneNode.h" > virtual void removeAndDestroyChild(const String& name); ># 254 "../../OgreMain/include/OgreSceneNode.h" > virtual void removeAndDestroyChild(unsigned short index); > > > > > > > > virtual void removeAndDestroyAllChildren(void); > > > > > > virtual void showBoundingBox(bool bShow); > > > > virtual void _addBoundingBoxToQueue(RenderQueue* queue); ># 281 "../../OgreMain/include/OgreSceneNode.h" > virtual bool getShowBoundingBox() const; > > > > > > > > virtual SceneNode* createChildSceneNode( > const Vector3& translate = Vector3::ZERO, > const Quaternion& rotate = Quaternion::IDENTITY ); ># 302 "../../OgreMain/include/OgreSceneNode.h" > virtual SceneNode* createChildSceneNode(const String& name, const Vector3& translate = Vector3::ZERO, const Quaternion& rotate = Quaternion::IDENTITY); ># 313 "../../OgreMain/include/OgreSceneNode.h" > const LightList& findLights(Real radius) const; ># 329 "../../OgreMain/include/OgreSceneNode.h" > void setFixedYawAxis( bool useFixed, const Vector3& fixedAxis = Vector3::UNIT_Y ); > > > > virtual void yaw(const Radian& angle, TransformSpace relativeTo = TS_LOCAL); ># 349 "../../OgreMain/include/OgreSceneNode.h" > void setDirection(Real x, Real y, Real z, > TransformSpace relativeTo = TS_LOCAL, > const Vector3& localDirectionVector = Vector3::NEGATIVE_UNIT_Z); ># 363 "../../OgreMain/include/OgreSceneNode.h" > void setDirection(const Vector3& vec, TransformSpace relativeTo = TS_LOCAL, > const Vector3& localDirectionVector = Vector3::NEGATIVE_UNIT_Z); > > > > > > > void lookAt( const Vector3& targetPoint, TransformSpace relativeTo, > const Vector3& localDirectionVector = Vector3::NEGATIVE_UNIT_Z); ># 391 "../../OgreMain/include/OgreSceneNode.h" > void setAutoTracking(bool enabled, SceneNode* target = 0, > const Vector3& localDirectionVector = Vector3::NEGATIVE_UNIT_Z, > const Vector3& offset = Vector3::ZERO); > > SceneNode* getAutoTrackTarget(void) { return mAutoTrackTarget; } > > const Vector3& getAutoTrackOffset(void) { return mAutoTrackOffset; } > > const Vector3& getAutoTrackLocalDirection(void) { return mAutoTrackLocalDirection; } > > void _autoTrack(void); > > SceneNode* getParentSceneNode(void) const; ># 412 "../../OgreMain/include/OgreSceneNode.h" > void setVisible(bool visible, bool cascade = true); > > > > > > > > void flipVisibility(bool cascade = true); > > > > > > }; > > >} ># 33 "../../OgreMain/include/OgreSceneManager.h" 2 > > > > ># 1 "../../OgreMain/include/OgreRenderQueue.h" 1 ># 31 "../../OgreMain/include/OgreRenderQueue.h" >namespace Ogre { > > > > > enum RenderQueueGroupID > { > > RENDER_QUEUE_BACKGROUND = 0, > > RENDER_QUEUE_SKIES_EARLY = 5, > RENDER_QUEUE_1 = 10, > RENDER_QUEUE_2 = 20, > RENDER_QUEUE_WORLD_GEOMETRY_1 = 25, > RENDER_QUEUE_3 = 30, > RENDER_QUEUE_4 = 40, > > RENDER_QUEUE_MAIN = 50, > RENDER_QUEUE_6 = 60, > RENDER_QUEUE_7 = 70, > RENDER_QUEUE_WORLD_GEOMETRY_2 = 75, > RENDER_QUEUE_8 = 80, > RENDER_QUEUE_9 = 90, > > RENDER_QUEUE_SKIES_LATE = 95, > > RENDER_QUEUE_OVERLAY = 100 > }; ># 73 "../../OgreMain/include/OgreRenderQueue.h" > class RenderQueue > { > public: > typedef std::map< RenderQueueGroupID, RenderQueueGroup* > RenderQueueGroupMap; > > typedef MapIterator<RenderQueueGroupMap> QueueGroupIterator; > protected: > RenderQueueGroupMap mGroups; > > RenderQueueGroupID mDefaultQueueGroup; > > ushort mDefaultRenderablePriority; > > bool mSplitPassesByLightingType; > bool mSplitNoShadowPasses; > public: > RenderQueue(); > virtual ~RenderQueue(); > > > > void clear(void); > > > > > > > RenderQueueGroup* getQueueGroup(RenderQueueGroupID qid); ># 125 "../../OgreMain/include/OgreRenderQueue.h" > void addRenderable(Renderable* pRend, RenderQueueGroupID groupID, ushort priority); ># 144 "../../OgreMain/include/OgreRenderQueue.h" > void addRenderable(Renderable* pRend, RenderQueueGroupID groupId); ># 158 "../../OgreMain/include/OgreRenderQueue.h" > void addRenderable(Renderable* pRend); > > > > > RenderQueueGroupID getDefaultQueueGroup(void) const; > > > > > > void setDefaultRenderablePriority(ushort priority); > > > > > ushort getDefaultRenderablePriority(void) const; > > > > > void setDefaultQueueGroup(RenderQueueGroupID grp); > > > QueueGroupIterator _getQueueGroupIterator(void); > > > > void setSplitPassesByLightingType(bool split); > > > > > void setSplitNoShadowPasses(bool split); > }; > > >} ># 38 "../../OgreMain/include/OgreSceneManager.h" 2 ># 1 "../../OgreMain/include/OgreAnimationState.h" 1 ># 32 "../../OgreMain/include/OgreAnimationState.h" ># 1 "../../OgreMain/include/OgreController.h" 1 ># 32 "../../OgreMain/include/OgreController.h" >namespace Ogre { ># 46 "../../OgreMain/include/OgreController.h" > template <typename T> > class ControllerFunction > { > protected: > > bool mDeltaInput; > T mDeltaCount; > > > > T getAdjustedInput(T input) > { > if (mDeltaInput) > { > mDeltaCount += input; > > while (mDeltaCount >= 1.0) > mDeltaCount -= 1.0; > > return mDeltaCount; > } > else > { > return input; > } > } > > public: > > > > > > ControllerFunction(bool deltaInput) > { > mDeltaInput = deltaInput; > mDeltaCount = 0; > } > > virtual T calculate(T sourceValue) = 0; > }; > > > > > template <typename T> > class ControllerValue > { > > public: > virtual ~ControllerValue() { } > virtual T getValue(void) const = 0; > virtual void setValue(T value) = 0; > > }; ># 122 "../../OgreMain/include/OgreController.h" > template <typename T> > class Controller > { > protected: > > SharedPtr< ControllerValue<T> > mSource; > > SharedPtr< ControllerValue<T> > mDest; > > SharedPtr< ControllerFunction<T> > mFunc; > > bool mEnabled; > > > public: > > > > > > > Controller(SharedPtr< ControllerValue<T> > src, > SharedPtr< ControllerValue<T> > dest, SharedPtr< ControllerFunction<T> > func) > : mSource(src), mDest(dest), mFunc(func) > { > mEnabled = true; > } > > > > virtual ~Controller() {} > > > > void setSource(SharedPtr< ControllerValue<T> > src) > { > mSource = src; > } > > SharedPtr< ControllerValue<T> > getSource(void) const > { > return mSource; > } > > void setDestination(SharedPtr< ControllerValue<T> > dest) > { > mDest = dest; > } > > > SharedPtr< ControllerValue<T> > getDestination(void) const > { > return mDest; > } > > > bool getEnabled(void) const > { > return mEnabled; > } > > > void setEnabled(bool enabled) > { > mEnabled = enabled; > } > > > > void setFunction(SharedPtr< ControllerFunction<T> > func) > { > mFunc = func; > } > > > > SharedPtr< ControllerFunction<T> > getFunction(void) const > { > return mFunc; > } > > > > > > > void update(void) > { > if(mEnabled) > mDest->setValue(mFunc->calculate(mSource->getValue())); > } > > }; > > >} ># 33 "../../OgreMain/include/OgreAnimationState.h" 2 > > >namespace Ogre { ># 44 "../../OgreMain/include/OgreAnimationState.h" > class AnimationState : public ControllerValue<Real> > { > public: > > AnimationState(); > > > > virtual ~AnimationState(); > > > AnimationState(const String& animName, Real timePos, Real length, Real weight = 1.0, bool enabled = false); > > const String& getAnimationName() const; > > void setAnimationName(const String& name); > > Real getTimePosition(void) const; > > void setTimePosition(Real timePos); > > Real getLength() const; > > void setLength(Real len); > > Real getWeight(void) const; > > void setWeight(Real weight); > > > > > void addTime(Real offset); > > > bool getEnabled(void) const; > > void setEnabled(bool enabled); > > > bool operator==(const AnimationState& rhs) const; > > bool operator!=(const AnimationState& rhs) const; > > > Real getValue(void) const; > > > void setValue(Real value); > > > > void setLoop(bool loop) { mLoop = loop; } > > bool getLoop(void) const { return mLoop; } > > > > > > void copyStateFrom(const AnimationState& animState); > > protected: > String mAnimationName; > Real mTimePos; > Real mLength; > Real mInvLength; > Real mWeight; > bool mEnabled; > bool mLoop; > > }; > > > typedef std::map<String, AnimationState> AnimationStateSet; > typedef MapIterator<AnimationStateSet> AnimationStateIterator; ># 128 "../../OgreMain/include/OgreAnimationState.h" > void CopyAnimationStateSubset(AnimationStateSet& target, const AnimationStateSet& source); > >} ># 39 "../../OgreMain/include/OgreSceneManager.h" 2 ># 1 "../../OgreMain/include/OgreSceneQuery.h" 1 ># 30 "../../OgreMain/include/OgreSceneQuery.h" ># 1 "../../OgreMain/include/OgreSphere.h" 1 ># 33 "../../OgreMain/include/OgreSphere.h" >namespace Ogre { ># 42 "../../OgreMain/include/OgreSphere.h" > class Sphere > { > protected: > Real mRadius; > Vector3 mCenter; > public: > > Sphere() : mRadius(1.0), mCenter(Vector3::ZERO) {} > > > > > Sphere(const Vector3& center, Real radius) > : mRadius(radius), mCenter(center) {} > > > Real getRadius(void) const { return mRadius; } > > > void setRadius(Real radius) { mRadius = radius; } > > > const Vector3& getCenter(void) const { return mCenter; } > > > void setCenter(const Vector3& center) { mCenter = center; } > > > bool intersects(const Sphere& s) const > { > return (s.mCenter - mCenter).length() <= > (s.mRadius + mRadius); > } > > bool intersects(const AxisAlignedBox& box) const > { > return Math::intersects(*this, box); > } > > bool intersects(const Plane& plane) const > { > return Math::intersects(*this, plane); > } > > bool intersects(const Vector3& v) const > { > return ((v - mCenter).length() <= mRadius); > } > > > }; > >} ># 31 "../../OgreMain/include/OgreSceneQuery.h" 2 ># 1 "../../OgreMain/include/OgreRay.h" 1 ># 32 "../../OgreMain/include/OgreRay.h" ># 1 "../../OgreMain/include/OgrePlaneBoundedVolume.h" 1 ># 35 "../../OgreMain/include/OgrePlaneBoundedVolume.h" >namespace Ogre { > > > > class PlaneBoundedVolume > { > public: > typedef std::vector<Plane> PlaneList; > > PlaneList planes; > Plane::Side outside; > > PlaneBoundedVolume() :outside(Plane::NEGATIVE_SIDE) {} > > PlaneBoundedVolume(Plane::Side theOutside) > : outside(theOutside) {} > > > > > inline bool intersects(const AxisAlignedBox& box) const > { > if (box.isNull()) return false; > > const Vector3* points = box.getAllCorners(); > PlaneList::const_iterator i, iend; > iend = planes.end(); > for (i = planes.begin(); i != iend; ++i) > { > const Plane& plane = *i; > > > > > bool splittingPlane = true; > for (int corner = 0; corner < 8; ++corner) > { > if (plane.getSide(points[corner]) != outside) > { > > splittingPlane = false; > break; > } > } > if (splittingPlane) > { > > return false; > } > } > > > return true; > > } > > > > inline bool intersects(const Sphere& sphere) const > { > PlaneList::const_iterator i, iend; > iend = planes.end(); > for (i = planes.begin(); i != iend; ++i) > { > const Plane& plane = *i; > > > Real d = plane.getDistance(sphere.getCenter()); > > if (outside == Plane::NEGATIVE_SIDE) d = -d; > > if ( (d - sphere.getRadius()) > 0) > return false; > } > > return true; > > } > > > > > > inline std::pair<bool, Real> intersects(const Ray& ray) > { > return Math::intersects(ray, planes, outside == Plane::POSITIVE_SIDE); > } > > }; > > typedef std::vector<PlaneBoundedVolume> PlaneBoundedVolumeList; > > >} ># 33 "../../OgreMain/include/OgreRay.h" 2 > >namespace Ogre { > > > class Ray > { > protected: > Vector3 mOrigin; > Vector3 mDirection; > public: > Ray():mOrigin(Vector3::ZERO), mDirection(Vector3::UNIT_Z) {} > Ray(const Vector3& origin, const Vector3& direction) > :mOrigin(origin), mDirection(direction) {} > virtual ~Ray() {} > > > void setOrigin(const Vector3& origin) {mOrigin = origin;} > > const Vector3& getOrigin(void) const {return mOrigin;} > > > void setDirection(const Vector3& dir) {mDirection = dir;} > > const Vector3& getDirection(void) const {return mDirection;} > > > Vector3 getPoint(Real t) const { > return Vector3(mOrigin + (mDirection * t)); > } > > > Vector3 operator*(Real t) const { > return getPoint(t); > }; > > > > > > > > std::pair<bool, Real> intersects(const Plane& p) const > { > return Math::intersects(*this, p); > } > > > > > > > std::pair<bool, Real> intersects(const PlaneBoundedVolume& p) const > { > return Math::intersects(*this, p.planes, p.outside == Plane::POSITIVE_SIDE); > } > > > > > > > std::pair<bool, Real> intersects(const Sphere& s) const > { > return Math::intersects(*this, s); > } > > > > > > > std::pair<bool, Real> intersects(const AxisAlignedBox& box) const > { > return Math::intersects(*this, box); > } > > }; > >} ># 32 "../../OgreMain/include/OgreSceneQuery.h" 2 > > > >namespace Ogre { > > > class SceneQueryListener; ># 64 "../../OgreMain/include/OgreSceneQuery.h" > class SceneQuery > { > public: > > > > > > > enum WorldFragmentType { > > WFT_NONE, > > WFT_PLANE_BOUNDED_REGION, > > WFT_SINGLE_INTERSECTION, > > WFT_CUSTOM_GEOMETRY, > > WFT_RENDER_OPERATION > }; ># 99 "../../OgreMain/include/OgreSceneQuery.h" > struct WorldFragment { > > WorldFragmentType fragmentType; > > Vector3 singleIntersection; > > std::list<Plane>* planes; > > void* geometry; > > RenderOperation* renderOp; > > }; > protected: > SceneManager* mParentSceneMgr; > unsigned long mQueryMask; > std::set<WorldFragmentType> mSupportedWorldFragments; > WorldFragmentType mWorldFragmentType; > > public: > > SceneQuery(SceneManager* mgr); > virtual ~SceneQuery(); ># 132 "../../OgreMain/include/OgreSceneQuery.h" > virtual void setQueryMask(unsigned long mask); > > virtual unsigned long getQueryMask(void) const; ># 146 "../../OgreMain/include/OgreSceneQuery.h" > virtual void setWorldFragmentType(enum WorldFragmentType wft); > > > virtual WorldFragmentType getWorldFragmentType(void) const; > > > virtual const std::set<WorldFragmentType>* getSupportedWorldFragmentTypes(void) const > {return &mSupportedWorldFragments;} > > > }; > > > > > > > > class SceneQueryListener > { > public: > virtual ~SceneQueryListener() { } > > > > > > virtual bool queryResult(MovableObject* object) = 0; > > > > > > virtual bool queryResult(SceneQuery::WorldFragment* fragment) = 0; > > }; > > typedef std::list<MovableObject*> SceneQueryResultMovableList; > typedef std::list<SceneQuery::WorldFragment*> SceneQueryResultWorldFragmentList; > > struct SceneQueryResult > { > > SceneQueryResultMovableList movables; > > SceneQueryResultWorldFragmentList worldFragments; > }; > > > > > > > > class RegionSceneQuery > : public SceneQuery, public SceneQueryListener > { > protected: > SceneQueryResult* mLastResult; > public: > > RegionSceneQuery(SceneManager* mgr); > virtual ~RegionSceneQuery(); ># 217 "../../OgreMain/include/OgreSceneQuery.h" > virtual SceneQueryResult& execute(void); ># 226 "../../OgreMain/include/OgreSceneQuery.h" > virtual void execute(SceneQueryListener* listener) = 0; > > > > > virtual SceneQueryResult& getLastResults(void) const; > > > > > > > virtual void clearResults(void); > > > bool queryResult(MovableObject* first); > > bool queryResult(SceneQuery::WorldFragment* fragment); > }; > > > class AxisAlignedBoxSceneQuery : public RegionSceneQuery > { > protected: > AxisAlignedBox mAABB; > public: > AxisAlignedBoxSceneQuery(SceneManager* mgr); > virtual ~AxisAlignedBoxSceneQuery(); > > > void setBox(const AxisAlignedBox& box); > > > const AxisAlignedBox& getBox(void) const; > > }; > > > class SphereSceneQuery : public RegionSceneQuery > { > protected: > Sphere mSphere; > public: > SphereSceneQuery(SceneManager* mgr); > virtual ~SphereSceneQuery(); > > void setSphere(const Sphere& sphere); > > > const Sphere& getSphere() const; > > }; > > > > class PlaneBoundedVolumeListSceneQuery : public RegionSceneQuery > { > protected: > PlaneBoundedVolumeList mVolumes; > public: > PlaneBoundedVolumeListSceneQuery(SceneManager* mgr); > virtual ~PlaneBoundedVolumeListSceneQuery(); > > void setVolumes(const PlaneBoundedVolumeList& volumes); > > > const PlaneBoundedVolumeList& getVolumes() const; > > }; ># 312 "../../OgreMain/include/OgreSceneQuery.h" > class RaySceneQueryListener > { > public: > virtual ~RaySceneQueryListener() { } > > > > > > > virtual bool queryResult(MovableObject* obj, Real distance) = 0; > > > > > > > > virtual bool queryResult(SceneQuery::WorldFragment* fragment, Real distance) = 0; > > }; > > > struct RaySceneQueryResultEntry > { > > Real distance; > > MovableObject* movable; > > SceneQuery::WorldFragment* worldFragment; > > bool operator < (const RaySceneQueryResultEntry& rhs) const > { > return this->distance < rhs.distance; > } > > }; > typedef std::list<RaySceneQueryResultEntry> RaySceneQueryResult; > > > class RaySceneQuery : public SceneQuery, public RaySceneQueryListener > { > protected: > Ray mRay; > bool mSortByDistance; > ushort mMaxResults; > RaySceneQueryResult* mLastResult; > > public: > RaySceneQuery(SceneManager* mgr); > virtual ~RaySceneQuery(); > > virtual void setRay(const Ray& ray); > > virtual const Ray& getRay(void) const; ># 386 "../../OgreMain/include/OgreSceneQuery.h" > virtual void setSortByDistance(bool sort, ushort maxresults = 0); > > virtual bool getSortByDistance(void) const; > > > virtual ushort getMaxResults(void) const; ># 400 "../../OgreMain/include/OgreSceneQuery.h" > virtual RaySceneQueryResult& execute(void); ># 409 "../../OgreMain/include/OgreSceneQuery.h" > virtual void execute(RaySceneQueryListener* listener) = 0; > > > > > virtual RaySceneQueryResult& getLastResults(void) const; > > > > > > > virtual void clearResults(void); > > > bool queryResult(MovableObject* obj, Real distance); > > bool queryResult(SceneQuery::WorldFragment* fragment, Real distance); > > > > > }; > > > > > > > class IntersectionSceneQueryListener > { > public: > virtual ~IntersectionSceneQueryListener() { } > > > > > > > virtual bool queryResult(MovableObject* first, MovableObject* second) = 0; > > > > > > > > virtual bool queryResult(MovableObject* movable, SceneQuery::WorldFragment* fragment) = 0; > > > > > > > }; > > typedef std::pair<MovableObject*, MovableObject*> SceneQueryMovableObjectPair; > typedef std::pair<MovableObject*, SceneQuery::WorldFragment*> SceneQueryMovableObjectWorldFragmentPair; > typedef std::list<SceneQueryMovableObjectPair> SceneQueryMovableIntersectionList; > typedef std::list<SceneQueryMovableObjectWorldFragmentPair> SceneQueryMovableWorldFragmentIntersectionList; > > struct IntersectionSceneQueryResult > { > > SceneQueryMovableIntersectionList movables2movables; > > SceneQueryMovableWorldFragmentIntersectionList movables2world; > > > > }; ># 489 "../../OgreMain/include/OgreSceneQuery.h" > class IntersectionSceneQuery > : public SceneQuery, public IntersectionSceneQueryListener > { > protected: > IntersectionSceneQueryResult* mLastResult; > public: > IntersectionSceneQuery(SceneManager* mgr); > virtual ~IntersectionSceneQuery(); ># 506 "../../OgreMain/include/OgreSceneQuery.h" > virtual IntersectionSceneQueryResult& execute(void); ># 515 "../../OgreMain/include/OgreSceneQuery.h" > virtual void execute(IntersectionSceneQueryListener* listener) = 0; > > > > > virtual IntersectionSceneQueryResult& getLastResults(void) const; > > > > > > > virtual void clearResults(void); > > > bool queryResult(MovableObject* first, MovableObject* second); > > bool queryResult(MovableObject* movable, SceneQuery::WorldFragment* fragment); > }; > > >} ># 40 "../../OgreMain/include/OgreSceneManager.h" 2 ># 1 "../../OgreMain/include/OgreAutoParamDataSource.h" 1 ># 32 "../../OgreMain/include/OgreAutoParamDataSource.h" ># 1 "../../OgreMain/include/OgreLight.h" 1 ># 34 "../../OgreMain/include/OgreLight.h" ># 1 "../../OgreMain/include/OgreMovableObject.h" 1 ># 34 "../../OgreMain/include/OgreMovableObject.h" ># 1 "../../OgreMain/include/OgreShadowCaster.h" 1 ># 32 "../../OgreMain/include/OgreShadowCaster.h" >namespace Ogre { ># 43 "../../OgreMain/include/OgreShadowCaster.h" > class ShadowRenderable : public Renderable > { > protected: > MaterialPtr mMaterial; > RenderOperation mRenderOp; > ShadowRenderable* mLightCap; > public: > ShadowRenderable() : mMaterial(0), mLightCap(0) {} > virtual ~ShadowRenderable() { delete mLightCap; } > > > > void setMaterial(MaterialPtr& mat) { mMaterial = mat; } > > const MaterialPtr& getMaterial(void) const { return mMaterial; } > > void getRenderOperation(RenderOperation& op) { op = mRenderOp; } > > RenderOperation* getRenderOperationForUpdate(void) {return &mRenderOp;} > > void getWorldTransforms(Matrix4* xform) const = 0; > > const Quaternion& getWorldOrientation(void) const = 0; > > const Vector3& getWorldPosition(void) const = 0; > > Real getSquaredViewDepth(const Camera* cam) const{ return 0; } > > const LightList& getLights(void) const; ># 82 "../../OgreMain/include/OgreShadowCaster.h" > bool isLightCapSeparate(void) const { return mLightCap != 0; } > > > ShadowRenderable* getLightCapRenderable(void) { return mLightCap; } > > virtual bool isVisible(void) const { return true; } > > }; > > > enum ShadowRenderableFlags > { > > SRF_INCLUDE_LIGHT_CAP = 0x00000001, > > SRF_INCLUDE_DARK_CAP = 0x00000002, > > SRF_EXTRUDE_TO_INFINITY = 0x00000004 > }; > > > > class ShadowCaster > { > public: > virtual ~ShadowCaster() { } > > virtual bool getCastShadows(void) const = 0; > > > virtual EdgeData* getEdgeList(void) = 0; > > > virtual const AxisAlignedBox& getWorldBoundingBox(bool derive = false) const = 0; > > virtual const AxisAlignedBox& getLightCapBounds(void) const = 0; > > virtual const AxisAlignedBox& getDarkCapBounds(const Light& light, Real dirLightExtrusionDist) const = 0; > > typedef std::vector<ShadowRenderable*> ShadowRenderableList; > typedef VectorIterator<ShadowRenderableList> ShadowRenderableListIterator; ># 139 "../../OgreMain/include/OgreShadowCaster.h" > virtual ShadowRenderableListIterator getShadowVolumeRenderableIterator( > ShadowTechnique shadowTechnique, const Light* light, > HardwareIndexBufferSharedPtr* indexBuffer, > bool extrudeVertices, Real extrusionDistance, unsigned long flags = 0 ) = 0; ># 163 "../../OgreMain/include/OgreShadowCaster.h" > static void extrudeVertices(HardwareVertexBufferSharedPtr vertexBuffer, > size_t originalVertexCount, const Vector4& lightPos, Real extrudeDist); > > virtual Real getPointExtrusionDistance(const Light* l) const = 0; > protected: > > Real getExtrusionDistance(const Vector3& objectPos, const Light* light) const; > > > > > > > > virtual void updateEdgeListLightFacing(EdgeData* edgeData, > const Vector4& lightPos); ># 193 "../../OgreMain/include/OgreShadowCaster.h" > virtual void generateShadowVolume(EdgeData* edgeData, > HardwareIndexBufferSharedPtr indexBuffer, const Light* light, > ShadowRenderableList& shadowRenderables, unsigned long flags); > > > > > > > virtual void extrudeBounds(AxisAlignedBox& box, const Vector4& lightPos, > Real extrudeDist) const; > > > }; >} ># 35 "../../OgreMain/include/OgreMovableObject.h" 2 > >namespace Ogre { > > > > > > > > class MovableObject : public ShadowCaster > { > protected: > > Node* mParentNode; > bool mParentIsTagPoint; > > bool mVisible; > > UserDefinedObject *mUserObject; > > RenderQueueGroupID mRenderQueueID; > > bool mRenderQueueIDSet; > > unsigned long mQueryFlags; > > mutable AxisAlignedBox mWorldAABB; > > mutable Sphere mWorldBoundingSphere; > > mutable AxisAlignedBox mWorldDarkCapBounds; > > bool mCastShadows; > > > public: > > MovableObject(); > > > > virtual ~MovableObject(); > > > virtual const String& getName(void) const = 0; > > > virtual const String& getMovableType(void) const = 0; > > > > > > > > virtual Node* getParentNode(void) const; ># 99 "../../OgreMain/include/OgreMovableObject.h" > virtual SceneNode* getParentSceneNode(void) const; > > > > virtual void _notifyAttached(Node* parent, bool isTagPoint = false); > > > virtual bool isAttached(void) const; > > > > > virtual bool isInScene(void) const; > > > > > > > virtual void _notifyCurrentCamera(Camera* cam) = 0; > > > > > > virtual const AxisAlignedBox& getBoundingBox(void) const = 0; > > > > > virtual Real getBoundingRadius(void) const = 0; > > > virtual const AxisAlignedBox& getWorldBoundingBox(bool derive = false) const; > > virtual const Sphere& getWorldBoundingSphere(bool derive = false) const; > > > > > > virtual void _updateRenderQueue(RenderQueue* queue) = 0; > > > virtual void setVisible(bool visible); > > > virtual bool isVisible(void) const; > > > > > > > > virtual void setUserObject(UserDefinedObject* obj) { mUserObject = obj; } > > > > virtual UserDefinedObject* getUserObject(void) { return mUserObject; } ># 171 "../../OgreMain/include/OgreMovableObject.h" > virtual void setRenderQueueGroup(RenderQueueGroupID queueID); > > > virtual RenderQueueGroupID getRenderQueueGroup(void) const; > > > virtual Matrix4 _getParentNodeFullTransform(void) const; ># 186 "../../OgreMain/include/OgreMovableObject.h" > virtual void setQueryFlags(unsigned long flags) { mQueryFlags = flags; } > > > > virtual void addQueryFlags(unsigned long flags) { mQueryFlags |= flags; } > > > > virtual void removeQueryFlags(unsigned long flags) { mQueryFlags &= ~flags; } > > > virtual unsigned long getQueryFlags(void) const { return mQueryFlags; } > > > EdgeData* getEdgeList(void) { return __null; } > > ShadowRenderableListIterator getShadowVolumeRenderableIterator( > ShadowTechnique shadowTechnique, const Light* light, > HardwareIndexBufferSharedPtr* indexBuffer, > bool extrudeVertices, Real extrusionDist, unsigned long flags = 0); > > > const AxisAlignedBox& getLightCapBounds(void) const; > > const AxisAlignedBox& getDarkCapBounds(const Light& light, Real dirLightExtrusionDist) const; ># 223 "../../OgreMain/include/OgreMovableObject.h" > void setCastShadows(bool enabled) { mCastShadows = enabled; } > > bool getCastShadows(void) const { return mCastShadows; } > > Real getPointExtrusionDistance(const Light* l) const; > > > > > > }; > >} ># 35 "../../OgreMain/include/OgreLight.h" 2 > > >namespace Ogre { ># 62 "../../OgreMain/include/OgreLight.h" > class Light : public MovableObject > { > public: > > Real tempSquareDist; > > > enum LightTypes > { > > LT_POINT, > > LT_DIRECTIONAL, > > LT_SPOTLIGHT > }; > > > > Light(); > > > > Light(const String& name); > > > > ~Light(); > > > > const String& getName(void) const; > > > > void setType(LightTypes type); > > > > LightTypes getType(void) const; ># 112 "../../OgreMain/include/OgreLight.h" > void setDiffuseColour(Real red, Real green, Real blue); ># 123 "../../OgreMain/include/OgreLight.h" > void setDiffuseColour(const ColourValue& colour); > > > > const ColourValue& getDiffuseColour(void) const; ># 138 "../../OgreMain/include/OgreLight.h" > void setSpecularColour(Real red, Real green, Real blue); ># 149 "../../OgreMain/include/OgreLight.h" > void setSpecularColour(const ColourValue& colour); > > > > const ColourValue& getSpecularColour(void) const; ># 174 "../../OgreMain/include/OgreLight.h" > void setAttenuation(Real range, Real constant, Real linear, Real quadratic); > > > > Real getAttenuationRange(void) const; > > > > Real getAttenuationConstant(void) const; > > > > Real getAttenuationLinear(void) const; > > > > Real getAttenuationQuadric(void) const; > > > > > > > > void setPosition(Real x, Real y, Real z); > > > > > > > > void setPosition(const Vector3& vec); > > > > > > const Vector3& getPosition(void) const; > > > > > > > > void setDirection(Real x, Real y, Real z); > > > > > > > > void setDirection(const Vector3& vec); > > > > > > const Vector3& getDirection(void) const; ># 244 "../../OgreMain/include/OgreLight.h" > void setSpotlightRange(const Radian& innerAngle, const Radian& outerAngle, Real falloff = 1.0); ># 253 "../../OgreMain/include/OgreLight.h" > const Radian& getSpotlightInnerAngle(void) const; > > > > const Radian& getSpotlightOuterAngle(void) const; > > > > Real getSpotlightFalloff(void) const; > > > void _notifyCurrentCamera(Camera* cam); > > > const AxisAlignedBox& getBoundingBox(void) const; > > > void _updateRenderQueue(RenderQueue* queue); > > > const String& getMovableType(void) const; > > > const Vector3& getDerivedPosition(void) const; > > > const Vector3& getDerivedDirection(void) const; > > > > > > > void setVisible(bool visible); > > > Real getBoundingRadius(void) const { return 0; } ># 299 "../../OgreMain/include/OgreLight.h" > Vector4 getAs4DVector(void) const; ># 310 "../../OgreMain/include/OgreLight.h" > const PlaneBoundedVolume& _getNearClipVolume(const Camera* const cam) const; > > > > > > > > const PlaneBoundedVolumeList& _getFrustumClipVolumes(const Camera* const cam) const; > > > > private: > > void update(void) const; > String mName; > > LightTypes mLightType; > Vector3 mPosition; > ColourValue mDiffuse; > ColourValue mSpecular; > > Vector3 mDirection; > > Radian mSpotOuter; > Radian mSpotInner; > Real mSpotFalloff; > Real mRange; > Real mAttenuationConst; > Real mAttenuationLinear; > Real mAttenuationQuad; > > mutable Vector3 mDerivedPosition; > mutable Vector3 mDerivedDirection; > > mutable Quaternion mLastParentOrientation; > mutable Vector3 mLastParentPosition; > > > static String msMovableType; > > mutable PlaneBoundedVolume mNearClipVolume; > mutable PlaneBoundedVolumeList mFrustumClipVolumes; > > mutable bool mLocalTransformDirty; > > > > }; >} ># 33 "../../OgreMain/include/OgreAutoParamDataSource.h" 2 > > >namespace Ogre { ># 48 "../../OgreMain/include/OgreAutoParamDataSource.h" > class AutoParamDataSource > { > protected: > mutable Matrix4 mWorldMatrix[256]; > mutable size_t mWorldMatrixCount; > mutable Matrix4 mWorldViewMatrix; > mutable Matrix4 mViewProjMatrix; > mutable Matrix4 mWorldViewProjMatrix; > mutable Matrix4 mInverseWorldMatrix; > mutable Matrix4 mInverseWorldViewMatrix; > mutable Matrix4 mInverseViewMatrix; > mutable Matrix4 mInverseTransposeWorldMatrix; > mutable Matrix4 mInverseTransposeWorldViewMatrix; > mutable Vector4 mCameraPositionObjectSpace; > mutable Matrix4 mTextureViewProjMatrix; > mutable Matrix4 mProjectionMatrix; > mutable Real mDirLightExtrusionDistance; > mutable Vector4 mCameraPosition; > > mutable bool mWorldMatrixDirty; > mutable bool mWorldViewMatrixDirty; > mutable bool mViewProjMatrixDirty; > mutable bool mWorldViewProjMatrixDirty; > mutable bool mInverseWorldMatrixDirty; > mutable bool mInverseWorldViewMatrixDirty; > mutable bool mInverseViewMatrixDirty; > mutable bool mInverseTransposeWorldMatrixDirty; > mutable bool mInverseTransposeWorldViewMatrixDirty; > mutable bool mCameraPositionObjectSpaceDirty; > mutable bool mCameraPositionDirty; > mutable bool mTextureViewProjMatrixDirty; > mutable ColourValue mAmbientLight; > > const Renderable* mCurrentRenderable; > const Camera* mCurrentCamera; > const LightList* mCurrentLightList; > const Frustum* mCurrentTextureProjector; > const RenderTarget* mCurrentRenderTarget; > > Light mBlankLight; > public: > AutoParamDataSource(); > ~AutoParamDataSource(); > > void setCurrentRenderable(const Renderable* rend); > > void setCurrentCamera(const Camera* cam); > > void setCurrentLightList(const LightList* ll); > > void setTextureProjector(const Frustum* frust); > > void setCurrentRenderTarget(const RenderTarget* target); > > void setShadowDirLightExtrusionDistance(Real dist); > > const Matrix4& getWorldMatrix(void) const; > const Matrix4* getWorldMatrixArray(void) const; > size_t getWorldMatrixCount(void) const; > const Matrix4& getViewMatrix(void) const; > const Matrix4& getViewProjectionMatrix(void) const; > const Matrix4& getProjectionMatrix(void) const; > const Matrix4& getWorldViewProjMatrix(void) const; > const Matrix4& getWorldViewMatrix(void) const; > const Matrix4& getInverseWorldMatrix(void) const; > const Matrix4& getInverseWorldViewMatrix(void) const; > const Matrix4& getInverseViewMatrix(void) const; > const Matrix4& getInverseTransposeWorldMatrix(void) const; > const Matrix4& getInverseTransposeWorldViewMatrix(void) const; > const Vector4& getCameraPosition(void) const; > const Vector4& getCameraPositionObjectSpace(void) const; > > const Light& getLight(size_t index) const; > void setAmbientLightColour(const ColourValue& ambient); > const ColourValue& getAmbientLightColour(void) const; > const Matrix4& getTextureViewProjMatrix(void) const; > const RenderTarget* getCurrentRenderTarget(void) const; > const Renderable* getCurrentRenderable(void) const; > Real getShadowExtrusionDistance(void) const; > Matrix4 getInverseViewProjMatrix(void) const; > Matrix4 getInverseTransposeViewProjMatrix() const; > Matrix4 getTransposeViewProjMatrix() const; > Matrix4 getTransposeViewMatrix() const; > Matrix4 getTransposeProjectionMatrix() const; > Matrix4 getInverseProjectionMatrix() const; > Matrix4 getInverseTransposeProjectionMatrix() const; > Matrix4 getTransposeWorldViewProjMatrix() const; > Matrix4 getInverseWorldViewProjMatrix() const; > Matrix4 getInverseTransposeWorldViewProjMatrix() const; > Matrix4 getTransposeWorldViewMatrix() const; > Matrix4 getTransposeWorldMatrix() const; > Real getTime_0_X(Real x) const; > Real getCosTime_0_X(Real x) const; > Real getSinTime_0_X(Real x) const; > Real getTanTime_0_X(Real x) const; > Vector4 getTime_0_X_packed(Real x) const; > Real getTime_0_1(Real x) const; > Real getCosTime_0_1(Real x) const; > Real getSinTime_0_1(Real x) const; > Real getTanTime_0_1(Real x) const; > Vector4 getTime_0_1_packed(Real x) const; > Real getTime_0_2Pi(Real x) const; > Real getCosTime_0_2Pi(Real x) const; > Real getSinTime_0_2Pi(Real x) const; > Real getTanTime_0_2Pi(Real x) const; > Vector4 getTime_0_2Pi_packed(Real x) const; > Real getFPS() const; > Real getViewportWidth() const; > Real getViewportHeight() const; > Real getInverseViewportWidth() const; > Real getInverseViewportHeight() const; > Vector3 getViewDirection() const; > Vector3 getViewSideVector() const; > Vector3 getViewUpVector() const; > Real getFOV() const; > Real getNearClipDistance() const; > Real getFarClipDistance() const; > }; >} ># 41 "../../OgreMain/include/OgreSceneManager.h" 2 > > ># 1 "../../OgreMain/include/OgreRenderQueueSortingGrouping.h" 1 ># 32 "../../OgreMain/include/OgreRenderQueueSortingGrouping.h" ># 1 "../../OgreMain/include/OgreTechnique.h" 1 ># 32 "../../OgreMain/include/OgreTechnique.h" ># 1 "../../OgreMain/include/OgrePass.h" 1 ># 35 "../../OgreMain/include/OgrePass.h" >namespace Ogre { ># 55 "../../OgreMain/include/OgrePass.h" > class Pass > { > protected: > Technique* mParent; > unsigned short mIndex; > unsigned long mHash; > > > ColourValue mAmbient; > ColourValue mDiffuse; > ColourValue mSpecular; > ColourValue mEmissive; > Real mShininess; > TrackVertexColourType mTracking; > > > > > SceneBlendFactor mSourceBlendFactor; > SceneBlendFactor mDestBlendFactor; > > > > > bool mDepthCheck; > bool mDepthWrite; > CompareFunction mDepthFunc; > ushort mDepthBias; > > > bool mColourWrite; > > > CompareFunction mAlphaRejectFunc; > unsigned char mAlphaRejectVal; > > > > > CullingMode mCullMode; > ManualCullingMode mManualCullMode; > > > > bool mLightingEnabled; > > unsigned short mMaxSimultaneousLights; > > bool mRunOncePerLight; > > bool mRunOnlyForOneLightType; > Light::LightTypes mOnlyLightType; > > > ShadeOptions mShadeOptions; > > > > bool mFogOverride; > FogMode mFogMode; > ColourValue mFogColour; > Real mFogStart; > Real mFogEnd; > Real mFogDensity; > > > > typedef std::vector<TextureUnitState*> TextureUnitStates; > TextureUnitStates mTextureUnitStates; > > > GpuProgramUsage *mVertexProgramUsage; > > GpuProgramUsage *mShadowCasterVertexProgramUsage; > > GpuProgramUsage *mShadowReceiverVertexProgramUsage; > > GpuProgramUsage *mFragmentProgramUsage; > > bool mQueuedForDeletion; > public: > typedef std::set<Pass*> PassSet; > protected: > > static PassSet msDirtyHashList; > > static PassSet msPassGraveyard; > public: > > Pass(Technique* parent, unsigned short index); > > Pass(Technique* parent, unsigned short index, const Pass& oth ); > > Pass& operator=(const Pass& oth); > ~Pass(); > > > bool isProgrammable(void) const { return mVertexProgramUsage || mFragmentProgramUsage; } > > > bool hasVertexProgram(void) const { return mVertexProgramUsage != __null; } > > > bool hasFragmentProgram(void) const { return mFragmentProgramUsage != __null; } > > > unsigned short getIndex(void) const { return mIndex; } ># 173 "../../OgreMain/include/OgrePass.h" > void setAmbient(Real red, Real green, Real blue); ># 187 "../../OgreMain/include/OgrePass.h" > void setAmbient(const ColourValue& ambient); ># 199 "../../OgreMain/include/OgrePass.h" > void setDiffuse(Real red, Real green, Real blue, Real alpha); ># 211 "../../OgreMain/include/OgrePass.h" > void setDiffuse(const ColourValue& diffuse); ># 225 "../../OgreMain/include/OgrePass.h" > void setSpecular(Real red, Real green, Real blue, Real alpha); ># 239 "../../OgreMain/include/OgrePass.h" > void setSpecular(const ColourValue& specular); > > > > > > > void setShininess(Real val); ># 257 "../../OgreMain/include/OgrePass.h" > void setSelfIllumination(Real red, Real green, Real blue); ># 268 "../../OgreMain/include/OgrePass.h" > void setSelfIllumination(const ColourValue& selfIllum); > > > > void setVertexColourTracking(TrackVertexColourType tracking); > > > > const ColourValue& getAmbient(void) const; > > > > const ColourValue& getDiffuse(void) const; > > > > const ColourValue& getSpecular(void) const; > > > > const ColourValue& getSelfIllumination(void) const; > > > > Real getShininess(void) const; > > > > TrackVertexColourType getVertexColourTracking(void) const; > > > > > > TextureUnitState* createTextureUnitState(void); ># 313 "../../OgreMain/include/OgrePass.h" > TextureUnitState* createTextureUnitState( const String& textureName, unsigned short texCoordSet = 0); > > void addTextureUnitState(TextureUnitState* state); > > > TextureUnitState* getTextureUnitState(unsigned short index); > > typedef VectorIterator<TextureUnitStates> TextureUnitStateIterator; > > TextureUnitStateIterator getTextureUnitStateIterator(void); > > > > > > void removeTextureUnitState(unsigned short index); > > > > void removeAllTextureUnitStates(void); > > > > size_t getNumTextureUnitStates(void) const > { > return mTextureUnitStates.size(); > } ># 357 "../../OgreMain/include/OgrePass.h" > void setSceneBlending( const SceneBlendType sbt ); ># 381 "../../OgreMain/include/OgrePass.h" > void setSceneBlending( const SceneBlendFactor sourceFactor, const SceneBlendFactor destFactor); > > > > SceneBlendFactor getSourceBlendFactor() const; > > > > SceneBlendFactor getDestBlendFactor() const; > > > bool isTransparent(void) const; ># 405 "../../OgreMain/include/OgrePass.h" > void setDepthCheckEnabled(bool enabled); > > > > > > bool getDepthCheckEnabled(void) const; ># 423 "../../OgreMain/include/OgrePass.h" > void setDepthWriteEnabled(bool enabled); > > > > > > bool getDepthWriteEnabled(void) const; ># 438 "../../OgreMain/include/OgrePass.h" > void setDepthFunction( CompareFunction func ); > > > > > CompareFunction getDepthFunction(void) const; ># 455 "../../OgreMain/include/OgrePass.h" > void setColourWriteEnabled(bool enabled); > > bool getColourWriteEnabled(void) const; ># 472 "../../OgreMain/include/OgrePass.h" > void setCullingMode( CullingMode mode ); > > > > CullingMode getCullingMode(void) const; ># 491 "../../OgreMain/include/OgrePass.h" > void setManualCullingMode( ManualCullingMode mode ); > > > > > > ManualCullingMode getManualCullingMode(void) const; ># 507 "../../OgreMain/include/OgrePass.h" > void setLightingEnabled(bool enabled); > > > > bool getLightingEnabled(void) const; ># 521 "../../OgreMain/include/OgrePass.h" > void setMaxSimultaneousLights(unsigned short maxLights); > > unsigned short getMaxSimultaneousLights(void) const; > > > > > > void setShadingMode( ShadeOptions mode ); > > > > ShadeOptions getShadingMode(void) const; ># 565 "../../OgreMain/include/OgrePass.h" > void setFog( > bool overrideScene, > FogMode mode = FOG_NONE, > const ColourValue& colour = ColourValue::White, > Real expDensity = 0.001, Real linearStart = 0.0, Real linearEnd = 1.0 ); > > > > bool getFogOverride(void) const; > > > > > > FogMode getFogMode(void) const; > > > > const ColourValue& getFogColour(void) const; > > > > > > Real getFogStart(void) const; > > > > > > Real getFogEnd(void) const; > > > > > > Real getFogDensity(void) const; ># 615 "../../OgreMain/include/OgrePass.h" > void setDepthBias(ushort bias); > > > ushort getDepthBias(void) const; ># 628 "../../OgreMain/include/OgrePass.h" > void setAlphaRejectSettings(CompareFunction func, unsigned char value); > > > > void setAlphaRejectFunction(CompareFunction func); > > > > void setAlphaRejectValue(unsigned char val); > > > > CompareFunction getAlphaRejectFunction(void) const { return mAlphaRejectFunc; } > > > > unsigned char getAlphaRejectValue(void) const { return mAlphaRejectVal; } ># 680 "../../OgreMain/include/OgrePass.h" > void setRunOncePerLight(bool enabled, > bool onlyForOneLightType = true, Light::LightTypes lightType = Light::LT_POINT); > > > bool getRunOncePerLight(void) const { return mRunOncePerLight; } > > bool getRunOnlyForOneLightType(void) const { return mRunOnlyForOneLightType; } > > > Light::LightTypes getOnlyLightType() const { return mOnlyLightType; } > > > Technique* getParent(void) { return mParent; } > > > const String& getResourceGroup(void) const; ># 713 "../../OgreMain/include/OgrePass.h" > void setVertexProgram(const String& name, bool resetParams = true); > > > > > > > void setVertexProgramParameters(GpuProgramParametersSharedPtr params); > > const String& getVertexProgramName(void) const; > > GpuProgramParametersSharedPtr getVertexProgramParameters(void); > > const GpuProgramPtr& getVertexProgram(void); ># 758 "../../OgreMain/include/OgrePass.h" > void setShadowCasterVertexProgram(const String& name); > > > > > > > void setShadowCasterVertexProgramParameters(GpuProgramParametersSharedPtr params); > > const String& getShadowCasterVertexProgramName(void) const; > > GpuProgramParametersSharedPtr getShadowCasterVertexProgramParameters(void); > > > const GpuProgramPtr& getShadowCasterVertexProgram(void); ># 799 "../../OgreMain/include/OgrePass.h" > void setShadowReceiverVertexProgram(const String& name); > > > > > > > void setShadowReceiverVertexProgramParameters(GpuProgramParametersSharedPtr params); > > const String& getShadowReceiverVertexProgramName(void) const; > > GpuProgramParametersSharedPtr getShadowReceiverVertexProgramParameters(void); > > > const GpuProgramPtr& getShadowReceiverVertexProgram(void); ># 832 "../../OgreMain/include/OgrePass.h" > void setFragmentProgram(const String& name, bool resetParams = true); > > > > > void setFragmentProgramParameters(GpuProgramParametersSharedPtr params); > > const String& getFragmentProgramName(void) const; > > GpuProgramParametersSharedPtr getFragmentProgramParameters(void); > > const GpuProgramPtr& getFragmentProgram(void); ># 856 "../../OgreMain/include/OgrePass.h" > Pass* _split(unsigned short numUnits); > > > void _load(void); > > void _unload(void); > > bool isLoaded(void) const; > > > > > > > > unsigned long getHash(void) const; > > void _dirtyHash(void); > > > > > > > void _recalculateHash(void); > > void _notifyNeedsRecompile(void); > > > void _updateAutoParamsNoLights(const AutoParamDataSource& source); > > void _updateAutoParamsLightsOnly(const AutoParamDataSource& source); ># 897 "../../OgreMain/include/OgrePass.h" > void setTextureFiltering(TextureFilterOptions filterType); ># 906 "../../OgreMain/include/OgrePass.h" > void setTextureAnisotropy(unsigned int maxAniso); > > > > static const PassSet& getDirtyHashList(void) > { return msDirtyHashList; } > > > static const PassSet& getPassGraveyard(void) > { return msPassGraveyard; } > > > > > > > > static void clearDirtyHashList(void) { msDirtyHashList.clear(); } > > > static void processPendingPassUpdates(void); > > > void queueForDeletion(void); > > > > bool isAmbientOnly(void) const; > > > }; > > enum IlluminationStage > { > > IS_AMBIENT, > > IS_PER_LIGHT, > > IS_DECAL > }; ># 956 "../../OgreMain/include/OgrePass.h" > struct IlluminationPass > { > IlluminationStage stage; > > Pass* pass; > > bool destroyOnShutdown; > > Pass* originalPass; > }; > > typedef std::vector<IlluminationPass*> IlluminationPassList; > > >} ># 33 "../../OgreMain/include/OgreTechnique.h" 2 > >namespace Ogre { > > > > > > > class Technique > { > protected: > typedef std::vector<Pass*> Passes; > > Passes mPasses; > > IlluminationPassList mIlluminationPasses; > Material* mParent; > bool mIsSupported; > unsigned short mLodIndex; > > > void clearIlluminationPasses(void); > public: > > Technique(Material* parent); > > Technique(Material* parent, const Technique& oth); > ~Technique(); > > > > > > bool isSupported(void) const; > > void _compile(bool autoManageTextureUnits); > > void _compileIlluminationPasses(void); ># 83 "../../OgreMain/include/OgreTechnique.h" > Pass* createPass(void); > > Pass* getPass(unsigned short index); > > unsigned short getNumPasses(void) const; > > void removePass(unsigned short index); > > void removeAllPasses(void); > typedef VectorIterator<Passes> PassIterator; > > const PassIterator getPassIterator(void); > typedef VectorIterator<IlluminationPassList> IlluminationPassIterator; > > const IlluminationPassIterator getIlluminationPassIterator(void); > > Material* getParent(void) const { return mParent; } > > > Technique& operator=(const Technique& rhs); > > > const String& getResourceGroup(void) const; ># 115 "../../OgreMain/include/OgreTechnique.h" > bool isTransparent(void) const; > > > void _load(void); > > void _unload(void); > > > bool isLoaded(void) const; > > > void _notifyNeedsRecompile(void); ># 142 "../../OgreMain/include/OgreTechnique.h" > void setAmbient(Real red, Real green, Real blue); ># 152 "../../OgreMain/include/OgreTechnique.h" > void setAmbient(const ColourValue& ambient); ># 162 "../../OgreMain/include/OgreTechnique.h" > void setDiffuse(Real red, Real green, Real blue, Real alpha); ># 172 "../../OgreMain/include/OgreTechnique.h" > void setDiffuse(const ColourValue& diffuse); ># 182 "../../OgreMain/include/OgreTechnique.h" > void setSpecular(Real red, Real green, Real blue, Real alpha); ># 192 "../../OgreMain/include/OgreTechnique.h" > void setSpecular(const ColourValue& specular); ># 202 "../../OgreMain/include/OgreTechnique.h" > void setShininess(Real val); ># 212 "../../OgreMain/include/OgreTechnique.h" > void setSelfIllumination(Real red, Real green, Real blue); ># 222 "../../OgreMain/include/OgreTechnique.h" > void setSelfIllumination(const ColourValue& selfIllum); ># 232 "../../OgreMain/include/OgreTechnique.h" > void setDepthCheckEnabled(bool enabled); ># 242 "../../OgreMain/include/OgreTechnique.h" > void setDepthWriteEnabled(bool enabled); ># 252 "../../OgreMain/include/OgreTechnique.h" > void setDepthFunction( CompareFunction func ); ># 262 "../../OgreMain/include/OgreTechnique.h" > void setColourWriteEnabled(bool enabled); ># 272 "../../OgreMain/include/OgreTechnique.h" > void setCullingMode( CullingMode mode ); ># 282 "../../OgreMain/include/OgreTechnique.h" > void setManualCullingMode( ManualCullingMode mode ); ># 292 "../../OgreMain/include/OgreTechnique.h" > void setLightingEnabled(bool enabled); ># 302 "../../OgreMain/include/OgreTechnique.h" > void setShadingMode( ShadeOptions mode ); ># 312 "../../OgreMain/include/OgreTechnique.h" > void setFog( > bool overrideScene, > FogMode mode = FOG_NONE, > const ColourValue& colour = ColourValue::White, > Real expDensity = 0.001, Real linearStart = 0.0, Real linearEnd = 1.0 ); ># 326 "../../OgreMain/include/OgreTechnique.h" > void setDepthBias(ushort bias); ># 336 "../../OgreMain/include/OgreTechnique.h" > void setTextureFiltering(TextureFilterOptions filterType); ># 345 "../../OgreMain/include/OgreTechnique.h" > void setTextureAnisotropy(unsigned int maxAniso); ># 355 "../../OgreMain/include/OgreTechnique.h" > void setSceneBlending( const SceneBlendType sbt ); ># 365 "../../OgreMain/include/OgreTechnique.h" > void setSceneBlending( const SceneBlendFactor sourceFactor, const SceneBlendFactor destFactor); ># 383 "../../OgreMain/include/OgreTechnique.h" > void setLodIndex(unsigned short index); > > unsigned short getLodIndex(void) const { return mLodIndex; } > > > bool isDepthWriteEnabled(void) const; > > > bool isDepthCheckEnabled(void) const; > > }; > > >} ># 33 "../../OgreMain/include/OgreRenderQueueSortingGrouping.h" 2 > ># 1 "../../OgreMain/include/OgreMaterialManager.h" 1 ># 34 "../../OgreMain/include/OgreMaterialManager.h" ># 1 "../../OgreMain/include/OgreMaterialSerializer.h" 1 ># 31 "../../OgreMain/include/OgreMaterialSerializer.h" ># 1 "../../OgreMain/include/OgreTextureUnitState.h" 1 ># 36 "../../OgreMain/include/OgreTextureUnitState.h" >namespace Ogre { ># 52 "../../OgreMain/include/OgreTextureUnitState.h" > class TextureUnitState > { > friend class RenderSystem; > public: > > > > > > enum TextureEffectType > { > > ET_ENVIRONMENT_MAP, > > ET_PROJECTIVE_TEXTURE, > > ET_SCROLL, > > ET_ROTATE, > > ET_TRANSFORM > > }; > > > > > > > enum EnvMapType > { > > ENV_PLANAR, > > ENV_CURVED, > > ENV_REFLECTION, > > ENV_NORMAL > }; > > > > > > > enum TextureTransformType > { > TT_TRANSLATE_U, > TT_TRANSLATE_V, > TT_SCALE_U, > TT_SCALE_V, > TT_ROTATE > }; > > > > > > > enum TextureAddressingMode > { > > TAM_WRAP, > > TAM_MIRROR, > > TAM_CLAMP > }; > > > > enum TextureCubeFace > { > CUBE_FRONT = 0, > CUBE_BACK = 1, > CUBE_LEFT = 2, > CUBE_RIGHT = 3, > CUBE_UP = 4, > CUBE_DOWN = 5 > }; > > > > struct TextureEffect { > TextureEffectType type; > int subtype; > Real arg1, arg2; > WaveformType waveType; > Real base; > Real frequency; > Real phase; > Real amplitude; > Controller<Real>* controller; > const Frustum* frustum; > }; > > > > > TextureUnitState(Pass* parent); > > TextureUnitState(Pass* parent, const TextureUnitState& oth ); > > TextureUnitState & operator = ( const TextureUnitState& oth ); > > > > ~TextureUnitState(); > > > > > > > > TextureUnitState( Pass* parent, const String& texName, unsigned int texCoordSet = 0); ># 178 "../../OgreMain/include/OgreTextureUnitState.h" > const String& getTextureName(void) const; > > > > > > > void setTextureName( const String& name, TextureType ttype = TEX_TYPE_2D, int mipmaps = -1 ); ># 233 "../../OgreMain/include/OgreTextureUnitState.h" > void setCubicTextureName( const String& name, bool forUVW = false ); ># 281 "../../OgreMain/include/OgreTextureUnitState.h" > void setCubicTextureName( const String* const names, bool forUVW = false ); ># 304 "../../OgreMain/include/OgreTextureUnitState.h" > void setAnimatedTextureName( const String& name, unsigned int numFrames, Real duration = 0 ); ># 327 "../../OgreMain/include/OgreTextureUnitState.h" > void setAnimatedTextureName( const String* const names, unsigned int numFrames, Real duration = 0 ); > > > > std::pair< uint, uint > getTextureDimensions( unsigned int frame = 0 ) const; ># 340 "../../OgreMain/include/OgreTextureUnitState.h" > void setCurrentFrame( unsigned int frameNumber ); > > > > > > unsigned int getCurrentFrame(void) const; > > > > > > const String& getFrameTextureName(unsigned int frameNumber) const; > > > > > > unsigned int getNumFrames(void) const; > > > > > > > > bool isCubic(void) const; > > > > > > bool is3D(void) const; > > > > > > TextureType getTextureType(void) const; > > > > > > unsigned int getTextureCoordSet(void) const; ># 393 "../../OgreMain/include/OgreTextureUnitState.h" > void setTextureCoordSet(unsigned int set); ># 410 "../../OgreMain/include/OgreTextureUnitState.h" > void setTextureTransform(const Matrix4& xform); ># 419 "../../OgreMain/include/OgreTextureUnitState.h" > const Matrix4& getTextureTransform(void); ># 433 "../../OgreMain/include/OgreTextureUnitState.h" > void setTextureScroll(Real u, Real v); > > > > > > void setTextureUScroll(Real value); > > Real getTextureUScroll(void) const; > > > > > > void setTextureVScroll(Real value); > > Real getTextureVScroll(void) const; > > > > > > void setTextureUScale(Real value); > > Real getTextureUScale(void) const; > > > > > > void setTextureVScale(Real value); > > Real getTextureVScale(void) const; ># 480 "../../OgreMain/include/OgreTextureUnitState.h" > void setTextureScale(Real uScale, Real vScale); ># 491 "../../OgreMain/include/OgreTextureUnitState.h" > void setTextureRotate(const Radian& angle); > > > > > > > const Radian& getTextureRotate(void) const; > > > > > > TextureAddressingMode getTextureAddressingMode(void) const; > > > > > > > > void setTextureAddressingMode( TextureAddressingMode tam); ># 578 "../../OgreMain/include/OgreTextureUnitState.h" > void setColourOperationEx( > LayerBlendOperationEx op, > LayerBlendSource source1 = LBS_TEXTURE, > LayerBlendSource source2 = LBS_CURRENT, > > const ColourValue& arg1 = ColourValue::White, > const ColourValue& arg2 = ColourValue::White, > > Real manualBlend = 0.0); ># 606 "../../OgreMain/include/OgreTextureUnitState.h" > void setColourOperation( const LayerBlendOperation op); ># 627 "../../OgreMain/include/OgreTextureUnitState.h" > void setColourOpMultipassFallback( const SceneBlendFactor sourceFactor, const SceneBlendFactor destFactor); > > > > const LayerBlendModeEx& getColourBlendMode(void) const; > > > > const LayerBlendModeEx& getAlphaBlendMode(void) const; > > > > SceneBlendFactor getColourBlendFallbackSrc(void) const; > > > > SceneBlendFactor getColourBlendFallbackDest(void) const; ># 670 "../../OgreMain/include/OgreTextureUnitState.h" > void setAlphaOperation(LayerBlendOperationEx op, > LayerBlendSource source1 = LBS_TEXTURE, > LayerBlendSource source2 = LBS_CURRENT, > Real arg1 = 1.0, > Real arg2 = 1.0, > Real manualBlend = 0.0); ># 688 "../../OgreMain/include/OgreTextureUnitState.h" > void addEffect(TextureEffect& effect); ># 717 "../../OgreMain/include/OgreTextureUnitState.h" > void setEnvironmentMap(bool enable, EnvMapType envMapType = ENV_CURVED); ># 729 "../../OgreMain/include/OgreTextureUnitState.h" > void setScrollAnimation(Real uSpeed, Real vSpeed); ># 739 "../../OgreMain/include/OgreTextureUnitState.h" > void setRotateAnimation(Real speed); ># 760 "../../OgreMain/include/OgreTextureUnitState.h" > void setTransformAnimation( const TextureTransformType ttype, > const WaveformType waveType, Real base = 0, Real frequency = 1, Real phase = 0, Real amplitude = 1 ); ># 782 "../../OgreMain/include/OgreTextureUnitState.h" > void setProjectiveTexturing(bool enabled, const Frustum* projectionSettings = 0); > > > > void removeAllEffects(void); > > > > > > > void removeEffect( const TextureEffectType type ); > > > > > > > bool isBlank(void) const; > > > > void setBlank(void); > > > std::multimap<TextureEffectType, TextureEffect> getEffects(void) const; > > Real getAnimationDuration(void) const; ># 820 "../../OgreMain/include/OgreTextureUnitState.h" > void setTextureFiltering(TextureFilterOptions filterType); > > > > > void setTextureFiltering(FilterType ftype, FilterOptions opts); ># 834 "../../OgreMain/include/OgreTextureUnitState.h" > void setTextureFiltering(FilterOptions minFilter, FilterOptions magFilter, FilterOptions mipFilter); > > FilterOptions getTextureFiltering(FilterType ftpye) const; > > > > > > > void setTextureAnisotropy(unsigned int maxAniso); > > unsigned int getTextureAnisotropy() const; > > > Pass* getParent(void) { return mParent; } > > > void _load(void); > > void _unload(void); > > bool hasViewRelativeTextureCoordinateGeneration(void); > > > bool isLoaded(void); > > void _notifyNeedsRecompile(void); > > >protected: > > > > > unsigned int mNumFrames; > > unsigned int mCurrentFrame; > > > > Real mAnimDuration; > bool mCubic; > > TextureType mTextureType; > int mTextureSrcMipmaps; > > unsigned int mTextureCoordSetIndex; > TextureAddressingMode mAddressMode; > > LayerBlendModeEx colourBlendMode; > SceneBlendFactor colourBlendFallbackSrc; > SceneBlendFactor colourBlendFallbackDest; > > LayerBlendModeEx alphaBlendMode; > bool mIsBlank; > > bool mRecalcTexMatrix; > Real mUMod, mVMod; > Real mUScale, mVScale; > Radian mRotate; > Matrix4 mTexModMatrix; > > > Real mUScrollAnim, mVScrollAnim; > Real mRotateAnim; > > > FilterOptions mMinFilter; > > FilterOptions mMagFilter; > > FilterOptions mMipFilter; > > unsigned int mMaxAniso; > > bool mIsDefaultAniso; > bool mIsDefaultFiltering; > > > > > > > String mFrames[32]; > > typedef std::multimap<TextureEffectType, TextureEffect> EffectMap; > EffectMap mEffects; > > > > > > > Pass* mParent; > Controller<Real>* mAnimController; > > > > > > void recalcTextureMatrix(void); > > > > void createAnimController(void); > > > > void createEffectController(TextureEffect& effect); > > > }; > > >} ># 32 "../../OgreMain/include/OgreMaterialSerializer.h" 2 > > > >namespace Ogre { > > > enum MaterialScriptSection > { > MSS_NONE, > MSS_MATERIAL, > MSS_TECHNIQUE, > MSS_PASS, > MSS_TEXTUREUNIT, > MSS_PROGRAM_REF, > MSS_PROGRAM, > MSS_DEFAULT_PARAMETERS, > MSS_TEXTURESOURCE > }; > > struct MaterialScriptProgramDefinition > { > String name; > GpuProgramType progType; > String language; > String source; > String syntax; > bool supportsSkeletalAnimation; > std::map<String, String> customParameters; > }; > > struct MaterialScriptContext > { > MaterialScriptSection section; > String groupName; > MaterialPtr material; > Technique* technique; > Pass* pass; > TextureUnitState* textureUnit; > GpuProgramPtr program; > bool isProgramShadowCaster; > bool isProgramShadowReceiver; > GpuProgramParametersSharedPtr programParams; > MaterialScriptProgramDefinition* programDef; > > int techLev, > passLev, > stateLev; > StringVector defaultParamLines; > > > size_t lineNo; > String filename; > }; > > typedef bool (*ATTRIBUTE_PARSER)(String& params, MaterialScriptContext& context); > > > class MaterialSerializer > { > protected: > > typedef std::map<String, ATTRIBUTE_PARSER> AttribParserList; > > MaterialScriptContext mScriptContext; > > > > > bool parseScriptLine(String& line); > > bool invokeParser(String& line, AttribParserList& parsers); > > > > void finishProgramDefinition(void); > > AttribParserList mRootAttribParsers; > > AttribParserList mMaterialAttribParsers; > > AttribParserList mTechniqueAttribParsers; > > AttribParserList mPassAttribParsers; > > AttribParserList mTextureUnitAttribParsers; > > AttribParserList mProgramRefAttribParsers; > > AttribParserList mProgramAttribParsers; > > AttribParserList mProgramDefaultParamAttribParsers; > > void writeMaterial(const MaterialPtr& pMat); > void writeTechnique(const Technique* pTech); > void writePass(const Pass* pPass); > void writeTextureUnit(const TextureUnitState *pTex); > > void writeSceneBlendFactor(const SceneBlendFactor sbf_src, const SceneBlendFactor sbf_dest); > void writeSceneBlendFactor(const SceneBlendFactor sbf); > void writeCompareFunction(const CompareFunction cf); > void writeColourValue(const ColourValue &colour, bool writeAlpha = false); > void writeLayerBlendOperationEx(const LayerBlendOperationEx op); > void writeLayerBlendSource(const LayerBlendSource lbs); > > typedef std::multimap<TextureUnitState::TextureEffectType, TextureUnitState::TextureEffect> EffectMap; > > void writeRotationEffect(const TextureUnitState::TextureEffect& effect, const TextureUnitState *pTex); > void writeTransformEffect(const TextureUnitState::TextureEffect& effect, const TextureUnitState *pTex); > void writeScrollEffect(const TextureUnitState::TextureEffect& effect, const TextureUnitState *pTex); > void writeEnvironmentMapEffect(const TextureUnitState::TextureEffect& effect, const TextureUnitState *pTex); > > String convertFiltering(FilterOptions fo); > public: > > MaterialSerializer(); > > virtual ~MaterialSerializer() {}; > > > void queueForExport(const MaterialPtr& pMat, bool clearQueued = false, bool exportDefaults = false); > > void exportQueued(const String& filename); > > void exportMaterial(const MaterialPtr& pMat, const String& filename, bool exportDefaults = false); > > const String &getQueuedAsString() const; > > void clearQueue(); > > > > void parseScript(DataStreamPtr& stream, const String& groupName); > > > > private: > String mBuffer; > bool mDefaults; > > void beginSection(unsigned short level) > { > mBuffer += "\n"; > for (unsigned short i = 0; i < level; ++i) > { > mBuffer += "\t"; > } > mBuffer += "{"; > } > void endSection(unsigned short level) > { > mBuffer += "\n"; > for (unsigned short i = 0; i < level; ++i) > { > mBuffer += "\t"; > } > mBuffer += "}"; > } > > void writeAttribute(unsigned short level, const String& att) > { > mBuffer += "\n"; > for (unsigned short i = 0; i < level; ++i) > { > mBuffer += "\t"; > } > mBuffer += att; > } > > void writeValue(const String& val) > { > mBuffer += (" " + val); > } > > void writeComment(unsigned short level, const String& comment) > { > mBuffer += "\n"; > for (unsigned short i = 0; i < level; ++i) > { > mBuffer += "\t"; > } > mBuffer += "// " + comment; > } > > }; >} ># 35 "../../OgreMain/include/OgreMaterialManager.h" 2 > >namespace Ogre { ># 54 "../../OgreMain/include/OgreMaterialManager.h" > class MaterialManager : public ResourceManager, public Singleton<MaterialManager> > { > protected: > > > FilterOptions mDefaultMinFilter; > > FilterOptions mDefaultMagFilter; > > FilterOptions mDefaultMipFilter; > > unsigned int mDefaultMaxAniso; > > > MaterialSerializer mSerializer; > > MaterialPtr mDefaultSettings; > > Resource* createImpl(const String& name, ResourceHandle handle, > const String& group, bool isManual, ManualResourceLoader* loader, > const NameValuePairList* params); > > public: > > > MaterialManager(); > > > > virtual ~MaterialManager(); > > > > void initialise(void); > > > > void parseScript(DataStreamPtr& stream, const String& groupName); ># 100 "../../OgreMain/include/OgreMaterialManager.h" > virtual void setDefaultTextureFiltering(TextureFilterOptions fo); > > > > > virtual void setDefaultTextureFiltering(FilterType ftype, FilterOptions opts); > > > > > virtual void setDefaultTextureFiltering(FilterOptions minFilter, FilterOptions magFilter, FilterOptions mipFilter); > > > virtual FilterOptions getDefaultTextureFiltering(FilterType ftype) const; > > > > > > > > void setDefaultAnisotropy(unsigned int maxAniso); > > unsigned int getDefaultAnisotropy() const; ># 155 "../../OgreMain/include/OgreMaterialManager.h" > virtual MaterialPtr getDefaultSettings(void) const { return mDefaultSettings; } ># 172 "../../OgreMain/include/OgreMaterialManager.h" > static MaterialManager& getSingleton(void); ># 188 "../../OgreMain/include/OgreMaterialManager.h" > static MaterialManager* getSingletonPtr(void); > > }; > >} ># 35 "../../OgreMain/include/OgreRenderQueueSortingGrouping.h" 2 > >namespace Ogre { ># 50 "../../OgreMain/include/OgreRenderQueueSortingGrouping.h" > class RenderPriorityGroup > { > > > > struct RenderablePass > { > > Renderable* renderable; > > Pass* pass; > > RenderablePass(Renderable* rend, Pass* p) :renderable(rend), pass(p) {} > }; > > > struct SolidQueueItemLess > { > bool operator()(const Pass* a, const Pass* b) const > { > > unsigned long hasha = a->getHash(); > unsigned long hashb = b->getHash(); > if (hasha == hashb) > { > > return a < b; > } > else > { > return hasha < hashb; > } > } > }; > > struct TransparentQueueItemLess > { > const Camera* camera; > bool operator()(const RenderablePass& a, const RenderablePass& b) const > { > if (a.renderable == b.renderable) > { > > return a.pass->getHash() < b.pass->getHash(); > } > else > { > > Real adepth = a.renderable->getSquaredViewDepth(camera); > Real bdepth = b.renderable->getSquaredViewDepth(camera); > if (adepth == bdepth) > { > > return a.pass < b.pass; > } > else > { > > return (adepth > bdepth); > } > } > > } > }; > public: > > > > typedef std::vector<RenderablePass> TransparentRenderablePassList; > typedef std::vector<Renderable*> RenderableList; > > > typedef std::map<Pass*, RenderableList*, SolidQueueItemLess> SolidRenderablePassMap; > protected: > > RenderQueueGroup* mParent; > bool mSplitPassesByLightingType; > bool mSplitNoShadowPasses; > > SolidRenderablePassMap mSolidPasses; > > SolidRenderablePassMap mSolidPassesDiffuseSpecular; > > SolidRenderablePassMap mSolidPassesDecal; > > SolidRenderablePassMap mSolidPassesNoShadow; > > > TransparentRenderablePassList mTransparentPasses; > > > void destroySolidPassMap(SolidRenderablePassMap& passmap); > > > void removeSolidPassEntry(Pass* p); > > > void clearSolidPassMap(SolidRenderablePassMap& passmap); > > void addSolidRenderable(Technique* pTech, Renderable* rend, bool toNoShadowMap); > > void addSolidRenderableSplitByLightType(Technique* pTech, Renderable* rend); > > void addTransparentRenderable(Technique* pTech, Renderable* rend); > > public: > RenderPriorityGroup(RenderQueueGroup* parent, > bool splitPassesByLightingType, bool splitNoShadowPasses) > :mParent(parent), mSplitPassesByLightingType(splitPassesByLightingType), > mSplitNoShadowPasses(splitNoShadowPasses) { } > > ~RenderPriorityGroup() { > > destroySolidPassMap(mSolidPasses); > destroySolidPassMap(mSolidPassesDecal); > destroySolidPassMap(mSolidPassesDiffuseSpecular); > destroySolidPassMap(mSolidPassesNoShadow); > mTransparentPasses.clear(); > > } > > > const SolidRenderablePassMap& _getSolidPasses(void) const > { return mSolidPasses; } > > const SolidRenderablePassMap& _getSolidPassesDiffuseSpecular(void) const > { return mSolidPassesDiffuseSpecular; } > > const SolidRenderablePassMap& _getSolidPassesDecal(void) const > { return mSolidPassesDecal; } > > const SolidRenderablePassMap& _getSolidPassesNoShadow(void) const > { return mSolidPassesNoShadow; } > > const TransparentRenderablePassList& _getTransparentPasses(void) const > { return mTransparentPasses; } > > > > void addRenderable(Renderable* pRend); > > > > void sort(const Camera* cam); > > > > void clear(void); > > > > > void setSplitPassesByLightingType(bool split) > { > mSplitPassesByLightingType = split; > } > > > > > void setSplitNoShadowPasses(bool split) > { > mSplitNoShadowPasses = split; > } > > > }; ># 228 "../../OgreMain/include/OgreRenderQueueSortingGrouping.h" > class RenderQueueGroup > { > public: > typedef std::map<ushort, RenderPriorityGroup*, std::less<ushort> > PriorityMap; > typedef MapIterator<PriorityMap> PriorityMapIterator; > protected: > RenderQueue* mParent; > bool mSplitPassesByLightingType; > bool mSplitNoShadowPasses; > > PriorityMap mPriorityGroups; > > bool mShadowsEnabled; > > > public: > RenderQueueGroup(RenderQueue* parent, bool splitPassesByLightingType, > bool splitNoShadowPasses) > :mParent(parent), mSplitPassesByLightingType(splitPassesByLightingType), > mSplitNoShadowPasses(splitNoShadowPasses), mShadowsEnabled(true) {} > > ~RenderQueueGroup() { > > PriorityMap::iterator i; > for (i = mPriorityGroups.begin(); i != mPriorityGroups.end(); ++i) > { > delete i->second; > } > } > > > PriorityMapIterator getIterator(void) > { > return PriorityMapIterator(mPriorityGroups.begin(), mPriorityGroups.end()); > } > > > void addRenderable(Renderable* pRend, ushort priority) > { > > PriorityMap::iterator i = mPriorityGroups.find(priority); > RenderPriorityGroup* pPriorityGrp; > if (i == mPriorityGroups.end()) > { > > pPriorityGrp = new RenderPriorityGroup(this, > mSplitPassesByLightingType, mSplitNoShadowPasses); > mPriorityGroups.insert(PriorityMap::value_type(priority, pPriorityGrp)); > } > else > { > pPriorityGrp = i->second; > } > > > pPriorityGrp->addRenderable(pRend); > > } > > > > > > > > void clear(void) > { > PriorityMap::iterator i, iend; > iend = mPriorityGroups.end(); > for (i = mPriorityGroups.begin(); i != iend; ++i) > { > i->second->clear(); > } > > } ># 316 "../../OgreMain/include/OgreRenderQueueSortingGrouping.h" > void setShadowsEnabled(bool enabled) { mShadowsEnabled = enabled; } > > > bool getShadowsEnabled(void) const { return mShadowsEnabled; } > > > > > void setSplitPassesByLightingType(bool split) > { > mSplitPassesByLightingType = split; > PriorityMap::iterator i, iend; > iend = mPriorityGroups.end(); > for (i = mPriorityGroups.begin(); i != iend; ++i) > { > i->second->setSplitPassesByLightingType(split); > } > } > > > > > void setSplitNoShadowPasses(bool split) > { > mSplitNoShadowPasses = split; > PriorityMap::iterator i, iend; > iend = mPriorityGroups.end(); > for (i = mPriorityGroups.begin(); i != iend; ++i) > { > i->second->setSplitNoShadowPasses(split); > } > } > > }; > > > >} ># 44 "../../OgreMain/include/OgreSceneManager.h" 2 ># 1 "../../OgreMain/include/OgreRectangle2D.h" 1 ># 30 "../../OgreMain/include/OgreRectangle2D.h" ># 1 "../../OgreMain/include/OgreSimpleRenderable.h" 1 ># 35 "../../OgreMain/include/OgreSimpleRenderable.h" >namespace Ogre { > > class SimpleRenderable : public MovableObject, public Renderable > { > protected: > RenderOperation mRenderOp; > > Matrix4 m_matWorldTransform; > AxisAlignedBox mBox; > > String m_strMatName; > MaterialPtr m_pMaterial; > > > SceneManager *m_pParentSceneManager; > > > Camera *m_pCamera; > > > String m_strName; > > > static uint ms_uGenNameCount; > > public: > SimpleRenderable(); > > void setMaterial( const String& matName ); > virtual const MaterialPtr& getMaterial(void) const; > > virtual void setRenderOperation( const RenderOperation& rend ); > virtual void getRenderOperation(RenderOperation& op); > > void setWorldTransform( const Matrix4& xform ); > virtual void getWorldTransforms( Matrix4* xform ) const; > > const Quaternion& getWorldOrientation(void) const; > > const Vector3& getWorldPosition(void) const; > > > virtual void _notifyCurrentCamera(Camera* cam); > > void setBoundingBox( const AxisAlignedBox& box ); > virtual const AxisAlignedBox& getBoundingBox(void) const; > > virtual void _updateRenderQueue(RenderQueue* queue); > > virtual ~SimpleRenderable(); > > > virtual const String& getName(void) const; > > > virtual const String& getMovableType(void) const; > > > const LightList& getLights(void) const; > > }; >} ># 31 "../../OgreMain/include/OgreRectangle2D.h" 2 > >namespace Ogre { > > > > > > > > class Rectangle2D : public SimpleRenderable > { > protected: > > > void getWorldTransforms( Matrix4* xform ) const; > > const Quaternion& getWorldOrientation(void) const; > > const Vector3& getWorldPosition(void) const; > > public: > > Rectangle2D(bool includeTextureCoordinates = false); > ~Rectangle2D(); ># 63 "../../OgreMain/include/OgreRectangle2D.h" > void setCorners(Real left, Real top, Real right, Real bottom); > > Real getSquaredViewDepth(const Camera* cam) const { return 0; } > > Real getBoundingRadius(void) const { return 0; } > > bool useIdentityProjection(void) const { return true; } > > bool useIdentityView(void) const { return true; } > > }; > >} ># 45 "../../OgreMain/include/OgreSceneManager.h" 2 > >namespace Ogre { > > > struct ViewPoint > { > Vector3 position; > Quaternion orientation; > }; > > > class DefaultIntersectionSceneQuery; > class DefaultRaySceneQuery; > class DefaultSphereSceneQuery; > class DefaultAxisAlignedBoxSceneQuery; ># 76 "../../OgreMain/include/OgreSceneManager.h" > class SceneManager > { > friend class DefaultIntersectionSceneQuery; > friend class DefaultRaySceneQuery; > friend class DefaultSphereSceneQuery; > friend class DefaultAxisAlignedBoxSceneQuery; > friend class DefaultPlaneBoundedVolumeListSceneQuery; > public: > > static unsigned long WORLD_GEOMETRY_QUERY_MASK; > > > struct materialLess > { > bool operator()(const Material* x, const Material* y) const; > }; > > struct lightLess > { > bool operator()(const Light* a, const Light* b) const; > }; > > > enum IlluminationRenderStage > { > > IRS_NONE, > > IRS_AMBIENT, > > IRS_PER_LIGHT, > > IRS_DECAL, > > IRS_RENDER_TO_TEXTURE, > > IRS_RENDER_MODULATIVE_PASS > }; > > > > > > enum SpecialCaseRenderQueueMode > { > > SCRQM_INCLUDE, > > SCRQM_EXCLUDE > }; > protected: > > > RenderQueue* mRenderQueue; > > > ColourValue mAmbientLight; > > > RenderSystem *mDestRenderSystem; > > typedef std::map<String, Camera* > CameraList; > > > > CameraList mCameras; > > typedef std::map<String, Light* > SceneLightList; > > > > SceneLightList mLights; > > > typedef std::map<String, Entity* > EntityList; > > > > EntityList mEntities; > > typedef std::map<String, BillboardSet* > BillboardSetList; > > > > BillboardSetList mBillboardSets; > > typedef std::map<String, StaticGeometry* > StaticGeometryList; > StaticGeometryList mStaticGeometryList; > > typedef std::map<String, SceneNode*> SceneNodeList; > > > > > > > > SceneNodeList mSceneNodes; > > > Camera* mCameraInProgress; > > Viewport* mCurrentViewport; > > > SceneNode* mSceneRoot; > > > typedef std::set<SceneNode*> AutoTrackingSceneNodes; > AutoTrackingSceneNodes mAutoTrackingSceneNodes; > > > > Entity* mSkyPlaneEntity; > Entity* mSkyDomeEntity[5]; > Entity* mSkyBoxEntity[6]; > > SceneNode* mSkyPlaneNode; > SceneNode* mSkyDomeNode; > SceneNode* mSkyBoxNode; > > bool mSkyPlaneEnabled; > bool mSkyPlaneDrawFirst; > Plane mSkyPlane; > > bool mSkyBoxEnabled; > bool mSkyBoxDrawFirst; > Quaternion mSkyBoxOrientation; > > bool mSkyDomeEnabled; > bool mSkyDomeDrawFirst; > Quaternion mSkyDomeOrientation; > > FogMode mFogMode; > ColourValue mFogColour; > Real mFogStart; > Real mFogEnd; > Real mFogDensity; > > typedef std::set<RenderQueueGroupID> SpecialCaseRenderQueueList; > SpecialCaseRenderQueueList mSpecialCaseQueueList; > SpecialCaseRenderQueueMode mSpecialCaseQueueMode; > RenderQueueGroupID mWorldGeometryRenderQueue; > > > > > > virtual void initRenderQueue(void); > > virtual RenderQueue* getRenderQueue(void); > > > > > > > > virtual Pass* setPass(Pass* pass); > > Pass* mShadowCasterPlainBlackPass; > > Pass* mShadowReceiverPass; ># 248 "../../OgreMain/include/OgreSceneManager.h" > Pass* deriveShadowCasterPass(Pass* pass); ># 257 "../../OgreMain/include/OgreSceneManager.h" > Pass* deriveShadowReceiverPass(Pass* pass); > > > > > > > > bool validatePassForRendering(Pass* pass); > > > > > > > > bool validateRenderableForRendering(Pass* pass, Renderable* rend); > > enum BoxPlane > { > BP_FRONT = 0, > BP_BACK = 1, > BP_LEFT = 2, > BP_RIGHT = 3, > BP_UP = 4, > BP_DOWN = 5 > }; > > > > MeshPtr createSkyboxPlane( > BoxPlane bp, > Real distance, > const Quaternion& orientation, > const String& groupName); > > > > MeshPtr createSkydomePlane( > BoxPlane bp, > Real curvature, Real tiling, Real distance, > const Quaternion& orientation, > int xsegments, int ysegments, int ySegmentsToKeep, > const String& groupName); > > > bool mDisplayNodes; > > > typedef std::map<String, Animation*> AnimationList; > AnimationList mAnimationsList; > AnimationStateSet mAnimationStates; > > > > void useRenderableViewProjMode(Renderable* pRend); > > > bool mCamChanged; > > typedef std::vector<RenderQueueListener*> RenderQueueListenerList; > RenderQueueListenerList mRenderQueueListeners; > > > bool fireRenderQueueStarted(RenderQueueGroupID id); > > bool fireRenderQueueEnded(RenderQueueGroupID id); > > > virtual void setViewport(Viewport *vp); > > > bool mShowBoundingBoxes; ># 343 "../../OgreMain/include/OgreSceneManager.h" > virtual void renderSingleObject(Renderable* rend, Pass* pass, bool doLightIteration, > const LightList* manualLightList = 0); > > > AutoParamDataSource mAutoParamDataSource; > > ShadowTechnique mShadowTechnique; > bool mDebugShadows; > ColourValue mShadowColour; > Pass* mShadowDebugPass; > Pass* mShadowStencilPass; > Pass* mShadowModulativePass; > bool mShadowMaterialInitDone; > LightList mLightsAffectingFrustum; > HardwareIndexBufferSharedPtr mShadowIndexBuffer; > size_t mShadowIndexBufferSize; > Rectangle2D* mFullScreenQuad; > Real mShadowDirLightExtrudeDist; > IlluminationRenderStage mIlluminationStage; > unsigned short mShadowTextureSize; > unsigned short mShadowTextureCount; > PixelFormat mShadowTextureFormat; > typedef std::vector<RenderTexture*> ShadowTextureList; > ShadowTextureList mShadowTextures; > RenderTexture* mCurrentShadowTexture; > bool mShadowUseInfiniteFarPlane; > > > > > > > virtual void findLightsAffectingFrustum(const Camera* camera); > > virtual void initShadowVolumeMaterials(void); > > virtual void createShadowTextures(unsigned short size, unsigned short count, > PixelFormat fmt); > > virtual void prepareShadowTextures(Camera* cam, Viewport* vp); > > > > > > > virtual void renderShadowVolumesToStencil(const Light* light, const Camera* cam); > > > > > > virtual void setShadowVolumeStencilState(bool secondpass, bool zfail, bool twosided); > > void renderShadowVolumeObjects(ShadowCaster::ShadowRenderableListIterator iShadowRenderables, > Pass* pass, const LightList *manualLightList, unsigned long flags, > bool secondpass, bool zfail, bool twosided); > typedef std::vector<ShadowCaster*> ShadowCasterList; > ShadowCasterList mShadowCasterList; > SphereSceneQuery* mShadowCasterSphereQuery; > AxisAlignedBoxSceneQuery* mShadowCasterAABBQuery; > Real mShadowFarDist; > Real mShadowFarDistSquared; > Real mShadowTextureOffset; > Real mShadowTextureFadeStart; > Real mShadowTextureFadeEnd; > bool mShadowTextureSelfShadow; > Pass* mShadowTextureCustomCasterPass; > Pass* mShadowTextureCustomReceiverPass; > String mShadowTextureCustomCasterVertexProgram; > String mShadowTextureCustomReceiverVertexProgram; > GpuProgramParametersSharedPtr mShadowTextureCustomCasterVPParams; > GpuProgramParametersSharedPtr mShadowTextureCustomReceiverVPParams; > bool mShadowTextureCasterVPDirty; > bool mShadowTextureReceiverVPDirty; > > > GpuProgramParametersSharedPtr mInfiniteExtrusionParams; > GpuProgramParametersSharedPtr mFiniteExtrusionParams; > > > class ShadowCasterSceneQueryListener : public SceneQueryListener > { > protected: > SceneManager* mSceneMgr; > ShadowCasterList* mCasterList; > bool mIsLightInFrustum; > const PlaneBoundedVolumeList* mLightClipVolumeList; > const Camera* mCamera; > const Light* mLight; > Real mFarDistSquared; > public: > ShadowCasterSceneQueryListener(SceneManager* sm) : mSceneMgr(sm), > mCasterList(0), mIsLightInFrustum(false), mLightClipVolumeList(0), > mCamera(0) {} > > void prepare(bool lightInFrustum, > const PlaneBoundedVolumeList* lightClipVolumes, > const Light* light, const Camera* cam, ShadowCasterList* casterList, > Real farDistSquared) > { > mCasterList = casterList; > mIsLightInFrustum = lightInFrustum; > mLightClipVolumeList = lightClipVolumes; > mCamera = cam; > mLight = light; > mFarDistSquared = farDistSquared; > } > bool queryResult(MovableObject* object); > bool queryResult(SceneQuery::WorldFragment* fragment); > }; > > ShadowCasterSceneQueryListener* mShadowCasterQueryListener; > > > > > > > > virtual const ShadowCasterList& findShadowCastersForLight(const Light* light, > const Camera* camera); > > > virtual void renderQueueGroupObjects(RenderQueueGroup* group); > > virtual void renderBasicQueueGroupObjects(RenderQueueGroup* pGroup); > > virtual void renderAdditiveStencilShadowedQueueGroupObjects(RenderQueueGroup* group); > > virtual void renderModulativeStencilShadowedQueueGroupObjects(RenderQueueGroup* group); > > virtual void renderTextureShadowCasterQueueGroupObjects(RenderQueueGroup* group); > > virtual void renderTextureShadowReceiverQueueGroupObjects(RenderQueueGroup* group); > > virtual void renderModulativeTextureShadowedQueueGroupObjects(RenderQueueGroup* group); > > virtual void renderObjects(const RenderPriorityGroup::SolidRenderablePassMap& objs, > bool doLightIteration, const LightList* manualLightList = 0); > > virtual void renderObjects(const RenderPriorityGroup::TransparentRenderablePassList& objs, > bool doLightIteration, const LightList* manualLightList = 0); > > > > > > virtual void renderTransparentShadowCasterObjects(const RenderPriorityGroup::TransparentRenderablePassList& objs, > bool doLightIteration, const LightList* manualLightList = 0); > > public: > > > SceneManager(); > > > > virtual ~SceneManager(); ># 510 "../../OgreMain/include/OgreSceneManager.h" > virtual Camera* createCamera(const String& name); > > > > virtual Camera* getCamera(const String& name); ># 524 "../../OgreMain/include/OgreSceneManager.h" > virtual void removeCamera(Camera *cam); > > > > > > > virtual void removeCamera(const String& name); > > > > virtual void removeAllCameras(void); ># 547 "../../OgreMain/include/OgreSceneManager.h" > virtual Light* createLight(const String& name); > > > > virtual Light* getLight(const String& name); > > > > > > virtual void removeLight(const String& name); > > > > > > virtual void removeLight(Light* light); > > > virtual void removeAllLights(void); ># 587 "../../OgreMain/include/OgreSceneManager.h" > virtual void _populateLightList(const Vector3& position, Real radius, LightList& destList); ># 606 "../../OgreMain/include/OgreSceneManager.h" > virtual SceneNode* createSceneNode(void); ># 622 "../../OgreMain/include/OgreSceneManager.h" > virtual SceneNode* createSceneNode(const String& name); > > > > > > > > virtual void destroySceneNode(const String& name); ># 647 "../../OgreMain/include/OgreSceneManager.h" > virtual SceneNode* getRootSceneNode(void) const; > > > > > > > > virtual SceneNode* getSceneNode(const String& name) const; ># 664 "../../OgreMain/include/OgreSceneManager.h" > virtual Entity* createEntity(const String& entityName, const String& meshName); > > > > > > > > enum PrefabType { > PT_PLANE > }; > > > > > > > > virtual Entity* createEntity(const String& entityName, PrefabType ptype); > > virtual Entity* getEntity(const String& name); ># 694 "../../OgreMain/include/OgreSceneManager.h" > virtual void removeEntity(Entity* ent); ># 704 "../../OgreMain/include/OgreSceneManager.h" > virtual void removeEntity(const String& name); ># 715 "../../OgreMain/include/OgreSceneManager.h" > virtual void removeAllEntities(void); > > > > > > > virtual void clearScene(void); ># 736 "../../OgreMain/include/OgreSceneManager.h" > void setAmbientLight(const ColourValue& colour); > > > > const ColourValue& getAmbientLight(void) const; ># 757 "../../OgreMain/include/OgreSceneManager.h" > virtual void setWorldGeometry(const String& filename); ># 771 "../../OgreMain/include/OgreSceneManager.h" > virtual size_t estimateWorldGeometry(const String& filename) { return 0; } ># 787 "../../OgreMain/include/OgreSceneManager.h" > virtual ViewPoint getSuggestedViewpoint(bool random = false); ># 802 "../../OgreMain/include/OgreSceneManager.h" > virtual bool setOption( const String& strKey, const void* pValue ) { return false; } ># 817 "../../OgreMain/include/OgreSceneManager.h" > virtual bool getOption( const String& strKey, void* pDestValue ) { return false; } ># 828 "../../OgreMain/include/OgreSceneManager.h" > virtual bool hasOption( const String& strKey ) const { return false; } ># 843 "../../OgreMain/include/OgreSceneManager.h" > virtual bool getOptionValues( const String& strKey, StringVector& refValueList ) { return false; } > > > > > > > > virtual bool getOptionKeys( StringVector& refKeys ) { return false; } ># 861 "../../OgreMain/include/OgreSceneManager.h" > virtual void _updateSceneGraph(Camera* cam); ># 874 "../../OgreMain/include/OgreSceneManager.h" > virtual void _findVisibleObjects(Camera* cam, bool onlyShadowCasters); > > > > > > virtual void _applySceneAnimations(void); > > > > virtual void _renderVisibleObjects(void); ># 899 "../../OgreMain/include/OgreSceneManager.h" > virtual void _renderScene(Camera* camera, Viewport* vp, bool includeOverlays); > > > > > virtual void _queueSkiesForRendering(Camera* cam); ># 916 "../../OgreMain/include/OgreSceneManager.h" > virtual void _setDestinationRenderSystem(RenderSystem* sys); ># 970 "../../OgreMain/include/OgreSceneManager.h" > virtual void setSkyPlane( > bool enable, > const Plane& plane, const String& materialName, Real scale = 1000, > Real tiling = 10, bool drawFirst = true, Real bow = 0, > int xsegments = 1, int ysegments = 1, > const String& groupName = ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME); ># 1018 "../../OgreMain/include/OgreSceneManager.h" > virtual void setSkyBox( > bool enable, const String& materialName, Real distance = 5000, > bool drawFirst = true, const Quaternion& orientation = Quaternion::IDENTITY, > const String& groupName = ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME); ># 1078 "../../OgreMain/include/OgreSceneManager.h" > virtual void setSkyDome( > bool enable, const String& materialName, Real curvature = 10, > Real tiling = 8, Real distance = 4000, bool drawFirst = true, > const Quaternion& orientation = Quaternion::IDENTITY, > int xsegments = 16, int ysegments = 16, int ysegments_keep = -1, > const String& groupName = ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME); ># 1109 "../../OgreMain/include/OgreSceneManager.h" > void setFog( > FogMode mode = FOG_NONE, const ColourValue& colour = ColourValue::White, > Real expDensity = 0.001, Real linearStart = 0.0, Real linearEnd = 1.0); > > > > virtual FogMode getFogMode(void) const; > > > > virtual const ColourValue& getFogColour(void) const; > > > > virtual Real getFogStart(void) const; > > > > virtual Real getFogEnd(void) const; > > > > virtual Real getFogDensity(void) const; ># 1151 "../../OgreMain/include/OgreSceneManager.h" > virtual BillboardSet* createBillboardSet(const String& name, unsigned int poolSize = 20); > > > > virtual BillboardSet* getBillboardSet(const String& name); > > > > > > > > virtual void removeBillboardSet(BillboardSet* set); > > > > > > > > virtual void removeBillboardSet(const String& name); ># 1182 "../../OgreMain/include/OgreSceneManager.h" > virtual void removeAllBillboardSets(void); ># 1191 "../../OgreMain/include/OgreSceneManager.h" > virtual void setDisplaySceneNodes(bool display); ># 1213 "../../OgreMain/include/OgreSceneManager.h" > virtual Animation* createAnimation(const String& name, Real length); > > > virtual Animation* getAnimation(const String& name) const; > > > > > > > virtual void destroyAnimation(const String& name); > > > virtual void destroyAllAnimations(void); ># 1251 "../../OgreMain/include/OgreSceneManager.h" > virtual AnimationState* createAnimationState(const String& animName); > > > virtual AnimationState* getAnimationState(const String& animName); > > > > > > > virtual void destroyAnimationState(const String& name); > > > virtual void destroyAllAnimationStates(void); ># 1289 "../../OgreMain/include/OgreSceneManager.h" > virtual void manualRender(RenderOperation* rend, Pass* pass, Viewport* vp, > const Matrix4& worldMatrix, const Matrix4& viewMatrix, const Matrix4& projMatrix, > bool doBeginEndFrame = false) ; > > > > > virtual void addRenderQueueListener(RenderQueueListener* newListener); > > > virtual void removeRenderQueueListener(RenderQueueListener* delListener); ># 1314 "../../OgreMain/include/OgreSceneManager.h" > virtual void addSpecialCaseRenderQueue(RenderQueueGroupID qid); > > > > > > virtual void removeSpecialCaseRenderQueue(RenderQueueGroupID qid); > > > > virtual void clearSpecialCaseRenderQueues(void); > > > > > virtual void setSpecialCaseRenderQueueMode(SpecialCaseRenderQueueMode mode); > > virtual SpecialCaseRenderQueueMode getSpecialCaseRenderQueueMode(void); > > > > > > > virtual bool isRenderQueueToBeProcessed(RenderQueueGroupID qid); ># 1355 "../../OgreMain/include/OgreSceneManager.h" > virtual void setWorldGeometryRenderQueue(RenderQueueGroupID qid); ># 1366 "../../OgreMain/include/OgreSceneManager.h" > virtual RenderQueueGroupID getWorldGeometryRenderQueue(void); > > > virtual void showBoundingBoxes(bool bShow); > > > virtual bool getShowBoundingBoxes() const; > > > virtual void _notifyAutotrackingSceneNode(SceneNode* node, bool autoTrack); ># 1390 "../../OgreMain/include/OgreSceneManager.h" > virtual AxisAlignedBoxSceneQuery* > createAABBQuery(const AxisAlignedBox& box, unsigned long mask = 0xFFFFFFFF); ># 1404 "../../OgreMain/include/OgreSceneManager.h" > virtual SphereSceneQuery* > createSphereQuery(const Sphere& sphere, unsigned long mask = 0xFFFFFFFF); ># 1418 "../../OgreMain/include/OgreSceneManager.h" > virtual PlaneBoundedVolumeListSceneQuery* > createPlaneBoundedVolumeQuery(const PlaneBoundedVolumeList& volumes, unsigned long mask = 0xFFFFFFFF); ># 1434 "../../OgreMain/include/OgreSceneManager.h" > virtual RaySceneQuery* > createRayQuery(const Ray& ray, unsigned long mask = 0xFFFFFFFF); ># 1448 "../../OgreMain/include/OgreSceneManager.h" > virtual IntersectionSceneQuery* > createIntersectionQuery(unsigned long mask = 0xFFFFFFFF); > > > virtual void destroyQuery(SceneQuery* query); > > typedef MapIterator<SceneLightList> LightIterator; > typedef MapIterator<EntityList> EntityIterator; > typedef MapIterator<CameraList> CameraIterator; > typedef MapIterator<BillboardSetList> BillboardSetIterator; > typedef MapIterator<AnimationList> AnimationIterator; > > > LightIterator getLightIterator(void) { > return LightIterator(mLights.begin(), mLights.end()); > } > > EntityIterator getEntityIterator(void) { > return EntityIterator(mEntities.begin(), mEntities.end()); > } > > CameraIterator getCameraIterator(void) { > return CameraIterator(mCameras.begin(), mCameras.end()); > } > > BillboardSetIterator getBillboardSetIterator(void) { > return BillboardSetIterator(mBillboardSets.begin(), mBillboardSets.end()); > } > > AnimationIterator getAnimationIterator(void) { > return AnimationIterator(mAnimationsList.begin(), mAnimationsList.end()); > } > > AnimationStateIterator getAnimationStateIterator(void) { > return AnimationStateIterator(mAnimationStates.begin(), mAnimationStates.end()); > } ># 1517 "../../OgreMain/include/OgreSceneManager.h" > virtual void setShadowTechnique(ShadowTechnique technique); > > > virtual ShadowTechnique getShadowTechnique(void) const { return mShadowTechnique; } > > > virtual void setShowDebugShadows(bool debug) { mDebugShadows = debug; } > > virtual bool getShowDebugShadows(void ) const { return mDebugShadows; } > > > > > > > > virtual void setShadowColour(const ColourValue& colour); > > > > > > > virtual const ColourValue& getShadowColour(void) const; ># 1552 "../../OgreMain/include/OgreSceneManager.h" > virtual void setShadowDirectionalLightExtrusionDistance(Real dist); > > > virtual Real getShadowDirectionalLightExtrusionDistance(void) const; ># 1571 "../../OgreMain/include/OgreSceneManager.h" > virtual void setShadowFarDistance(Real distance); > > > > virtual Real getShadowFarDistance(void) const > { return mShadowFarDist; } ># 1603 "../../OgreMain/include/OgreSceneManager.h" > virtual void setShadowIndexBufferSize(size_t size); > > virtual size_t getShadowIndexBufferSize(void) const > { return mShadowIndexBufferSize; } > > > > > > > virtual void setShadowTextureSize(unsigned short size); > > unsigned short getShadowTextureSize(void) const {return mShadowTextureSize; } ># 1625 "../../OgreMain/include/OgreSceneManager.h" > virtual void setShadowTexturePixelFormat(PixelFormat fmt); > > PixelFormat getShadowTexturePixelFormat(void) const {return mShadowTextureFormat; } > > > > > > > > virtual void setShadowTextureCount(unsigned short count); > > unsigned short getShadowTextureCount(void) const {return mShadowTextureCount; } > > > > > > > virtual void setShadowTextureSettings(unsigned short size, unsigned short count, > PixelFormat fmt = PF_X8R8G8B8); ># 1660 "../../OgreMain/include/OgreSceneManager.h" > virtual void setShadowDirLightTextureOffset(Real offset) { mShadowTextureOffset = offset;} > > > > > > > > virtual void setShadowTextureFadeStart(Real fadeStart) > { mShadowTextureFadeStart = fadeStart; } > > > > > > > > virtual void setShadowTextureFadeEnd(Real fadeEnd) > { mShadowTextureFadeEnd = fadeEnd; } ># 1692 "../../OgreMain/include/OgreSceneManager.h" > virtual void setShadowTextureSelfShadow(bool selfShadow) > { mShadowTextureSelfShadow = selfShadow; } > > virtual bool getShadowTextureSelfShadow(void) const > { return mShadowTextureSelfShadow; } ># 1717 "../../OgreMain/include/OgreSceneManager.h" > virtual void setShadowTextureCasterMaterial(const String& name); ># 1739 "../../OgreMain/include/OgreSceneManager.h" > virtual void setShadowTextureReceiverMaterial(const String& name); ># 1777 "../../OgreMain/include/OgreSceneManager.h" > virtual void setShadowUseInfiniteFarPlane(bool enable) { > mShadowUseInfiniteFarPlane = enable; } ># 1789 "../../OgreMain/include/OgreSceneManager.h" > virtual StaticGeometry* createStaticGeometry(const String& name); > > virtual StaticGeometry* getStaticGeometry(const String& name) const; > > virtual void removeStaticGeometry(StaticGeometry* geom); > > virtual void removeStaticGeometry(const String& name); > > virtual void removeAllStaticGeometry(void); > > > }; > > > class DefaultIntersectionSceneQuery : > public IntersectionSceneQuery > { > public: > DefaultIntersectionSceneQuery(SceneManager* creator); > ~DefaultIntersectionSceneQuery(); > > > void execute(IntersectionSceneQueryListener* listener); > }; > > > class DefaultRaySceneQuery : public RaySceneQuery > { > public: > DefaultRaySceneQuery(SceneManager* creator); > ~DefaultRaySceneQuery(); > > > void execute(RaySceneQueryListener* listener); > }; > > class DefaultSphereSceneQuery : public SphereSceneQuery > { > public: > DefaultSphereSceneQuery(SceneManager* creator); > ~DefaultSphereSceneQuery(); > > > void execute(SceneQueryListener* listener); > }; > > class DefaultPlaneBoundedVolumeListSceneQuery : public PlaneBoundedVolumeListSceneQuery > { > public: > DefaultPlaneBoundedVolumeListSceneQuery(SceneManager* creator); > ~DefaultPlaneBoundedVolumeListSceneQuery(); > > > void execute(SceneQueryListener* listener); > }; > > class DefaultAxisAlignedBoxSceneQuery : public AxisAlignedBoxSceneQuery > { > public: > DefaultAxisAlignedBoxSceneQuery(SceneManager* creator); > ~DefaultAxisAlignedBoxSceneQuery(); > > > void execute(SceneQueryListener* listener); > }; > > > >} ># 31 "../../OgreMain/include/OgreSceneManagerEnumerator.h" 2 > > >namespace Ogre { > > > > enum SceneType > { > ST_GENERIC, > ST_EXTERIOR_CLOSE, > ST_EXTERIOR_FAR, > ST_EXTERIOR_REAL_FAR, > ST_INTERIOR > }; ># 69 "../../OgreMain/include/OgreSceneManagerEnumerator.h" > class SceneManagerEnumerator : public Singleton<SceneManagerEnumerator> > { > private: > > std::set<SceneManager*> mUniqueSceneMgrs; > > typedef std::map<SceneType, SceneManager*> SceneManagerList ; > SceneManagerList mSceneManagers; > > > SceneManager* mDefaultManager; > > > public: > SceneManagerEnumerator(); > ~SceneManagerEnumerator(); > > > > void setSceneManager(SceneType st, SceneManager* sm); > > > > SceneManager* getSceneManager(SceneType st); > > > > void setRenderSystem(RenderSystem* rs); > > > void shutdownAll(void); ># 115 "../../OgreMain/include/OgreSceneManagerEnumerator.h" > static SceneManagerEnumerator& getSingleton(void); ># 131 "../../OgreMain/include/OgreSceneManagerEnumerator.h" > static SceneManagerEnumerator* getSingletonPtr(void); > > }; > > >} ># 34 "../../OgreMain/include/OgreRoot.h" 2 ># 44 "../../OgreMain/include/OgreRoot.h" >namespace Ogre >{ > typedef std::vector<RenderSystem*> RenderSystemList; ># 61 "../../OgreMain/include/OgreRoot.h" > class Root : public Singleton<Root> > { > > > friend class RenderSystem; > private: > RenderSystemList mRenderers; > RenderSystem* mActiveRenderer; > String mVersion; > String mConfigFileName; > bool mQueuedEnd; > > bool mFirstTimePostWindowInit; > > > LogManager* mLogManager; > ControllerManager* mControllerManager; > SceneManagerEnumerator* mSceneManagerEnum; > SceneManager* mCurrentSceneManager; > DynLibManager* mDynLibManager; > PlatformManager* mPlatformManager; > ArchiveManager* mArchiveManager; > MaterialManager* mMaterialManager; > MeshManager* mMeshManager; > ParticleSystemManager* mParticleManager; > SkeletonManager* mSkeletonManager; > OverlayElementFactory* mPanelFactory; > OverlayElementFactory* mBorderPanelFactory; > OverlayElementFactory* mTextAreaFactory; > OverlayManager* mOverlayManager; > FontManager* mFontManager; > ArchiveFactory *mZipArchiveFactory; > ArchiveFactory *mFileSystemArchiveFactory; > ResourceGroupManager* mResourceGroupManager; > ResourceBackgroundQueue* mResourceBackgroundQueue; > > Timer* mTimer; > RenderWindow* mAutoWindow; > Profiler* mProfiler; > HighLevelGpuProgramManager* mHighLevelGpuProgramManager; > ExternalTextureSourceManager* mExternalTextureSourceManager; > unsigned long mCurrentFrame; > > std::vector<DynLib*> mPluginLibs; > > > > > > > void loadPlugins( const String& pluginsfile = "plugins.cfg" ); > > > > void shutdownPlugins(); > > > > void unloadPlugins(); > > > void oneTimePostWindowInit(void); > > > std::set<FrameListener*> mFrameListeners; > > > std::set<FrameListener*> mRemovedFrameListeners; > > > enum FrameEventTimeType { > FETT_ANY, FETT_STARTED, FETT_ENDED > }; > > > std::deque<unsigned long> mEventTimes[3]; > > > > > > Real calculateEventTime(unsigned long now, FrameEventTimeType type); > public: > > static void termHandler(); > > > > > > > Root(const String& pluginFileName = "plugins.cfg", const String& configFileName = "ogre.cfg", const String& logFileName = "Ogre.log"); > ~Root(); > > > > > > > void saveConfig(void); ># 174 "../../OgreMain/include/OgreRoot.h" > bool restoreConfig(void); ># 192 "../../OgreMain/include/OgreRoot.h" > bool showConfigDialog(void); ># 205 "../../OgreMain/include/OgreRoot.h" > void addRenderSystem(RenderSystem* newRend); ># 214 "../../OgreMain/include/OgreRoot.h" > void setSceneManager(SceneType sType, SceneManager* sm); > > > > > > > > RenderSystemList* getAvailableRenderers(void); ># 241 "../../OgreMain/include/OgreRoot.h" > void setRenderSystem(RenderSystem* system); > > > > RenderSystem* getRenderSystem(void); ># 262 "../../OgreMain/include/OgreRoot.h" > RenderWindow* initialise(bool autoCreateWindow, const String& windowTitle = "OGRE Render Window"); ># 290 "../../OgreMain/include/OgreRoot.h" > SceneManager* getSceneManager(SceneType sceneType); ># 307 "../../OgreMain/include/OgreRoot.h" > TextureManager* getTextureManager(void); > > > > > > > MeshManager* getMeshManager(void); > > > > > String getErrorDescription(long errorNumber); ># 337 "../../OgreMain/include/OgreRoot.h" > void addFrameListener(FrameListener* newListener); > > > > > > void removeFrameListener(FrameListener* oldListener); ># 353 "../../OgreMain/include/OgreRoot.h" > void queueEndRendering(void); ># 380 "../../OgreMain/include/OgreRoot.h" > void startRendering(void); > > > > > > > bool renderOneFrame(void); > > > > > > > > void shutdown(void); ># 443 "../../OgreMain/include/OgreRoot.h" > void addResourceLocation(const String& name, const String& locType, > const String& groupName = ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME, > bool recursive = false); > > > > > > > > void removeResourceLocation(const String& name, > const String& groupName = ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME); ># 464 "../../OgreMain/include/OgreRoot.h" > void convertColourValue(const ColourValue& colour, uint32* pDest); ># 474 "../../OgreMain/include/OgreRoot.h" > RenderWindow* getAutoCreatedWindow(void); > > > > RenderWindow* createRenderWindow(const String &name, unsigned int width, unsigned int height, > bool fullScreen, const NameValuePairList *miscParams = 0) ; > > > > void detachRenderTarget( RenderTarget* pWin ); > > > > void detachRenderTarget( const String & name ); > > > > RenderTarget * getRenderTarget(const String &name); ># 509 "../../OgreMain/include/OgreRoot.h" > void loadPlugin(const String& pluginName); ># 518 "../../OgreMain/include/OgreRoot.h" > void unloadPlugin(const String& pluginName); > > > Timer* getTimer(void); ># 542 "../../OgreMain/include/OgreRoot.h" > bool _fireFrameStarted(FrameEvent& evt); ># 559 "../../OgreMain/include/OgreRoot.h" > bool _fireFrameEnded(FrameEvent& evt); ># 577 "../../OgreMain/include/OgreRoot.h" > bool _fireFrameStarted(); ># 592 "../../OgreMain/include/OgreRoot.h" > bool _fireFrameEnded(); > > > unsigned long getCurrentFrameNumber(void) const { return mCurrentFrame; } > > > > > > > SceneManager* _getCurrentSceneManager(void) const { return mCurrentSceneManager; } > > > > > void _setCurrentSceneManager(SceneManager* sm) { mCurrentSceneManager = sm; } ># 618 "../../OgreMain/include/OgreRoot.h" > void _updateAllRenderTargets(void); ># 635 "../../OgreMain/include/OgreRoot.h" > static Root& getSingleton(void); ># 651 "../../OgreMain/include/OgreRoot.h" > static Root* getSingletonPtr(void); ># 661 "../../OgreMain/include/OgreRoot.h" > void clearEventTimes(void); > > }; >} ># 35 "OgreAnimationTrack.cpp" 2 >Ogre::RenderWindow* mMainWindow = 0; > > >namespace Ogre { > > > AnimationTrack::AnimationTrack(Animation* parent) : mParent(parent) > { > mTargetNode = 0; > mMaxKeyFrameTime = -1; > mSplineBuildNeeded = false; > mUseShortestRotationPath = true ; > } > > AnimationTrack::AnimationTrack(Animation* parent, Node* targetNode) > : mParent(parent), mTargetNode(targetNode) > { > mMaxKeyFrameTime = -1; > mSplineBuildNeeded = false; > mUseShortestRotationPath = true ; > } > > AnimationTrack::~AnimationTrack() > { > removeAllKeyFrames(); > } > > unsigned short AnimationTrack::getNumKeyFrames(void) const > { > return (unsigned short)mKeyFrames.size(); > } > > KeyFrame* AnimationTrack::getKeyFrame(unsigned short index) const > { > > (static_cast<void> ((index < (ushort)mKeyFrames.size()) ? 0 : (__assert_fail ("index < (ushort)mKeyFrames.size()", "OgreAnimationTrack.cpp", 70, __PRETTY_FUNCTION__), 0))); > > return mKeyFrames[index]; > } > > Real AnimationTrack::getKeyFramesAtTime(Real timePos, KeyFrame** keyFrame1, KeyFrame** keyFrame2, > unsigned short* firstKeyIndex) const > { > short firstIndex = -1; > Real totalAnimationLength = mParent->getLength(); > > > while (timePos > totalAnimationLength) > { > timePos -= totalAnimationLength; > } > > KeyFrameList::const_iterator i = mKeyFrames.begin(); > > while (i != mKeyFrames.end() && (*i)->getTime() <= timePos) > { > *keyFrame1 = *i++; > ++firstIndex; > } > > > > if (firstIndex == -1) > { > *keyFrame1 = *i; > ++firstIndex; > } > > > if (firstKeyIndex != __null) > { > *firstKeyIndex = firstIndex; > } > > > > > Real t1, t2; > > > if (i == mKeyFrames.end()) > { > *keyFrame2 = mKeyFrames[0]; > t2 = totalAnimationLength; > } > else > { > *keyFrame2 = *i; > t2 = (*keyFrame2)->getTime(); > } > > t1 = (*keyFrame1)->getTime(); > > if (t1 == t2) > { > > return 0.0; > } > else > { > return (timePos - t1) / (t2 - t1); > } > } > > KeyFrame* AnimationTrack::createKeyFrame(Real timePos) > { > KeyFrame* kf = new KeyFrame(this, timePos); > > > if (timePos > mMaxKeyFrameTime || (timePos == 0 && mKeyFrames.empty())) > { > > mKeyFrames.push_back(kf); > mMaxKeyFrameTime = timePos; > } > else > { > > KeyFrameList::iterator i = mKeyFrames.begin(); > while ((*i)->getTime() < timePos && i != mKeyFrames.end()) > { > ++i; > } > mKeyFrames.insert(i, kf); > } > > _keyFrameDataChanged(); > > return kf; > > } > > void AnimationTrack::removeKeyFrame(unsigned short index) > { > > (static_cast<void> ((index < (ushort)mKeyFrames.size()) ? 0 : (__assert_fail ("index < (ushort)mKeyFrames.size()", "OgreAnimationTrack.cpp", 170, __PRETTY_FUNCTION__), 0))); > > KeyFrameList::iterator i = mKeyFrames.begin(); > > i += index; > > delete *i; > > mKeyFrames.erase(i); > > _keyFrameDataChanged(); > > > } > > void AnimationTrack::removeAllKeyFrames(void) > { > KeyFrameList::iterator i = mKeyFrames.begin(); > > for (; i != mKeyFrames.end(); ++i) > { > delete *i; > } > > _keyFrameDataChanged(); > > mKeyFrames.clear(); > > } > > KeyFrame AnimationTrack::getInterpolatedKeyFrame(Real timeIndex) const > { > > KeyFrame kret(0, timeIndex); > > > KeyFrame *k1, *k2; > unsigned short firstKeyIndex; > > Real t = this->getKeyFramesAtTime(timeIndex, &k1, &k2, &firstKeyIndex); > > if (t == 0.0) > { > > kret.setRotation(k1->getRotation()); > kret.setTranslate(k1->getTranslate()); > kret.setScale(k1->getScale()); > } > else > { > > Animation::InterpolationMode im = mParent->getInterpolationMode(); > Animation::RotationInterpolationMode rim = > mParent->getRotationInterpolationMode(); > Vector3 base; > switch(im) > { > case Animation::IM_LINEAR: > > > > if (rim == Animation::RIM_LINEAR) > { > kret.setRotation( Quaternion::nlerp(t, k1->getRotation(), > k2->getRotation(), mUseShortestRotationPath) ); > } > else > { > kret.setRotation( Quaternion::Slerp(t, k1->getRotation(), > k2->getRotation(), mUseShortestRotationPath) ); > } > > > base = k1->getTranslate(); > kret.setTranslate( base + ((k2->getTranslate() - base) * t) ); > > > base = k1->getScale(); > kret.setScale( base + ((k2->getScale() - base) * t) ); > break; > > case Animation::IM_SPLINE: > > > > if (mSplineBuildNeeded) > { > buildInterpolationSplines(); > } > > > kret.setRotation( mRotationSpline.interpolate(firstKeyIndex, t, > mUseShortestRotationPath) ); > > > kret.setTranslate( mPositionSpline.interpolate(firstKeyIndex, t) ); > > > kret.setScale( mScaleSpline.interpolate(firstKeyIndex, t) ); > > break; > } > > } > > return kret; > > } > > void AnimationTrack::apply(Real timePos, Real weight, bool accumulate, > Real scale) > { > applyToNode(mTargetNode, timePos, weight, accumulate, scale); > > } > > Node* AnimationTrack::getAssociatedNode(void) const > { > return mTargetNode; > } > > void AnimationTrack::setAssociatedNode(Node* node) > { > mTargetNode = node; > } > > void AnimationTrack::applyToNode(Node* node, Real timePos, Real weight, > bool accumulate, Real scl) > { > KeyFrame kf = this->getInterpolatedKeyFrame(timePos); > if (accumulate) > { > > Vector3 translate = kf.getTranslate() * weight * scl; > node->translate(translate); > > > Quaternion rotate; > Animation::RotationInterpolationMode rim = > mParent->getRotationInterpolationMode(); > if (rim == Animation::RIM_LINEAR) > { > rotate = Quaternion::nlerp(weight, Quaternion::IDENTITY, kf.getRotation()); > } > else > { > rotate = Quaternion::Slerp(weight, Quaternion::IDENTITY, kf.getRotation()); > } > node->rotate(rotate); > > Vector3 scale = kf.getScale(); > > > if (scl != 1.0f && scale != Vector3::UNIT_SCALE) > { > scale = Vector3::UNIT_SCALE + (scale - Vector3::UNIT_SCALE) * scl; > } > node->scale(scale); > } > else > { > > Vector3 scale = kf.getScale(); > if (scl != 1.0f && scale != Vector3::UNIT_SCALE) > { > scale = Vector3::UNIT_SCALE + (scale - Vector3::UNIT_SCALE) * scl; > } > node->_weightedTransform(weight, kf.getTranslate() * scl, kf.getRotation(), > scale); > } ># 358 "OgreAnimationTrack.cpp" > } > > void AnimationTrack::buildInterpolationSplines(void) const > { > > mPositionSpline.setAutoCalculate(false); > mRotationSpline.setAutoCalculate(false); > mScaleSpline.setAutoCalculate(false); > > mPositionSpline.clear(); > mRotationSpline.clear(); > mScaleSpline.clear(); > > KeyFrameList::const_iterator i, iend; > iend = mKeyFrames.end(); > for (i = mKeyFrames.begin(); i != iend; ++i) > { > mPositionSpline.addPoint((*i)->getTranslate()); > mRotationSpline.addPoint((*i)->getRotation()); > mScaleSpline.addPoint((*i)->getScale()); > } > > mPositionSpline.recalcTangents(); > mRotationSpline.recalcTangents(); > mScaleSpline.recalcTangents(); > > > mSplineBuildNeeded = false; > } > > > void AnimationTrack::setUseShortestRotationPath(bool useShortestPath) > { > mUseShortestRotationPath = useShortestPath ; > } > > > bool AnimationTrack::getUseShortestRotationPath() const > { > return mUseShortestRotationPath ; > } > > void AnimationTrack::_keyFrameDataChanged(void) const > { > mSplineBuildNeeded = true; > } > > bool AnimationTrack::hasNonZeroKeyFrames(void) const > { > KeyFrameList::const_iterator i = mKeyFrames.begin(); > for (; i != mKeyFrames.end(); ++i) > { > > > > KeyFrame* kf = *i; > Vector3 trans = kf->getTranslate(); > Vector3 scale = kf->getScale(); > Vector3 axis; > Radian angle; > kf->getRotation().ToAngleAxis(angle, axis); > Real tolerance = 1e-3f; > if (!trans.positionEquals(Vector3::ZERO, tolerance) || > !scale.positionEquals(Vector3::UNIT_SCALE, tolerance) || > !Math::RealEqual(angle.valueRadians(), 0.0f, tolerance)) > { > return true; > } > > } > > return false; > } > > void AnimationTrack::optimise(void) > { > > > > > Vector3 lasttrans; > Vector3 lastscale; > Quaternion lastorientation; > KeyFrameList::iterator i = mKeyFrames.begin(); > Radian quatTolerance(1e-3f); > std::list<unsigned short> removeList; > unsigned short k = 0; > ushort dupKfCount = 0; > for (; i != mKeyFrames.end(); ++i, ++k) > { > KeyFrame* kf = *i; > Vector3 newtrans = kf->getTranslate(); > Vector3 newscale = kf->getScale(); > Quaternion neworientation = kf->getRotation(); > > > if (i != mKeyFrames.begin() && > newtrans.positionEquals(lasttrans) && > newscale.positionEquals(lastscale) && > neworientation.equals(lastorientation, quatTolerance)) > { > ++dupKfCount; > > > if (dupKfCount == 4) > { > > removeList.push_back(k-2); > --dupKfCount; > } > } > else > { > > dupKfCount = 0; > lasttrans = newtrans; > lastscale = newscale; > lastorientation = neworientation; > } > } > > > std::list<unsigned short>::reverse_iterator r = removeList.rbegin(); > for (; r!= removeList.rend(); ++r) > { > removeKeyFrame(*r); > } > > > } > >}
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Raw
Actions:
View
Attachments on
bug 105394
:
68038
|
68039
|
68040
|
68042
| 68043 |
68044
|
68052