1 // /usr/libexec/gcc/i686-pc-linux-gnu/4.1.1/cc1plus -quiet -D_GNU_SOURCE jasmin.cpp -quiet -dumpbase jasmin.cpp -mtune=pentiumpro -auxbase-strip jasmin.o -g -g -o - -frandom-seed=0
3 # 1 "/home/viktor/skola/kompilator/main/src/be-jvm//"
14 # 1 "../ast/identifier.h" 1
15 # 18 "../ast/identifier.h"
16 # 1 "../ast/adefs.h" 1
18 # 1 "../ast/../defs.h" 1
19 # 19 "../ast/adefs.h" 2
20 # 1 "../ast/../error.h" 1
21 # 18 "../ast/../error.h"
22 # 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/string" 1 3
23 # 42 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/string" 3
25 # 43 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/string" 3
26 #pragma GCC visibility push(default)
28 # 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/i686-pc-linux-gnu/bits/c++config.h" 1 3
29 # 35 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/i686-pc-linux-gnu/bits/c++config.h" 3
30 # 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/i686-pc-linux-gnu/bits/os_defines.h" 1 3
31 # 39 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/i686-pc-linux-gnu/bits/os_defines.h" 3
32 # 1 "/usr/include/features.h" 1 3 4
33 # 323 "/usr/include/features.h" 3 4
34 # 1 "/usr/include/sys/cdefs.h" 1 3 4
35 # 313 "/usr/include/sys/cdefs.h" 3 4
36 # 1 "/usr/include/bits/wordsize.h" 1 3 4
37 # 314 "/usr/include/sys/cdefs.h" 2 3 4
38 # 324 "/usr/include/features.h" 2 3 4
39 # 346 "/usr/include/features.h" 3 4
40 # 1 "/usr/include/gnu/stubs.h" 1 3 4
44 # 1 "/usr/include/bits/wordsize.h" 1 3 4
45 # 5 "/usr/include/gnu/stubs.h" 2 3 4
48 # 1 "/usr/include/gnu/stubs-32.h" 1 3 4
49 # 8 "/usr/include/gnu/stubs.h" 2 3 4
50 # 347 "/usr/include/features.h" 2 3 4
51 # 40 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/i686-pc-linux-gnu/bits/os_defines.h" 2 3
52 # 36 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/i686-pc-linux-gnu/bits/c++config.h" 2 3
55 # 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/i686-pc-linux-gnu/bits/cpu_defines.h" 1 3
56 # 39 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/i686-pc-linux-gnu/bits/c++config.h" 2 3
61 namespace __gnu_debug_def
{ }
65 using namespace __gnu_debug_def
;
67 # 46 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/string" 2 3
68 # 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stringfwd.h" 1 3
69 # 42 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stringfwd.h" 3
71 # 43 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stringfwd.h" 3
77 template<typename _Alloc
>
80 template<class _CharT
>
83 template<typename _CharT
, typename _Traits
= char_traits
<_CharT
>,
84 typename _Alloc
= allocator
<_CharT
> >
87 template<> struct char_traits
<char>;
89 typedef basic_string
<char> string
;
92 template<> struct char_traits
<wchar_t>;
94 typedef basic_string
<wchar_t> wstring
;
97 # 47 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/string" 2 3
98 # 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/char_traits.h" 1 3
99 # 43 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/char_traits.h" 3
101 # 44 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/char_traits.h" 3
103 # 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/cstring" 1 3
104 # 48 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/cstring" 3
106 # 49 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/cstring" 3
107 #pragma GCC visibility push(default)
109 # 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/cstddef" 1 3
110 # 48 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/cstddef" 3
112 # 49 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/cstddef" 3
113 #pragma GCC visibility push(default)
115 # 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/stddef.h" 1 3 4
116 # 152 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/stddef.h" 3 4
117 typedef int ptrdiff_t;
118 # 214 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/stddef.h" 3 4
119 typedef unsigned int size_t;
120 # 52 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/cstddef" 2 3
128 #pragma GCC visibility pop
129 # 52 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/cstring" 2 3
131 # 1 "/usr/include/string.h" 1 3 4
132 # 28 "/usr/include/string.h" 3 4
138 # 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/stddef.h" 1 3 4
139 # 34 "/usr/include/string.h" 2 3 4
144 extern void *memcpy (void *__restrict __dest
,
145 __const
void *__restrict __src
, size_t __n
)
146 throw () __attribute__ ((__nonnull__ (1, 2)));
149 extern void *memmove (void *__dest
, __const
void *__src
, size_t __n
)
150 throw () __attribute__ ((__nonnull__ (1, 2)));
157 extern void *memccpy (void *__restrict __dest
, __const
void *__restrict __src
,
159 throw () __attribute__ ((__nonnull__ (1, 2)));
165 extern void *memset (void *__s
, int __c
, size_t __n
) throw () __attribute__ ((__nonnull__ (1)));
168 extern int memcmp (__const
void *__s1
, __const
void *__s2
, size_t __n
)
169 throw () __attribute__ ((__pure__
)) __attribute__ ((__nonnull__ (1, 2)));
172 extern void *memchr (__const
void *__s
, int __c
, size_t __n
)
173 throw () __attribute__ ((__pure__
)) __attribute__ ((__nonnull__ (1)));
179 extern void *rawmemchr (__const
void *__s
, int __c
)
180 throw () __attribute__ ((__pure__
)) __attribute__ ((__nonnull__ (1)));
183 extern void *memrchr (__const
void *__s
, int __c
, size_t __n
)
184 throw () __attribute__ ((__pure__
)) __attribute__ ((__nonnull__ (1)));
190 extern char *strcpy (char *__restrict __dest
, __const
char *__restrict __src
)
191 throw () __attribute__ ((__nonnull__ (1, 2)));
193 extern char *strncpy (char *__restrict __dest
,
194 __const
char *__restrict __src
, size_t __n
)
195 throw () __attribute__ ((__nonnull__ (1, 2)));
198 extern char *strcat (char *__restrict __dest
, __const
char *__restrict __src
)
199 throw () __attribute__ ((__nonnull__ (1, 2)));
201 extern char *strncat (char *__restrict __dest
, __const
char *__restrict __src
,
202 size_t __n
) throw () __attribute__ ((__nonnull__ (1, 2)));
205 extern int strcmp (__const
char *__s1
, __const
char *__s2
)
206 throw () __attribute__ ((__pure__
)) __attribute__ ((__nonnull__ (1, 2)));
208 extern int strncmp (__const
char *__s1
, __const
char *__s2
, size_t __n
)
209 throw () __attribute__ ((__pure__
)) __attribute__ ((__nonnull__ (1, 2)));
212 extern int strcoll (__const
char *__s1
, __const
char *__s2
)
213 throw () __attribute__ ((__pure__
)) __attribute__ ((__nonnull__ (1, 2)));
215 extern size_t strxfrm (char *__restrict __dest
,
216 __const
char *__restrict __src
, size_t __n
)
217 throw () __attribute__ ((__nonnull__ (2)));
224 # 1 "/usr/include/xlocale.h" 1 3 4
225 # 28 "/usr/include/xlocale.h" 3 4
226 typedef struct __locale_struct
229 struct locale_data
*__locales
[13];
232 const unsigned short int *__ctype_b
;
233 const int *__ctype_tolower
;
234 const int *__ctype_toupper
;
237 const char *__names
[13];
239 # 119 "/usr/include/string.h" 2 3 4
242 extern int strcoll_l (__const
char *__s1
, __const
char *__s2
, __locale_t __l
)
243 throw () __attribute__ ((__pure__
)) __attribute__ ((__nonnull__ (1, 2, 3)));
245 extern size_t strxfrm_l (char *__dest
, __const
char *__src
, size_t __n
,
246 __locale_t __l
) throw () __attribute__ ((__nonnull__ (2, 4)));
251 extern char *strdup (__const
char *__s
)
252 throw () __attribute__ ((__malloc__
)) __attribute__ ((__nonnull__ (1)));
259 extern char *strndup (__const
char *__string
, size_t __n
)
260 throw () __attribute__ ((__malloc__
)) __attribute__ ((__nonnull__ (1)));
261 # 165 "/usr/include/string.h" 3 4
264 extern char *strchr (__const
char *__s
, int __c
)
265 throw () __attribute__ ((__pure__
)) __attribute__ ((__nonnull__ (1)));
267 extern char *strrchr (__const
char *__s
, int __c
)
268 throw () __attribute__ ((__pure__
)) __attribute__ ((__nonnull__ (1)));
274 extern char *strchrnul (__const
char *__s
, int __c
)
275 throw () __attribute__ ((__pure__
)) __attribute__ ((__nonnull__ (1)));
281 extern size_t strcspn (__const
char *__s
, __const
char *__reject
)
282 throw () __attribute__ ((__pure__
)) __attribute__ ((__nonnull__ (1, 2)));
285 extern size_t strspn (__const
char *__s
, __const
char *__accept
)
286 throw () __attribute__ ((__pure__
)) __attribute__ ((__nonnull__ (1, 2)));
288 extern char *strpbrk (__const
char *__s
, __const
char *__accept
)
289 throw () __attribute__ ((__pure__
)) __attribute__ ((__nonnull__ (1, 2)));
291 extern char *strstr (__const
char *__haystack
, __const
char *__needle
)
292 throw () __attribute__ ((__pure__
)) __attribute__ ((__nonnull__ (1, 2)));
296 extern char *strtok (char *__restrict __s
, __const
char *__restrict __delim
)
297 throw () __attribute__ ((__nonnull__ (2)));
302 extern char *__strtok_r (char *__restrict __s
,
303 __const
char *__restrict __delim
,
304 char **__restrict __save_ptr
)
305 throw () __attribute__ ((__nonnull__ (2, 3)));
307 extern char *strtok_r (char *__restrict __s
, __const
char *__restrict __delim
,
308 char **__restrict __save_ptr
)
309 throw () __attribute__ ((__nonnull__ (2, 3)));
314 extern char *strcasestr (__const
char *__haystack
, __const
char *__needle
)
315 throw () __attribute__ ((__pure__
)) __attribute__ ((__nonnull__ (1, 2)));
322 extern void *memmem (__const
void *__haystack
, size_t __haystacklen
,
323 __const
void *__needle
, size_t __needlelen
)
324 throw () __attribute__ ((__pure__
)) __attribute__ ((__nonnull__ (1, 3)));
328 extern void *__mempcpy (void *__restrict __dest
,
329 __const
void *__restrict __src
, size_t __n
)
330 throw () __attribute__ ((__nonnull__ (1, 2)));
331 extern void *mempcpy (void *__restrict __dest
,
332 __const
void *__restrict __src
, size_t __n
)
333 throw () __attribute__ ((__nonnull__ (1, 2)));
339 extern size_t strlen (__const
char *__s
)
340 throw () __attribute__ ((__pure__
)) __attribute__ ((__nonnull__ (1)));
346 extern size_t strnlen (__const
char *__string
, size_t __maxlen
)
347 throw () __attribute__ ((__pure__
)) __attribute__ ((__nonnull__ (1)));
353 extern char *strerror (int __errnum
) throw ();
355 # 281 "/usr/include/string.h" 3 4
356 extern char *strerror_r (int __errnum
, char *__buf
, size_t __buflen
)
357 throw () __attribute__ ((__nonnull__ (2)));
363 extern void __bzero (void *__s
, size_t __n
) throw () __attribute__ ((__nonnull__ (1)));
367 extern void bcopy (__const
void *__src
, void *__dest
, size_t __n
)
368 throw () __attribute__ ((__nonnull__ (1, 2)));
371 extern void bzero (void *__s
, size_t __n
) throw () __attribute__ ((__nonnull__ (1)));
374 extern int bcmp (__const
void *__s1
, __const
void *__s2
, size_t __n
)
375 throw () __attribute__ ((__pure__
)) __attribute__ ((__nonnull__ (1, 2)));
378 extern char *index (__const
char *__s
, int __c
)
379 throw () __attribute__ ((__pure__
)) __attribute__ ((__nonnull__ (1)));
382 extern char *rindex (__const
char *__s
, int __c
)
383 throw () __attribute__ ((__pure__
)) __attribute__ ((__nonnull__ (1)));
387 extern int ffs (int __i
) throw () __attribute__ ((__const__
));
392 extern int ffsl (long int __l
) throw () __attribute__ ((__const__
));
394 __extension__
extern int ffsll (long long int __ll
)
395 throw () __attribute__ ((__const__
));
400 extern int strcasecmp (__const
char *__s1
, __const
char *__s2
)
401 throw () __attribute__ ((__pure__
)) __attribute__ ((__nonnull__ (1, 2)));
404 extern int strncasecmp (__const
char *__s1
, __const
char *__s2
, size_t __n
)
405 throw () __attribute__ ((__pure__
)) __attribute__ ((__nonnull__ (1, 2)));
411 extern int strcasecmp_l (__const
char *__s1
, __const
char *__s2
,
413 throw () __attribute__ ((__pure__
)) __attribute__ ((__nonnull__ (1, 2, 3)));
415 extern int strncasecmp_l (__const
char *__s1
, __const
char *__s2
,
416 size_t __n
, __locale_t __loc
)
417 throw () __attribute__ ((__pure__
)) __attribute__ ((__nonnull__ (1, 2, 4)));
423 extern char *strsep (char **__restrict __stringp
,
424 __const
char *__restrict __delim
)
425 throw () __attribute__ ((__nonnull__ (1, 2)));
430 extern int strverscmp (__const
char *__s1
, __const
char *__s2
)
431 throw () __attribute__ ((__pure__
)) __attribute__ ((__nonnull__ (1, 2)));
434 extern char *strsignal (int __sig
) throw ();
437 extern char *__stpcpy (char *__restrict __dest
, __const
char *__restrict __src
)
438 throw () __attribute__ ((__nonnull__ (1, 2)));
439 extern char *stpcpy (char *__restrict __dest
, __const
char *__restrict __src
)
440 throw () __attribute__ ((__nonnull__ (1, 2)));
444 extern char *__stpncpy (char *__restrict __dest
,
445 __const
char *__restrict __src
, size_t __n
)
446 throw () __attribute__ ((__nonnull__ (1, 2)));
447 extern char *stpncpy (char *__restrict __dest
,
448 __const
char *__restrict __src
, size_t __n
)
449 throw () __attribute__ ((__nonnull__ (1, 2)));
452 extern char *strfry (char *__string
) throw () __attribute__ ((__nonnull__ (1)));
455 extern void *memfrob (void *__s
, size_t __n
) throw () __attribute__ ((__nonnull__ (1)));
462 extern char *basename (__const
char *__filename
) throw () __attribute__ ((__nonnull__ (1)));
463 # 426 "/usr/include/string.h" 3 4
465 # 54 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/cstring" 2 3
466 # 79 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/cstring" 3
490 memchr(void* __p
, int __c
, size_t __n
)
491 { return memchr(const_cast<const void*>(__p
), __c
, __n
); }
496 strchr(char* __s1
, int __n
)
497 { return __builtin_strchr(const_cast<const char*>(__s1
), __n
); }
502 strpbrk(char* __s1
, const char* __s2
)
503 { return __builtin_strpbrk(const_cast<const char*>(__s1
), __s2
); }
508 strrchr(char* __s1
, int __n
)
509 { return __builtin_strrchr(const_cast<const char*>(__s1
), __n
); }
514 strstr(char* __s1
, const char* __s2
)
515 { return __builtin_strstr(const_cast<const char*>(__s1
), __s2
); }
518 #pragma GCC visibility pop
519 # 46 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/char_traits.h" 2 3
520 # 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algobase.h" 1 3
521 # 66 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algobase.h" 3
522 # 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/climits" 1 3
523 # 48 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/climits" 3
525 # 49 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/climits" 3
526 #pragma GCC visibility push(default)
528 # 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/limits.h" 1 3 4
529 # 11 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/limits.h" 3 4
530 # 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/syslimits.h" 1 3 4
537 # 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/limits.h" 1 3 4
538 # 122 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/limits.h" 3 4
539 # 1 "/usr/include/limits.h" 1 3 4
540 # 145 "/usr/include/limits.h" 3 4
541 # 1 "/usr/include/bits/posix1_lim.h" 1 3 4
542 # 153 "/usr/include/bits/posix1_lim.h" 3 4
543 # 1 "/usr/include/bits/local_lim.h" 1 3 4
544 # 36 "/usr/include/bits/local_lim.h" 3 4
545 # 1 "/usr/include/linux/limits.h" 1 3 4
546 # 37 "/usr/include/bits/local_lim.h" 2 3 4
547 # 154 "/usr/include/bits/posix1_lim.h" 2 3 4
548 # 146 "/usr/include/limits.h" 2 3 4
552 # 1 "/usr/include/bits/posix2_lim.h" 1 3 4
553 # 150 "/usr/include/limits.h" 2 3 4
557 # 1 "/usr/include/bits/xopen_lim.h" 1 3 4
558 # 34 "/usr/include/bits/xopen_lim.h" 3 4
559 # 1 "/usr/include/bits/stdio_lim.h" 1 3 4
560 # 35 "/usr/include/bits/xopen_lim.h" 2 3 4
561 # 154 "/usr/include/limits.h" 2 3 4
562 # 123 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/limits.h" 2 3 4
563 # 8 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/syslimits.h" 2 3 4
564 # 12 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/limits.h" 2 3 4
565 # 52 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/climits" 2 3
567 #pragma GCC visibility pop
568 # 67 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algobase.h" 2 3
569 # 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/cstdlib" 1 3
570 # 48 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/cstdlib" 3
572 # 49 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/cstdlib" 3
573 #pragma GCC visibility push(default)
574 # 72 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/cstdlib" 3
575 # 1 "/usr/include/stdlib.h" 1 3 4
576 # 33 "/usr/include/stdlib.h" 3 4
577 # 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/stddef.h" 1 3 4
578 # 34 "/usr/include/stdlib.h" 2 3 4
587 # 1 "/usr/include/bits/waitflags.h" 1 3 4
588 # 43 "/usr/include/stdlib.h" 2 3 4
589 # 1 "/usr/include/bits/waitstatus.h" 1 3 4
590 # 65 "/usr/include/bits/waitstatus.h" 3 4
591 # 1 "/usr/include/endian.h" 1 3 4
592 # 37 "/usr/include/endian.h" 3 4
593 # 1 "/usr/include/bits/endian.h" 1 3 4
594 # 38 "/usr/include/endian.h" 2 3 4
595 # 66 "/usr/include/bits/waitstatus.h" 2 3 4
603 unsigned int __w_termsig
:7;
604 unsigned int __w_coredump
:1;
605 unsigned int __w_retcode
:8;
618 unsigned int __w_stopval
:8;
619 unsigned int __w_stopsig
:8;
629 # 44 "/usr/include/stdlib.h" 2 3 4
630 # 96 "/usr/include/stdlib.h" 3 4
653 __extension__
typedef struct
660 # 140 "/usr/include/stdlib.h" 3 4
661 extern size_t __ctype_get_mb_cur_max (void) throw () ;
666 extern double atof (__const
char *__nptr
)
667 throw () __attribute__ ((__pure__
)) __attribute__ ((__nonnull__ (1))) ;
669 extern int atoi (__const
char *__nptr
)
670 throw () __attribute__ ((__pure__
)) __attribute__ ((__nonnull__ (1))) ;
672 extern long int atol (__const
char *__nptr
)
673 throw () __attribute__ ((__pure__
)) __attribute__ ((__nonnull__ (1))) ;
679 __extension__
extern long long int atoll (__const
char *__nptr
)
680 throw () __attribute__ ((__pure__
)) __attribute__ ((__nonnull__ (1))) ;
686 extern double strtod (__const
char *__restrict __nptr
,
687 char **__restrict __endptr
)
688 throw () __attribute__ ((__nonnull__ (1))) ;
694 extern float strtof (__const
char *__restrict __nptr
,
695 char **__restrict __endptr
) throw () __attribute__ ((__nonnull__ (1))) ;
697 extern long double strtold (__const
char *__restrict __nptr
,
698 char **__restrict __endptr
)
699 throw () __attribute__ ((__nonnull__ (1))) ;
705 extern long int strtol (__const
char *__restrict __nptr
,
706 char **__restrict __endptr
, int __base
)
707 throw () __attribute__ ((__nonnull__ (1))) ;
709 extern unsigned long int strtoul (__const
char *__restrict __nptr
,
710 char **__restrict __endptr
, int __base
)
711 throw () __attribute__ ((__nonnull__ (1))) ;
717 extern long long int strtoq (__const
char *__restrict __nptr
,
718 char **__restrict __endptr
, int __base
)
719 throw () __attribute__ ((__nonnull__ (1))) ;
722 extern unsigned long long int strtouq (__const
char *__restrict __nptr
,
723 char **__restrict __endptr
, int __base
)
724 throw () __attribute__ ((__nonnull__ (1))) ;
731 extern long long int strtoll (__const
char *__restrict __nptr
,
732 char **__restrict __endptr
, int __base
)
733 throw () __attribute__ ((__nonnull__ (1))) ;
736 extern unsigned long long int strtoull (__const
char *__restrict __nptr
,
737 char **__restrict __endptr
, int __base
)
738 throw () __attribute__ ((__nonnull__ (1))) ;
740 # 240 "/usr/include/stdlib.h" 3 4
741 extern long int strtol_l (__const
char *__restrict __nptr
,
742 char **__restrict __endptr
, int __base
,
743 __locale_t __loc
) throw () __attribute__ ((__nonnull__ (1, 4))) ;
745 extern unsigned long int strtoul_l (__const
char *__restrict __nptr
,
746 char **__restrict __endptr
,
747 int __base
, __locale_t __loc
)
748 throw () __attribute__ ((__nonnull__ (1, 4))) ;
751 extern long long int strtoll_l (__const
char *__restrict __nptr
,
752 char **__restrict __endptr
, int __base
,
754 throw () __attribute__ ((__nonnull__ (1, 4))) ;
757 extern unsigned long long int strtoull_l (__const
char *__restrict __nptr
,
758 char **__restrict __endptr
,
759 int __base
, __locale_t __loc
)
760 throw () __attribute__ ((__nonnull__ (1, 4))) ;
762 extern double strtod_l (__const
char *__restrict __nptr
,
763 char **__restrict __endptr
, __locale_t __loc
)
764 throw () __attribute__ ((__nonnull__ (1, 3))) ;
766 extern float strtof_l (__const
char *__restrict __nptr
,
767 char **__restrict __endptr
, __locale_t __loc
)
768 throw () __attribute__ ((__nonnull__ (1, 3))) ;
770 extern long double strtold_l (__const
char *__restrict __nptr
,
771 char **__restrict __endptr
,
773 throw () __attribute__ ((__nonnull__ (1, 3))) ;
780 extern double __strtod_internal (__const
char *__restrict __nptr
,
781 char **__restrict __endptr
, int __group
)
782 throw () __attribute__ ((__nonnull__ (1))) ;
783 extern float __strtof_internal (__const
char *__restrict __nptr
,
784 char **__restrict __endptr
, int __group
)
785 throw () __attribute__ ((__nonnull__ (1))) ;
786 extern long double __strtold_internal (__const
char *__restrict __nptr
,
787 char **__restrict __endptr
,
789 throw () __attribute__ ((__nonnull__ (1))) ;
791 extern long int __strtol_internal (__const
char *__restrict __nptr
,
792 char **__restrict __endptr
,
793 int __base
, int __group
)
794 throw () __attribute__ ((__nonnull__ (1))) ;
798 extern unsigned long int __strtoul_internal (__const
char *__restrict __nptr
,
799 char **__restrict __endptr
,
800 int __base
, int __group
)
801 throw () __attribute__ ((__nonnull__ (1))) ;
807 extern long long int __strtoll_internal (__const
char *__restrict __nptr
,
808 char **__restrict __endptr
,
809 int __base
, int __group
)
810 throw () __attribute__ ((__nonnull__ (1))) ;
815 extern unsigned long long int __strtoull_internal (__const
char *
817 char **__restrict __endptr
,
818 int __base
, int __group
)
819 throw () __attribute__ ((__nonnull__ (1))) ;
820 # 429 "/usr/include/stdlib.h" 3 4
821 extern char *l64a (long int __n
) throw () ;
824 extern long int a64l (__const
char *__s
)
825 throw () __attribute__ ((__pure__
)) __attribute__ ((__nonnull__ (1))) ;
830 # 1 "/usr/include/sys/types.h" 1 3 4
831 # 29 "/usr/include/sys/types.h" 3 4
834 # 1 "/usr/include/bits/types.h" 1 3 4
835 # 28 "/usr/include/bits/types.h" 3 4
836 # 1 "/usr/include/bits/wordsize.h" 1 3 4
837 # 29 "/usr/include/bits/types.h" 2 3 4
840 # 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/stddef.h" 1 3 4
841 # 32 "/usr/include/bits/types.h" 2 3 4
844 typedef unsigned char __u_char
;
845 typedef unsigned short int __u_short
;
846 typedef unsigned int __u_int
;
847 typedef unsigned long int __u_long
;
850 typedef signed char __int8_t
;
851 typedef unsigned char __uint8_t
;
852 typedef signed short int __int16_t
;
853 typedef unsigned short int __uint16_t
;
854 typedef signed int __int32_t
;
855 typedef unsigned int __uint32_t
;
860 __extension__
typedef signed long long int __int64_t
;
861 __extension__
typedef unsigned long long int __uint64_t
;
869 __extension__
typedef long long int __quad_t
;
870 __extension__
typedef unsigned long long int __u_quad_t
;
871 # 134 "/usr/include/bits/types.h" 3 4
872 # 1 "/usr/include/bits/typesizes.h" 1 3 4
873 # 135 "/usr/include/bits/types.h" 2 3 4
876 __extension__
typedef __u_quad_t __dev_t
;
877 __extension__
typedef unsigned int __uid_t
;
878 __extension__
typedef unsigned int __gid_t
;
879 __extension__
typedef unsigned long int __ino_t
;
880 __extension__
typedef __u_quad_t __ino64_t
;
881 __extension__
typedef unsigned int __mode_t
;
882 __extension__
typedef unsigned int __nlink_t
;
883 __extension__
typedef long int __off_t
;
884 __extension__
typedef __quad_t __off64_t
;
885 __extension__
typedef int __pid_t
;
886 __extension__
typedef struct { int __val
[2]; } __fsid_t
;
887 __extension__
typedef long int __clock_t
;
888 __extension__
typedef unsigned long int __rlim_t
;
889 __extension__
typedef __u_quad_t __rlim64_t
;
890 __extension__
typedef unsigned int __id_t
;
891 __extension__
typedef long int __time_t
;
892 __extension__
typedef unsigned int __useconds_t
;
893 __extension__
typedef long int __suseconds_t
;
895 __extension__
typedef int __daddr_t
;
896 __extension__
typedef long int __swblk_t
;
897 __extension__
typedef int __key_t
;
900 __extension__
typedef int __clockid_t
;
903 __extension__
typedef void * __timer_t
;
906 __extension__
typedef long int __blksize_t
;
911 __extension__
typedef long int __blkcnt_t
;
912 __extension__
typedef __quad_t __blkcnt64_t
;
915 __extension__
typedef unsigned long int __fsblkcnt_t
;
916 __extension__
typedef __u_quad_t __fsblkcnt64_t
;
919 __extension__
typedef unsigned long int __fsfilcnt_t
;
920 __extension__
typedef __u_quad_t __fsfilcnt64_t
;
922 __extension__
typedef int __ssize_t
;
926 typedef __off64_t __loff_t
;
927 typedef __quad_t
*__qaddr_t
;
928 typedef char *__caddr_t
;
931 __extension__
typedef int __intptr_t
;
934 __extension__
typedef unsigned int __socklen_t
;
935 # 32 "/usr/include/sys/types.h" 2 3 4
939 typedef __u_char u_char
;
940 typedef __u_short u_short
;
941 typedef __u_int u_int
;
942 typedef __u_long u_long
;
943 typedef __quad_t quad_t
;
944 typedef __u_quad_t u_quad_t
;
945 typedef __fsid_t fsid_t
;
950 typedef __loff_t loff_t
;
954 typedef __ino_t ino_t
;
961 typedef __ino64_t ino64_t
;
966 typedef __dev_t dev_t
;
971 typedef __gid_t gid_t
;
976 typedef __mode_t mode_t
;
981 typedef __nlink_t nlink_t
;
986 typedef __uid_t uid_t
;
992 typedef __off_t off_t
;
999 typedef __off64_t off64_t
;
1004 typedef __pid_t pid_t
;
1009 typedef __id_t id_t
;
1014 typedef __ssize_t ssize_t
;
1020 typedef __daddr_t daddr_t
;
1021 typedef __caddr_t caddr_t
;
1027 typedef __key_t key_t
;
1028 # 133 "/usr/include/sys/types.h" 3 4
1029 # 1 "/usr/include/time.h" 1 3 4
1030 # 59 "/usr/include/time.h" 3 4
1033 typedef __clock_t
clock_t;
1037 # 75 "/usr/include/time.h" 3 4
1040 typedef __time_t
time_t;
1044 # 93 "/usr/include/time.h" 3 4
1045 typedef __clockid_t clockid_t
;
1046 # 105 "/usr/include/time.h" 3 4
1047 typedef __timer_t timer_t
;
1048 # 134 "/usr/include/sys/types.h" 2 3 4
1052 typedef __useconds_t useconds_t
;
1056 typedef __suseconds_t suseconds_t
;
1062 # 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/stddef.h" 1 3 4
1063 # 148 "/usr/include/sys/types.h" 2 3 4
1067 typedef unsigned long int ulong
;
1068 typedef unsigned short int ushort
;
1069 typedef unsigned int uint
;
1070 # 195 "/usr/include/sys/types.h" 3 4
1071 typedef int int8_t __attribute__ ((__mode__ (__QI__
)));
1072 typedef int int16_t __attribute__ ((__mode__ (__HI__
)));
1073 typedef int int32_t __attribute__ ((__mode__ (__SI__
)));
1074 typedef int int64_t __attribute__ ((__mode__ (__DI__
)));
1077 typedef unsigned int u_int8_t
__attribute__ ((__mode__ (__QI__
)));
1078 typedef unsigned int u_int16_t
__attribute__ ((__mode__ (__HI__
)));
1079 typedef unsigned int u_int32_t
__attribute__ ((__mode__ (__SI__
)));
1080 typedef unsigned int u_int64_t
__attribute__ ((__mode__ (__DI__
)));
1082 typedef int register_t
__attribute__ ((__mode__ (__word__
)));
1083 # 220 "/usr/include/sys/types.h" 3 4
1084 # 1 "/usr/include/sys/select.h" 1 3 4
1085 # 31 "/usr/include/sys/select.h" 3 4
1086 # 1 "/usr/include/bits/select.h" 1 3 4
1087 # 32 "/usr/include/sys/select.h" 2 3 4
1090 # 1 "/usr/include/bits/sigset.h" 1 3 4
1091 # 23 "/usr/include/bits/sigset.h" 3 4
1092 typedef int __sig_atomic_t
;
1099 unsigned long int __val
[(1024 / (8 * sizeof (unsigned long int)))];
1101 # 35 "/usr/include/sys/select.h" 2 3 4
1105 typedef __sigset_t sigset_t
;
1111 # 1 "/usr/include/time.h" 1 3 4
1112 # 121 "/usr/include/time.h" 3 4
1118 # 45 "/usr/include/sys/select.h" 2 3 4
1120 # 1 "/usr/include/bits/time.h" 1 3 4
1121 # 69 "/usr/include/bits/time.h" 3 4
1125 __suseconds_t tv_usec
;
1127 # 47 "/usr/include/sys/select.h" 2 3 4
1128 # 55 "/usr/include/sys/select.h" 3 4
1129 typedef long int __fd_mask
;
1130 # 67 "/usr/include/sys/select.h" 3 4
1136 __fd_mask fds_bits
[1024 / (8 * sizeof (__fd_mask
))];
1149 typedef __fd_mask fd_mask
;
1150 # 99 "/usr/include/sys/select.h" 3 4
1152 # 109 "/usr/include/sys/select.h" 3 4
1153 extern int select (int __nfds
, fd_set
*__restrict __readfds
,
1154 fd_set
*__restrict __writefds
,
1155 fd_set
*__restrict __exceptfds
,
1156 struct timeval
*__restrict __timeout
);
1157 # 121 "/usr/include/sys/select.h" 3 4
1158 extern int pselect (int __nfds
, fd_set
*__restrict __readfds
,
1159 fd_set
*__restrict __writefds
,
1160 fd_set
*__restrict __exceptfds
,
1161 const struct timespec
*__restrict __timeout
,
1162 const __sigset_t
*__restrict __sigmask
);
1166 # 221 "/usr/include/sys/types.h" 2 3 4
1169 # 1 "/usr/include/sys/sysmacros.h" 1 3 4
1170 # 29 "/usr/include/sys/sysmacros.h" 3 4
1172 extern __inline
unsigned int gnu_dev_major (unsigned long long int __dev
)
1175 extern __inline
unsigned int gnu_dev_minor (unsigned long long int __dev
)
1178 extern __inline
unsigned long long int gnu_dev_makedev (unsigned int __major
,
1179 unsigned int __minor
)
1183 __extension__
extern __inline
unsigned int
1184 gnu_dev_major (unsigned long long int __dev
) throw ()
1186 return ((__dev
>> 8) & 0xfff) | ((unsigned int) (__dev
>> 32) & ~0xfff);
1189 __extension__
extern __inline
unsigned int
1190 gnu_dev_minor (unsigned long long int __dev
) throw ()
1192 return (__dev
& 0xff) | ((unsigned int) (__dev
>> 12) & ~0xff);
1195 __extension__
extern __inline
unsigned long long int
1196 gnu_dev_makedev (unsigned int __major
, unsigned int __minor
) throw ()
1198 return ((__minor
& 0xff) | ((__major
& 0xfff) << 8)
1199 | (((unsigned long long int) (__minor
& ~0xff)) << 12)
1200 | (((unsigned long long int) (__major
& ~0xfff)) << 32));
1202 # 224 "/usr/include/sys/types.h" 2 3 4
1207 typedef __blksize_t blksize_t
;
1214 typedef __blkcnt_t blkcnt_t
;
1218 typedef __fsblkcnt_t fsblkcnt_t
;
1222 typedef __fsfilcnt_t fsfilcnt_t
;
1223 # 262 "/usr/include/sys/types.h" 3 4
1224 typedef __blkcnt64_t blkcnt64_t
;
1225 typedef __fsblkcnt64_t fsblkcnt64_t
;
1226 typedef __fsfilcnt64_t fsfilcnt64_t
;
1232 # 1 "/usr/include/bits/pthreadtypes.h" 1 3 4
1233 # 36 "/usr/include/bits/pthreadtypes.h" 3 4
1234 typedef unsigned long int pthread_t
;
1244 typedef struct __pthread_internal_slist
1246 struct __pthread_internal_slist
*__next
;
1247 } __pthread_slist_t
;
1254 struct __pthread_mutex_s
1257 unsigned int __count
;
1262 unsigned int __nusers
;
1266 __pthread_slist_t __list
;
1277 } pthread_mutexattr_t
;
1287 unsigned int __futex
;
1288 __extension__
unsigned long long int __total_seq
;
1289 __extension__
unsigned long long int __wakeup_seq
;
1290 __extension__
unsigned long long int __woken_seq
;
1292 unsigned int __nwaiters
;
1293 unsigned int __broadcast_seq
;
1296 __extension__
long long int __align
;
1303 } pthread_condattr_t
;
1307 typedef unsigned int pthread_key_t
;
1311 typedef int pthread_once_t
;
1322 unsigned int __nr_readers
;
1323 unsigned int __readers_wakeup
;
1324 unsigned int __writer_wakeup
;
1325 unsigned int __nr_readers_queued
;
1326 unsigned int __nr_writers_queued
;
1329 unsigned int __flags
;
1340 } pthread_rwlockattr_t
;
1346 typedef volatile int pthread_spinlock_t
;
1355 } pthread_barrier_t
;
1361 } pthread_barrierattr_t
;
1362 # 271 "/usr/include/sys/types.h" 2 3 4
1366 # 439 "/usr/include/stdlib.h" 2 3 4
1373 extern long int random (void) throw ();
1376 extern void srandom (unsigned int __seed
) throw ();
1382 extern char *initstate (unsigned int __seed
, char *__statebuf
,
1383 size_t __statelen
) throw () __attribute__ ((__nonnull__ (2)));
1387 extern char *setstate (char *__statebuf
) throw () __attribute__ ((__nonnull__ (1)));
1406 extern int random_r (struct random_data
*__restrict __buf
,
1407 int32_t *__restrict __result
) throw () __attribute__ ((__nonnull__ (1, 2)));
1409 extern int srandom_r (unsigned int __seed
, struct random_data
*__buf
)
1410 throw () __attribute__ ((__nonnull__ (2)));
1412 extern int initstate_r (unsigned int __seed
, char *__restrict __statebuf
,
1414 struct random_data
*__restrict __buf
)
1415 throw () __attribute__ ((__nonnull__ (2, 4)));
1417 extern int setstate_r (char *__restrict __statebuf
,
1418 struct random_data
*__restrict __buf
)
1419 throw () __attribute__ ((__nonnull__ (1, 2)));
1426 extern int rand (void) throw ();
1428 extern void srand (unsigned int __seed
) throw ();
1433 extern int rand_r (unsigned int *__seed
) throw ();
1441 extern double drand48 (void) throw ();
1442 extern double erand48 (unsigned short int __xsubi
[3]) throw () __attribute__ ((__nonnull__ (1)));
1445 extern long int lrand48 (void) throw ();
1446 extern long int nrand48 (unsigned short int __xsubi
[3])
1447 throw () __attribute__ ((__nonnull__ (1)));
1450 extern long int mrand48 (void) throw ();
1451 extern long int jrand48 (unsigned short int __xsubi
[3])
1452 throw () __attribute__ ((__nonnull__ (1)));
1455 extern void srand48 (long int __seedval
) throw ();
1456 extern unsigned short int *seed48 (unsigned short int __seed16v
[3])
1457 throw () __attribute__ ((__nonnull__ (1)));
1458 extern void lcong48 (unsigned short int __param
[7]) throw () __attribute__ ((__nonnull__ (1)));
1466 unsigned short int __x
[3];
1467 unsigned short int __old_x
[3];
1468 unsigned short int __c
;
1469 unsigned short int __init
;
1470 unsigned long long int __a
;
1474 extern int drand48_r (struct drand48_data
*__restrict __buffer
,
1475 double *__restrict __result
) throw () __attribute__ ((__nonnull__ (1, 2)));
1476 extern int erand48_r (unsigned short int __xsubi
[3],
1477 struct drand48_data
*__restrict __buffer
,
1478 double *__restrict __result
) throw () __attribute__ ((__nonnull__ (1, 2)));
1481 extern int lrand48_r (struct drand48_data
*__restrict __buffer
,
1482 long int *__restrict __result
)
1483 throw () __attribute__ ((__nonnull__ (1, 2)));
1484 extern int nrand48_r (unsigned short int __xsubi
[3],
1485 struct drand48_data
*__restrict __buffer
,
1486 long int *__restrict __result
)
1487 throw () __attribute__ ((__nonnull__ (1, 2)));
1490 extern int mrand48_r (struct drand48_data
*__restrict __buffer
,
1491 long int *__restrict __result
)
1492 throw () __attribute__ ((__nonnull__ (1, 2)));
1493 extern int jrand48_r (unsigned short int __xsubi
[3],
1494 struct drand48_data
*__restrict __buffer
,
1495 long int *__restrict __result
)
1496 throw () __attribute__ ((__nonnull__ (1, 2)));
1499 extern int srand48_r (long int __seedval
, struct drand48_data
*__buffer
)
1500 throw () __attribute__ ((__nonnull__ (2)));
1502 extern int seed48_r (unsigned short int __seed16v
[3],
1503 struct drand48_data
*__buffer
) throw () __attribute__ ((__nonnull__ (1, 2)));
1505 extern int lcong48_r (unsigned short int __param
[7],
1506 struct drand48_data
*__buffer
)
1507 throw () __attribute__ ((__nonnull__ (1, 2)));
1517 extern void *malloc (size_t __size
) throw () __attribute__ ((__malloc__
)) ;
1519 extern void *calloc (size_t __nmemb
, size_t __size
)
1520 throw () __attribute__ ((__malloc__
)) ;
1528 extern void *realloc (void *__ptr
, size_t __size
)
1529 throw () __attribute__ ((__malloc__
)) __attribute__ ((__warn_unused_result__
));
1531 extern void free (void *__ptr
) throw ();
1536 extern void cfree (void *__ptr
) throw ();
1540 # 1 "/usr/include/alloca.h" 1 3 4
1541 # 25 "/usr/include/alloca.h" 3 4
1542 # 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/stddef.h" 1 3 4
1543 # 26 "/usr/include/alloca.h" 2 3 4
1551 extern void *alloca (size_t __size
) throw ();
1558 # 613 "/usr/include/stdlib.h" 2 3 4
1563 extern void *valloc (size_t __size
) throw () __attribute__ ((__malloc__
)) ;
1568 extern int posix_memalign (void **__memptr
, size_t __alignment
, size_t __size
)
1569 throw () __attribute__ ((__nonnull__ (1))) ;
1574 extern void abort (void) throw () __attribute__ ((__noreturn__
));
1578 extern int atexit (void (*__func
) (void)) throw () __attribute__ ((__nonnull__ (1)));
1584 extern int on_exit (void (*__func
) (int __status
, void *__arg
), void *__arg
)
1585 throw () __attribute__ ((__nonnull__ (1)));
1592 extern void exit (int __status
) throw () __attribute__ ((__noreturn__
));
1599 extern void _Exit (int __status
) throw () __attribute__ ((__noreturn__
));
1606 extern char *getenv (__const
char *__name
) throw () __attribute__ ((__nonnull__ (1))) ;
1611 extern char *__secure_getenv (__const
char *__name
)
1612 throw () __attribute__ ((__nonnull__ (1))) ;
1618 extern int putenv (char *__string
) throw () __attribute__ ((__nonnull__ (1)));
1624 extern int setenv (__const
char *__name
, __const
char *__value
, int __replace
)
1625 throw () __attribute__ ((__nonnull__ (2)));
1628 extern int unsetenv (__const
char *__name
) throw ();
1635 extern int clearenv (void) throw ();
1636 # 698 "/usr/include/stdlib.h" 3 4
1637 extern char *mktemp (char *__template
) throw () __attribute__ ((__nonnull__ (1))) ;
1638 # 709 "/usr/include/stdlib.h" 3 4
1639 extern int mkstemp (char *__template
) __attribute__ ((__nonnull__ (1))) ;
1640 # 719 "/usr/include/stdlib.h" 3 4
1641 extern int mkstemp64 (char *__template
) __attribute__ ((__nonnull__ (1))) ;
1642 # 729 "/usr/include/stdlib.h" 3 4
1643 extern char *mkdtemp (char *__template
) throw () __attribute__ ((__nonnull__ (1))) ;
1652 extern int system (__const
char *__command
) ;
1660 extern char *canonicalize_file_name (__const
char *__name
)
1661 throw () __attribute__ ((__nonnull__ (1))) ;
1662 # 757 "/usr/include/stdlib.h" 3 4
1663 extern char *realpath (__const
char *__restrict __name
,
1664 char *__restrict __resolved
) throw () ;
1671 typedef int (*__compar_fn_t
) (__const
void *, __const
void *);
1674 typedef __compar_fn_t comparison_fn_t
;
1681 extern void *bsearch (__const
void *__key
, __const
void *__base
,
1682 size_t __nmemb
, size_t __size
, __compar_fn_t __compar
)
1683 __attribute__ ((__nonnull__ (1, 2, 5))) ;
1687 extern void qsort (void *__base
, size_t __nmemb
, size_t __size
,
1688 __compar_fn_t __compar
) __attribute__ ((__nonnull__ (1, 4)));
1692 extern int abs (int __x
) throw () __attribute__ ((__const__
)) ;
1693 extern long int labs (long int __x
) throw () __attribute__ ((__const__
)) ;
1697 __extension__
extern long long int llabs (long long int __x
)
1698 throw () __attribute__ ((__const__
)) ;
1706 extern div_t div (int __numer
, int __denom
)
1707 throw () __attribute__ ((__const__
)) ;
1708 extern ldiv_t ldiv (long int __numer
, long int __denom
)
1709 throw () __attribute__ ((__const__
)) ;
1714 __extension__
extern lldiv_t
lldiv (long long int __numer
,
1715 long long int __denom
)
1716 throw () __attribute__ ((__const__
)) ;
1718 # 822 "/usr/include/stdlib.h" 3 4
1719 extern char *ecvt (double __value
, int __ndigit
, int *__restrict __decpt
,
1720 int *__restrict __sign
) throw () __attribute__ ((__nonnull__ (3, 4))) ;
1725 extern char *fcvt (double __value
, int __ndigit
, int *__restrict __decpt
,
1726 int *__restrict __sign
) throw () __attribute__ ((__nonnull__ (3, 4))) ;
1731 extern char *gcvt (double __value
, int __ndigit
, char *__buf
)
1732 throw () __attribute__ ((__nonnull__ (3))) ;
1737 extern char *qecvt (long double __value
, int __ndigit
,
1738 int *__restrict __decpt
, int *__restrict __sign
)
1739 throw () __attribute__ ((__nonnull__ (3, 4))) ;
1740 extern char *qfcvt (long double __value
, int __ndigit
,
1741 int *__restrict __decpt
, int *__restrict __sign
)
1742 throw () __attribute__ ((__nonnull__ (3, 4))) ;
1743 extern char *qgcvt (long double __value
, int __ndigit
, char *__buf
)
1744 throw () __attribute__ ((__nonnull__ (3))) ;
1749 extern int ecvt_r (double __value
, int __ndigit
, int *__restrict __decpt
,
1750 int *__restrict __sign
, char *__restrict __buf
,
1751 size_t __len
) throw () __attribute__ ((__nonnull__ (3, 4, 5)));
1752 extern int fcvt_r (double __value
, int __ndigit
, int *__restrict __decpt
,
1753 int *__restrict __sign
, char *__restrict __buf
,
1754 size_t __len
) throw () __attribute__ ((__nonnull__ (3, 4, 5)));
1756 extern int qecvt_r (long double __value
, int __ndigit
,
1757 int *__restrict __decpt
, int *__restrict __sign
,
1758 char *__restrict __buf
, size_t __len
)
1759 throw () __attribute__ ((__nonnull__ (3, 4, 5)));
1760 extern int qfcvt_r (long double __value
, int __ndigit
,
1761 int *__restrict __decpt
, int *__restrict __sign
,
1762 char *__restrict __buf
, size_t __len
)
1763 throw () __attribute__ ((__nonnull__ (3, 4, 5)));
1771 extern int mblen (__const
char *__s
, size_t __n
) throw () ;
1774 extern int mbtowc (wchar_t *__restrict __pwc
,
1775 __const
char *__restrict __s
, size_t __n
) throw () ;
1778 extern int wctomb (char *__s
, wchar_t __wchar
) throw () ;
1782 extern size_t mbstowcs (wchar_t *__restrict __pwcs
,
1783 __const
char *__restrict __s
, size_t __n
) throw ();
1785 extern size_t wcstombs (char *__restrict __s
,
1786 __const
wchar_t *__restrict __pwcs
, size_t __n
)
1796 extern int rpmatch (__const
char *__response
) throw () __attribute__ ((__nonnull__ (1))) ;
1797 # 910 "/usr/include/stdlib.h" 3 4
1798 extern int getsubopt (char **__restrict __optionp
,
1799 char *__const
*__restrict __tokens
,
1800 char **__restrict __valuep
)
1801 throw () __attribute__ ((__nonnull__ (1, 2, 3))) ;
1807 extern void setkey (__const
char *__key
) throw () __attribute__ ((__nonnull__ (1)));
1815 extern int posix_openpt (int __oflag
) ;
1823 extern int grantpt (int __fd
) throw ();
1827 extern int unlockpt (int __fd
) throw ();
1832 extern char *ptsname (int __fd
) throw () ;
1839 extern int ptsname_r (int __fd
, char *__buf
, size_t __buflen
)
1840 throw () __attribute__ ((__nonnull__ (2)));
1843 extern int getpt (void);
1850 extern int getloadavg (double __loadavg
[], int __nelem
)
1851 throw () __attribute__ ((__nonnull__ (1)));
1852 # 978 "/usr/include/stdlib.h" 3 4
1854 # 73 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/cstdlib" 2 3
1855 # 104 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/cstdlib" 3
1895 abs(long __i
) { return labs(__i
); }
1898 div(long __i
, long __j
) { return ldiv(__i
, __j
); }
1900 # 160 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/cstdlib" 3
1914 abs(long long __x
) { return __x
>= 0 ? __x
: -__x
; }
1920 div(long long __n
, long long __d
)
1921 { lldiv_t __q
; __q
.quot
= __n
/ __d
; __q
.rem
= __n
% __d
; return __q
; }
1924 # 193 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/cstdlib" 3
1936 using ::__gnu_cxx::lldiv_t
;
1938 using ::__gnu_cxx::_Exit
;
1939 using ::__gnu_cxx::abs
;
1941 using ::__gnu_cxx::llabs
;
1942 using ::__gnu_cxx::div
;
1943 using ::__gnu_cxx::lldiv
;
1945 using ::__gnu_cxx::atoll
;
1946 using ::__gnu_cxx::strtof
;
1947 using ::__gnu_cxx::strtoll
;
1948 using ::__gnu_cxx::strtoull
;
1949 using ::__gnu_cxx::strtold
;
1956 #pragma GCC visibility pop
1957 # 68 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algobase.h" 2 3
1959 # 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/iosfwd" 1 3
1960 # 42 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/iosfwd" 3
1962 # 43 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/iosfwd" 3
1963 #pragma GCC visibility push(default)
1966 # 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/i686-pc-linux-gnu/bits/c++locale.h" 1 3
1967 # 39 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/i686-pc-linux-gnu/bits/c++locale.h" 3
1969 # 40 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/i686-pc-linux-gnu/bits/c++locale.h" 3
1972 # 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/cstdio" 1 3
1973 # 48 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/cstdio" 3
1975 # 49 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/cstdio" 3
1976 #pragma GCC visibility push(default)
1981 # 1 "/usr/include/stdio.h" 1 3 4
1982 # 30 "/usr/include/stdio.h" 3 4
1987 # 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/stddef.h" 1 3 4
1988 # 35 "/usr/include/stdio.h" 2 3 4
1989 # 44 "/usr/include/stdio.h" 3 4
1992 typedef struct _IO_FILE
FILE;
1998 # 62 "/usr/include/stdio.h" 3 4
1999 typedef struct _IO_FILE __FILE
;
2000 # 72 "/usr/include/stdio.h" 3 4
2001 # 1 "/usr/include/libio.h" 1 3 4
2002 # 32 "/usr/include/libio.h" 3 4
2003 # 1 "/usr/include/_G_config.h" 1 3 4
2004 # 14 "/usr/include/_G_config.h" 3 4
2005 # 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/stddef.h" 1 3 4
2006 # 355 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/stddef.h" 3 4
2007 typedef unsigned int wint_t;
2008 # 15 "/usr/include/_G_config.h" 2 3 4
2009 # 24 "/usr/include/_G_config.h" 3 4
2010 # 1 "/usr/include/wchar.h" 1 3 4
2011 # 48 "/usr/include/wchar.h" 3 4
2012 # 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/stddef.h" 1 3 4
2013 # 49 "/usr/include/wchar.h" 2 3 4
2015 # 1 "/usr/include/bits/wchar.h" 1 3 4
2016 # 51 "/usr/include/wchar.h" 2 3 4
2017 # 76 "/usr/include/wchar.h" 3 4
2027 # 25 "/usr/include/_G_config.h" 2 3 4
2032 __mbstate_t __state
;
2037 __mbstate_t __state
;
2039 # 44 "/usr/include/_G_config.h" 3 4
2040 # 1 "/usr/include/gconv.h" 1 3 4
2041 # 28 "/usr/include/gconv.h" 3 4
2042 # 1 "/usr/include/wchar.h" 1 3 4
2043 # 48 "/usr/include/wchar.h" 3 4
2044 # 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/stddef.h" 1 3 4
2045 # 49 "/usr/include/wchar.h" 2 3 4
2046 # 29 "/usr/include/gconv.h" 2 3 4
2049 # 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/stddef.h" 1 3 4
2050 # 32 "/usr/include/gconv.h" 2 3 4
2063 __GCONV_EMPTY_INPUT
,
2064 __GCONV_FULL_OUTPUT
,
2065 __GCONV_ILLEGAL_INPUT
,
2066 __GCONV_INCOMPLETE_INPUT
,
2068 __GCONV_ILLEGAL_DESCRIPTOR
,
2069 __GCONV_INTERNAL_ERROR
2076 __GCONV_IS_LAST
= 0x0001,
2077 __GCONV_IGNORE_ERRORS
= 0x0002
2082 struct __gconv_step
;
2083 struct __gconv_step_data
;
2084 struct __gconv_loaded_object
;
2085 struct __gconv_trans_data
;
2089 typedef int (*__gconv_fct
) (struct __gconv_step
*, struct __gconv_step_data
*,
2090 __const
unsigned char **, __const
unsigned char *,
2091 unsigned char **, size_t *, int, int);
2094 typedef wint_t (*__gconv_btowc_fct
) (struct __gconv_step
*, unsigned char);
2097 typedef int (*__gconv_init_fct
) (struct __gconv_step
*);
2098 typedef void (*__gconv_end_fct
) (struct __gconv_step
*);
2102 typedef int (*__gconv_trans_fct
) (struct __gconv_step
*,
2103 struct __gconv_step_data
*, void *,
2104 __const
unsigned char *,
2105 __const
unsigned char **,
2106 __const
unsigned char *, unsigned char **,
2110 typedef int (*__gconv_trans_context_fct
) (void *, __const
unsigned char *,
2111 __const
unsigned char *,
2112 unsigned char *, unsigned char *);
2115 typedef int (*__gconv_trans_query_fct
) (__const
char *, __const
char ***,
2119 typedef int (*__gconv_trans_init_fct
) (void **, const char *);
2120 typedef void (*__gconv_trans_end_fct
) (void *);
2122 struct __gconv_trans_data
2125 __gconv_trans_fct __trans_fct
;
2126 __gconv_trans_context_fct __trans_context_fct
;
2127 __gconv_trans_end_fct __trans_end_fct
;
2129 struct __gconv_trans_data
*__next
;
2136 struct __gconv_loaded_object
*__shlib_handle
;
2137 __const
char *__modname
;
2145 __gconv_btowc_fct __btowc_fct
;
2146 __gconv_init_fct __init_fct
;
2147 __gconv_end_fct __end_fct
;
2151 int __min_needed_from
;
2152 int __max_needed_from
;
2153 int __min_needed_to
;
2154 int __max_needed_to
;
2164 struct __gconv_step_data
2166 unsigned char *__outbuf
;
2167 unsigned char *__outbufend
;
2175 int __invocation_counter
;
2181 __mbstate_t
*__statep
;
2182 __mbstate_t __state
;
2186 struct __gconv_trans_data
*__trans
;
2191 typedef struct __gconv_info
2194 struct __gconv_step
*__steps
;
2195 __extension__
struct __gconv_step_data __data
[];
2197 # 45 "/usr/include/_G_config.h" 2 3 4
2200 struct __gconv_info __cd
;
2203 struct __gconv_info __cd
;
2204 struct __gconv_step_data __data
;
2208 typedef int _G_int16_t
__attribute__ ((__mode__ (__HI__
)));
2209 typedef int _G_int32_t
__attribute__ ((__mode__ (__SI__
)));
2210 typedef unsigned int _G_uint16_t
__attribute__ ((__mode__ (__HI__
)));
2211 typedef unsigned int _G_uint32_t
__attribute__ ((__mode__ (__SI__
)));
2212 # 33 "/usr/include/libio.h" 2 3 4
2213 # 53 "/usr/include/libio.h" 3 4
2214 # 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/stdarg.h" 1 3 4
2215 # 43 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/stdarg.h" 3 4
2216 typedef __builtin_va_list __gnuc_va_list
;
2217 # 54 "/usr/include/libio.h" 2 3 4
2218 # 166 "/usr/include/libio.h" 3 4
2219 struct _IO_jump_t
; struct _IO_FILE
;
2220 # 176 "/usr/include/libio.h" 3 4
2221 typedef void _IO_lock_t
;
2228 struct _IO_marker
*_next
;
2229 struct _IO_FILE
*_sbuf
;
2234 # 199 "/usr/include/libio.h" 3 4
2238 enum __codecvt_result
2245 # 267 "/usr/include/libio.h" 3 4
2254 char* _IO_read_base
;
2255 char* _IO_write_base
;
2256 char* _IO_write_ptr
;
2257 char* _IO_write_end
;
2261 char *_IO_save_base
;
2262 char *_IO_backup_base
;
2265 struct _IO_marker
*_markers
;
2267 struct _IO_FILE
*_chain
;
2275 __off_t _old_offset
;
2279 unsigned short _cur_column
;
2280 signed char _vtable_offset
;
2286 # 315 "/usr/include/libio.h" 3 4
2288 # 324 "/usr/include/libio.h" 3 4
2297 char _unused2
[15 * sizeof (int) - 4 * sizeof (void *) - sizeof (size_t)];
2305 struct _IO_FILE_plus
;
2307 extern struct _IO_FILE_plus _IO_2_1_stdin_
;
2308 extern struct _IO_FILE_plus _IO_2_1_stdout_
;
2309 extern struct _IO_FILE_plus _IO_2_1_stderr_
;
2310 # 360 "/usr/include/libio.h" 3 4
2311 typedef __ssize_t
__io_read_fn (void *__cookie
, char *__buf
, size_t __nbytes
);
2319 typedef __ssize_t
__io_write_fn (void *__cookie
, __const
char *__buf
,
2328 typedef int __io_seek_fn (void *__cookie
, __off64_t
*__pos
, int __w
);
2331 typedef int __io_close_fn (void *__cookie
);
2336 typedef __io_read_fn cookie_read_function_t
;
2337 typedef __io_write_fn cookie_write_function_t
;
2338 typedef __io_seek_fn cookie_seek_function_t
;
2339 typedef __io_close_fn cookie_close_function_t
;
2345 __io_write_fn
*write
;
2347 __io_close_fn
*close
;
2348 } _IO_cookie_io_functions_t
;
2349 typedef _IO_cookie_io_functions_t cookie_io_functions_t
;
2351 struct _IO_cookie_file
;
2354 extern void _IO_cookie_init (struct _IO_cookie_file
*__cfile
, int __read_write
,
2355 void *__cookie
, _IO_cookie_io_functions_t __fns
);
2363 extern int __underflow (_IO_FILE
*) throw ();
2364 extern int __uflow (_IO_FILE
*) throw ();
2365 extern int __overflow (_IO_FILE
*, int) throw ();
2366 extern wint_t __wunderflow (_IO_FILE
*) throw ();
2367 extern wint_t __wuflow (_IO_FILE
*) throw ();
2368 extern wint_t __woverflow (_IO_FILE
*, wint_t) throw ();
2369 # 450 "/usr/include/libio.h" 3 4
2370 extern int _IO_getc (_IO_FILE
*__fp
) throw ();
2371 extern int _IO_putc (int __c
, _IO_FILE
*__fp
) throw ();
2372 extern int _IO_feof (_IO_FILE
*__fp
) throw ();
2373 extern int _IO_ferror (_IO_FILE
*__fp
) throw ();
2375 extern int _IO_peekc_locked (_IO_FILE
*__fp
) throw ();
2381 extern void _IO_flockfile (_IO_FILE
*) throw ();
2382 extern void _IO_funlockfile (_IO_FILE
*) throw ();
2383 extern int _IO_ftrylockfile (_IO_FILE
*) throw ();
2384 # 480 "/usr/include/libio.h" 3 4
2385 extern int _IO_vfscanf (_IO_FILE
* __restrict
, const char * __restrict
,
2386 __gnuc_va_list
, int *__restrict
);
2387 extern int _IO_vfprintf (_IO_FILE
*__restrict
, const char *__restrict
,
2389 extern __ssize_t
_IO_padn (_IO_FILE
*, int, __ssize_t
) throw ();
2390 extern size_t _IO_sgetn (_IO_FILE
*, void *, size_t) throw ();
2392 extern __off64_t
_IO_seekoff (_IO_FILE
*, __off64_t
, int, int) throw ();
2393 extern __off64_t
_IO_seekpos (_IO_FILE
*, __off64_t
, int) throw ();
2395 extern void _IO_free_backup_area (_IO_FILE
*) throw ();
2396 # 542 "/usr/include/libio.h" 3 4
2398 # 73 "/usr/include/stdio.h" 2 3 4
2403 typedef __gnuc_va_list
va_list;
2404 # 86 "/usr/include/stdio.h" 3 4
2407 typedef _G_fpos_t
fpos_t;
2413 typedef _G_fpos64_t fpos64_t
;
2414 # 138 "/usr/include/stdio.h" 3 4
2415 # 1 "/usr/include/bits/stdio_lim.h" 1 3 4
2416 # 139 "/usr/include/stdio.h" 2 3 4
2420 extern struct _IO_FILE
*stdin
;
2421 extern struct _IO_FILE
*stdout
;
2422 extern struct _IO_FILE
*stderr
;
2430 extern int remove (__const
char *__filename
) throw ();
2432 extern int rename (__const
char *__old
, __const
char *__new
) throw ();
2437 extern int renameat (int __oldfd
, __const
char *__old
, int __newfd
,
2438 __const
char *__new
) throw ();
2447 extern FILE *tmpfile (void);
2448 # 179 "/usr/include/stdio.h" 3 4
2449 extern FILE *tmpfile64 (void);
2453 extern char *tmpnam (char *__s
) throw ();
2459 extern char *tmpnam_r (char *__s
) throw ();
2460 # 201 "/usr/include/stdio.h" 3 4
2461 extern char *tempnam (__const
char *__dir
, __const
char *__pfx
)
2462 throw () __attribute__ ((__malloc__
));
2471 extern int fclose (FILE *__stream
);
2476 extern int fflush (FILE *__stream
);
2478 # 226 "/usr/include/stdio.h" 3 4
2479 extern int fflush_unlocked (FILE *__stream
);
2480 # 236 "/usr/include/stdio.h" 3 4
2481 extern int fcloseall (void);
2491 extern FILE *fopen (__const
char *__restrict __filename
,
2492 __const
char *__restrict __modes
);
2497 extern FILE *freopen (__const
char *__restrict __filename
,
2498 __const
char *__restrict __modes
,
2499 FILE *__restrict __stream
);
2500 # 267 "/usr/include/stdio.h" 3 4
2503 extern FILE *fopen64 (__const
char *__restrict __filename
,
2504 __const
char *__restrict __modes
);
2505 extern FILE *freopen64 (__const
char *__restrict __filename
,
2506 __const
char *__restrict __modes
,
2507 FILE *__restrict __stream
);
2512 extern FILE *fdopen (int __fd
, __const
char *__modes
) throw ();
2518 extern FILE *fopencookie (void *__restrict __magic_cookie
,
2519 __const
char *__restrict __modes
,
2520 _IO_cookie_io_functions_t __io_funcs
) throw ();
2523 extern FILE *fmemopen (void *__s
, size_t __len
, __const
char *__modes
) throw ();
2528 extern FILE *open_memstream (char **__restrict __bufloc
,
2529 size_t *__restrict __sizeloc
) throw ();
2533 extern FILE *open_wmemstream (wchar_t **__restrict __bufloc
,
2534 size_t *__restrict __sizeloc
) throw ();
2541 extern void setbuf (FILE *__restrict __stream
, char *__restrict __buf
) throw ();
2545 extern int setvbuf (FILE *__restrict __stream
, char *__restrict __buf
,
2546 int __modes
, size_t __n
) throw ();
2552 extern void setbuffer (FILE *__restrict __stream
, char *__restrict __buf
,
2553 size_t __size
) throw ();
2556 extern void setlinebuf (FILE *__stream
) throw ();
2565 extern int fprintf (FILE *__restrict __stream
,
2566 __const
char *__restrict __format
, ...);
2571 extern int printf (__const
char *__restrict __format
, ...);
2573 extern int sprintf (char *__restrict __s
,
2574 __const
char *__restrict __format
, ...) throw ();
2580 extern int vfprintf (FILE *__restrict __s
, __const
char *__restrict __format
,
2581 __gnuc_va_list __arg
);
2586 extern int vprintf (__const
char *__restrict __format
, __gnuc_va_list __arg
);
2588 extern int vsprintf (char *__restrict __s
, __const
char *__restrict __format
,
2589 __gnuc_va_list __arg
) throw ();
2595 extern int snprintf (char *__restrict __s
, size_t __maxlen
,
2596 __const
char *__restrict __format
, ...)
2597 throw () __attribute__ ((__format__ (__printf__
, 3, 4)));
2599 extern int vsnprintf (char *__restrict __s
, size_t __maxlen
,
2600 __const
char *__restrict __format
, __gnuc_va_list __arg
)
2601 throw () __attribute__ ((__format__ (__printf__
, 3, 0)));
2608 extern int vasprintf (char **__restrict __ptr
, __const
char *__restrict __f
,
2609 __gnuc_va_list __arg
)
2610 throw () __attribute__ ((__format__ (__printf__
, 2, 0)));
2611 extern int __asprintf (char **__restrict __ptr
,
2612 __const
char *__restrict __fmt
, ...)
2613 throw () __attribute__ ((__format__ (__printf__
, 2, 3)));
2614 extern int asprintf (char **__restrict __ptr
,
2615 __const
char *__restrict __fmt
, ...)
2616 throw () __attribute__ ((__format__ (__printf__
, 2, 3)));
2624 extern int vdprintf (int __fd
, __const
char *__restrict __fmt
,
2625 __gnuc_va_list __arg
)
2626 __attribute__ ((__format__ (__printf__
, 2, 0)));
2627 extern int dprintf (int __fd
, __const
char *__restrict __fmt
, ...)
2628 __attribute__ ((__format__ (__printf__
, 2, 3)));
2637 extern int fscanf (FILE *__restrict __stream
,
2638 __const
char *__restrict __format
, ...) ;
2643 extern int scanf (__const
char *__restrict __format
, ...) ;
2645 extern int sscanf (__const
char *__restrict __s
,
2646 __const
char *__restrict __format
, ...) throw ();
2655 extern int vfscanf (FILE *__restrict __s
, __const
char *__restrict __format
,
2656 __gnuc_va_list __arg
)
2657 __attribute__ ((__format__ (__scanf__
, 2, 0))) ;
2663 extern int vscanf (__const
char *__restrict __format
, __gnuc_va_list __arg
)
2664 __attribute__ ((__format__ (__scanf__
, 1, 0))) ;
2667 extern int vsscanf (__const
char *__restrict __s
,
2668 __const
char *__restrict __format
, __gnuc_va_list __arg
)
2669 throw () __attribute__ ((__format__ (__scanf__
, 2, 0)));
2679 extern int fgetc (FILE *__stream
);
2680 extern int getc (FILE *__stream
);
2686 extern int getchar (void);
2688 # 464 "/usr/include/stdio.h" 3 4
2689 extern int getc_unlocked (FILE *__stream
);
2690 extern int getchar_unlocked (void);
2691 # 475 "/usr/include/stdio.h" 3 4
2692 extern int fgetc_unlocked (FILE *__stream
);
2704 extern int fputc (int __c
, FILE *__stream
);
2705 extern int putc (int __c
, FILE *__stream
);
2711 extern int putchar (int __c
);
2713 # 508 "/usr/include/stdio.h" 3 4
2714 extern int fputc_unlocked (int __c
, FILE *__stream
);
2722 extern int putc_unlocked (int __c
, FILE *__stream
);
2723 extern int putchar_unlocked (int __c
);
2730 extern int getw (FILE *__stream
);
2733 extern int putw (int __w
, FILE *__stream
);
2742 extern char *fgets (char *__restrict __s
, int __n
, FILE *__restrict __stream
)
2750 extern char *gets (char *__s
) ;
2752 # 554 "/usr/include/stdio.h" 3 4
2753 extern char *fgets_unlocked (char *__restrict __s
, int __n
,
2754 FILE *__restrict __stream
) ;
2755 # 570 "/usr/include/stdio.h" 3 4
2756 extern __ssize_t
__getdelim (char **__restrict __lineptr
,
2757 size_t *__restrict __n
, int __delimiter
,
2758 FILE *__restrict __stream
) ;
2759 extern __ssize_t
getdelim (char **__restrict __lineptr
,
2760 size_t *__restrict __n
, int __delimiter
,
2761 FILE *__restrict __stream
) ;
2769 extern __ssize_t
getline (char **__restrict __lineptr
,
2770 size_t *__restrict __n
,
2771 FILE *__restrict __stream
) ;
2780 extern int fputs (__const
char *__restrict __s
, FILE *__restrict __stream
);
2786 extern int puts (__const
char *__s
);
2793 extern int ungetc (int __c
, FILE *__stream
);
2800 extern size_t fread (void *__restrict __ptr
, size_t __size
,
2801 size_t __n
, FILE *__restrict __stream
) ;
2806 extern size_t fwrite (__const
void *__restrict __ptr
, size_t __size
,
2807 size_t __n
, FILE *__restrict __s
) ;
2809 # 631 "/usr/include/stdio.h" 3 4
2810 extern int fputs_unlocked (__const
char *__restrict __s
,
2811 FILE *__restrict __stream
);
2812 # 642 "/usr/include/stdio.h" 3 4
2813 extern size_t fread_unlocked (void *__restrict __ptr
, size_t __size
,
2814 size_t __n
, FILE *__restrict __stream
) ;
2815 extern size_t fwrite_unlocked (__const
void *__restrict __ptr
, size_t __size
,
2816 size_t __n
, FILE *__restrict __stream
) ;
2825 extern int fseek (FILE *__stream
, long int __off
, int __whence
);
2830 extern long int ftell (FILE *__stream
) ;
2835 extern void rewind (FILE *__stream
);
2837 # 678 "/usr/include/stdio.h" 3 4
2838 extern int fseeko (FILE *__stream
, __off_t __off
, int __whence
);
2843 extern __off_t
ftello (FILE *__stream
) ;
2844 # 697 "/usr/include/stdio.h" 3 4
2851 extern int fgetpos (FILE *__restrict __stream
, fpos_t *__restrict __pos
);
2856 extern int fsetpos (FILE *__stream
, __const
fpos_t *__pos
);
2857 # 720 "/usr/include/stdio.h" 3 4
2861 extern int fseeko64 (FILE *__stream
, __off64_t __off
, int __whence
);
2862 extern __off64_t
ftello64 (FILE *__stream
) ;
2863 extern int fgetpos64 (FILE *__restrict __stream
, fpos64_t
*__restrict __pos
);
2864 extern int fsetpos64 (FILE *__stream
, __const fpos64_t
*__pos
);
2869 extern void clearerr (FILE *__stream
) throw ();
2871 extern int feof (FILE *__stream
) throw () ;
2873 extern int ferror (FILE *__stream
) throw () ;
2878 extern void clearerr_unlocked (FILE *__stream
) throw ();
2879 extern int feof_unlocked (FILE *__stream
) throw () ;
2880 extern int ferror_unlocked (FILE *__stream
) throw () ;
2889 extern void perror (__const
char *__s
);
2896 # 1 "/usr/include/bits/sys_errlist.h" 1 3 4
2897 # 27 "/usr/include/bits/sys_errlist.h" 3 4
2898 extern int sys_nerr
;
2899 extern __const
char *__const sys_errlist
[];
2902 extern int _sys_nerr
;
2903 extern __const
char *__const _sys_errlist
[];
2904 # 759 "/usr/include/stdio.h" 2 3 4
2909 extern int fileno (FILE *__stream
) throw () ;
2914 extern int fileno_unlocked (FILE *__stream
) throw () ;
2915 # 778 "/usr/include/stdio.h" 3 4
2916 extern FILE *popen (__const
char *__command
, __const
char *__modes
) ;
2922 extern int pclose (FILE *__stream
);
2928 extern char *ctermid (char *__s
) throw ();
2934 extern char *cuserid (char *__s
);
2942 extern int obstack_printf (struct obstack
*__restrict __obstack
,
2943 __const
char *__restrict __format
, ...)
2944 throw () __attribute__ ((__format__ (__printf__
, 2, 3)));
2945 extern int obstack_vprintf (struct obstack
*__restrict __obstack
,
2946 __const
char *__restrict __format
,
2947 __gnuc_va_list __args
)
2948 throw () __attribute__ ((__format__ (__printf__
, 2, 0)));
2956 extern void flockfile (FILE *__stream
) throw ();
2960 extern int ftrylockfile (FILE *__stream
) throw () ;
2963 extern void funlockfile (FILE *__stream
) throw ();
2964 # 848 "/usr/include/stdio.h" 3 4
2966 # 55 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/cstdio" 2 3
2967 # 99 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/cstdio" 3
3015 # 155 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/cstdio" 3
3018 # 170 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/cstdio" 3
3029 using __gnu_cxx::snprintf
;
3030 using __gnu_cxx::vfscanf
;
3031 using __gnu_cxx::vscanf
;
3032 using __gnu_cxx::vsnprintf
;
3033 using __gnu_cxx::vsscanf
;
3037 #pragma GCC visibility pop
3038 # 43 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/i686-pc-linux-gnu/bits/c++locale.h" 2 3
3039 # 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/clocale" 1 3
3040 # 48 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/clocale" 3
3042 # 49 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/clocale" 3
3043 #pragma GCC visibility push(default)
3045 # 1 "/usr/include/locale.h" 1 3 4
3046 # 29 "/usr/include/locale.h" 3 4
3047 # 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/stddef.h" 1 3 4
3048 # 30 "/usr/include/locale.h" 2 3 4
3049 # 1 "/usr/include/bits/locale.h" 1 3 4
3050 # 27 "/usr/include/bits/locale.h" 3 4
3063 __LC_TELEPHONE
= 10,
3064 __LC_MEASUREMENT
= 11,
3065 __LC_IDENTIFICATION
= 12
3067 # 31 "/usr/include/locale.h" 2 3 4
3070 # 52 "/usr/include/locale.h" 3 4
3075 char *decimal_point
;
3076 char *thousands_sep
;
3088 char *int_curr_symbol
;
3089 char *currency_symbol
;
3090 char *mon_decimal_point
;
3091 char *mon_thousands_sep
;
3093 char *positive_sign
;
3094 char *negative_sign
;
3095 char int_frac_digits
;
3100 char p_sep_by_space
;
3104 char n_sep_by_space
;
3115 char int_p_cs_precedes
;
3117 char int_p_sep_by_space
;
3119 char int_n_cs_precedes
;
3121 char int_n_sep_by_space
;
3128 char int_p_sign_posn
;
3129 char int_n_sign_posn
;
3130 # 119 "/usr/include/locale.h" 3 4
3137 extern char *setlocale (int __category
, __const
char *__locale
) throw ();
3140 extern struct lconv
*localeconv (void) throw ();
3143 # 148 "/usr/include/locale.h" 3 4
3144 typedef __locale_t locale_t
;
3150 extern __locale_t
newlocale (int __category_mask
, __const
char *__locale
,
3151 __locale_t __base
) throw ();
3152 # 189 "/usr/include/locale.h" 3 4
3153 extern __locale_t
duplocale (__locale_t __dataset
) throw ();
3157 extern void freelocale (__locale_t __dataset
) throw ();
3164 extern __locale_t
uselocale (__locale_t __dataset
) throw ();
3173 # 52 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/clocale" 2 3
3186 #pragma GCC visibility pop
3187 # 44 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/i686-pc-linux-gnu/bits/c++locale.h" 2 3
3188 # 1 "/usr/include/langinfo.h" 1 3 4
3189 # 24 "/usr/include/langinfo.h" 3 4
3190 # 1 "/usr/include/nl_types.h" 1 3 4
3191 # 31 "/usr/include/nl_types.h" 3 4
3195 typedef void *nl_catd
;
3198 typedef int nl_item
;
3204 extern nl_catd
catopen (__const
char *__cat_name
, int __flag
) __attribute__ ((__nonnull__ (1)));
3208 extern char *catgets (nl_catd __catalog
, int __set
, int __number
,
3209 __const
char *__string
) throw () __attribute__ ((__nonnull__ (1)));
3212 extern int catclose (nl_catd __catalog
) throw () __attribute__ ((__nonnull__ (1)));
3215 # 25 "/usr/include/langinfo.h" 2 3 4
3217 # 1 "/usr/include/bits/locale.h" 1 3 4
3218 # 27 "/usr/include/langinfo.h" 2 3 4
3222 # 42 "/usr/include/langinfo.h" 3 4
3228 ABDAY_1
= (((__LC_TIME
) << 16) | (0)),
3340 _NL_TIME_ERA_NUM_ENTRIES
,
3341 _NL_TIME_ERA_ENTRIES
,
3402 _NL_TIME_WEEK_NDAYS
,
3403 _NL_TIME_WEEK_1STDAY
,
3404 _NL_TIME_WEEK_1STWEEK
,
3405 _NL_TIME_FIRST_WEEKDAY
,
3406 _NL_TIME_FIRST_WORKDAY
,
3407 _NL_TIME_CAL_DIRECTION
,
3421 _NL_COLLATE_NRULES
= (((__LC_COLLATE
) << 16) | (0)),
3422 _NL_COLLATE_RULESETS
,
3423 _NL_COLLATE_TABLEMB
,
3424 _NL_COLLATE_WEIGHTMB
,
3425 _NL_COLLATE_EXTRAMB
,
3426 _NL_COLLATE_INDIRECTMB
,
3430 _NL_COLLATE_TABLEWC
,
3431 _NL_COLLATE_WEIGHTWC
,
3432 _NL_COLLATE_EXTRAWC
,
3433 _NL_COLLATE_INDIRECTWC
,
3434 _NL_COLLATE_SYMB_HASH_SIZEMB
,
3435 _NL_COLLATE_SYMB_TABLEMB
,
3436 _NL_COLLATE_SYMB_EXTRAMB
,
3437 _NL_COLLATE_COLLSEQMB
,
3438 _NL_COLLATE_COLLSEQWC
,
3439 _NL_COLLATE_CODESET
,
3445 _NL_CTYPE_CLASS
= (((__LC_CTYPE
) << 16) | (0)),
3455 _NL_CTYPE_CLASS_NAMES
,
3456 _NL_CTYPE_MAP_NAMES
,
3458 _NL_CTYPE_MB_CUR_MAX
,
3459 _NL_CTYPE_CODESET_NAME
,
3460 CODESET
= _NL_CTYPE_CODESET_NAME
,
3462 _NL_CTYPE_TOUPPER32
,
3463 _NL_CTYPE_TOLOWER32
,
3464 _NL_CTYPE_CLASS_OFFSET
,
3465 _NL_CTYPE_MAP_OFFSET
,
3466 _NL_CTYPE_INDIGITS_MB_LEN
,
3467 _NL_CTYPE_INDIGITS0_MB
,
3468 _NL_CTYPE_INDIGITS1_MB
,
3469 _NL_CTYPE_INDIGITS2_MB
,
3470 _NL_CTYPE_INDIGITS3_MB
,
3471 _NL_CTYPE_INDIGITS4_MB
,
3472 _NL_CTYPE_INDIGITS5_MB
,
3473 _NL_CTYPE_INDIGITS6_MB
,
3474 _NL_CTYPE_INDIGITS7_MB
,
3475 _NL_CTYPE_INDIGITS8_MB
,
3476 _NL_CTYPE_INDIGITS9_MB
,
3477 _NL_CTYPE_INDIGITS_WC_LEN
,
3478 _NL_CTYPE_INDIGITS0_WC
,
3479 _NL_CTYPE_INDIGITS1_WC
,
3480 _NL_CTYPE_INDIGITS2_WC
,
3481 _NL_CTYPE_INDIGITS3_WC
,
3482 _NL_CTYPE_INDIGITS4_WC
,
3483 _NL_CTYPE_INDIGITS5_WC
,
3484 _NL_CTYPE_INDIGITS6_WC
,
3485 _NL_CTYPE_INDIGITS7_WC
,
3486 _NL_CTYPE_INDIGITS8_WC
,
3487 _NL_CTYPE_INDIGITS9_WC
,
3488 _NL_CTYPE_OUTDIGIT0_MB
,
3489 _NL_CTYPE_OUTDIGIT1_MB
,
3490 _NL_CTYPE_OUTDIGIT2_MB
,
3491 _NL_CTYPE_OUTDIGIT3_MB
,
3492 _NL_CTYPE_OUTDIGIT4_MB
,
3493 _NL_CTYPE_OUTDIGIT5_MB
,
3494 _NL_CTYPE_OUTDIGIT6_MB
,
3495 _NL_CTYPE_OUTDIGIT7_MB
,
3496 _NL_CTYPE_OUTDIGIT8_MB
,
3497 _NL_CTYPE_OUTDIGIT9_MB
,
3498 _NL_CTYPE_OUTDIGIT0_WC
,
3499 _NL_CTYPE_OUTDIGIT1_WC
,
3500 _NL_CTYPE_OUTDIGIT2_WC
,
3501 _NL_CTYPE_OUTDIGIT3_WC
,
3502 _NL_CTYPE_OUTDIGIT4_WC
,
3503 _NL_CTYPE_OUTDIGIT5_WC
,
3504 _NL_CTYPE_OUTDIGIT6_WC
,
3505 _NL_CTYPE_OUTDIGIT7_WC
,
3506 _NL_CTYPE_OUTDIGIT8_WC
,
3507 _NL_CTYPE_OUTDIGIT9_WC
,
3508 _NL_CTYPE_TRANSLIT_TAB_SIZE
,
3509 _NL_CTYPE_TRANSLIT_FROM_IDX
,
3510 _NL_CTYPE_TRANSLIT_FROM_TBL
,
3511 _NL_CTYPE_TRANSLIT_TO_IDX
,
3512 _NL_CTYPE_TRANSLIT_TO_TBL
,
3513 _NL_CTYPE_TRANSLIT_DEFAULT_MISSING_LEN
,
3514 _NL_CTYPE_TRANSLIT_DEFAULT_MISSING
,
3515 _NL_CTYPE_TRANSLIT_IGNORE_LEN
,
3516 _NL_CTYPE_TRANSLIT_IGNORE
,
3517 _NL_CTYPE_MAP_TO_NONASCII
,
3518 _NL_CTYPE_EXTRA_MAP_1
,
3519 _NL_CTYPE_EXTRA_MAP_2
,
3520 _NL_CTYPE_EXTRA_MAP_3
,
3521 _NL_CTYPE_EXTRA_MAP_4
,
3522 _NL_CTYPE_EXTRA_MAP_5
,
3523 _NL_CTYPE_EXTRA_MAP_6
,
3524 _NL_CTYPE_EXTRA_MAP_7
,
3525 _NL_CTYPE_EXTRA_MAP_8
,
3526 _NL_CTYPE_EXTRA_MAP_9
,
3527 _NL_CTYPE_EXTRA_MAP_10
,
3528 _NL_CTYPE_EXTRA_MAP_11
,
3529 _NL_CTYPE_EXTRA_MAP_12
,
3530 _NL_CTYPE_EXTRA_MAP_13
,
3531 _NL_CTYPE_EXTRA_MAP_14
,
3537 __INT_CURR_SYMBOL
= (((__LC_MONETARY
) << 16) | (0)),
3545 __MON_DECIMAL_POINT
,
3549 __MON_THOUSANDS_SEP
,
3597 _NL_MONETARY_CRNCYSTR
,
3599 __INT_P_CS_PRECEDES
,
3603 __INT_P_SEP_BY_SPACE
,
3607 __INT_N_CS_PRECEDES
,
3611 __INT_N_SEP_BY_SPACE
,
3623 _NL_MONETARY_DUO_INT_CURR_SYMBOL
,
3624 _NL_MONETARY_DUO_CURRENCY_SYMBOL
,
3625 _NL_MONETARY_DUO_INT_FRAC_DIGITS
,
3626 _NL_MONETARY_DUO_FRAC_DIGITS
,
3627 _NL_MONETARY_DUO_P_CS_PRECEDES
,
3628 _NL_MONETARY_DUO_P_SEP_BY_SPACE
,
3629 _NL_MONETARY_DUO_N_CS_PRECEDES
,
3630 _NL_MONETARY_DUO_N_SEP_BY_SPACE
,
3631 _NL_MONETARY_DUO_INT_P_CS_PRECEDES
,
3632 _NL_MONETARY_DUO_INT_P_SEP_BY_SPACE
,
3633 _NL_MONETARY_DUO_INT_N_CS_PRECEDES
,
3634 _NL_MONETARY_DUO_INT_N_SEP_BY_SPACE
,
3635 _NL_MONETARY_DUO_P_SIGN_POSN
,
3636 _NL_MONETARY_DUO_N_SIGN_POSN
,
3637 _NL_MONETARY_DUO_INT_P_SIGN_POSN
,
3638 _NL_MONETARY_DUO_INT_N_SIGN_POSN
,
3639 _NL_MONETARY_UNO_VALID_FROM
,
3640 _NL_MONETARY_UNO_VALID_TO
,
3641 _NL_MONETARY_DUO_VALID_FROM
,
3642 _NL_MONETARY_DUO_VALID_TO
,
3643 _NL_MONETARY_CONVERSION_RATE
,
3644 _NL_MONETARY_DECIMAL_POINT_WC
,
3645 _NL_MONETARY_THOUSANDS_SEP_WC
,
3646 _NL_MONETARY_CODESET
,
3647 _NL_NUM_LC_MONETARY
,
3651 __DECIMAL_POINT
= (((__LC_NUMERIC
) << 16) | (0)),
3655 RADIXCHAR
= __DECIMAL_POINT
,
3661 THOUSEP
= __THOUSANDS_SEP
,
3667 _NL_NUMERIC_DECIMAL_POINT_WC
,
3668 _NL_NUMERIC_THOUSANDS_SEP_WC
,
3669 _NL_NUMERIC_CODESET
,
3672 __YESEXPR
= (((__LC_MESSAGES
) << 16) | (0)),
3684 _NL_MESSAGES_CODESET
,
3685 _NL_NUM_LC_MESSAGES
,
3687 _NL_PAPER_HEIGHT
= (((__LC_PAPER
) << 16) | (0)),
3692 _NL_NAME_NAME_FMT
= (((__LC_NAME
) << 16) | (0)),
3701 _NL_ADDRESS_POSTAL_FMT
= (((__LC_ADDRESS
) << 16) | (0)),
3702 _NL_ADDRESS_COUNTRY_NAME
,
3703 _NL_ADDRESS_COUNTRY_POST
,
3704 _NL_ADDRESS_COUNTRY_AB2
,
3705 _NL_ADDRESS_COUNTRY_AB3
,
3706 _NL_ADDRESS_COUNTRY_CAR
,
3707 _NL_ADDRESS_COUNTRY_NUM
,
3708 _NL_ADDRESS_COUNTRY_ISBN
,
3709 _NL_ADDRESS_LANG_NAME
,
3710 _NL_ADDRESS_LANG_AB
,
3711 _NL_ADDRESS_LANG_TERM
,
3712 _NL_ADDRESS_LANG_LIB
,
3713 _NL_ADDRESS_CODESET
,
3716 _NL_TELEPHONE_TEL_INT_FMT
= (((__LC_TELEPHONE
) << 16) | (0)),
3717 _NL_TELEPHONE_TEL_DOM_FMT
,
3718 _NL_TELEPHONE_INT_SELECT
,
3719 _NL_TELEPHONE_INT_PREFIX
,
3720 _NL_TELEPHONE_CODESET
,
3721 _NL_NUM_LC_TELEPHONE
,
3723 _NL_MEASUREMENT_MEASUREMENT
= (((__LC_MEASUREMENT
) << 16) | (0)),
3724 _NL_MEASUREMENT_CODESET
,
3725 _NL_NUM_LC_MEASUREMENT
,
3727 _NL_IDENTIFICATION_TITLE
= (((__LC_IDENTIFICATION
) << 16) | (0)),
3728 _NL_IDENTIFICATION_SOURCE
,
3729 _NL_IDENTIFICATION_ADDRESS
,
3730 _NL_IDENTIFICATION_CONTACT
,
3731 _NL_IDENTIFICATION_EMAIL
,
3732 _NL_IDENTIFICATION_TEL
,
3733 _NL_IDENTIFICATION_FAX
,
3734 _NL_IDENTIFICATION_LANGUAGE
,
3735 _NL_IDENTIFICATION_TERRITORY
,
3736 _NL_IDENTIFICATION_AUDIENCE
,
3737 _NL_IDENTIFICATION_APPLICATION
,
3738 _NL_IDENTIFICATION_ABBREVIATION
,
3739 _NL_IDENTIFICATION_REVISION
,
3740 _NL_IDENTIFICATION_DATE
,
3741 _NL_IDENTIFICATION_CATEGORY
,
3742 _NL_IDENTIFICATION_CODESET
,
3743 _NL_NUM_LC_IDENTIFICATION
,
3748 # 582 "/usr/include/langinfo.h" 3 4
3749 extern char *nl_langinfo (nl_item __item
) throw ();
3750 # 593 "/usr/include/langinfo.h" 3 4
3751 extern char *nl_langinfo_l (nl_item __item
, __locale_t l
);
3755 # 45 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/i686-pc-linux-gnu/bits/c++locale.h" 2 3
3756 # 1 "/usr/include/iconv.h" 1 3 4
3757 # 24 "/usr/include/iconv.h" 3 4
3758 # 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/stddef.h" 1 3 4
3759 # 25 "/usr/include/iconv.h" 2 3 4
3765 typedef void *iconv_t
;
3773 extern iconv_t
iconv_open (__const
char *__tocode
, __const
char *__fromcode
);
3778 extern size_t iconv (iconv_t __cd
, char **__restrict __inbuf
,
3779 size_t *__restrict __inbytesleft
,
3780 char **__restrict __outbuf
,
3781 size_t *__restrict __outbytesleft
);
3787 extern int iconv_close (iconv_t __cd
);
3790 # 46 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/i686-pc-linux-gnu/bits/c++locale.h" 2 3
3791 # 1 "/usr/include/libintl.h" 1 3 4
3792 # 35 "/usr/include/libintl.h" 3 4
3798 extern char *gettext (__const
char *__msgid
)
3799 throw () __attribute__ ((__format_arg__ (1)));
3803 extern char *dgettext (__const
char *__domainname
, __const
char *__msgid
)
3804 throw () __attribute__ ((__format_arg__ (2)));
3805 extern char *__dgettext (__const
char *__domainname
, __const
char *__msgid
)
3806 throw () __attribute__ ((__format_arg__ (2)));
3810 extern char *dcgettext (__const
char *__domainname
,
3811 __const
char *__msgid
, int __category
)
3812 throw () __attribute__ ((__format_arg__ (2)));
3813 extern char *__dcgettext (__const
char *__domainname
,
3814 __const
char *__msgid
, int __category
)
3815 throw () __attribute__ ((__format_arg__ (2)));
3820 extern char *ngettext (__const
char *__msgid1
, __const
char *__msgid2
,
3821 unsigned long int __n
)
3822 throw () __attribute__ ((__format_arg__ (1))) __attribute__ ((__format_arg__ (2)));
3826 extern char *dngettext (__const
char *__domainname
, __const
char *__msgid1
,
3827 __const
char *__msgid2
, unsigned long int __n
)
3828 throw () __attribute__ ((__format_arg__ (2))) __attribute__ ((__format_arg__ (3)));
3832 extern char *dcngettext (__const
char *__domainname
, __const
char *__msgid1
,
3833 __const
char *__msgid2
, unsigned long int __n
,
3835 throw () __attribute__ ((__format_arg__ (2))) __attribute__ ((__format_arg__ (3)));
3841 extern char *textdomain (__const
char *__domainname
) throw ();
3845 extern char *bindtextdomain (__const
char *__domainname
,
3846 __const
char *__dirname
) throw ();
3850 extern char *bind_textdomain_codeset (__const
char *__domainname
,
3851 __const
char *__codeset
) throw ();
3852 # 122 "/usr/include/libintl.h" 3 4
3854 # 47 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/i686-pc-linux-gnu/bits/c++locale.h" 2 3
3863 extern "C" __typeof(uselocale
) __uselocale
;
3869 typedef __locale_t __c_locale
;
3875 template<typename _Tv
>
3877 __convert_from_v(char* __out
,
3878 const int __size
__attribute__ ((__unused__
)),
3881 _Tv __v
, const __c_locale
& __cloc
, int __prec
)
3883 __c_locale __old
= __gnu_cxx::__uselocale(__cloc
);
3884 # 86 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/i686-pc-linux-gnu/bits/c++locale.h" 3
3885 const int __ret
= std::snprintf(__out
, __size
, __fmt
, __prec
, __v
);
3891 __gnu_cxx::__uselocale(__old
);
3899 # 47 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/iosfwd" 2 3
3900 # 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/i686-pc-linux-gnu/bits/c++io.h" 1 3
3901 # 38 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/i686-pc-linux-gnu/bits/c++io.h" 3
3902 # 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/i686-pc-linux-gnu/bits/gthr.h" 1 3
3903 # 33 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/i686-pc-linux-gnu/bits/gthr.h" 3
3904 #pragma GCC visibility push(default)
3905 # 114 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/i686-pc-linux-gnu/bits/gthr.h" 3
3906 # 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/i686-pc-linux-gnu/bits/gthr-default.h" 1 3
3907 # 43 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/i686-pc-linux-gnu/bits/gthr-default.h" 3
3908 # 1 "/usr/include/pthread.h" 1 3 4
3909 # 23 "/usr/include/pthread.h" 3 4
3910 # 1 "/usr/include/sched.h" 1 3 4
3911 # 29 "/usr/include/sched.h" 3 4
3912 # 1 "/usr/include/time.h" 1 3 4
3913 # 30 "/usr/include/sched.h" 2 3 4
3916 # 1 "/usr/include/bits/sched.h" 1 3 4
3917 # 65 "/usr/include/bits/sched.h" 3 4
3920 int __sched_priority
;
3927 extern int clone (int (*__fn
) (void *__arg
), void *__child_stack
,
3928 int __flags
, void *__arg
, ...) throw ();
3931 extern int unshare (int __flags
) throw ();
3942 struct __sched_param
3944 int __sched_priority
;
3946 # 104 "/usr/include/bits/sched.h" 3 4
3947 typedef unsigned long int __cpu_mask
;
3956 __cpu_mask __bits
[1024 / (8 * sizeof (__cpu_mask
))];
3958 # 33 "/usr/include/sched.h" 2 3 4
3966 extern int sched_setparam (__pid_t __pid
, __const
struct sched_param
*__param
)
3970 extern int sched_getparam (__pid_t __pid
, struct sched_param
*__param
) throw ();
3973 extern int sched_setscheduler (__pid_t __pid
, int __policy
,
3974 __const
struct sched_param
*__param
) throw ();
3977 extern int sched_getscheduler (__pid_t __pid
) throw ();
3980 extern int sched_yield (void) throw ();
3983 extern int sched_get_priority_max (int __algorithm
) throw ();
3986 extern int sched_get_priority_min (int __algorithm
) throw ();
3989 extern int sched_rr_get_interval (__pid_t __pid
, struct timespec
*__t
) throw ();
3990 # 76 "/usr/include/sched.h" 3 4
3991 extern int sched_setaffinity (__pid_t __pid
, size_t __cpusetsize
,
3992 __const cpu_set_t
*__cpuset
) throw ();
3995 extern int sched_getaffinity (__pid_t __pid
, size_t __cpusetsize
,
3996 cpu_set_t
*__cpuset
) throw ();
4000 # 24 "/usr/include/pthread.h" 2 3 4
4001 # 1 "/usr/include/time.h" 1 3 4
4002 # 31 "/usr/include/time.h" 3 4
4011 # 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/stddef.h" 1 3 4
4012 # 40 "/usr/include/time.h" 2 3 4
4016 # 1 "/usr/include/bits/time.h" 1 3 4
4017 # 44 "/usr/include/time.h" 2 3 4
4018 # 132 "/usr/include/time.h" 3 4
4035 __const
char *tm_zone
;
4051 struct timespec it_interval
;
4052 struct timespec it_value
;
4057 # 181 "/usr/include/time.h" 3 4
4061 extern clock_t clock (void) throw ();
4064 extern time_t time (time_t *__timer
) throw ();
4067 extern double difftime (time_t __time1
, time_t __time0
)
4068 throw () __attribute__ ((__const__
));
4071 extern time_t mktime (struct tm
*__tp
) throw ();
4077 extern size_t strftime (char *__restrict __s
, size_t __maxsize
,
4078 __const
char *__restrict __format
,
4079 __const
struct tm
*__restrict __tp
) throw ();
4085 extern char *strptime (__const
char *__restrict __s
,
4086 __const
char *__restrict __fmt
, struct tm
*__tp
)
4095 extern size_t strftime_l (char *__restrict __s
, size_t __maxsize
,
4096 __const
char *__restrict __format
,
4097 __const
struct tm
*__restrict __tp
,
4098 __locale_t __loc
) throw ();
4100 extern char *strptime_l (__const
char *__restrict __s
,
4101 __const
char *__restrict __fmt
, struct tm
*__tp
,
4102 __locale_t __loc
) throw ();
4109 extern struct tm
*gmtime (__const
time_t *__timer
) throw ();
4113 extern struct tm
*localtime (__const
time_t *__timer
) throw ();
4119 extern struct tm
*gmtime_r (__const
time_t *__restrict __timer
,
4120 struct tm
*__restrict __tp
) throw ();
4124 extern struct tm
*localtime_r (__const
time_t *__restrict __timer
,
4125 struct tm
*__restrict __tp
) throw ();
4131 extern char *asctime (__const
struct tm
*__tp
) throw ();
4134 extern char *ctime (__const
time_t *__timer
) throw ();
4142 extern char *asctime_r (__const
struct tm
*__restrict __tp
,
4143 char *__restrict __buf
) throw ();
4146 extern char *ctime_r (__const
time_t *__restrict __timer
,
4147 char *__restrict __buf
) throw ();
4152 extern char *__tzname
[2];
4153 extern int __daylight
;
4154 extern long int __timezone
;
4159 extern char *tzname
[2];
4163 extern void tzset (void) throw ();
4167 extern int daylight
;
4168 extern long int timezone
;
4174 extern int stime (__const
time_t *__when
) throw ();
4175 # 312 "/usr/include/time.h" 3 4
4176 extern time_t timegm (struct tm
*__tp
) throw ();
4179 extern time_t timelocal (struct tm
*__tp
) throw ();
4182 extern int dysize (int __year
) throw () __attribute__ ((__const__
));
4183 # 327 "/usr/include/time.h" 3 4
4184 extern int nanosleep (__const
struct timespec
*__requested_time
,
4185 struct timespec
*__remaining
);
4189 extern int clock_getres (clockid_t __clock_id
, struct timespec
*__res
) throw ();
4192 extern int clock_gettime (clockid_t __clock_id
, struct timespec
*__tp
) throw ();
4195 extern int clock_settime (clockid_t __clock_id
, __const
struct timespec
*__tp
)
4203 extern int clock_nanosleep (clockid_t __clock_id
, int __flags
,
4204 __const
struct timespec
*__req
,
4205 struct timespec
*__rem
);
4208 extern int clock_getcpuclockid (pid_t __pid
, clockid_t
*__clock_id
) throw ();
4213 extern int timer_create (clockid_t __clock_id
,
4214 struct sigevent
*__restrict __evp
,
4215 timer_t
*__restrict __timerid
) throw ();
4218 extern int timer_delete (timer_t __timerid
) throw ();
4221 extern int timer_settime (timer_t __timerid
, int __flags
,
4222 __const
struct itimerspec
*__restrict __value
,
4223 struct itimerspec
*__restrict __ovalue
) throw ();
4226 extern int timer_gettime (timer_t __timerid
, struct itimerspec
*__value
)
4230 extern int timer_getoverrun (timer_t __timerid
) throw ();
4231 # 389 "/usr/include/time.h" 3 4
4232 extern int getdate_err
;
4233 # 398 "/usr/include/time.h" 3 4
4234 extern struct tm
*getdate (__const
char *__string
);
4235 # 412 "/usr/include/time.h" 3 4
4236 extern int getdate_r (__const
char *__restrict __string
,
4237 struct tm
*__restrict __resbufp
);
4241 # 25 "/usr/include/pthread.h" 2 3 4
4244 # 1 "/usr/include/signal.h" 1 3 4
4245 # 31 "/usr/include/signal.h" 3 4
4248 # 1 "/usr/include/bits/sigset.h" 1 3 4
4249 # 34 "/usr/include/signal.h" 2 3 4
4250 # 400 "/usr/include/signal.h" 3 4
4252 # 28 "/usr/include/pthread.h" 2 3 4
4254 # 1 "/usr/include/bits/setjmp.h" 1 3 4
4255 # 29 "/usr/include/bits/setjmp.h" 3 4
4256 typedef int __jmp_buf
[6];
4257 # 30 "/usr/include/pthread.h" 2 3 4
4258 # 1 "/usr/include/bits/wordsize.h" 1 3 4
4259 # 31 "/usr/include/pthread.h" 2 3 4
4265 PTHREAD_CREATE_JOINABLE
,
4267 PTHREAD_CREATE_DETACHED
4275 PTHREAD_MUTEX_TIMED_NP
,
4276 PTHREAD_MUTEX_RECURSIVE_NP
,
4277 PTHREAD_MUTEX_ERRORCHECK_NP
,
4278 PTHREAD_MUTEX_ADAPTIVE_NP
4281 PTHREAD_MUTEX_NORMAL
= PTHREAD_MUTEX_TIMED_NP
,
4282 PTHREAD_MUTEX_RECURSIVE
= PTHREAD_MUTEX_RECURSIVE_NP
,
4283 PTHREAD_MUTEX_ERRORCHECK
= PTHREAD_MUTEX_ERRORCHECK_NP
,
4284 PTHREAD_MUTEX_DEFAULT
= PTHREAD_MUTEX_NORMAL
4288 , PTHREAD_MUTEX_FAST_NP
= PTHREAD_MUTEX_TIMED_NP
4297 PTHREAD_MUTEX_STALLED_NP
,
4298 PTHREAD_MUTEX_ROBUST_NP
4308 PTHREAD_PRIO_INHERIT
,
4309 PTHREAD_PRIO_PROTECT
4311 # 113 "/usr/include/pthread.h" 3 4
4314 PTHREAD_RWLOCK_PREFER_READER_NP
,
4315 PTHREAD_RWLOCK_PREFER_WRITER_NP
,
4316 PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP
,
4317 PTHREAD_RWLOCK_DEFAULT_NP
= PTHREAD_RWLOCK_PREFER_READER_NP
4319 # 143 "/usr/include/pthread.h" 3 4
4322 PTHREAD_INHERIT_SCHED
,
4324 PTHREAD_EXPLICIT_SCHED
4332 PTHREAD_SCOPE_SYSTEM
,
4334 PTHREAD_SCOPE_PROCESS
4342 PTHREAD_PROCESS_PRIVATE
,
4344 PTHREAD_PROCESS_SHARED
4347 # 178 "/usr/include/pthread.h" 3 4
4348 struct _pthread_cleanup_buffer
4350 void (*__routine
) (void *);
4353 struct _pthread_cleanup_buffer
*__prev
;
4359 PTHREAD_CANCEL_ENABLE
,
4361 PTHREAD_CANCEL_DISABLE
4366 PTHREAD_CANCEL_DEFERRED
,
4368 PTHREAD_CANCEL_ASYNCHRONOUS
4371 # 216 "/usr/include/pthread.h" 3 4
4377 extern int pthread_create (pthread_t
*__restrict __newthread
,
4378 __const pthread_attr_t
*__restrict __attr
,
4379 void *(*__start_routine
) (void *),
4380 void *__restrict __arg
) throw ();
4386 extern void pthread_exit (void *__retval
) __attribute__ ((__noreturn__
));
4394 extern int pthread_join (pthread_t __th
, void **__thread_return
);
4399 extern int pthread_tryjoin_np (pthread_t __th
, void **__thread_return
) throw ();
4407 extern int pthread_timedjoin_np (pthread_t __th
, void **__thread_return
,
4408 __const
struct timespec
*__abstime
);
4415 extern int pthread_detach (pthread_t __th
) throw ();
4419 extern pthread_t
pthread_self (void) throw () __attribute__ ((__const__
));
4422 extern int pthread_equal (pthread_t __thread1
, pthread_t __thread2
) throw ();
4430 extern int pthread_attr_init (pthread_attr_t
*__attr
) throw ();
4433 extern int pthread_attr_destroy (pthread_attr_t
*__attr
) throw ();
4436 extern int pthread_attr_getdetachstate (__const pthread_attr_t
*__attr
,
4437 int *__detachstate
) throw ();
4440 extern int pthread_attr_setdetachstate (pthread_attr_t
*__attr
,
4441 int __detachstate
) throw ();
4445 extern int pthread_attr_getguardsize (__const pthread_attr_t
*__attr
,
4446 size_t *__guardsize
) throw ();
4449 extern int pthread_attr_setguardsize (pthread_attr_t
*__attr
,
4450 size_t __guardsize
) throw ();
4454 extern int pthread_attr_getschedparam (__const pthread_attr_t
*__restrict
4456 struct sched_param
*__restrict __param
)
4460 extern int pthread_attr_setschedparam (pthread_attr_t
*__restrict __attr
,
4461 __const
struct sched_param
*__restrict
4465 extern int pthread_attr_getschedpolicy (__const pthread_attr_t
*__restrict
4466 __attr
, int *__restrict __policy
)
4470 extern int pthread_attr_setschedpolicy (pthread_attr_t
*__attr
, int __policy
)
4474 extern int pthread_attr_getinheritsched (__const pthread_attr_t
*__restrict
4475 __attr
, int *__restrict __inherit
)
4479 extern int pthread_attr_setinheritsched (pthread_attr_t
*__attr
,
4480 int __inherit
) throw ();
4484 extern int pthread_attr_getscope (__const pthread_attr_t
*__restrict __attr
,
4485 int *__restrict __scope
) throw ();
4488 extern int pthread_attr_setscope (pthread_attr_t
*__attr
, int __scope
)
4492 extern int pthread_attr_getstackaddr (__const pthread_attr_t
*__restrict
4493 __attr
, void **__restrict __stackaddr
)
4494 throw () __attribute__ ((__deprecated__
));
4500 extern int pthread_attr_setstackaddr (pthread_attr_t
*__attr
,
4502 throw () __attribute__ ((__deprecated__
));
4505 extern int pthread_attr_getstacksize (__const pthread_attr_t
*__restrict
4506 __attr
, size_t *__restrict __stacksize
)
4512 extern int pthread_attr_setstacksize (pthread_attr_t
*__attr
,
4513 size_t __stacksize
) throw ();
4517 extern int pthread_attr_getstack (__const pthread_attr_t
*__restrict __attr
,
4518 void **__restrict __stackaddr
,
4519 size_t *__restrict __stacksize
) throw ();
4524 extern int pthread_attr_setstack (pthread_attr_t
*__attr
, void *__stackaddr
,
4525 size_t __stacksize
) throw ();
4531 extern int pthread_attr_setaffinity_np (pthread_attr_t
*__attr
,
4532 size_t __cpusetsize
,
4533 __const cpu_set_t
*__cpuset
) throw ();
4537 extern int pthread_attr_getaffinity_np (__const pthread_attr_t
*__attr
,
4538 size_t __cpusetsize
,
4539 cpu_set_t
*__cpuset
) throw ();
4545 extern int pthread_getattr_np (pthread_t __th
, pthread_attr_t
*__attr
) throw ();
4553 extern int pthread_setschedparam (pthread_t __target_thread
, int __policy
,
4554 __const
struct sched_param
*__param
)
4558 extern int pthread_getschedparam (pthread_t __target_thread
,
4559 int *__restrict __policy
,
4560 struct sched_param
*__restrict __param
)
4564 extern int pthread_setschedprio (pthread_t __target_thread
, int __prio
)
4570 extern int pthread_getconcurrency (void) throw ();
4573 extern int pthread_setconcurrency (int __level
) throw ();
4581 extern int pthread_yield (void) throw ();
4586 extern int pthread_setaffinity_np (pthread_t __th
, size_t __cpusetsize
,
4587 __const cpu_set_t
*__cpuset
) throw ();
4590 extern int pthread_getaffinity_np (pthread_t __th
, size_t __cpusetsize
,
4591 cpu_set_t
*__cpuset
) throw ();
4592 # 448 "/usr/include/pthread.h" 3 4
4593 extern int pthread_once (pthread_once_t
*__once_control
,
4594 void (*__init_routine
) (void));
4595 # 460 "/usr/include/pthread.h" 3 4
4596 extern int pthread_setcancelstate (int __state
, int *__oldstate
);
4600 extern int pthread_setcanceltype (int __type
, int *__oldtype
);
4603 extern int pthread_cancel (pthread_t __th
);
4608 extern void pthread_testcancel (void);
4617 __jmp_buf __cancel_jmp_buf
;
4618 int __mask_was_saved
;
4619 } __cancel_jmp_buf
[1];
4621 } __pthread_unwind_buf_t
__attribute__ ((__aligned__
));
4622 # 494 "/usr/include/pthread.h" 3 4
4623 struct __pthread_cleanup_frame
4625 void (*__cancel_routine
) (void *);
4634 class __pthread_cleanup_class
4636 void (*__cancel_routine
) (void *);
4642 __pthread_cleanup_class (void (*__fct
) (void *), void *__arg
)
4643 : __cancel_routine (__fct
), __cancel_arg (__arg
), __do_it (1) { }
4644 ~__pthread_cleanup_class () { if (__do_it
) __cancel_routine (__cancel_arg
); }
4645 void __setdoit (int __newval
) { __do_it
= __newval
; }
4646 void __defer () { pthread_setcanceltype (PTHREAD_CANCEL_DEFERRED
,
4648 void __restore () const { pthread_setcanceltype (__cancel_type
, 0); }
4650 # 694 "/usr/include/pthread.h" 3 4
4651 struct __jmp_buf_tag
;
4652 extern int __sigsetjmp (struct __jmp_buf_tag
*__env
, int __savemask
) throw ();
4658 extern int pthread_mutex_init (pthread_mutex_t
*__mutex
,
4659 __const pthread_mutexattr_t
*__mutexattr
)
4663 extern int pthread_mutex_destroy (pthread_mutex_t
*__mutex
) throw ();
4666 extern int pthread_mutex_trylock (pthread_mutex_t
*_mutex
) throw ();
4669 extern int pthread_mutex_lock (pthread_mutex_t
*__mutex
) throw ();
4673 extern int pthread_mutex_timedlock (pthread_mutex_t
*__restrict __mutex
,
4674 __const
struct timespec
*__restrict
4675 __abstime
) throw ();
4679 extern int pthread_mutex_unlock (pthread_mutex_t
*__mutex
) throw ();
4684 extern int pthread_mutex_getprioceiling (__const pthread_mutex_t
*
4686 int *__restrict __prioceiling
)
4691 extern int pthread_mutex_setprioceiling (pthread_mutex_t
*__restrict __mutex
,
4693 int *__restrict __old_ceiling
)
4700 extern int pthread_mutex_consistent_np (pthread_mutex_t
*__mutex
) throw ();
4708 extern int pthread_mutexattr_init (pthread_mutexattr_t
*__attr
) throw ();
4711 extern int pthread_mutexattr_destroy (pthread_mutexattr_t
*__attr
) throw ();
4714 extern int pthread_mutexattr_getpshared (__const pthread_mutexattr_t
*
4716 int *__restrict __pshared
) throw ();
4719 extern int pthread_mutexattr_setpshared (pthread_mutexattr_t
*__attr
,
4720 int __pshared
) throw ();
4724 extern int pthread_mutexattr_gettype (__const pthread_mutexattr_t
*__restrict
4725 __attr
, int *__restrict __kind
) throw ();
4730 extern int pthread_mutexattr_settype (pthread_mutexattr_t
*__attr
, int __kind
)
4734 extern int pthread_mutexattr_getprotocol (__const pthread_mutexattr_t
*
4736 int *__restrict __protocol
) throw ();
4740 extern int pthread_mutexattr_setprotocol (pthread_mutexattr_t
*__attr
,
4741 int __protocol
) throw ();
4744 extern int pthread_mutexattr_getprioceiling (__const pthread_mutexattr_t
*
4746 int *__restrict __prioceiling
)
4750 extern int pthread_mutexattr_setprioceiling (pthread_mutexattr_t
*__attr
,
4751 int __prioceiling
) throw ();
4756 extern int pthread_mutexattr_getrobust_np (__const pthread_mutexattr_t
*__attr
,
4757 int *__robustness
) throw ();
4760 extern int pthread_mutexattr_setrobust_np (pthread_mutexattr_t
*__attr
,
4761 int __robustness
) throw ();
4762 # 813 "/usr/include/pthread.h" 3 4
4763 extern int pthread_rwlock_init (pthread_rwlock_t
*__restrict __rwlock
,
4764 __const pthread_rwlockattr_t
*__restrict
4768 extern int pthread_rwlock_destroy (pthread_rwlock_t
*__rwlock
) throw ();
4771 extern int pthread_rwlock_rdlock (pthread_rwlock_t
*__rwlock
) throw ();
4774 extern int pthread_rwlock_tryrdlock (pthread_rwlock_t
*__rwlock
) throw ();
4778 extern int pthread_rwlock_timedrdlock (pthread_rwlock_t
*__restrict __rwlock
,
4779 __const
struct timespec
*__restrict
4780 __abstime
) throw ();
4784 extern int pthread_rwlock_wrlock (pthread_rwlock_t
*__rwlock
) throw ();
4787 extern int pthread_rwlock_trywrlock (pthread_rwlock_t
*__rwlock
) throw ();
4791 extern int pthread_rwlock_timedwrlock (pthread_rwlock_t
*__restrict __rwlock
,
4792 __const
struct timespec
*__restrict
4793 __abstime
) throw ();
4797 extern int pthread_rwlock_unlock (pthread_rwlock_t
*__rwlock
) throw ();
4803 extern int pthread_rwlockattr_init (pthread_rwlockattr_t
*__attr
) throw ();
4806 extern int pthread_rwlockattr_destroy (pthread_rwlockattr_t
*__attr
) throw ();
4809 extern int pthread_rwlockattr_getpshared (__const pthread_rwlockattr_t
*
4811 int *__restrict __pshared
) throw ();
4814 extern int pthread_rwlockattr_setpshared (pthread_rwlockattr_t
*__attr
,
4815 int __pshared
) throw ();
4818 extern int pthread_rwlockattr_getkind_np (__const pthread_rwlockattr_t
*
4820 int *__restrict __pref
) throw ();
4823 extern int pthread_rwlockattr_setkind_np (pthread_rwlockattr_t
*__attr
,
4824 int __pref
) throw ();
4832 extern int pthread_cond_init (pthread_cond_t
*__restrict __cond
,
4833 __const pthread_condattr_t
*__restrict
4834 __cond_attr
) throw ();
4837 extern int pthread_cond_destroy (pthread_cond_t
*__cond
) throw ();
4840 extern int pthread_cond_signal (pthread_cond_t
*__cond
) throw ();
4843 extern int pthread_cond_broadcast (pthread_cond_t
*__cond
) throw ();
4850 extern int pthread_cond_wait (pthread_cond_t
*__restrict __cond
,
4851 pthread_mutex_t
*__restrict __mutex
);
4852 # 910 "/usr/include/pthread.h" 3 4
4853 extern int pthread_cond_timedwait (pthread_cond_t
*__restrict __cond
,
4854 pthread_mutex_t
*__restrict __mutex
,
4855 __const
struct timespec
*__restrict
4861 extern int pthread_condattr_init (pthread_condattr_t
*__attr
) throw ();
4864 extern int pthread_condattr_destroy (pthread_condattr_t
*__attr
) throw ();
4867 extern int pthread_condattr_getpshared (__const pthread_condattr_t
*
4869 int *__restrict __pshared
) throw ();
4872 extern int pthread_condattr_setpshared (pthread_condattr_t
*__attr
,
4873 int __pshared
) throw ();
4877 extern int pthread_condattr_getclock (__const pthread_condattr_t
*
4879 __clockid_t
*__restrict __clock_id
)
4883 extern int pthread_condattr_setclock (pthread_condattr_t
*__attr
,
4884 __clockid_t __clock_id
) throw ();
4885 # 951 "/usr/include/pthread.h" 3 4
4886 extern int pthread_spin_init (pthread_spinlock_t
*__lock
, int __pshared
)
4890 extern int pthread_spin_destroy (pthread_spinlock_t
*__lock
) throw ();
4893 extern int pthread_spin_lock (pthread_spinlock_t
*__lock
) throw ();
4896 extern int pthread_spin_trylock (pthread_spinlock_t
*__lock
) throw ();
4899 extern int pthread_spin_unlock (pthread_spinlock_t
*__lock
) throw ();
4906 extern int pthread_barrier_init (pthread_barrier_t
*__restrict __barrier
,
4907 __const pthread_barrierattr_t
*__restrict
4908 __attr
, unsigned int __count
) throw ();
4911 extern int pthread_barrier_destroy (pthread_barrier_t
*__barrier
) throw ();
4914 extern int pthread_barrier_wait (pthread_barrier_t
*__barrier
) throw ();
4918 extern int pthread_barrierattr_init (pthread_barrierattr_t
*__attr
) throw ();
4921 extern int pthread_barrierattr_destroy (pthread_barrierattr_t
*__attr
) throw ();
4924 extern int pthread_barrierattr_getpshared (__const pthread_barrierattr_t
*
4926 int *__restrict __pshared
) throw ();
4929 extern int pthread_barrierattr_setpshared (pthread_barrierattr_t
*__attr
,
4930 int __pshared
) throw ();
4931 # 1007 "/usr/include/pthread.h" 3 4
4932 extern int pthread_key_create (pthread_key_t
*__key
,
4933 void (*__destr_function
) (void *)) throw ();
4936 extern int pthread_key_delete (pthread_key_t __key
) throw ();
4939 extern void *pthread_getspecific (pthread_key_t __key
) throw ();
4942 extern int pthread_setspecific (pthread_key_t __key
,
4943 __const
void *__pointer
) throw ();
4948 extern int pthread_getcpuclockid (pthread_t __thread_id
,
4949 __clockid_t
*__clock_id
) throw ();
4950 # 1039 "/usr/include/pthread.h" 3 4
4951 extern int pthread_atfork (void (*__prepare
) (void),
4952 void (*__parent
) (void),
4953 void (*__child
) (void)) throw ();
4956 # 44 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/i686-pc-linux-gnu/bits/gthr-default.h" 2 3
4957 # 1 "/usr/include/unistd.h" 1 3 4
4958 # 28 "/usr/include/unistd.h" 3 4
4960 # 171 "/usr/include/unistd.h" 3 4
4961 # 1 "/usr/include/bits/posix_opt.h" 1 3 4
4962 # 172 "/usr/include/unistd.h" 2 3 4
4966 # 1 "/usr/include/bits/environments.h" 1 3 4
4967 # 176 "/usr/include/unistd.h" 2 3 4
4968 # 195 "/usr/include/unistd.h" 3 4
4969 # 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/stddef.h" 1 3 4
4970 # 196 "/usr/include/unistd.h" 2 3 4
4971 # 236 "/usr/include/unistd.h" 3 4
4972 typedef __intptr_t
intptr_t;
4979 typedef __socklen_t socklen_t
;
4980 # 256 "/usr/include/unistd.h" 3 4
4981 extern int access (__const
char *__name
, int __type
) throw () __attribute__ ((__nonnull__ (1)));
4986 extern int euidaccess (__const
char *__name
, int __type
)
4987 throw () __attribute__ ((__nonnull__ (1)));
4990 extern int eaccess (__const
char *__name
, int __type
)
4991 throw () __attribute__ ((__nonnull__ (1)));
4998 extern int faccessat (int __fd
, __const
char *__file
, int __type
, int __flag
)
4999 throw () __attribute__ ((__nonnull__ (2))) ;
5000 # 299 "/usr/include/unistd.h" 3 4
5001 extern __off_t
lseek (int __fd
, __off_t __offset
, int __whence
) throw ();
5002 # 310 "/usr/include/unistd.h" 3 4
5003 extern __off64_t
lseek64 (int __fd
, __off64_t __offset
, int __whence
)
5011 extern int close (int __fd
);
5018 extern ssize_t
read (int __fd
, void *__buf
, size_t __nbytes
) ;
5024 extern ssize_t
write (int __fd
, __const
void *__buf
, size_t __n
) ;
5025 # 341 "/usr/include/unistd.h" 3 4
5026 extern ssize_t
pread (int __fd
, void *__buf
, size_t __nbytes
,
5034 extern ssize_t
pwrite (int __fd
, __const
void *__buf
, size_t __n
,
5036 # 369 "/usr/include/unistd.h" 3 4
5037 extern ssize_t
pread64 (int __fd
, void *__buf
, size_t __nbytes
,
5038 __off64_t __offset
) ;
5041 extern ssize_t
pwrite64 (int __fd
, __const
void *__buf
, size_t __n
,
5042 __off64_t __offset
) ;
5050 extern int pipe (int __pipedes
[2]) throw () ;
5051 # 391 "/usr/include/unistd.h" 3 4
5052 extern unsigned int alarm (unsigned int __seconds
) throw ();
5053 # 403 "/usr/include/unistd.h" 3 4
5054 extern unsigned int sleep (unsigned int __seconds
);
5061 extern __useconds_t
ualarm (__useconds_t __value
, __useconds_t __interval
)
5069 extern int usleep (__useconds_t __useconds
);
5070 # 427 "/usr/include/unistd.h" 3 4
5071 extern int pause (void);
5075 extern int chown (__const
char *__file
, __uid_t __owner
, __gid_t __group
)
5076 throw () __attribute__ ((__nonnull__ (1))) ;
5080 extern int fchown (int __fd
, __uid_t __owner
, __gid_t __group
) throw () ;
5085 extern int lchown (__const
char *__file
, __uid_t __owner
, __gid_t __group
)
5086 throw () __attribute__ ((__nonnull__ (1))) ;
5093 extern int fchownat (int __fd
, __const
char *__file
, __uid_t __owner
,
5094 __gid_t __group
, int __flag
)
5095 throw () __attribute__ ((__nonnull__ (2))) ;
5099 extern int chdir (__const
char *__path
) throw () __attribute__ ((__nonnull__ (1))) ;
5103 extern int fchdir (int __fd
) throw () ;
5104 # 469 "/usr/include/unistd.h" 3 4
5105 extern char *getcwd (char *__buf
, size_t __size
) throw () ;
5111 extern char *get_current_dir_name (void) throw ();
5118 extern char *getwd (char *__buf
)
5119 throw () __attribute__ ((__nonnull__ (1))) __attribute__ ((__deprecated__
)) ;
5124 extern int dup (int __fd
) throw () ;
5127 extern int dup2 (int __fd
, int __fd2
) throw ();
5130 extern char **__environ
;
5132 extern char **environ
;
5138 extern int execve (__const
char *__path
, char *__const __argv
[],
5139 char *__const __envp
[]) throw () __attribute__ ((__nonnull__ (1)));
5144 extern int fexecve (int __fd
, char *__const __argv
[], char *__const __envp
[])
5150 extern int execv (__const
char *__path
, char *__const __argv
[])
5151 throw () __attribute__ ((__nonnull__ (1)));
5155 extern int execle (__const
char *__path
, __const
char *__arg
, ...)
5156 throw () __attribute__ ((__nonnull__ (1)));
5160 extern int execl (__const
char *__path
, __const
char *__arg
, ...)
5161 throw () __attribute__ ((__nonnull__ (1)));
5165 extern int execvp (__const
char *__file
, char *__const __argv
[])
5166 throw () __attribute__ ((__nonnull__ (1)));
5171 extern int execlp (__const
char *__file
, __const
char *__arg
, ...)
5172 throw () __attribute__ ((__nonnull__ (1)));
5177 extern int nice (int __inc
) throw () ;
5182 extern void _exit (int __status
) __attribute__ ((__noreturn__
));
5188 # 1 "/usr/include/bits/confname.h" 1 3 4
5189 # 26 "/usr/include/bits/confname.h" 3 4
5204 _PC_CHOWN_RESTRICTED
,
5220 _PC_REC_INCR_XFER_SIZE
,
5222 _PC_REC_MAX_XFER_SIZE
,
5224 _PC_REC_MIN_XFER_SIZE
,
5257 _SC_REALTIME_SIGNALS
,
5259 _SC_PRIORITY_SCHEDULING
,
5263 _SC_ASYNCHRONOUS_IO
,
5267 _SC_SYNCHRONIZED_IO
,
5277 _SC_MEMORY_PROTECTION
,
5279 _SC_MESSAGE_PASSING
,
5283 _SC_SHARED_MEMORY_OBJECTS
,
5289 _SC_AIO_PRIO_DELTA_MAX
,
5323 _SC_COLL_WEIGHTS_MAX
,
5325 _SC_EQUIV_CLASS_MAX
,
5333 _SC_CHARCLASS_NAME_MAX
,
5367 _SC_IOV_MAX
= _SC_UIO_MAXIOV
,
5369 _SC_PII_INTERNET_STREAM
,
5371 _SC_PII_INTERNET_DGRAM
,
5385 _SC_THREAD_SAFE_FUNCTIONS
,
5387 _SC_GETGR_R_SIZE_MAX
,
5389 _SC_GETPW_R_SIZE_MAX
,
5395 _SC_THREAD_DESTRUCTOR_ITERATIONS
,
5397 _SC_THREAD_KEYS_MAX
,
5399 _SC_THREAD_STACK_MIN
,
5401 _SC_THREAD_THREADS_MAX
,
5403 _SC_THREAD_ATTR_STACKADDR
,
5405 _SC_THREAD_ATTR_STACKSIZE
,
5407 _SC_THREAD_PRIORITY_SCHEDULING
,
5409 _SC_THREAD_PRIO_INHERIT
,
5411 _SC_THREAD_PRIO_PROTECT
,
5413 _SC_THREAD_PROCESS_SHARED
,
5416 _SC_NPROCESSORS_CONF
,
5418 _SC_NPROCESSORS_ONLN
,
5431 _SC_XOPEN_XCU_VERSION
,
5506 _SC_XBS5_ILP32_OFF32
,
5508 _SC_XBS5_ILP32_OFFBIG
,
5510 _SC_XBS5_LP64_OFF64
,
5512 _SC_XBS5_LPBIG_OFFBIG
,
5519 _SC_XOPEN_REALTIME_THREADS
,
5530 _SC_C_LANG_SUPPORT_R
,
5532 _SC_CLOCK_SELECTION
,
5540 _SC_DEVICE_SPECIFIC
,
5542 _SC_DEVICE_SPECIFIC_R
,
5550 _SC_FILE_ATTRIBUTES
,
5556 _SC_MONOTONIC_CLOCK
,
5564 _SC_READER_WRITER_LOCKS
,
5578 _SC_SPORADIC_SERVER
,
5580 _SC_THREAD_SPORADIC_SERVER
,
5582 _SC_SYSTEM_DATABASE
,
5584 _SC_SYSTEM_DATABASE_R
,
5588 _SC_TYPED_MEMORY_OBJECTS
,
5596 _SC_2_PBS_ACCOUNTING
,
5608 _SC_2_PBS_CHECKPOINT
,
5613 _SC_V6_ILP32_OFFBIG
,
5617 _SC_V6_LPBIG_OFFBIG
,
5624 _SC_TRACE_EVENT_FILTER
,
5631 _SC_LEVEL1_ICACHE_SIZE
,
5633 _SC_LEVEL1_ICACHE_ASSOC
,
5635 _SC_LEVEL1_ICACHE_LINESIZE
,
5637 _SC_LEVEL1_DCACHE_SIZE
,
5639 _SC_LEVEL1_DCACHE_ASSOC
,
5641 _SC_LEVEL1_DCACHE_LINESIZE
,
5643 _SC_LEVEL2_CACHE_SIZE
,
5645 _SC_LEVEL2_CACHE_ASSOC
,
5647 _SC_LEVEL2_CACHE_LINESIZE
,
5649 _SC_LEVEL3_CACHE_SIZE
,
5651 _SC_LEVEL3_CACHE_ASSOC
,
5653 _SC_LEVEL3_CACHE_LINESIZE
,
5655 _SC_LEVEL4_CACHE_SIZE
,
5657 _SC_LEVEL4_CACHE_ASSOC
,
5659 _SC_LEVEL4_CACHE_LINESIZE
,
5663 _SC_IPV6
= _SC_LEVEL1_ICACHE_SIZE
+ 50,
5675 _CS_V6_WIDTH_RESTRICTED_ENVS
,
5678 _CS_GNU_LIBC_VERSION
,
5680 _CS_GNU_LIBPTHREAD_VERSION
,
5683 _CS_LFS_CFLAGS
= 1000,
5697 _CS_LFS64_LINTFLAGS
,
5700 _CS_XBS5_ILP32_OFF32_CFLAGS
= 1100,
5702 _CS_XBS5_ILP32_OFF32_LDFLAGS
,
5704 _CS_XBS5_ILP32_OFF32_LIBS
,
5706 _CS_XBS5_ILP32_OFF32_LINTFLAGS
,
5708 _CS_XBS5_ILP32_OFFBIG_CFLAGS
,
5710 _CS_XBS5_ILP32_OFFBIG_LDFLAGS
,
5712 _CS_XBS5_ILP32_OFFBIG_LIBS
,
5714 _CS_XBS5_ILP32_OFFBIG_LINTFLAGS
,
5716 _CS_XBS5_LP64_OFF64_CFLAGS
,
5718 _CS_XBS5_LP64_OFF64_LDFLAGS
,
5720 _CS_XBS5_LP64_OFF64_LIBS
,
5722 _CS_XBS5_LP64_OFF64_LINTFLAGS
,
5724 _CS_XBS5_LPBIG_OFFBIG_CFLAGS
,
5726 _CS_XBS5_LPBIG_OFFBIG_LDFLAGS
,
5728 _CS_XBS5_LPBIG_OFFBIG_LIBS
,
5730 _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS
,
5733 _CS_POSIX_V6_ILP32_OFF32_CFLAGS
,
5735 _CS_POSIX_V6_ILP32_OFF32_LDFLAGS
,
5737 _CS_POSIX_V6_ILP32_OFF32_LIBS
,
5739 _CS_POSIX_V6_ILP32_OFF32_LINTFLAGS
,
5741 _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS
,
5743 _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS
,
5745 _CS_POSIX_V6_ILP32_OFFBIG_LIBS
,
5747 _CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS
,
5749 _CS_POSIX_V6_LP64_OFF64_CFLAGS
,
5751 _CS_POSIX_V6_LP64_OFF64_LDFLAGS
,
5753 _CS_POSIX_V6_LP64_OFF64_LIBS
,
5755 _CS_POSIX_V6_LP64_OFF64_LINTFLAGS
,
5757 _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS
,
5759 _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS
,
5761 _CS_POSIX_V6_LPBIG_OFFBIG_LIBS
,
5763 _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS
5766 # 553 "/usr/include/unistd.h" 2 3 4
5769 extern long int pathconf (__const
char *__path
, int __name
)
5770 throw () __attribute__ ((__nonnull__ (1)));
5773 extern long int fpathconf (int __fd
, int __name
) throw ();
5776 extern long int sysconf (int __name
) throw () __attribute__ ((__const__
));
5780 extern size_t confstr (int __name
, char *__buf
, size_t __len
) throw ();
5785 extern __pid_t
getpid (void) throw ();
5788 extern __pid_t
getppid (void) throw ();
5793 extern __pid_t
getpgrp (void) throw ();
5794 # 589 "/usr/include/unistd.h" 3 4
5795 extern __pid_t
__getpgid (__pid_t __pid
) throw ();
5797 extern __pid_t
getpgid (__pid_t __pid
) throw ();
5804 extern int setpgid (__pid_t __pid
, __pid_t __pgid
) throw ();
5805 # 615 "/usr/include/unistd.h" 3 4
5806 extern int setpgrp (void) throw ();
5807 # 632 "/usr/include/unistd.h" 3 4
5808 extern __pid_t
setsid (void) throw ();
5812 extern __pid_t
getsid (__pid_t __pid
) throw ();
5816 extern __uid_t
getuid (void) throw ();
5819 extern __uid_t
geteuid (void) throw ();
5822 extern __gid_t
getgid (void) throw ();
5825 extern __gid_t
getegid (void) throw ();
5830 extern int getgroups (int __size
, __gid_t __list
[]) throw () ;
5834 extern int group_member (__gid_t __gid
) throw ();
5841 extern int setuid (__uid_t __uid
) throw ();
5846 extern int setreuid (__uid_t __ruid
, __uid_t __euid
) throw ();
5851 extern int seteuid (__uid_t __uid
) throw ();
5858 extern int setgid (__gid_t __gid
) throw ();
5863 extern int setregid (__gid_t __rgid
, __gid_t __egid
) throw ();
5868 extern int setegid (__gid_t __gid
) throw ();
5874 extern int getresuid (__uid_t
*__ruid
, __uid_t
*__euid
, __uid_t
*__suid
)
5879 extern int getresgid (__gid_t
*__rgid
, __gid_t
*__egid
, __gid_t
*__sgid
)
5884 extern int setresuid (__uid_t __ruid
, __uid_t __euid
, __uid_t __suid
)
5889 extern int setresgid (__gid_t __rgid
, __gid_t __egid
, __gid_t __sgid
)
5897 extern __pid_t
fork (void) throw ();
5904 extern __pid_t
vfork (void) throw ();
5910 extern char *ttyname (int __fd
) throw ();
5914 extern int ttyname_r (int __fd
, char *__buf
, size_t __buflen
)
5915 throw () __attribute__ ((__nonnull__ (2))) ;
5919 extern int isatty (int __fd
) throw ();
5925 extern int ttyslot (void) throw ();
5930 extern int link (__const
char *__from
, __const
char *__to
)
5931 throw () __attribute__ ((__nonnull__ (1, 2))) ;
5936 extern int linkat (int __fromfd
, __const
char *__from
, int __tofd
,
5937 __const
char *__to
, int __flags
)
5938 throw () __attribute__ ((__nonnull__ (2, 4))) ;
5943 extern int symlink (__const
char *__from
, __const
char *__to
)
5944 throw () __attribute__ ((__nonnull__ (1, 2))) ;
5949 extern int readlink (__const
char *__restrict __path
, char *__restrict __buf
,
5950 size_t __len
) throw () __attribute__ ((__nonnull__ (1, 2))) ;
5955 extern int symlinkat (__const
char *__from
, int __tofd
,
5956 __const
char *__to
) throw () __attribute__ ((__nonnull__ (1, 3))) ;
5959 extern int readlinkat (int __fd
, __const
char *__restrict __path
,
5960 char *__restrict __buf
, size_t __len
)
5961 throw () __attribute__ ((__nonnull__ (2, 3))) ;
5965 extern int unlink (__const
char *__name
) throw () __attribute__ ((__nonnull__ (1)));
5969 extern int unlinkat (int __fd
, __const
char *__name
, int __flag
)
5970 throw () __attribute__ ((__nonnull__ (2)));
5974 extern int rmdir (__const
char *__path
) throw () __attribute__ ((__nonnull__ (1)));
5978 extern __pid_t
tcgetpgrp (int __fd
) throw ();
5981 extern int tcsetpgrp (int __fd
, __pid_t __pgrp_id
) throw ();
5988 extern char *getlogin (void);
5996 extern int getlogin_r (char *__name
, size_t __name_len
) __attribute__ ((__nonnull__ (1)));
6001 extern int setlogin (__const
char *__name
) throw () __attribute__ ((__nonnull__ (1)));
6002 # 834 "/usr/include/unistd.h" 3 4
6003 # 1 "/usr/include/getopt.h" 1 3 4
6004 # 50 "/usr/include/getopt.h" 3 4
6006 # 59 "/usr/include/getopt.h" 3 4
6007 extern char *optarg
;
6008 # 73 "/usr/include/getopt.h" 3 4
6019 # 152 "/usr/include/getopt.h" 3 4
6020 extern int getopt (int ___argc
, char *const *___argv
, const char *__shortopts
)
6022 # 171 "/usr/include/getopt.h" 3 4
6024 # 835 "/usr/include/unistd.h" 2 3 4
6032 extern int gethostname (char *__name
, size_t __len
) throw () __attribute__ ((__nonnull__ (1)));
6039 extern int sethostname (__const
char *__name
, size_t __len
)
6040 throw () __attribute__ ((__nonnull__ (1))) ;
6044 extern int sethostid (long int __id
) throw () ;
6050 extern int getdomainname (char *__name
, size_t __len
)
6051 throw () __attribute__ ((__nonnull__ (1))) ;
6052 extern int setdomainname (__const
char *__name
, size_t __len
)
6053 throw () __attribute__ ((__nonnull__ (1))) ;
6059 extern int vhangup (void) throw ();
6062 extern int revoke (__const
char *__file
) throw () __attribute__ ((__nonnull__ (1))) ;
6070 extern int profil (unsigned short int *__sample_buffer
, size_t __size
,
6071 size_t __offset
, unsigned int __scale
)
6072 throw () __attribute__ ((__nonnull__ (1)));
6078 extern int acct (__const
char *__name
) throw ();
6082 extern char *getusershell (void) throw ();
6083 extern void endusershell (void) throw ();
6084 extern void setusershell (void) throw ();
6090 extern int daemon (int __nochdir
, int __noclose
) throw () ;
6097 extern int chroot (__const
char *__path
) throw () __attribute__ ((__nonnull__ (1))) ;
6101 extern char *getpass (__const
char *__prompt
) __attribute__ ((__nonnull__ (1)));
6102 # 920 "/usr/include/unistd.h" 3 4
6103 extern int fsync (int __fd
);
6110 extern long int gethostid (void);
6113 extern void sync (void) throw ();
6118 extern int getpagesize (void) throw () __attribute__ ((__const__
));
6123 extern int getdtablesize (void) throw ();
6128 extern int truncate (__const
char *__file
, __off_t __length
)
6129 throw () __attribute__ ((__nonnull__ (1))) ;
6130 # 957 "/usr/include/unistd.h" 3 4
6131 extern int truncate64 (__const
char *__file
, __off64_t __length
)
6132 throw () __attribute__ ((__nonnull__ (1))) ;
6133 # 967 "/usr/include/unistd.h" 3 4
6134 extern int ftruncate (int __fd
, __off_t __length
) throw () ;
6135 # 977 "/usr/include/unistd.h" 3 4
6136 extern int ftruncate64 (int __fd
, __off64_t __length
) throw () ;
6137 # 987 "/usr/include/unistd.h" 3 4
6138 extern int brk (void *__addr
) throw () ;
6144 extern void *sbrk (intptr_t __delta
) throw ();
6145 # 1008 "/usr/include/unistd.h" 3 4
6146 extern long int syscall (long int __sysno
, ...) throw ();
6147 # 1031 "/usr/include/unistd.h" 3 4
6148 extern int lockf (int __fd
, int __cmd
, __off_t __len
) ;
6149 # 1041 "/usr/include/unistd.h" 3 4
6150 extern int lockf64 (int __fd
, int __cmd
, __off64_t __len
) ;
6151 # 1062 "/usr/include/unistd.h" 3 4
6152 extern int fdatasync (int __fildes
) throw ();
6160 extern char *crypt (__const
char *__key
, __const
char *__salt
)
6161 throw () __attribute__ ((__nonnull__ (1, 2)));
6165 extern void encrypt (char *__block
, int __edflag
) throw () __attribute__ ((__nonnull__ (1)));
6172 extern void swab (__const
void *__restrict __from
, void *__restrict __to
,
6173 ssize_t __n
) throw () __attribute__ ((__nonnull__ (1, 2)));
6181 extern char *ctermid (char *__s
) throw ();
6182 # 1100 "/usr/include/unistd.h" 3 4
6184 # 45 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/i686-pc-linux-gnu/bits/gthr-default.h" 2 3
6186 typedef pthread_key_t __gthread_key_t
;
6187 typedef pthread_once_t __gthread_once_t
;
6188 typedef pthread_mutex_t __gthread_mutex_t
;
6189 typedef pthread_mutex_t __gthread_recursive_mutex_t
;
6190 # 88 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/i686-pc-linux-gnu/bits/gthr-default.h" 3
6191 extern __typeof(pthread_once
) __gthrw_pthread_once
__attribute__ ((__weakref__("pthread_once")));
6192 extern __typeof(pthread_getspecific
) __gthrw_pthread_getspecific
__attribute__ ((__weakref__("pthread_getspecific")));
6193 extern __typeof(pthread_setspecific
) __gthrw_pthread_setspecific
__attribute__ ((__weakref__("pthread_setspecific")));
6194 extern __typeof(pthread_create
) __gthrw_pthread_create
__attribute__ ((__weakref__("pthread_create")));
6195 extern __typeof(pthread_cancel
) __gthrw_pthread_cancel
__attribute__ ((__weakref__("pthread_cancel")));
6196 extern __typeof(pthread_mutex_lock
) __gthrw_pthread_mutex_lock
__attribute__ ((__weakref__("pthread_mutex_lock")));
6197 extern __typeof(pthread_mutex_trylock
) __gthrw_pthread_mutex_trylock
__attribute__ ((__weakref__("pthread_mutex_trylock")));
6198 extern __typeof(pthread_mutex_unlock
) __gthrw_pthread_mutex_unlock
__attribute__ ((__weakref__("pthread_mutex_unlock")));
6199 extern __typeof(pthread_mutex_init
) __gthrw_pthread_mutex_init
__attribute__ ((__weakref__("pthread_mutex_init")));
6202 extern __typeof(pthread_key_create
) __gthrw_pthread_key_create
__attribute__ ((__weakref__("pthread_key_create")));
6203 extern __typeof(pthread_key_delete
) __gthrw_pthread_key_delete
__attribute__ ((__weakref__("pthread_key_delete")));
6204 extern __typeof(pthread_mutexattr_init
) __gthrw_pthread_mutexattr_init
__attribute__ ((__weakref__("pthread_mutexattr_init")));
6205 extern __typeof(pthread_mutexattr_settype
) __gthrw_pthread_mutexattr_settype
__attribute__ ((__weakref__("pthread_mutexattr_settype")));
6206 extern __typeof(pthread_mutexattr_destroy
) __gthrw_pthread_mutexattr_destroy
__attribute__ ((__weakref__("pthread_mutexattr_destroy")));
6207 # 145 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/i686-pc-linux-gnu/bits/gthr-default.h" 3
6209 __gthread_active_p (void)
6211 static void *const __gthread_active_ptr
6212 = __extension__ (void *) &__gthrw_pthread_cancel
;
6213 return __gthread_active_ptr
!= 0;
6215 # 512 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/i686-pc-linux-gnu/bits/gthr-default.h" 3
6217 __gthread_once (__gthread_once_t
*once
, void (*func
) (void))
6219 if (__gthread_active_p ())
6220 return __gthrw_pthread_once (once
, func
);
6226 __gthread_key_create (__gthread_key_t
*key
, void (*dtor
) (void *))
6228 return __gthrw_pthread_key_create (key
, dtor
);
6232 __gthread_key_delete (__gthread_key_t key
)
6234 return __gthrw_pthread_key_delete (key
);
6237 static inline void *
6238 __gthread_getspecific (__gthread_key_t key
)
6240 return __gthrw_pthread_getspecific (key
);
6244 __gthread_setspecific (__gthread_key_t key
, const void *ptr
)
6246 return __gthrw_pthread_setspecific (key
, ptr
);
6250 __gthread_mutex_lock (__gthread_mutex_t
*mutex
)
6252 if (__gthread_active_p ())
6253 return __gthrw_pthread_mutex_lock (mutex
);
6259 __gthread_mutex_trylock (__gthread_mutex_t
*mutex
)
6261 if (__gthread_active_p ())
6262 return __gthrw_pthread_mutex_trylock (mutex
);
6268 __gthread_mutex_unlock (__gthread_mutex_t
*mutex
)
6270 if (__gthread_active_p ())
6271 return __gthrw_pthread_mutex_unlock (mutex
);
6275 # 594 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/i686-pc-linux-gnu/bits/gthr-default.h" 3
6277 __gthread_recursive_mutex_lock (__gthread_recursive_mutex_t
*mutex
)
6279 return __gthread_mutex_lock (mutex
);
6283 __gthread_recursive_mutex_trylock (__gthread_recursive_mutex_t
*mutex
)
6285 return __gthread_mutex_trylock (mutex
);
6289 __gthread_recursive_mutex_unlock (__gthread_recursive_mutex_t
*mutex
)
6291 return __gthread_mutex_unlock (mutex
);
6293 # 115 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/i686-pc-linux-gnu/bits/gthr.h" 2 3
6301 #pragma GCC visibility pop
6302 # 39 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/i686-pc-linux-gnu/bits/c++io.h" 2 3
6306 typedef __gthread_mutex_t __c_lock
;
6309 typedef FILE __c_file
;
6311 # 48 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/iosfwd" 2 3
6312 # 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/cctype" 1 3
6313 # 48 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/cctype" 3
6315 # 49 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/cctype" 3
6316 #pragma GCC visibility push(default)
6319 # 1 "/usr/include/ctype.h" 1 3 4
6320 # 30 "/usr/include/ctype.h" 3 4
6322 # 48 "/usr/include/ctype.h" 3 4
6325 _ISupper
= ((0) < 8 ? ((1 << (0)) << 8) : ((1 << (0)) >> 8)),
6326 _ISlower
= ((1) < 8 ? ((1 << (1)) << 8) : ((1 << (1)) >> 8)),
6327 _ISalpha
= ((2) < 8 ? ((1 << (2)) << 8) : ((1 << (2)) >> 8)),
6328 _ISdigit
= ((3) < 8 ? ((1 << (3)) << 8) : ((1 << (3)) >> 8)),
6329 _ISxdigit
= ((4) < 8 ? ((1 << (4)) << 8) : ((1 << (4)) >> 8)),
6330 _ISspace
= ((5) < 8 ? ((1 << (5)) << 8) : ((1 << (5)) >> 8)),
6331 _ISprint
= ((6) < 8 ? ((1 << (6)) << 8) : ((1 << (6)) >> 8)),
6332 _ISgraph
= ((7) < 8 ? ((1 << (7)) << 8) : ((1 << (7)) >> 8)),
6333 _ISblank
= ((8) < 8 ? ((1 << (8)) << 8) : ((1 << (8)) >> 8)),
6334 _IScntrl
= ((9) < 8 ? ((1 << (9)) << 8) : ((1 << (9)) >> 8)),
6335 _ISpunct
= ((10) < 8 ? ((1 << (10)) << 8) : ((1 << (10)) >> 8)),
6336 _ISalnum
= ((11) < 8 ? ((1 << (11)) << 8) : ((1 << (11)) >> 8))
6338 # 81 "/usr/include/ctype.h" 3 4
6339 extern __const
unsigned short int **__ctype_b_loc (void)
6340 __attribute__ ((__const
));
6341 extern __const __int32_t
**__ctype_tolower_loc (void)
6342 __attribute__ ((__const
));
6343 extern __const __int32_t
**__ctype_toupper_loc (void)
6344 __attribute__ ((__const
));
6345 # 96 "/usr/include/ctype.h" 3 4
6352 extern int isalnum (int) throw ();
6353 extern int isalpha (int) throw ();
6354 extern int iscntrl (int) throw ();
6355 extern int isdigit (int) throw ();
6356 extern int islower (int) throw ();
6357 extern int isgraph (int) throw ();
6358 extern int isprint (int) throw ();
6359 extern int ispunct (int) throw ();
6360 extern int isspace (int) throw ();
6361 extern int isupper (int) throw ();
6362 extern int isxdigit (int) throw ();
6366 extern int tolower (int __c
) throw ();
6369 extern int toupper (int __c
) throw ();
6378 extern int isblank (int) throw ();
6385 extern int isctype (int __c
, int __mask
) throw ();
6392 extern int isascii (int __c
) throw ();
6396 extern int toascii (int __c
) throw ();
6400 extern int _toupper (int) throw ();
6401 extern int _tolower (int) throw ();
6402 # 247 "/usr/include/ctype.h" 3 4
6403 extern int isalnum_l (int, __locale_t
) throw ();
6404 extern int isalpha_l (int, __locale_t
) throw ();
6405 extern int iscntrl_l (int, __locale_t
) throw ();
6406 extern int isdigit_l (int, __locale_t
) throw ();
6407 extern int islower_l (int, __locale_t
) throw ();
6408 extern int isgraph_l (int, __locale_t
) throw ();
6409 extern int isprint_l (int, __locale_t
) throw ();
6410 extern int ispunct_l (int, __locale_t
) throw ();
6411 extern int isspace_l (int, __locale_t
) throw ();
6412 extern int isupper_l (int, __locale_t
) throw ();
6413 extern int isxdigit_l (int, __locale_t
) throw ();
6415 extern int isblank_l (int, __locale_t
) throw ();
6419 extern int __tolower_l (int __c
, __locale_t __l
) throw ();
6420 extern int tolower_l (int __c
, __locale_t __l
) throw ();
6423 extern int __toupper_l (int __c
, __locale_t __l
) throw ();
6424 extern int toupper_l (int __c
, __locale_t __l
) throw ();
6425 # 323 "/usr/include/ctype.h" 3 4
6427 # 53 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/cctype" 2 3
6428 # 69 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/cctype" 3
6446 #pragma GCC visibility pop
6447 # 49 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/iosfwd" 2 3
6449 # 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/postypes.h" 1 3
6450 # 44 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/postypes.h" 3
6452 # 45 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/postypes.h" 3
6454 # 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/cwchar" 1 3
6455 # 48 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/cwchar" 3
6457 # 49 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/cwchar" 3
6458 #pragma GCC visibility push(default)
6462 # 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/ctime" 1 3
6463 # 48 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/ctime" 3
6465 # 49 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/ctime" 3
6466 #pragma GCC visibility push(default)
6467 # 66 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/ctime" 3
6485 #pragma GCC visibility pop
6486 # 54 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/cwchar" 2 3
6489 # 1 "/usr/include/wchar.h" 1 3 4
6490 # 40 "/usr/include/wchar.h" 3 4
6491 # 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/stdarg.h" 1 3 4
6492 # 41 "/usr/include/wchar.h" 2 3 4
6500 # 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/stddef.h" 1 3 4
6501 # 49 "/usr/include/wchar.h" 2 3 4
6502 # 93 "/usr/include/wchar.h" 3 4
6505 typedef __mbstate_t
mbstate_t;
6509 # 118 "/usr/include/wchar.h" 3 4
6525 extern wchar_t *wcscpy (wchar_t *__restrict __dest
,
6526 __const
wchar_t *__restrict __src
) throw ();
6528 extern wchar_t *wcsncpy (wchar_t *__restrict __dest
,
6529 __const
wchar_t *__restrict __src
, size_t __n
)
6533 extern wchar_t *wcscat (wchar_t *__restrict __dest
,
6534 __const
wchar_t *__restrict __src
) throw ();
6536 extern wchar_t *wcsncat (wchar_t *__restrict __dest
,
6537 __const
wchar_t *__restrict __src
, size_t __n
)
6541 extern int wcscmp (__const
wchar_t *__s1
, __const
wchar_t *__s2
)
6542 throw () __attribute__ ((__pure__
));
6544 extern int wcsncmp (__const
wchar_t *__s1
, __const
wchar_t *__s2
, size_t __n
)
6545 throw () __attribute__ ((__pure__
));
6550 extern int wcscasecmp (__const
wchar_t *__s1
, __const
wchar_t *__s2
) throw ();
6553 extern int wcsncasecmp (__const
wchar_t *__s1
, __const
wchar_t *__s2
,
6554 size_t __n
) throw ();
6560 extern int wcscasecmp_l (__const
wchar_t *__s1
, __const
wchar_t *__s2
,
6561 __locale_t __loc
) throw ();
6563 extern int wcsncasecmp_l (__const
wchar_t *__s1
, __const
wchar_t *__s2
,
6564 size_t __n
, __locale_t __loc
) throw ();
6570 extern int wcscoll (__const
wchar_t *__s1
, __const
wchar_t *__s2
) throw ();
6574 extern size_t wcsxfrm (wchar_t *__restrict __s1
,
6575 __const
wchar_t *__restrict __s2
, size_t __n
) throw ();
6584 extern int wcscoll_l (__const
wchar_t *__s1
, __const
wchar_t *__s2
,
6585 __locale_t __loc
) throw ();
6590 extern size_t wcsxfrm_l (wchar_t *__s1
, __const
wchar_t *__s2
,
6591 size_t __n
, __locale_t __loc
) throw ();
6594 extern wchar_t *wcsdup (__const
wchar_t *__s
) throw () __attribute__ ((__malloc__
));
6599 extern wchar_t *wcschr (__const
wchar_t *__wcs
, wchar_t __wc
)
6600 throw () __attribute__ ((__pure__
));
6602 extern wchar_t *wcsrchr (__const
wchar_t *__wcs
, wchar_t __wc
)
6603 throw () __attribute__ ((__pure__
));
6609 extern wchar_t *wcschrnul (__const
wchar_t *__s
, wchar_t __wc
)
6610 throw () __attribute__ ((__pure__
));
6616 extern size_t wcscspn (__const
wchar_t *__wcs
, __const
wchar_t *__reject
)
6617 throw () __attribute__ ((__pure__
));
6620 extern size_t wcsspn (__const
wchar_t *__wcs
, __const
wchar_t *__accept
)
6621 throw () __attribute__ ((__pure__
));
6623 extern wchar_t *wcspbrk (__const
wchar_t *__wcs
, __const
wchar_t *__accept
)
6624 throw () __attribute__ ((__pure__
));
6626 extern wchar_t *wcsstr (__const
wchar_t *__haystack
, __const
wchar_t *__needle
)
6627 throw () __attribute__ ((__pure__
));
6630 extern wchar_t *wcstok (wchar_t *__restrict __s
,
6631 __const
wchar_t *__restrict __delim
,
6632 wchar_t **__restrict __ptr
) throw ();
6635 extern size_t wcslen (__const
wchar_t *__s
) throw () __attribute__ ((__pure__
));
6640 extern wchar_t *wcswcs (__const
wchar_t *__haystack
, __const
wchar_t *__needle
)
6641 throw () __attribute__ ((__pure__
));
6646 extern size_t wcsnlen (__const
wchar_t *__s
, size_t __maxlen
)
6647 throw () __attribute__ ((__pure__
));
6653 extern wchar_t *wmemchr (__const
wchar_t *__s
, wchar_t __c
, size_t __n
)
6654 throw () __attribute__ ((__pure__
));
6657 extern int wmemcmp (__const
wchar_t *__restrict __s1
,
6658 __const
wchar_t *__restrict __s2
, size_t __n
)
6659 throw () __attribute__ ((__pure__
));
6662 extern wchar_t *wmemcpy (wchar_t *__restrict __s1
,
6663 __const
wchar_t *__restrict __s2
, size_t __n
) throw ();
6667 extern wchar_t *wmemmove (wchar_t *__s1
, __const
wchar_t *__s2
, size_t __n
)
6671 extern wchar_t *wmemset (wchar_t *__s
, wchar_t __c
, size_t __n
) throw ();
6677 extern wchar_t *wmempcpy (wchar_t *__restrict __s1
,
6678 __const
wchar_t *__restrict __s2
, size_t __n
)
6686 extern wint_t btowc (int __c
) throw ();
6690 extern int wctob (wint_t __c
) throw ();
6694 extern int mbsinit (__const
mbstate_t *__ps
) throw () __attribute__ ((__pure__
));
6698 extern size_t mbrtowc (wchar_t *__restrict __pwc
,
6699 __const
char *__restrict __s
, size_t __n
,
6700 mbstate_t *__p
) throw ();
6703 extern size_t wcrtomb (char *__restrict __s
, wchar_t __wc
,
6704 mbstate_t *__restrict __ps
) throw ();
6707 extern size_t __mbrlen (__const
char *__restrict __s
, size_t __n
,
6708 mbstate_t *__restrict __ps
) throw ();
6709 extern size_t mbrlen (__const
char *__restrict __s
, size_t __n
,
6710 mbstate_t *__restrict __ps
) throw ();
6712 # 346 "/usr/include/wchar.h" 3 4
6716 extern size_t mbsrtowcs (wchar_t *__restrict __dst
,
6717 __const
char **__restrict __src
, size_t __len
,
6718 mbstate_t *__restrict __ps
) throw ();
6722 extern size_t wcsrtombs (char *__restrict __dst
,
6723 __const
wchar_t **__restrict __src
, size_t __len
,
6724 mbstate_t *__restrict __ps
) throw ();
6731 extern size_t mbsnrtowcs (wchar_t *__restrict __dst
,
6732 __const
char **__restrict __src
, size_t __nmc
,
6733 size_t __len
, mbstate_t *__restrict __ps
) throw ();
6737 extern size_t wcsnrtombs (char *__restrict __dst
,
6738 __const
wchar_t **__restrict __src
,
6739 size_t __nwc
, size_t __len
,
6740 mbstate_t *__restrict __ps
) throw ();
6747 extern int wcwidth (wchar_t __c
) throw ();
6751 extern int wcswidth (__const
wchar_t *__s
, size_t __n
) throw ();
6758 extern double wcstod (__const
wchar_t *__restrict __nptr
,
6759 wchar_t **__restrict __endptr
) throw ();
6763 extern float wcstof (__const
wchar_t *__restrict __nptr
,
6764 wchar_t **__restrict __endptr
) throw ();
6765 extern long double wcstold (__const
wchar_t *__restrict __nptr
,
6766 wchar_t **__restrict __endptr
) throw ();
6772 extern long int wcstol (__const
wchar_t *__restrict __nptr
,
6773 wchar_t **__restrict __endptr
, int __base
) throw ();
6777 extern unsigned long int wcstoul (__const
wchar_t *__restrict __nptr
,
6778 wchar_t **__restrict __endptr
, int __base
)
6785 extern long long int wcstoll (__const
wchar_t *__restrict __nptr
,
6786 wchar_t **__restrict __endptr
, int __base
)
6792 extern unsigned long long int wcstoull (__const
wchar_t *__restrict __nptr
,
6793 wchar_t **__restrict __endptr
,
6794 int __base
) throw ();
6802 extern long long int wcstoq (__const
wchar_t *__restrict __nptr
,
6803 wchar_t **__restrict __endptr
, int __base
)
6809 extern unsigned long long int wcstouq (__const
wchar_t *__restrict __nptr
,
6810 wchar_t **__restrict __endptr
,
6811 int __base
) throw ();
6812 # 465 "/usr/include/wchar.h" 3 4
6813 extern long int wcstol_l (__const
wchar_t *__restrict __nptr
,
6814 wchar_t **__restrict __endptr
, int __base
,
6815 __locale_t __loc
) throw ();
6817 extern unsigned long int wcstoul_l (__const
wchar_t *__restrict __nptr
,
6818 wchar_t **__restrict __endptr
,
6819 int __base
, __locale_t __loc
) throw ();
6822 extern long long int wcstoll_l (__const
wchar_t *__restrict __nptr
,
6823 wchar_t **__restrict __endptr
,
6824 int __base
, __locale_t __loc
) throw ();
6827 extern unsigned long long int wcstoull_l (__const
wchar_t *__restrict __nptr
,
6828 wchar_t **__restrict __endptr
,
6829 int __base
, __locale_t __loc
)
6832 extern double wcstod_l (__const
wchar_t *__restrict __nptr
,
6833 wchar_t **__restrict __endptr
, __locale_t __loc
)
6836 extern float wcstof_l (__const
wchar_t *__restrict __nptr
,
6837 wchar_t **__restrict __endptr
, __locale_t __loc
)
6840 extern long double wcstold_l (__const
wchar_t *__restrict __nptr
,
6841 wchar_t **__restrict __endptr
,
6842 __locale_t __loc
) throw ();
6848 extern double __wcstod_internal (__const
wchar_t *__restrict __nptr
,
6849 wchar_t **__restrict __endptr
, int __group
)
6851 extern float __wcstof_internal (__const
wchar_t *__restrict __nptr
,
6852 wchar_t **__restrict __endptr
, int __group
)
6854 extern long double __wcstold_internal (__const
wchar_t *__restrict __nptr
,
6855 wchar_t **__restrict __endptr
,
6856 int __group
) throw ();
6859 extern long int __wcstol_internal (__const
wchar_t *__restrict __nptr
,
6860 wchar_t **__restrict __endptr
,
6861 int __base
, int __group
) throw ();
6865 extern unsigned long int __wcstoul_internal (__const
wchar_t *__restrict __npt
,
6866 wchar_t **__restrict __endptr
,
6867 int __base
, int __group
) throw ();
6872 extern long long int __wcstoll_internal (__const
wchar_t *__restrict __nptr
,
6873 wchar_t **__restrict __endptr
,
6874 int __base
, int __group
) throw ();
6879 extern unsigned long long int __wcstoull_internal (__const
wchar_t *
6882 __restrict __endptr
,
6884 int __group
) throw ();
6885 # 587 "/usr/include/wchar.h" 3 4
6886 extern wchar_t *wcpcpy (wchar_t *__dest
, __const
wchar_t *__src
) throw ();
6890 extern wchar_t *wcpncpy (wchar_t *__dest
, __const
wchar_t *__src
, size_t __n
)
6900 extern int fwide (__FILE
*__fp
, int __mode
) throw ();
6907 extern int fwprintf (__FILE
*__restrict __stream
,
6908 __const
wchar_t *__restrict __format
, ...)
6914 extern int wprintf (__const
wchar_t *__restrict __format
, ...)
6917 extern int swprintf (wchar_t *__restrict __s
, size_t __n
,
6918 __const
wchar_t *__restrict __format
, ...)
6925 extern int vfwprintf (__FILE
*__restrict __s
,
6926 __const
wchar_t *__restrict __format
,
6927 __gnuc_va_list __arg
)
6933 extern int vwprintf (__const
wchar_t *__restrict __format
,
6934 __gnuc_va_list __arg
)
6938 extern int vswprintf (wchar_t *__restrict __s
, size_t __n
,
6939 __const
wchar_t *__restrict __format
,
6940 __gnuc_va_list __arg
)
6948 extern int fwscanf (__FILE
*__restrict __stream
,
6949 __const
wchar_t *__restrict __format
, ...)
6955 extern int wscanf (__const
wchar_t *__restrict __format
, ...)
6958 extern int swscanf (__const
wchar_t *__restrict __s
,
6959 __const
wchar_t *__restrict __format
, ...)
6972 extern int vfwscanf (__FILE
*__restrict __s
,
6973 __const
wchar_t *__restrict __format
,
6974 __gnuc_va_list __arg
)
6980 extern int vwscanf (__const
wchar_t *__restrict __format
,
6981 __gnuc_va_list __arg
)
6984 extern int vswscanf (__const
wchar_t *__restrict __s
,
6985 __const
wchar_t *__restrict __format
,
6986 __gnuc_va_list __arg
)
6998 extern wint_t fgetwc (__FILE
*__stream
);
6999 extern wint_t getwc (__FILE
*__stream
);
7005 extern wint_t getwchar (void);
7012 extern wint_t fputwc (wchar_t __wc
, __FILE
*__stream
);
7013 extern wint_t putwc (wchar_t __wc
, __FILE
*__stream
);
7019 extern wint_t putwchar (wchar_t __wc
);
7027 extern wchar_t *fgetws (wchar_t *__restrict __ws
, int __n
,
7028 __FILE
*__restrict __stream
);
7034 extern int fputws (__const
wchar_t *__restrict __ws
,
7035 __FILE
*__restrict __stream
);
7042 extern wint_t ungetwc (wint_t __wc
, __FILE
*__stream
);
7044 # 755 "/usr/include/wchar.h" 3 4
7045 extern wint_t getwc_unlocked (__FILE
*__stream
);
7046 extern wint_t getwchar_unlocked (void);
7054 extern wint_t fgetwc_unlocked (__FILE
*__stream
);
7062 extern wint_t fputwc_unlocked (wchar_t __wc
, __FILE
*__stream
);
7063 # 781 "/usr/include/wchar.h" 3 4
7064 extern wint_t putwc_unlocked (wchar_t __wc
, __FILE
*__stream
);
7065 extern wint_t putwchar_unlocked (wchar_t __wc
);
7066 # 791 "/usr/include/wchar.h" 3 4
7067 extern wchar_t *fgetws_unlocked (wchar_t *__restrict __ws
, int __n
,
7068 __FILE
*__restrict __stream
);
7076 extern int fputws_unlocked (__const
wchar_t *__restrict __ws
,
7077 __FILE
*__restrict __stream
);
7085 extern size_t wcsftime (wchar_t *__restrict __s
, size_t __maxsize
,
7086 __const
wchar_t *__restrict __format
,
7087 __const
struct tm
*__restrict __tp
) throw ();
7095 extern size_t wcsftime_l (wchar_t *__restrict __s
, size_t __maxsize
,
7096 __const
wchar_t *__restrict __format
,
7097 __const
struct tm
*__restrict __tp
,
7098 __locale_t __loc
) throw ();
7099 # 845 "/usr/include/wchar.h" 3 4
7101 # 57 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/cwchar" 2 3
7102 # 71 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/cwchar" 3
7107 # 143 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/cwchar" 3
7177 wcschr(wchar_t* __p
, wchar_t __c
)
7178 { return wcschr(const_cast<const wchar_t*>(__p
), __c
); }
7183 wcspbrk(wchar_t* __s1
, const wchar_t* __s2
)
7184 { return wcspbrk(const_cast<const wchar_t*>(__s1
), __s2
); }
7189 wcsrchr(wchar_t* __p
, wchar_t __c
)
7190 { return wcsrchr(const_cast<const wchar_t*>(__p
), __c
); }
7195 wcsstr(wchar_t* __s1
, const wchar_t* __s2
)
7196 { return wcsstr(const_cast<const wchar_t*>(__s1
), __s2
); }
7201 wmemchr(wchar_t* __p
, wchar_t __c
, size_t __n
)
7202 { return wmemchr(const_cast<const wchar_t*>(__p
), __c
, __n
); }
7219 # 262 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/cwchar" 3
7227 using __gnu_cxx::wcstold
;
7228 using __gnu_cxx::wcstoll
;
7229 using __gnu_cxx::wcstoull
;
7235 #pragma GCC visibility pop
7236 # 47 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/postypes.h" 2 3
7239 # 1 "/usr/include/stdint.h" 1 3 4
7240 # 28 "/usr/include/stdint.h" 3 4
7241 # 1 "/usr/include/bits/wordsize.h" 1 3 4
7242 # 29 "/usr/include/stdint.h" 2 3 4
7243 # 49 "/usr/include/stdint.h" 3 4
7244 typedef unsigned char uint8_t;
7245 typedef unsigned short int uint16_t;
7247 typedef unsigned int uint32_t;
7254 typedef unsigned long long int uint64_t;
7261 typedef signed char int_least8_t;
7262 typedef short int int_least16_t;
7263 typedef int int_least32_t;
7268 typedef long long int int_least64_t;
7272 typedef unsigned char uint_least8_t;
7273 typedef unsigned short int uint_least16_t;
7274 typedef unsigned int uint_least32_t;
7279 typedef unsigned long long int uint_least64_t;
7286 typedef signed char int_fast8_t;
7292 typedef int int_fast16_t;
7293 typedef int int_fast32_t;
7295 typedef long long int int_fast64_t;
7299 typedef unsigned char uint_fast8_t;
7305 typedef unsigned int uint_fast16_t;
7306 typedef unsigned int uint_fast32_t;
7308 typedef unsigned long long int uint_fast64_t;
7309 # 129 "/usr/include/stdint.h" 3 4
7310 typedef unsigned int uintptr_t;
7311 # 138 "/usr/include/stdint.h" 3 4
7313 typedef long long int intmax_t;
7315 typedef unsigned long long int uintmax_t;
7316 # 50 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/postypes.h" 2 3
7321 # 72 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/postypes.h" 3
7322 typedef int64_t streamoff
;
7328 typedef ptrdiff_t streamsize
;
7330 template<typename _StateT
>
7332 # 94 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/postypes.h" 3
7333 template<typename _StateT
>
7346 : _M_off(0), _M_state() { }
7347 # 116 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/postypes.h" 3
7348 fpos(streamoff __off
)
7349 : _M_off(__off
), _M_state() { }
7352 operator streamoff() const { return _M_off
; }
7357 { _M_state
= __st
; }
7362 { return _M_state
; }
7370 operator==(const fpos
& __other
) const
7371 { return _M_off
== __other
._M_off
; }
7375 operator!=(const fpos
& __other
) const
7376 { return _M_off
!= __other
._M_off
; }
7383 operator+=(streamoff __off
)
7394 operator-=(streamoff __off
)
7407 operator+(streamoff __off
) const
7421 operator-(streamoff __off
) const
7434 operator-(const fpos
& __other
) const
7435 { return _M_off
- __other
._M_off
; }
7442 typedef fpos
<mbstate_t> streampos
;
7444 typedef fpos
<mbstate_t> wstreampos
;
7446 # 51 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/iosfwd" 2 3
7447 # 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/functexcept.h" 1 3
7448 # 41 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/functexcept.h" 3
7449 # 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/exception_defines.h" 1 3
7450 # 42 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/functexcept.h" 2 3
7456 __throw_bad_exception(void) __attribute__((__noreturn__
));
7460 __throw_bad_alloc(void) __attribute__((__noreturn__
));
7464 __throw_bad_cast(void) __attribute__((__noreturn__
));
7467 __throw_bad_typeid(void) __attribute__((__noreturn__
));
7471 __throw_logic_error(const char*) __attribute__((__noreturn__
));
7474 __throw_domain_error(const char*) __attribute__((__noreturn__
));
7477 __throw_invalid_argument(const char*) __attribute__((__noreturn__
));
7480 __throw_length_error(const char*) __attribute__((__noreturn__
));
7483 __throw_out_of_range(const char*) __attribute__((__noreturn__
));
7486 __throw_runtime_error(const char*) __attribute__((__noreturn__
));
7489 __throw_range_error(const char*) __attribute__((__noreturn__
));
7492 __throw_overflow_error(const char*) __attribute__((__noreturn__
));
7495 __throw_underflow_error(const char*) __attribute__((__noreturn__
));
7499 __throw_ios_failure(const char*) __attribute__((__noreturn__
));
7501 # 52 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/iosfwd" 2 3
7505 template<typename _CharT
, typename _Traits
= char_traits
<_CharT
> >
7508 template<typename _CharT
, typename _Traits
= char_traits
<_CharT
> >
7509 class basic_streambuf
;
7511 template<typename _CharT
, typename _Traits
= char_traits
<_CharT
> >
7512 class basic_istream
;
7514 template<typename _CharT
, typename _Traits
= char_traits
<_CharT
> >
7515 class basic_ostream
;
7517 template<typename _CharT
, typename _Traits
= char_traits
<_CharT
> >
7518 class basic_iostream
;
7520 template<typename _CharT
, typename _Traits
= char_traits
<_CharT
>,
7521 typename _Alloc
= allocator
<_CharT
> >
7522 class basic_stringbuf
;
7524 template<typename _CharT
, typename _Traits
= char_traits
<_CharT
>,
7525 typename _Alloc
= allocator
<_CharT
> >
7526 class basic_istringstream
;
7528 template<typename _CharT
, typename _Traits
= char_traits
<_CharT
>,
7529 typename _Alloc
= allocator
<_CharT
> >
7530 class basic_ostringstream
;
7532 template<typename _CharT
, typename _Traits
= char_traits
<_CharT
>,
7533 typename _Alloc
= allocator
<_CharT
> >
7534 class basic_stringstream
;
7536 template<typename _CharT
, typename _Traits
= char_traits
<_CharT
> >
7537 class basic_filebuf
;
7539 template<typename _CharT
, typename _Traits
= char_traits
<_CharT
> >
7540 class basic_ifstream
;
7542 template<typename _CharT
, typename _Traits
= char_traits
<_CharT
> >
7543 class basic_ofstream
;
7545 template<typename _CharT
, typename _Traits
= char_traits
<_CharT
> >
7546 class basic_fstream
;
7548 template<typename _CharT
, typename _Traits
= char_traits
<_CharT
> >
7549 class istreambuf_iterator
;
7551 template<typename _CharT
, typename _Traits
= char_traits
<_CharT
> >
7552 class ostreambuf_iterator
;
7557 # 136 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/iosfwd" 3
7558 typedef basic_ios
<char> ios
;
7559 typedef basic_streambuf
<char> streambuf
;
7560 typedef basic_istream
<char> istream
;
7561 typedef basic_ostream
<char> ostream
;
7562 typedef basic_iostream
<char> iostream
;
7563 typedef basic_stringbuf
<char> stringbuf
;
7564 typedef basic_istringstream
<char> istringstream
;
7565 typedef basic_ostringstream
<char> ostringstream
;
7566 typedef basic_stringstream
<char> stringstream
;
7567 typedef basic_filebuf
<char> filebuf
;
7568 typedef basic_ifstream
<char> ifstream
;
7569 typedef basic_ofstream
<char> ofstream
;
7570 typedef basic_fstream
<char> fstream
;
7573 typedef basic_ios
<wchar_t> wios
;
7574 typedef basic_streambuf
<wchar_t> wstreambuf
;
7575 typedef basic_istream
<wchar_t> wistream
;
7576 typedef basic_ostream
<wchar_t> wostream
;
7577 typedef basic_iostream
<wchar_t> wiostream
;
7578 typedef basic_stringbuf
<wchar_t> wstringbuf
;
7579 typedef basic_istringstream
<wchar_t> wistringstream
;
7580 typedef basic_ostringstream
<wchar_t> wostringstream
;
7581 typedef basic_stringstream
<wchar_t> wstringstream
;
7582 typedef basic_filebuf
<wchar_t> wfilebuf
;
7583 typedef basic_ifstream
<wchar_t> wifstream
;
7584 typedef basic_ofstream
<wchar_t> wofstream
;
7585 typedef basic_fstream
<wchar_t> wfstream
;
7590 #pragma GCC visibility pop
7591 # 70 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algobase.h" 2 3
7592 # 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_pair.h" 1 3
7593 # 64 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_pair.h" 3
7597 template<class _T1
, class _T2
>
7600 typedef _T1 first_type
;
7601 typedef _T2 second_type
;
7611 : first(), second() { }
7614 pair(const _T1
& __a
, const _T2
& __b
)
7615 : first(__a
), second(__b
) { }
7618 template<class _U1
, class _U2
>
7619 pair(const pair
<_U1
, _U2
>& __p
)
7620 : first(__p
.first
), second(__p
.second
) { }
7624 template<class _T1
, class _T2
>
7626 operator==(const pair
<_T1
, _T2
>& __x
, const pair
<_T1
, _T2
>& __y
)
7627 { return __x
.first
== __y
.first
&& __x
.second
== __y
.second
; }
7630 template<class _T1
, class _T2
>
7632 operator<(const pair
<_T1
, _T2
>& __x
, const pair
<_T1
, _T2
>& __y
)
7633 { return __x
.first
< __y
.first
7634 || (!(__y
.first
< __x
.first
) && __x
.second
< __y
.second
); }
7637 template<class _T1
, class _T2
>
7639 operator!=(const pair
<_T1
, _T2
>& __x
, const pair
<_T1
, _T2
>& __y
)
7640 { return !(__x
== __y
); }
7643 template<class _T1
, class _T2
>
7645 operator>(const pair
<_T1
, _T2
>& __x
, const pair
<_T1
, _T2
>& __y
)
7646 { return __y
< __x
; }
7649 template<class _T1
, class _T2
>
7651 operator<=(const pair
<_T1
, _T2
>& __x
, const pair
<_T1
, _T2
>& __y
)
7652 { return !(__y
< __x
); }
7655 template<class _T1
, class _T2
>
7657 operator>=(const pair
<_T1
, _T2
>& __x
, const pair
<_T1
, _T2
>& __y
)
7658 { return !(__x
< __y
); }
7659 # 142 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_pair.h" 3
7660 template<class _T1
, class _T2
>
7661 inline pair
<_T1
, _T2
>
7662 make_pair(_T1 __x
, _T2 __y
)
7663 { return pair
<_T1
, _T2
>(__x
, __y
); }
7665 # 71 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algobase.h" 2 3
7666 # 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/cpp_type_traits.h" 1 3
7667 # 41 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/cpp_type_traits.h" 3
7669 # 42 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/cpp_type_traits.h" 3
7670 # 75 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/cpp_type_traits.h" 3
7671 namespace __gnu_internal
7674 typedef char __two
[2];
7676 template<typename _Tp
>
7677 __one
__test_type(int _Tp::*);
7678 template<typename _Tp
>
7679 __two
& __test_type(...);
7685 template<typename _Iterator
, typename _Container
>
7686 class __normal_iterator
;
7689 struct __true_type
{ };
7690 struct __false_type
{ };
7696 { typedef __false_type __type
; };
7699 struct __truth_type
<true>
7700 { typedef __true_type __type
; };
7704 template<class _Sp
, class _Tp
>
7707 enum { __value
= bool(_Sp::__value
) || bool(_Tp::__value
) };
7708 typedef typename __truth_type
<__value
>::__type __type
;
7712 template<typename
, typename
>
7715 enum { __value
= 0 };
7716 typedef __false_type __type
;
7719 template<typename _Tp
>
7720 struct __are_same
<_Tp
, _Tp
>
7722 enum { __value
= 1 };
7723 typedef __true_type __type
;
7727 template<typename
, bool>
7732 template<typename _Tp
>
7733 struct __enable_if
<_Tp
, true>
7739 template<typename _Tp
>
7742 enum { __value
= 0 };
7743 typedef __false_type __type
;
7747 struct __is_void
<void>
7749 enum { __value
= 1 };
7750 typedef __true_type __type
;
7756 template<typename _Tp
>
7759 enum { __value
= 0 };
7760 typedef __false_type __type
;
7767 struct __is_integer
<bool>
7769 enum { __value
= 1 };
7770 typedef __true_type __type
;
7774 struct __is_integer
<char>
7776 enum { __value
= 1 };
7777 typedef __true_type __type
;
7781 struct __is_integer
<signed char>
7783 enum { __value
= 1 };
7784 typedef __true_type __type
;
7788 struct __is_integer
<unsigned char>
7790 enum { __value
= 1 };
7791 typedef __true_type __type
;
7796 struct __is_integer
<wchar_t>
7798 enum { __value
= 1 };
7799 typedef __true_type __type
;
7804 struct __is_integer
<short>
7806 enum { __value
= 1 };
7807 typedef __true_type __type
;
7811 struct __is_integer
<unsigned short>
7813 enum { __value
= 1 };
7814 typedef __true_type __type
;
7818 struct __is_integer
<int>
7820 enum { __value
= 1 };
7821 typedef __true_type __type
;
7825 struct __is_integer
<unsigned int>
7827 enum { __value
= 1 };
7828 typedef __true_type __type
;
7832 struct __is_integer
<long>
7834 enum { __value
= 1 };
7835 typedef __true_type __type
;
7839 struct __is_integer
<unsigned long>
7841 enum { __value
= 1 };
7842 typedef __true_type __type
;
7846 struct __is_integer
<long long>
7848 enum { __value
= 1 };
7849 typedef __true_type __type
;
7853 struct __is_integer
<unsigned long long>
7855 enum { __value
= 1 };
7856 typedef __true_type __type
;
7862 template<typename _Tp
>
7863 struct __is_floating
7865 enum { __value
= 0 };
7866 typedef __false_type __type
;
7871 struct __is_floating
<float>
7873 enum { __value
= 1 };
7874 typedef __true_type __type
;
7878 struct __is_floating
<double>
7880 enum { __value
= 1 };
7881 typedef __true_type __type
;
7885 struct __is_floating
<long double>
7887 enum { __value
= 1 };
7888 typedef __true_type __type
;
7894 template<typename _Tp
>
7897 enum { __value
= 0 };
7898 typedef __false_type __type
;
7901 template<typename _Tp
>
7902 struct __is_pointer
<_Tp
*>
7904 enum { __value
= 1 };
7905 typedef __true_type __type
;
7911 template<typename _Tp
>
7912 struct __is_normal_iterator
7914 enum { __value
= 0 };
7915 typedef __false_type __type
;
7918 template<typename _Iterator
, typename _Container
>
7919 struct __is_normal_iterator
< __gnu_cxx::__normal_iterator
<_Iterator
,
7922 enum { __value
= 1 };
7923 typedef __true_type __type
;
7929 template<typename _Tp
>
7930 struct __is_arithmetic
7931 : public __traitor
<__is_integer
<_Tp
>, __is_floating
<_Tp
> >
7937 template<typename _Tp
>
7938 struct __is_fundamental
7939 : public __traitor
<__is_void
<_Tp
>, __is_arithmetic
<_Tp
> >
7945 template<typename _Tp
>
7947 : public __traitor
<__is_arithmetic
<_Tp
>, __is_pointer
<_Tp
> >
7953 template<typename _Tp
>
7958 __value
= (sizeof(__gnu_internal::__test_type
<_Tp
>(0))
7959 != sizeof(__gnu_internal::__one
))
7966 template<typename _Tp
>
7972 template<typename _Up
>
7979 __value
= sizeof(__first
<_Tp
>) == sizeof(__second
<_Tp
>)
7984 # 72 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algobase.h" 2 3
7985 # 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_iterator_base_types.h" 1 3
7986 # 67 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_iterator_base_types.h" 3
7988 # 68 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_iterator_base_types.h" 3
7992 # 80 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_iterator_base_types.h" 3
7993 struct input_iterator_tag
{};
7995 struct output_iterator_tag
{};
7997 struct forward_iterator_tag
: public input_iterator_tag
{};
8000 struct bidirectional_iterator_tag
: public forward_iterator_tag
{};
8003 struct random_access_iterator_tag
: public bidirectional_iterator_tag
{};
8004 # 104 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_iterator_base_types.h" 3
8005 template<typename _Category
, typename _Tp
, typename _Distance
= ptrdiff_t,
8006 typename _Pointer
= _Tp
*, typename _Reference
= _Tp
&>
8010 typedef _Category iterator_category
;
8012 typedef _Tp value_type
;
8014 typedef _Distance difference_type
;
8016 typedef _Pointer pointer
;
8018 typedef _Reference reference
;
8027 template<typename _Iterator
>
8028 struct iterator_traits
8030 typedef typename
_Iterator::iterator_category iterator_category
;
8031 typedef typename
_Iterator::value_type value_type
;
8032 typedef typename
_Iterator::difference_type difference_type
;
8033 typedef typename
_Iterator::pointer pointer
;
8034 typedef typename
_Iterator::reference reference
;
8037 template<typename _Tp
>
8038 struct iterator_traits
<_Tp
*>
8040 typedef random_access_iterator_tag iterator_category
;
8041 typedef _Tp value_type
;
8042 typedef ptrdiff_t difference_type
;
8043 typedef _Tp
* pointer
;
8044 typedef _Tp
& reference
;
8047 template<typename _Tp
>
8048 struct iterator_traits
<const _Tp
*>
8050 typedef random_access_iterator_tag iterator_category
;
8051 typedef _Tp value_type
;
8052 typedef ptrdiff_t difference_type
;
8053 typedef const _Tp
* pointer
;
8054 typedef const _Tp
& reference
;
8063 template<typename _Iter
>
8064 inline typename iterator_traits
<_Iter
>::iterator_category
8065 __iterator_category(const _Iter
&)
8066 { return typename iterator_traits
<_Iter
>::iterator_category(); }
8069 # 73 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algobase.h" 2 3
8070 # 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_iterator_base_funcs.h" 1 3
8071 # 67 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_iterator_base_funcs.h" 3
8073 # 68 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_iterator_base_funcs.h" 3
8074 # 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/concept_check.h" 1 3
8075 # 38 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/concept_check.h" 3
8077 # 39 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/concept_check.h" 3
8078 # 69 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_iterator_base_funcs.h" 2 3
8082 template<typename _InputIterator
>
8083 inline typename iterator_traits
<_InputIterator
>::difference_type
8084 __distance(_InputIterator __first
, _InputIterator __last
,
8090 typename iterator_traits
<_InputIterator
>::difference_type __n
= 0;
8091 while (__first
!= __last
)
8099 template<typename _RandomAccessIterator
>
8100 inline typename iterator_traits
<_RandomAccessIterator
>::difference_type
8101 __distance(_RandomAccessIterator __first
, _RandomAccessIterator __last
,
8102 random_access_iterator_tag
)
8107 return __last
- __first
;
8109 # 112 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_iterator_base_funcs.h" 3
8110 template<typename _InputIterator
>
8111 inline typename iterator_traits
<_InputIterator
>::difference_type
8112 distance(_InputIterator __first
, _InputIterator __last
)
8115 return std::__distance(__first
, __last
,
8116 std::__iterator_category(__first
));
8119 template<typename _InputIterator
, typename _Distance
>
8121 __advance(_InputIterator
& __i
, _Distance __n
, input_iterator_tag
)
8129 template<typename _BidirectionalIterator
, typename _Distance
>
8131 __advance(_BidirectionalIterator
& __i
, _Distance __n
,
8132 bidirectional_iterator_tag
)
8145 template<typename _RandomAccessIterator
, typename _Distance
>
8147 __advance(_RandomAccessIterator
& __i
, _Distance __n
,
8148 random_access_iterator_tag
)
8155 # 170 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_iterator_base_funcs.h" 3
8156 template<typename _InputIterator
, typename _Distance
>
8158 advance(_InputIterator
& __i
, _Distance __n
)
8161 std::__advance(__i
, __n
, std::__iterator_category(__i
));
8164 # 74 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algobase.h" 2 3
8165 # 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_iterator.h" 1 3
8166 # 70 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_iterator.h" 3
8169 # 91 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_iterator.h" 3
8170 template<typename _Iterator
>
8171 class reverse_iterator
8172 : public iterator
<typename iterator_traits
<_Iterator
>::iterator_category
,
8173 typename iterator_traits
<_Iterator
>::value_type
,
8174 typename iterator_traits
<_Iterator
>::difference_type
,
8175 typename iterator_traits
<_Iterator
>::pointer
,
8176 typename iterator_traits
<_Iterator
>::reference
>
8182 typedef _Iterator iterator_type
;
8183 typedef typename iterator_traits
<_Iterator
>::difference_type
8185 typedef typename iterator_traits
<_Iterator
>::reference reference
;
8186 typedef typename iterator_traits
<_Iterator
>::pointer pointer
;
8195 reverse_iterator() : current() { }
8201 reverse_iterator(iterator_type __x
) : current(__x
) { }
8206 reverse_iterator(const reverse_iterator
& __x
)
8207 : current(__x
.current
) { }
8213 template<typename _Iter
>
8214 reverse_iterator(const reverse_iterator
<_Iter
>& __x
)
8215 : current(__x
.base()) { }
8232 _Iterator __tmp
= current
;
8243 { return &(operator*()); }
8265 reverse_iterator __tmp
= *this;
8290 reverse_iterator __tmp
= *this;
8301 operator+(difference_type __n
) const
8302 { return reverse_iterator(current
- __n
); }
8310 operator+=(difference_type __n
)
8322 operator-(difference_type __n
) const
8323 { return reverse_iterator(current
+ __n
); }
8331 operator-=(difference_type __n
)
8343 operator[](difference_type __n
) const
8344 { return *(*this + __n
); }
8346 # 278 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_iterator.h" 3
8347 template<typename _Iterator
>
8349 operator==(const reverse_iterator
<_Iterator
>& __x
,
8350 const reverse_iterator
<_Iterator
>& __y
)
8351 { return __x
.base() == __y
.base(); }
8353 template<typename _Iterator
>
8355 operator<(const reverse_iterator
<_Iterator
>& __x
,
8356 const reverse_iterator
<_Iterator
>& __y
)
8357 { return __y
.base() < __x
.base(); }
8359 template<typename _Iterator
>
8361 operator!=(const reverse_iterator
<_Iterator
>& __x
,
8362 const reverse_iterator
<_Iterator
>& __y
)
8363 { return !(__x
== __y
); }
8365 template<typename _Iterator
>
8367 operator>(const reverse_iterator
<_Iterator
>& __x
,
8368 const reverse_iterator
<_Iterator
>& __y
)
8369 { return __y
< __x
; }
8371 template<typename _Iterator
>
8373 operator<=(const reverse_iterator
<_Iterator
>& __x
,
8374 const reverse_iterator
<_Iterator
>& __y
)
8375 { return !(__y
< __x
); }
8377 template<typename _Iterator
>
8379 operator>=(const reverse_iterator
<_Iterator
>& __x
,
8380 const reverse_iterator
<_Iterator
>& __y
)
8381 { return !(__x
< __y
); }
8383 template<typename _Iterator
>
8384 inline typename reverse_iterator
<_Iterator
>::difference_type
8385 operator-(const reverse_iterator
<_Iterator
>& __x
,
8386 const reverse_iterator
<_Iterator
>& __y
)
8387 { return __y
.base() - __x
.base(); }
8389 template<typename _Iterator
>
8390 inline reverse_iterator
<_Iterator
>
8391 operator+(typename reverse_iterator
<_Iterator
>::difference_type __n
,
8392 const reverse_iterator
<_Iterator
>& __x
)
8393 { return reverse_iterator
<_Iterator
>(__x
.base() - __n
); }
8397 template<typename _IteratorL
, typename _IteratorR
>
8399 operator==(const reverse_iterator
<_IteratorL
>& __x
,
8400 const reverse_iterator
<_IteratorR
>& __y
)
8401 { return __x
.base() == __y
.base(); }
8403 template<typename _IteratorL
, typename _IteratorR
>
8405 operator<(const reverse_iterator
<_IteratorL
>& __x
,
8406 const reverse_iterator
<_IteratorR
>& __y
)
8407 { return __y
.base() < __x
.base(); }
8409 template<typename _IteratorL
, typename _IteratorR
>
8411 operator!=(const reverse_iterator
<_IteratorL
>& __x
,
8412 const reverse_iterator
<_IteratorR
>& __y
)
8413 { return !(__x
== __y
); }
8415 template<typename _IteratorL
, typename _IteratorR
>
8417 operator>(const reverse_iterator
<_IteratorL
>& __x
,
8418 const reverse_iterator
<_IteratorR
>& __y
)
8419 { return __y
< __x
; }
8421 template<typename _IteratorL
, typename _IteratorR
>
8423 operator<=(const reverse_iterator
<_IteratorL
>& __x
,
8424 const reverse_iterator
<_IteratorR
>& __y
)
8425 { return !(__y
< __x
); }
8427 template<typename _IteratorL
, typename _IteratorR
>
8429 operator>=(const reverse_iterator
<_IteratorL
>& __x
,
8430 const reverse_iterator
<_IteratorR
>& __y
)
8431 { return !(__x
< __y
); }
8433 template<typename _IteratorL
, typename _IteratorR
>
8434 inline typename reverse_iterator
<_IteratorL
>::difference_type
8435 operator-(const reverse_iterator
<_IteratorL
>& __x
,
8436 const reverse_iterator
<_IteratorR
>& __y
)
8437 { return __y
.base() - __x
.base(); }
8438 # 382 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_iterator.h" 3
8439 template<typename _Container
>
8440 class back_insert_iterator
8441 : public iterator
<output_iterator_tag
, void, void, void, void>
8444 _Container
* container
;
8448 typedef _Container container_type
;
8452 back_insert_iterator(_Container
& __x
) : container(&__x
) { }
8453 # 408 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_iterator.h" 3
8454 back_insert_iterator
&
8455 operator=(typename
_Container::const_reference __value
)
8457 container
->push_back(__value
);
8462 back_insert_iterator
&
8467 back_insert_iterator
&
8472 back_insert_iterator
8476 # 442 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_iterator.h" 3
8477 template<typename _Container
>
8478 inline back_insert_iterator
<_Container
>
8479 back_inserter(_Container
& __x
)
8480 { return back_insert_iterator
<_Container
>(__x
); }
8481 # 457 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_iterator.h" 3
8482 template<typename _Container
>
8483 class front_insert_iterator
8484 : public iterator
<output_iterator_tag
, void, void, void, void>
8487 _Container
* container
;
8491 typedef _Container container_type
;
8494 explicit front_insert_iterator(_Container
& __x
) : container(&__x
) { }
8495 # 482 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_iterator.h" 3
8496 front_insert_iterator
&
8497 operator=(typename
_Container::const_reference __value
)
8499 container
->push_front(__value
);
8504 front_insert_iterator
&
8509 front_insert_iterator
&
8514 front_insert_iterator
8518 # 516 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_iterator.h" 3
8519 template<typename _Container
>
8520 inline front_insert_iterator
<_Container
>
8521 front_inserter(_Container
& __x
)
8522 { return front_insert_iterator
<_Container
>(__x
); }
8523 # 535 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_iterator.h" 3
8524 template<typename _Container
>
8525 class insert_iterator
8526 : public iterator
<output_iterator_tag
, void, void, void, void>
8529 _Container
* container
;
8530 typename
_Container::iterator iter
;
8534 typedef _Container container_type
;
8540 insert_iterator(_Container
& __x
, typename
_Container::iterator __i
)
8541 : container(&__x
), iter(__i
) {}
8542 # 577 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_iterator.h" 3
8544 operator=(const typename
_Container::const_reference __value
)
8546 iter
= container
->insert(iter
, __value
);
8566 # 612 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_iterator.h" 3
8567 template<typename _Container
, typename _Iterator
>
8568 inline insert_iterator
<_Container
>
8569 inserter(_Container
& __x
, _Iterator __i
)
8571 return insert_iterator
<_Container
>(__x
,
8572 typename
_Container::iterator(__i
));
8585 using std::iterator_traits
;
8586 using std::iterator
;
8587 template<typename _Iterator
, typename _Container
>
8588 class __normal_iterator
8591 _Iterator _M_current
;
8594 typedef typename iterator_traits
<_Iterator
>::iterator_category
8596 typedef typename iterator_traits
<_Iterator
>::value_type value_type
;
8597 typedef typename iterator_traits
<_Iterator
>::difference_type
8599 typedef typename iterator_traits
<_Iterator
>::reference reference
;
8600 typedef typename iterator_traits
<_Iterator
>::pointer pointer
;
8602 __normal_iterator() : _M_current(_Iterator()) { }
8605 __normal_iterator(const _Iterator
& __i
) : _M_current(__i
) { }
8608 template<typename _Iter
>
8609 __normal_iterator(const __normal_iterator
<_Iter
,
8610 typename
std::__enable_if
<_Container
,
8611 (std::__are_same
<_Iter
,
8612 typename
_Container::pointer
>::__value
)
8614 : _M_current(__i
.base()) { }
8619 { return *_M_current
; }
8623 { return _M_current
; }
8634 { return __normal_iterator(_M_current
++); }
8646 { return __normal_iterator(_M_current
--); }
8650 operator[](const difference_type
& __n
) const
8651 { return _M_current
[__n
]; }
8654 operator+=(const difference_type
& __n
)
8655 { _M_current
+= __n
; return *this; }
8658 operator+(const difference_type
& __n
) const
8659 { return __normal_iterator(_M_current
+ __n
); }
8662 operator-=(const difference_type
& __n
)
8663 { _M_current
-= __n
; return *this; }
8666 operator-(const difference_type
& __n
) const
8667 { return __normal_iterator(_M_current
- __n
); }
8671 { return _M_current
; }
8673 # 728 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_iterator.h" 3
8674 template<typename _IteratorL
, typename _IteratorR
, typename _Container
>
8676 operator==(const __normal_iterator
<_IteratorL
, _Container
>& __lhs
,
8677 const __normal_iterator
<_IteratorR
, _Container
>& __rhs
)
8678 { return __lhs
.base() == __rhs
.base(); }
8680 template<typename _Iterator
, typename _Container
>
8682 operator==(const __normal_iterator
<_Iterator
, _Container
>& __lhs
,
8683 const __normal_iterator
<_Iterator
, _Container
>& __rhs
)
8684 { return __lhs
.base() == __rhs
.base(); }
8686 template<typename _IteratorL
, typename _IteratorR
, typename _Container
>
8688 operator!=(const __normal_iterator
<_IteratorL
, _Container
>& __lhs
,
8689 const __normal_iterator
<_IteratorR
, _Container
>& __rhs
)
8690 { return __lhs
.base() != __rhs
.base(); }
8692 template<typename _Iterator
, typename _Container
>
8694 operator!=(const __normal_iterator
<_Iterator
, _Container
>& __lhs
,
8695 const __normal_iterator
<_Iterator
, _Container
>& __rhs
)
8696 { return __lhs
.base() != __rhs
.base(); }
8699 template<typename _IteratorL
, typename _IteratorR
, typename _Container
>
8701 operator<(const __normal_iterator
<_IteratorL
, _Container
>& __lhs
,
8702 const __normal_iterator
<_IteratorR
, _Container
>& __rhs
)
8703 { return __lhs
.base() < __rhs
.base(); }
8705 template<typename _Iterator
, typename _Container
>
8707 operator<(const __normal_iterator
<_Iterator
, _Container
>& __lhs
,
8708 const __normal_iterator
<_Iterator
, _Container
>& __rhs
)
8709 { return __lhs
.base() < __rhs
.base(); }
8711 template<typename _IteratorL
, typename _IteratorR
, typename _Container
>
8713 operator>(const __normal_iterator
<_IteratorL
, _Container
>& __lhs
,
8714 const __normal_iterator
<_IteratorR
, _Container
>& __rhs
)
8715 { return __lhs
.base() > __rhs
.base(); }
8717 template<typename _Iterator
, typename _Container
>
8719 operator>(const __normal_iterator
<_Iterator
, _Container
>& __lhs
,
8720 const __normal_iterator
<_Iterator
, _Container
>& __rhs
)
8721 { return __lhs
.base() > __rhs
.base(); }
8723 template<typename _IteratorL
, typename _IteratorR
, typename _Container
>
8725 operator<=(const __normal_iterator
<_IteratorL
, _Container
>& __lhs
,
8726 const __normal_iterator
<_IteratorR
, _Container
>& __rhs
)
8727 { return __lhs
.base() <= __rhs
.base(); }
8729 template<typename _Iterator
, typename _Container
>
8731 operator<=(const __normal_iterator
<_Iterator
, _Container
>& __lhs
,
8732 const __normal_iterator
<_Iterator
, _Container
>& __rhs
)
8733 { return __lhs
.base() <= __rhs
.base(); }
8735 template<typename _IteratorL
, typename _IteratorR
, typename _Container
>
8737 operator>=(const __normal_iterator
<_IteratorL
, _Container
>& __lhs
,
8738 const __normal_iterator
<_IteratorR
, _Container
>& __rhs
)
8739 { return __lhs
.base() >= __rhs
.base(); }
8741 template<typename _Iterator
, typename _Container
>
8743 operator>=(const __normal_iterator
<_Iterator
, _Container
>& __lhs
,
8744 const __normal_iterator
<_Iterator
, _Container
>& __rhs
)
8745 { return __lhs
.base() >= __rhs
.base(); }
8751 template<typename _IteratorL
, typename _IteratorR
, typename _Container
>
8752 inline typename __normal_iterator
<_IteratorL
, _Container
>::difference_type
8753 operator-(const __normal_iterator
<_IteratorL
, _Container
>& __lhs
,
8754 const __normal_iterator
<_IteratorR
, _Container
>& __rhs
)
8755 { return __lhs
.base() - __rhs
.base(); }
8757 template<typename _Iterator
, typename _Container
>
8758 inline __normal_iterator
<_Iterator
, _Container
>
8759 operator+(typename __normal_iterator
<_Iterator
, _Container
>::difference_type
8760 __n
, const __normal_iterator
<_Iterator
, _Container
>& __i
)
8761 { return __normal_iterator
<_Iterator
, _Container
>(__i
.base() + __n
); }
8763 # 75 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algobase.h" 2 3
8765 # 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/debug/debug.h" 1 3
8766 # 77 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algobase.h" 2 3
8770 # 90 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algobase.h" 3
8771 template<typename _Tp
>
8773 swap(_Tp
& __a
, _Tp
& __b
)
8786 template<bool _BoolType
>
8789 template<typename _ForwardIterator1
, typename _ForwardIterator2
>
8791 iter_swap(_ForwardIterator1 __a
, _ForwardIterator2 __b
)
8793 typedef typename iterator_traits
<_ForwardIterator1
>::value_type
8795 _ValueType1 __tmp
= *__a
;
8802 struct __iter_swap
<true>
8804 template<typename _ForwardIterator1
, typename _ForwardIterator2
>
8806 iter_swap(_ForwardIterator1 __a
, _ForwardIterator2 __b
)
8811 # 140 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algobase.h" 3
8812 template<typename _ForwardIterator1
, typename _ForwardIterator2
>
8814 iter_swap(_ForwardIterator1 __a
, _ForwardIterator2 __b
)
8816 typedef typename iterator_traits
<_ForwardIterator1
>::value_type
8818 typedef typename iterator_traits
<_ForwardIterator2
>::value_type
8831 typedef typename iterator_traits
<_ForwardIterator1
>::reference
8833 typedef typename iterator_traits
<_ForwardIterator2
>::reference
8835 std::__iter_swap
<__are_same
<_ValueType1
, _ValueType2
>::__value
&&
8836 __are_same
<_ValueType1
&, _ReferenceType1
>::__value
&&
8837 __are_same
<_ValueType2
&, _ReferenceType2
>::__value
>::
8838 iter_swap(__a
, __b
);
8840 # 182 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algobase.h" 3
8841 template<typename _Tp
>
8843 min(const _Tp
& __a
, const _Tp
& __b
)
8852 # 204 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algobase.h" 3
8853 template<typename _Tp
>
8855 max(const _Tp
& __a
, const _Tp
& __b
)
8864 # 226 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algobase.h" 3
8865 template<typename _Tp
, typename _Compare
>
8867 min(const _Tp
& __a
, const _Tp
& __b
, _Compare __comp
)
8870 if (__comp(__b
, __a
))
8874 # 246 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algobase.h" 3
8875 template<typename _Tp
, typename _Compare
>
8877 max(const _Tp
& __a
, const _Tp
& __b
, _Compare __comp
)
8880 if (__comp(__a
, __b
))
8891 template<bool, typename
>
8894 template<typename _II
, typename _OI
>
8896 copy(_II __first
, _II __last
, _OI __result
)
8898 for (; __first
!= __last
; ++__result
, ++__first
)
8899 *__result
= *__first
;
8904 template<bool _BoolType
>
8905 struct __copy
<_BoolType
, random_access_iterator_tag
>
8907 template<typename _II
, typename _OI
>
8909 copy(_II __first
, _II __last
, _OI __result
)
8911 typedef typename iterator_traits
<_II
>::difference_type _Distance
;
8912 for(_Distance __n
= __last
- __first
; __n
> 0; --__n
)
8914 *__result
= *__first
;
8923 struct __copy
<true, random_access_iterator_tag
>
8925 template<typename _Tp
>
8927 copy(const _Tp
* __first
, const _Tp
* __last
, _Tp
* __result
)
8929 std::memmove(__result
, __first
, sizeof(_Tp
) * (__last
- __first
));
8930 return __result
+ (__last
- __first
);
8934 template<typename _II
, typename _OI
>
8936 __copy_aux(_II __first
, _II __last
, _OI __result
)
8938 typedef typename iterator_traits
<_II
>::value_type _ValueTypeI
;
8939 typedef typename iterator_traits
<_OI
>::value_type _ValueTypeO
;
8940 typedef typename iterator_traits
<_II
>::iterator_category _Category
;
8941 const bool __simple
= (__is_scalar
<_ValueTypeI
>::__value
8942 && __is_pointer
<_II
>::__value
8943 && __is_pointer
<_OI
>::__value
8944 && __are_same
<_ValueTypeI
, _ValueTypeO
>::__value
);
8946 return std::__copy
<__simple
, _Category
>::copy(__first
, __last
, __result
);
8949 template<bool, bool>
8950 struct __copy_normal
8952 template<typename _II
, typename _OI
>
8954 copy_n(_II __first
, _II __last
, _OI __result
)
8955 { return std::__copy_aux(__first
, __last
, __result
); }
8959 struct __copy_normal
<true, false>
8961 template<typename _II
, typename _OI
>
8963 copy_n(_II __first
, _II __last
, _OI __result
)
8964 { return std::__copy_aux(__first
.base(), __last
.base(), __result
); }
8968 struct __copy_normal
<false, true>
8970 template<typename _II
, typename _OI
>
8972 copy_n(_II __first
, _II __last
, _OI __result
)
8973 { return _OI(std::__copy_aux(__first
, __last
, __result
.base())); }
8977 struct __copy_normal
<true, true>
8979 template<typename _II
, typename _OI
>
8981 copy_n(_II __first
, _II __last
, _OI __result
)
8982 { return _OI(std::__copy_aux(__first
.base(), __last
.base(),
8983 __result
.base())); }
8985 # 373 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algobase.h" 3
8986 template<typename _InputIterator
, typename _OutputIterator
>
8987 inline _OutputIterator
8988 copy(_InputIterator __first
, _InputIterator __last
,
8989 _OutputIterator __result
)
8997 const bool __in
= __is_normal_iterator
<_InputIterator
>::__value
;
8998 const bool __out
= __is_normal_iterator
<_OutputIterator
>::__value
;
8999 return std::__copy_normal
<__in
, __out
>::copy_n(__first
, __last
,
9003 template<bool, typename
>
9004 struct __copy_backward
9006 template<typename _BI1
, typename _BI2
>
9008 copy_b(_BI1 __first
, _BI1 __last
, _BI2 __result
)
9010 while (__first
!= __last
)
9011 *--__result
= *--__last
;
9016 template<bool _BoolType
>
9017 struct __copy_backward
<_BoolType
, random_access_iterator_tag
>
9019 template<typename _BI1
, typename _BI2
>
9021 copy_b(_BI1 __first
, _BI1 __last
, _BI2 __result
)
9023 typename iterator_traits
<_BI1
>::difference_type __n
;
9024 for (__n
= __last
- __first
; __n
> 0; --__n
)
9025 *--__result
= *--__last
;
9031 struct __copy_backward
<true, random_access_iterator_tag
>
9033 template<typename _Tp
>
9035 copy_b(const _Tp
* __first
, const _Tp
* __last
, _Tp
* __result
)
9037 const ptrdiff_t _Num
= __last
- __first
;
9038 std::memmove(__result
- _Num
, __first
, sizeof(_Tp
) * _Num
);
9039 return __result
- _Num
;
9043 template<typename _BI1
, typename _BI2
>
9045 __copy_backward_aux(_BI1 __first
, _BI1 __last
, _BI2 __result
)
9047 typedef typename iterator_traits
<_BI1
>::value_type _ValueType1
;
9048 typedef typename iterator_traits
<_BI2
>::value_type _ValueType2
;
9049 typedef typename iterator_traits
<_BI1
>::iterator_category _Category
;
9050 const bool __simple
= (__is_scalar
<_ValueType1
>::__value
9051 && __is_pointer
<_BI1
>::__value
9052 && __is_pointer
<_BI2
>::__value
9053 && __are_same
<_ValueType1
, _ValueType2
>::__value
);
9055 return std::__copy_backward
<__simple
, _Category
>::copy_b(__first
, __last
,
9059 template<bool, bool>
9060 struct __copy_backward_normal
9062 template<typename _BI1
, typename _BI2
>
9064 copy_b_n(_BI1 __first
, _BI1 __last
, _BI2 __result
)
9065 { return std::__copy_backward_aux(__first
, __last
, __result
); }
9069 struct __copy_backward_normal
<true, false>
9071 template<typename _BI1
, typename _BI2
>
9073 copy_b_n(_BI1 __first
, _BI1 __last
, _BI2 __result
)
9074 { return std::__copy_backward_aux(__first
.base(), __last
.base(),
9079 struct __copy_backward_normal
<false, true>
9081 template<typename _BI1
, typename _BI2
>
9083 copy_b_n(_BI1 __first
, _BI1 __last
, _BI2 __result
)
9084 { return _BI2(std::__copy_backward_aux(__first
, __last
,
9085 __result
.base())); }
9089 struct __copy_backward_normal
<true, true>
9091 template<typename _BI1
, typename _BI2
>
9093 copy_b_n(_BI1 __first
, _BI1 __last
, _BI2 __result
)
9094 { return _BI2(std::__copy_backward_aux(__first
.base(), __last
.base(),
9095 __result
.base())); }
9097 # 502 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algobase.h" 3
9098 template <typename _BI1
, typename _BI2
>
9100 copy_backward(_BI1 __first
, _BI1 __last
, _BI2 __result
)
9110 const bool __bi1
= __is_normal_iterator
<_BI1
>::__value
;
9111 const bool __bi2
= __is_normal_iterator
<_BI2
>::__value
;
9112 return std::__copy_backward_normal
<__bi1
, __bi2
>::copy_b_n(__first
, __last
,
9119 template<typename _ForwardIterator
, typename _Tp
>
9121 fill(_ForwardIterator __first
, _ForwardIterator __last
,
9124 for (; __first
!= __last
; ++__first
)
9132 template<typename _ForwardIterator
, typename _Tp
>
9134 fill(_ForwardIterator __first
, _ForwardIterator __last
,
9137 const _Tp __tmp
= __value
;
9138 for (; __first
!= __last
; ++__first
)
9142 # 558 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algobase.h" 3
9143 template<typename _ForwardIterator
, typename _Tp
>
9145 fill(_ForwardIterator __first
, _ForwardIterator __last
, const _Tp
& __value
)
9152 const bool __scalar
= __is_scalar
<_Tp
>::__value
;
9153 std::__fill
<__scalar
>::fill(__first
, __last
, __value
);
9158 fill(unsigned char* __first
, unsigned char* __last
, const unsigned char& __c
)
9161 const unsigned char __tmp
= __c
;
9162 std::memset(__first
, __tmp
, __last
- __first
);
9166 fill(signed char* __first
, signed char* __last
, const signed char& __c
)
9169 const signed char __tmp
= __c
;
9170 std::memset(__first
, static_cast<unsigned char>(__tmp
), __last
- __first
);
9174 fill(char* __first
, char* __last
, const char& __c
)
9177 const char __tmp
= __c
;
9178 std::memset(__first
, static_cast<unsigned char>(__tmp
), __last
- __first
);
9184 template<typename _OutputIterator
, typename _Size
, typename _Tp
>
9185 static _OutputIterator
9186 fill_n(_OutputIterator __first
, _Size __n
, const _Tp
& __value
)
9188 for (; __n
> 0; --__n
, ++__first
)
9195 struct __fill_n
<true>
9197 template<typename _OutputIterator
, typename _Size
, typename _Tp
>
9198 static _OutputIterator
9199 fill_n(_OutputIterator __first
, _Size __n
, const _Tp
& __value
)
9201 const _Tp __tmp
= __value
;
9202 for (; __n
> 0; --__n
, ++__first
)
9207 # 634 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algobase.h" 3
9208 template<typename _OutputIterator
, typename _Size
, typename _Tp
>
9210 fill_n(_OutputIterator __first
, _Size __n
, const _Tp
& __value
)
9215 const bool __scalar
= __is_scalar
<_Tp
>::__value
;
9216 return std::__fill_n
<__scalar
>::fill_n(__first
, __n
, __value
);
9219 template<typename _Size
>
9220 inline unsigned char*
9221 fill_n(unsigned char* __first
, _Size __n
, const unsigned char& __c
)
9223 std::fill(__first
, __first
+ __n
, __c
);
9224 return __first
+ __n
;
9227 template<typename _Size
>
9229 fill_n(char* __first
, _Size __n
, const signed char& __c
)
9231 std::fill(__first
, __first
+ __n
, __c
);
9232 return __first
+ __n
;
9235 template<typename _Size
>
9237 fill_n(char* __first
, _Size __n
, const char& __c
)
9239 std::fill(__first
, __first
+ __n
, __c
);
9240 return __first
+ __n
;
9242 # 681 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algobase.h" 3
9243 template<typename _InputIterator1
, typename _InputIterator2
>
9244 pair
<_InputIterator1
, _InputIterator2
>
9245 mismatch(_InputIterator1 __first1
, _InputIterator1 __last1
,
9246 _InputIterator2 __first2
)
9256 while (__first1
!= __last1
&& *__first1
== *__first2
)
9261 return pair
<_InputIterator1
, _InputIterator2
>(__first1
, __first2
);
9263 # 716 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algobase.h" 3
9264 template<typename _InputIterator1
, typename _InputIterator2
,
9265 typename _BinaryPredicate
>
9266 pair
<_InputIterator1
, _InputIterator2
>
9267 mismatch(_InputIterator1 __first1
, _InputIterator1 __last1
,
9268 _InputIterator2 __first2
, _BinaryPredicate __binary_pred
)
9275 while (__first1
!= __last1
&& __binary_pred(*__first1
, *__first2
))
9280 return pair
<_InputIterator1
, _InputIterator2
>(__first1
, __first2
);
9282 # 746 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algobase.h" 3
9283 template<typename _InputIterator1
, typename _InputIterator2
>
9285 equal(_InputIterator1 __first1
, _InputIterator1 __last1
,
9286 _InputIterator2 __first2
)
9296 for (; __first1
!= __last1
; ++__first1
, ++__first2
)
9297 if (!(*__first1
== *__first2
))
9301 # 778 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algobase.h" 3
9302 template<typename _InputIterator1
, typename _InputIterator2
,
9303 typename _BinaryPredicate
>
9305 equal(_InputIterator1 __first1
, _InputIterator1 __last1
,
9306 _InputIterator2 __first2
,
9307 _BinaryPredicate __binary_pred
)
9314 for (; __first1
!= __last1
; ++__first1
, ++__first2
)
9315 if (!__binary_pred(*__first1
, *__first2
))
9319 # 810 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algobase.h" 3
9320 template<typename _InputIterator1
, typename _InputIterator2
>
9322 lexicographical_compare(_InputIterator1 __first1
, _InputIterator1 __last1
,
9323 _InputIterator2 __first2
, _InputIterator2 __last2
)
9337 for (; __first1
!= __last1
&& __first2
!= __last2
;
9338 ++__first1
, ++__first2
)
9340 if (*__first1
< *__first2
)
9342 if (*__first2
< *__first1
)
9345 return __first1
== __last1
&& __first2
!= __last2
;
9347 # 850 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algobase.h" 3
9348 template<typename _InputIterator1
, typename _InputIterator2
,
9351 lexicographical_compare(_InputIterator1 __first1
, _InputIterator1 __last1
,
9352 _InputIterator2 __first2
, _InputIterator2 __last2
,
9361 for (; __first1
!= __last1
&& __first2
!= __last2
;
9362 ++__first1
, ++__first2
)
9364 if (__comp(*__first1
, *__first2
))
9366 if (__comp(*__first2
, *__first1
))
9369 return __first1
== __last1
&& __first2
!= __last2
;
9373 lexicographical_compare(const unsigned char* __first1
,
9374 const unsigned char* __last1
,
9375 const unsigned char* __first2
,
9376 const unsigned char* __last2
)
9381 const size_t __len1
= __last1
- __first1
;
9382 const size_t __len2
= __last2
- __first2
;
9383 const int __result
= std::memcmp(__first1
, __first2
,
9384 std::min(__len1
, __len2
));
9385 return __result
!= 0 ? __result
< 0 : __len1
< __len2
;
9389 lexicographical_compare(const char* __first1
, const char* __last1
,
9390 const char* __first2
, const char* __last2
)
9396 return std::lexicographical_compare((const signed char*) __first1
,
9397 (const signed char*) __last1
,
9398 (const signed char*) __first2
,
9399 (const signed char*) __last2
);
9409 # 47 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/char_traits.h" 2 3
9414 # 61 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/char_traits.h" 3
9415 template <class _CharT
>
9418 typedef unsigned long int_type
;
9419 typedef std::streampos pos_type
;
9420 typedef std::streamoff off_type
;
9421 typedef std::mbstate_t state_type
;
9423 # 86 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/char_traits.h" 3
9424 template<typename _CharT
>
9427 typedef _CharT char_type
;
9428 typedef typename _Char_types
<_CharT
>::int_type int_type
;
9429 typedef typename _Char_types
<_CharT
>::pos_type pos_type
;
9430 typedef typename _Char_types
<_CharT
>::off_type off_type
;
9431 typedef typename _Char_types
<_CharT
>::state_type state_type
;
9434 assign(char_type
& __c1
, const char_type
& __c2
)
9438 eq(const char_type
& __c1
, const char_type
& __c2
)
9439 { return __c1
== __c2
; }
9442 lt(const char_type
& __c1
, const char_type
& __c2
)
9443 { return __c1
< __c2
; }
9446 compare(const char_type
* __s1
, const char_type
* __s2
, std::size_t __n
);
9449 length(const char_type
* __s
);
9451 static const char_type
*
9452 find(const char_type
* __s
, std::size_t __n
, const char_type
& __a
);
9455 move(char_type
* __s1
, const char_type
* __s2
, std::size_t __n
);
9458 copy(char_type
* __s1
, const char_type
* __s2
, std::size_t __n
);
9461 assign(char_type
* __s
, std::size_t __n
, char_type __a
);
9464 to_char_type(const int_type
& __c
)
9465 { return static_cast<char_type
>(__c
); }
9468 to_int_type(const char_type
& __c
)
9469 { return static_cast<int_type
>(__c
); }
9472 eq_int_type(const int_type
& __c1
, const int_type
& __c2
)
9473 { return __c1
== __c2
; }
9477 { return static_cast<int_type
>((-1)); }
9480 not_eof(const int_type
& __c
)
9481 { return !eq_int_type(__c
, eof()) ? __c
: to_int_type(char_type()); }
9484 template<typename _CharT
>
9486 char_traits
<_CharT
>::
9487 compare(const char_type
* __s1
, const char_type
* __s2
, std::size_t __n
)
9489 for (size_t __i
= 0; __i
< __n
; ++__i
)
9490 if (lt(__s1
[__i
], __s2
[__i
]))
9492 else if (lt(__s2
[__i
], __s1
[__i
]))
9497 template<typename _CharT
>
9499 char_traits
<_CharT
>::
9500 length(const char_type
* __p
)
9502 std::size_t __i
= 0;
9503 while (!eq(__p
[__i
], char_type()))
9508 template<typename _CharT
>
9509 const typename char_traits
<_CharT
>::char_type
*
9510 char_traits
<_CharT
>::
9511 find(const char_type
* __s
, std::size_t __n
, const char_type
& __a
)
9513 for (std::size_t __i
= 0; __i
< __n
; ++__i
)
9514 if (eq(__s
[__i
], __a
))
9519 template<typename _CharT
>
9520 typename char_traits
<_CharT
>::char_type
*
9521 char_traits
<_CharT
>::
9522 move(char_type
* __s1
, const char_type
* __s2
, std::size_t __n
)
9524 return static_cast<_CharT
*>(std::memmove(__s1
, __s2
,
9525 __n
* sizeof(char_type
)));
9528 template<typename _CharT
>
9529 typename char_traits
<_CharT
>::char_type
*
9530 char_traits
<_CharT
>::
9531 copy(char_type
* __s1
, const char_type
* __s2
, std::size_t __n
)
9533 std::copy(__s2
, __s2
+ __n
, __s1
);
9537 template<typename _CharT
>
9538 typename char_traits
<_CharT
>::char_type
*
9539 char_traits
<_CharT
>::
9540 assign(char_type
* __s
, std::size_t __n
, char_type __a
)
9542 std::fill_n(__s
, __n
, __a
);
9549 # 224 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/char_traits.h" 3
9550 template<class _CharT
>
9551 struct char_traits
: public __gnu_cxx::char_traits
<_CharT
>
9557 struct char_traits
<char>
9559 typedef char char_type
;
9560 typedef int int_type
;
9561 typedef streampos pos_type
;
9562 typedef streamoff off_type
;
9563 typedef mbstate_t state_type
;
9566 assign(char_type
& __c1
, const char_type
& __c2
)
9570 eq(const char_type
& __c1
, const char_type
& __c2
)
9571 { return __c1
== __c2
; }
9574 lt(const char_type
& __c1
, const char_type
& __c2
)
9575 { return __c1
< __c2
; }
9578 compare(const char_type
* __s1
, const char_type
* __s2
, size_t __n
)
9579 { return memcmp(__s1
, __s2
, __n
); }
9582 length(const char_type
* __s
)
9583 { return strlen(__s
); }
9585 static const char_type
*
9586 find(const char_type
* __s
, size_t __n
, const char_type
& __a
)
9587 { return static_cast<const char_type
*>(memchr(__s
, __a
, __n
)); }
9590 move(char_type
* __s1
, const char_type
* __s2
, size_t __n
)
9591 { return static_cast<char_type
*>(memmove(__s1
, __s2
, __n
)); }
9594 copy(char_type
* __s1
, const char_type
* __s2
, size_t __n
)
9595 { return static_cast<char_type
*>(memcpy(__s1
, __s2
, __n
)); }
9598 assign(char_type
* __s
, size_t __n
, char_type __a
)
9599 { return static_cast<char_type
*>(memset(__s
, __a
, __n
)); }
9602 to_char_type(const int_type
& __c
)
9603 { return static_cast<char_type
>(__c
); }
9608 to_int_type(const char_type
& __c
)
9609 { return static_cast<int_type
>(static_cast<unsigned char>(__c
)); }
9612 eq_int_type(const int_type
& __c1
, const int_type
& __c2
)
9613 { return __c1
== __c2
; }
9616 eof() { return static_cast<int_type
>((-1)); }
9619 not_eof(const int_type
& __c
)
9620 { return (__c
== eof()) ? 0 : __c
; }
9627 struct char_traits
<wchar_t>
9629 typedef wchar_t char_type
;
9630 typedef wint_t int_type
;
9631 typedef streamoff off_type
;
9632 typedef wstreampos pos_type
;
9633 typedef mbstate_t state_type
;
9636 assign(char_type
& __c1
, const char_type
& __c2
)
9640 eq(const char_type
& __c1
, const char_type
& __c2
)
9641 { return __c1
== __c2
; }
9644 lt(const char_type
& __c1
, const char_type
& __c2
)
9645 { return __c1
< __c2
; }
9648 compare(const char_type
* __s1
, const char_type
* __s2
, size_t __n
)
9649 { return wmemcmp(__s1
, __s2
, __n
); }
9652 length(const char_type
* __s
)
9653 { return wcslen(__s
); }
9655 static const char_type
*
9656 find(const char_type
* __s
, size_t __n
, const char_type
& __a
)
9657 { return wmemchr(__s
, __a
, __n
); }
9660 move(char_type
* __s1
, const char_type
* __s2
, size_t __n
)
9661 { return wmemmove(__s1
, __s2
, __n
); }
9664 copy(char_type
* __s1
, const char_type
* __s2
, size_t __n
)
9665 { return wmemcpy(__s1
, __s2
, __n
); }
9668 assign(char_type
* __s
, size_t __n
, char_type __a
)
9669 { return wmemset(__s
, __a
, __n
); }
9672 to_char_type(const int_type
& __c
) { return char_type(__c
); }
9675 to_int_type(const char_type
& __c
) { return int_type(__c
); }
9678 eq_int_type(const int_type
& __c1
, const int_type
& __c2
)
9679 { return __c1
== __c2
; }
9682 eof() { return static_cast<int_type
>((0xffffffffu
)); }
9685 not_eof(const int_type
& __c
)
9686 { return eq_int_type(__c
, eof()) ? 0 : __c
; }
9691 # 48 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/string" 2 3
9692 # 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/memory" 1 3
9693 # 51 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/memory" 3
9695 # 52 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/memory" 3
9696 #pragma GCC visibility push(default)
9699 # 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/allocator.h" 1 3
9700 # 52 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/allocator.h" 3
9701 # 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/i686-pc-linux-gnu/bits/c++allocator.h" 1 3
9702 # 34 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/i686-pc-linux-gnu/bits/c++allocator.h" 3
9703 # 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/ext/new_allocator.h" 1 3
9704 # 37 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/ext/new_allocator.h" 3
9705 #pragma GCC visibility push(default)
9707 # 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/new" 1 3
9708 # 42 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/new" 3
9709 # 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/exception" 1 3
9710 # 40 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/exception" 3
9711 #pragma GCC visibility push(default)
9717 # 54 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/exception" 3
9721 exception() throw() { }
9722 virtual ~exception() throw();
9725 virtual const char* what() const throw();
9730 class bad_exception
: public exception
9733 bad_exception() throw() { }
9736 virtual ~bad_exception() throw();
9740 typedef void (*terminate_handler
) ();
9742 typedef void (*unexpected_handler
) ();
9745 terminate_handler
set_terminate(terminate_handler
) throw();
9748 void terminate() __attribute__ ((__noreturn__
));
9751 unexpected_handler
set_unexpected(unexpected_handler
) throw();
9754 void unexpected() __attribute__ ((__noreturn__
));
9755 # 102 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/exception" 3
9756 bool uncaught_exception() throw();
9761 # 117 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/exception" 3
9762 void __verbose_terminate_handler ();
9767 #pragma GCC visibility pop
9768 # 43 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/new" 2 3
9770 #pragma GCC visibility push(default)
9781 class bad_alloc
: public exception
9784 bad_alloc() throw() { }
9787 virtual ~bad_alloc() throw();
9790 struct nothrow_t
{ };
9791 extern const nothrow_t nothrow
;
9794 typedef void (*new_handler
)();
9796 new_handler
set_new_handler(new_handler
) throw();
9798 # 84 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/new" 3
9799 void* operator new(std::size_t) throw (std::bad_alloc
);
9800 void* operator new[](std::size_t) throw (std::bad_alloc
);
9801 void operator delete(void*) throw();
9802 void operator delete[](void*) throw();
9803 void* operator new(std::size_t, const std::nothrow_t
&) throw();
9804 void* operator new[](std::size_t, const std::nothrow_t
&) throw();
9805 void operator delete(void*, const std::nothrow_t
&) throw();
9806 void operator delete[](void*, const std::nothrow_t
&) throw();
9809 inline void* operator new(std::size_t, void* __p
) throw() { return __p
; }
9810 inline void* operator new[](std::size_t, void* __p
) throw() { return __p
; }
9813 inline void operator delete (void*, void*) throw() { }
9814 inline void operator delete[](void*, void*) throw() { }
9818 #pragma GCC visibility pop
9819 # 40 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/ext/new_allocator.h" 2 3
9831 template<typename _Tp
>
9835 typedef size_t size_type
;
9836 typedef ptrdiff_t difference_type
;
9837 typedef _Tp
* pointer
;
9838 typedef const _Tp
* const_pointer
;
9839 typedef _Tp
& reference
;
9840 typedef const _Tp
& const_reference
;
9841 typedef _Tp value_type
;
9843 template<typename _Tp1
>
9845 { typedef new_allocator
<_Tp1
> other
; };
9847 new_allocator() throw() { }
9849 new_allocator(const new_allocator
&) throw() { }
9851 template<typename _Tp1
>
9852 new_allocator(const new_allocator
<_Tp1
>&) throw() { }
9854 ~new_allocator() throw() { }
9857 address(reference __x
) const { return &__x
; }
9860 address(const_reference __x
) const { return &__x
; }
9865 allocate(size_type __n
, const void* = 0)
9867 if (__builtin_expect(__n
> this->max_size(), false))
9868 std::__throw_bad_alloc();
9870 return static_cast<_Tp
*>(::operator new(__n
* sizeof(_Tp
)));
9875 deallocate(pointer __p
, size_type
)
9876 { ::operator delete(__p
); }
9879 max_size() const throw()
9880 { return size_t(-1) / sizeof(_Tp
); }
9885 construct(pointer __p
, const _Tp
& __val
)
9886 { ::new(__p
) _Tp(__val
); }
9889 destroy(pointer __p
) { __p
->~_Tp(); }
9892 template<typename _Tp
>
9894 operator==(const new_allocator
<_Tp
>&, const new_allocator
<_Tp
>&)
9897 template<typename _Tp
>
9899 operator!=(const new_allocator
<_Tp
>&, const new_allocator
<_Tp
>&)
9903 #pragma GCC visibility pop
9904 # 35 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/i686-pc-linux-gnu/bits/c++allocator.h" 2 3
9905 # 53 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/allocator.h" 2 3
9909 template<typename _Tp
>
9914 class allocator
<void>
9917 typedef size_t size_type
;
9918 typedef ptrdiff_t difference_type
;
9919 typedef void* pointer
;
9920 typedef const void* const_pointer
;
9921 typedef void value_type
;
9923 template<typename _Tp1
>
9925 { typedef allocator
<_Tp1
> other
; };
9934 template<typename _Tp
>
9935 class allocator
: public __gnu_cxx::new_allocator
<_Tp
>
9938 typedef size_t size_type
;
9939 typedef ptrdiff_t difference_type
;
9940 typedef _Tp
* pointer
;
9941 typedef const _Tp
* const_pointer
;
9942 typedef _Tp
& reference
;
9943 typedef const _Tp
& const_reference
;
9944 typedef _Tp value_type
;
9946 template<typename _Tp1
>
9948 { typedef allocator
<_Tp1
> other
; };
9950 allocator() throw() { }
9952 allocator(const allocator
& __a
) throw()
9953 : __gnu_cxx::new_allocator
<_Tp
>(__a
) { }
9955 template<typename _Tp1
>
9956 allocator(const allocator
<_Tp1
>&) throw() { }
9958 ~allocator() throw() { }
9963 template<typename _T1
, typename _T2
>
9965 operator==(const allocator
<_T1
>&, const allocator
<_T2
>&)
9968 template<typename _T1
, typename _T2
>
9970 operator!=(const allocator
<_T1
>&, const allocator
<_T2
>&)
9977 extern template class allocator
<char>;
9978 extern template class allocator
<wchar_t>;
9984 # 56 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/memory" 2 3
9985 # 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_construct.h" 1 3
9986 # 67 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_construct.h" 3
9995 template<typename _T1
, typename _T2
>
9997 _Construct(_T1
* __p
, const _T2
& __value
)
10001 ::new(static_cast<void*>(__p
)) _T1(__value
);
10010 template<typename _T1
>
10012 _Construct(_T1
* __p
)
10016 ::new(static_cast<void*>(__p
)) _T1();
10024 template<typename _Tp
>
10026 _Destroy(_Tp
* __pointer
)
10027 { __pointer
->~_Tp(); }
10028 # 116 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_construct.h" 3
10029 template<typename _ForwardIterator
>
10031 __destroy_aux(_ForwardIterator __first
, _ForwardIterator __last
,
10034 for (; __first
!= __last
; ++__first
)
10035 std::_Destroy(&*__first
);
10037 # 134 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_construct.h" 3
10038 template<typename _ForwardIterator
>
10040 __destroy_aux(_ForwardIterator
, _ForwardIterator
, __true_type
)
10042 # 146 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_construct.h" 3
10043 template<typename _ForwardIterator
>
10045 _Destroy(_ForwardIterator __first
, _ForwardIterator __last
)
10047 typedef typename iterator_traits
<_ForwardIterator
>::value_type
10049 typedef typename
std::__is_scalar
<_Value_type
>::__type
10050 _Has_trivial_destructor
;
10052 std::__destroy_aux(__first
, __last
, _Has_trivial_destructor());
10054 # 166 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_construct.h" 3
10055 template <typename _Tp
> class allocator
;
10057 template<typename _ForwardIterator
, typename _Allocator
>
10059 _Destroy(_ForwardIterator __first
, _ForwardIterator __last
,
10060 _Allocator __alloc
)
10062 for (; __first
!= __last
; ++__first
)
10063 __alloc
.destroy(&*__first
);
10066 template<typename _ForwardIterator
, typename _Tp
>
10068 _Destroy(_ForwardIterator __first
, _ForwardIterator __last
,
10071 _Destroy(__first
, __last
);
10076 # 57 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/memory" 2 3
10078 # 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_uninitialized.h" 1 3
10079 # 66 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_uninitialized.h" 3
10083 template<typename _InputIterator
, typename _ForwardIterator
>
10084 inline _ForwardIterator
10085 __uninitialized_copy_aux(_InputIterator __first
, _InputIterator __last
,
10086 _ForwardIterator __result
,
10088 { return std::copy(__first
, __last
, __result
); }
10090 template<typename _InputIterator
, typename _ForwardIterator
>
10091 inline _ForwardIterator
10092 __uninitialized_copy_aux(_InputIterator __first
, _InputIterator __last
,
10093 _ForwardIterator __result
,
10096 _ForwardIterator __cur
= __result
;
10099 for (; __first
!= __last
; ++__first
, ++__cur
)
10100 std::_Construct(&*__cur
, *__first
);
10105 std::_Destroy(__result
, __cur
);
10109 # 105 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_uninitialized.h" 3
10110 template<typename _InputIterator
, typename _ForwardIterator
>
10111 inline _ForwardIterator
10112 uninitialized_copy(_InputIterator __first
, _InputIterator __last
,
10113 _ForwardIterator __result
)
10115 typedef typename iterator_traits
<_ForwardIterator
>::value_type _ValueType
;
10116 typedef typename
std::__is_scalar
<_ValueType
>::__type _Is_POD
;
10117 return std::__uninitialized_copy_aux(__first
, __last
, __result
,
10122 uninitialized_copy(const char* __first
, const char* __last
, char* __result
)
10124 std::memmove(__result
, __first
, __last
- __first
);
10125 return __result
+ (__last
- __first
);
10129 uninitialized_copy(const wchar_t* __first
, const wchar_t* __last
,
10132 std::memmove(__result
, __first
, sizeof(wchar_t) * (__last
- __first
));
10133 return __result
+ (__last
- __first
);
10138 template<typename _ForwardIterator
, typename _Tp
>
10140 __uninitialized_fill_aux(_ForwardIterator __first
,
10141 _ForwardIterator __last
,
10142 const _Tp
& __x
, __true_type
)
10143 { std::fill(__first
, __last
, __x
); }
10145 template<typename _ForwardIterator
, typename _Tp
>
10147 __uninitialized_fill_aux(_ForwardIterator __first
, _ForwardIterator __last
,
10148 const _Tp
& __x
, __false_type
)
10150 _ForwardIterator __cur
= __first
;
10153 for (; __cur
!= __last
; ++__cur
)
10154 std::_Construct(&*__cur
, __x
);
10158 std::_Destroy(__first
, __cur
);
10162 # 167 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_uninitialized.h" 3
10163 template<typename _ForwardIterator
, typename _Tp
>
10165 uninitialized_fill(_ForwardIterator __first
, _ForwardIterator __last
,
10168 typedef typename iterator_traits
<_ForwardIterator
>::value_type _ValueType
;
10169 typedef typename
std::__is_scalar
<_ValueType
>::__type _Is_POD
;
10170 std::__uninitialized_fill_aux(__first
, __last
, __x
, _Is_POD());
10175 template<typename _ForwardIterator
, typename _Size
, typename _Tp
>
10177 __uninitialized_fill_n_aux(_ForwardIterator __first
, _Size __n
,
10178 const _Tp
& __x
, __true_type
)
10179 { std::fill_n(__first
, __n
, __x
); }
10181 template<typename _ForwardIterator
, typename _Size
, typename _Tp
>
10183 __uninitialized_fill_n_aux(_ForwardIterator __first
, _Size __n
,
10184 const _Tp
& __x
, __false_type
)
10186 _ForwardIterator __cur
= __first
;
10189 for (; __n
> 0; --__n
, ++__cur
)
10190 std::_Construct(&*__cur
, __x
);
10194 std::_Destroy(__first
, __cur
);
10198 # 212 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_uninitialized.h" 3
10199 template<typename _ForwardIterator
, typename _Size
, typename _Tp
>
10201 uninitialized_fill_n(_ForwardIterator __first
, _Size __n
, const _Tp
& __x
)
10203 typedef typename iterator_traits
<_ForwardIterator
>::value_type _ValueType
;
10204 typedef typename
std::__is_scalar
<_ValueType
>::__type _Is_POD
;
10205 std::__uninitialized_fill_n_aux(__first
, __n
, __x
, _Is_POD());
10214 template<typename _InputIterator
, typename _ForwardIterator
,
10215 typename _Allocator
>
10217 __uninitialized_copy_a(_InputIterator __first
, _InputIterator __last
,
10218 _ForwardIterator __result
,
10219 _Allocator __alloc
)
10221 _ForwardIterator __cur
= __result
;
10224 for (; __first
!= __last
; ++__first
, ++__cur
)
10225 __alloc
.construct(&*__cur
, *__first
);
10230 std::_Destroy(__result
, __cur
, __alloc
);
10235 template<typename _InputIterator
, typename _ForwardIterator
, typename _Tp
>
10236 inline _ForwardIterator
10237 __uninitialized_copy_a(_InputIterator __first
, _InputIterator __last
,
10238 _ForwardIterator __result
,
10241 return std::uninitialized_copy(__first
, __last
, __result
);
10244 template<typename _ForwardIterator
, typename _Tp
, typename _Allocator
>
10246 __uninitialized_fill_a(_ForwardIterator __first
, _ForwardIterator __last
,
10247 const _Tp
& __x
, _Allocator __alloc
)
10249 _ForwardIterator __cur
= __first
;
10252 for (; __cur
!= __last
; ++__cur
)
10253 __alloc
.construct(&*__cur
, __x
);
10257 std::_Destroy(__first
, __cur
, __alloc
);
10262 template<typename _ForwardIterator
, typename _Tp
, typename _Tp2
>
10264 __uninitialized_fill_a(_ForwardIterator __first
, _ForwardIterator __last
,
10265 const _Tp
& __x
, allocator
<_Tp2
>)
10267 std::uninitialized_fill(__first
, __last
, __x
);
10270 template<typename _ForwardIterator
, typename _Size
, typename _Tp
,
10271 typename _Allocator
>
10273 __uninitialized_fill_n_a(_ForwardIterator __first
, _Size __n
,
10275 _Allocator __alloc
)
10277 _ForwardIterator __cur
= __first
;
10280 for (; __n
> 0; --__n
, ++__cur
)
10281 __alloc
.construct(&*__cur
, __x
);
10285 std::_Destroy(__first
, __cur
, __alloc
);
10290 template<typename _ForwardIterator
, typename _Size
, typename _Tp
,
10293 __uninitialized_fill_n_a(_ForwardIterator __first
, _Size __n
,
10297 std::uninitialized_fill_n(__first
, __n
, __x
);
10299 # 323 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_uninitialized.h" 3
10300 template<typename _InputIterator1
, typename _InputIterator2
,
10301 typename _ForwardIterator
, typename _Allocator
>
10302 inline _ForwardIterator
10303 __uninitialized_copy_copy(_InputIterator1 __first1
,
10304 _InputIterator1 __last1
,
10305 _InputIterator2 __first2
,
10306 _InputIterator2 __last2
,
10307 _ForwardIterator __result
,
10308 _Allocator __alloc
)
10310 _ForwardIterator __mid
= std::__uninitialized_copy_a(__first1
, __last1
,
10315 return std::__uninitialized_copy_a(__first2
, __last2
, __mid
, __alloc
);
10319 std::_Destroy(__result
, __mid
, __alloc
);
10327 template<typename _ForwardIterator
, typename _Tp
, typename _InputIterator
,
10328 typename _Allocator
>
10329 inline _ForwardIterator
10330 __uninitialized_fill_copy(_ForwardIterator __result
, _ForwardIterator __mid
,
10331 const _Tp
& __x
, _InputIterator __first
,
10332 _InputIterator __last
,
10333 _Allocator __alloc
)
10335 std::__uninitialized_fill_a(__result
, __mid
, __x
, __alloc
);
10338 return std::__uninitialized_copy_a(__first
, __last
, __mid
, __alloc
);
10342 std::_Destroy(__result
, __mid
, __alloc
);
10350 template<typename _InputIterator
, typename _ForwardIterator
, typename _Tp
,
10351 typename _Allocator
>
10353 __uninitialized_copy_fill(_InputIterator __first1
, _InputIterator __last1
,
10354 _ForwardIterator __first2
,
10355 _ForwardIterator __last2
, const _Tp
& __x
,
10356 _Allocator __alloc
)
10358 _ForwardIterator __mid2
= std::__uninitialized_copy_a(__first1
, __last1
,
10363 std::__uninitialized_fill_a(__mid2
, __last2
, __x
, __alloc
);
10367 std::_Destroy(__first2
, __mid2
, __alloc
);
10373 # 59 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/memory" 2 3
10374 # 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_raw_storage_iter.h" 1 3
10375 # 64 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_raw_storage_iter.h" 3
10382 template <class _ForwardIterator
, class _Tp
>
10383 class raw_storage_iterator
10384 : public iterator
<output_iterator_tag
, void, void, void, void>
10387 _ForwardIterator _M_iter
;
10391 raw_storage_iterator(_ForwardIterator __x
)
10394 raw_storage_iterator
&
10395 operator*() { return *this; }
10397 raw_storage_iterator
&
10398 operator=(const _Tp
& __element
)
10400 std::_Construct(&*_M_iter
, __element
);
10404 raw_storage_iterator
<_ForwardIterator
, _Tp
>&
10411 raw_storage_iterator
<_ForwardIterator
, _Tp
>
10414 raw_storage_iterator
<_ForwardIterator
, _Tp
> __tmp
= *this;
10420 # 60 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/memory" 2 3
10422 # 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/limits" 1 3
10423 # 46 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/limits" 3
10425 # 47 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/limits" 3
10426 #pragma GCC visibility push(default)
10427 # 151 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/limits" 3
10435 enum float_round_style
10437 round_indeterminate
= -1,
10438 round_toward_zero
= 0,
10439 round_to_nearest
= 1,
10440 round_toward_infinity
= 2,
10441 round_toward_neg_infinity
= 3
10450 enum float_denorm_style
10453 denorm_indeterminate
= -1,
10459 # 193 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/limits" 3
10460 struct __numeric_limits_base
10464 static const bool is_specialized
= false;
10469 static const int digits
= 0;
10471 static const int digits10
= 0;
10473 static const bool is_signed
= false;
10479 static const bool is_integer
= false;
10484 static const bool is_exact
= false;
10487 static const int radix
= 0;
10491 static const int min_exponent
= 0;
10494 static const int min_exponent10
= 0;
10498 static const int max_exponent
= 0;
10501 static const int max_exponent10
= 0;
10504 static const bool has_infinity
= false;
10507 static const bool has_quiet_NaN
= false;
10510 static const bool has_signaling_NaN
= false;
10512 static const float_denorm_style has_denorm
= denorm_absent
;
10515 static const bool has_denorm_loss
= false;
10519 static const bool is_iec559
= false;
10523 static const bool is_bounded
= false;
10528 static const bool is_modulo
= false;
10531 static const bool traps
= false;
10533 static const bool tinyness_before
= false;
10537 static const float_round_style round_style
= round_toward_zero
;
10539 # 286 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/limits" 3
10540 template<typename _Tp
>
10541 struct numeric_limits
: public __numeric_limits_base
10545 static _Tp
min() throw() { return static_cast<_Tp
>(0); }
10547 static _Tp
max() throw() { return static_cast<_Tp
>(0); }
10550 static _Tp
epsilon() throw() { return static_cast<_Tp
>(0); }
10552 static _Tp
round_error() throw() { return static_cast<_Tp
>(0); }
10554 static _Tp
infinity() throw() { return static_cast<_Tp
>(0); }
10556 static _Tp
quiet_NaN() throw() { return static_cast<_Tp
>(0); }
10559 static _Tp
signaling_NaN() throw() { return static_cast<_Tp
>(0); }
10563 static _Tp
denorm_min() throw() { return static_cast<_Tp
>(0); }
10571 struct numeric_limits
<bool>
10573 static const bool is_specialized
= true;
10575 static bool min() throw()
10577 static bool max() throw()
10580 static const int digits
= 1;
10581 static const int digits10
= 0;
10582 static const bool is_signed
= false;
10583 static const bool is_integer
= true;
10584 static const bool is_exact
= true;
10585 static const int radix
= 2;
10586 static bool epsilon() throw()
10588 static bool round_error() throw()
10591 static const int min_exponent
= 0;
10592 static const int min_exponent10
= 0;
10593 static const int max_exponent
= 0;
10594 static const int max_exponent10
= 0;
10596 static const bool has_infinity
= false;
10597 static const bool has_quiet_NaN
= false;
10598 static const bool has_signaling_NaN
= false;
10599 static const float_denorm_style has_denorm
= denorm_absent
;
10600 static const bool has_denorm_loss
= false;
10602 static bool infinity() throw()
10604 static bool quiet_NaN() throw()
10606 static bool signaling_NaN() throw()
10608 static bool denorm_min() throw()
10611 static const bool is_iec559
= false;
10612 static const bool is_bounded
= true;
10613 static const bool is_modulo
= false;
10618 static const bool traps
= true;
10619 static const bool tinyness_before
= false;
10620 static const float_round_style round_style
= round_toward_zero
;
10625 struct numeric_limits
<char>
10627 static const bool is_specialized
= true;
10629 static char min() throw()
10630 { return (((char)(-1) < 0) ? (char)1 << (sizeof(char) * 8 - ((char)(-1) < 0)) : (char)0); }
10631 static char max() throw()
10632 { return (((char)(-1) < 0) ? ((char)1 << (sizeof(char) * 8 - ((char)(-1) < 0))) - 1 : ~(char)0); }
10634 static const int digits
= (sizeof(char) * 8 - ((char)(-1) < 0));
10635 static const int digits10
= ((sizeof(char) * 8 - ((char)(-1) < 0)) * 643 / 2136);
10636 static const bool is_signed
= ((char)(-1) < 0);
10637 static const bool is_integer
= true;
10638 static const bool is_exact
= true;
10639 static const int radix
= 2;
10640 static char epsilon() throw()
10642 static char round_error() throw()
10645 static const int min_exponent
= 0;
10646 static const int min_exponent10
= 0;
10647 static const int max_exponent
= 0;
10648 static const int max_exponent10
= 0;
10650 static const bool has_infinity
= false;
10651 static const bool has_quiet_NaN
= false;
10652 static const bool has_signaling_NaN
= false;
10653 static const float_denorm_style has_denorm
= denorm_absent
;
10654 static const bool has_denorm_loss
= false;
10656 static char infinity() throw()
10658 static char quiet_NaN() throw()
10660 static char signaling_NaN() throw()
10662 static char denorm_min() throw()
10663 { return static_cast<char>(0); }
10665 static const bool is_iec559
= false;
10666 static const bool is_bounded
= true;
10667 static const bool is_modulo
= true;
10669 static const bool traps
= true;
10670 static const bool tinyness_before
= false;
10671 static const float_round_style round_style
= round_toward_zero
;
10676 struct numeric_limits
<signed char>
10678 static const bool is_specialized
= true;
10680 static signed char min() throw()
10681 { return -127 - 1; }
10682 static signed char max() throw()
10685 static const int digits
= (sizeof(signed char) * 8 - ((signed char)(-1) < 0));
10686 static const int digits10
= ((sizeof(signed char) * 8 - ((signed char)(-1) < 0)) * 643 / 2136);
10687 static const bool is_signed
= true;
10688 static const bool is_integer
= true;
10689 static const bool is_exact
= true;
10690 static const int radix
= 2;
10691 static signed char epsilon() throw()
10693 static signed char round_error() throw()
10696 static const int min_exponent
= 0;
10697 static const int min_exponent10
= 0;
10698 static const int max_exponent
= 0;
10699 static const int max_exponent10
= 0;
10701 static const bool has_infinity
= false;
10702 static const bool has_quiet_NaN
= false;
10703 static const bool has_signaling_NaN
= false;
10704 static const float_denorm_style has_denorm
= denorm_absent
;
10705 static const bool has_denorm_loss
= false;
10707 static signed char infinity() throw()
10708 { return static_cast<signed char>(0); }
10709 static signed char quiet_NaN() throw()
10710 { return static_cast<signed char>(0); }
10711 static signed char signaling_NaN() throw()
10712 { return static_cast<signed char>(0); }
10713 static signed char denorm_min() throw()
10714 { return static_cast<signed char>(0); }
10716 static const bool is_iec559
= false;
10717 static const bool is_bounded
= true;
10718 static const bool is_modulo
= true;
10720 static const bool traps
= true;
10721 static const bool tinyness_before
= false;
10722 static const float_round_style round_style
= round_toward_zero
;
10727 struct numeric_limits
<unsigned char>
10729 static const bool is_specialized
= true;
10731 static unsigned char min() throw()
10733 static unsigned char max() throw()
10734 { return 127 * 2U + 1; }
10736 static const int digits
= (sizeof(unsigned char) * 8 - ((unsigned char)(-1) < 0));
10737 static const int digits10
= ((sizeof(unsigned char) * 8 - ((unsigned char)(-1) < 0)) * 643 / 2136);
10738 static const bool is_signed
= false;
10739 static const bool is_integer
= true;
10740 static const bool is_exact
= true;
10741 static const int radix
= 2;
10742 static unsigned char epsilon() throw()
10744 static unsigned char round_error() throw()
10747 static const int min_exponent
= 0;
10748 static const int min_exponent10
= 0;
10749 static const int max_exponent
= 0;
10750 static const int max_exponent10
= 0;
10752 static const bool has_infinity
= false;
10753 static const bool has_quiet_NaN
= false;
10754 static const bool has_signaling_NaN
= false;
10755 static const float_denorm_style has_denorm
= denorm_absent
;
10756 static const bool has_denorm_loss
= false;
10758 static unsigned char infinity() throw()
10759 { return static_cast<unsigned char>(0); }
10760 static unsigned char quiet_NaN() throw()
10761 { return static_cast<unsigned char>(0); }
10762 static unsigned char signaling_NaN() throw()
10763 { return static_cast<unsigned char>(0); }
10764 static unsigned char denorm_min() throw()
10765 { return static_cast<unsigned char>(0); }
10767 static const bool is_iec559
= false;
10768 static const bool is_bounded
= true;
10769 static const bool is_modulo
= true;
10771 static const bool traps
= true;
10772 static const bool tinyness_before
= false;
10773 static const float_round_style round_style
= round_toward_zero
;
10778 struct numeric_limits
<wchar_t>
10780 static const bool is_specialized
= true;
10782 static wchar_t min() throw()
10783 { return (((wchar_t)(-1) < 0) ? (wchar_t)1 << (sizeof(wchar_t) * 8 - ((wchar_t)(-1) < 0)) : (wchar_t)0); }
10784 static wchar_t max() throw()
10785 { return (((wchar_t)(-1) < 0) ? ((wchar_t)1 << (sizeof(wchar_t) * 8 - ((wchar_t)(-1) < 0))) - 1 : ~(wchar_t)0); }
10787 static const int digits
= (sizeof(wchar_t) * 8 - ((wchar_t)(-1) < 0));
10788 static const int digits10
= ((sizeof(wchar_t) * 8 - ((wchar_t)(-1) < 0)) * 643 / 2136);
10789 static const bool is_signed
= ((wchar_t)(-1) < 0);
10790 static const bool is_integer
= true;
10791 static const bool is_exact
= true;
10792 static const int radix
= 2;
10793 static wchar_t epsilon() throw()
10795 static wchar_t round_error() throw()
10798 static const int min_exponent
= 0;
10799 static const int min_exponent10
= 0;
10800 static const int max_exponent
= 0;
10801 static const int max_exponent10
= 0;
10803 static const bool has_infinity
= false;
10804 static const bool has_quiet_NaN
= false;
10805 static const bool has_signaling_NaN
= false;
10806 static const float_denorm_style has_denorm
= denorm_absent
;
10807 static const bool has_denorm_loss
= false;
10809 static wchar_t infinity() throw()
10810 { return wchar_t(); }
10811 static wchar_t quiet_NaN() throw()
10812 { return wchar_t(); }
10813 static wchar_t signaling_NaN() throw()
10814 { return wchar_t(); }
10815 static wchar_t denorm_min() throw()
10816 { return wchar_t(); }
10818 static const bool is_iec559
= false;
10819 static const bool is_bounded
= true;
10820 static const bool is_modulo
= true;
10822 static const bool traps
= true;
10823 static const bool tinyness_before
= false;
10824 static const float_round_style round_style
= round_toward_zero
;
10829 struct numeric_limits
<short>
10831 static const bool is_specialized
= true;
10833 static short min() throw()
10834 { return -32767 - 1; }
10835 static short max() throw()
10838 static const int digits
= (sizeof(short) * 8 - ((short)(-1) < 0));
10839 static const int digits10
= ((sizeof(short) * 8 - ((short)(-1) < 0)) * 643 / 2136);
10840 static const bool is_signed
= true;
10841 static const bool is_integer
= true;
10842 static const bool is_exact
= true;
10843 static const int radix
= 2;
10844 static short epsilon() throw()
10846 static short round_error() throw()
10849 static const int min_exponent
= 0;
10850 static const int min_exponent10
= 0;
10851 static const int max_exponent
= 0;
10852 static const int max_exponent10
= 0;
10854 static const bool has_infinity
= false;
10855 static const bool has_quiet_NaN
= false;
10856 static const bool has_signaling_NaN
= false;
10857 static const float_denorm_style has_denorm
= denorm_absent
;
10858 static const bool has_denorm_loss
= false;
10860 static short infinity() throw()
10861 { return short(); }
10862 static short quiet_NaN() throw()
10863 { return short(); }
10864 static short signaling_NaN() throw()
10865 { return short(); }
10866 static short denorm_min() throw()
10867 { return short(); }
10869 static const bool is_iec559
= false;
10870 static const bool is_bounded
= true;
10871 static const bool is_modulo
= true;
10873 static const bool traps
= true;
10874 static const bool tinyness_before
= false;
10875 static const float_round_style round_style
= round_toward_zero
;
10880 struct numeric_limits
<unsigned short>
10882 static const bool is_specialized
= true;
10884 static unsigned short min() throw()
10886 static unsigned short max() throw()
10887 { return 32767 * 2U + 1; }
10889 static const int digits
= (sizeof(unsigned short) * 8 - ((unsigned short)(-1) < 0));
10890 static const int digits10
= ((sizeof(unsigned short) * 8 - ((unsigned short)(-1) < 0)) * 643 / 2136);
10891 static const bool is_signed
= false;
10892 static const bool is_integer
= true;
10893 static const bool is_exact
= true;
10894 static const int radix
= 2;
10895 static unsigned short epsilon() throw()
10897 static unsigned short round_error() throw()
10900 static const int min_exponent
= 0;
10901 static const int min_exponent10
= 0;
10902 static const int max_exponent
= 0;
10903 static const int max_exponent10
= 0;
10905 static const bool has_infinity
= false;
10906 static const bool has_quiet_NaN
= false;
10907 static const bool has_signaling_NaN
= false;
10908 static const float_denorm_style has_denorm
= denorm_absent
;
10909 static const bool has_denorm_loss
= false;
10911 static unsigned short infinity() throw()
10912 { return static_cast<unsigned short>(0); }
10913 static unsigned short quiet_NaN() throw()
10914 { return static_cast<unsigned short>(0); }
10915 static unsigned short signaling_NaN() throw()
10916 { return static_cast<unsigned short>(0); }
10917 static unsigned short denorm_min() throw()
10918 { return static_cast<unsigned short>(0); }
10920 static const bool is_iec559
= false;
10921 static const bool is_bounded
= true;
10922 static const bool is_modulo
= true;
10924 static const bool traps
= true;
10925 static const bool tinyness_before
= false;
10926 static const float_round_style round_style
= round_toward_zero
;
10931 struct numeric_limits
<int>
10933 static const bool is_specialized
= true;
10935 static int min() throw()
10936 { return -2147483647 - 1; }
10937 static int max() throw()
10938 { return 2147483647; }
10940 static const int digits
= (sizeof(int) * 8 - ((int)(-1) < 0));
10941 static const int digits10
= ((sizeof(int) * 8 - ((int)(-1) < 0)) * 643 / 2136);
10942 static const bool is_signed
= true;
10943 static const bool is_integer
= true;
10944 static const bool is_exact
= true;
10945 static const int radix
= 2;
10946 static int epsilon() throw()
10948 static int round_error() throw()
10951 static const int min_exponent
= 0;
10952 static const int min_exponent10
= 0;
10953 static const int max_exponent
= 0;
10954 static const int max_exponent10
= 0;
10956 static const bool has_infinity
= false;
10957 static const bool has_quiet_NaN
= false;
10958 static const bool has_signaling_NaN
= false;
10959 static const float_denorm_style has_denorm
= denorm_absent
;
10960 static const bool has_denorm_loss
= false;
10962 static int infinity() throw()
10963 { return static_cast<int>(0); }
10964 static int quiet_NaN() throw()
10965 { return static_cast<int>(0); }
10966 static int signaling_NaN() throw()
10967 { return static_cast<int>(0); }
10968 static int denorm_min() throw()
10969 { return static_cast<int>(0); }
10971 static const bool is_iec559
= false;
10972 static const bool is_bounded
= true;
10973 static const bool is_modulo
= true;
10975 static const bool traps
= true;
10976 static const bool tinyness_before
= false;
10977 static const float_round_style round_style
= round_toward_zero
;
10982 struct numeric_limits
<unsigned int>
10984 static const bool is_specialized
= true;
10986 static unsigned int min() throw()
10988 static unsigned int max() throw()
10989 { return 2147483647 * 2U + 1; }
10991 static const int digits
= (sizeof(unsigned int) * 8 - ((unsigned int)(-1) < 0));
10992 static const int digits10
= ((sizeof(unsigned int) * 8 - ((unsigned int)(-1) < 0)) * 643 / 2136);
10993 static const bool is_signed
= false;
10994 static const bool is_integer
= true;
10995 static const bool is_exact
= true;
10996 static const int radix
= 2;
10997 static unsigned int epsilon() throw()
10999 static unsigned int round_error() throw()
11002 static const int min_exponent
= 0;
11003 static const int min_exponent10
= 0;
11004 static const int max_exponent
= 0;
11005 static const int max_exponent10
= 0;
11007 static const bool has_infinity
= false;
11008 static const bool has_quiet_NaN
= false;
11009 static const bool has_signaling_NaN
= false;
11010 static const float_denorm_style has_denorm
= denorm_absent
;
11011 static const bool has_denorm_loss
= false;
11013 static unsigned int infinity() throw()
11014 { return static_cast<unsigned int>(0); }
11015 static unsigned int quiet_NaN() throw()
11016 { return static_cast<unsigned int>(0); }
11017 static unsigned int signaling_NaN() throw()
11018 { return static_cast<unsigned int>(0); }
11019 static unsigned int denorm_min() throw()
11020 { return static_cast<unsigned int>(0); }
11022 static const bool is_iec559
= false;
11023 static const bool is_bounded
= true;
11024 static const bool is_modulo
= true;
11026 static const bool traps
= true;
11027 static const bool tinyness_before
= false;
11028 static const float_round_style round_style
= round_toward_zero
;
11033 struct numeric_limits
<long>
11035 static const bool is_specialized
= true;
11037 static long min() throw()
11038 { return -2147483647L - 1; }
11039 static long max() throw()
11040 { return 2147483647L; }
11042 static const int digits
= (sizeof(long) * 8 - ((long)(-1) < 0));
11043 static const int digits10
= ((sizeof(long) * 8 - ((long)(-1) < 0)) * 643 / 2136);
11044 static const bool is_signed
= true;
11045 static const bool is_integer
= true;
11046 static const bool is_exact
= true;
11047 static const int radix
= 2;
11048 static long epsilon() throw()
11050 static long round_error() throw()
11053 static const int min_exponent
= 0;
11054 static const int min_exponent10
= 0;
11055 static const int max_exponent
= 0;
11056 static const int max_exponent10
= 0;
11058 static const bool has_infinity
= false;
11059 static const bool has_quiet_NaN
= false;
11060 static const bool has_signaling_NaN
= false;
11061 static const float_denorm_style has_denorm
= denorm_absent
;
11062 static const bool has_denorm_loss
= false;
11064 static long infinity() throw()
11065 { return static_cast<long>(0); }
11066 static long quiet_NaN() throw()
11067 { return static_cast<long>(0); }
11068 static long signaling_NaN() throw()
11069 { return static_cast<long>(0); }
11070 static long denorm_min() throw()
11071 { return static_cast<long>(0); }
11073 static const bool is_iec559
= false;
11074 static const bool is_bounded
= true;
11075 static const bool is_modulo
= true;
11077 static const bool traps
= true;
11078 static const bool tinyness_before
= false;
11079 static const float_round_style round_style
= round_toward_zero
;
11084 struct numeric_limits
<unsigned long>
11086 static const bool is_specialized
= true;
11088 static unsigned long min() throw()
11090 static unsigned long max() throw()
11091 { return 2147483647L * 2UL + 1; }
11093 static const int digits
= (sizeof(unsigned long) * 8 - ((unsigned long)(-1) < 0));
11094 static const int digits10
= ((sizeof(unsigned long) * 8 - ((unsigned long)(-1) < 0)) * 643 / 2136);
11095 static const bool is_signed
= false;
11096 static const bool is_integer
= true;
11097 static const bool is_exact
= true;
11098 static const int radix
= 2;
11099 static unsigned long epsilon() throw()
11101 static unsigned long round_error() throw()
11104 static const int min_exponent
= 0;
11105 static const int min_exponent10
= 0;
11106 static const int max_exponent
= 0;
11107 static const int max_exponent10
= 0;
11109 static const bool has_infinity
= false;
11110 static const bool has_quiet_NaN
= false;
11111 static const bool has_signaling_NaN
= false;
11112 static const float_denorm_style has_denorm
= denorm_absent
;
11113 static const bool has_denorm_loss
= false;
11115 static unsigned long infinity() throw()
11116 { return static_cast<unsigned long>(0); }
11117 static unsigned long quiet_NaN() throw()
11118 { return static_cast<unsigned long>(0); }
11119 static unsigned long signaling_NaN() throw()
11120 { return static_cast<unsigned long>(0); }
11121 static unsigned long denorm_min() throw()
11122 { return static_cast<unsigned long>(0); }
11124 static const bool is_iec559
= false;
11125 static const bool is_bounded
= true;
11126 static const bool is_modulo
= true;
11128 static const bool traps
= true;
11129 static const bool tinyness_before
= false;
11130 static const float_round_style round_style
= round_toward_zero
;
11135 struct numeric_limits
<long long>
11137 static const bool is_specialized
= true;
11139 static long long min() throw()
11140 { return -9223372036854775807LL - 1; }
11141 static long long max() throw()
11142 { return 9223372036854775807LL; }
11144 static const int digits
= (sizeof(long long) * 8 - ((long long)(-1) < 0));
11145 static const int digits10
= ((sizeof(long long) * 8 - ((long long)(-1) < 0)) * 643 / 2136);
11146 static const bool is_signed
= true;
11147 static const bool is_integer
= true;
11148 static const bool is_exact
= true;
11149 static const int radix
= 2;
11150 static long long epsilon() throw()
11152 static long long round_error() throw()
11155 static const int min_exponent
= 0;
11156 static const int min_exponent10
= 0;
11157 static const int max_exponent
= 0;
11158 static const int max_exponent10
= 0;
11160 static const bool has_infinity
= false;
11161 static const bool has_quiet_NaN
= false;
11162 static const bool has_signaling_NaN
= false;
11163 static const float_denorm_style has_denorm
= denorm_absent
;
11164 static const bool has_denorm_loss
= false;
11166 static long long infinity() throw()
11167 { return static_cast<long long>(0); }
11168 static long long quiet_NaN() throw()
11169 { return static_cast<long long>(0); }
11170 static long long signaling_NaN() throw()
11171 { return static_cast<long long>(0); }
11172 static long long denorm_min() throw()
11173 { return static_cast<long long>(0); }
11175 static const bool is_iec559
= false;
11176 static const bool is_bounded
= true;
11177 static const bool is_modulo
= true;
11179 static const bool traps
= true;
11180 static const bool tinyness_before
= false;
11181 static const float_round_style round_style
= round_toward_zero
;
11186 struct numeric_limits
<unsigned long long>
11188 static const bool is_specialized
= true;
11190 static unsigned long long min() throw()
11192 static unsigned long long max() throw()
11193 { return 9223372036854775807LL * 2ULL + 1; }
11195 static const int digits
= (sizeof(unsigned long long) * 8 - ((unsigned long long)(-1) < 0));
11196 static const int digits10
= ((sizeof(unsigned long long) * 8 - ((unsigned long long)(-1) < 0)) * 643 / 2136);
11197 static const bool is_signed
= false;
11198 static const bool is_integer
= true;
11199 static const bool is_exact
= true;
11200 static const int radix
= 2;
11201 static unsigned long long epsilon() throw()
11203 static unsigned long long round_error() throw()
11206 static const int min_exponent
= 0;
11207 static const int min_exponent10
= 0;
11208 static const int max_exponent
= 0;
11209 static const int max_exponent10
= 0;
11211 static const bool has_infinity
= false;
11212 static const bool has_quiet_NaN
= false;
11213 static const bool has_signaling_NaN
= false;
11214 static const float_denorm_style has_denorm
= denorm_absent
;
11215 static const bool has_denorm_loss
= false;
11217 static unsigned long long infinity() throw()
11218 { return static_cast<unsigned long long>(0); }
11219 static unsigned long long quiet_NaN() throw()
11220 { return static_cast<unsigned long long>(0); }
11221 static unsigned long long signaling_NaN() throw()
11222 { return static_cast<unsigned long long>(0); }
11223 static unsigned long long denorm_min() throw()
11224 { return static_cast<unsigned long long>(0); }
11226 static const bool is_iec559
= false;
11227 static const bool is_bounded
= true;
11228 static const bool is_modulo
= true;
11230 static const bool traps
= true;
11231 static const bool tinyness_before
= false;
11232 static const float_round_style round_style
= round_toward_zero
;
11237 struct numeric_limits
<float>
11239 static const bool is_specialized
= true;
11241 static float min() throw()
11242 { return 1.17549435e-38F
; }
11243 static float max() throw()
11244 { return 3.40282347e+38F
; }
11246 static const int digits
= 24;
11247 static const int digits10
= 6;
11248 static const bool is_signed
= true;
11249 static const bool is_integer
= false;
11250 static const bool is_exact
= false;
11251 static const int radix
= 2;
11252 static float epsilon() throw()
11253 { return 1.19209290e-7F
; }
11254 static float round_error() throw()
11257 static const int min_exponent
= (-125);
11258 static const int min_exponent10
= (-37);
11259 static const int max_exponent
= 128;
11260 static const int max_exponent10
= 38;
11262 static const bool has_infinity
= 1;
11263 static const bool has_quiet_NaN
= 1;
11264 static const bool has_signaling_NaN
= has_quiet_NaN
;
11265 static const float_denorm_style has_denorm
11266 = bool(1.40129846e-45F
) ? denorm_present
: denorm_absent
;
11267 static const bool has_denorm_loss
= false;
11269 static float infinity() throw()
11270 { return __builtin_huge_valf (); }
11271 static float quiet_NaN() throw()
11272 { return __builtin_nanf (""); }
11273 static float signaling_NaN() throw()
11274 { return __builtin_nansf (""); }
11275 static float denorm_min() throw()
11276 { return 1.40129846e-45F
; }
11278 static const bool is_iec559
11279 = has_infinity
&& has_quiet_NaN
&& has_denorm
== denorm_present
;
11280 static const bool is_bounded
= true;
11281 static const bool is_modulo
= false;
11283 static const bool traps
= false;
11284 static const bool tinyness_before
= false;
11285 static const float_round_style round_style
= round_to_nearest
;
11294 struct numeric_limits
<double>
11296 static const bool is_specialized
= true;
11298 static double min() throw()
11299 { return 2.2250738585072014e-308; }
11300 static double max() throw()
11301 { return 1.7976931348623157e+308; }
11303 static const int digits
= 53;
11304 static const int digits10
= 15;
11305 static const bool is_signed
= true;
11306 static const bool is_integer
= false;
11307 static const bool is_exact
= false;
11308 static const int radix
= 2;
11309 static double epsilon() throw()
11310 { return 2.2204460492503131e-16; }
11311 static double round_error() throw()
11314 static const int min_exponent
= (-1021);
11315 static const int min_exponent10
= (-307);
11316 static const int max_exponent
= 1024;
11317 static const int max_exponent10
= 308;
11319 static const bool has_infinity
= 1;
11320 static const bool has_quiet_NaN
= 1;
11321 static const bool has_signaling_NaN
= has_quiet_NaN
;
11322 static const float_denorm_style has_denorm
11323 = bool(4.9406564584124654e-324) ? denorm_present
: denorm_absent
;
11324 static const bool has_denorm_loss
= false;
11326 static double infinity() throw()
11327 { return __builtin_huge_val(); }
11328 static double quiet_NaN() throw()
11329 { return __builtin_nan (""); }
11330 static double signaling_NaN() throw()
11331 { return __builtin_nans (""); }
11332 static double denorm_min() throw()
11333 { return 4.9406564584124654e-324; }
11335 static const bool is_iec559
11336 = has_infinity
&& has_quiet_NaN
&& has_denorm
== denorm_present
;
11337 static const bool is_bounded
= true;
11338 static const bool is_modulo
= false;
11340 static const bool traps
= false;
11341 static const bool tinyness_before
= false;
11342 static const float_round_style round_style
= round_to_nearest
;
11351 struct numeric_limits
<long double>
11353 static const bool is_specialized
= true;
11355 static long double min() throw()
11356 { return 3.36210314311209350626e-4932L; }
11357 static long double max() throw()
11358 { return 1.18973149535723176502e+4932L; }
11360 static const int digits
= 64;
11361 static const int digits10
= 18;
11362 static const bool is_signed
= true;
11363 static const bool is_integer
= false;
11364 static const bool is_exact
= false;
11365 static const int radix
= 2;
11366 static long double epsilon() throw()
11367 { return 1.08420217248550443401e-19L; }
11368 static long double round_error() throw()
11371 static const int min_exponent
= (-16381);
11372 static const int min_exponent10
= (-4931);
11373 static const int max_exponent
= 16384;
11374 static const int max_exponent10
= 4932;
11376 static const bool has_infinity
= 1;
11377 static const bool has_quiet_NaN
= 1;
11378 static const bool has_signaling_NaN
= has_quiet_NaN
;
11379 static const float_denorm_style has_denorm
11380 = bool(3.64519953188247460253e-4951L) ? denorm_present
: denorm_absent
;
11381 static const bool has_denorm_loss
11384 static long double infinity() throw()
11385 { return __builtin_huge_vall (); }
11386 static long double quiet_NaN() throw()
11387 { return __builtin_nanl (""); }
11388 static long double signaling_NaN() throw()
11389 { return __builtin_nansl (""); }
11390 static long double denorm_min() throw()
11391 { return 3.64519953188247460253e-4951L; }
11393 static const bool is_iec559
11394 = has_infinity
&& has_quiet_NaN
&& has_denorm
== denorm_present
;
11395 static const bool is_bounded
= true;
11396 static const bool is_modulo
= false;
11398 static const bool traps
= false;
11399 static const bool tinyness_before
= false;
11400 static const float_round_style round_style
= round_to_nearest
;
11415 #pragma GCC visibility pop
11416 # 62 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/memory" 2 3
11420 # 73 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/memory" 3
11421 template<typename _Tp
>
11422 pair
<_Tp
*, ptrdiff_t>
11423 __get_temporary_buffer(ptrdiff_t __len
, _Tp
*)
11425 const ptrdiff_t __max
= numeric_limits
<ptrdiff_t>::max() / sizeof(_Tp
);
11431 _Tp
* __tmp
= static_cast<_Tp
*>(::operator new(__len
* sizeof(_Tp
),
11434 return pair
<_Tp
*, ptrdiff_t>(__tmp
, __len
);
11437 return pair
<_Tp
*, ptrdiff_t>(static_cast<_Tp
*>(0), 0);
11439 # 109 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/memory" 3
11440 template<typename _Tp
>
11441 inline pair
<_Tp
*, ptrdiff_t>
11442 get_temporary_buffer(ptrdiff_t __len
)
11443 { return std::__get_temporary_buffer(__len
, static_cast<_Tp
*>(0)); }
11444 # 121 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/memory" 3
11445 template<typename _Tp
>
11447 return_temporary_buffer(_Tp
* __p
)
11448 { ::operator delete(__p
, nothrow
); }
11449 # 133 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/memory" 3
11450 template<typename _Tp1
>
11451 struct auto_ptr_ref
11456 auto_ptr_ref(_Tp1
* __p
): _M_ptr(__p
) { }
11458 # 174 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/memory" 3
11459 template<typename _Tp
>
11467 typedef _Tp element_type
;
11476 auto_ptr(element_type
* __p
= 0) throw() : _M_ptr(__p
) { }
11477 # 200 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/memory" 3
11478 auto_ptr(auto_ptr
& __a
) throw() : _M_ptr(__a
.release()) { }
11479 # 212 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/memory" 3
11480 template<typename _Tp1
>
11481 auto_ptr(auto_ptr
<_Tp1
>& __a
) throw() : _M_ptr(__a
.release()) { }
11482 # 223 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/memory" 3
11484 operator=(auto_ptr
& __a
) throw()
11486 reset(__a
.release());
11489 # 240 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/memory" 3
11490 template<typename _Tp1
>
11492 operator=(auto_ptr
<_Tp1
>& __a
) throw()
11494 reset(__a
.release());
11497 # 260 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/memory" 3
11498 ~auto_ptr() { delete _M_ptr
; }
11499 # 270 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/memory" 3
11501 operator*() const throw()
11514 operator->() const throw()
11519 # 300 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/memory" 3
11521 get() const throw() { return _M_ptr
; }
11522 # 314 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/memory" 3
11526 element_type
* __tmp
= _M_ptr
;
11530 # 329 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/memory" 3
11532 reset(element_type
* __p
= 0) throw()
11540 # 350 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/memory" 3
11541 auto_ptr(auto_ptr_ref
<element_type
> __ref
) throw()
11542 : _M_ptr(__ref
._M_ptr
) { }
11545 operator=(auto_ptr_ref
<element_type
> __ref
) throw()
11547 if (__ref
._M_ptr
!= this->get())
11550 _M_ptr
= __ref
._M_ptr
;
11555 template<typename _Tp1
>
11556 operator auto_ptr_ref
<_Tp1
>() throw()
11557 { return auto_ptr_ref
<_Tp1
>(this->release()); }
11559 template<typename _Tp1
>
11560 operator auto_ptr
<_Tp1
>() throw()
11561 { return auto_ptr
<_Tp1
>(this->release()); }
11565 #pragma GCC visibility pop
11566 # 49 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/string" 2 3
11570 # 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_function.h" 1 3
11571 # 64 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_function.h" 3
11574 # 101 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_function.h" 3
11575 template <class _Arg
, class _Result
>
11576 struct unary_function
11578 typedef _Arg argument_type
;
11581 typedef _Result result_type
;
11587 template <class _Arg1
, class _Arg2
, class _Result
>
11588 struct binary_function
11590 typedef _Arg1 first_argument_type
;
11593 typedef _Arg2 second_argument_type
;
11594 typedef _Result result_type
;
11596 # 133 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_function.h" 3
11597 template <class _Tp
>
11598 struct plus
: public binary_function
<_Tp
, _Tp
, _Tp
>
11601 operator()(const _Tp
& __x
, const _Tp
& __y
) const
11602 { return __x
+ __y
; }
11606 template <class _Tp
>
11607 struct minus
: public binary_function
<_Tp
, _Tp
, _Tp
>
11610 operator()(const _Tp
& __x
, const _Tp
& __y
) const
11611 { return __x
- __y
; }
11615 template <class _Tp
>
11616 struct multiplies
: public binary_function
<_Tp
, _Tp
, _Tp
>
11619 operator()(const _Tp
& __x
, const _Tp
& __y
) const
11620 { return __x
* __y
; }
11624 template <class _Tp
>
11625 struct divides
: public binary_function
<_Tp
, _Tp
, _Tp
>
11628 operator()(const _Tp
& __x
, const _Tp
& __y
) const
11629 { return __x
/ __y
; }
11633 template <class _Tp
>
11634 struct modulus
: public binary_function
<_Tp
, _Tp
, _Tp
>
11637 operator()(const _Tp
& __x
, const _Tp
& __y
) const
11638 { return __x
% __y
; }
11642 template <class _Tp
>
11643 struct negate
: public unary_function
<_Tp
, _Tp
>
11646 operator()(const _Tp
& __x
) const
11649 # 195 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_function.h" 3
11650 template <class _Tp
>
11651 struct equal_to
: public binary_function
<_Tp
, _Tp
, bool>
11654 operator()(const _Tp
& __x
, const _Tp
& __y
) const
11655 { return __x
== __y
; }
11659 template <class _Tp
>
11660 struct not_equal_to
: public binary_function
<_Tp
, _Tp
, bool>
11663 operator()(const _Tp
& __x
, const _Tp
& __y
) const
11664 { return __x
!= __y
; }
11668 template <class _Tp
>
11669 struct greater
: public binary_function
<_Tp
, _Tp
, bool>
11672 operator()(const _Tp
& __x
, const _Tp
& __y
) const
11673 { return __x
> __y
; }
11677 template <class _Tp
>
11678 struct less
: public binary_function
<_Tp
, _Tp
, bool>
11681 operator()(const _Tp
& __x
, const _Tp
& __y
) const
11682 { return __x
< __y
; }
11686 template <class _Tp
>
11687 struct greater_equal
: public binary_function
<_Tp
, _Tp
, bool>
11690 operator()(const _Tp
& __x
, const _Tp
& __y
) const
11691 { return __x
>= __y
; }
11695 template <class _Tp
>
11696 struct less_equal
: public binary_function
<_Tp
, _Tp
, bool>
11699 operator()(const _Tp
& __x
, const _Tp
& __y
) const
11700 { return __x
<= __y
; }
11702 # 256 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_function.h" 3
11703 template <class _Tp
>
11704 struct logical_and
: public binary_function
<_Tp
, _Tp
, bool>
11707 operator()(const _Tp
& __x
, const _Tp
& __y
) const
11708 { return __x
&& __y
; }
11712 template <class _Tp
>
11713 struct logical_or
: public binary_function
<_Tp
, _Tp
, bool>
11716 operator()(const _Tp
& __x
, const _Tp
& __y
) const
11717 { return __x
|| __y
; }
11721 template <class _Tp
>
11722 struct logical_not
: public unary_function
<_Tp
, bool>
11725 operator()(const _Tp
& __x
) const
11728 # 311 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_function.h" 3
11729 template <class _Predicate
>
11731 : public unary_function
<typename
_Predicate::argument_type
, bool>
11734 _Predicate _M_pred
;
11737 unary_negate(const _Predicate
& __x
) : _M_pred(__x
) {}
11740 operator()(const typename
_Predicate::argument_type
& __x
) const
11741 { return !_M_pred(__x
); }
11745 template <class _Predicate
>
11746 inline unary_negate
<_Predicate
>
11747 not1(const _Predicate
& __pred
)
11748 { return unary_negate
<_Predicate
>(__pred
); }
11751 template <class _Predicate
>
11752 class binary_negate
11753 : public binary_function
<typename
_Predicate::first_argument_type
,
11754 typename
_Predicate::second_argument_type
,
11758 _Predicate _M_pred
;
11761 binary_negate(const _Predicate
& __x
)
11765 operator()(const typename
_Predicate::first_argument_type
& __x
,
11766 const typename
_Predicate::second_argument_type
& __y
) const
11767 { return !_M_pred(__x
, __y
); }
11771 template <class _Predicate
>
11772 inline binary_negate
<_Predicate
>
11773 not2(const _Predicate
& __pred
)
11774 { return binary_negate
<_Predicate
>(__pred
); }
11775 # 391 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_function.h" 3
11776 template <class _Operation
>
11778 : public unary_function
<typename
_Operation::second_argument_type
,
11779 typename
_Operation::result_type
>
11783 typename
_Operation::first_argument_type value
;
11785 binder1st(const _Operation
& __x
,
11786 const typename
_Operation::first_argument_type
& __y
)
11787 : op(__x
), value(__y
) {}
11789 typename
_Operation::result_type
11790 operator()(const typename
_Operation::second_argument_type
& __x
) const
11791 { return op(value
, __x
); }
11795 typename
_Operation::result_type
11796 operator()(typename
_Operation::second_argument_type
& __x
) const
11797 { return op(value
, __x
); }
11801 template <class _Operation
, class _Tp
>
11802 inline binder1st
<_Operation
>
11803 bind1st(const _Operation
& __fn
, const _Tp
& __x
)
11805 typedef typename
_Operation::first_argument_type _Arg1_type
;
11806 return binder1st
<_Operation
>(__fn
, _Arg1_type(__x
));
11810 template <class _Operation
>
11812 : public unary_function
<typename
_Operation::first_argument_type
,
11813 typename
_Operation::result_type
>
11817 typename
_Operation::second_argument_type value
;
11819 binder2nd(const _Operation
& __x
,
11820 const typename
_Operation::second_argument_type
& __y
)
11821 : op(__x
), value(__y
) {}
11823 typename
_Operation::result_type
11824 operator()(const typename
_Operation::first_argument_type
& __x
) const
11825 { return op(__x
, value
); }
11829 typename
_Operation::result_type
11830 operator()(typename
_Operation::first_argument_type
& __x
) const
11831 { return op(__x
, value
); }
11835 template <class _Operation
, class _Tp
>
11836 inline binder2nd
<_Operation
>
11837 bind2nd(const _Operation
& __fn
, const _Tp
& __x
)
11839 typedef typename
_Operation::second_argument_type _Arg2_type
;
11840 return binder2nd
<_Operation
>(__fn
, _Arg2_type(__x
));
11842 # 480 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_function.h" 3
11843 template <class _Arg
, class _Result
>
11844 class pointer_to_unary_function
: public unary_function
<_Arg
, _Result
>
11847 _Result (*_M_ptr
)(_Arg
);
11849 pointer_to_unary_function() {}
11852 pointer_to_unary_function(_Result (*__x
)(_Arg
))
11856 operator()(_Arg __x
) const
11857 { return _M_ptr(__x
); }
11861 template <class _Arg
, class _Result
>
11862 inline pointer_to_unary_function
<_Arg
, _Result
>
11863 ptr_fun(_Result (*__x
)(_Arg
))
11864 { return pointer_to_unary_function
<_Arg
, _Result
>(__x
); }
11867 template <class _Arg1
, class _Arg2
, class _Result
>
11868 class pointer_to_binary_function
11869 : public binary_function
<_Arg1
, _Arg2
, _Result
>
11872 _Result (*_M_ptr
)(_Arg1
, _Arg2
);
11874 pointer_to_binary_function() {}
11877 pointer_to_binary_function(_Result (*__x
)(_Arg1
, _Arg2
))
11881 operator()(_Arg1 __x
, _Arg2 __y
) const
11882 { return _M_ptr(__x
, __y
); }
11886 template <class _Arg1
, class _Arg2
, class _Result
>
11887 inline pointer_to_binary_function
<_Arg1
, _Arg2
, _Result
>
11888 ptr_fun(_Result (*__x
)(_Arg1
, _Arg2
))
11889 { return pointer_to_binary_function
<_Arg1
, _Arg2
, _Result
>(__x
); }
11892 template <class _Tp
>
11893 struct _Identity
: public unary_function
<_Tp
,_Tp
>
11896 operator()(_Tp
& __x
) const
11900 operator()(const _Tp
& __x
) const
11904 template <class _Pair
>
11905 struct _Select1st
: public unary_function
<_Pair
,
11906 typename
_Pair::first_type
>
11908 typename
_Pair::first_type
&
11909 operator()(_Pair
& __x
) const
11910 { return __x
.first
; }
11912 const typename
_Pair::first_type
&
11913 operator()(const _Pair
& __x
) const
11914 { return __x
.first
; }
11917 template <class _Pair
>
11918 struct _Select2nd
: public unary_function
<_Pair
,
11919 typename
_Pair::second_type
>
11921 typename
_Pair::second_type
&
11922 operator()(_Pair
& __x
) const
11923 { return __x
.second
; }
11925 const typename
_Pair::second_type
&
11926 operator()(const _Pair
& __x
) const
11927 { return __x
.second
; }
11929 # 582 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_function.h" 3
11930 template <class _Ret
, class _Tp
>
11931 class mem_fun_t
: public unary_function
<_Tp
*, _Ret
>
11935 mem_fun_t(_Ret (_Tp::*__pf
)())
11939 operator()(_Tp
* __p
) const
11940 { return (__p
->*_M_f
)(); }
11942 _Ret (_Tp::*_M_f
)();
11946 template <class _Ret
, class _Tp
>
11947 class const_mem_fun_t
: public unary_function
<const _Tp
*, _Ret
>
11951 const_mem_fun_t(_Ret (_Tp::*__pf
)() const)
11955 operator()(const _Tp
* __p
) const
11956 { return (__p
->*_M_f
)(); }
11958 _Ret (_Tp::*_M_f
)() const;
11962 template <class _Ret
, class _Tp
>
11963 class mem_fun_ref_t
: public unary_function
<_Tp
, _Ret
>
11967 mem_fun_ref_t(_Ret (_Tp::*__pf
)())
11971 operator()(_Tp
& __r
) const
11972 { return (__r
.*_M_f
)(); }
11974 _Ret (_Tp::*_M_f
)();
11978 template <class _Ret
, class _Tp
>
11979 class const_mem_fun_ref_t
: public unary_function
<_Tp
, _Ret
>
11983 const_mem_fun_ref_t(_Ret (_Tp::*__pf
)() const)
11987 operator()(const _Tp
& __r
) const
11988 { return (__r
.*_M_f
)(); }
11990 _Ret (_Tp::*_M_f
)() const;
11994 template <class _Ret
, class _Tp
, class _Arg
>
11995 class mem_fun1_t
: public binary_function
<_Tp
*, _Arg
, _Ret
>
11999 mem_fun1_t(_Ret (_Tp::*__pf
)(_Arg
))
12003 operator()(_Tp
* __p
, _Arg __x
) const
12004 { return (__p
->*_M_f
)(__x
); }
12006 _Ret (_Tp::*_M_f
)(_Arg
);
12010 template <class _Ret
, class _Tp
, class _Arg
>
12011 class const_mem_fun1_t
: public binary_function
<const _Tp
*, _Arg
, _Ret
>
12015 const_mem_fun1_t(_Ret (_Tp::*__pf
)(_Arg
) const)
12019 operator()(const _Tp
* __p
, _Arg __x
) const
12020 { return (__p
->*_M_f
)(__x
); }
12022 _Ret (_Tp::*_M_f
)(_Arg
) const;
12026 template <class _Ret
, class _Tp
, class _Arg
>
12027 class mem_fun1_ref_t
: public binary_function
<_Tp
, _Arg
, _Ret
>
12031 mem_fun1_ref_t(_Ret (_Tp::*__pf
)(_Arg
))
12035 operator()(_Tp
& __r
, _Arg __x
) const
12036 { return (__r
.*_M_f
)(__x
); }
12038 _Ret (_Tp::*_M_f
)(_Arg
);
12042 template <class _Ret
, class _Tp
, class _Arg
>
12043 class const_mem_fun1_ref_t
: public binary_function
<_Tp
, _Arg
, _Ret
>
12047 const_mem_fun1_ref_t(_Ret (_Tp::*__pf
)(_Arg
) const)
12051 operator()(const _Tp
& __r
, _Arg __x
) const
12052 { return (__r
.*_M_f
)(__x
); }
12054 _Ret (_Tp::*_M_f
)(_Arg
) const;
12059 template <class _Ret
, class _Tp
>
12060 inline mem_fun_t
<_Ret
, _Tp
>
12061 mem_fun(_Ret (_Tp::*__f
)())
12062 { return mem_fun_t
<_Ret
, _Tp
>(__f
); }
12064 template <class _Ret
, class _Tp
>
12065 inline const_mem_fun_t
<_Ret
, _Tp
>
12066 mem_fun(_Ret (_Tp::*__f
)() const)
12067 { return const_mem_fun_t
<_Ret
, _Tp
>(__f
); }
12069 template <class _Ret
, class _Tp
>
12070 inline mem_fun_ref_t
<_Ret
, _Tp
>
12071 mem_fun_ref(_Ret (_Tp::*__f
)())
12072 { return mem_fun_ref_t
<_Ret
, _Tp
>(__f
); }
12074 template <class _Ret
, class _Tp
>
12075 inline const_mem_fun_ref_t
<_Ret
, _Tp
>
12076 mem_fun_ref(_Ret (_Tp::*__f
)() const)
12077 { return const_mem_fun_ref_t
<_Ret
, _Tp
>(__f
); }
12079 template <class _Ret
, class _Tp
, class _Arg
>
12080 inline mem_fun1_t
<_Ret
, _Tp
, _Arg
>
12081 mem_fun(_Ret (_Tp::*__f
)(_Arg
))
12082 { return mem_fun1_t
<_Ret
, _Tp
, _Arg
>(__f
); }
12084 template <class _Ret
, class _Tp
, class _Arg
>
12085 inline const_mem_fun1_t
<_Ret
, _Tp
, _Arg
>
12086 mem_fun(_Ret (_Tp::*__f
)(_Arg
) const)
12087 { return const_mem_fun1_t
<_Ret
, _Tp
, _Arg
>(__f
); }
12089 template <class _Ret
, class _Tp
, class _Arg
>
12090 inline mem_fun1_ref_t
<_Ret
, _Tp
, _Arg
>
12091 mem_fun_ref(_Ret (_Tp::*__f
)(_Arg
))
12092 { return mem_fun1_ref_t
<_Ret
, _Tp
, _Arg
>(__f
); }
12094 template <class _Ret
, class _Tp
, class _Arg
>
12095 inline const_mem_fun1_ref_t
<_Ret
, _Tp
, _Arg
>
12096 mem_fun_ref(_Ret (_Tp::*__f
)(_Arg
) const)
12097 { return const_mem_fun1_ref_t
<_Ret
, _Tp
, _Arg
>(__f
); }
12102 # 53 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/string" 2 3
12103 # 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 1 3
12104 # 43 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3
12106 # 44 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3
12108 # 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/atomicity.h" 1 3
12109 # 38 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/atomicity.h" 3
12110 # 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/i686-pc-linux-gnu/bits/atomic_word.h" 1 3
12111 # 33 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/i686-pc-linux-gnu/bits/atomic_word.h" 3
12112 typedef int _Atomic_word
;
12113 # 39 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/atomicity.h" 2 3
12115 namespace __gnu_cxx
12118 __attribute__ ((__unused__
))
12119 __exchange_and_add(volatile _Atomic_word
* __mem
, int __val
);
12122 __attribute__ ((__unused__
))
12123 __atomic_add(volatile _Atomic_word
* __mem
, int __val
);
12125 # 46 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 2 3
12130 # 109 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3
12131 template<typename _CharT
, typename _Traits
, typename _Alloc
>
12134 typedef typename
_Alloc::template rebind
<_CharT
>::other _CharT_alloc_type
;
12138 typedef _Traits traits_type
;
12139 typedef typename
_Traits::char_type value_type
;
12140 typedef _Alloc allocator_type
;
12141 typedef typename
_CharT_alloc_type::size_type size_type
;
12142 typedef typename
_CharT_alloc_type::difference_type difference_type
;
12143 typedef typename
_CharT_alloc_type::reference reference
;
12144 typedef typename
_CharT_alloc_type::const_reference const_reference
;
12145 typedef typename
_CharT_alloc_type::pointer pointer
;
12146 typedef typename
_CharT_alloc_type::const_pointer const_pointer
;
12147 typedef __gnu_cxx::__normal_iterator
<pointer
, basic_string
> iterator
;
12148 typedef __gnu_cxx::__normal_iterator
<const_pointer
, basic_string
>
12150 typedef std::reverse_iterator
<const_iterator
> const_reverse_iterator
;
12151 typedef std::reverse_iterator
<iterator
> reverse_iterator
;
12154 # 146 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3
12157 size_type _M_length
;
12158 size_type _M_capacity
;
12159 _Atomic_word _M_refcount
;
12162 struct _Rep
: _Rep_base
12165 typedef typename
_Alloc::template rebind
<char>::other _Raw_bytes_alloc
;
12166 # 171 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3
12167 static const size_type _S_max_size
;
12168 static const _CharT _S_terminal
;
12172 static size_type _S_empty_rep_storage
[];
12177 void* __p
= reinterpret_cast<void*>(&_S_empty_rep_storage
);
12178 return *reinterpret_cast<_Rep
*>(__p
);
12182 _M_is_leaked() const
12183 { return this->_M_refcount
< 0; }
12186 _M_is_shared() const
12187 { return this->_M_refcount
> 0; }
12191 { this->_M_refcount
= -1; }
12195 { this->_M_refcount
= 0; }
12198 _M_set_length_and_sharable(size_type __n
)
12200 this->_M_set_sharable();
12201 this->_M_length
= __n
;
12202 traits_type::assign(this->_M_refdata()[__n
], _S_terminal
);
12208 _M_refdata() throw()
12209 { return reinterpret_cast<_CharT
*>(this + 1); }
12212 _M_grab(const _Alloc
& __alloc1
, const _Alloc
& __alloc2
)
12214 return (!_M_is_leaked() && __alloc1
== __alloc2
)
12215 ? _M_refcopy() : _M_clone(__alloc1
);
12220 _S_create(size_type
, size_type
, const _Alloc
&);
12223 _M_dispose(const _Alloc
& __a
)
12226 if (__builtin_expect(this != &_S_empty_rep(), false))
12228 if (__gnu_cxx::__exchange_and_add(&this->_M_refcount
, -1) <= 0)
12233 _M_destroy(const _Alloc
&) throw();
12236 _M_refcopy() throw()
12239 if (__builtin_expect(this != &_S_empty_rep(), false))
12241 __gnu_cxx::__atomic_add(&this->_M_refcount
, 1);
12242 return _M_refdata();
12246 _M_clone(const _Alloc
&, size_type __res
= 0);
12250 struct _Alloc_hider
: _Alloc
12252 _Alloc_hider(_CharT
* __dat
, const _Alloc
& __a
)
12253 : _Alloc(__a
), _M_p(__dat
) { }
12263 static const size_type npos
= static_cast<size_type
>(-1);
12267 mutable _Alloc_hider _M_dataplus
;
12271 { return _M_dataplus
._M_p
; }
12274 _M_data(_CharT
* __p
)
12275 { return (_M_dataplus
._M_p
= __p
); }
12279 { return &((reinterpret_cast<_Rep
*> (_M_data()))[-1]); }
12285 { return iterator(_M_data()); }
12289 { return iterator(_M_data() + this->size()); }
12294 if (!_M_rep()->_M_is_leaked())
12299 _M_check(size_type __pos
, const char* __s
) const
12301 if (__pos
> this->size())
12302 __throw_out_of_range((__s
));
12307 _M_check_length(size_type __n1
, size_type __n2
, const char* __s
) const
12309 if (this->max_size() - (this->size() - __n1
) < __n2
)
12310 __throw_length_error((__s
));
12315 _M_limit(size_type __pos
, size_type __off
) const
12317 const bool __testoff
= __off
< this->size() - __pos
;
12318 return __testoff
? __off
: this->size() - __pos
;
12323 _M_disjunct(const _CharT
* __s
) const
12325 return (less
<const _CharT
*>()(__s
, _M_data())
12326 || less
<const _CharT
*>()(_M_data() + this->size(), __s
));
12332 _M_copy(_CharT
* __d
, const _CharT
* __s
, size_type __n
)
12335 traits_type::assign(*__d
, *__s
);
12337 traits_type::copy(__d
, __s
, __n
);
12341 _M_move(_CharT
* __d
, const _CharT
* __s
, size_type __n
)
12344 traits_type::assign(*__d
, *__s
);
12346 traits_type::move(__d
, __s
, __n
);
12350 _M_assign(_CharT
* __d
, size_type __n
, _CharT __c
)
12353 traits_type::assign(*__d
, __c
);
12355 traits_type::assign(__d
, __n
, __c
);
12360 template<class _Iterator
>
12362 _S_copy_chars(_CharT
* __p
, _Iterator __k1
, _Iterator __k2
)
12364 for (; __k1
!= __k2
; ++__k1
, ++__p
)
12365 traits_type::assign(*__p
, *__k1
);
12369 _S_copy_chars(_CharT
* __p
, iterator __k1
, iterator __k2
)
12370 { _S_copy_chars(__p
, __k1
.base(), __k2
.base()); }
12373 _S_copy_chars(_CharT
* __p
, const_iterator __k1
, const_iterator __k2
)
12374 { _S_copy_chars(__p
, __k1
.base(), __k2
.base()); }
12377 _S_copy_chars(_CharT
* __p
, _CharT
* __k1
, _CharT
* __k2
)
12378 { _M_copy(__p
, __k1
, __k2
- __k1
); }
12381 _S_copy_chars(_CharT
* __p
, const _CharT
* __k1
, const _CharT
* __k2
)
12382 { _M_copy(__p
, __k1
, __k2
- __k1
); }
12385 _M_mutate(size_type __pos
, size_type __len1
, size_type __len2
);
12392 { return _Rep::_S_empty_rep(); }
12409 basic_string(const _Alloc
& __a
);
12416 basic_string(const basic_string
& __str
);
12423 basic_string(const basic_string
& __str
, size_type __pos
,
12424 size_type __n
= npos
);
12432 basic_string(const basic_string
& __str
, size_type __pos
,
12433 size_type __n
, const _Alloc
& __a
);
12434 # 448 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3
12435 basic_string(const _CharT
* __s
, size_type __n
,
12436 const _Alloc
& __a
= _Alloc());
12442 basic_string(const _CharT
* __s
, const _Alloc
& __a
= _Alloc());
12449 basic_string(size_type __n
, _CharT __c
, const _Alloc
& __a
= _Alloc());
12457 template<class _InputIterator
>
12458 basic_string(_InputIterator __beg
, _InputIterator __end
,
12459 const _Alloc
& __a
= _Alloc());
12465 { _M_rep()->_M_dispose(this->get_allocator()); }
12472 operator=(const basic_string
& __str
)
12473 { return this->assign(__str
); }
12480 operator=(const _CharT
* __s
)
12481 { return this->assign(__s
); }
12482 # 503 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3
12484 operator=(_CharT __c
)
12486 this->assign(1, __c
);
12499 return iterator(_M_data());
12508 { return const_iterator(_M_data()); }
12518 return iterator(_M_data() + this->size());
12527 { return const_iterator(_M_data() + this->size()); }
12536 { return reverse_iterator(this->end()); }
12543 const_reverse_iterator
12545 { return const_reverse_iterator(this->end()); }
12554 { return reverse_iterator(this->begin()); }
12561 const_reverse_iterator
12563 { return const_reverse_iterator(this->begin()); }
12571 { return _M_rep()->_M_length
; }
12577 { return _M_rep()->_M_length
; }
12582 { return _Rep::_S_max_size
; }
12583 # 614 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3
12585 resize(size_type __n
, _CharT __c
);
12586 # 627 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3
12588 resize(size_type __n
)
12589 { this->resize(__n
, _CharT()); }
12597 { return _M_rep()->_M_capacity
; }
12598 # 656 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3
12600 reserve(size_type __res_arg
= 0);
12607 { _M_mutate(0, this->size(), 0); }
12614 { return this->size() == 0; }
12615 # 684 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3
12617 operator[] (size_type __pos
) const
12620 return _M_data()[__pos
];
12622 # 701 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3
12624 operator[](size_type __pos
)
12631 return _M_data()[__pos
];
12633 # 722 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3
12635 at(size_type __n
) const
12637 if (__n
>= this->size())
12638 __throw_out_of_range(("basic_string::at"));
12639 return _M_data()[__n
];
12641 # 741 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3
12646 __throw_out_of_range(("basic_string::at"));
12648 return _M_data()[__n
];
12658 operator+=(const basic_string
& __str
)
12659 { return this->append(__str
); }
12667 operator+=(const _CharT
* __s
)
12668 { return this->append(__s
); }
12676 operator+=(_CharT __c
)
12678 this->push_back(__c
);
12688 append(const basic_string
& __str
);
12689 # 801 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3
12691 append(const basic_string
& __str
, size_type __pos
, size_type __n
);
12700 append(const _CharT
* __s
, size_type __n
);
12708 append(const _CharT
* __s
)
12711 return this->append(__s
, traits_type::length(__s
));
12713 # 833 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3
12715 append(size_type __n
, _CharT __c
);
12716 # 844 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3
12717 template<class _InputIterator
>
12719 append(_InputIterator __first
, _InputIterator __last
)
12720 { return this->replace(_M_iend(), _M_iend(), __first
, __last
); }
12727 push_back(_CharT __c
)
12729 const size_type __len
= 1 + this->size();
12730 if (__len
> this->capacity() || _M_rep()->_M_is_shared())
12731 this->reserve(__len
);
12732 traits_type::assign(_M_data()[this->size()], __c
);
12733 _M_rep()->_M_set_length_and_sharable(__len
);
12742 assign(const basic_string
& __str
);
12743 # 883 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3
12745 assign(const basic_string
& __str
, size_type __pos
, size_type __n
)
12746 { return this->assign(__str
._M_data()
12747 + __str
._M_check(__pos
, "basic_string::assign"),
12748 __str
._M_limit(__pos
, __n
)); }
12749 # 899 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3
12751 assign(const _CharT
* __s
, size_type __n
);
12752 # 911 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3
12754 assign(const _CharT
* __s
)
12757 return this->assign(__s
, traits_type::length(__s
));
12759 # 927 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3
12761 assign(size_type __n
, _CharT __c
)
12762 { return _M_replace_aux(size_type(0), this->size(), __n
, __c
); }
12763 # 939 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3
12764 template<class _InputIterator
>
12766 assign(_InputIterator __first
, _InputIterator __last
)
12767 { return this->replace(_M_ibegin(), _M_iend(), __first
, __last
); }
12768 # 956 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3
12770 insert(iterator __p
, size_type __n
, _CharT __c
)
12771 { this->replace(__p
, __p
, __n
, __c
); }
12772 # 971 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3
12773 template<class _InputIterator
>
12775 insert(iterator __p
, _InputIterator __beg
, _InputIterator __end
)
12776 { this->replace(__p
, __p
, __beg
, __end
); }
12777 # 987 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3
12779 insert(size_type __pos1
, const basic_string
& __str
)
12780 { return this->insert(__pos1
, __str
, size_type(0), __str
.size()); }
12781 # 1009 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3
12783 insert(size_type __pos1
, const basic_string
& __str
,
12784 size_type __pos2
, size_type __n
)
12785 { return this->insert(__pos1
, __str
._M_data()
12786 + __str
._M_check(__pos2
, "basic_string::insert"),
12787 __str
._M_limit(__pos2
, __n
)); }
12788 # 1032 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3
12790 insert(size_type __pos
, const _CharT
* __s
, size_type __n
);
12791 # 1050 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3
12793 insert(size_type __pos
, const _CharT
* __s
)
12796 return this->insert(__pos
, __s
, traits_type::length(__s
));
12798 # 1073 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3
12800 insert(size_type __pos
, size_type __n
, _CharT __c
)
12801 { return _M_replace_aux(_M_check(__pos
, "basic_string::insert"),
12802 size_type(0), __n
, __c
); }
12803 # 1090 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3
12805 insert(iterator __p
, _CharT __c
)
12808 const size_type __pos
= __p
- _M_ibegin();
12809 _M_replace_aux(__pos
, size_type(0), size_type(1), __c
);
12810 _M_rep()->_M_set_leaked();
12811 return this->_M_ibegin() + __pos
;
12813 # 1114 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3
12815 erase(size_type __pos
= 0, size_type __n
= npos
)
12817 _M_mutate(_M_check(__pos
, "basic_string::erase"),
12818 _M_limit(__pos
, __n
), size_type(0));
12821 # 1130 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3
12823 erase(iterator __position
)
12827 const size_type __pos
= __position
- _M_ibegin();
12828 _M_mutate(__pos
, size_type(1), size_type(0));
12829 _M_rep()->_M_set_leaked();
12830 return _M_ibegin() + __pos
;
12832 # 1150 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3
12834 erase(iterator __first
, iterator __last
)
12838 const size_type __pos
= __first
- _M_ibegin();
12839 _M_mutate(__pos
, __last
- __first
, size_type(0));
12840 _M_rep()->_M_set_leaked();
12841 return _M_ibegin() + __pos
;
12843 # 1177 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3
12845 replace(size_type __pos
, size_type __n
, const basic_string
& __str
)
12846 { return this->replace(__pos
, __n
, __str
._M_data(), __str
.size()); }
12847 # 1199 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3
12849 replace(size_type __pos1
, size_type __n1
, const basic_string
& __str
,
12850 size_type __pos2
, size_type __n2
)
12851 { return this->replace(__pos1
, __n1
, __str
._M_data()
12852 + __str
._M_check(__pos2
, "basic_string::replace"),
12853 __str
._M_limit(__pos2
, __n2
)); }
12854 # 1223 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3
12856 replace(size_type __pos
, size_type __n1
, const _CharT
* __s
,
12858 # 1242 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3
12860 replace(size_type __pos
, size_type __n1
, const _CharT
* __s
)
12863 return this->replace(__pos
, __n1
, __s
, traits_type::length(__s
));
12865 # 1265 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3
12867 replace(size_type __pos
, size_type __n1
, size_type __n2
, _CharT __c
)
12868 { return _M_replace_aux(_M_check(__pos
, "basic_string::replace"),
12869 _M_limit(__pos
, __n1
), __n2
, __c
); }
12870 # 1283 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3
12872 replace(iterator __i1
, iterator __i2
, const basic_string
& __str
)
12873 { return this->replace(__i1
, __i2
, __str
._M_data(), __str
.size()); }
12874 # 1301 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3
12876 replace(iterator __i1
, iterator __i2
, const _CharT
* __s
, size_type __n
)
12880 return this->replace(__i1
- _M_ibegin(), __i2
- __i1
, __s
, __n
);
12882 # 1322 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3
12884 replace(iterator __i1
, iterator __i2
, const _CharT
* __s
)
12887 return this->replace(__i1
, __i2
, __s
, traits_type::length(__s
));
12889 # 1343 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3
12891 replace(iterator __i1
, iterator __i2
, size_type __n
, _CharT __c
)
12895 return _M_replace_aux(__i1
- _M_ibegin(), __i2
- __i1
, __n
, __c
);
12897 # 1365 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3
12898 template<class _InputIterator
>
12900 replace(iterator __i1
, iterator __i2
,
12901 _InputIterator __k1
, _InputIterator __k2
)
12906 typedef typename
std::__is_integer
<_InputIterator
>::__type _Integral
;
12907 return _M_replace_dispatch(__i1
, __i2
, __k1
, __k2
, _Integral());
12913 replace(iterator __i1
, iterator __i2
, _CharT
* __k1
, _CharT
* __k2
)
12918 return this->replace(__i1
- _M_ibegin(), __i2
- __i1
,
12919 __k1
, __k2
- __k1
);
12923 replace(iterator __i1
, iterator __i2
,
12924 const _CharT
* __k1
, const _CharT
* __k2
)
12929 return this->replace(__i1
- _M_ibegin(), __i2
- __i1
,
12930 __k1
, __k2
- __k1
);
12934 replace(iterator __i1
, iterator __i2
, iterator __k1
, iterator __k2
)
12939 return this->replace(__i1
- _M_ibegin(), __i2
- __i1
,
12940 __k1
.base(), __k2
- __k1
);
12944 replace(iterator __i1
, iterator __i2
,
12945 const_iterator __k1
, const_iterator __k2
)
12950 return this->replace(__i1
- _M_ibegin(), __i2
- __i1
,
12951 __k1
.base(), __k2
- __k1
);
12955 template<class _Integer
>
12957 _M_replace_dispatch(iterator __i1
, iterator __i2
, _Integer __n
,
12958 _Integer __val
, __true_type
)
12959 { return _M_replace_aux(__i1
- _M_ibegin(), __i2
- __i1
, __n
, __val
); }
12961 template<class _InputIterator
>
12963 _M_replace_dispatch(iterator __i1
, iterator __i2
, _InputIterator __k1
,
12964 _InputIterator __k2
, __false_type
);
12967 _M_replace_aux(size_type __pos1
, size_type __n1
, size_type __n2
,
12971 _M_replace_safe(size_type __pos1
, size_type __n1
, const _CharT
* __s
,
12976 template<class _InIterator
>
12978 _S_construct_aux(_InIterator __beg
, _InIterator __end
,
12979 const _Alloc
& __a
, __false_type
)
12981 typedef typename iterator_traits
<_InIterator
>::iterator_category _Tag
;
12982 return _S_construct(__beg
, __end
, __a
, _Tag());
12985 template<class _InIterator
>
12987 _S_construct_aux(_InIterator __beg
, _InIterator __end
,
12988 const _Alloc
& __a
, __true_type
)
12989 { return _S_construct(static_cast<size_type
>(__beg
),
12990 static_cast<value_type
>(__end
), __a
); }
12992 template<class _InIterator
>
12994 _S_construct(_InIterator __beg
, _InIterator __end
, const _Alloc
& __a
)
12996 typedef typename
std::__is_integer
<_InIterator
>::__type _Integral
;
12997 return _S_construct_aux(__beg
, __end
, __a
, _Integral());
13001 template<class _InIterator
>
13003 _S_construct(_InIterator __beg
, _InIterator __end
, const _Alloc
& __a
,
13004 input_iterator_tag
);
13008 template<class _FwdIterator
>
13010 _S_construct(_FwdIterator __beg
, _FwdIterator __end
, const _Alloc
& __a
,
13011 forward_iterator_tag
);
13014 _S_construct(size_type __req
, _CharT __c
, const _Alloc
& __a
);
13017 # 1496 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3
13019 copy(_CharT
* __s
, size_type __n
, size_type __pos
= 0) const;
13020 # 1506 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3
13022 swap(basic_string
& __s
);
13023 # 1516 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3
13026 { return _M_data(); }
13036 { return _M_data(); }
13042 get_allocator() const
13043 { return _M_dataplus
; }
13044 # 1548 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3
13046 find(const _CharT
* __s
, size_type __pos
, size_type __n
) const;
13047 # 1561 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3
13049 find(const basic_string
& __str
, size_type __pos
= 0) const
13050 { return this->find(__str
.data(), __pos
, __str
.size()); }
13051 # 1575 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3
13053 find(const _CharT
* __s
, size_type __pos
= 0) const
13056 return this->find(__s
, __pos
, traits_type::length(__s
));
13058 # 1592 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3
13060 find(_CharT __c
, size_type __pos
= 0) const;
13061 # 1605 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3
13063 rfind(const basic_string
& __str
, size_type __pos
= npos
) const
13064 { return this->rfind(__str
.data(), __pos
, __str
.size()); }
13065 # 1620 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3
13067 rfind(const _CharT
* __s
, size_type __pos
, size_type __n
) const;
13068 # 1633 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3
13070 rfind(const _CharT
* __s
, size_type __pos
= npos
) const
13073 return this->rfind(__s
, __pos
, traits_type::length(__s
));
13075 # 1650 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3
13077 rfind(_CharT __c
, size_type __pos
= npos
) const;
13078 # 1663 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3
13080 find_first_of(const basic_string
& __str
, size_type __pos
= 0) const
13081 { return this->find_first_of(__str
.data(), __pos
, __str
.size()); }
13082 # 1678 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3
13084 find_first_of(const _CharT
* __s
, size_type __pos
, size_type __n
) const;
13085 # 1691 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3
13087 find_first_of(const _CharT
* __s
, size_type __pos
= 0) const
13090 return this->find_first_of(__s
, __pos
, traits_type::length(__s
));
13092 # 1710 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3
13094 find_first_of(_CharT __c
, size_type __pos
= 0) const
13095 { return this->find(__c
, __pos
); }
13096 # 1724 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3
13098 find_last_of(const basic_string
& __str
, size_type __pos
= npos
) const
13099 { return this->find_last_of(__str
.data(), __pos
, __str
.size()); }
13100 # 1739 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3
13102 find_last_of(const _CharT
* __s
, size_type __pos
, size_type __n
) const;
13103 # 1752 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3
13105 find_last_of(const _CharT
* __s
, size_type __pos
= npos
) const
13108 return this->find_last_of(__s
, __pos
, traits_type::length(__s
));
13110 # 1771 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3
13112 find_last_of(_CharT __c
, size_type __pos
= npos
) const
13113 { return this->rfind(__c
, __pos
); }
13114 # 1785 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3
13116 find_first_not_of(const basic_string
& __str
, size_type __pos
= 0) const
13117 { return this->find_first_not_of(__str
.data(), __pos
, __str
.size()); }
13118 # 1800 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3
13120 find_first_not_of(const _CharT
* __s
, size_type __pos
,
13121 size_type __n
) const;
13122 # 1814 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3
13124 find_first_not_of(const _CharT
* __s
, size_type __pos
= 0) const
13127 return this->find_first_not_of(__s
, __pos
, traits_type::length(__s
));
13129 # 1831 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3
13131 find_first_not_of(_CharT __c
, size_type __pos
= 0) const;
13132 # 1844 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3
13134 find_last_not_of(const basic_string
& __str
, size_type __pos
= npos
) const
13135 { return this->find_last_not_of(__str
.data(), __pos
, __str
.size()); }
13136 # 1860 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3
13138 find_last_not_of(const _CharT
* __s
, size_type __pos
,
13139 size_type __n
) const;
13140 # 1873 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3
13142 find_last_not_of(const _CharT
* __s
, size_type __pos
= npos
) const
13145 return this->find_last_not_of(__s
, __pos
, traits_type::length(__s
));
13147 # 1890 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3
13149 find_last_not_of(_CharT __c
, size_type __pos
= npos
) const;
13150 # 1905 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3
13152 substr(size_type __pos
= 0, size_type __n
= npos
) const
13153 { return basic_string(*this,
13154 _M_check(__pos
, "basic_string::substr"), __n
); }
13155 # 1923 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3
13157 compare(const basic_string
& __str
) const
13159 const size_type __size
= this->size();
13160 const size_type __osize
= __str
.size();
13161 const size_type __len
= std::min(__size
, __osize
);
13163 int __r
= traits_type::compare(_M_data(), __str
.data(), __len
);
13165 __r
= __size
- __osize
;
13168 # 1953 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3
13170 compare(size_type __pos
, size_type __n
, const basic_string
& __str
) const;
13171 # 1977 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3
13173 compare(size_type __pos1
, size_type __n1
, const basic_string
& __str
,
13174 size_type __pos2
, size_type __n2
) const;
13175 # 1995 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3
13177 compare(const _CharT
* __s
) const;
13178 # 2018 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3
13180 compare(size_type __pos
, size_type __n1
, const _CharT
* __s
) const;
13181 # 2043 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3
13183 compare(size_type __pos
, size_type __n1
, const _CharT
* __s
,
13184 size_type __n2
) const;
13187 template<typename _CharT
, typename _Traits
, typename _Alloc
>
13188 inline basic_string
<_CharT
, _Traits
, _Alloc
>::
13191 : _M_dataplus(_S_empty_rep()._M_refdata(), _Alloc()) { }
13192 # 2064 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3
13193 template<typename _CharT
, typename _Traits
, typename _Alloc
>
13194 basic_string
<_CharT
, _Traits
, _Alloc
>
13195 operator+(const basic_string
<_CharT
, _Traits
, _Alloc
>& __lhs
,
13196 const basic_string
<_CharT
, _Traits
, _Alloc
>& __rhs
)
13198 basic_string
<_CharT
, _Traits
, _Alloc
> __str(__lhs
);
13199 __str
.append(__rhs
);
13209 template<typename _CharT
, typename _Traits
, typename _Alloc
>
13210 basic_string
<_CharT
,_Traits
,_Alloc
>
13211 operator+(const _CharT
* __lhs
,
13212 const basic_string
<_CharT
,_Traits
,_Alloc
>& __rhs
);
13220 template<typename _CharT
, typename _Traits
, typename _Alloc
>
13221 basic_string
<_CharT
,_Traits
,_Alloc
>
13222 operator+(_CharT __lhs
, const basic_string
<_CharT
,_Traits
,_Alloc
>& __rhs
);
13230 template<typename _CharT
, typename _Traits
, typename _Alloc
>
13231 inline basic_string
<_CharT
, _Traits
, _Alloc
>
13232 operator+(const basic_string
<_CharT
, _Traits
, _Alloc
>& __lhs
,
13233 const _CharT
* __rhs
)
13235 basic_string
<_CharT
, _Traits
, _Alloc
> __str(__lhs
);
13236 __str
.append(__rhs
);
13246 template<typename _CharT
, typename _Traits
, typename _Alloc
>
13247 inline basic_string
<_CharT
, _Traits
, _Alloc
>
13248 operator+(const basic_string
<_CharT
, _Traits
, _Alloc
>& __lhs
, _CharT __rhs
)
13250 typedef basic_string
<_CharT
, _Traits
, _Alloc
> __string_type
;
13251 typedef typename
__string_type::size_type __size_type
;
13252 __string_type
__str(__lhs
);
13253 __str
.append(__size_type(1), __rhs
);
13256 # 2135 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3
13257 template<typename _CharT
, typename _Traits
, typename _Alloc
>
13259 operator==(const basic_string
<_CharT
, _Traits
, _Alloc
>& __lhs
,
13260 const basic_string
<_CharT
, _Traits
, _Alloc
>& __rhs
)
13261 { return __lhs
.compare(__rhs
) == 0; }
13269 template<typename _CharT
, typename _Traits
, typename _Alloc
>
13271 operator==(const _CharT
* __lhs
,
13272 const basic_string
<_CharT
, _Traits
, _Alloc
>& __rhs
)
13273 { return __rhs
.compare(__lhs
) == 0; }
13281 template<typename _CharT
, typename _Traits
, typename _Alloc
>
13283 operator==(const basic_string
<_CharT
, _Traits
, _Alloc
>& __lhs
,
13284 const _CharT
* __rhs
)
13285 { return __lhs
.compare(__rhs
) == 0; }
13286 # 2172 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3
13287 template<typename _CharT
, typename _Traits
, typename _Alloc
>
13289 operator!=(const basic_string
<_CharT
, _Traits
, _Alloc
>& __lhs
,
13290 const basic_string
<_CharT
, _Traits
, _Alloc
>& __rhs
)
13291 { return __rhs
.compare(__lhs
) != 0; }
13299 template<typename _CharT
, typename _Traits
, typename _Alloc
>
13301 operator!=(const _CharT
* __lhs
,
13302 const basic_string
<_CharT
, _Traits
, _Alloc
>& __rhs
)
13303 { return __rhs
.compare(__lhs
) != 0; }
13311 template<typename _CharT
, typename _Traits
, typename _Alloc
>
13313 operator!=(const basic_string
<_CharT
, _Traits
, _Alloc
>& __lhs
,
13314 const _CharT
* __rhs
)
13315 { return __lhs
.compare(__rhs
) != 0; }
13316 # 2209 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3
13317 template<typename _CharT
, typename _Traits
, typename _Alloc
>
13319 operator<(const basic_string
<_CharT
, _Traits
, _Alloc
>& __lhs
,
13320 const basic_string
<_CharT
, _Traits
, _Alloc
>& __rhs
)
13321 { return __lhs
.compare(__rhs
) < 0; }
13329 template<typename _CharT
, typename _Traits
, typename _Alloc
>
13331 operator<(const basic_string
<_CharT
, _Traits
, _Alloc
>& __lhs
,
13332 const _CharT
* __rhs
)
13333 { return __lhs
.compare(__rhs
) < 0; }
13341 template<typename _CharT
, typename _Traits
, typename _Alloc
>
13343 operator<(const _CharT
* __lhs
,
13344 const basic_string
<_CharT
, _Traits
, _Alloc
>& __rhs
)
13345 { return __rhs
.compare(__lhs
) > 0; }
13346 # 2246 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3
13347 template<typename _CharT
, typename _Traits
, typename _Alloc
>
13349 operator>(const basic_string
<_CharT
, _Traits
, _Alloc
>& __lhs
,
13350 const basic_string
<_CharT
, _Traits
, _Alloc
>& __rhs
)
13351 { return __lhs
.compare(__rhs
) > 0; }
13359 template<typename _CharT
, typename _Traits
, typename _Alloc
>
13361 operator>(const basic_string
<_CharT
, _Traits
, _Alloc
>& __lhs
,
13362 const _CharT
* __rhs
)
13363 { return __lhs
.compare(__rhs
) > 0; }
13371 template<typename _CharT
, typename _Traits
, typename _Alloc
>
13373 operator>(const _CharT
* __lhs
,
13374 const basic_string
<_CharT
, _Traits
, _Alloc
>& __rhs
)
13375 { return __rhs
.compare(__lhs
) < 0; }
13376 # 2283 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3
13377 template<typename _CharT
, typename _Traits
, typename _Alloc
>
13379 operator<=(const basic_string
<_CharT
, _Traits
, _Alloc
>& __lhs
,
13380 const basic_string
<_CharT
, _Traits
, _Alloc
>& __rhs
)
13381 { return __lhs
.compare(__rhs
) <= 0; }
13389 template<typename _CharT
, typename _Traits
, typename _Alloc
>
13391 operator<=(const basic_string
<_CharT
, _Traits
, _Alloc
>& __lhs
,
13392 const _CharT
* __rhs
)
13393 { return __lhs
.compare(__rhs
) <= 0; }
13401 template<typename _CharT
, typename _Traits
, typename _Alloc
>
13403 operator<=(const _CharT
* __lhs
,
13404 const basic_string
<_CharT
, _Traits
, _Alloc
>& __rhs
)
13405 { return __rhs
.compare(__lhs
) >= 0; }
13406 # 2320 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3
13407 template<typename _CharT
, typename _Traits
, typename _Alloc
>
13409 operator>=(const basic_string
<_CharT
, _Traits
, _Alloc
>& __lhs
,
13410 const basic_string
<_CharT
, _Traits
, _Alloc
>& __rhs
)
13411 { return __lhs
.compare(__rhs
) >= 0; }
13419 template<typename _CharT
, typename _Traits
, typename _Alloc
>
13421 operator>=(const basic_string
<_CharT
, _Traits
, _Alloc
>& __lhs
,
13422 const _CharT
* __rhs
)
13423 { return __lhs
.compare(__rhs
) >= 0; }
13431 template<typename _CharT
, typename _Traits
, typename _Alloc
>
13433 operator>=(const _CharT
* __lhs
,
13434 const basic_string
<_CharT
, _Traits
, _Alloc
>& __rhs
)
13435 { return __rhs
.compare(__lhs
) <= 0; }
13436 # 2357 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3
13437 template<typename _CharT
, typename _Traits
, typename _Alloc
>
13439 swap(basic_string
<_CharT
, _Traits
, _Alloc
>& __lhs
,
13440 basic_string
<_CharT
, _Traits
, _Alloc
>& __rhs
)
13441 { __lhs
.swap(__rhs
); }
13442 # 2374 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3
13443 template<typename _CharT
, typename _Traits
, typename _Alloc
>
13444 basic_istream
<_CharT
, _Traits
>&
13445 operator>>(basic_istream
<_CharT
, _Traits
>& __is
,
13446 basic_string
<_CharT
, _Traits
, _Alloc
>& __str
);
13449 basic_istream
<char>&
13450 operator>>(basic_istream
<char>& __is
, basic_string
<char>& __str
);
13451 # 2392 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3
13452 template<typename _CharT
, typename _Traits
, typename _Alloc
>
13453 basic_ostream
<_CharT
, _Traits
>&
13454 operator<<(basic_ostream
<_CharT
, _Traits
>& __os
,
13455 const basic_string
<_CharT
, _Traits
, _Alloc
>& __str
);
13456 # 2410 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3
13457 template<typename _CharT
, typename _Traits
, typename _Alloc
>
13458 basic_istream
<_CharT
, _Traits
>&
13459 getline(basic_istream
<_CharT
, _Traits
>& __is
,
13460 basic_string
<_CharT
, _Traits
, _Alloc
>& __str
, _CharT __delim
);
13461 # 2427 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3
13462 template<typename _CharT
, typename _Traits
, typename _Alloc
>
13463 inline basic_istream
<_CharT
, _Traits
>&
13464 getline(basic_istream
<_CharT
, _Traits
>& __is
,
13465 basic_string
<_CharT
, _Traits
, _Alloc
>& __str
);
13468 basic_istream
<char>&
13469 getline(basic_istream
<char>& __in
, basic_string
<char>& __str
,
13474 basic_istream
<wchar_t>&
13475 getline(basic_istream
<wchar_t>& __in
, basic_string
<wchar_t>& __str
,
13479 # 54 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/string" 2 3
13482 # 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/algorithm" 1 3
13483 # 63 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/algorithm" 3
13485 # 64 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/algorithm" 3
13486 #pragma GCC visibility push(default)
13491 # 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 1 3
13492 # 65 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3
13493 # 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_heap.h" 1 3
13494 # 65 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_heap.h" 3
13500 template<typename _RandomAccessIterator
, typename _Distance
>
13502 __is_heap(_RandomAccessIterator __first
, _Distance __n
)
13504 _Distance __parent
= 0;
13505 for (_Distance __child
= 1; __child
< __n
; ++__child
)
13507 if (__first
[__parent
] < __first
[__child
])
13509 if ((__child
& 1) == 0)
13515 template<typename _RandomAccessIterator
, typename _Distance
,
13516 typename _StrictWeakOrdering
>
13518 __is_heap(_RandomAccessIterator __first
, _StrictWeakOrdering __comp
,
13521 _Distance __parent
= 0;
13522 for (_Distance __child
= 1; __child
< __n
; ++__child
)
13524 if (__comp(__first
[__parent
], __first
[__child
]))
13526 if ((__child
& 1) == 0)
13532 template<typename _RandomAccessIterator
>
13534 __is_heap(_RandomAccessIterator __first
, _RandomAccessIterator __last
)
13535 { return std::__is_heap(__first
, std::distance(__first
, __last
)); }
13537 template<typename _RandomAccessIterator
, typename _StrictWeakOrdering
>
13539 __is_heap(_RandomAccessIterator __first
, _RandomAccessIterator __last
,
13540 _StrictWeakOrdering __comp
)
13541 { return std::__is_heap(__first
, __comp
, std::distance(__first
, __last
)); }
13545 template<typename _RandomAccessIterator
, typename _Distance
, typename _Tp
>
13547 __push_heap(_RandomAccessIterator __first
,
13548 _Distance __holeIndex
, _Distance __topIndex
, _Tp __value
)
13550 _Distance __parent
= (__holeIndex
- 1) / 2;
13551 while (__holeIndex
> __topIndex
&& *(__first
+ __parent
) < __value
)
13553 *(__first
+ __holeIndex
) = *(__first
+ __parent
);
13554 __holeIndex
= __parent
;
13555 __parent
= (__holeIndex
- 1) / 2;
13557 *(__first
+ __holeIndex
) = __value
;
13559 # 139 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_heap.h" 3
13560 template<typename _RandomAccessIterator
>
13562 push_heap(_RandomAccessIterator __first
, _RandomAccessIterator __last
)
13564 typedef typename iterator_traits
<_RandomAccessIterator
>::value_type
13566 typedef typename iterator_traits
<_RandomAccessIterator
>::difference_type
13576 std::__push_heap(__first
, _DistanceType((__last
- __first
) - 1),
13577 _DistanceType(0), _ValueType(*(__last
- 1)));
13580 template<typename _RandomAccessIterator
, typename _Distance
, typename _Tp
,
13583 __push_heap(_RandomAccessIterator __first
, _Distance __holeIndex
,
13584 _Distance __topIndex
, _Tp __value
, _Compare __comp
)
13586 _Distance __parent
= (__holeIndex
- 1) / 2;
13587 while (__holeIndex
> __topIndex
13588 && __comp(*(__first
+ __parent
), __value
))
13590 *(__first
+ __holeIndex
) = *(__first
+ __parent
);
13591 __holeIndex
= __parent
;
13592 __parent
= (__holeIndex
- 1) / 2;
13594 *(__first
+ __holeIndex
) = __value
;
13596 # 187 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_heap.h" 3
13597 template<typename _RandomAccessIterator
, typename _Compare
>
13599 push_heap(_RandomAccessIterator __first
, _RandomAccessIterator __last
,
13602 typedef typename iterator_traits
<_RandomAccessIterator
>::value_type
13604 typedef typename iterator_traits
<_RandomAccessIterator
>::difference_type
13613 std::__push_heap(__first
, _DistanceType((__last
- __first
) - 1),
13614 _DistanceType(0), _ValueType(*(__last
- 1)), __comp
);
13617 template<typename _RandomAccessIterator
, typename _Distance
, typename _Tp
>
13619 __adjust_heap(_RandomAccessIterator __first
, _Distance __holeIndex
,
13620 _Distance __len
, _Tp __value
)
13622 const _Distance __topIndex
= __holeIndex
;
13623 _Distance __secondChild
= 2 * __holeIndex
+ 2;
13624 while (__secondChild
< __len
)
13626 if (*(__first
+ __secondChild
) < *(__first
+ (__secondChild
- 1)))
13628 *(__first
+ __holeIndex
) = *(__first
+ __secondChild
);
13629 __holeIndex
= __secondChild
;
13630 __secondChild
= 2 * (__secondChild
+ 1);
13632 if (__secondChild
== __len
)
13634 *(__first
+ __holeIndex
) = *(__first
+ (__secondChild
- 1));
13635 __holeIndex
= __secondChild
- 1;
13637 std::__push_heap(__first
, __holeIndex
, __topIndex
, __value
);
13640 template<typename _RandomAccessIterator
, typename _Tp
>
13642 __pop_heap(_RandomAccessIterator __first
, _RandomAccessIterator __last
,
13643 _RandomAccessIterator __result
, _Tp __value
)
13645 typedef typename iterator_traits
<_RandomAccessIterator
>::difference_type
13647 *__result
= *__first
;
13648 std::__adjust_heap(__first
, _Distance(0), _Distance(__last
- __first
),
13651 # 251 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_heap.h" 3
13652 template<typename _RandomAccessIterator
>
13654 pop_heap(_RandomAccessIterator __first
, _RandomAccessIterator __last
)
13656 typedef typename iterator_traits
<_RandomAccessIterator
>::value_type
13666 std::__pop_heap(__first
, __last
- 1, __last
- 1,
13667 _ValueType(*(__last
- 1)));
13670 template<typename _RandomAccessIterator
, typename _Distance
,
13671 typename _Tp
, typename _Compare
>
13673 __adjust_heap(_RandomAccessIterator __first
, _Distance __holeIndex
,
13674 _Distance __len
, _Tp __value
, _Compare __comp
)
13676 const _Distance __topIndex
= __holeIndex
;
13677 _Distance __secondChild
= 2 * __holeIndex
+ 2;
13678 while (__secondChild
< __len
)
13680 if (__comp(*(__first
+ __secondChild
),
13681 *(__first
+ (__secondChild
- 1))))
13683 *(__first
+ __holeIndex
) = *(__first
+ __secondChild
);
13684 __holeIndex
= __secondChild
;
13685 __secondChild
= 2 * (__secondChild
+ 1);
13687 if (__secondChild
== __len
)
13689 *(__first
+ __holeIndex
) = *(__first
+ (__secondChild
- 1));
13690 __holeIndex
= __secondChild
- 1;
13692 std::__push_heap(__first
, __holeIndex
, __topIndex
, __value
, __comp
);
13695 template<typename _RandomAccessIterator
, typename _Tp
, typename _Compare
>
13697 __pop_heap(_RandomAccessIterator __first
, _RandomAccessIterator __last
,
13698 _RandomAccessIterator __result
, _Tp __value
, _Compare __comp
)
13700 typedef typename iterator_traits
<_RandomAccessIterator
>::difference_type
13702 *__result
= *__first
;
13703 std::__adjust_heap(__first
, _Distance(0), _Distance(__last
- __first
),
13706 # 317 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_heap.h" 3
13707 template<typename _RandomAccessIterator
, typename _Compare
>
13709 pop_heap(_RandomAccessIterator __first
,
13710 _RandomAccessIterator __last
, _Compare __comp
)
13718 typedef typename iterator_traits
<_RandomAccessIterator
>::value_type
13720 std::__pop_heap(__first
, __last
- 1, __last
- 1,
13721 _ValueType(*(__last
- 1)), __comp
);
13723 # 342 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_heap.h" 3
13724 template<typename _RandomAccessIterator
>
13726 make_heap(_RandomAccessIterator __first
, _RandomAccessIterator __last
)
13728 typedef typename iterator_traits
<_RandomAccessIterator
>::value_type
13730 typedef typename iterator_traits
<_RandomAccessIterator
>::difference_type
13739 if (__last
- __first
< 2)
13742 const _DistanceType __len
= __last
- __first
;
13743 _DistanceType __parent
= (__len
- 2) / 2;
13746 std::__adjust_heap(__first
, __parent
, __len
,
13747 _ValueType(*(__first
+ __parent
)));
13753 # 382 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_heap.h" 3
13754 template<typename _RandomAccessIterator
, typename _Compare
>
13756 make_heap(_RandomAccessIterator __first
, _RandomAccessIterator __last
,
13759 typedef typename iterator_traits
<_RandomAccessIterator
>::value_type
13761 typedef typename iterator_traits
<_RandomAccessIterator
>::difference_type
13769 if (__last
- __first
< 2)
13772 const _DistanceType __len
= __last
- __first
;
13773 _DistanceType __parent
= (__len
- 2) / 2;
13776 std::__adjust_heap(__first
, __parent
, __len
,
13777 _ValueType(*(__first
+ __parent
)), __comp
);
13783 # 420 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_heap.h" 3
13784 template<typename _RandomAccessIterator
>
13786 sort_heap(_RandomAccessIterator __first
, _RandomAccessIterator __last
)
13796 while (__last
- __first
> 1)
13797 std::pop_heap(__first
, __last
--);
13799 # 446 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_heap.h" 3
13800 template<typename _RandomAccessIterator
, typename _Compare
>
13802 sort_heap(_RandomAccessIterator __first
, _RandomAccessIterator __last
,
13811 while (__last
- __first
> 1)
13812 std::pop_heap(__first
, __last
--, __comp
);
13816 # 66 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 2 3
13817 # 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_tempbuf.h" 1 3
13818 # 66 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_tempbuf.h" 3
13828 template<typename _ForwardIterator
, typename _Tp
>
13829 class _Temporary_buffer
13835 typedef _Tp value_type
;
13836 typedef value_type
* pointer
;
13837 typedef pointer iterator
;
13838 typedef ptrdiff_t size_type
;
13841 size_type _M_original_len
;
13846 _M_initialize_buffer(const _Tp
&, __true_type
) { }
13849 _M_initialize_buffer(const _Tp
& val
, __false_type
)
13850 { std::uninitialized_fill_n(_M_buffer
, _M_len
, val
); }
13860 requested_size() const
13861 { return _M_original_len
; }
13866 { return _M_buffer
; }
13871 { return _M_buffer
+ _M_len
; }
13877 _Temporary_buffer(_ForwardIterator __first
, _ForwardIterator __last
);
13879 ~_Temporary_buffer()
13881 std::_Destroy(_M_buffer
, _M_buffer
+ _M_len
);
13882 std::return_temporary_buffer(_M_buffer
);
13887 _Temporary_buffer(const _Temporary_buffer
&);
13890 operator=(const _Temporary_buffer
&);
13894 template<typename _ForwardIterator
, typename _Tp
>
13895 _Temporary_buffer
<_ForwardIterator
, _Tp
>::
13896 _Temporary_buffer(_ForwardIterator __first
, _ForwardIterator __last
)
13897 : _M_original_len(std::distance(__first
, __last
)),
13898 _M_len(0), _M_buffer(0)
13901 typedef typename
std::__is_scalar
<_Tp
>::__type _Trivial
;
13905 pair
<pointer
, size_type
> __p(get_temporary_buffer
<
13906 value_type
>(_M_original_len
));
13907 _M_buffer
= __p
.first
;
13908 _M_len
= __p
.second
;
13910 _M_initialize_buffer(*__first
, _Trivial());
13914 std::return_temporary_buffer(_M_buffer
);
13921 # 67 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 2 3
13928 # 85 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3
13929 template<typename _Tp
>
13931 __median(const _Tp
& __a
, const _Tp
& __b
, const _Tp
& __c
)
13938 else if (__a
< __c
)
13942 else if (__a
< __c
)
13944 else if (__b
< __c
)
13949 # 119 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3
13950 template<typename _Tp
, typename _Compare
>
13952 __median(const _Tp
& __a
, const _Tp
& __b
, const _Tp
& __c
, _Compare __comp
)
13956 if (__comp(__a
, __b
))
13957 if (__comp(__b
, __c
))
13959 else if (__comp(__a
, __c
))
13963 else if (__comp(__a
, __c
))
13965 else if (__comp(__b
, __c
))
13970 # 151 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3
13971 template<typename _InputIterator
, typename _Function
>
13973 for_each(_InputIterator __first
, _InputIterator __last
, _Function __f
)
13978 for ( ; __first
!= __last
; ++__first
)
13988 template<typename _InputIterator
, typename _Tp
>
13989 inline _InputIterator
13990 __find(_InputIterator __first
, _InputIterator __last
,
13991 const _Tp
& __val
, input_iterator_tag
)
13993 while (__first
!= __last
&& !(*__first
== __val
))
14003 template<typename _InputIterator
, typename _Predicate
>
14004 inline _InputIterator
14005 __find_if(_InputIterator __first
, _InputIterator __last
,
14006 _Predicate __pred
, input_iterator_tag
)
14008 while (__first
!= __last
&& !__pred(*__first
))
14018 template<typename _RandomAccessIterator
, typename _Tp
>
14019 _RandomAccessIterator
14020 __find(_RandomAccessIterator __first
, _RandomAccessIterator __last
,
14021 const _Tp
& __val
, random_access_iterator_tag
)
14023 typename iterator_traits
<_RandomAccessIterator
>::difference_type
14024 __trip_count
= (__last
- __first
) >> 2;
14026 for ( ; __trip_count
> 0 ; --__trip_count
)
14028 if (*__first
== __val
)
14032 if (*__first
== __val
)
14036 if (*__first
== __val
)
14040 if (*__first
== __val
)
14045 switch (__last
- __first
)
14048 if (*__first
== __val
)
14052 if (*__first
== __val
)
14056 if (*__first
== __val
)
14070 template<typename _RandomAccessIterator
, typename _Predicate
>
14071 _RandomAccessIterator
14072 __find_if(_RandomAccessIterator __first
, _RandomAccessIterator __last
,
14073 _Predicate __pred
, random_access_iterator_tag
)
14075 typename iterator_traits
<_RandomAccessIterator
>::difference_type
14076 __trip_count
= (__last
- __first
) >> 2;
14078 for ( ; __trip_count
> 0 ; --__trip_count
)
14080 if (__pred(*__first
))
14084 if (__pred(*__first
))
14088 if (__pred(*__first
))
14092 if (__pred(*__first
))
14097 switch (__last
- __first
)
14100 if (__pred(*__first
))
14104 if (__pred(*__first
))
14108 if (__pred(*__first
))
14116 # 305 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3
14117 template<typename _InputIterator
, typename _Tp
>
14118 inline _InputIterator
14119 find(_InputIterator __first
, _InputIterator __last
,
14127 return std::__find(__first
, __last
, __val
,
14128 std::__iterator_category(__first
));
14130 # 327 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3
14131 template<typename _InputIterator
, typename _Predicate
>
14132 inline _InputIterator
14133 find_if(_InputIterator __first
, _InputIterator __last
,
14141 return std::__find_if(__first
, __last
, __pred
,
14142 std::__iterator_category(__first
));
14144 # 349 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3
14145 template<typename _ForwardIterator
>
14147 adjacent_find(_ForwardIterator __first
, _ForwardIterator __last
)
14154 if (__first
== __last
)
14156 _ForwardIterator __next
= __first
;
14157 while(++__next
!= __last
)
14159 if (*__first
== *__next
)
14165 # 380 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3
14166 template<typename _ForwardIterator
, typename _BinaryPredicate
>
14168 adjacent_find(_ForwardIterator __first
, _ForwardIterator __last
,
14169 _BinaryPredicate __binary_pred
)
14177 if (__first
== __last
)
14179 _ForwardIterator __next
= __first
;
14180 while(++__next
!= __last
)
14182 if (__binary_pred(*__first
, *__next
))
14188 # 411 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3
14189 template<typename _InputIterator
, typename _Tp
>
14190 typename iterator_traits
<_InputIterator
>::difference_type
14191 count(_InputIterator __first
, _InputIterator __last
, const _Tp
& __value
)
14198 typename iterator_traits
<_InputIterator
>::difference_type __n
= 0;
14199 for ( ; __first
!= __last
; ++__first
)
14200 if (*__first
== __value
)
14204 # 435 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3
14205 template<typename _InputIterator
, typename _Predicate
>
14206 typename iterator_traits
<_InputIterator
>::difference_type
14207 count_if(_InputIterator __first
, _InputIterator __last
, _Predicate __pred
)
14214 typename iterator_traits
<_InputIterator
>::difference_type __n
= 0;
14215 for ( ; __first
!= __last
; ++__first
)
14216 if (__pred(*__first
))
14220 # 474 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3
14221 template<typename _ForwardIterator1
, typename _ForwardIterator2
>
14223 search(_ForwardIterator1 __first1
, _ForwardIterator1 __last1
,
14224 _ForwardIterator2 __first2
, _ForwardIterator2 __last2
)
14235 if (__first1
== __last1
|| __first2
== __last2
)
14239 _ForwardIterator2
__tmp(__first2
);
14241 if (__tmp
== __last2
)
14242 return std::find(__first1
, __last1
, *__first2
);
14245 _ForwardIterator2 __p1
, __p
;
14246 __p1
= __first2
; ++__p1
;
14247 _ForwardIterator1 __current
= __first1
;
14249 while (__first1
!= __last1
)
14251 __first1
= std::find(__first1
, __last1
, *__first2
);
14252 if (__first1
== __last1
)
14256 __current
= __first1
;
14257 if (++__current
== __last1
)
14260 while (*__current
== *__p
)
14262 if (++__p
== __last2
)
14264 if (++__current
== __last1
)
14271 # 545 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3
14272 template<typename _ForwardIterator1
, typename _ForwardIterator2
,
14273 typename _BinaryPredicate
>
14275 search(_ForwardIterator1 __first1
, _ForwardIterator1 __last1
,
14276 _ForwardIterator2 __first2
, _ForwardIterator2 __last2
,
14277 _BinaryPredicate __predicate
)
14289 if (__first1
== __last1
|| __first2
== __last2
)
14293 _ForwardIterator2
__tmp(__first2
);
14295 if (__tmp
== __last2
)
14297 while (__first1
!= __last1
&& !__predicate(*__first1
, *__first2
))
14303 _ForwardIterator2 __p1
, __p
;
14304 __p1
= __first2
; ++__p1
;
14305 _ForwardIterator1 __current
= __first1
;
14307 while (__first1
!= __last1
)
14309 while (__first1
!= __last1
)
14311 if (__predicate(*__first1
, *__first2
))
14315 while (__first1
!= __last1
&& !__predicate(*__first1
, *__first2
))
14317 if (__first1
== __last1
)
14321 __current
= __first1
;
14322 if (++__current
== __last1
)
14325 while (__predicate(*__current
, *__p
))
14327 if (++__p
== __last2
)
14329 if (++__current
== __last1
)
14336 # 617 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3
14337 template<typename _ForwardIterator
, typename _Integer
, typename _Tp
>
14339 __search_n(_ForwardIterator __first
, _ForwardIterator __last
,
14340 _Integer __count
, const _Tp
& __val
,
14341 std::forward_iterator_tag
)
14343 __first
= std::find(__first
, __last
, __val
);
14344 while (__first
!= __last
)
14346 typename iterator_traits
<_ForwardIterator
>::difference_type
14348 _ForwardIterator __i
= __first
;
14350 while (__i
!= __last
&& __n
!= 1 && *__i
== __val
)
14359 __first
= std::find(++__i
, __last
, __val
);
14363 # 651 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3
14364 template<typename _RandomAccessIter
, typename _Integer
, typename _Tp
>
14366 __search_n(_RandomAccessIter __first
, _RandomAccessIter __last
,
14367 _Integer __count
, const _Tp
& __val
,
14368 std::random_access_iterator_tag
)
14371 typedef typename
std::iterator_traits
<_RandomAccessIter
>::difference_type
14374 _DistanceType __tailSize
= __last
- __first
;
14375 const _DistanceType __pattSize
= __count
;
14377 if (__tailSize
< __pattSize
)
14380 const _DistanceType __skipOffset
= __pattSize
- 1;
14381 _RandomAccessIter __lookAhead
= __first
+ __skipOffset
;
14382 __tailSize
-= __pattSize
;
14388 while (!(*__lookAhead
== __val
))
14390 if (__tailSize
< __pattSize
)
14392 __lookAhead
+= __pattSize
;
14393 __tailSize
-= __pattSize
;
14395 _DistanceType __remainder
= __skipOffset
;
14396 for (_RandomAccessIter __backTrack
= __lookAhead
- 1;
14397 *__backTrack
== __val
; --__backTrack
)
14399 if (--__remainder
== 0)
14400 return (__lookAhead
- __skipOffset
);
14402 if (__remainder
> __tailSize
)
14404 __lookAhead
+= __remainder
;
14405 __tailSize
-= __remainder
;
14408 # 709 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3
14409 template<typename _ForwardIterator
, typename _Integer
, typename _Tp
>
14411 search_n(_ForwardIterator __first
, _ForwardIterator __last
,
14412 _Integer __count
, const _Tp
& __val
)
14423 return std::find(__first
, __last
, __val
);
14424 return std::__search_n(__first
, __last
, __count
, __val
,
14425 std::__iterator_category(__first
));
14427 # 736 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3
14428 template<typename _ForwardIterator
, typename _Integer
, typename _Tp
,
14429 typename _BinaryPredicate
>
14431 __search_n(_ForwardIterator __first
, _ForwardIterator __last
,
14432 _Integer __count
, const _Tp
& __val
,
14433 _BinaryPredicate __binary_pred
, std::forward_iterator_tag
)
14435 while (__first
!= __last
&& !__binary_pred(*__first
, __val
))
14438 while (__first
!= __last
)
14440 typename iterator_traits
<_ForwardIterator
>::difference_type
14442 _ForwardIterator __i
= __first
;
14444 while (__i
!= __last
&& __n
!= 1 && __binary_pred(*__i
, __val
))
14454 while (__first
!= __last
&& !__binary_pred(*__first
, __val
))
14459 # 776 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3
14460 template<typename _RandomAccessIter
, typename _Integer
, typename _Tp
,
14461 typename _BinaryPredicate
>
14463 __search_n(_RandomAccessIter __first
, _RandomAccessIter __last
,
14464 _Integer __count
, const _Tp
& __val
,
14465 _BinaryPredicate __binary_pred
, std::random_access_iterator_tag
)
14468 typedef typename
std::iterator_traits
<_RandomAccessIter
>::difference_type
14471 _DistanceType __tailSize
= __last
- __first
;
14472 const _DistanceType __pattSize
= __count
;
14474 if (__tailSize
< __pattSize
)
14477 const _DistanceType __skipOffset
= __pattSize
- 1;
14478 _RandomAccessIter __lookAhead
= __first
+ __skipOffset
;
14479 __tailSize
-= __pattSize
;
14485 while (!__binary_pred(*__lookAhead
, __val
))
14487 if (__tailSize
< __pattSize
)
14489 __lookAhead
+= __pattSize
;
14490 __tailSize
-= __pattSize
;
14492 _DistanceType __remainder
= __skipOffset
;
14493 for (_RandomAccessIter __backTrack
= __lookAhead
- 1;
14494 __binary_pred(*__backTrack
, __val
); --__backTrack
)
14496 if (--__remainder
== 0)
14497 return (__lookAhead
- __skipOffset
);
14499 if (__remainder
> __tailSize
)
14501 __lookAhead
+= __remainder
;
14502 __tailSize
-= __remainder
;
14505 # 837 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3
14506 template<typename _ForwardIterator
, typename _Integer
, typename _Tp
,
14507 typename _BinaryPredicate
>
14509 search_n(_ForwardIterator __first
, _ForwardIterator __last
,
14510 _Integer __count
, const _Tp
& __val
,
14511 _BinaryPredicate __binary_pred
)
14523 while (__first
!= __last
&& !__binary_pred(*__first
, __val
))
14527 return std::__search_n(__first
, __last
, __count
, __val
, __binary_pred
,
14528 std::__iterator_category(__first
));
14530 # 873 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3
14531 template<typename _ForwardIterator1
, typename _ForwardIterator2
>
14533 swap_ranges(_ForwardIterator1 __first1
, _ForwardIterator1 __last1
,
14534 _ForwardIterator2 __first2
)
14549 for ( ; __first1
!= __last1
; ++__first1
, ++__first2
)
14550 std::iter_swap(__first1
, __first2
);
14553 # 911 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3
14554 template<typename _InputIterator
, typename _OutputIterator
,
14555 typename _UnaryOperation
>
14557 transform(_InputIterator __first
, _InputIterator __last
,
14558 _OutputIterator __result
, _UnaryOperation __unary_op
)
14567 for ( ; __first
!= __last
; ++__first
, ++__result
)
14568 *__result
= __unary_op(*__first
);
14571 # 946 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3
14572 template<typename _InputIterator1
, typename _InputIterator2
,
14573 typename _OutputIterator
, typename _BinaryOperation
>
14575 transform(_InputIterator1 __first1
, _InputIterator1 __last1
,
14576 _InputIterator2 __first2
, _OutputIterator __result
,
14577 _BinaryOperation __binary_op
)
14587 for ( ; __first1
!= __last1
; ++__first1
, ++__first2
, ++__result
)
14588 *__result
= __binary_op(*__first1
, *__first2
);
14591 # 978 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3
14592 template<typename _ForwardIterator
, typename _Tp
>
14594 replace(_ForwardIterator __first
, _ForwardIterator __last
,
14595 const _Tp
& __old_value
, const _Tp
& __new_value
)
14606 for ( ; __first
!= __last
; ++__first
)
14607 if (*__first
== __old_value
)
14608 *__first
= __new_value
;
14610 # 1009 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3
14611 template<typename _ForwardIterator
, typename _Predicate
, typename _Tp
>
14613 replace_if(_ForwardIterator __first
, _ForwardIterator __last
,
14614 _Predicate __pred
, const _Tp
& __new_value
)
14625 for ( ; __first
!= __last
; ++__first
)
14626 if (__pred(*__first
))
14627 *__first
= __new_value
;
14629 # 1042 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3
14630 template<typename _InputIterator
, typename _OutputIterator
, typename _Tp
>
14632 replace_copy(_InputIterator __first
, _InputIterator __last
,
14633 _OutputIterator __result
,
14634 const _Tp
& __old_value
, const _Tp
& __new_value
)
14644 for ( ; __first
!= __last
; ++__first
, ++__result
)
14645 if (*__first
== __old_value
)
14646 *__result
= __new_value
;
14648 *__result
= *__first
;
14651 # 1078 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3
14652 template<typename _InputIterator
, typename _OutputIterator
,
14653 typename _Predicate
, typename _Tp
>
14655 replace_copy_if(_InputIterator __first
, _InputIterator __last
,
14656 _OutputIterator __result
,
14657 _Predicate __pred
, const _Tp
& __new_value
)
14667 for ( ; __first
!= __last
; ++__first
, ++__result
)
14668 if (__pred(*__first
))
14669 *__result
= __new_value
;
14671 *__result
= *__first
;
14674 # 1112 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3
14675 template<typename _ForwardIterator
, typename _Generator
>
14677 generate(_ForwardIterator __first
, _ForwardIterator __last
,
14686 for ( ; __first
!= __last
; ++__first
)
14687 *__first
= __gen();
14689 # 1138 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3
14690 template<typename _OutputIterator
, typename _Size
, typename _Generator
>
14692 generate_n(_OutputIterator __first
, _Size __n
, _Generator __gen
)
14699 for ( ; __n
> 0; --__n
, ++__first
)
14700 *__first
= __gen();
14703 # 1165 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3
14704 template<typename _InputIterator
, typename _OutputIterator
, typename _Tp
>
14706 remove_copy(_InputIterator __first
, _InputIterator __last
,
14707 _OutputIterator __result
, const _Tp
& __value
)
14717 for ( ; __first
!= __last
; ++__first
)
14718 if (!(*__first
== __value
))
14720 *__result
= *__first
;
14725 # 1201 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3
14726 template<typename _InputIterator
, typename _OutputIterator
,
14727 typename _Predicate
>
14729 remove_copy_if(_InputIterator __first
, _InputIterator __last
,
14730 _OutputIterator __result
, _Predicate __pred
)
14740 for ( ; __first
!= __last
; ++__first
)
14741 if (!__pred(*__first
))
14743 *__result
= *__first
;
14748 # 1240 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3
14749 template<typename _ForwardIterator
, typename _Tp
>
14751 remove(_ForwardIterator __first
, _ForwardIterator __last
,
14752 const _Tp
& __value
)
14761 __first
= std::find(__first
, __last
, __value
);
14762 _ForwardIterator __i
= __first
;
14763 return __first
== __last
? __first
14764 : std::remove_copy(++__i
, __last
,
14767 # 1275 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3
14768 template<typename _ForwardIterator
, typename _Predicate
>
14770 remove_if(_ForwardIterator __first
, _ForwardIterator __last
,
14780 __first
= std::find_if(__first
, __last
, __pred
);
14781 _ForwardIterator __i
= __first
;
14782 return __first
== __last
? __first
14783 : std::remove_copy_if(++__i
, __last
,
14786 # 1301 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3
14787 template<typename _InputIterator
, typename _OutputIterator
>
14789 __unique_copy(_InputIterator __first
, _InputIterator __last
,
14790 _OutputIterator __result
,
14791 output_iterator_tag
)
14794 typename iterator_traits
<_InputIterator
>::value_type __value
= *__first
;
14795 *__result
= __value
;
14796 while (++__first
!= __last
)
14797 if (!(__value
== *__first
))
14799 __value
= *__first
;
14800 *++__result
= __value
;
14804 # 1326 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3
14805 template<typename _InputIterator
, typename _ForwardIterator
>
14807 __unique_copy(_InputIterator __first
, _InputIterator __last
,
14808 _ForwardIterator __result
,
14809 forward_iterator_tag
)
14812 *__result
= *__first
;
14813 while (++__first
!= __last
)
14814 if (!(*__result
== *__first
))
14815 *++__result
= *__first
;
14818 # 1348 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3
14819 template<typename _InputIterator
, typename _OutputIterator
,
14820 typename _BinaryPredicate
>
14822 __unique_copy(_InputIterator __first
, _InputIterator __last
,
14823 _OutputIterator __result
,
14824 _BinaryPredicate __binary_pred
,
14825 output_iterator_tag
)
14832 typename iterator_traits
<_InputIterator
>::value_type __value
= *__first
;
14833 *__result
= __value
;
14834 while (++__first
!= __last
)
14835 if (!__binary_pred(__value
, *__first
))
14837 __value
= *__first
;
14838 *++__result
= __value
;
14842 # 1380 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3
14843 template<typename _InputIterator
, typename _ForwardIterator
,
14844 typename _BinaryPredicate
>
14846 __unique_copy(_InputIterator __first
, _InputIterator __last
,
14847 _ForwardIterator __result
,
14848 _BinaryPredicate __binary_pred
,
14849 forward_iterator_tag
)
14856 *__result
= *__first
;
14857 while (++__first
!= __last
)
14858 if (!__binary_pred(*__result
, *__first
)) *++__result
= *__first
;
14861 # 1412 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3
14862 template<typename _InputIterator
, typename _OutputIterator
>
14863 inline _OutputIterator
14864 unique_copy(_InputIterator __first
, _InputIterator __last
,
14865 _OutputIterator __result
)
14875 typedef typename iterator_traits
<_OutputIterator
>::iterator_category
14878 if (__first
== __last
) return __result
;
14879 return std::__unique_copy(__first
, __last
, __result
, _IterType());
14881 # 1447 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3
14882 template<typename _InputIterator
, typename _OutputIterator
,
14883 typename _BinaryPredicate
>
14884 inline _OutputIterator
14885 unique_copy(_InputIterator __first
, _InputIterator __last
,
14886 _OutputIterator __result
,
14887 _BinaryPredicate __binary_pred
)
14895 typedef typename iterator_traits
<_OutputIterator
>::iterator_category
14898 if (__first
== __last
) return __result
;
14899 return std::__unique_copy(__first
, __last
, __result
,
14900 __binary_pred
, _IterType());
14902 # 1481 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3
14903 template<typename _ForwardIterator
>
14905 unique(_ForwardIterator __first
, _ForwardIterator __last
)
14915 __first
= std::adjacent_find(__first
, __last
);
14916 if (__first
== __last
)
14920 _ForwardIterator __dest
= __first
;
14922 while (++__first
!= __last
)
14923 if (!(*__dest
== *__first
))
14924 *++__dest
= *__first
;
14927 # 1520 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3
14928 template<typename _ForwardIterator
, typename _BinaryPredicate
>
14930 unique(_ForwardIterator __first
, _ForwardIterator __last
,
14931 _BinaryPredicate __binary_pred
)
14942 __first
= std::adjacent_find(__first
, __last
, __binary_pred
);
14943 if (__first
== __last
)
14947 _ForwardIterator __dest
= __first
;
14949 while (++__first
!= __last
)
14950 if (!__binary_pred(*__dest
, *__first
))
14951 *++__dest
= *__first
;
14954 # 1554 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3
14955 template<typename _BidirectionalIterator
>
14957 __reverse(_BidirectionalIterator __first
, _BidirectionalIterator __last
,
14958 bidirectional_iterator_tag
)
14961 if (__first
== __last
|| __first
== --__last
)
14965 std::iter_swap(__first
, __last
);
14969 # 1576 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3
14970 template<typename _RandomAccessIterator
>
14972 __reverse(_RandomAccessIterator __first
, _RandomAccessIterator __last
,
14973 random_access_iterator_tag
)
14975 if (__first
== __last
)
14978 while (__first
< __last
)
14980 std::iter_swap(__first
, __last
);
14985 # 1603 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3
14986 template<typename _BidirectionalIterator
>
14988 reverse(_BidirectionalIterator __first
, _BidirectionalIterator __last
)
14994 std::__reverse(__first
, __last
, std::__iterator_category(__first
));
14996 # 1629 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3
14997 template<typename _BidirectionalIterator
, typename _OutputIterator
>
14999 reverse_copy(_BidirectionalIterator __first
, _BidirectionalIterator __last
,
15000 _OutputIterator __result
)
15009 while (__first
!= __last
)
15012 *__result
= *__last
;
15017 # 1657 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3
15018 template<typename _EuclideanRingElement
>
15019 _EuclideanRingElement
15020 __gcd(_EuclideanRingElement __m
, _EuclideanRingElement __n
)
15024 _EuclideanRingElement __t
= __m
% __n
;
15036 template<typename _ForwardIterator
>
15038 __rotate(_ForwardIterator __first
,
15039 _ForwardIterator __middle
,
15040 _ForwardIterator __last
,
15041 forward_iterator_tag
)
15043 if (__first
== __middle
|| __last
== __middle
)
15046 _ForwardIterator __first2
= __middle
;
15049 swap(*__first
, *__first2
);
15052 if (__first
== __middle
)
15053 __middle
= __first2
;
15055 while (__first2
!= __last
);
15057 __first2
= __middle
;
15059 while (__first2
!= __last
)
15061 swap(*__first
, *__first2
);
15064 if (__first
== __middle
)
15065 __middle
= __first2
;
15066 else if (__first2
== __last
)
15067 __first2
= __middle
;
15076 template<typename _BidirectionalIterator
>
15078 __rotate(_BidirectionalIterator __first
,
15079 _BidirectionalIterator __middle
,
15080 _BidirectionalIterator __last
,
15081 bidirectional_iterator_tag
)
15087 if (__first
== __middle
|| __last
== __middle
)
15090 std::__reverse(__first
, __middle
, bidirectional_iterator_tag());
15091 std::__reverse(__middle
, __last
, bidirectional_iterator_tag());
15093 while (__first
!= __middle
&& __middle
!= __last
)
15095 swap(*__first
, *--__last
);
15099 if (__first
== __middle
)
15100 std::__reverse(__middle
, __last
, bidirectional_iterator_tag());
15102 std::__reverse(__first
, __middle
, bidirectional_iterator_tag());
15110 template<typename _RandomAccessIterator
>
15112 __rotate(_RandomAccessIterator __first
,
15113 _RandomAccessIterator __middle
,
15114 _RandomAccessIterator __last
,
15115 random_access_iterator_tag
)
15121 if (__first
== __middle
|| __last
== __middle
)
15124 typedef typename iterator_traits
<_RandomAccessIterator
>::difference_type
15126 typedef typename iterator_traits
<_RandomAccessIterator
>::value_type
15129 const _Distance __n
= __last
- __first
;
15130 const _Distance __k
= __middle
- __first
;
15131 const _Distance __l
= __n
- __k
;
15135 std::swap_ranges(__first
, __middle
, __middle
);
15139 const _Distance __d
= __gcd(__n
, __k
);
15141 for (_Distance __i
= 0; __i
< __d
; __i
++)
15143 _ValueType __tmp
= *__first
;
15144 _RandomAccessIterator __p
= __first
;
15148 for (_Distance __j
= 0; __j
< __l
/ __d
; __j
++)
15150 if (__p
> __first
+ __l
)
15152 *__p
= *(__p
- __l
);
15156 *__p
= *(__p
+ __k
);
15162 for (_Distance __j
= 0; __j
< __k
/ __d
- 1; __j
++)
15164 if (__p
< __last
- __k
)
15166 *__p
= *(__p
+ __k
);
15169 *__p
= * (__p
- __l
);
15178 # 1836 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3
15179 template<typename _ForwardIterator
>
15181 rotate(_ForwardIterator __first
, _ForwardIterator __middle
,
15182 _ForwardIterator __last
)
15190 typedef typename iterator_traits
<_ForwardIterator
>::iterator_category
15192 std::__rotate(__first
, __middle
, __last
, _IterType());
15194 # 1869 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3
15195 template<typename _ForwardIterator
, typename _OutputIterator
>
15197 rotate_copy(_ForwardIterator __first
, _ForwardIterator __middle
,
15198 _ForwardIterator __last
, _OutputIterator __result
)
15207 return std::copy(__first
, __middle
,
15208 std::copy(__middle
, __last
, __result
));
15210 # 1895 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3
15211 template<typename _RandomAccessIterator
>
15213 random_shuffle(_RandomAccessIterator __first
, _RandomAccessIterator __last
)
15220 if (__first
!= __last
)
15221 for (_RandomAccessIterator __i
= __first
+ 1; __i
!= __last
; ++__i
)
15222 std::iter_swap(__i
, __first
+ (std::rand() % ((__i
- __first
) + 1)));
15224 # 1922 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3
15225 template<typename _RandomAccessIterator
, typename _RandomNumberGenerator
>
15227 random_shuffle(_RandomAccessIterator __first
, _RandomAccessIterator __last
,
15228 _RandomNumberGenerator
& __rand
)
15235 if (__first
== __last
)
15237 for (_RandomAccessIterator __i
= __first
+ 1; __i
!= __last
; ++__i
)
15238 std::iter_swap(__i
, __first
+ __rand((__i
- __first
) + 1));
15247 template<typename _ForwardIterator
, typename _Predicate
>
15249 __partition(_ForwardIterator __first
, _ForwardIterator __last
,
15251 forward_iterator_tag
)
15253 if (__first
== __last
)
15256 while (__pred(*__first
))
15257 if (++__first
== __last
)
15260 _ForwardIterator __next
= __first
;
15262 while (++__next
!= __last
)
15263 if (__pred(*__next
))
15265 swap(*__first
, *__next
);
15277 template<typename _BidirectionalIterator
, typename _Predicate
>
15278 _BidirectionalIterator
15279 __partition(_BidirectionalIterator __first
, _BidirectionalIterator __last
,
15281 bidirectional_iterator_tag
)
15286 if (__first
== __last
)
15288 else if (__pred(*__first
))
15294 if (__first
== __last
)
15296 else if (!__pred(*__last
))
15300 std::iter_swap(__first
, __last
);
15304 # 2016 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3
15305 template<typename _ForwardIterator
, typename _Predicate
>
15306 inline _ForwardIterator
15307 partition(_ForwardIterator __first
, _ForwardIterator __last
,
15317 return std::__partition(__first
, __last
, __pred
,
15318 std::__iterator_category(__first
));
15327 template<typename _ForwardIterator
, typename _Predicate
, typename _Distance
>
15329 __inplace_stable_partition(_ForwardIterator __first
,
15330 _ForwardIterator __last
,
15331 _Predicate __pred
, _Distance __len
)
15334 return __pred(*__first
) ? __last
: __first
;
15335 _ForwardIterator __middle
= __first
;
15336 std::advance(__middle
, __len
/ 2);
15337 _ForwardIterator __begin
= std::__inplace_stable_partition(__first
,
15341 _ForwardIterator __end
= std::__inplace_stable_partition(__middle
, __last
,
15345 std::rotate(__begin
, __middle
, __end
);
15346 std::advance(__begin
, std::distance(__middle
, __end
));
15355 template<typename _ForwardIterator
, typename _Pointer
, typename _Predicate
,
15356 typename _Distance
>
15358 __stable_partition_adaptive(_ForwardIterator __first
,
15359 _ForwardIterator __last
,
15360 _Predicate __pred
, _Distance __len
,
15362 _Distance __buffer_size
)
15364 if (__len
<= __buffer_size
)
15366 _ForwardIterator __result1
= __first
;
15367 _Pointer __result2
= __buffer
;
15368 for ( ; __first
!= __last
; ++__first
)
15369 if (__pred(*__first
))
15371 *__result1
= *__first
;
15376 *__result2
= *__first
;
15379 std::copy(__buffer
, __result2
, __result1
);
15384 _ForwardIterator __middle
= __first
;
15385 std::advance(__middle
, __len
/ 2);
15386 _ForwardIterator __begin
=
15387 std::__stable_partition_adaptive(__first
, __middle
, __pred
,
15388 __len
/ 2, __buffer
,
15390 _ForwardIterator __end
=
15391 std::__stable_partition_adaptive(__middle
, __last
, __pred
,
15393 __buffer
, __buffer_size
);
15394 std::rotate(__begin
, __middle
, __end
);
15395 std::advance(__begin
, std::distance(__middle
, __end
));
15399 # 2127 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3
15400 template<typename _ForwardIterator
, typename _Predicate
>
15402 stable_partition(_ForwardIterator __first
, _ForwardIterator __last
,
15412 if (__first
== __last
)
15416 typedef typename iterator_traits
<_ForwardIterator
>::value_type
15418 typedef typename iterator_traits
<_ForwardIterator
>::difference_type
15421 _Temporary_buffer
<_ForwardIterator
, _ValueType
> __buf(__first
,
15423 if (__buf
.size() > 0)
15425 std::__stable_partition_adaptive(__first
, __last
, __pred
,
15426 _DistanceType(__buf
.requested_size()),
15427 __buf
.begin(), __buf
.size());
15430 std::__inplace_stable_partition(__first
, __last
, __pred
,
15431 _DistanceType(__buf
.requested_size()));
15440 template<typename _RandomAccessIterator
, typename _Tp
>
15441 _RandomAccessIterator
15442 __unguarded_partition(_RandomAccessIterator __first
,
15443 _RandomAccessIterator __last
, _Tp __pivot
)
15447 while (*__first
< __pivot
)
15450 while (__pivot
< *__last
)
15452 if (!(__first
< __last
))
15454 std::iter_swap(__first
, __last
);
15464 template<typename _RandomAccessIterator
, typename _Tp
, typename _Compare
>
15465 _RandomAccessIterator
15466 __unguarded_partition(_RandomAccessIterator __first
,
15467 _RandomAccessIterator __last
,
15468 _Tp __pivot
, _Compare __comp
)
15472 while (__comp(*__first
, __pivot
))
15475 while (__comp(__pivot
, *__last
))
15477 if (!(__first
< __last
))
15479 std::iter_swap(__first
, __last
);
15490 enum { _S_threshold
= 16 };
15497 template<typename _RandomAccessIterator
, typename _Tp
>
15499 __unguarded_linear_insert(_RandomAccessIterator __last
, _Tp __val
)
15501 _RandomAccessIterator __next
= __last
;
15503 while (__val
< *__next
)
15517 template<typename _RandomAccessIterator
, typename _Tp
, typename _Compare
>
15519 __unguarded_linear_insert(_RandomAccessIterator __last
, _Tp __val
,
15522 _RandomAccessIterator __next
= __last
;
15524 while (__comp(__val
, *__next
))
15538 template<typename _RandomAccessIterator
>
15540 __insertion_sort(_RandomAccessIterator __first
,
15541 _RandomAccessIterator __last
)
15543 if (__first
== __last
)
15546 for (_RandomAccessIterator __i
= __first
+ 1; __i
!= __last
; ++__i
)
15548 typename iterator_traits
<_RandomAccessIterator
>::value_type
15550 if (__val
< *__first
)
15552 std::copy_backward(__first
, __i
, __i
+ 1);
15556 std::__unguarded_linear_insert(__i
, __val
);
15565 template<typename _RandomAccessIterator
, typename _Compare
>
15567 __insertion_sort(_RandomAccessIterator __first
,
15568 _RandomAccessIterator __last
, _Compare __comp
)
15570 if (__first
== __last
) return;
15572 for (_RandomAccessIterator __i
= __first
+ 1; __i
!= __last
; ++__i
)
15574 typename iterator_traits
<_RandomAccessIterator
>::value_type
15576 if (__comp(__val
, *__first
))
15578 std::copy_backward(__first
, __i
, __i
+ 1);
15582 std::__unguarded_linear_insert(__i
, __val
, __comp
);
15591 template<typename _RandomAccessIterator
>
15593 __unguarded_insertion_sort(_RandomAccessIterator __first
,
15594 _RandomAccessIterator __last
)
15596 typedef typename iterator_traits
<_RandomAccessIterator
>::value_type
15599 for (_RandomAccessIterator __i
= __first
; __i
!= __last
; ++__i
)
15600 std::__unguarded_linear_insert(__i
, _ValueType(*__i
));
15608 template<typename _RandomAccessIterator
, typename _Compare
>
15610 __unguarded_insertion_sort(_RandomAccessIterator __first
,
15611 _RandomAccessIterator __last
, _Compare __comp
)
15613 typedef typename iterator_traits
<_RandomAccessIterator
>::value_type
15616 for (_RandomAccessIterator __i
= __first
; __i
!= __last
; ++__i
)
15617 std::__unguarded_linear_insert(__i
, _ValueType(*__i
), __comp
);
15625 template<typename _RandomAccessIterator
>
15627 __final_insertion_sort(_RandomAccessIterator __first
,
15628 _RandomAccessIterator __last
)
15630 if (__last
- __first
> int(_S_threshold
))
15632 std::__insertion_sort(__first
, __first
+ int(_S_threshold
));
15633 std::__unguarded_insertion_sort(__first
+ int(_S_threshold
), __last
);
15636 std::__insertion_sort(__first
, __last
);
15644 template<typename _RandomAccessIterator
, typename _Compare
>
15646 __final_insertion_sort(_RandomAccessIterator __first
,
15647 _RandomAccessIterator __last
, _Compare __comp
)
15649 if (__last
- __first
> int(_S_threshold
))
15651 std::__insertion_sort(__first
, __first
+ int(_S_threshold
), __comp
);
15652 std::__unguarded_insertion_sort(__first
+ int(_S_threshold
), __last
,
15656 std::__insertion_sort(__first
, __last
, __comp
);
15664 template<typename _Size
>
15669 for (__k
= 0; __n
!= 1; __n
>>= 1)
15673 # 2416 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3
15674 template<typename _RandomAccessIterator
>
15676 partial_sort(_RandomAccessIterator __first
,
15677 _RandomAccessIterator __middle
,
15678 _RandomAccessIterator __last
)
15680 typedef typename iterator_traits
<_RandomAccessIterator
>::value_type
15690 std::make_heap(__first
, __middle
);
15691 for (_RandomAccessIterator __i
= __middle
; __i
< __last
; ++__i
)
15692 if (*__i
< *__first
)
15693 std::__pop_heap(__first
, __middle
, __i
, _ValueType(*__i
));
15694 std::sort_heap(__first
, __middle
);
15696 # 2457 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3
15697 template<typename _RandomAccessIterator
, typename _Compare
>
15699 partial_sort(_RandomAccessIterator __first
,
15700 _RandomAccessIterator __middle
,
15701 _RandomAccessIterator __last
,
15704 typedef typename iterator_traits
<_RandomAccessIterator
>::value_type
15715 std::make_heap(__first
, __middle
, __comp
);
15716 for (_RandomAccessIterator __i
= __middle
; __i
< __last
; ++__i
)
15717 if (__comp(*__i
, *__first
))
15718 std::__pop_heap(__first
, __middle
, __i
, _ValueType(*__i
), __comp
);
15719 std::sort_heap(__first
, __middle
, __comp
);
15721 # 2499 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3
15722 template<typename _InputIterator
, typename _RandomAccessIterator
>
15723 _RandomAccessIterator
15724 partial_sort_copy(_InputIterator __first
, _InputIterator __last
,
15725 _RandomAccessIterator __result_first
,
15726 _RandomAccessIterator __result_last
)
15728 typedef typename iterator_traits
<_InputIterator
>::value_type
15730 typedef typename iterator_traits
<_RandomAccessIterator
>::value_type
15732 typedef typename iterator_traits
<_RandomAccessIterator
>::difference_type
15744 if (__result_first
== __result_last
)
15745 return __result_last
;
15746 _RandomAccessIterator __result_real_last
= __result_first
;
15747 while(__first
!= __last
&& __result_real_last
!= __result_last
)
15749 *__result_real_last
= *__first
;
15750 ++__result_real_last
;
15753 std::make_heap(__result_first
, __result_real_last
);
15754 while (__first
!= __last
)
15756 if (*__first
< *__result_first
)
15757 std::__adjust_heap(__result_first
, _DistanceType(0),
15758 _DistanceType(__result_real_last
15760 _InputValueType(*__first
));
15763 std::sort_heap(__result_first
, __result_real_last
);
15764 return __result_real_last
;
15766 # 2563 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3
15767 template<typename _InputIterator
, typename _RandomAccessIterator
, typename _Compare
>
15768 _RandomAccessIterator
15769 partial_sort_copy(_InputIterator __first
, _InputIterator __last
,
15770 _RandomAccessIterator __result_first
,
15771 _RandomAccessIterator __result_last
,
15774 typedef typename iterator_traits
<_InputIterator
>::value_type
15776 typedef typename iterator_traits
<_RandomAccessIterator
>::value_type
15778 typedef typename iterator_traits
<_RandomAccessIterator
>::difference_type
15792 if (__result_first
== __result_last
)
15793 return __result_last
;
15794 _RandomAccessIterator __result_real_last
= __result_first
;
15795 while(__first
!= __last
&& __result_real_last
!= __result_last
)
15797 *__result_real_last
= *__first
;
15798 ++__result_real_last
;
15801 std::make_heap(__result_first
, __result_real_last
, __comp
);
15802 while (__first
!= __last
)
15804 if (__comp(*__first
, *__result_first
))
15805 std::__adjust_heap(__result_first
, _DistanceType(0),
15806 _DistanceType(__result_real_last
15808 _InputValueType(*__first
),
15812 std::sort_heap(__result_first
, __result_real_last
, __comp
);
15813 return __result_real_last
;
15821 template<typename _RandomAccessIterator
, typename _Size
>
15823 __introsort_loop(_RandomAccessIterator __first
,
15824 _RandomAccessIterator __last
,
15825 _Size __depth_limit
)
15827 typedef typename iterator_traits
<_RandomAccessIterator
>::value_type
15830 while (__last
- __first
> int(_S_threshold
))
15832 if (__depth_limit
== 0)
15834 std::partial_sort(__first
, __last
, __last
);
15838 _RandomAccessIterator __cut
=
15839 std::__unguarded_partition(__first
, __last
,
15840 _ValueType(std::__median(*__first
,
15847 std::__introsort_loop(__cut
, __last
, __depth_limit
);
15857 template<typename _RandomAccessIterator
, typename _Size
, typename _Compare
>
15859 __introsort_loop(_RandomAccessIterator __first
,
15860 _RandomAccessIterator __last
,
15861 _Size __depth_limit
, _Compare __comp
)
15863 typedef typename iterator_traits
<_RandomAccessIterator
>::value_type
15866 while (__last
- __first
> int(_S_threshold
))
15868 if (__depth_limit
== 0)
15870 std::partial_sort(__first
, __last
, __last
, __comp
);
15874 _RandomAccessIterator __cut
=
15875 std::__unguarded_partition(__first
, __last
,
15876 _ValueType(std::__median(*__first
,
15884 std::__introsort_loop(__cut
, __last
, __depth_limit
, __comp
);
15888 # 2698 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3
15889 template<typename _RandomAccessIterator
>
15891 sort(_RandomAccessIterator __first
, _RandomAccessIterator __last
)
15893 typedef typename iterator_traits
<_RandomAccessIterator
>::value_type
15902 if (__first
!= __last
)
15904 std::__introsort_loop(__first
, __last
, __lg(__last
- __first
) * 2);
15905 std::__final_insertion_sort(__first
, __last
);
15908 # 2732 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3
15909 template<typename _RandomAccessIterator
, typename _Compare
>
15911 sort(_RandomAccessIterator __first
, _RandomAccessIterator __last
,
15914 typedef typename iterator_traits
<_RandomAccessIterator
>::value_type
15924 if (__first
!= __last
)
15926 std::__introsort_loop(__first
, __last
, __lg(__last
- __first
) * 2,
15928 std::__final_insertion_sort(__first
, __last
, __comp
);
15931 # 2765 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3
15932 template<typename _ForwardIterator
, typename _Tp
>
15934 lower_bound(_ForwardIterator __first
, _ForwardIterator __last
,
15937 typedef typename iterator_traits
<_ForwardIterator
>::value_type
15939 typedef typename iterator_traits
<_ForwardIterator
>::difference_type
15952 _DistanceType __len
= std::distance(__first
, __last
);
15953 _DistanceType __half
;
15954 _ForwardIterator __middle
;
15958 __half
= __len
>> 1;
15959 __middle
= __first
;
15960 std::advance(__middle
, __half
);
15961 if (*__middle
< __val
)
15963 __first
= __middle
;
15965 __len
= __len
- __half
- 1;
15972 # 2820 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3
15973 template<typename _ForwardIterator
, typename _Tp
, typename _Compare
>
15975 lower_bound(_ForwardIterator __first
, _ForwardIterator __last
,
15976 const _Tp
& __val
, _Compare __comp
)
15978 typedef typename iterator_traits
<_ForwardIterator
>::value_type
15980 typedef typename iterator_traits
<_ForwardIterator
>::difference_type
15989 _DistanceType __len
= std::distance(__first
, __last
);
15990 _DistanceType __half
;
15991 _ForwardIterator __middle
;
15995 __half
= __len
>> 1;
15996 __middle
= __first
;
15997 std::advance(__middle
, __half
);
15998 if (__comp(*__middle
, __val
))
16000 __first
= __middle
;
16002 __len
= __len
- __half
- 1;
16009 # 2867 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3
16010 template<typename _ForwardIterator
, typename _Tp
>
16012 upper_bound(_ForwardIterator __first
, _ForwardIterator __last
,
16015 typedef typename iterator_traits
<_ForwardIterator
>::value_type
16017 typedef typename iterator_traits
<_ForwardIterator
>::difference_type
16027 _DistanceType __len
= std::distance(__first
, __last
);
16028 _DistanceType __half
;
16029 _ForwardIterator __middle
;
16033 __half
= __len
>> 1;
16034 __middle
= __first
;
16035 std::advance(__middle
, __half
);
16036 if (__val
< *__middle
)
16040 __first
= __middle
;
16042 __len
= __len
- __half
- 1;
16047 # 2919 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3
16048 template<typename _ForwardIterator
, typename _Tp
, typename _Compare
>
16050 upper_bound(_ForwardIterator __first
, _ForwardIterator __last
,
16051 const _Tp
& __val
, _Compare __comp
)
16053 typedef typename iterator_traits
<_ForwardIterator
>::value_type
16055 typedef typename iterator_traits
<_ForwardIterator
>::difference_type
16064 _DistanceType __len
= std::distance(__first
, __last
);
16065 _DistanceType __half
;
16066 _ForwardIterator __middle
;
16070 __half
= __len
>> 1;
16071 __middle
= __first
;
16072 std::advance(__middle
, __half
);
16073 if (__comp(__val
, *__middle
))
16077 __first
= __middle
;
16079 __len
= __len
- __half
- 1;
16090 template<typename _BidirectionalIterator
, typename _Distance
>
16092 __merge_without_buffer(_BidirectionalIterator __first
,
16093 _BidirectionalIterator __middle
,
16094 _BidirectionalIterator __last
,
16095 _Distance __len1
, _Distance __len2
)
16097 if (__len1
== 0 || __len2
== 0)
16099 if (__len1
+ __len2
== 2)
16101 if (*__middle
< *__first
)
16102 std::iter_swap(__first
, __middle
);
16105 _BidirectionalIterator __first_cut
= __first
;
16106 _BidirectionalIterator __second_cut
= __middle
;
16107 _Distance __len11
= 0;
16108 _Distance __len22
= 0;
16109 if (__len1
> __len2
)
16111 __len11
= __len1
/ 2;
16112 std::advance(__first_cut
, __len11
);
16113 __second_cut
= std::lower_bound(__middle
, __last
, *__first_cut
);
16114 __len22
= std::distance(__middle
, __second_cut
);
16118 __len22
= __len2
/ 2;
16119 std::advance(__second_cut
, __len22
);
16120 __first_cut
= std::upper_bound(__first
, __middle
, *__second_cut
);
16121 __len11
= std::distance(__first
, __first_cut
);
16123 std::rotate(__first_cut
, __middle
, __second_cut
);
16124 _BidirectionalIterator __new_middle
= __first_cut
;
16125 std::advance(__new_middle
, std::distance(__middle
, __second_cut
));
16126 std::__merge_without_buffer(__first
, __first_cut
, __new_middle
,
16128 std::__merge_without_buffer(__new_middle
, __second_cut
, __last
,
16129 __len1
- __len11
, __len2
- __len22
);
16137 template<typename _BidirectionalIterator
, typename _Distance
,
16140 __merge_without_buffer(_BidirectionalIterator __first
,
16141 _BidirectionalIterator __middle
,
16142 _BidirectionalIterator __last
,
16143 _Distance __len1
, _Distance __len2
,
16146 if (__len1
== 0 || __len2
== 0)
16148 if (__len1
+ __len2
== 2)
16150 if (__comp(*__middle
, *__first
))
16151 std::iter_swap(__first
, __middle
);
16154 _BidirectionalIterator __first_cut
= __first
;
16155 _BidirectionalIterator __second_cut
= __middle
;
16156 _Distance __len11
= 0;
16157 _Distance __len22
= 0;
16158 if (__len1
> __len2
)
16160 __len11
= __len1
/ 2;
16161 std::advance(__first_cut
, __len11
);
16162 __second_cut
= std::lower_bound(__middle
, __last
, *__first_cut
,
16164 __len22
= std::distance(__middle
, __second_cut
);
16168 __len22
= __len2
/ 2;
16169 std::advance(__second_cut
, __len22
);
16170 __first_cut
= std::upper_bound(__first
, __middle
, *__second_cut
,
16172 __len11
= std::distance(__first
, __first_cut
);
16174 std::rotate(__first_cut
, __middle
, __second_cut
);
16175 _BidirectionalIterator __new_middle
= __first_cut
;
16176 std::advance(__new_middle
, std::distance(__middle
, __second_cut
));
16177 std::__merge_without_buffer(__first
, __first_cut
, __new_middle
,
16178 __len11
, __len22
, __comp
);
16179 std::__merge_without_buffer(__new_middle
, __second_cut
, __last
,
16180 __len1
- __len11
, __len2
- __len22
, __comp
);
16188 template<typename _RandomAccessIterator
>
16190 __inplace_stable_sort(_RandomAccessIterator __first
,
16191 _RandomAccessIterator __last
)
16193 if (__last
- __first
< 15)
16195 std::__insertion_sort(__first
, __last
);
16198 _RandomAccessIterator __middle
= __first
+ (__last
- __first
) / 2;
16199 std::__inplace_stable_sort(__first
, __middle
);
16200 std::__inplace_stable_sort(__middle
, __last
);
16201 std::__merge_without_buffer(__first
, __middle
, __last
,
16202 __middle
- __first
,
16203 __last
- __middle
);
16211 template<typename _RandomAccessIterator
, typename _Compare
>
16213 __inplace_stable_sort(_RandomAccessIterator __first
,
16214 _RandomAccessIterator __last
, _Compare __comp
)
16216 if (__last
- __first
< 15)
16218 std::__insertion_sort(__first
, __last
, __comp
);
16221 _RandomAccessIterator __middle
= __first
+ (__last
- __first
) / 2;
16222 std::__inplace_stable_sort(__first
, __middle
, __comp
);
16223 std::__inplace_stable_sort(__middle
, __last
, __comp
);
16224 std::__merge_without_buffer(__first
, __middle
, __last
,
16225 __middle
- __first
,
16229 # 3117 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3
16230 template<typename _InputIterator1
, typename _InputIterator2
,
16231 typename _OutputIterator
>
16233 merge(_InputIterator1 __first1
, _InputIterator1 __last1
,
16234 _InputIterator2 __first2
, _InputIterator2 __last2
,
16235 _OutputIterator __result
)
16250 while (__first1
!= __last1
&& __first2
!= __last2
)
16252 if (*__first2
< *__first1
)
16254 *__result
= *__first2
;
16259 *__result
= *__first1
;
16264 return std::copy(__first2
, __last2
, std::copy(__first1
, __last1
,
16267 # 3175 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3
16268 template<typename _InputIterator1
, typename _InputIterator2
,
16269 typename _OutputIterator
, typename _Compare
>
16271 merge(_InputIterator1 __first1
, _InputIterator1 __last1
,
16272 _InputIterator2 __first2
, _InputIterator2 __last2
,
16273 _OutputIterator __result
, _Compare __comp
)
16289 while (__first1
!= __last1
&& __first2
!= __last2
)
16291 if (__comp(*__first2
, *__first1
))
16293 *__result
= *__first2
;
16298 *__result
= *__first1
;
16303 return std::copy(__first2
, __last2
, std::copy(__first1
, __last1
,
16307 template<typename _RandomAccessIterator1
, typename _RandomAccessIterator2
,
16308 typename _Distance
>
16310 __merge_sort_loop(_RandomAccessIterator1 __first
,
16311 _RandomAccessIterator1 __last
,
16312 _RandomAccessIterator2 __result
,
16313 _Distance __step_size
)
16315 const _Distance __two_step
= 2 * __step_size
;
16317 while (__last
- __first
>= __two_step
)
16319 __result
= std::merge(__first
, __first
+ __step_size
,
16320 __first
+ __step_size
, __first
+ __two_step
,
16322 __first
+= __two_step
;
16325 __step_size
= std::min(_Distance(__last
- __first
), __step_size
);
16326 std::merge(__first
, __first
+ __step_size
, __first
+ __step_size
, __last
,
16330 template<typename _RandomAccessIterator1
, typename _RandomAccessIterator2
,
16331 typename _Distance
, typename _Compare
>
16333 __merge_sort_loop(_RandomAccessIterator1 __first
,
16334 _RandomAccessIterator1 __last
,
16335 _RandomAccessIterator2 __result
, _Distance __step_size
,
16338 const _Distance __two_step
= 2 * __step_size
;
16340 while (__last
- __first
>= __two_step
)
16342 __result
= std::merge(__first
, __first
+ __step_size
,
16343 __first
+ __step_size
, __first
+ __two_step
,
16346 __first
+= __two_step
;
16348 __step_size
= std::min(_Distance(__last
- __first
), __step_size
);
16350 std::merge(__first
, __first
+ __step_size
,
16351 __first
+ __step_size
, __last
,
16356 enum { _S_chunk_size
= 7 };
16358 template<typename _RandomAccessIterator
, typename _Distance
>
16360 __chunk_insertion_sort(_RandomAccessIterator __first
,
16361 _RandomAccessIterator __last
,
16362 _Distance __chunk_size
)
16364 while (__last
- __first
>= __chunk_size
)
16366 std::__insertion_sort(__first
, __first
+ __chunk_size
);
16367 __first
+= __chunk_size
;
16369 std::__insertion_sort(__first
, __last
);
16372 template<typename _RandomAccessIterator
, typename _Distance
, typename _Compare
>
16374 __chunk_insertion_sort(_RandomAccessIterator __first
,
16375 _RandomAccessIterator __last
,
16376 _Distance __chunk_size
, _Compare __comp
)
16378 while (__last
- __first
>= __chunk_size
)
16380 std::__insertion_sort(__first
, __first
+ __chunk_size
, __comp
);
16381 __first
+= __chunk_size
;
16383 std::__insertion_sort(__first
, __last
, __comp
);
16386 template<typename _RandomAccessIterator
, typename _Pointer
>
16388 __merge_sort_with_buffer(_RandomAccessIterator __first
,
16389 _RandomAccessIterator __last
,
16392 typedef typename iterator_traits
<_RandomAccessIterator
>::difference_type
16395 const _Distance __len
= __last
- __first
;
16396 const _Pointer __buffer_last
= __buffer
+ __len
;
16398 _Distance __step_size
= _S_chunk_size
;
16399 std::__chunk_insertion_sort(__first
, __last
, __step_size
);
16401 while (__step_size
< __len
)
16403 std::__merge_sort_loop(__first
, __last
, __buffer
, __step_size
);
16405 std::__merge_sort_loop(__buffer
, __buffer_last
, __first
, __step_size
);
16410 template<typename _RandomAccessIterator
, typename _Pointer
, typename _Compare
>
16412 __merge_sort_with_buffer(_RandomAccessIterator __first
,
16413 _RandomAccessIterator __last
,
16414 _Pointer __buffer
, _Compare __comp
)
16416 typedef typename iterator_traits
<_RandomAccessIterator
>::difference_type
16419 const _Distance __len
= __last
- __first
;
16420 const _Pointer __buffer_last
= __buffer
+ __len
;
16422 _Distance __step_size
= _S_chunk_size
;
16423 std::__chunk_insertion_sort(__first
, __last
, __step_size
, __comp
);
16425 while (__step_size
< __len
)
16427 std::__merge_sort_loop(__first
, __last
, __buffer
,
16428 __step_size
, __comp
);
16430 std::__merge_sort_loop(__buffer
, __buffer_last
, __first
,
16431 __step_size
, __comp
);
16441 template<typename _BidirectionalIterator1
, typename _BidirectionalIterator2
,
16442 typename _BidirectionalIterator3
>
16443 _BidirectionalIterator3
16444 __merge_backward(_BidirectionalIterator1 __first1
,
16445 _BidirectionalIterator1 __last1
,
16446 _BidirectionalIterator2 __first2
,
16447 _BidirectionalIterator2 __last2
,
16448 _BidirectionalIterator3 __result
)
16450 if (__first1
== __last1
)
16451 return std::copy_backward(__first2
, __last2
, __result
);
16452 if (__first2
== __last2
)
16453 return std::copy_backward(__first1
, __last1
, __result
);
16458 if (*__last2
< *__last1
)
16460 *--__result
= *__last1
;
16461 if (__first1
== __last1
)
16462 return std::copy_backward(__first2
, ++__last2
, __result
);
16467 *--__result
= *__last2
;
16468 if (__first2
== __last2
)
16469 return std::copy_backward(__first1
, ++__last1
, __result
);
16480 template<typename _BidirectionalIterator1
, typename _BidirectionalIterator2
,
16481 typename _BidirectionalIterator3
, typename _Compare
>
16482 _BidirectionalIterator3
16483 __merge_backward(_BidirectionalIterator1 __first1
,
16484 _BidirectionalIterator1 __last1
,
16485 _BidirectionalIterator2 __first2
,
16486 _BidirectionalIterator2 __last2
,
16487 _BidirectionalIterator3 __result
,
16490 if (__first1
== __last1
)
16491 return std::copy_backward(__first2
, __last2
, __result
);
16492 if (__first2
== __last2
)
16493 return std::copy_backward(__first1
, __last1
, __result
);
16498 if (__comp(*__last2
, *__last1
))
16500 *--__result
= *__last1
;
16501 if (__first1
== __last1
)
16502 return std::copy_backward(__first2
, ++__last2
, __result
);
16507 *--__result
= *__last2
;
16508 if (__first2
== __last2
)
16509 return std::copy_backward(__first1
, ++__last1
, __result
);
16520 template<typename _BidirectionalIterator1
, typename _BidirectionalIterator2
,
16521 typename _Distance
>
16522 _BidirectionalIterator1
16523 __rotate_adaptive(_BidirectionalIterator1 __first
,
16524 _BidirectionalIterator1 __middle
,
16525 _BidirectionalIterator1 __last
,
16526 _Distance __len1
, _Distance __len2
,
16527 _BidirectionalIterator2 __buffer
,
16528 _Distance __buffer_size
)
16530 _BidirectionalIterator2 __buffer_end
;
16531 if (__len1
> __len2
&& __len2
<= __buffer_size
)
16533 __buffer_end
= std::copy(__middle
, __last
, __buffer
);
16534 std::copy_backward(__first
, __middle
, __last
);
16535 return std::copy(__buffer
, __buffer_end
, __first
);
16537 else if (__len1
<= __buffer_size
)
16539 __buffer_end
= std::copy(__first
, __middle
, __buffer
);
16540 std::copy(__middle
, __last
, __first
);
16541 return std::copy_backward(__buffer
, __buffer_end
, __last
);
16545 std::rotate(__first
, __middle
, __last
);
16546 std::advance(__first
, std::distance(__middle
, __last
));
16556 template<typename _BidirectionalIterator
, typename _Distance
,
16559 __merge_adaptive(_BidirectionalIterator __first
,
16560 _BidirectionalIterator __middle
,
16561 _BidirectionalIterator __last
,
16562 _Distance __len1
, _Distance __len2
,
16563 _Pointer __buffer
, _Distance __buffer_size
)
16565 if (__len1
<= __len2
&& __len1
<= __buffer_size
)
16567 _Pointer __buffer_end
= std::copy(__first
, __middle
, __buffer
);
16568 std::merge(__buffer
, __buffer_end
, __middle
, __last
, __first
);
16570 else if (__len2
<= __buffer_size
)
16572 _Pointer __buffer_end
= std::copy(__middle
, __last
, __buffer
);
16573 std::__merge_backward(__first
, __middle
, __buffer
,
16574 __buffer_end
, __last
);
16578 _BidirectionalIterator __first_cut
= __first
;
16579 _BidirectionalIterator __second_cut
= __middle
;
16580 _Distance __len11
= 0;
16581 _Distance __len22
= 0;
16582 if (__len1
> __len2
)
16584 __len11
= __len1
/ 2;
16585 std::advance(__first_cut
, __len11
);
16586 __second_cut
= std::lower_bound(__middle
, __last
,
16588 __len22
= std::distance(__middle
, __second_cut
);
16592 __len22
= __len2
/ 2;
16593 std::advance(__second_cut
, __len22
);
16594 __first_cut
= std::upper_bound(__first
, __middle
,
16596 __len11
= std::distance(__first
, __first_cut
);
16598 _BidirectionalIterator __new_middle
=
16599 std::__rotate_adaptive(__first_cut
, __middle
, __second_cut
,
16600 __len1
- __len11
, __len22
, __buffer
,
16602 std::__merge_adaptive(__first
, __first_cut
, __new_middle
, __len11
,
16603 __len22
, __buffer
, __buffer_size
);
16604 std::__merge_adaptive(__new_middle
, __second_cut
, __last
,
16606 __len2
- __len22
, __buffer
, __buffer_size
);
16615 template<typename _BidirectionalIterator
, typename _Distance
, typename _Pointer
,
16618 __merge_adaptive(_BidirectionalIterator __first
,
16619 _BidirectionalIterator __middle
,
16620 _BidirectionalIterator __last
,
16621 _Distance __len1
, _Distance __len2
,
16622 _Pointer __buffer
, _Distance __buffer_size
,
16625 if (__len1
<= __len2
&& __len1
<= __buffer_size
)
16627 _Pointer __buffer_end
= std::copy(__first
, __middle
, __buffer
);
16628 std::merge(__buffer
, __buffer_end
, __middle
, __last
, __first
, __comp
);
16630 else if (__len2
<= __buffer_size
)
16632 _Pointer __buffer_end
= std::copy(__middle
, __last
, __buffer
);
16633 std::__merge_backward(__first
, __middle
, __buffer
, __buffer_end
,
16638 _BidirectionalIterator __first_cut
= __first
;
16639 _BidirectionalIterator __second_cut
= __middle
;
16640 _Distance __len11
= 0;
16641 _Distance __len22
= 0;
16642 if (__len1
> __len2
)
16644 __len11
= __len1
/ 2;
16645 std::advance(__first_cut
, __len11
);
16646 __second_cut
= std::lower_bound(__middle
, __last
, *__first_cut
,
16648 __len22
= std::distance(__middle
, __second_cut
);
16652 __len22
= __len2
/ 2;
16653 std::advance(__second_cut
, __len22
);
16654 __first_cut
= std::upper_bound(__first
, __middle
, *__second_cut
,
16656 __len11
= std::distance(__first
, __first_cut
);
16658 _BidirectionalIterator __new_middle
=
16659 std::__rotate_adaptive(__first_cut
, __middle
, __second_cut
,
16660 __len1
- __len11
, __len22
, __buffer
,
16662 std::__merge_adaptive(__first
, __first_cut
, __new_middle
, __len11
,
16663 __len22
, __buffer
, __buffer_size
, __comp
);
16664 std::__merge_adaptive(__new_middle
, __second_cut
, __last
,
16666 __len2
- __len22
, __buffer
,
16667 __buffer_size
, __comp
);
16670 # 3595 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3
16671 template<typename _BidirectionalIterator
>
16673 inplace_merge(_BidirectionalIterator __first
,
16674 _BidirectionalIterator __middle
,
16675 _BidirectionalIterator __last
)
16677 typedef typename iterator_traits
<_BidirectionalIterator
>::value_type
16679 typedef typename iterator_traits
<_BidirectionalIterator
>::difference_type
16689 if (__first
== __middle
|| __middle
== __last
)
16692 _DistanceType __len1
= std::distance(__first
, __middle
);
16693 _DistanceType __len2
= std::distance(__middle
, __last
);
16695 _Temporary_buffer
<_BidirectionalIterator
, _ValueType
> __buf(__first
,
16697 if (__buf
.begin() == 0)
16698 std::__merge_without_buffer(__first
, __middle
, __last
, __len1
, __len2
);
16700 std::__merge_adaptive(__first
, __middle
, __last
, __len1
, __len2
,
16701 __buf
.begin(), _DistanceType(__buf
.size()));
16703 # 3649 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3
16704 template<typename _BidirectionalIterator
, typename _Compare
>
16706 inplace_merge(_BidirectionalIterator __first
,
16707 _BidirectionalIterator __middle
,
16708 _BidirectionalIterator __last
,
16711 typedef typename iterator_traits
<_BidirectionalIterator
>::value_type
16713 typedef typename iterator_traits
<_BidirectionalIterator
>::difference_type
16724 if (__first
== __middle
|| __middle
== __last
)
16727 const _DistanceType __len1
= std::distance(__first
, __middle
);
16728 const _DistanceType __len2
= std::distance(__middle
, __last
);
16730 _Temporary_buffer
<_BidirectionalIterator
, _ValueType
> __buf(__first
,
16732 if (__buf
.begin() == 0)
16733 std::__merge_without_buffer(__first
, __middle
, __last
, __len1
,
16736 std::__merge_adaptive(__first
, __middle
, __last
, __len1
, __len2
,
16737 __buf
.begin(), _DistanceType(__buf
.size()),
16741 template<typename _RandomAccessIterator
, typename _Pointer
,
16742 typename _Distance
>
16744 __stable_sort_adaptive(_RandomAccessIterator __first
,
16745 _RandomAccessIterator __last
,
16746 _Pointer __buffer
, _Distance __buffer_size
)
16748 const _Distance __len
= (__last
- __first
+ 1) / 2;
16749 const _RandomAccessIterator __middle
= __first
+ __len
;
16750 if (__len
> __buffer_size
)
16752 std::__stable_sort_adaptive(__first
, __middle
,
16753 __buffer
, __buffer_size
);
16754 std::__stable_sort_adaptive(__middle
, __last
,
16755 __buffer
, __buffer_size
);
16759 std::__merge_sort_with_buffer(__first
, __middle
, __buffer
);
16760 std::__merge_sort_with_buffer(__middle
, __last
, __buffer
);
16762 std::__merge_adaptive(__first
, __middle
, __last
,
16763 _Distance(__middle
- __first
),
16764 _Distance(__last
- __middle
),
16765 __buffer
, __buffer_size
);
16768 template<typename _RandomAccessIterator
, typename _Pointer
,
16769 typename _Distance
, typename _Compare
>
16771 __stable_sort_adaptive(_RandomAccessIterator __first
,
16772 _RandomAccessIterator __last
,
16773 _Pointer __buffer
, _Distance __buffer_size
,
16776 const _Distance __len
= (__last
- __first
+ 1) / 2;
16777 const _RandomAccessIterator __middle
= __first
+ __len
;
16778 if (__len
> __buffer_size
)
16780 std::__stable_sort_adaptive(__first
, __middle
, __buffer
,
16781 __buffer_size
, __comp
);
16782 std::__stable_sort_adaptive(__middle
, __last
, __buffer
,
16783 __buffer_size
, __comp
);
16787 std::__merge_sort_with_buffer(__first
, __middle
, __buffer
, __comp
);
16788 std::__merge_sort_with_buffer(__middle
, __last
, __buffer
, __comp
);
16790 std::__merge_adaptive(__first
, __middle
, __last
,
16791 _Distance(__middle
- __first
),
16792 _Distance(__last
- __middle
),
16793 __buffer
, __buffer_size
,
16796 # 3758 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3
16797 template<typename _RandomAccessIterator
>
16799 stable_sort(_RandomAccessIterator __first
, _RandomAccessIterator __last
)
16801 typedef typename iterator_traits
<_RandomAccessIterator
>::value_type
16803 typedef typename iterator_traits
<_RandomAccessIterator
>::difference_type
16812 _Temporary_buffer
<_RandomAccessIterator
, _ValueType
>
16813 buf(__first
, __last
);
16814 if (buf
.begin() == 0)
16815 std::__inplace_stable_sort(__first
, __last
);
16817 std::__stable_sort_adaptive(__first
, __last
, buf
.begin(),
16818 _DistanceType(buf
.size()));
16820 # 3799 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3
16821 template<typename _RandomAccessIterator
, typename _Compare
>
16823 stable_sort(_RandomAccessIterator __first
, _RandomAccessIterator __last
,
16826 typedef typename iterator_traits
<_RandomAccessIterator
>::value_type
16828 typedef typename iterator_traits
<_RandomAccessIterator
>::difference_type
16839 _Temporary_buffer
<_RandomAccessIterator
, _ValueType
> buf(__first
, __last
);
16840 if (buf
.begin() == 0)
16841 std::__inplace_stable_sort(__first
, __last
, __comp
);
16843 std::__stable_sort_adaptive(__first
, __last
, buf
.begin(),
16844 _DistanceType(buf
.size()), __comp
);
16846 # 3840 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3
16847 template<typename _RandomAccessIterator
>
16849 nth_element(_RandomAccessIterator __first
,
16850 _RandomAccessIterator __nth
,
16851 _RandomAccessIterator __last
)
16853 typedef typename iterator_traits
<_RandomAccessIterator
>::value_type
16863 while (__last
- __first
> 3)
16865 _RandomAccessIterator __cut
=
16866 std::__unguarded_partition(__first
, __last
,
16867 _ValueType(std::__median(*__first
,
16874 if (__cut
<= __nth
)
16879 std::__insertion_sort(__first
, __last
);
16881 # 3891 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3
16882 template<typename _RandomAccessIterator
, typename _Compare
>
16884 nth_element(_RandomAccessIterator __first
,
16885 _RandomAccessIterator __nth
,
16886 _RandomAccessIterator __last
,
16889 typedef typename iterator_traits
<_RandomAccessIterator
>::value_type
16900 while (__last
- __first
> 3)
16902 _RandomAccessIterator __cut
=
16903 std::__unguarded_partition(__first
, __last
,
16904 _ValueType(std::__median(*__first
,
16911 if (__cut
<= __nth
)
16916 std::__insertion_sort(__first
, __last
, __comp
);
16918 # 3944 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3
16919 template<typename _ForwardIterator
, typename _Tp
>
16920 pair
<_ForwardIterator
, _ForwardIterator
>
16921 equal_range(_ForwardIterator __first
, _ForwardIterator __last
,
16924 typedef typename iterator_traits
<_ForwardIterator
>::value_type
16926 typedef typename iterator_traits
<_ForwardIterator
>::difference_type
16936 _DistanceType __len
= std::distance(__first
, __last
);
16937 _DistanceType __half
;
16938 _ForwardIterator __middle
, __left
, __right
;
16942 __half
= __len
>> 1;
16943 __middle
= __first
;
16944 std::advance(__middle
, __half
);
16945 if (*__middle
< __val
)
16947 __first
= __middle
;
16949 __len
= __len
- __half
- 1;
16951 else if (__val
< *__middle
)
16955 __left
= std::lower_bound(__first
, __middle
, __val
);
16956 std::advance(__first
, __len
);
16957 __right
= std::upper_bound(++__middle
, __first
, __val
);
16958 return pair
<_ForwardIterator
, _ForwardIterator
>(__left
, __right
);
16961 return pair
<_ForwardIterator
, _ForwardIterator
>(__first
, __first
);
16963 # 4006 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3
16964 template<typename _ForwardIterator
, typename _Tp
, typename _Compare
>
16965 pair
<_ForwardIterator
, _ForwardIterator
>
16966 equal_range(_ForwardIterator __first
, _ForwardIterator __last
,
16970 typedef typename iterator_traits
<_ForwardIterator
>::value_type
16972 typedef typename iterator_traits
<_ForwardIterator
>::difference_type
16983 _DistanceType __len
= std::distance(__first
, __last
);
16984 _DistanceType __half
;
16985 _ForwardIterator __middle
, __left
, __right
;
16989 __half
= __len
>> 1;
16990 __middle
= __first
;
16991 std::advance(__middle
, __half
);
16992 if (__comp(*__middle
, __val
))
16994 __first
= __middle
;
16996 __len
= __len
- __half
- 1;
16998 else if (__comp(__val
, *__middle
))
17002 __left
= std::lower_bound(__first
, __middle
, __val
, __comp
);
17003 std::advance(__first
, __len
);
17004 __right
= std::upper_bound(++__middle
, __first
, __val
, __comp
);
17005 return pair
<_ForwardIterator
, _ForwardIterator
>(__left
, __right
);
17008 return pair
<_ForwardIterator
, _ForwardIterator
>(__first
, __first
);
17010 # 4064 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3
17011 template<typename _ForwardIterator
, typename _Tp
>
17013 binary_search(_ForwardIterator __first
, _ForwardIterator __last
,
17024 _ForwardIterator __i
= std::lower_bound(__first
, __last
, __val
);
17025 return __i
!= __last
&& !(__val
< *__i
);
17027 # 4096 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3
17028 template<typename _ForwardIterator
, typename _Tp
, typename _Compare
>
17030 binary_search(_ForwardIterator __first
, _ForwardIterator __last
,
17031 const _Tp
& __val
, _Compare __comp
)
17041 _ForwardIterator __i
= std::lower_bound(__first
, __last
, __val
, __comp
);
17042 return __i
!= __last
&& !__comp(__val
, *__i
);
17044 # 4134 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3
17045 template<typename _InputIterator1
, typename _InputIterator2
>
17047 includes(_InputIterator1 __first1
, _InputIterator1 __last1
,
17048 _InputIterator2 __first2
, _InputIterator2 __last2
)
17061 while (__first1
!= __last1
&& __first2
!= __last2
)
17062 if (*__first2
< *__first1
)
17064 else if(*__first1
< *__first2
)
17067 ++__first1
, ++__first2
;
17069 return __first2
== __last2
;
17071 # 4180 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3
17072 template<typename _InputIterator1
, typename _InputIterator2
,
17075 includes(_InputIterator1 __first1
, _InputIterator1 __last1
,
17076 _InputIterator2 __first2
, _InputIterator2 __last2
, _Compare __comp
)
17090 while (__first1
!= __last1
&& __first2
!= __last2
)
17091 if (__comp(*__first2
, *__first1
))
17093 else if(__comp(*__first1
, *__first2
))
17096 ++__first1
, ++__first2
;
17098 return __first2
== __last2
;
17100 # 4226 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3
17101 template<typename _InputIterator1
, typename _InputIterator2
,
17102 typename _OutputIterator
>
17104 set_union(_InputIterator1 __first1
, _InputIterator1 __last1
,
17105 _InputIterator2 __first2
, _InputIterator2 __last2
,
17106 _OutputIterator __result
)
17121 while (__first1
!= __last1
&& __first2
!= __last2
)
17123 if (*__first1
< *__first2
)
17125 *__result
= *__first1
;
17128 else if (*__first2
< *__first1
)
17130 *__result
= *__first2
;
17135 *__result
= *__first1
;
17141 return std::copy(__first2
, __last2
, std::copy(__first1
, __last1
,
17144 # 4288 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3
17145 template<typename _InputIterator1
, typename _InputIterator2
,
17146 typename _OutputIterator
, typename _Compare
>
17148 set_union(_InputIterator1 __first1
, _InputIterator1 __last1
,
17149 _InputIterator2 __first2
, _InputIterator2 __last2
,
17150 _OutputIterator __result
, _Compare __comp
)
17166 while (__first1
!= __last1
&& __first2
!= __last2
)
17168 if (__comp(*__first1
, *__first2
))
17170 *__result
= *__first1
;
17173 else if (__comp(*__first2
, *__first1
))
17175 *__result
= *__first2
;
17180 *__result
= *__first1
;
17186 return std::copy(__first2
, __last2
, std::copy(__first1
, __last1
,
17189 # 4349 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3
17190 template<typename _InputIterator1
, typename _InputIterator2
,
17191 typename _OutputIterator
>
17193 set_intersection(_InputIterator1 __first1
, _InputIterator1 __last1
,
17194 _InputIterator2 __first2
, _InputIterator2 __last2
,
17195 _OutputIterator __result
)
17210 while (__first1
!= __last1
&& __first2
!= __last2
)
17211 if (*__first1
< *__first2
)
17213 else if (*__first2
< *__first1
)
17217 *__result
= *__first1
;
17224 # 4403 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3
17225 template<typename _InputIterator1
, typename _InputIterator2
,
17226 typename _OutputIterator
, typename _Compare
>
17228 set_intersection(_InputIterator1 __first1
, _InputIterator1 __last1
,
17229 _InputIterator2 __first2
, _InputIterator2 __last2
,
17230 _OutputIterator __result
, _Compare __comp
)
17246 while (__first1
!= __last1
&& __first2
!= __last2
)
17247 if (__comp(*__first1
, *__first2
))
17249 else if (__comp(*__first2
, *__first1
))
17253 *__result
= *__first1
;
17260 # 4457 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3
17261 template<typename _InputIterator1
, typename _InputIterator2
,
17262 typename _OutputIterator
>
17264 set_difference(_InputIterator1 __first1
, _InputIterator1 __last1
,
17265 _InputIterator2 __first2
, _InputIterator2 __last2
,
17266 _OutputIterator __result
)
17281 while (__first1
!= __last1
&& __first2
!= __last2
)
17282 if (*__first1
< *__first2
)
17284 *__result
= *__first1
;
17288 else if (*__first2
< *__first1
)
17295 return std::copy(__first1
, __last1
, __result
);
17297 # 4515 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3
17298 template<typename _InputIterator1
, typename _InputIterator2
,
17299 typename _OutputIterator
, typename _Compare
>
17301 set_difference(_InputIterator1 __first1
, _InputIterator1 __last1
,
17302 _InputIterator2 __first2
, _InputIterator2 __last2
,
17303 _OutputIterator __result
, _Compare __comp
)
17319 while (__first1
!= __last1
&& __first2
!= __last2
)
17320 if (__comp(*__first1
, *__first2
))
17322 *__result
= *__first1
;
17326 else if (__comp(*__first2
, *__first1
))
17333 return std::copy(__first1
, __last1
, __result
);
17335 # 4569 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3
17336 template<typename _InputIterator1
, typename _InputIterator2
,
17337 typename _OutputIterator
>
17339 set_symmetric_difference(_InputIterator1 __first1
, _InputIterator1 __last1
,
17340 _InputIterator2 __first2
, _InputIterator2 __last2
,
17341 _OutputIterator __result
)
17356 while (__first1
!= __last1
&& __first2
!= __last2
)
17357 if (*__first1
< *__first2
)
17359 *__result
= *__first1
;
17363 else if (*__first2
< *__first1
)
17365 *__result
= *__first2
;
17374 return std::copy(__first2
, __last2
, std::copy(__first1
,
17375 __last1
, __result
));
17377 # 4630 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3
17378 template<typename _InputIterator1
, typename _InputIterator2
,
17379 typename _OutputIterator
, typename _Compare
>
17381 set_symmetric_difference(_InputIterator1 __first1
, _InputIterator1 __last1
,
17382 _InputIterator2 __first2
, _InputIterator2 __last2
,
17383 _OutputIterator __result
,
17400 while (__first1
!= __last1
&& __first2
!= __last2
)
17401 if (__comp(*__first1
, *__first2
))
17403 *__result
= *__first1
;
17407 else if (__comp(*__first2
, *__first1
))
17409 *__result
= *__first2
;
17418 return std::copy(__first2
, __last2
, std::copy(__first1
,
17419 __last1
, __result
));
17421 # 4683 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3
17422 template<typename _ForwardIterator
>
17424 max_element(_ForwardIterator __first
, _ForwardIterator __last
)
17432 if (__first
== __last
)
17434 _ForwardIterator __result
= __first
;
17435 while (++__first
!= __last
)
17436 if (*__result
< *__first
)
17437 __result
= __first
;
17440 # 4710 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3
17441 template<typename _ForwardIterator
, typename _Compare
>
17443 max_element(_ForwardIterator __first
, _ForwardIterator __last
,
17453 if (__first
== __last
) return __first
;
17454 _ForwardIterator __result
= __first
;
17455 while (++__first
!= __last
)
17456 if (__comp(*__result
, *__first
)) __result
= __first
;
17466 template<typename _ForwardIterator
>
17468 min_element(_ForwardIterator __first
, _ForwardIterator __last
)
17476 if (__first
== __last
)
17478 _ForwardIterator __result
= __first
;
17479 while (++__first
!= __last
)
17480 if (*__first
< *__result
)
17481 __result
= __first
;
17484 # 4762 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3
17485 template<typename _ForwardIterator
, typename _Compare
>
17487 min_element(_ForwardIterator __first
, _ForwardIterator __last
,
17497 if (__first
== __last
)
17499 _ForwardIterator __result
= __first
;
17500 while (++__first
!= __last
)
17501 if (__comp(*__first
, *__result
))
17502 __result
= __first
;
17505 # 4797 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3
17506 template<typename _BidirectionalIterator
>
17508 next_permutation(_BidirectionalIterator __first
,
17509 _BidirectionalIterator __last
)
17518 if (__first
== __last
)
17520 _BidirectionalIterator __i
= __first
;
17529 _BidirectionalIterator __ii
= __i
;
17533 _BidirectionalIterator __j
= __last
;
17534 while (!(*__i
< *--__j
))
17536 std::iter_swap(__i
, __j
);
17537 std::reverse(__ii
, __last
);
17540 if (__i
== __first
)
17542 std::reverse(__first
, __last
);
17547 # 4853 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3
17548 template<typename _BidirectionalIterator
, typename _Compare
>
17550 next_permutation(_BidirectionalIterator __first
,
17551 _BidirectionalIterator __last
, _Compare __comp
)
17561 if (__first
== __last
)
17563 _BidirectionalIterator __i
= __first
;
17572 _BidirectionalIterator __ii
= __i
;
17574 if (__comp(*__i
, *__ii
))
17576 _BidirectionalIterator __j
= __last
;
17577 while (!__comp(*__i
, *--__j
))
17579 std::iter_swap(__i
, __j
);
17580 std::reverse(__ii
, __last
);
17583 if (__i
== __first
)
17585 std::reverse(__first
, __last
);
17590 # 4908 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3
17591 template<typename _BidirectionalIterator
>
17593 prev_permutation(_BidirectionalIterator __first
,
17594 _BidirectionalIterator __last
)
17603 if (__first
== __last
)
17605 _BidirectionalIterator __i
= __first
;
17614 _BidirectionalIterator __ii
= __i
;
17618 _BidirectionalIterator __j
= __last
;
17619 while (!(*--__j
< *__i
))
17621 std::iter_swap(__i
, __j
);
17622 std::reverse(__ii
, __last
);
17625 if (__i
== __first
)
17627 std::reverse(__first
, __last
);
17632 # 4964 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3
17633 template<typename _BidirectionalIterator
, typename _Compare
>
17635 prev_permutation(_BidirectionalIterator __first
,
17636 _BidirectionalIterator __last
, _Compare __comp
)
17646 if (__first
== __last
)
17648 _BidirectionalIterator __i
= __first
;
17657 _BidirectionalIterator __ii
= __i
;
17659 if (__comp(*__ii
, *__i
))
17661 _BidirectionalIterator __j
= __last
;
17662 while (!__comp(*--__j
, *__i
))
17664 std::iter_swap(__i
, __j
);
17665 std::reverse(__ii
, __last
);
17668 if (__i
== __first
)
17670 std::reverse(__first
, __last
);
17675 # 5023 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3
17676 template<typename _InputIterator
, typename _ForwardIterator
>
17678 find_first_of(_InputIterator __first1
, _InputIterator __last1
,
17679 _ForwardIterator __first2
, _ForwardIterator __last2
)
17690 for ( ; __first1
!= __last1
; ++__first1
)
17691 for (_ForwardIterator __iter
= __first2
; __iter
!= __last2
; ++__iter
)
17692 if (*__first1
== *__iter
)
17696 # 5059 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3
17697 template<typename _InputIterator
, typename _ForwardIterator
,
17698 typename _BinaryPredicate
>
17700 find_first_of(_InputIterator __first1
, _InputIterator __last1
,
17701 _ForwardIterator __first2
, _ForwardIterator __last2
,
17702 _BinaryPredicate __comp
)
17713 for ( ; __first1
!= __last1
; ++__first1
)
17714 for (_ForwardIterator __iter
= __first2
; __iter
!= __last2
; ++__iter
)
17715 if (__comp(*__first1
, *__iter
))
17719 # 5089 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3
17720 template<typename _ForwardIterator1
, typename _ForwardIterator2
>
17722 __find_end(_ForwardIterator1 __first1
, _ForwardIterator1 __last1
,
17723 _ForwardIterator2 __first2
, _ForwardIterator2 __last2
,
17724 forward_iterator_tag
, forward_iterator_tag
)
17726 if (__first2
== __last2
)
17730 _ForwardIterator1 __result
= __last1
;
17733 _ForwardIterator1 __new_result
17734 = std::search(__first1
, __last1
, __first2
, __last2
);
17735 if (__new_result
== __last1
)
17739 __result
= __new_result
;
17740 __first1
= __new_result
;
17747 template<typename _ForwardIterator1
, typename _ForwardIterator2
,
17748 typename _BinaryPredicate
>
17750 __find_end(_ForwardIterator1 __first1
, _ForwardIterator1 __last1
,
17751 _ForwardIterator2 __first2
, _ForwardIterator2 __last2
,
17752 forward_iterator_tag
, forward_iterator_tag
,
17753 _BinaryPredicate __comp
)
17755 if (__first2
== __last2
)
17759 _ForwardIterator1 __result
= __last1
;
17762 _ForwardIterator1 __new_result
17763 = std::search(__first1
, __last1
, __first2
, __last2
, __comp
);
17764 if (__new_result
== __last1
)
17768 __result
= __new_result
;
17769 __first1
= __new_result
;
17777 template<typename _BidirectionalIterator1
, typename _BidirectionalIterator2
>
17778 _BidirectionalIterator1
17779 __find_end(_BidirectionalIterator1 __first1
,
17780 _BidirectionalIterator1 __last1
,
17781 _BidirectionalIterator2 __first2
,
17782 _BidirectionalIterator2 __last2
,
17783 bidirectional_iterator_tag
, bidirectional_iterator_tag
)
17791 typedef reverse_iterator
<_BidirectionalIterator1
> _RevIterator1
;
17792 typedef reverse_iterator
<_BidirectionalIterator2
> _RevIterator2
;
17794 _RevIterator1
__rlast1(__first1
);
17795 _RevIterator2
__rlast2(__first2
);
17796 _RevIterator1 __rresult
= std::search(_RevIterator1(__last1
), __rlast1
,
17797 _RevIterator2(__last2
), __rlast2
);
17799 if (__rresult
== __rlast1
)
17803 _BidirectionalIterator1 __result
= __rresult
.base();
17804 std::advance(__result
, -std::distance(__first2
, __last2
));
17809 template<typename _BidirectionalIterator1
, typename _BidirectionalIterator2
,
17810 typename _BinaryPredicate
>
17811 _BidirectionalIterator1
17812 __find_end(_BidirectionalIterator1 __first1
,
17813 _BidirectionalIterator1 __last1
,
17814 _BidirectionalIterator2 __first2
,
17815 _BidirectionalIterator2 __last2
,
17816 bidirectional_iterator_tag
, bidirectional_iterator_tag
,
17817 _BinaryPredicate __comp
)
17825 typedef reverse_iterator
<_BidirectionalIterator1
> _RevIterator1
;
17826 typedef reverse_iterator
<_BidirectionalIterator2
> _RevIterator2
;
17828 _RevIterator1
__rlast1(__first1
);
17829 _RevIterator2
__rlast2(__first2
);
17830 _RevIterator1 __rresult
= std::search(_RevIterator1(__last1
), __rlast1
,
17831 _RevIterator2(__last2
), __rlast2
,
17834 if (__rresult
== __rlast1
)
17838 _BidirectionalIterator1 __result
= __rresult
.base();
17839 std::advance(__result
, -std::distance(__first2
, __last2
));
17843 # 5239 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3
17844 template<typename _ForwardIterator1
, typename _ForwardIterator2
>
17845 inline _ForwardIterator1
17846 find_end(_ForwardIterator1 __first1
, _ForwardIterator1 __last1
,
17847 _ForwardIterator2 __first2
, _ForwardIterator2 __last2
)
17858 return std::__find_end(__first1
, __last1
, __first2
, __last2
,
17859 std::__iterator_category(__first1
),
17860 std::__iterator_category(__first2
));
17862 # 5284 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3
17863 template<typename _ForwardIterator1
, typename _ForwardIterator2
,
17864 typename _BinaryPredicate
>
17865 inline _ForwardIterator1
17866 find_end(_ForwardIterator1 __first1
, _ForwardIterator1 __last1
,
17867 _ForwardIterator2 __first2
, _ForwardIterator2 __last2
,
17868 _BinaryPredicate __comp
)
17879 return std::__find_end(__first1
, __last1
, __first2
, __last2
,
17880 std::__iterator_category(__first1
),
17881 std::__iterator_category(__first2
),
17886 # 70 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/algorithm" 2 3
17888 #pragma GCC visibility pop
17889 # 57 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/string" 2 3
17890 # 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.tcc" 1 3
17891 # 46 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.tcc" 3
17893 # 47 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.tcc" 3
17897 template<typename _Type
>
17899 __is_null_pointer(_Type
* __ptr
)
17900 { return __ptr
== 0; }
17902 template<typename _Type
>
17904 __is_null_pointer(_Type
)
17907 template<typename _CharT
, typename _Traits
, typename _Alloc
>
17908 const typename basic_string
<_CharT
, _Traits
, _Alloc
>::size_type
17909 basic_string
<_CharT
, _Traits
, _Alloc
>::
17910 _Rep::_S_max_size
= (((npos
- sizeof(_Rep_base
))/sizeof(_CharT
)) - 1) / 4;
17912 template<typename _CharT
, typename _Traits
, typename _Alloc
>
17914 basic_string
<_CharT
, _Traits
, _Alloc
>::
17915 _Rep::_S_terminal
= _CharT();
17917 template<typename _CharT
, typename _Traits
, typename _Alloc
>
17918 const typename basic_string
<_CharT
, _Traits
, _Alloc
>::size_type
17919 basic_string
<_CharT
, _Traits
, _Alloc
>::npos
;
17923 template<typename _CharT
, typename _Traits
, typename _Alloc
>
17924 typename basic_string
<_CharT
, _Traits
, _Alloc
>::size_type
17925 basic_string
<_CharT
, _Traits
, _Alloc
>::_Rep::_S_empty_rep_storage
[
17926 (sizeof(_Rep_base
) + sizeof(_CharT
) + sizeof(size_type
) - 1) /
17927 sizeof(size_type
)];
17933 template<typename _CharT
, typename _Traits
, typename _Alloc
>
17934 template<typename _InIterator
>
17936 basic_string
<_CharT
, _Traits
, _Alloc
>::
17937 _S_construct(_InIterator __beg
, _InIterator __end
, const _Alloc
& __a
,
17938 input_iterator_tag
)
17941 if (__beg
== __end
&& __a
== _Alloc())
17942 return _S_empty_rep()._M_refdata();
17946 size_type __len
= 0;
17947 while (__beg
!= __end
&& __len
< sizeof(__buf
) / sizeof(_CharT
))
17949 __buf
[__len
++] = *__beg
;
17952 _Rep
* __r
= _Rep::_S_create(__len
, size_type(0), __a
);
17953 _M_copy(__r
->_M_refdata(), __buf
, __len
);
17956 while (__beg
!= __end
)
17958 if (__len
== __r
->_M_capacity
)
17961 _Rep
* __another
= _Rep::_S_create(__len
+ 1, __len
, __a
);
17962 _M_copy(__another
->_M_refdata(), __r
->_M_refdata(), __len
);
17963 __r
->_M_destroy(__a
);
17966 __r
->_M_refdata()[__len
++] = *__beg
;
17972 __r
->_M_destroy(__a
);
17975 __r
->_M_set_length_and_sharable(__len
);
17976 return __r
->_M_refdata();
17979 template<typename _CharT
, typename _Traits
, typename _Alloc
>
17980 template <typename _InIterator
>
17982 basic_string
<_CharT
, _Traits
, _Alloc
>::
17983 _S_construct(_InIterator __beg
, _InIterator __end
, const _Alloc
& __a
,
17984 forward_iterator_tag
)
17987 if (__beg
== __end
&& __a
== _Alloc())
17988 return _S_empty_rep()._M_refdata();
17991 if (__builtin_expect(__is_null_pointer(__beg
) && __beg
!= __end
, 0))
17992 __throw_logic_error(("basic_string::_S_construct NULL not valid"));
17994 const size_type __dnew
= static_cast<size_type
>(std::distance(__beg
,
17997 _Rep
* __r
= _Rep::_S_create(__dnew
, size_type(0), __a
);
17999 { _S_copy_chars(__r
->_M_refdata(), __beg
, __end
); }
18002 __r
->_M_destroy(__a
);
18005 __r
->_M_set_length_and_sharable(__dnew
);
18006 return __r
->_M_refdata();
18009 template<typename _CharT
, typename _Traits
, typename _Alloc
>
18011 basic_string
<_CharT
, _Traits
, _Alloc
>::
18012 _S_construct(size_type __n
, _CharT __c
, const _Alloc
& __a
)
18015 if (__n
== 0 && __a
== _Alloc())
18016 return _S_empty_rep()._M_refdata();
18019 _Rep
* __r
= _Rep::_S_create(__n
, size_type(0), __a
);
18021 _M_assign(__r
->_M_refdata(), __n
, __c
);
18023 __r
->_M_set_length_and_sharable(__n
);
18024 return __r
->_M_refdata();
18027 template<typename _CharT
, typename _Traits
, typename _Alloc
>
18028 basic_string
<_CharT
, _Traits
, _Alloc
>::
18029 basic_string(const basic_string
& __str
)
18030 : _M_dataplus(__str
._M_rep()->_M_grab(_Alloc(__str
.get_allocator()),
18031 __str
.get_allocator()),
18032 __str
.get_allocator())
18035 template<typename _CharT
, typename _Traits
, typename _Alloc
>
18036 basic_string
<_CharT
, _Traits
, _Alloc
>::
18037 basic_string(const _Alloc
& __a
)
18038 : _M_dataplus(_S_construct(size_type(), _CharT(), __a
), __a
)
18041 template<typename _CharT
, typename _Traits
, typename _Alloc
>
18042 basic_string
<_CharT
, _Traits
, _Alloc
>::
18043 basic_string(const basic_string
& __str
, size_type __pos
, size_type __n
)
18044 : _M_dataplus(_S_construct(__str
._M_data()
18045 + __str
._M_check(__pos
,
18046 "basic_string::basic_string"),
18047 __str
._M_data() + __str
._M_limit(__pos
, __n
)
18048 + __pos
, _Alloc()), _Alloc())
18051 template<typename _CharT
, typename _Traits
, typename _Alloc
>
18052 basic_string
<_CharT
, _Traits
, _Alloc
>::
18053 basic_string(const basic_string
& __str
, size_type __pos
,
18054 size_type __n
, const _Alloc
& __a
)
18055 : _M_dataplus(_S_construct(__str
._M_data()
18056 + __str
._M_check(__pos
,
18057 "basic_string::basic_string"),
18058 __str
._M_data() + __str
._M_limit(__pos
, __n
)
18059 + __pos
, __a
), __a
)
18063 template<typename _CharT
, typename _Traits
, typename _Alloc
>
18064 basic_string
<_CharT
, _Traits
, _Alloc
>::
18065 basic_string(const _CharT
* __s
, size_type __n
, const _Alloc
& __a
)
18066 : _M_dataplus(_S_construct(__s
, __s
+ __n
, __a
), __a
)
18070 template<typename _CharT
, typename _Traits
, typename _Alloc
>
18071 basic_string
<_CharT
, _Traits
, _Alloc
>::
18072 basic_string(const _CharT
* __s
, const _Alloc
& __a
)
18073 : _M_dataplus(_S_construct(__s
, __s
? __s
+ traits_type::length(__s
) :
18074 __s
+ npos
, __a
), __a
)
18077 template<typename _CharT
, typename _Traits
, typename _Alloc
>
18078 basic_string
<_CharT
, _Traits
, _Alloc
>::
18079 basic_string(size_type __n
, _CharT __c
, const _Alloc
& __a
)
18080 : _M_dataplus(_S_construct(__n
, __c
, __a
), __a
)
18084 template<typename _CharT
, typename _Traits
, typename _Alloc
>
18085 template<typename _InputIterator
>
18086 basic_string
<_CharT
, _Traits
, _Alloc
>::
18087 basic_string(_InputIterator __beg
, _InputIterator __end
, const _Alloc
& __a
)
18088 : _M_dataplus(_S_construct(__beg
, __end
, __a
), __a
)
18091 template<typename _CharT
, typename _Traits
, typename _Alloc
>
18092 basic_string
<_CharT
, _Traits
, _Alloc
>&
18093 basic_string
<_CharT
, _Traits
, _Alloc
>::
18094 assign(const basic_string
& __str
)
18096 if (_M_rep() != __str
._M_rep())
18099 const allocator_type __a
= this->get_allocator();
18100 _CharT
* __tmp
= __str
._M_rep()->_M_grab(__a
, __str
.get_allocator());
18101 _M_rep()->_M_dispose(__a
);
18107 template<typename _CharT
, typename _Traits
, typename _Alloc
>
18108 basic_string
<_CharT
, _Traits
, _Alloc
>&
18109 basic_string
<_CharT
, _Traits
, _Alloc
>::
18110 assign(const _CharT
* __s
, size_type __n
)
18113 _M_check_length(this->size(), __n
, "basic_string::assign");
18114 if (_M_disjunct(__s
) || _M_rep()->_M_is_shared())
18115 return _M_replace_safe(size_type(0), this->size(), __s
, __n
);
18119 const size_type __pos
= __s
- _M_data();
18121 _M_copy(_M_data(), __s
, __n
);
18123 _M_move(_M_data(), __s
, __n
);
18124 _M_rep()->_M_set_length_and_sharable(__n
);
18129 template<typename _CharT
, typename _Traits
, typename _Alloc
>
18130 basic_string
<_CharT
, _Traits
, _Alloc
>&
18131 basic_string
<_CharT
, _Traits
, _Alloc
>::
18132 append(size_type __n
, _CharT __c
)
18136 _M_check_length(size_type(0), __n
, "basic_string::append");
18137 const size_type __len
= __n
+ this->size();
18138 if (__len
> this->capacity() || _M_rep()->_M_is_shared())
18139 this->reserve(__len
);
18140 _M_assign(_M_data() + this->size(), __n
, __c
);
18141 _M_rep()->_M_set_length_and_sharable(__len
);
18146 template<typename _CharT
, typename _Traits
, typename _Alloc
>
18147 basic_string
<_CharT
, _Traits
, _Alloc
>&
18148 basic_string
<_CharT
, _Traits
, _Alloc
>::
18149 append(const _CharT
* __s
, size_type __n
)
18154 _M_check_length(size_type(0), __n
, "basic_string::append");
18155 const size_type __len
= __n
+ this->size();
18156 if (__len
> this->capacity() || _M_rep()->_M_is_shared())
18158 if (_M_disjunct(__s
))
18159 this->reserve(__len
);
18162 const size_type __off
= __s
- _M_data();
18163 this->reserve(__len
);
18164 __s
= _M_data() + __off
;
18167 _M_copy(_M_data() + this->size(), __s
, __n
);
18168 _M_rep()->_M_set_length_and_sharable(__len
);
18173 template<typename _CharT
, typename _Traits
, typename _Alloc
>
18174 basic_string
<_CharT
, _Traits
, _Alloc
>&
18175 basic_string
<_CharT
, _Traits
, _Alloc
>::
18176 append(const basic_string
& __str
)
18178 const size_type __size
= __str
.size();
18181 const size_type __len
= __size
+ this->size();
18182 if (__len
> this->capacity() || _M_rep()->_M_is_shared())
18183 this->reserve(__len
);
18184 _M_copy(_M_data() + this->size(), __str
._M_data(), __size
);
18185 _M_rep()->_M_set_length_and_sharable(__len
);
18190 template<typename _CharT
, typename _Traits
, typename _Alloc
>
18191 basic_string
<_CharT
, _Traits
, _Alloc
>&
18192 basic_string
<_CharT
, _Traits
, _Alloc
>::
18193 append(const basic_string
& __str
, size_type __pos
, size_type __n
)
18195 __str
._M_check(__pos
, "basic_string::append");
18196 __n
= __str
._M_limit(__pos
, __n
);
18199 const size_type __len
= __n
+ this->size();
18200 if (__len
> this->capacity() || _M_rep()->_M_is_shared())
18201 this->reserve(__len
);
18202 _M_copy(_M_data() + this->size(), __str
._M_data() + __pos
, __n
);
18203 _M_rep()->_M_set_length_and_sharable(__len
);
18208 template<typename _CharT
, typename _Traits
, typename _Alloc
>
18209 basic_string
<_CharT
, _Traits
, _Alloc
>&
18210 basic_string
<_CharT
, _Traits
, _Alloc
>::
18211 insert(size_type __pos
, const _CharT
* __s
, size_type __n
)
18214 _M_check(__pos
, "basic_string::insert");
18215 _M_check_length(size_type(0), __n
, "basic_string::insert");
18216 if (_M_disjunct(__s
) || _M_rep()->_M_is_shared())
18217 return _M_replace_safe(__pos
, size_type(0), __s
, __n
);
18221 const size_type __off
= __s
- _M_data();
18222 _M_mutate(__pos
, 0, __n
);
18223 __s
= _M_data() + __off
;
18224 _CharT
* __p
= _M_data() + __pos
;
18225 if (__s
+ __n
<= __p
)
18226 _M_copy(__p
, __s
, __n
);
18227 else if (__s
>= __p
)
18228 _M_copy(__p
, __s
+ __n
, __n
);
18231 const size_type __nleft
= __p
- __s
;
18232 _M_copy(__p
, __s
, __nleft
);
18233 _M_copy(__p
+ __nleft
, __p
+ __n
, __n
- __nleft
);
18239 template<typename _CharT
, typename _Traits
, typename _Alloc
>
18240 basic_string
<_CharT
, _Traits
, _Alloc
>&
18241 basic_string
<_CharT
, _Traits
, _Alloc
>::
18242 replace(size_type __pos
, size_type __n1
, const _CharT
* __s
,
18246 _M_check(__pos
, "basic_string::replace");
18247 __n1
= _M_limit(__pos
, __n1
);
18248 _M_check_length(__n1
, __n2
, "basic_string::replace");
18250 if (_M_disjunct(__s
) || _M_rep()->_M_is_shared())
18251 return _M_replace_safe(__pos
, __n1
, __s
, __n2
);
18252 else if ((__left
= __s
+ __n2
<= _M_data() + __pos
)
18253 || _M_data() + __pos
+ __n1
<= __s
)
18256 size_type __off
= __s
- _M_data();
18257 __left
? __off
: (__off
+= __n2
- __n1
);
18258 _M_mutate(__pos
, __n1
, __n2
);
18259 _M_copy(_M_data() + __pos
, _M_data() + __off
, __n2
);
18265 const basic_string
__tmp(__s
, __n2
);
18266 return _M_replace_safe(__pos
, __n1
, __tmp
._M_data(), __n2
);
18270 template<typename _CharT
, typename _Traits
, typename _Alloc
>
18272 basic_string
<_CharT
, _Traits
, _Alloc
>::_Rep::
18273 _M_destroy(const _Alloc
& __a
) throw ()
18275 const size_type __size
= sizeof(_Rep_base
) +
18276 (this->_M_capacity
+ 1) * sizeof(_CharT
);
18277 _Raw_bytes_alloc(__a
).deallocate(reinterpret_cast<char*>(this), __size
);
18280 template<typename _CharT
, typename _Traits
, typename _Alloc
>
18282 basic_string
<_CharT
, _Traits
, _Alloc
>::
18286 if (_M_rep() == &_S_empty_rep())
18289 if (_M_rep()->_M_is_shared())
18290 _M_mutate(0, 0, 0);
18291 _M_rep()->_M_set_leaked();
18294 template<typename _CharT
, typename _Traits
, typename _Alloc
>
18296 basic_string
<_CharT
, _Traits
, _Alloc
>::
18297 _M_mutate(size_type __pos
, size_type __len1
, size_type __len2
)
18299 const size_type __old_size
= this->size();
18300 const size_type __new_size
= __old_size
+ __len2
- __len1
;
18301 const size_type __how_much
= __old_size
- __pos
- __len1
;
18303 if (__new_size
> this->capacity() || _M_rep()->_M_is_shared())
18306 const allocator_type __a
= get_allocator();
18307 _Rep
* __r
= _Rep::_S_create(__new_size
, this->capacity(), __a
);
18310 _M_copy(__r
->_M_refdata(), _M_data(), __pos
);
18312 _M_copy(__r
->_M_refdata() + __pos
+ __len2
,
18313 _M_data() + __pos
+ __len1
, __how_much
);
18315 _M_rep()->_M_dispose(__a
);
18316 _M_data(__r
->_M_refdata());
18318 else if (__how_much
&& __len1
!= __len2
)
18321 _M_move(_M_data() + __pos
+ __len2
,
18322 _M_data() + __pos
+ __len1
, __how_much
);
18324 _M_rep()->_M_set_length_and_sharable(__new_size
);
18327 template<typename _CharT
, typename _Traits
, typename _Alloc
>
18329 basic_string
<_CharT
, _Traits
, _Alloc
>::
18330 reserve(size_type __res
)
18332 if (__res
!= this->capacity() || _M_rep()->_M_is_shared())
18335 if (__res
< this->size())
18336 __res
= this->size();
18337 const allocator_type __a
= get_allocator();
18338 _CharT
* __tmp
= _M_rep()->_M_clone(__a
, __res
- this->size());
18339 _M_rep()->_M_dispose(__a
);
18344 template<typename _CharT
, typename _Traits
, typename _Alloc
>
18346 basic_string
<_CharT
, _Traits
, _Alloc
>::
18347 swap(basic_string
& __s
)
18349 if (_M_rep()->_M_is_leaked())
18350 _M_rep()->_M_set_sharable();
18351 if (__s
._M_rep()->_M_is_leaked())
18352 __s
._M_rep()->_M_set_sharable();
18353 if (this->get_allocator() == __s
.get_allocator())
18355 _CharT
* __tmp
= _M_data();
18356 _M_data(__s
._M_data());
18357 __s
._M_data(__tmp
);
18362 const basic_string
__tmp1(_M_ibegin(), _M_iend(),
18363 __s
.get_allocator());
18364 const basic_string
__tmp2(__s
._M_ibegin(), __s
._M_iend(),
18365 this->get_allocator());
18371 template<typename _CharT
, typename _Traits
, typename _Alloc
>
18372 typename basic_string
<_CharT
, _Traits
, _Alloc
>::_Rep
*
18373 basic_string
<_CharT
, _Traits
, _Alloc
>::_Rep::
18374 _S_create(size_type __capacity
, size_type __old_capacity
,
18375 const _Alloc
& __alloc
)
18379 if (__capacity
> _S_max_size
)
18380 __throw_length_error(("basic_string::_S_create"));
18381 # 558 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.tcc" 3
18382 const size_type __pagesize
= 4096;
18383 const size_type __malloc_header_size
= 4 * sizeof(void*);
18391 if (__capacity
> __old_capacity
&& __capacity
< 2 * __old_capacity
)
18392 __capacity
= 2 * __old_capacity
;
18397 size_type __size
= (__capacity
+ 1) * sizeof(_CharT
) + sizeof(_Rep
);
18399 const size_type __adj_size
= __size
+ __malloc_header_size
;
18400 if (__adj_size
> __pagesize
&& __capacity
> __old_capacity
)
18402 const size_type __extra
= __pagesize
- __adj_size
% __pagesize
;
18403 __capacity
+= __extra
/ sizeof(_CharT
);
18405 if (__capacity
> _S_max_size
)
18406 __capacity
= _S_max_size
;
18407 __size
= (__capacity
+ 1) * sizeof(_CharT
) + sizeof(_Rep
);
18412 void* __place
= _Raw_bytes_alloc(__alloc
).allocate(__size
);
18413 _Rep
*__p
= new (__place
) _Rep
;
18414 __p
->_M_capacity
= __capacity
;
18418 template<typename _CharT
, typename _Traits
, typename _Alloc
>
18420 basic_string
<_CharT
, _Traits
, _Alloc
>::_Rep::
18421 _M_clone(const _Alloc
& __alloc
, size_type __res
)
18424 const size_type __requested_cap
= this->_M_length
+ __res
;
18425 _Rep
* __r
= _Rep::_S_create(__requested_cap
, this->_M_capacity
,
18427 if (this->_M_length
)
18428 _M_copy(__r
->_M_refdata(), _M_refdata(), this->_M_length
);
18430 __r
->_M_set_length_and_sharable(this->_M_length
);
18431 return __r
->_M_refdata();
18434 template<typename _CharT
, typename _Traits
, typename _Alloc
>
18436 basic_string
<_CharT
, _Traits
, _Alloc
>::
18437 resize(size_type __n
, _CharT __c
)
18439 const size_type __size
= this->size();
18440 _M_check_length(__size
, __n
, "basic_string::resize");
18442 this->append(__n
- __size
, __c
);
18443 else if (__n
< __size
)
18448 template<typename _CharT
, typename _Traits
, typename _Alloc
>
18449 template<typename _InputIterator
>
18450 basic_string
<_CharT
, _Traits
, _Alloc
>&
18451 basic_string
<_CharT
, _Traits
, _Alloc
>::
18452 _M_replace_dispatch(iterator __i1
, iterator __i2
, _InputIterator __k1
,
18453 _InputIterator __k2
, __false_type
)
18455 const basic_string
__s(__k1
, __k2
);
18456 const size_type __n1
= __i2
- __i1
;
18457 _M_check_length(__n1
, __s
.size(), "basic_string::_M_replace_dispatch");
18458 return _M_replace_safe(__i1
- _M_ibegin(), __n1
, __s
._M_data(),
18462 template<typename _CharT
, typename _Traits
, typename _Alloc
>
18463 basic_string
<_CharT
, _Traits
, _Alloc
>&
18464 basic_string
<_CharT
, _Traits
, _Alloc
>::
18465 _M_replace_aux(size_type __pos1
, size_type __n1
, size_type __n2
,
18468 _M_check_length(__n1
, __n2
, "basic_string::_M_replace_aux");
18469 _M_mutate(__pos1
, __n1
, __n2
);
18471 _M_assign(_M_data() + __pos1
, __n2
, __c
);
18475 template<typename _CharT
, typename _Traits
, typename _Alloc
>
18476 basic_string
<_CharT
, _Traits
, _Alloc
>&
18477 basic_string
<_CharT
, _Traits
, _Alloc
>::
18478 _M_replace_safe(size_type __pos1
, size_type __n1
, const _CharT
* __s
,
18481 _M_mutate(__pos1
, __n1
, __n2
);
18483 _M_copy(_M_data() + __pos1
, __s
, __n2
);
18487 template<typename _CharT
, typename _Traits
, typename _Alloc
>
18488 basic_string
<_CharT
, _Traits
, _Alloc
>
18489 operator+(const _CharT
* __lhs
,
18490 const basic_string
<_CharT
, _Traits
, _Alloc
>& __rhs
)
18493 typedef basic_string
<_CharT
, _Traits
, _Alloc
> __string_type
;
18494 typedef typename
__string_type::size_type __size_type
;
18495 const __size_type __len
= _Traits::length(__lhs
);
18496 __string_type __str
;
18497 __str
.reserve(__len
+ __rhs
.size());
18498 __str
.append(__lhs
, __len
);
18499 __str
.append(__rhs
);
18503 template<typename _CharT
, typename _Traits
, typename _Alloc
>
18504 basic_string
<_CharT
, _Traits
, _Alloc
>
18505 operator+(_CharT __lhs
, const basic_string
<_CharT
, _Traits
, _Alloc
>& __rhs
)
18507 typedef basic_string
<_CharT
, _Traits
, _Alloc
> __string_type
;
18508 typedef typename
__string_type::size_type __size_type
;
18509 __string_type __str
;
18510 const __size_type __len
= __rhs
.size();
18511 __str
.reserve(__len
+ 1);
18512 __str
.append(__size_type(1), __lhs
);
18513 __str
.append(__rhs
);
18517 template<typename _CharT
, typename _Traits
, typename _Alloc
>
18518 typename basic_string
<_CharT
, _Traits
, _Alloc
>::size_type
18519 basic_string
<_CharT
, _Traits
, _Alloc
>::
18520 copy(_CharT
* __s
, size_type __n
, size_type __pos
) const
18522 _M_check(__pos
, "basic_string::copy");
18523 __n
= _M_limit(__pos
, __n
);
18526 _M_copy(__s
, _M_data() + __pos
, __n
);
18531 template<typename _CharT
, typename _Traits
, typename _Alloc
>
18532 typename basic_string
<_CharT
, _Traits
, _Alloc
>::size_type
18533 basic_string
<_CharT
, _Traits
, _Alloc
>::
18534 find(const _CharT
* __s
, size_type __pos
, size_type __n
) const
18537 size_type __ret
= npos
;
18538 const size_type __size
= this->size();
18539 if (__pos
+ __n
<= __size
)
18541 const _CharT
* __data
= _M_data();
18542 const _CharT
* __p
= std::search(__data
+ __pos
, __data
+ __size
,
18543 __s
, __s
+ __n
, traits_type::eq
);
18544 if (__p
!= __data
+ __size
|| __n
== 0)
18545 __ret
= __p
- __data
;
18550 template<typename _CharT
, typename _Traits
, typename _Alloc
>
18551 typename basic_string
<_CharT
, _Traits
, _Alloc
>::size_type
18552 basic_string
<_CharT
, _Traits
, _Alloc
>::
18553 find(_CharT __c
, size_type __pos
) const
18555 size_type __ret
= npos
;
18556 const size_type __size
= this->size();
18557 if (__pos
< __size
)
18559 const _CharT
* __data
= _M_data();
18560 const size_type __n
= __size
- __pos
;
18561 const _CharT
* __p
= traits_type::find(__data
+ __pos
, __n
, __c
);
18563 __ret
= __p
- __data
;
18568 template<typename _CharT
, typename _Traits
, typename _Alloc
>
18569 typename basic_string
<_CharT
, _Traits
, _Alloc
>::size_type
18570 basic_string
<_CharT
, _Traits
, _Alloc
>::
18571 rfind(const _CharT
* __s
, size_type __pos
, size_type __n
) const
18574 const size_type __size
= this->size();
18577 __pos
= std::min(size_type(__size
- __n
), __pos
);
18578 const _CharT
* __data
= _M_data();
18581 if (traits_type::compare(__data
+ __pos
, __s
, __n
) == 0)
18584 while (__pos
-- > 0);
18589 template<typename _CharT
, typename _Traits
, typename _Alloc
>
18590 typename basic_string
<_CharT
, _Traits
, _Alloc
>::size_type
18591 basic_string
<_CharT
, _Traits
, _Alloc
>::
18592 rfind(_CharT __c
, size_type __pos
) const
18594 size_type __size
= this->size();
18597 if (--__size
> __pos
)
18599 for (++__size
; __size
-- > 0; )
18600 if (traits_type::eq(_M_data()[__size
], __c
))
18606 template<typename _CharT
, typename _Traits
, typename _Alloc
>
18607 typename basic_string
<_CharT
, _Traits
, _Alloc
>::size_type
18608 basic_string
<_CharT
, _Traits
, _Alloc
>::
18609 find_first_of(const _CharT
* __s
, size_type __pos
, size_type __n
) const
18612 for (; __n
&& __pos
< this->size(); ++__pos
)
18614 const _CharT
* __p
= traits_type::find(__s
, __n
, _M_data()[__pos
]);
18621 template<typename _CharT
, typename _Traits
, typename _Alloc
>
18622 typename basic_string
<_CharT
, _Traits
, _Alloc
>::size_type
18623 basic_string
<_CharT
, _Traits
, _Alloc
>::
18624 find_last_of(const _CharT
* __s
, size_type __pos
, size_type __n
) const
18627 size_type __size
= this->size();
18630 if (--__size
> __pos
)
18634 if (traits_type::find(__s
, __n
, _M_data()[__size
]))
18637 while (__size
-- != 0);
18642 template<typename _CharT
, typename _Traits
, typename _Alloc
>
18643 typename basic_string
<_CharT
, _Traits
, _Alloc
>::size_type
18644 basic_string
<_CharT
, _Traits
, _Alloc
>::
18645 find_first_not_of(const _CharT
* __s
, size_type __pos
, size_type __n
) const
18648 for (; __pos
< this->size(); ++__pos
)
18649 if (!traits_type::find(__s
, __n
, _M_data()[__pos
]))
18654 template<typename _CharT
, typename _Traits
, typename _Alloc
>
18655 typename basic_string
<_CharT
, _Traits
, _Alloc
>::size_type
18656 basic_string
<_CharT
, _Traits
, _Alloc
>::
18657 find_first_not_of(_CharT __c
, size_type __pos
) const
18659 for (; __pos
< this->size(); ++__pos
)
18660 if (!traits_type::eq(_M_data()[__pos
], __c
))
18665 template<typename _CharT
, typename _Traits
, typename _Alloc
>
18666 typename basic_string
<_CharT
, _Traits
, _Alloc
>::size_type
18667 basic_string
<_CharT
, _Traits
, _Alloc
>::
18668 find_last_not_of(const _CharT
* __s
, size_type __pos
, size_type __n
) const
18671 size_type __size
= this->size();
18674 if (--__size
> __pos
)
18678 if (!traits_type::find(__s
, __n
, _M_data()[__size
]))
18686 template<typename _CharT
, typename _Traits
, typename _Alloc
>
18687 typename basic_string
<_CharT
, _Traits
, _Alloc
>::size_type
18688 basic_string
<_CharT
, _Traits
, _Alloc
>::
18689 find_last_not_of(_CharT __c
, size_type __pos
) const
18691 size_type __size
= this->size();
18694 if (--__size
> __pos
)
18698 if (!traits_type::eq(_M_data()[__size
], __c
))
18706 template<typename _CharT
, typename _Traits
, typename _Alloc
>
18708 basic_string
<_CharT
, _Traits
, _Alloc
>::
18709 compare(size_type __pos
, size_type __n
, const basic_string
& __str
) const
18711 _M_check(__pos
, "basic_string::compare");
18712 __n
= _M_limit(__pos
, __n
);
18713 const size_type __osize
= __str
.size();
18714 const size_type __len
= std::min(__n
, __osize
);
18715 int __r
= traits_type::compare(_M_data() + __pos
, __str
.data(), __len
);
18717 __r
= __n
- __osize
;
18721 template<typename _CharT
, typename _Traits
, typename _Alloc
>
18723 basic_string
<_CharT
, _Traits
, _Alloc
>::
18724 compare(size_type __pos1
, size_type __n1
, const basic_string
& __str
,
18725 size_type __pos2
, size_type __n2
) const
18727 _M_check(__pos1
, "basic_string::compare");
18728 __str
._M_check(__pos2
, "basic_string::compare");
18729 __n1
= _M_limit(__pos1
, __n1
);
18730 __n2
= __str
._M_limit(__pos2
, __n2
);
18731 const size_type __len
= std::min(__n1
, __n2
);
18732 int __r
= traits_type::compare(_M_data() + __pos1
,
18733 __str
.data() + __pos2
, __len
);
18739 template<typename _CharT
, typename _Traits
, typename _Alloc
>
18741 basic_string
<_CharT
, _Traits
, _Alloc
>::
18742 compare(const _CharT
* __s
) const
18745 const size_type __size
= this->size();
18746 const size_type __osize
= traits_type::length(__s
);
18747 const size_type __len
= std::min(__size
, __osize
);
18748 int __r
= traits_type::compare(_M_data(), __s
, __len
);
18750 __r
= __size
- __osize
;
18754 template<typename _CharT
, typename _Traits
, typename _Alloc
>
18756 basic_string
<_CharT
, _Traits
, _Alloc
>::
18757 compare(size_type __pos
, size_type __n1
, const _CharT
* __s
) const
18760 _M_check(__pos
, "basic_string::compare");
18761 __n1
= _M_limit(__pos
, __n1
);
18762 const size_type __osize
= traits_type::length(__s
);
18763 const size_type __len
= std::min(__n1
, __osize
);
18764 int __r
= traits_type::compare(_M_data() + __pos
, __s
, __len
);
18766 __r
= __n1
- __osize
;
18770 template<typename _CharT
, typename _Traits
, typename _Alloc
>
18772 basic_string
<_CharT
, _Traits
, _Alloc
>::
18773 compare(size_type __pos
, size_type __n1
, const _CharT
* __s
,
18774 size_type __n2
) const
18777 _M_check(__pos
, "basic_string::compare");
18778 __n1
= _M_limit(__pos
, __n1
);
18779 const size_type __len
= std::min(__n1
, __n2
);
18780 int __r
= traits_type::compare(_M_data() + __pos
, __s
, __len
);
18790 extern template class basic_string
<char>;
18792 basic_istream
<char>&
18793 operator>>(basic_istream
<char>&, string
&);
18795 basic_ostream
<char>&
18796 operator<<(basic_ostream
<char>&, const string
&);
18798 basic_istream
<char>&
18799 getline(basic_istream
<char>&, string
&, char);
18801 basic_istream
<char>&
18802 getline(basic_istream
<char>&, string
&);
18805 extern template class basic_string
<wchar_t>;
18807 basic_istream
<wchar_t>&
18808 operator>>(basic_istream
<wchar_t>&, wstring
&);
18810 basic_ostream
<wchar_t>&
18811 operator<<(basic_ostream
<wchar_t>&, const wstring
&);
18813 basic_istream
<wchar_t>&
18814 getline(basic_istream
<wchar_t>&, wstring
&, wchar_t);
18816 basic_istream
<wchar_t>&
18817 getline(basic_istream
<wchar_t>&, wstring
&);
18821 # 58 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/string" 2 3
18824 #pragma GCC visibility pop
18825 # 19 "../ast/../error.h" 2
18827 # 1 "../ast/../defs.h" 1
18828 # 21 "../ast/../error.h" 2
18829 # 67 "../ast/../error.h"
18835 class ErrorException
18839 const char* m_locFile
;
18840 const char* m_excName
;
18842 std::string m_message
;
18845 virtual ~ErrorException();
18848 ErrorException( const ErrorException
& aSrc
);
18849 ErrorException( const char* aMsg
, const char* aFile
, int aLine
);
18853 int GetSourceLine() const;
18855 const char* GetSourceFile() const;
18858 const char* GetName() const;
18860 const char* GetMessage() const;
18869 template< class Tag
, class Base
= ErrorException
> class TException
: public Base
18872 TException() : Base()
18874 Base::m_excName
= Tag::Name();
18876 TException( const TException
<Tag
,Base
>& aSrc
) : Base( aSrc
)
18878 TException( const char* aMsg
, const char* aFl
, int aLn
) : Base( aMsg
, aFl
, aLn
)
18880 Base::m_excName
= Tag::Name();
18889 struct _jl_exc_tagAssertException
{ static const char* Name() { return "AssertException"; } }; typedef TException
<_jl_exc_tagAssertException
, ErrorException
> AssertException
;;
18890 # 138 "../ast/../error.h"
18891 bool DoAssertFault( const char* aExpr
, const char* aMsg
, const char* aFile
,
18892 unsigned int aLine
) throw(AssertException
);
18895 # 20 "../ast/adefs.h" 2
18896 # 1 "../ast/../autoptr.h" 1
18897 # 20 "../ast/../autoptr.h"
18904 template< typename T
> struct ADefaultDestroy
18906 static void destroy( T aObj
) { delete aObj
; }
18909 template< typename T
> struct ANullDestroy
18911 static void destroy( T aObj
) {}
18914 # 53 "../ast/../autoptr.h"
18915 template< typename T
, class ADest
= aspect::ADefaultDestroy
<T
*> > class AutoPtr
18921 inline AutoPtr() { m_object
= 0; }
18922 inline ~AutoPtr() { Destroy(); }
18925 explicit inline AutoPtr( T
* aObject
)
18927 m_object
= aObject
;
18931 inline AutoPtr( const AutoPtr
& );
18934 T
* operator -> () { return m_object
; }
18935 const T
* operator -> () const { return m_object
; }
18937 T
& operator * () { return *m_object
; }
18938 const T
& operator * () const { return *m_object
; }
18942 inline T
* Get() const { return m_object
; }
18945 inline bool PtrNull() const { return m_object
== 0; }
18947 inline bool PtrValid() const { return m_object
!= 0; }
18950 inline void Yield() { m_object
= 0; }
18952 inline void Grab( T
* aObject
) { Destroy(); m_object
= aObject
; }
18955 inline void Destroy()
18957 if( this == 0 ) return;
18961 ADest::destroy( m_object
);
18968 # 21 "../ast/adefs.h" 2
18969 # 19 "../ast/identifier.h" 2
18972 # 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/vector" 1 3
18973 # 63 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/vector" 3
18975 # 64 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/vector" 3
18976 #pragma GCC visibility push(default)
18983 # 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_vector.h" 1 3
18984 # 68 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_vector.h" 3
18992 template<typename _Tp
, typename _Alloc
>
18993 struct _Vector_base
18995 typedef typename
_Alloc::template rebind
<_Tp
>::other _Tp_alloc_type
;
18997 struct _Vector_impl
18998 : public _Tp_alloc_type
19002 _Tp
* _M_end_of_storage
;
19003 _Vector_impl(_Tp_alloc_type
const& __a
)
19004 : _Tp_alloc_type(__a
), _M_start(0), _M_finish(0), _M_end_of_storage(0)
19009 typedef _Alloc allocator_type
;
19012 _M_get_Tp_allocator()
19013 { return *static_cast<_Tp_alloc_type
*>(&this->_M_impl
); }
19015 const _Tp_alloc_type
&
19016 _M_get_Tp_allocator() const
19017 { return *static_cast<const _Tp_alloc_type
*>(&this->_M_impl
); }
19020 get_allocator() const
19021 { return _M_get_Tp_allocator(); }
19023 _Vector_base(const allocator_type
& __a
)
19027 _Vector_base(size_t __n
, const allocator_type
& __a
)
19030 this->_M_impl
._M_start
= this->_M_allocate(__n
);
19031 this->_M_impl
._M_finish
= this->_M_impl
._M_start
;
19032 this->_M_impl
._M_end_of_storage
= this->_M_impl
._M_start
+ __n
;
19036 { _M_deallocate(this->_M_impl
._M_start
, this->_M_impl
._M_end_of_storage
19037 - this->_M_impl
._M_start
); }
19040 _Vector_impl _M_impl
;
19043 _M_allocate(size_t __n
)
19044 { return _M_impl
.allocate(__n
); }
19047 _M_deallocate(_Tp
* __p
, size_t __n
)
19050 _M_impl
.deallocate(__p
, __n
);
19053 # 157 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_vector.h" 3
19054 template<typename _Tp
, typename _Alloc
= std::allocator
<_Tp
> >
19055 class vector
: protected _Vector_base
<_Tp
, _Alloc
>
19058 typedef typename
_Alloc::value_type _Alloc_value_type
;
19062 typedef _Vector_base
<_Tp
, _Alloc
> _Base
;
19063 typedef vector
<_Tp
, _Alloc
> vector_type
;
19064 typedef typename
_Base::_Tp_alloc_type _Tp_alloc_type
;
19067 typedef _Tp value_type
;
19068 typedef typename
_Tp_alloc_type::pointer pointer
;
19069 typedef typename
_Tp_alloc_type::const_pointer const_pointer
;
19070 typedef typename
_Tp_alloc_type::reference reference
;
19071 typedef typename
_Tp_alloc_type::const_reference const_reference
;
19072 typedef __gnu_cxx::__normal_iterator
<pointer
, vector_type
> iterator
;
19073 typedef __gnu_cxx::__normal_iterator
<const_pointer
, vector_type
>
19075 typedef std::reverse_iterator
<const_iterator
> const_reverse_iterator
;
19076 typedef std::reverse_iterator
<iterator
> reverse_iterator
;
19077 typedef size_t size_type
;
19078 typedef ptrdiff_t difference_type
;
19079 typedef _Alloc allocator_type
;
19087 using _Base::_M_allocate
;
19088 using _Base::_M_deallocate
;
19089 using _Base::_M_impl
;
19090 using _Base::_M_get_Tp_allocator
;
19099 vector(const allocator_type
& __a
= allocator_type())
19102 # 213 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_vector.h" 3
19104 vector(size_type __n
, const value_type
& __value
= value_type(),
19105 const allocator_type
& __a
= allocator_type())
19108 std::__uninitialized_fill_n_a(this->_M_impl
._M_start
, __n
, __value
,
19109 _M_get_Tp_allocator());
19110 this->_M_impl
._M_finish
= this->_M_impl
._M_start
+ __n
;
19112 # 232 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_vector.h" 3
19113 vector(const vector
& __x
)
19114 : _Base(__x
.size(), __x
.get_allocator())
19115 { this->_M_impl
._M_finish
=
19116 std::__uninitialized_copy_a(__x
.begin(), __x
.end(),
19117 this->_M_impl
._M_start
,
19118 _M_get_Tp_allocator());
19120 # 255 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_vector.h" 3
19121 template<typename _InputIterator
>
19122 vector(_InputIterator __first
, _InputIterator __last
,
19123 const allocator_type
& __a
= allocator_type())
19127 typedef typename
std::__is_integer
<_InputIterator
>::__type _Integral
;
19128 _M_initialize_dispatch(__first
, __last
, _Integral());
19138 { std::_Destroy(this->_M_impl
._M_start
, this->_M_impl
._M_finish
,
19139 _M_get_Tp_allocator());
19141 # 284 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_vector.h" 3
19143 operator=(const vector
& __x
);
19144 # 297 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_vector.h" 3
19146 assign(size_type __n
, const value_type
& __val
)
19147 { _M_fill_assign(__n
, __val
); }
19148 # 313 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_vector.h" 3
19149 template<typename _InputIterator
>
19151 assign(_InputIterator __first
, _InputIterator __last
)
19154 typedef typename
std::__is_integer
<_InputIterator
>::__type _Integral
;
19155 _M_assign_dispatch(__first
, __last
, _Integral());
19159 using _Base::get_allocator
;
19169 { return iterator (this->_M_impl
._M_start
); }
19178 { return const_iterator (this->_M_impl
._M_start
); }
19187 { return iterator (this->_M_impl
._M_finish
); }
19196 { return const_iterator (this->_M_impl
._M_finish
); }
19205 { return reverse_iterator(end()); }
19212 const_reverse_iterator
19214 { return const_reverse_iterator(end()); }
19223 { return reverse_iterator(begin()); }
19230 const_reverse_iterator
19232 { return const_reverse_iterator(begin()); }
19238 { return size_type(end() - begin()); }
19243 { return size_type(-1) / sizeof(value_type
); }
19244 # 420 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_vector.h" 3
19246 resize(size_type __new_size
, value_type __x
= value_type())
19248 if (__new_size
< size())
19249 erase(begin() + __new_size
, end());
19251 insert(end(), __new_size
- size(), __x
);
19260 { return size_type(const_iterator(this->_M_impl
._M_end_of_storage
)
19269 { return begin() == end(); }
19270 # 463 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_vector.h" 3
19272 reserve(size_type __n
);
19273 # 478 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_vector.h" 3
19275 operator[](size_type __n
)
19276 { return *(begin() + __n
); }
19277 # 493 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_vector.h" 3
19279 operator[](size_type __n
) const
19280 { return *(begin() + __n
); }
19285 _M_range_check(size_type __n
) const
19287 if (__n
>= this->size())
19288 __throw_out_of_range(("vector::_M_range_check"));
19292 # 518 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_vector.h" 3
19296 _M_range_check(__n
);
19297 return (*this)[__n
];
19299 # 536 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_vector.h" 3
19301 at(size_type __n
) const
19303 _M_range_check(__n
);
19304 return (*this)[__n
];
19313 { return *begin(); }
19321 { return *begin(); }
19329 { return *(end() - 1); }
19337 { return *(end() - 1); }
19338 # 582 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_vector.h" 3
19341 { return pointer(this->_M_impl
._M_start
); }
19345 { return const_pointer(this->_M_impl
._M_start
); }
19346 # 601 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_vector.h" 3
19348 push_back(const value_type
& __x
)
19350 if (this->_M_impl
._M_finish
!= this->_M_impl
._M_end_of_storage
)
19352 this->_M_impl
.construct(this->_M_impl
._M_finish
, __x
);
19353 ++this->_M_impl
._M_finish
;
19356 _M_insert_aux(end(), __x
);
19358 # 622 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_vector.h" 3
19362 --this->_M_impl
._M_finish
;
19363 this->_M_impl
.destroy(this->_M_impl
._M_finish
);
19365 # 640 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_vector.h" 3
19367 insert(iterator __position
, const value_type
& __x
);
19368 # 656 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_vector.h" 3
19370 insert(iterator __position
, size_type __n
, const value_type
& __x
)
19371 { _M_fill_insert(__position
, __n
, __x
); }
19372 # 674 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_vector.h" 3
19373 template<typename _InputIterator
>
19375 insert(iterator __position
, _InputIterator __first
,
19376 _InputIterator __last
)
19379 typedef typename
std::__is_integer
<_InputIterator
>::__type _Integral
;
19380 _M_insert_dispatch(__position
, __first
, __last
, _Integral());
19382 # 699 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_vector.h" 3
19384 erase(iterator __position
);
19385 # 720 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_vector.h" 3
19387 erase(iterator __first
, iterator __last
);
19388 # 732 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_vector.h" 3
19392 std::swap(this->_M_impl
._M_start
, __x
._M_impl
._M_start
);
19393 std::swap(this->_M_impl
._M_finish
, __x
._M_impl
._M_finish
);
19394 std::swap(this->_M_impl
._M_end_of_storage
,
19395 __x
._M_impl
._M_end_of_storage
);
19407 std::_Destroy(this->_M_impl
._M_start
, this->_M_impl
._M_finish
,
19408 _M_get_Tp_allocator());
19409 this->_M_impl
._M_finish
= this->_M_impl
._M_start
;
19419 template<typename _ForwardIterator
>
19421 _M_allocate_and_copy(size_type __n
,
19422 _ForwardIterator __first
, _ForwardIterator __last
)
19424 pointer __result
= this->_M_allocate(__n
);
19427 std::__uninitialized_copy_a(__first
, __last
, __result
,
19428 _M_get_Tp_allocator());
19433 _M_deallocate(__result
, __n
);
19442 template<typename _Integer
>
19444 _M_initialize_dispatch(_Integer __n
, _Integer __value
, __true_type
)
19446 this->_M_impl
._M_start
= _M_allocate(__n
);
19447 this->_M_impl
._M_end_of_storage
= this->_M_impl
._M_start
+ __n
;
19448 std::__uninitialized_fill_n_a(this->_M_impl
._M_start
, __n
, __value
,
19449 _M_get_Tp_allocator());
19450 this->_M_impl
._M_finish
= this->_M_impl
._M_end_of_storage
;
19454 template<typename _InputIterator
>
19456 _M_initialize_dispatch(_InputIterator __first
, _InputIterator __last
,
19459 typedef typename
std::iterator_traits
<_InputIterator
>::
19460 iterator_category _IterCategory
;
19461 _M_range_initialize(__first
, __last
, _IterCategory());
19465 template<typename _InputIterator
>
19467 _M_range_initialize(_InputIterator __first
,
19468 _InputIterator __last
, std::input_iterator_tag
)
19470 for (; __first
!= __last
; ++__first
)
19471 push_back(*__first
);
19475 template<typename _ForwardIterator
>
19477 _M_range_initialize(_ForwardIterator __first
,
19478 _ForwardIterator __last
, std::forward_iterator_tag
)
19480 const size_type __n
= std::distance(__first
, __last
);
19481 this->_M_impl
._M_start
= this->_M_allocate(__n
);
19482 this->_M_impl
._M_end_of_storage
= this->_M_impl
._M_start
+ __n
;
19483 this->_M_impl
._M_finish
=
19484 std::__uninitialized_copy_a(__first
, __last
,
19485 this->_M_impl
._M_start
,
19486 _M_get_Tp_allocator());
19494 template<typename _Integer
>
19496 _M_assign_dispatch(_Integer __n
, _Integer __val
, __true_type
)
19498 _M_fill_assign(static_cast<size_type
>(__n
),
19499 static_cast<value_type
>(__val
));
19503 template<typename _InputIterator
>
19505 _M_assign_dispatch(_InputIterator __first
, _InputIterator __last
,
19508 typedef typename
std::iterator_traits
<_InputIterator
>::
19509 iterator_category _IterCategory
;
19510 _M_assign_aux(__first
, __last
, _IterCategory());
19514 template<typename _InputIterator
>
19516 _M_assign_aux(_InputIterator __first
, _InputIterator __last
,
19517 std::input_iterator_tag
);
19520 template<typename _ForwardIterator
>
19522 _M_assign_aux(_ForwardIterator __first
, _ForwardIterator __last
,
19523 std::forward_iterator_tag
);
19528 _M_fill_assign(size_type __n
, const value_type
& __val
);
19534 template<typename _Integer
>
19536 _M_insert_dispatch(iterator __pos
, _Integer __n
, _Integer __val
,
19539 _M_fill_insert(__pos
, static_cast<size_type
>(__n
),
19540 static_cast<value_type
>(__val
));
19544 template<typename _InputIterator
>
19546 _M_insert_dispatch(iterator __pos
, _InputIterator __first
,
19547 _InputIterator __last
, __false_type
)
19549 typedef typename
std::iterator_traits
<_InputIterator
>::
19550 iterator_category _IterCategory
;
19551 _M_range_insert(__pos
, __first
, __last
, _IterCategory());
19555 template<typename _InputIterator
>
19557 _M_range_insert(iterator __pos
, _InputIterator __first
,
19558 _InputIterator __last
, std::input_iterator_tag
);
19561 template<typename _ForwardIterator
>
19563 _M_range_insert(iterator __pos
, _ForwardIterator __first
,
19564 _ForwardIterator __last
, std::forward_iterator_tag
);
19569 _M_fill_insert(iterator __pos
, size_type __n
, const value_type
& __x
);
19573 _M_insert_aux(iterator __position
, const value_type
& __x
);
19575 # 930 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_vector.h" 3
19576 template<typename _Tp
, typename _Alloc
>
19578 operator==(const vector
<_Tp
, _Alloc
>& __x
, const vector
<_Tp
, _Alloc
>& __y
)
19579 { return (__x
.size() == __y
.size()
19580 && std::equal(__x
.begin(), __x
.end(), __y
.begin())); }
19581 # 947 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_vector.h" 3
19582 template<typename _Tp
, typename _Alloc
>
19584 operator<(const vector
<_Tp
, _Alloc
>& __x
, const vector
<_Tp
, _Alloc
>& __y
)
19585 { return std::lexicographical_compare(__x
.begin(), __x
.end(),
19586 __y
.begin(), __y
.end()); }
19589 template<typename _Tp
, typename _Alloc
>
19591 operator!=(const vector
<_Tp
, _Alloc
>& __x
, const vector
<_Tp
, _Alloc
>& __y
)
19592 { return !(__x
== __y
); }
19595 template<typename _Tp
, typename _Alloc
>
19597 operator>(const vector
<_Tp
, _Alloc
>& __x
, const vector
<_Tp
, _Alloc
>& __y
)
19598 { return __y
< __x
; }
19601 template<typename _Tp
, typename _Alloc
>
19603 operator<=(const vector
<_Tp
, _Alloc
>& __x
, const vector
<_Tp
, _Alloc
>& __y
)
19604 { return !(__y
< __x
); }
19607 template<typename _Tp
, typename _Alloc
>
19609 operator>=(const vector
<_Tp
, _Alloc
>& __x
, const vector
<_Tp
, _Alloc
>& __y
)
19610 { return !(__x
< __y
); }
19613 template<typename _Tp
, typename _Alloc
>
19615 swap(vector
<_Tp
, _Alloc
>& __x
, vector
<_Tp
, _Alloc
>& __y
)
19618 # 72 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/vector" 2 3
19619 # 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_bvector.h" 1 3
19620 # 64 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_bvector.h" 3
19623 typedef unsigned long _Bit_type
;
19624 enum { _S_word_bit
= int(8 * sizeof(_Bit_type
)) };
19626 struct _Bit_reference
19631 _Bit_reference(_Bit_type
* __x
, _Bit_type __y
)
19632 : _M_p(__x
), _M_mask(__y
) { }
19634 _Bit_reference() : _M_p(0), _M_mask(0) { }
19636 operator bool() const
19637 { return !!(*_M_p
& _M_mask
); }
19640 operator=(bool __x
)
19650 operator=(const _Bit_reference
& __x
)
19651 { return *this = bool(__x
); }
19654 operator==(const _Bit_reference
& __x
) const
19655 { return bool(*this) == bool(__x
); }
19658 operator<(const _Bit_reference
& __x
) const
19659 { return !bool(*this) && bool(__x
); }
19663 { *_M_p
^= _M_mask
; }
19666 struct _Bit_iterator_base
19667 : public std::iterator
<std::random_access_iterator_tag
, bool>
19670 unsigned int _M_offset
;
19672 _Bit_iterator_base(_Bit_type
* __x
, unsigned int __y
)
19673 : _M_p(__x
), _M_offset(__y
) { }
19678 if (_M_offset
++ == int(_S_word_bit
) - 1)
19688 if (_M_offset
-- == 0)
19690 _M_offset
= int(_S_word_bit
) - 1;
19696 _M_incr(ptrdiff_t __i
)
19698 difference_type __n
= __i
+ _M_offset
;
19699 _M_p
+= __n
/ int(_S_word_bit
);
19700 __n
= __n
% int(_S_word_bit
);
19703 _M_offset
= static_cast<unsigned int>(__n
+ int(_S_word_bit
));
19707 _M_offset
= static_cast<unsigned int>(__n
);
19711 operator==(const _Bit_iterator_base
& __i
) const
19712 { return _M_p
== __i
._M_p
&& _M_offset
== __i
._M_offset
; }
19715 operator<(const _Bit_iterator_base
& __i
) const
19717 return _M_p
< __i
._M_p
19718 || (_M_p
== __i
._M_p
&& _M_offset
< __i
._M_offset
);
19722 operator!=(const _Bit_iterator_base
& __i
) const
19723 { return !(*this == __i
); }
19726 operator>(const _Bit_iterator_base
& __i
) const
19727 { return __i
< *this; }
19730 operator<=(const _Bit_iterator_base
& __i
) const
19731 { return !(__i
< *this); }
19734 operator>=(const _Bit_iterator_base
& __i
) const
19735 { return !(*this < __i
); }
19739 operator-(const _Bit_iterator_base
& __x
, const _Bit_iterator_base
& __y
)
19741 return (int(_S_word_bit
) * (__x
._M_p
- __y
._M_p
)
19742 + __x
._M_offset
- __y
._M_offset
);
19745 struct _Bit_iterator
: public _Bit_iterator_base
19747 typedef _Bit_reference reference
;
19748 typedef _Bit_reference
* pointer
;
19749 typedef _Bit_iterator iterator
;
19751 _Bit_iterator() : _Bit_iterator_base(0, 0) { }
19753 _Bit_iterator(_Bit_type
* __x
, unsigned int __y
)
19754 : _Bit_iterator_base(__x
, __y
) { }
19758 { return reference(_M_p
, 1UL << _M_offset
); }
19770 iterator __tmp
= *this;
19785 iterator __tmp
= *this;
19791 operator+=(difference_type __i
)
19798 operator-=(difference_type __i
)
19805 operator+(difference_type __i
) const
19807 iterator __tmp
= *this;
19808 return __tmp
+= __i
;
19812 operator-(difference_type __i
) const
19814 iterator __tmp
= *this;
19815 return __tmp
-= __i
;
19819 operator[](difference_type __i
) const
19820 { return *(*this + __i
); }
19823 inline _Bit_iterator
19824 operator+(ptrdiff_t __n
, const _Bit_iterator
& __x
)
19825 { return __x
+ __n
; }
19827 struct _Bit_const_iterator
: public _Bit_iterator_base
19829 typedef bool reference
;
19830 typedef bool const_reference
;
19831 typedef const bool* pointer
;
19832 typedef _Bit_const_iterator const_iterator
;
19834 _Bit_const_iterator() : _Bit_iterator_base(0, 0) { }
19836 _Bit_const_iterator(_Bit_type
* __x
, unsigned int __y
)
19837 : _Bit_iterator_base(__x
, __y
) { }
19839 _Bit_const_iterator(const _Bit_iterator
& __x
)
19840 : _Bit_iterator_base(__x
._M_p
, __x
._M_offset
) { }
19844 { return _Bit_reference(_M_p
, 1UL << _M_offset
); }
19856 const_iterator __tmp
= *this;
19871 const_iterator __tmp
= *this;
19877 operator+=(difference_type __i
)
19884 operator-=(difference_type __i
)
19891 operator+(difference_type __i
) const
19893 const_iterator __tmp
= *this;
19894 return __tmp
+= __i
;
19898 operator-(difference_type __i
) const
19900 const_iterator __tmp
= *this;
19901 return __tmp
-= __i
;
19905 operator[](difference_type __i
) const
19906 { return *(*this + __i
); }
19909 inline _Bit_const_iterator
19910 operator+(ptrdiff_t __n
, const _Bit_const_iterator
& __x
)
19911 { return __x
+ __n
; }
19913 template<class _Alloc
>
19914 class _Bvector_base
19916 typedef typename
_Alloc::template rebind
<_Bit_type
>::other
19919 struct _Bvector_impl
: public _Bit_alloc_type
19921 _Bit_iterator _M_start
;
19922 _Bit_iterator _M_finish
;
19923 _Bit_type
* _M_end_of_storage
;
19924 _Bvector_impl(const _Bit_alloc_type
& __a
)
19925 : _Bit_alloc_type(__a
), _M_start(), _M_finish(), _M_end_of_storage(0)
19930 typedef _Alloc allocator_type
;
19933 get_allocator() const
19934 { return *static_cast<const _Bit_alloc_type
*>(&this->_M_impl
); }
19936 _Bvector_base(const allocator_type
& __a
) : _M_impl(__a
) { }
19939 { this->_M_deallocate(); }
19942 _Bvector_impl _M_impl
;
19945 _M_allocate(size_t __n
)
19946 { return _M_impl
.allocate((__n
+ int(_S_word_bit
) - 1)
19947 / int(_S_word_bit
)); }
19952 if (_M_impl
._M_start
._M_p
)
19953 _M_impl
.deallocate(_M_impl
._M_start
._M_p
,
19954 _M_impl
._M_end_of_storage
- _M_impl
._M_start
._M_p
);
19964 # 425 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_bvector.h" 3
19965 template<typename _Alloc
>
19966 class vector
<bool, _Alloc
> : public _Bvector_base
<_Alloc
>
19969 typedef bool value_type
;
19970 typedef size_t size_type
;
19971 typedef ptrdiff_t difference_type
;
19972 typedef _Bit_reference reference
;
19973 typedef bool const_reference
;
19974 typedef _Bit_reference
* pointer
;
19975 typedef const bool* const_pointer
;
19977 typedef _Bit_iterator iterator
;
19978 typedef _Bit_const_iterator const_iterator
;
19980 typedef std::reverse_iterator
<const_iterator
> const_reverse_iterator
;
19981 typedef std::reverse_iterator
<iterator
> reverse_iterator
;
19983 typedef typename _Bvector_base
<_Alloc
>::allocator_type allocator_type
;
19985 allocator_type
get_allocator() const
19986 { return _Bvector_base
<_Alloc
>::get_allocator(); }
19989 using _Bvector_base
<_Alloc
>::_M_allocate
;
19990 using _Bvector_base
<_Alloc
>::_M_deallocate
;
19994 _M_initialize(size_type __n
)
19996 _Bit_type
* __q
= this->_M_allocate(__n
);
19997 this->_M_impl
._M_end_of_storage
= (__q
19998 + ((__n
+ int(_S_word_bit
) - 1)
19999 / int(_S_word_bit
)));
20000 this->_M_impl
._M_start
= iterator(__q
, 0);
20001 this->_M_impl
._M_finish
= this->_M_impl
._M_start
+ difference_type(__n
);
20005 _M_insert_aux(iterator __position
, bool __x
)
20007 if (this->_M_impl
._M_finish
._M_p
!= this->_M_impl
._M_end_of_storage
)
20009 std::copy_backward(__position
, this->_M_impl
._M_finish
,
20010 this->_M_impl
._M_finish
+ 1);
20012 ++this->_M_impl
._M_finish
;
20016 const size_type __len
= size() ? 2 * size()
20017 : static_cast<size_type
>(_S_word_bit
);
20018 _Bit_type
* __q
= this->_M_allocate(__len
);
20019 iterator __i
= std::copy(begin(), __position
, iterator(__q
, 0));
20021 this->_M_impl
._M_finish
= std::copy(__position
, end(), __i
);
20022 this->_M_deallocate();
20023 this->_M_impl
._M_end_of_storage
= (__q
+ ((__len
20024 + int(_S_word_bit
) - 1)
20025 / int(_S_word_bit
)));
20026 this->_M_impl
._M_start
= iterator(__q
, 0);
20030 template<class _InputIterator
>
20032 _M_initialize_range(_InputIterator __first
, _InputIterator __last
,
20033 std::input_iterator_tag
)
20035 this->_M_impl
._M_start
= iterator();
20036 this->_M_impl
._M_finish
= iterator();
20037 this->_M_impl
._M_end_of_storage
= 0;
20038 for (; __first
!= __last
; ++__first
)
20039 push_back(*__first
);
20042 template<class _ForwardIterator
>
20044 _M_initialize_range(_ForwardIterator __first
, _ForwardIterator __last
,
20045 std::forward_iterator_tag
)
20047 const size_type __n
= std::distance(__first
, __last
);
20048 _M_initialize(__n
);
20049 std::copy(__first
, __last
, this->_M_impl
._M_start
);
20052 template<class _InputIterator
>
20054 _M_insert_range(iterator __pos
, _InputIterator __first
,
20055 _InputIterator __last
, std::input_iterator_tag
)
20057 for (; __first
!= __last
; ++__first
)
20059 __pos
= insert(__pos
, *__first
);
20064 template<class _ForwardIterator
>
20066 _M_insert_range(iterator __position
, _ForwardIterator __first
,
20067 _ForwardIterator __last
, std::forward_iterator_tag
)
20069 if (__first
!= __last
)
20071 size_type __n
= std::distance(__first
, __last
);
20072 if (capacity() - size() >= __n
)
20074 std::copy_backward(__position
, end(),
20075 this->_M_impl
._M_finish
20076 + difference_type(__n
));
20077 std::copy(__first
, __last
, __position
);
20078 this->_M_impl
._M_finish
+= difference_type(__n
);
20082 const size_type __len
= size() + std::max(size(), __n
);
20083 _Bit_type
* __q
= this->_M_allocate(__len
);
20084 iterator __i
= std::copy(begin(), __position
,
20086 __i
= std::copy(__first
, __last
, __i
);
20087 this->_M_impl
._M_finish
= std::copy(__position
, end(), __i
);
20088 this->_M_deallocate();
20089 this->_M_impl
._M_end_of_storage
= (__q
20091 + int(_S_word_bit
) - 1)
20092 / int(_S_word_bit
)));
20093 this->_M_impl
._M_start
= iterator(__q
, 0);
20101 { return this->_M_impl
._M_start
; }
20105 { return this->_M_impl
._M_start
; }
20109 { return this->_M_impl
._M_finish
; }
20113 { return this->_M_impl
._M_finish
; }
20117 { return reverse_iterator(end()); }
20119 const_reverse_iterator
20121 { return const_reverse_iterator(end()); }
20125 { return reverse_iterator(begin()); }
20127 const_reverse_iterator
20129 { return const_reverse_iterator(begin()); }
20133 { return size_type(end() - begin()); }
20137 { return size_type(-1); }
20141 { return size_type(const_iterator(this->_M_impl
._M_end_of_storage
, 0)
20145 { return begin() == end(); }
20148 operator[](size_type __n
)
20149 { return *(begin() + difference_type(__n
)); }
20152 operator[](size_type __n
) const
20153 { return *(begin() + difference_type(__n
)); }
20156 _M_range_check(size_type __n
) const
20158 if (__n
>= this->size())
20159 __throw_out_of_range(("vector<bool>::_M_range_check"));
20164 { _M_range_check(__n
); return (*this)[__n
]; }
20167 at(size_type __n
) const
20168 { _M_range_check(__n
); return (*this)[__n
]; }
20171 vector(const allocator_type
& __a
= allocator_type())
20172 : _Bvector_base
<_Alloc
>(__a
) { }
20174 vector(size_type __n
, bool __value
,
20175 const allocator_type
& __a
= allocator_type())
20176 : _Bvector_base
<_Alloc
>(__a
)
20178 _M_initialize(__n
);
20179 std::fill(this->_M_impl
._M_start
._M_p
, this->_M_impl
._M_end_of_storage
,
20184 vector(size_type __n
)
20185 : _Bvector_base
<_Alloc
>(allocator_type())
20187 _M_initialize(__n
);
20188 std::fill(this->_M_impl
._M_start
._M_p
,
20189 this->_M_impl
._M_end_of_storage
, 0);
20192 vector(const vector
& __x
)
20193 : _Bvector_base
<_Alloc
>(__x
.get_allocator())
20195 _M_initialize(__x
.size());
20196 std::copy(__x
.begin(), __x
.end(), this->_M_impl
._M_start
);
20200 template<class _Integer
>
20202 _M_initialize_dispatch(_Integer __n
, _Integer __x
, __true_type
)
20204 _M_initialize(__n
);
20205 std::fill(this->_M_impl
._M_start
._M_p
,
20206 this->_M_impl
._M_end_of_storage
, __x
? ~0 : 0);
20209 template<class _InputIterator
>
20211 _M_initialize_dispatch(_InputIterator __first
, _InputIterator __last
,
20213 { _M_initialize_range(__first
, __last
,
20214 std::__iterator_category(__first
)); }
20216 template<class _InputIterator
>
20217 vector(_InputIterator __first
, _InputIterator __last
,
20218 const allocator_type
& __a
= allocator_type())
20219 : _Bvector_base
<_Alloc
>(__a
)
20221 typedef typename
std::__is_integer
<_InputIterator
>::__type _Integral
;
20222 _M_initialize_dispatch(__first
, __last
, _Integral());
20228 operator=(const vector
& __x
)
20232 if (__x
.size() > capacity())
20234 this->_M_deallocate();
20235 _M_initialize(__x
.size());
20237 std::copy(__x
.begin(), __x
.end(), begin());
20238 this->_M_impl
._M_finish
= begin() + difference_type(__x
.size());
20248 _M_fill_assign(size_t __n
, bool __x
)
20252 std::fill(this->_M_impl
._M_start
._M_p
,
20253 this->_M_impl
._M_end_of_storage
, __x
? ~0 : 0);
20254 insert(end(), __n
- size(), __x
);
20258 erase(begin() + __n
, end());
20259 std::fill(this->_M_impl
._M_start
._M_p
,
20260 this->_M_impl
._M_end_of_storage
, __x
? ~0 : 0);
20265 assign(size_t __n
, bool __x
)
20266 { _M_fill_assign(__n
, __x
); }
20268 template<class _InputIterator
>
20270 assign(_InputIterator __first
, _InputIterator __last
)
20272 typedef typename
std::__is_integer
<_InputIterator
>::__type _Integral
;
20273 _M_assign_dispatch(__first
, __last
, _Integral());
20276 template<class _Integer
>
20278 _M_assign_dispatch(_Integer __n
, _Integer __val
, __true_type
)
20279 { _M_fill_assign((size_t) __n
, (bool) __val
); }
20281 template<class _InputIterator
>
20283 _M_assign_dispatch(_InputIterator __first
, _InputIterator __last
,
20285 { _M_assign_aux(__first
, __last
, std::__iterator_category(__first
)); }
20287 template<class _InputIterator
>
20289 _M_assign_aux(_InputIterator __first
, _InputIterator __last
,
20290 std::input_iterator_tag
)
20292 iterator __cur
= begin();
20293 for (; __first
!= __last
&& __cur
!= end(); ++__cur
, ++__first
)
20295 if (__first
== __last
)
20296 erase(__cur
, end());
20298 insert(end(), __first
, __last
);
20301 template<class _ForwardIterator
>
20303 _M_assign_aux(_ForwardIterator __first
, _ForwardIterator __last
,
20304 std::forward_iterator_tag
)
20306 const size_type __len
= std::distance(__first
, __last
);
20307 if (__len
< size())
20308 erase(std::copy(__first
, __last
, begin()), end());
20311 _ForwardIterator __mid
= __first
;
20312 std::advance(__mid
, size());
20313 std::copy(__first
, __mid
, begin());
20314 insert(end(), __mid
, __last
);
20319 reserve(size_type __n
)
20321 if (__n
> this->max_size())
20322 __throw_length_error(("vector::reserve"));
20323 if (this->capacity() < __n
)
20325 _Bit_type
* __q
= this->_M_allocate(__n
);
20326 this->_M_impl
._M_finish
= std::copy(begin(), end(),
20328 this->_M_deallocate();
20329 this->_M_impl
._M_start
= iterator(__q
, 0);
20330 this->_M_impl
._M_end_of_storage
= (__q
+ (__n
+ int(_S_word_bit
) - 1)
20331 / int(_S_word_bit
));
20337 { return *begin(); }
20341 { return *begin(); }
20345 { return *(end() - 1); }
20349 { return *(end() - 1); }
20360 push_back(bool __x
)
20362 if (this->_M_impl
._M_finish
._M_p
!= this->_M_impl
._M_end_of_storage
)
20363 *this->_M_impl
._M_finish
++ = __x
;
20365 _M_insert_aux(end(), __x
);
20369 swap(vector
<bool, _Alloc
>& __x
)
20371 std::swap(this->_M_impl
._M_start
, __x
._M_impl
._M_start
);
20372 std::swap(this->_M_impl
._M_finish
, __x
._M_impl
._M_finish
);
20373 std::swap(this->_M_impl
._M_end_of_storage
,
20374 __x
._M_impl
._M_end_of_storage
);
20379 swap(reference __x
, reference __y
)
20387 insert(iterator __position
, bool __x
= bool())
20389 const difference_type __n
= __position
- begin();
20390 if (this->_M_impl
._M_finish
._M_p
!= this->_M_impl
._M_end_of_storage
20391 && __position
== end())
20392 *this->_M_impl
._M_finish
++ = __x
;
20394 _M_insert_aux(__position
, __x
);
20395 return begin() + __n
;
20400 template<class _Integer
>
20402 _M_insert_dispatch(iterator __pos
, _Integer __n
, _Integer __x
,
20404 { _M_fill_insert(__pos
, __n
, __x
); }
20406 template<class _InputIterator
>
20408 _M_insert_dispatch(iterator __pos
,
20409 _InputIterator __first
, _InputIterator __last
,
20411 { _M_insert_range(__pos
, __first
, __last
,
20412 std::__iterator_category(__first
)); }
20414 template<class _InputIterator
>
20416 insert(iterator __position
,
20417 _InputIterator __first
, _InputIterator __last
)
20419 typedef typename
std::__is_integer
<_InputIterator
>::__type _Integral
;
20420 _M_insert_dispatch(__position
, __first
, __last
, _Integral());
20424 _M_fill_insert(iterator __position
, size_type __n
, bool __x
)
20428 if (capacity() - size() >= __n
)
20430 std::copy_backward(__position
, end(),
20431 this->_M_impl
._M_finish
+ difference_type(__n
));
20432 std::fill(__position
, __position
+ difference_type(__n
), __x
);
20433 this->_M_impl
._M_finish
+= difference_type(__n
);
20437 const size_type __len
= size() + std::max(size(), __n
);
20438 _Bit_type
* __q
= this->_M_allocate(__len
);
20439 iterator __i
= std::copy(begin(), __position
, iterator(__q
, 0));
20440 std::fill_n(__i
, __n
, __x
);
20441 this->_M_impl
._M_finish
= std::copy(__position
, end(),
20442 __i
+ difference_type(__n
));
20443 this->_M_deallocate();
20444 this->_M_impl
._M_end_of_storage
= (__q
+ ((__len
20445 + int(_S_word_bit
) - 1)
20446 / int(_S_word_bit
)));
20447 this->_M_impl
._M_start
= iterator(__q
, 0);
20452 insert(iterator __position
, size_type __n
, bool __x
)
20453 { _M_fill_insert(__position
, __n
, __x
); }
20457 { --this->_M_impl
._M_finish
; }
20460 erase(iterator __position
)
20462 if (__position
+ 1 != end())
20463 std::copy(__position
+ 1, end(), __position
);
20464 --this->_M_impl
._M_finish
;
20469 erase(iterator __first
, iterator __last
)
20471 this->_M_impl
._M_finish
= std::copy(__last
, end(), __first
);
20476 resize(size_type __new_size
, bool __x
= bool())
20478 if (__new_size
< size())
20479 erase(begin() + difference_type(__new_size
), end());
20481 insert(end(), __new_size
- size(), __x
);
20487 for (_Bit_type
* __p
= this->_M_impl
._M_start
._M_p
;
20488 __p
!= this->_M_impl
._M_end_of_storage
; ++__p
)
20494 { erase(begin(), end()); }
20497 # 73 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/vector" 2 3
20500 # 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/vector.tcc" 1 3
20501 # 64 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/vector.tcc" 3
20504 template<typename _Tp
, typename _Alloc
>
20506 vector
<_Tp
, _Alloc
>::
20507 reserve(size_type __n
)
20509 if (__n
> this->max_size())
20510 __throw_length_error(("vector::reserve"));
20511 if (this->capacity() < __n
)
20513 const size_type __old_size
= size();
20514 pointer __tmp
= _M_allocate_and_copy(__n
,
20515 this->_M_impl
._M_start
,
20516 this->_M_impl
._M_finish
);
20517 std::_Destroy(this->_M_impl
._M_start
, this->_M_impl
._M_finish
,
20518 _M_get_Tp_allocator());
20519 _M_deallocate(this->_M_impl
._M_start
,
20520 this->_M_impl
._M_end_of_storage
20521 - this->_M_impl
._M_start
);
20522 this->_M_impl
._M_start
= __tmp
;
20523 this->_M_impl
._M_finish
= __tmp
+ __old_size
;
20524 this->_M_impl
._M_end_of_storage
= this->_M_impl
._M_start
+ __n
;
20528 template<typename _Tp
, typename _Alloc
>
20529 typename vector
<_Tp
, _Alloc
>::iterator
20530 vector
<_Tp
, _Alloc
>::
20531 insert(iterator __position
, const value_type
& __x
)
20533 const size_type __n
= __position
- begin();
20534 if (this->_M_impl
._M_finish
!= this->_M_impl
._M_end_of_storage
20535 && __position
== end())
20537 this->_M_impl
.construct(this->_M_impl
._M_finish
, __x
);
20538 ++this->_M_impl
._M_finish
;
20541 _M_insert_aux(__position
, __x
);
20542 return begin() + __n
;
20545 template<typename _Tp
, typename _Alloc
>
20546 typename vector
<_Tp
, _Alloc
>::iterator
20547 vector
<_Tp
, _Alloc
>::
20548 erase(iterator __position
)
20550 if (__position
+ 1 != end())
20551 std::copy(__position
+ 1, end(), __position
);
20552 --this->_M_impl
._M_finish
;
20553 this->_M_impl
.destroy(this->_M_impl
._M_finish
);
20557 template<typename _Tp
, typename _Alloc
>
20558 typename vector
<_Tp
, _Alloc
>::iterator
20559 vector
<_Tp
, _Alloc
>::
20560 erase(iterator __first
, iterator __last
)
20562 iterator
__i(std::copy(__last
, end(), __first
));
20563 std::_Destroy(__i
, end(), _M_get_Tp_allocator());
20564 this->_M_impl
._M_finish
= this->_M_impl
._M_finish
- (__last
- __first
);
20568 template<typename _Tp
, typename _Alloc
>
20569 vector
<_Tp
, _Alloc
>&
20570 vector
<_Tp
, _Alloc
>::
20571 operator=(const vector
<_Tp
, _Alloc
>& __x
)
20575 const size_type __xlen
= __x
.size();
20576 if (__xlen
> capacity())
20578 pointer __tmp
= _M_allocate_and_copy(__xlen
, __x
.begin(),
20580 std::_Destroy(this->_M_impl
._M_start
, this->_M_impl
._M_finish
,
20581 _M_get_Tp_allocator());
20582 _M_deallocate(this->_M_impl
._M_start
,
20583 this->_M_impl
._M_end_of_storage
20584 - this->_M_impl
._M_start
);
20585 this->_M_impl
._M_start
= __tmp
;
20586 this->_M_impl
._M_end_of_storage
= this->_M_impl
._M_start
+ __xlen
;
20588 else if (size() >= __xlen
)
20590 iterator
__i(std::copy(__x
.begin(), __x
.end(), begin()));
20591 std::_Destroy(__i
, end(), _M_get_Tp_allocator());
20595 std::copy(__x
.begin(), __x
.begin() + size(),
20596 this->_M_impl
._M_start
);
20597 std::__uninitialized_copy_a(__x
.begin() + size(),
20598 __x
.end(), this->_M_impl
._M_finish
,
20599 _M_get_Tp_allocator());
20601 this->_M_impl
._M_finish
= this->_M_impl
._M_start
+ __xlen
;
20606 template<typename _Tp
, typename _Alloc
>
20608 vector
<_Tp
, _Alloc
>::
20609 _M_fill_assign(size_t __n
, const value_type
& __val
)
20611 if (__n
> capacity())
20613 vector
__tmp(__n
, __val
, _M_get_Tp_allocator());
20616 else if (__n
> size())
20618 std::fill(begin(), end(), __val
);
20619 std::__uninitialized_fill_n_a(this->_M_impl
._M_finish
,
20620 __n
- size(), __val
,
20621 _M_get_Tp_allocator());
20622 this->_M_impl
._M_finish
+= __n
- size();
20625 erase(std::fill_n(begin(), __n
, __val
), end());
20628 template<typename _Tp
, typename _Alloc
>
20629 template<typename _InputIterator
>
20631 vector
<_Tp
, _Alloc
>::
20632 _M_assign_aux(_InputIterator __first
, _InputIterator __last
,
20633 std::input_iterator_tag
)
20635 iterator
__cur(begin());
20636 for (; __first
!= __last
&& __cur
!= end(); ++__cur
, ++__first
)
20638 if (__first
== __last
)
20639 erase(__cur
, end());
20641 insert(end(), __first
, __last
);
20644 template<typename _Tp
, typename _Alloc
>
20645 template<typename _ForwardIterator
>
20647 vector
<_Tp
, _Alloc
>::
20648 _M_assign_aux(_ForwardIterator __first
, _ForwardIterator __last
,
20649 std::forward_iterator_tag
)
20651 const size_type __len
= std::distance(__first
, __last
);
20653 if (__len
> capacity())
20655 pointer
__tmp(_M_allocate_and_copy(__len
, __first
, __last
));
20656 std::_Destroy(this->_M_impl
._M_start
, this->_M_impl
._M_finish
,
20657 _M_get_Tp_allocator());
20658 _M_deallocate(this->_M_impl
._M_start
,
20659 this->_M_impl
._M_end_of_storage
20660 - this->_M_impl
._M_start
);
20661 this->_M_impl
._M_start
= __tmp
;
20662 this->_M_impl
._M_finish
= this->_M_impl
._M_start
+ __len
;
20663 this->_M_impl
._M_end_of_storage
= this->_M_impl
._M_finish
;
20665 else if (size() >= __len
)
20667 iterator
__new_finish(std::copy(__first
, __last
,
20668 this->_M_impl
._M_start
));
20669 std::_Destroy(__new_finish
, end(), _M_get_Tp_allocator());
20670 this->_M_impl
._M_finish
= __new_finish
.base();
20674 _ForwardIterator __mid
= __first
;
20675 std::advance(__mid
, size());
20676 std::copy(__first
, __mid
, this->_M_impl
._M_start
);
20677 this->_M_impl
._M_finish
=
20678 std::__uninitialized_copy_a(__mid
, __last
,
20679 this->_M_impl
._M_finish
,
20680 _M_get_Tp_allocator());
20684 template<typename _Tp
, typename _Alloc
>
20686 vector
<_Tp
, _Alloc
>::
20687 _M_insert_aux(iterator __position
, const _Tp
& __x
)
20689 if (this->_M_impl
._M_finish
!= this->_M_impl
._M_end_of_storage
)
20691 this->_M_impl
.construct(this->_M_impl
._M_finish
,
20692 *(this->_M_impl
._M_finish
- 1));
20693 ++this->_M_impl
._M_finish
;
20694 _Tp __x_copy
= __x
;
20695 std::copy_backward(__position
,
20696 iterator(this->_M_impl
._M_finish
-2),
20697 iterator(this->_M_impl
._M_finish
-1));
20698 *__position
= __x_copy
;
20702 const size_type __old_size
= size();
20703 if (__old_size
== this->max_size())
20704 __throw_length_error(("vector::_M_insert_aux"));
20709 size_type __len
= __old_size
!= 0 ? 2 * __old_size
: 1;
20710 if (__len
< __old_size
)
20711 __len
= this->max_size();
20713 iterator
__new_start(this->_M_allocate(__len
));
20714 iterator
__new_finish(__new_start
);
20718 std::__uninitialized_copy_a(iterator(this->_M_impl
._M_start
),
20721 _M_get_Tp_allocator());
20722 this->_M_impl
.construct(__new_finish
.base(), __x
);
20725 std::__uninitialized_copy_a(__position
,
20726 iterator(this->_M_impl
._M_finish
),
20728 _M_get_Tp_allocator());
20732 std::_Destroy(__new_start
, __new_finish
, _M_get_Tp_allocator());
20733 _M_deallocate(__new_start
.base(),__len
);
20736 std::_Destroy(begin(), end(), _M_get_Tp_allocator());
20737 _M_deallocate(this->_M_impl
._M_start
,
20738 this->_M_impl
._M_end_of_storage
20739 - this->_M_impl
._M_start
);
20740 this->_M_impl
._M_start
= __new_start
.base();
20741 this->_M_impl
._M_finish
= __new_finish
.base();
20742 this->_M_impl
._M_end_of_storage
= __new_start
.base() + __len
;
20746 template<typename _Tp
, typename _Alloc
>
20748 vector
<_Tp
, _Alloc
>::
20749 _M_fill_insert(iterator __position
, size_type __n
, const value_type
& __x
)
20753 if (size_type(this->_M_impl
._M_end_of_storage
20754 - this->_M_impl
._M_finish
) >= __n
)
20756 value_type __x_copy
= __x
;
20757 const size_type __elems_after
= end() - __position
;
20758 iterator
__old_finish(this->_M_impl
._M_finish
);
20759 if (__elems_after
> __n
)
20761 std::__uninitialized_copy_a(this->_M_impl
._M_finish
- __n
,
20762 this->_M_impl
._M_finish
,
20763 this->_M_impl
._M_finish
,
20764 _M_get_Tp_allocator());
20765 this->_M_impl
._M_finish
+= __n
;
20766 std::copy_backward(__position
, __old_finish
- __n
,
20768 std::fill(__position
, __position
+ __n
, __x_copy
);
20772 std::__uninitialized_fill_n_a(this->_M_impl
._M_finish
,
20773 __n
- __elems_after
,
20775 _M_get_Tp_allocator());
20776 this->_M_impl
._M_finish
+= __n
- __elems_after
;
20777 std::__uninitialized_copy_a(__position
, __old_finish
,
20778 this->_M_impl
._M_finish
,
20779 _M_get_Tp_allocator());
20780 this->_M_impl
._M_finish
+= __elems_after
;
20781 std::fill(__position
, __old_finish
, __x_copy
);
20786 const size_type __old_size
= size();
20787 if (this->max_size() - __old_size
< __n
)
20788 __throw_length_error(("vector::_M_fill_insert"));
20791 size_type __len
= __old_size
+ std::max(__old_size
, __n
);
20792 if (__len
< __old_size
)
20793 __len
= this->max_size();
20795 iterator
__new_start(this->_M_allocate(__len
));
20796 iterator
__new_finish(__new_start
);
20800 std::__uninitialized_copy_a(begin(), __position
,
20802 _M_get_Tp_allocator());
20803 std::__uninitialized_fill_n_a(__new_finish
, __n
, __x
,
20804 _M_get_Tp_allocator());
20805 __new_finish
+= __n
;
20807 std::__uninitialized_copy_a(__position
, end(), __new_finish
,
20808 _M_get_Tp_allocator());
20812 std::_Destroy(__new_start
, __new_finish
,
20813 _M_get_Tp_allocator());
20814 _M_deallocate(__new_start
.base(), __len
);
20817 std::_Destroy(this->_M_impl
._M_start
, this->_M_impl
._M_finish
,
20818 _M_get_Tp_allocator());
20819 _M_deallocate(this->_M_impl
._M_start
,
20820 this->_M_impl
._M_end_of_storage
20821 - this->_M_impl
._M_start
);
20822 this->_M_impl
._M_start
= __new_start
.base();
20823 this->_M_impl
._M_finish
= __new_finish
.base();
20824 this->_M_impl
._M_end_of_storage
= __new_start
.base() + __len
;
20829 template<typename _Tp
, typename _Alloc
> template<typename _InputIterator
>
20831 vector
<_Tp
, _Alloc
>::
20832 _M_range_insert(iterator __pos
, _InputIterator __first
,
20833 _InputIterator __last
, std::input_iterator_tag
)
20835 for (; __first
!= __last
; ++__first
)
20837 __pos
= insert(__pos
, *__first
);
20842 template<typename _Tp
, typename _Alloc
>
20843 template<typename _ForwardIterator
>
20845 vector
<_Tp
, _Alloc
>::
20846 _M_range_insert(iterator __position
, _ForwardIterator __first
,
20847 _ForwardIterator __last
, std::forward_iterator_tag
)
20849 if (__first
!= __last
)
20851 const size_type __n
= std::distance(__first
, __last
);
20852 if (size_type(this->_M_impl
._M_end_of_storage
20853 - this->_M_impl
._M_finish
) >= __n
)
20855 const size_type __elems_after
= end() - __position
;
20856 iterator
__old_finish(this->_M_impl
._M_finish
);
20857 if (__elems_after
> __n
)
20859 std::__uninitialized_copy_a(this->_M_impl
._M_finish
- __n
,
20860 this->_M_impl
._M_finish
,
20861 this->_M_impl
._M_finish
,
20862 _M_get_Tp_allocator());
20863 this->_M_impl
._M_finish
+= __n
;
20864 std::copy_backward(__position
, __old_finish
- __n
,
20866 std::copy(__first
, __last
, __position
);
20870 _ForwardIterator __mid
= __first
;
20871 std::advance(__mid
, __elems_after
);
20872 std::__uninitialized_copy_a(__mid
, __last
,
20873 this->_M_impl
._M_finish
,
20874 _M_get_Tp_allocator());
20875 this->_M_impl
._M_finish
+= __n
- __elems_after
;
20876 std::__uninitialized_copy_a(__position
, __old_finish
,
20877 this->_M_impl
._M_finish
,
20878 _M_get_Tp_allocator());
20879 this->_M_impl
._M_finish
+= __elems_after
;
20880 std::copy(__first
, __mid
, __position
);
20885 const size_type __old_size
= size();
20886 if (this->max_size() - __old_size
< __n
)
20887 __throw_length_error(("vector::_M_range_insert"));
20890 size_type __len
= __old_size
+ std::max(__old_size
, __n
);
20891 if (__len
< __old_size
)
20892 __len
= this->max_size();
20894 iterator
__new_start(this->_M_allocate(__len
));
20895 iterator
__new_finish(__new_start
);
20899 std::__uninitialized_copy_a(iterator(this->_M_impl
._M_start
),
20902 _M_get_Tp_allocator());
20904 std::__uninitialized_copy_a(__first
, __last
, __new_finish
,
20905 _M_get_Tp_allocator());
20907 std::__uninitialized_copy_a(__position
,
20908 iterator(this->_M_impl
._M_finish
),
20910 _M_get_Tp_allocator());
20914 std::_Destroy(__new_start
,__new_finish
,
20915 _M_get_Tp_allocator());
20916 _M_deallocate(__new_start
.base(), __len
);
20919 std::_Destroy(this->_M_impl
._M_start
, this->_M_impl
._M_finish
,
20920 _M_get_Tp_allocator());
20921 _M_deallocate(this->_M_impl
._M_start
,
20922 this->_M_impl
._M_end_of_storage
20923 - this->_M_impl
._M_start
);
20924 this->_M_impl
._M_start
= __new_start
.base();
20925 this->_M_impl
._M_finish
= __new_finish
.base();
20926 this->_M_impl
._M_end_of_storage
= __new_start
.base() + __len
;
20931 # 76 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/vector" 2 3
20938 #pragma GCC visibility pop
20939 # 22 "../ast/identifier.h" 2
20943 # 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/ext/hash_map" 1 3
20944 # 64 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/ext/hash_map" 3
20945 #pragma GCC visibility push(default)
20947 # 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/ext/hashtable.h" 1 3
20948 # 68 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/ext/hashtable.h" 3
20949 # 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/iterator" 1 3
20950 # 63 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/iterator" 3
20952 # 64 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/iterator" 3
20953 #pragma GCC visibility push(default)
20960 # 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/ostream" 1 3
20961 # 42 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/ostream" 3
20963 # 43 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/ostream" 3
20964 #pragma GCC visibility push(default)
20966 # 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/ios" 1 3
20967 # 42 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/ios" 3
20969 # 43 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/ios" 3
20970 #pragma GCC visibility push(default)
20976 # 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/localefwd.h" 1 3
20977 # 43 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/localefwd.h" 3
20979 # 44 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/localefwd.h" 3
20992 template<typename _CharT
>
20994 isspace(_CharT
, const locale
&);
20996 template<typename _CharT
>
20998 isprint(_CharT
, const locale
&);
21000 template<typename _CharT
>
21002 iscntrl(_CharT
, const locale
&);
21004 template<typename _CharT
>
21006 isupper(_CharT
, const locale
&);
21008 template<typename _CharT
>
21010 islower(_CharT
, const locale
&);
21012 template<typename _CharT
>
21014 isalpha(_CharT
, const locale
&);
21016 template<typename _CharT
>
21018 isdigit(_CharT
, const locale
&);
21020 template<typename _CharT
>
21022 ispunct(_CharT
, const locale
&);
21024 template<typename _CharT
>
21026 isxdigit(_CharT
, const locale
&);
21028 template<typename _CharT
>
21030 isalnum(_CharT
, const locale
&);
21032 template<typename _CharT
>
21034 isgraph(_CharT
, const locale
&);
21036 template<typename _CharT
>
21038 toupper(_CharT
, const locale
&);
21040 template<typename _CharT
>
21042 tolower(_CharT
, const locale
&);
21046 template<typename _CharT
>
21048 template<> class ctype
<char>;
21050 template<> class ctype
<wchar_t>;
21052 template<typename _CharT
>
21053 class ctype_byname
;
21056 class codecvt_base
;
21057 class __enc_traits
;
21058 template<typename _InternT
, typename _ExternT
, typename _StateT
>
21060 template<> class codecvt
<char, char, mbstate_t>;
21062 template<> class codecvt
<wchar_t, char, mbstate_t>;
21064 template<typename _InternT
, typename _ExternT
, typename _StateT
>
21065 class codecvt_byname
;
21068 template<typename _CharT
, typename _InIter
= istreambuf_iterator
<_CharT
> >
21070 template<typename _CharT
, typename _OutIter
= ostreambuf_iterator
<_CharT
> >
21072 template<typename _CharT
> class numpunct
;
21073 template<typename _CharT
> class numpunct_byname
;
21076 template<typename _CharT
>
21078 template<typename _CharT
> class
21083 template<typename _CharT
, typename _InIter
= istreambuf_iterator
<_CharT
> >
21085 template<typename _CharT
, typename _InIter
= istreambuf_iterator
<_CharT
> >
21086 class time_get_byname
;
21087 template<typename _CharT
, typename _OutIter
= ostreambuf_iterator
<_CharT
> >
21089 template<typename _CharT
, typename _OutIter
= ostreambuf_iterator
<_CharT
> >
21090 class time_put_byname
;
21094 template<typename _CharT
, typename _InIter
= istreambuf_iterator
<_CharT
> >
21096 template<typename _CharT
, typename _OutIter
= ostreambuf_iterator
<_CharT
> >
21098 template<typename _CharT
, bool _Intl
= false>
21100 template<typename _CharT
, bool _Intl
= false>
21101 class moneypunct_byname
;
21104 class messages_base
;
21105 template<typename _CharT
>
21107 template<typename _CharT
>
21108 class messages_byname
;
21110 template<typename _Facet
>
21112 has_facet(const locale
& __loc
) throw();
21114 template<typename _Facet
>
21116 use_facet(const locale
& __loc
);
21118 template<typename _Facet
>
21119 inline const _Facet
&
21120 __check_facet(const _Facet
* __f
)
21123 __throw_bad_cast();
21127 # 50 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/ios" 2 3
21128 # 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/ios_base.h" 1 3
21129 # 43 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/ios_base.h" 3
21131 # 44 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/ios_base.h" 3
21135 # 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_classes.h" 1 3
21136 # 43 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_classes.h" 3
21138 # 44 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_classes.h" 3
21148 # 67 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_classes.h" 3
21154 typedef int category
;
21161 friend class facet
;
21162 friend class _Impl
;
21164 template<typename _Facet
>
21166 has_facet(const locale
&) throw();
21168 template<typename _Facet
>
21169 friend const _Facet
&
21170 use_facet(const locale
&);
21172 template<typename _Cache
>
21173 friend struct __use_cache
;
21174 # 105 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_classes.h" 3
21175 static const category none
= 0;
21176 static const category ctype
= 1L << 0;
21177 static const category numeric
= 1L << 1;
21178 static const category collate
= 1L << 2;
21179 static const category time
= 1L << 3;
21180 static const category monetary
= 1L << 4;
21181 static const category messages
= 1L << 5;
21182 static const category all
= (ctype
| numeric
| collate
|
21183 time
| monetary
| messages
);
21184 # 124 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_classes.h" 3
21186 # 133 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_classes.h" 3
21187 locale(const locale
& __other
) throw();
21188 # 143 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_classes.h" 3
21190 locale(const char* __s
);
21191 # 158 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_classes.h" 3
21192 locale(const locale
& __base
, const char* __s
, category __cat
);
21193 # 171 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_classes.h" 3
21194 locale(const locale
& __base
, const locale
& __add
, category __cat
);
21195 # 183 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_classes.h" 3
21196 template<typename _Facet
>
21197 locale(const locale
& __other
, _Facet
* __f
);
21201 # 197 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_classes.h" 3
21203 operator=(const locale
& __other
) throw();
21204 # 212 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_classes.h" 3
21205 template<typename _Facet
>
21207 combine(const locale
& __other
) const;
21216 # 231 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_classes.h" 3
21218 operator==(const locale
& __other
) const throw ();
21227 operator!=(const locale
& __other
) const throw ()
21228 { return !(this->operator==(__other
)); }
21229 # 259 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_classes.h" 3
21230 template<typename _Char
, typename _Traits
, typename _Alloc
>
21232 operator()(const basic_string
<_Char
, _Traits
, _Alloc
>& __s1
,
21233 const basic_string
<_Char
, _Traits
, _Alloc
>& __s2
) const;
21234 # 275 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_classes.h" 3
21236 global(const locale
&);
21241 static const locale
&
21249 static _Impl
* _S_classic
;
21252 static _Impl
* _S_global
;
21258 static const char* const* const _S_categories
;
21259 # 310 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_classes.h" 3
21260 enum { _S_categories_size
= 6 + 6 };
21263 static __gthread_once_t _S_once
;
21267 locale(_Impl
*) throw();
21273 _S_initialize_once();
21276 _S_normalize_category(category
);
21279 _M_coalesce(const locale
& __base
, const locale
& __add
, category __cat
);
21281 # 343 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_classes.h" 3
21282 class locale::facet
21285 friend class locale
;
21286 friend class locale::_Impl
;
21288 mutable _Atomic_word _M_refcount
;
21291 static __c_locale _S_c_locale
;
21294 static const char _S_c_name
[2];
21297 static __gthread_once_t _S_once
;
21301 _S_initialize_once();
21304 # 374 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_classes.h" 3
21306 facet(size_t __refs
= 0) throw() : _M_refcount(__refs
? 1 : 0)
21314 _S_create_c_locale(__c_locale
& __cloc
, const char* __s
,
21315 __c_locale __old
= 0);
21318 _S_clone_c_locale(__c_locale
& __cloc
);
21321 _S_destroy_c_locale(__c_locale
& __cloc
);
21333 _M_add_reference() const throw()
21334 { __gnu_cxx::__atomic_add(&_M_refcount
, 1); }
21337 _M_remove_reference() const throw()
21339 if (__gnu_cxx::__exchange_and_add(&_M_refcount
, -1) == 1)
21348 facet(const facet
&);
21351 operator=(const facet
&);
21353 # 434 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_classes.h" 3
21357 friend class locale
;
21358 friend class locale::_Impl
;
21360 template<typename _Facet
>
21361 friend const _Facet
&
21362 use_facet(const locale
&);
21364 template<typename _Facet
>
21366 has_facet(const locale
&) throw ();
21371 mutable size_t _M_index
;
21374 static _Atomic_word _S_refcount
;
21377 operator=(const id
&);
21393 class locale::_Impl
21397 friend class locale
;
21398 friend class locale::facet
;
21400 template<typename _Facet
>
21402 has_facet(const locale
&) throw();
21404 template<typename _Facet
>
21405 friend const _Facet
&
21406 use_facet(const locale
&);
21408 template<typename _Cache
>
21409 friend struct __use_cache
;
21413 _Atomic_word _M_refcount
;
21414 const facet
** _M_facets
;
21415 size_t _M_facets_size
;
21416 const facet
** _M_caches
;
21418 static const locale::id
* const _S_id_ctype
[];
21419 static const locale::id
* const _S_id_numeric
[];
21420 static const locale::id
* const _S_id_collate
[];
21421 static const locale::id
* const _S_id_time
[];
21422 static const locale::id
* const _S_id_monetary
[];
21423 static const locale::id
* const _S_id_messages
[];
21424 static const locale::id
* const* const _S_facet_categories
[];
21427 _M_add_reference() throw()
21428 { __gnu_cxx::__atomic_add(&_M_refcount
, 1); }
21431 _M_remove_reference() throw()
21433 if (__gnu_cxx::__exchange_and_add(&_M_refcount
, -1) == 1)
21442 _Impl(const _Impl
&, size_t);
21443 _Impl(const char*, size_t);
21444 _Impl(size_t) throw();
21448 _Impl(const _Impl
&);
21451 operator=(const _Impl
&);
21454 _M_check_same_name()
21459 for (size_t __i
= 0; __ret
&& __i
< _S_categories_size
- 1; ++__i
)
21460 __ret
= std::strcmp(_M_names
[__i
], _M_names
[__i
+ 1]) == 0;
21465 _M_replace_categories(const _Impl
*, category
);
21468 _M_replace_category(const _Impl
*, const locale::id
* const*);
21471 _M_replace_facet(const _Impl
*, const locale::id
*);
21474 _M_install_facet(const locale::id
*, const facet
*);
21476 template<typename _Facet
>
21478 _M_init_facet(_Facet
* __facet
)
21479 { _M_install_facet(&_Facet::id
, __facet
); }
21482 _M_install_cache(const facet
*, size_t);
21485 template<typename _Facet
>
21486 locale::locale(const locale
& __other
, _Facet
* __f
)
21488 _M_impl
= new _Impl(*__other
._M_impl
, 1);
21491 { _M_impl
->_M_install_facet(&_Facet::id
, __f
); }
21494 _M_impl
->_M_remove_reference();
21497 delete [] _M_impl
->_M_names
[0];
21498 _M_impl
->_M_names
[0] = 0;
21501 # 48 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/ios_base.h" 2 3
21511 _S_boolalpha
= 1L << 0,
21513 _S_fixed
= 1L << 2,
21515 _S_internal
= 1L << 4,
21518 _S_right
= 1L << 7,
21519 _S_scientific
= 1L << 8,
21520 _S_showbase
= 1L << 9,
21521 _S_showpoint
= 1L << 10,
21522 _S_showpos
= 1L << 11,
21523 _S_skipws
= 1L << 12,
21524 _S_unitbuf
= 1L << 13,
21525 _S_uppercase
= 1L << 14,
21526 _S_adjustfield
= _S_left
| _S_right
| _S_internal
,
21527 _S_basefield
= _S_dec
| _S_oct
| _S_hex
,
21528 _S_floatfield
= _S_scientific
| _S_fixed
,
21529 _S_ios_fmtflags_end
= 1L << 16
21532 inline _Ios_Fmtflags
21533 operator&(_Ios_Fmtflags __a
, _Ios_Fmtflags __b
)
21534 { return _Ios_Fmtflags(static_cast<int>(__a
) & static_cast<int>(__b
)); }
21536 inline _Ios_Fmtflags
21537 operator|(_Ios_Fmtflags __a
, _Ios_Fmtflags __b
)
21538 { return _Ios_Fmtflags(static_cast<int>(__a
) | static_cast<int>(__b
)); }
21540 inline _Ios_Fmtflags
21541 operator^(_Ios_Fmtflags __a
, _Ios_Fmtflags __b
)
21542 { return _Ios_Fmtflags(static_cast<int>(__a
) ^ static_cast<int>(__b
)); }
21544 inline _Ios_Fmtflags
&
21545 operator|=(_Ios_Fmtflags
& __a
, _Ios_Fmtflags __b
)
21546 { return __a
= __a
| __b
; }
21548 inline _Ios_Fmtflags
&
21549 operator&=(_Ios_Fmtflags
& __a
, _Ios_Fmtflags __b
)
21550 { return __a
= __a
& __b
; }
21552 inline _Ios_Fmtflags
&
21553 operator^=(_Ios_Fmtflags
& __a
, _Ios_Fmtflags __b
)
21554 { return __a
= __a
^ __b
; }
21556 inline _Ios_Fmtflags
21557 operator~(_Ios_Fmtflags __a
)
21558 { return _Ios_Fmtflags(~static_cast<int>(__a
)); }
21568 _S_trunc
= 1L << 5,
21569 _S_ios_openmode_end
= 1L << 16
21572 inline _Ios_Openmode
21573 operator&(_Ios_Openmode __a
, _Ios_Openmode __b
)
21574 { return _Ios_Openmode(static_cast<int>(__a
) & static_cast<int>(__b
)); }
21576 inline _Ios_Openmode
21577 operator|(_Ios_Openmode __a
, _Ios_Openmode __b
)
21578 { return _Ios_Openmode(static_cast<int>(__a
) | static_cast<int>(__b
)); }
21580 inline _Ios_Openmode
21581 operator^(_Ios_Openmode __a
, _Ios_Openmode __b
)
21582 { return _Ios_Openmode(static_cast<int>(__a
) ^ static_cast<int>(__b
)); }
21584 inline _Ios_Openmode
&
21585 operator|=(_Ios_Openmode
& __a
, _Ios_Openmode __b
)
21586 { return __a
= __a
| __b
; }
21588 inline _Ios_Openmode
&
21589 operator&=(_Ios_Openmode
& __a
, _Ios_Openmode __b
)
21590 { return __a
= __a
& __b
; }
21592 inline _Ios_Openmode
&
21593 operator^=(_Ios_Openmode
& __a
, _Ios_Openmode __b
)
21594 { return __a
= __a
^ __b
; }
21596 inline _Ios_Openmode
21597 operator~(_Ios_Openmode __a
)
21598 { return _Ios_Openmode(~static_cast<int>(__a
)); }
21604 _S_badbit
= 1L << 0,
21605 _S_eofbit
= 1L << 1,
21606 _S_failbit
= 1L << 2,
21607 _S_ios_iostate_end
= 1L << 16
21610 inline _Ios_Iostate
21611 operator&(_Ios_Iostate __a
, _Ios_Iostate __b
)
21612 { return _Ios_Iostate(static_cast<int>(__a
) & static_cast<int>(__b
)); }
21614 inline _Ios_Iostate
21615 operator|(_Ios_Iostate __a
, _Ios_Iostate __b
)
21616 { return _Ios_Iostate(static_cast<int>(__a
) | static_cast<int>(__b
)); }
21618 inline _Ios_Iostate
21619 operator^(_Ios_Iostate __a
, _Ios_Iostate __b
)
21620 { return _Ios_Iostate(static_cast<int>(__a
) ^ static_cast<int>(__b
)); }
21622 inline _Ios_Iostate
&
21623 operator|=(_Ios_Iostate
& __a
, _Ios_Iostate __b
)
21624 { return __a
= __a
| __b
; }
21626 inline _Ios_Iostate
&
21627 operator&=(_Ios_Iostate
& __a
, _Ios_Iostate __b
)
21628 { return __a
= __a
& __b
; }
21630 inline _Ios_Iostate
&
21631 operator^=(_Ios_Iostate
& __a
, _Ios_Iostate __b
)
21632 { return __a
= __a
^ __b
; }
21634 inline _Ios_Iostate
21635 operator~(_Ios_Iostate __a
)
21636 { return _Ios_Iostate(~static_cast<int>(__a
)); }
21643 _S_ios_seekdir_end
= 1L << 16
21645 # 201 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/ios_base.h" 3
21652 class failure
: public exception
21658 failure(const string
& __str
) throw();
21663 ~failure() throw();
21665 virtual const char*
21666 what() const throw();
21671 # 253 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/ios_base.h" 3
21672 typedef _Ios_Fmtflags fmtflags
;
21675 static const fmtflags boolalpha
= _S_boolalpha
;
21678 static const fmtflags dec
= _S_dec
;
21681 static const fmtflags fixed
= _S_fixed
;
21684 static const fmtflags hex
= _S_hex
;
21689 static const fmtflags internal
= _S_internal
;
21693 static const fmtflags left
= _S_left
;
21696 static const fmtflags oct
= _S_oct
;
21700 static const fmtflags right
= _S_right
;
21703 static const fmtflags scientific
= _S_scientific
;
21707 static const fmtflags showbase
= _S_showbase
;
21711 static const fmtflags showpoint
= _S_showpoint
;
21714 static const fmtflags showpos
= _S_showpos
;
21717 static const fmtflags skipws
= _S_skipws
;
21720 static const fmtflags unitbuf
= _S_unitbuf
;
21724 static const fmtflags uppercase
= _S_uppercase
;
21727 static const fmtflags adjustfield
= _S_adjustfield
;
21730 static const fmtflags basefield
= _S_basefield
;
21733 static const fmtflags floatfield
= _S_floatfield
;
21734 # 328 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/ios_base.h" 3
21735 typedef _Ios_Iostate iostate
;
21739 static const iostate badbit
= _S_badbit
;
21742 static const iostate eofbit
= _S_eofbit
;
21747 static const iostate failbit
= _S_failbit
;
21750 static const iostate goodbit
= _S_goodbit
;
21751 # 359 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/ios_base.h" 3
21752 typedef _Ios_Openmode openmode
;
21755 static const openmode app
= _S_app
;
21758 static const openmode ate
= _S_ate
;
21764 static const openmode binary
= _S_bin
;
21767 static const openmode in
= _S_in
;
21770 static const openmode out
= _S_out
;
21773 static const openmode trunc
= _S_trunc
;
21774 # 392 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/ios_base.h" 3
21775 typedef _Ios_Seekdir seekdir
;
21778 static const seekdir beg
= _S_beg
;
21781 static const seekdir cur
= _S_cur
;
21784 static const seekdir end
= _S_end
;
21787 typedef int io_state
;
21788 typedef int open_mode
;
21789 typedef int seek_dir
;
21791 typedef std::streampos streampos
;
21792 typedef std::streamoff streamoff
;
21793 # 418 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/ios_base.h" 3
21800 # 435 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/ios_base.h" 3
21801 typedef void (*event_callback
) (event
, ios_base
&, int);
21802 # 447 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/ios_base.h" 3
21804 register_callback(event_callback __fn
, int __index
);
21813 streamsize _M_precision
;
21814 streamsize _M_width
;
21816 iostate _M_exception
;
21817 iostate _M_streambuf_state
;
21822 struct _Callback_list
21825 _Callback_list
* _M_next
;
21826 ios_base::event_callback _M_fn
;
21828 _Atomic_word _M_refcount
;
21830 _Callback_list(ios_base::event_callback __fn
, int __index
,
21831 _Callback_list
* __cb
)
21832 : _M_next(__cb
), _M_fn(__fn
), _M_index(__index
), _M_refcount(0) { }
21835 _M_add_reference() { __gnu_cxx::__atomic_add(&_M_refcount
, 1); }
21839 _M_remove_reference()
21840 { return __gnu_cxx::__exchange_and_add(&_M_refcount
, -1); }
21843 _Callback_list
* _M_callbacks
;
21846 _M_call_callbacks(event __ev
) throw();
21849 _M_dispose_callbacks(void);
21856 _Words() : _M_pword(0), _M_iword(0) { }
21860 _Words _M_word_zero
;
21864 enum { _S_local_word_size
= 8 };
21865 _Words _M_local_word
[_S_local_word_size
];
21872 _M_grow_words(int __index
, bool __iword
);
21875 locale _M_ios_locale
;
21888 friend class ios_base
;
21894 static _Atomic_word _S_refcount
;
21895 static bool _S_synced_with_stdio
;
21904 flags() const { return _M_flags
; }
21905 # 557 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/ios_base.h" 3
21907 flags(fmtflags __fmtfl
)
21909 fmtflags __old
= _M_flags
;
21910 _M_flags
= __fmtfl
;
21913 # 573 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/ios_base.h" 3
21915 setf(fmtflags __fmtfl
)
21917 fmtflags __old
= _M_flags
;
21918 _M_flags
|= __fmtfl
;
21921 # 590 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/ios_base.h" 3
21923 setf(fmtflags __fmtfl
, fmtflags __mask
)
21925 fmtflags __old
= _M_flags
;
21926 _M_flags
&= ~__mask
;
21927 _M_flags
|= (__fmtfl
& __mask
);
21938 unsetf(fmtflags __mask
) { _M_flags
&= ~__mask
; }
21939 # 617 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/ios_base.h" 3
21941 precision() const { return _M_precision
; }
21949 precision(streamsize __prec
)
21951 streamsize __old
= _M_precision
;
21952 _M_precision
= __prec
;
21963 width() const { return _M_width
; }
21971 width(streamsize __wide
)
21973 streamsize __old
= _M_width
;
21977 # 666 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/ios_base.h" 3
21979 sync_with_stdio(bool __sync
= true);
21980 # 678 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/ios_base.h" 3
21982 imbue(const locale
& __loc
);
21983 # 689 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/ios_base.h" 3
21985 getloc() const { return _M_ios_locale
; }
21986 # 699 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/ios_base.h" 3
21987 inline const locale
&
21988 _M_getloc() const { return _M_ios_locale
; }
21989 # 717 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/ios_base.h" 3
21992 # 733 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/ios_base.h" 3
21996 _Words
& __word
= (__ix
< _M_word_size
)
21997 ? _M_word
[__ix
] : _M_grow_words(__ix
, true);
21998 return __word
._M_iword
;
22000 # 754 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/ios_base.h" 3
22004 _Words
& __word
= (__ix
< _M_word_size
)
22005 ? _M_word
[__ix
] : _M_grow_words(__ix
, false);
22006 return __word
._M_pword
;
22008 # 771 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/ios_base.h" 3
22009 virtual ~ios_base();
22017 ios_base(const ios_base
&);
22020 operator=(const ios_base
&);
22026 boolalpha(ios_base
& __base
)
22028 __base
.setf(ios_base::boolalpha
);
22034 noboolalpha(ios_base
& __base
)
22036 __base
.unsetf(ios_base::boolalpha
);
22042 showbase(ios_base
& __base
)
22044 __base
.setf(ios_base::showbase
);
22050 noshowbase(ios_base
& __base
)
22052 __base
.unsetf(ios_base::showbase
);
22058 showpoint(ios_base
& __base
)
22060 __base
.setf(ios_base::showpoint
);
22066 noshowpoint(ios_base
& __base
)
22068 __base
.unsetf(ios_base::showpoint
);
22074 showpos(ios_base
& __base
)
22076 __base
.setf(ios_base::showpos
);
22082 noshowpos(ios_base
& __base
)
22084 __base
.unsetf(ios_base::showpos
);
22090 skipws(ios_base
& __base
)
22092 __base
.setf(ios_base::skipws
);
22098 noskipws(ios_base
& __base
)
22100 __base
.unsetf(ios_base::skipws
);
22106 uppercase(ios_base
& __base
)
22108 __base
.setf(ios_base::uppercase
);
22114 nouppercase(ios_base
& __base
)
22116 __base
.unsetf(ios_base::uppercase
);
22122 unitbuf(ios_base
& __base
)
22124 __base
.setf(ios_base::unitbuf
);
22130 nounitbuf(ios_base
& __base
)
22132 __base
.unsetf(ios_base::unitbuf
);
22139 internal(ios_base
& __base
)
22141 __base
.setf(ios_base::internal
, ios_base::adjustfield
);
22147 left(ios_base
& __base
)
22149 __base
.setf(ios_base::left
, ios_base::adjustfield
);
22155 right(ios_base
& __base
)
22157 __base
.setf(ios_base::right
, ios_base::adjustfield
);
22164 dec(ios_base
& __base
)
22166 __base
.setf(ios_base::dec
, ios_base::basefield
);
22172 hex(ios_base
& __base
)
22174 __base
.setf(ios_base::hex
, ios_base::basefield
);
22180 oct(ios_base
& __base
)
22182 __base
.setf(ios_base::oct
, ios_base::basefield
);
22189 fixed(ios_base
& __base
)
22191 __base
.setf(ios_base::fixed
, ios_base::floatfield
);
22197 scientific(ios_base
& __base
)
22199 __base
.setf(ios_base::scientific
, ios_base::floatfield
);
22203 # 51 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/ios" 2 3
22204 # 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/streambuf" 1 3
22205 # 42 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/streambuf" 3
22207 # 43 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/streambuf" 3
22208 #pragma GCC visibility push(default)
22222 template<typename _CharT
, typename _Traits
>
22224 __copy_streambufs(basic_streambuf
<_CharT
, _Traits
>* __sbin
,
22225 basic_streambuf
<_CharT
, _Traits
>* __sbout
);
22226 # 122 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/streambuf" 3
22227 template<typename _CharT
, typename _Traits
>
22228 class basic_streambuf
22237 typedef _CharT char_type
;
22238 typedef _Traits traits_type
;
22239 typedef typename
traits_type::int_type int_type
;
22240 typedef typename
traits_type::pos_type pos_type
;
22241 typedef typename
traits_type::off_type off_type
;
22242 # 145 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/streambuf" 3
22243 typedef basic_streambuf
<char_type
, traits_type
> __streambuf_type
;
22246 friend class basic_ios
<char_type
, traits_type
>;
22247 friend class basic_istream
<char_type
, traits_type
>;
22248 friend class basic_ostream
<char_type
, traits_type
>;
22249 friend class istreambuf_iterator
<char_type
, traits_type
>;
22250 friend class ostreambuf_iterator
<char_type
, traits_type
>;
22253 __copy_streambufs
<>(__streambuf_type
* __sbin
,
22254 __streambuf_type
* __sbout
);
22256 template<typename _CharT2
, typename _Traits2
>
22257 friend basic_istream
<_CharT2
, _Traits2
>&
22258 operator>>(basic_istream
<_CharT2
, _Traits2
>&, _CharT2
*);
22260 template<typename _CharT2
, typename _Traits2
, typename _Alloc
>
22261 friend basic_istream
<_CharT2
, _Traits2
>&
22262 operator>>(basic_istream
<_CharT2
, _Traits2
>&,
22263 basic_string
<_CharT2
, _Traits2
, _Alloc
>&);
22265 template<typename _CharT2
, typename _Traits2
, typename _Alloc
>
22266 friend basic_istream
<_CharT2
, _Traits2
>&
22267 getline(basic_istream
<_CharT2
, _Traits2
>&,
22268 basic_string
<_CharT2
, _Traits2
, _Alloc
>&, _CharT2
);
22271 # 183 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/streambuf" 3
22272 char_type
* _M_in_beg
;
22273 char_type
* _M_in_cur
;
22274 char_type
* _M_in_end
;
22275 char_type
* _M_out_beg
;
22276 char_type
* _M_out_cur
;
22277 char_type
* _M_out_end
;
22284 locale _M_buf_locale
;
22291 # 211 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/streambuf" 3
22293 pubimbue(const locale
&__loc
)
22295 locale
__tmp(this->getloc());
22296 this->imbue(__loc
);
22297 _M_buf_locale
= __loc
;
22300 # 228 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/streambuf" 3
22303 { return _M_buf_locale
; }
22304 # 241 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/streambuf" 3
22306 pubsetbuf(char_type
* __s
, streamsize __n
)
22307 { return this->setbuf(__s
, __n
); }
22310 pubseekoff(off_type __off
, ios_base::seekdir __way
,
22311 ios_base::openmode __mode
= ios_base::in
| ios_base::out
)
22312 { return this->seekoff(__off
, __way
, __mode
); }
22315 pubseekpos(pos_type __sp
,
22316 ios_base::openmode __mode
= ios_base::in
| ios_base::out
)
22317 { return this->seekpos(__sp
, __mode
); }
22320 pubsync() { return this->sync(); }
22321 # 268 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/streambuf" 3
22325 const streamsize __ret
= this->egptr() - this->gptr();
22326 return __ret
? __ret
: this->showmanyc();
22328 # 282 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/streambuf" 3
22332 int_type __ret
= traits_type::eof();
22333 if (__builtin_expect(!traits_type::eq_int_type(this->sbumpc(),
22335 __ret
= this->sgetc();
22338 # 300 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/streambuf" 3
22343 if (__builtin_expect(this->gptr() < this->egptr(), true))
22345 __ret
= traits_type::to_int_type(*this->gptr());
22349 __ret
= this->uflow();
22352 # 322 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/streambuf" 3
22357 if (__builtin_expect(this->gptr() < this->egptr(), true))
22358 __ret
= traits_type::to_int_type(*this->gptr());
22360 __ret
= this->underflow();
22363 # 341 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/streambuf" 3
22365 sgetn(char_type
* __s
, streamsize __n
)
22366 { return this->xsgetn(__s
, __n
); }
22367 # 355 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/streambuf" 3
22369 sputbackc(char_type __c
)
22372 const bool __testpos
= this->eback() < this->gptr();
22373 if (__builtin_expect(!__testpos
||
22374 !traits_type::eq(__c
, this->gptr()[-1]), false))
22375 __ret
= this->pbackfail(traits_type::to_int_type(__c
));
22379 __ret
= traits_type::to_int_type(*this->gptr());
22383 # 380 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/streambuf" 3
22388 if (__builtin_expect(this->eback() < this->gptr(), true))
22391 __ret
= traits_type::to_int_type(*this->gptr());
22394 __ret
= this->pbackfail();
22397 # 407 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/streambuf" 3
22399 sputc(char_type __c
)
22402 if (__builtin_expect(this->pptr() < this->epptr(), true))
22404 *this->pptr() = __c
;
22406 __ret
= traits_type::to_int_type(__c
);
22409 __ret
= this->overflow(traits_type::to_int_type(__c
));
22412 # 433 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/streambuf" 3
22414 sputn(const char_type
* __s
, streamsize __n
)
22415 { return this->xsputn(__s
, __n
); }
22418 # 447 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/streambuf" 3
22420 : _M_in_beg(0), _M_in_cur(0), _M_in_end(0),
22421 _M_out_beg(0), _M_out_cur(0), _M_out_end(0),
22422 _M_buf_locale(locale())
22424 # 465 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/streambuf" 3
22426 eback() const { return _M_in_beg
; }
22429 gptr() const { return _M_in_cur
; }
22432 egptr() const { return _M_in_end
; }
22433 # 481 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/streambuf" 3
22435 gbump(int __n
) { _M_in_cur
+= __n
; }
22436 # 492 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/streambuf" 3
22438 setg(char_type
* __gbeg
, char_type
* __gnext
, char_type
* __gend
)
22440 _M_in_beg
= __gbeg
;
22441 _M_in_cur
= __gnext
;
22442 _M_in_end
= __gend
;
22444 # 512 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/streambuf" 3
22446 pbase() const { return _M_out_beg
; }
22449 pptr() const { return _M_out_cur
; }
22452 epptr() const { return _M_out_end
; }
22453 # 528 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/streambuf" 3
22455 pbump(int __n
) { _M_out_cur
+= __n
; }
22456 # 538 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/streambuf" 3
22458 setp(char_type
* __pbeg
, char_type
* __pend
)
22460 _M_out_beg
= _M_out_cur
= __pbeg
;
22461 _M_out_end
= __pend
;
22463 # 559 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/streambuf" 3
22465 imbue(const locale
&)
22467 # 574 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/streambuf" 3
22468 virtual basic_streambuf
<char_type
,_Traits
>*
22469 setbuf(char_type
*, streamsize
)
22471 # 585 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/streambuf" 3
22473 seekoff(off_type
, ios_base::seekdir
,
22474 ios_base::openmode
= ios_base::in
| ios_base::out
)
22475 { return pos_type(off_type(-1)); }
22476 # 597 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/streambuf" 3
22479 ios_base::openmode
= ios_base::in
| ios_base::out
)
22480 { return pos_type(off_type(-1)); }
22481 # 610 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/streambuf" 3
22483 sync() { return 0; }
22484 # 632 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/streambuf" 3
22486 showmanyc() { return 0; }
22487 # 648 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/streambuf" 3
22489 xsgetn(char_type
* __s
, streamsize __n
);
22490 # 670 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/streambuf" 3
22493 { return traits_type::eof(); }
22494 # 683 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/streambuf" 3
22498 int_type __ret
= traits_type::eof();
22499 const bool __testeof
= traits_type::eq_int_type(this->underflow(),
22503 __ret
= traits_type::to_int_type(*this->gptr());
22508 # 707 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/streambuf" 3
22510 pbackfail(int_type
= traits_type::eof())
22511 { return traits_type::eof(); }
22512 # 725 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/streambuf" 3
22514 xsputn(const char_type
* __s
, streamsize __n
);
22515 # 750 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/streambuf" 3
22517 overflow(int_type
= traits_type::eof())
22518 { return traits_type::eof(); }
22519 # 779 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/streambuf" 3
22523 basic_streambuf(const __streambuf_type
& __sb
)
22524 : _M_in_beg(__sb
._M_in_beg
), _M_in_cur(__sb
._M_in_cur
),
22525 _M_in_end(__sb
._M_in_end
), _M_out_beg(__sb
._M_out_beg
),
22526 _M_out_cur(__sb
._M_out_cur
), _M_out_end(__sb
._M_out_cur
),
22527 _M_buf_locale(__sb
._M_buf_locale
)
22531 operator=(const __streambuf_type
&) { return *this; };
22537 __copy_streambufs(basic_streambuf
<char>* __sbin
,
22538 basic_streambuf
<char>* __sbout
);
22542 __copy_streambufs(basic_streambuf
<wchar_t>* __sbin
,
22543 basic_streambuf
<wchar_t>* __sbout
);
22548 # 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/streambuf.tcc" 1 3
22549 # 43 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/streambuf.tcc" 3
22551 # 44 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/streambuf.tcc" 3
22555 template<typename _CharT
, typename _Traits
>
22557 basic_streambuf
<_CharT
, _Traits
>::
22558 xsgetn(char_type
* __s
, streamsize __n
)
22560 streamsize __ret
= 0;
22561 while (__ret
< __n
)
22563 const streamsize __buf_len
= this->egptr() - this->gptr();
22566 const streamsize __remaining
= __n
- __ret
;
22567 const streamsize __len
= std::min(__buf_len
, __remaining
);
22568 traits_type::copy(__s
, this->gptr(), __len
);
22571 this->gbump(__len
);
22576 const int_type __c
= this->uflow();
22577 if (!traits_type::eq_int_type(__c
, traits_type::eof()))
22579 traits_type::assign(*__s
++, traits_type::to_char_type(__c
));
22589 template<typename _CharT
, typename _Traits
>
22591 basic_streambuf
<_CharT
, _Traits
>::
22592 xsputn(const char_type
* __s
, streamsize __n
)
22594 streamsize __ret
= 0;
22595 while (__ret
< __n
)
22597 const streamsize __buf_len
= this->epptr() - this->pptr();
22600 const streamsize __remaining
= __n
- __ret
;
22601 const streamsize __len
= std::min(__buf_len
, __remaining
);
22602 traits_type::copy(this->pptr(), __s
, __len
);
22605 this->pbump(__len
);
22610 int_type __c
= this->overflow(traits_type::to_int_type(*__s
));
22611 if (!traits_type::eq_int_type(__c
, traits_type::eof()))
22626 template<typename _CharT
, typename _Traits
>
22628 __copy_streambufs(basic_streambuf
<_CharT
, _Traits
>* __sbin
,
22629 basic_streambuf
<_CharT
, _Traits
>* __sbout
)
22631 streamsize __ret
= 0;
22632 typename
_Traits::int_type __c
= __sbin
->sgetc();
22633 while (!_Traits::eq_int_type(__c
, _Traits::eof()))
22635 __c
= __sbout
->sputc(_Traits::to_char_type(__c
));
22636 if (_Traits::eq_int_type(__c
, _Traits::eof()))
22639 __c
= __sbin
->snextc();
22648 extern template class basic_streambuf
<char>;
22651 __copy_streambufs(basic_streambuf
<char>*, basic_streambuf
<char>*);
22654 extern template class basic_streambuf
<wchar_t>;
22657 __copy_streambufs(basic_streambuf
<wchar_t>*, basic_streambuf
<wchar_t>*);
22661 # 808 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/streambuf" 2 3
22664 #pragma GCC visibility pop
22665 # 52 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/ios" 2 3
22666 # 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_ios.h" 1 3
22667 # 39 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_ios.h" 3
22669 # 40 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_ios.h" 3
22671 # 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/streambuf_iterator.h" 1 3
22672 # 39 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/streambuf_iterator.h" 3
22674 # 40 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/streambuf_iterator.h" 3
22685 template<typename _CharT
, typename _Traits
>
22686 class istreambuf_iterator
22687 : public iterator
<input_iterator_tag
, _CharT
, typename
_Traits::off_type
,
22694 typedef _CharT char_type
;
22695 typedef _Traits traits_type
;
22696 typedef typename
_Traits::int_type int_type
;
22697 typedef basic_streambuf
<_CharT
, _Traits
> streambuf_type
;
22698 typedef basic_istream
<_CharT
, _Traits
> istream_type
;
22709 mutable streambuf_type
* _M_sbuf
;
22710 mutable int_type _M_c
;
22714 istreambuf_iterator() throw()
22715 : _M_sbuf(0), _M_c(traits_type::eof()) { }
22718 istreambuf_iterator(istream_type
& __s
) throw()
22719 : _M_sbuf(__s
.rdbuf()), _M_c(traits_type::eof()) { }
22722 istreambuf_iterator(streambuf_type
* __s
) throw()
22723 : _M_sbuf(__s
), _M_c(traits_type::eof()) { }
22738 return traits_type::to_char_type(_M_get());
22742 istreambuf_iterator
&
22751 _M_c
= traits_type::eof();
22757 istreambuf_iterator
22764 istreambuf_iterator __old
= *this;
22767 __old
._M_c
= _M_sbuf
->sbumpc();
22768 _M_c
= traits_type::eof();
22778 equal(const istreambuf_iterator
& __b
) const
22780 const bool __thiseof
= _M_at_eof();
22781 const bool __beof
= __b
._M_at_eof();
22782 return (__thiseof
&& __beof
|| (!__thiseof
&& !__beof
));
22789 const int_type __eof
= traits_type::eof();
22790 int_type __ret
= __eof
;
22793 if (!traits_type::eq_int_type(_M_c
, __eof
))
22795 else if (!traits_type::eq_int_type((__ret
= _M_sbuf
->sgetc()),
22807 const int_type __eof
= traits_type::eof();
22808 return traits_type::eq_int_type(_M_get(), __eof
);
22812 template<typename _CharT
, typename _Traits
>
22814 operator==(const istreambuf_iterator
<_CharT
, _Traits
>& __a
,
22815 const istreambuf_iterator
<_CharT
, _Traits
>& __b
)
22816 { return __a
.equal(__b
); }
22818 template<typename _CharT
, typename _Traits
>
22820 operator!=(const istreambuf_iterator
<_CharT
, _Traits
>& __a
,
22821 const istreambuf_iterator
<_CharT
, _Traits
>& __b
)
22822 { return !__a
.equal(__b
); }
22825 template<typename _CharT
, typename _Traits
>
22826 class ostreambuf_iterator
22827 : public iterator
<output_iterator_tag
, void, void, void, void>
22833 typedef _CharT char_type
;
22834 typedef _Traits traits_type
;
22835 typedef basic_streambuf
<_CharT
, _Traits
> streambuf_type
;
22836 typedef basic_ostream
<_CharT
, _Traits
> ostream_type
;
22840 streambuf_type
* _M_sbuf
;
22845 ostreambuf_iterator(ostream_type
& __s
) throw ()
22846 : _M_sbuf(__s
.rdbuf()), _M_failed(!_M_sbuf
) { }
22849 ostreambuf_iterator(streambuf_type
* __s
) throw ()
22850 : _M_sbuf(__s
), _M_failed(!_M_sbuf
) { }
22853 ostreambuf_iterator
&
22854 operator=(_CharT __c
)
22857 _Traits::eq_int_type(_M_sbuf
->sputc(__c
), _Traits::eof()))
22863 ostreambuf_iterator
&
22868 ostreambuf_iterator
&
22873 ostreambuf_iterator
&
22879 failed() const throw()
22880 { return _M_failed
; }
22882 ostreambuf_iterator
&
22883 _M_put(const _CharT
* __ws
, streamsize __len
)
22885 if (__builtin_expect(!_M_failed
, true)
22886 && __builtin_expect(this->_M_sbuf
->sputn(__ws
, __len
) != __len
,
22893 # 42 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_ios.h" 2 3
22896 # 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 1 3
22897 # 43 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
22899 # 44 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
22902 # 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/cwctype" 1 3
22903 # 48 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/cwctype" 3
22905 # 49 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/cwctype" 3
22906 #pragma GCC visibility push(default)
22911 # 1 "/usr/include/wctype.h" 1 3 4
22912 # 35 "/usr/include/wctype.h" 3 4
22913 # 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/stddef.h" 1 3 4
22914 # 36 "/usr/include/wctype.h" 2 3 4
22915 # 45 "/usr/include/wctype.h" 3 4
22917 # 63 "/usr/include/wctype.h" 3 4
22921 typedef unsigned long int wctype_t;
22923 # 85 "/usr/include/wctype.h" 3 4
22939 _ISwupper
= ((__ISwupper
) < 8 ? (int) ((1UL << (__ISwupper
)) << 24) : ((__ISwupper
) < 16 ? (int) ((1UL << (__ISwupper
)) << 8) : ((__ISwupper
) < 24 ? (int) ((1UL << (__ISwupper
)) >> 8) : (int) ((1UL << (__ISwupper
)) >> 24)))),
22940 _ISwlower
= ((__ISwlower
) < 8 ? (int) ((1UL << (__ISwlower
)) << 24) : ((__ISwlower
) < 16 ? (int) ((1UL << (__ISwlower
)) << 8) : ((__ISwlower
) < 24 ? (int) ((1UL << (__ISwlower
)) >> 8) : (int) ((1UL << (__ISwlower
)) >> 24)))),
22941 _ISwalpha
= ((__ISwalpha
) < 8 ? (int) ((1UL << (__ISwalpha
)) << 24) : ((__ISwalpha
) < 16 ? (int) ((1UL << (__ISwalpha
)) << 8) : ((__ISwalpha
) < 24 ? (int) ((1UL << (__ISwalpha
)) >> 8) : (int) ((1UL << (__ISwalpha
)) >> 24)))),
22942 _ISwdigit
= ((__ISwdigit
) < 8 ? (int) ((1UL << (__ISwdigit
)) << 24) : ((__ISwdigit
) < 16 ? (int) ((1UL << (__ISwdigit
)) << 8) : ((__ISwdigit
) < 24 ? (int) ((1UL << (__ISwdigit
)) >> 8) : (int) ((1UL << (__ISwdigit
)) >> 24)))),
22943 _ISwxdigit
= ((__ISwxdigit
) < 8 ? (int) ((1UL << (__ISwxdigit
)) << 24) : ((__ISwxdigit
) < 16 ? (int) ((1UL << (__ISwxdigit
)) << 8) : ((__ISwxdigit
) < 24 ? (int) ((1UL << (__ISwxdigit
)) >> 8) : (int) ((1UL << (__ISwxdigit
)) >> 24)))),
22944 _ISwspace
= ((__ISwspace
) < 8 ? (int) ((1UL << (__ISwspace
)) << 24) : ((__ISwspace
) < 16 ? (int) ((1UL << (__ISwspace
)) << 8) : ((__ISwspace
) < 24 ? (int) ((1UL << (__ISwspace
)) >> 8) : (int) ((1UL << (__ISwspace
)) >> 24)))),
22945 _ISwprint
= ((__ISwprint
) < 8 ? (int) ((1UL << (__ISwprint
)) << 24) : ((__ISwprint
) < 16 ? (int) ((1UL << (__ISwprint
)) << 8) : ((__ISwprint
) < 24 ? (int) ((1UL << (__ISwprint
)) >> 8) : (int) ((1UL << (__ISwprint
)) >> 24)))),
22946 _ISwgraph
= ((__ISwgraph
) < 8 ? (int) ((1UL << (__ISwgraph
)) << 24) : ((__ISwgraph
) < 16 ? (int) ((1UL << (__ISwgraph
)) << 8) : ((__ISwgraph
) < 24 ? (int) ((1UL << (__ISwgraph
)) >> 8) : (int) ((1UL << (__ISwgraph
)) >> 24)))),
22947 _ISwblank
= ((__ISwblank
) < 8 ? (int) ((1UL << (__ISwblank
)) << 24) : ((__ISwblank
) < 16 ? (int) ((1UL << (__ISwblank
)) << 8) : ((__ISwblank
) < 24 ? (int) ((1UL << (__ISwblank
)) >> 8) : (int) ((1UL << (__ISwblank
)) >> 24)))),
22948 _ISwcntrl
= ((__ISwcntrl
) < 8 ? (int) ((1UL << (__ISwcntrl
)) << 24) : ((__ISwcntrl
) < 16 ? (int) ((1UL << (__ISwcntrl
)) << 8) : ((__ISwcntrl
) < 24 ? (int) ((1UL << (__ISwcntrl
)) >> 8) : (int) ((1UL << (__ISwcntrl
)) >> 24)))),
22949 _ISwpunct
= ((__ISwpunct
) < 8 ? (int) ((1UL << (__ISwpunct
)) << 24) : ((__ISwpunct
) < 16 ? (int) ((1UL << (__ISwpunct
)) << 8) : ((__ISwpunct
) < 24 ? (int) ((1UL << (__ISwpunct
)) >> 8) : (int) ((1UL << (__ISwpunct
)) >> 24)))),
22950 _ISwalnum
= ((__ISwalnum
) < 8 ? (int) ((1UL << (__ISwalnum
)) << 24) : ((__ISwalnum
) < 16 ? (int) ((1UL << (__ISwalnum
)) << 8) : ((__ISwalnum
) < 24 ? (int) ((1UL << (__ISwalnum
)) >> 8) : (int) ((1UL << (__ISwalnum
)) >> 24))))
22964 extern int iswalnum (wint_t __wc
) throw ();
22970 extern int iswalpha (wint_t __wc
) throw ();
22973 extern int iswcntrl (wint_t __wc
) throw ();
22977 extern int iswdigit (wint_t __wc
) throw ();
22981 extern int iswgraph (wint_t __wc
) throw ();
22986 extern int iswlower (wint_t __wc
) throw ();
22989 extern int iswprint (wint_t __wc
) throw ();
22994 extern int iswpunct (wint_t __wc
) throw ();
22999 extern int iswspace (wint_t __wc
) throw ();
23004 extern int iswupper (wint_t __wc
) throw ();
23009 extern int iswxdigit (wint_t __wc
) throw ();
23015 extern int iswblank (wint_t __wc
) throw ();
23016 # 185 "/usr/include/wctype.h" 3 4
23017 extern wctype_t wctype (__const
char *__property
) throw ();
23021 extern int iswctype (wint_t __wc
, wctype_t __desc
) throw ();
23032 typedef __const __int32_t
*wctrans_t;
23040 extern wint_t towlower (wint_t __wc
) throw ();
23043 extern wint_t towupper (wint_t __wc
) throw ();
23047 # 227 "/usr/include/wctype.h" 3 4
23053 extern wctrans_t wctrans (__const
char *__property
) throw ();
23056 extern wint_t towctrans (wint_t __wc
, wctrans_t __desc
) throw ();
23065 extern int iswalnum_l (wint_t __wc
, __locale_t __locale
) throw ();
23071 extern int iswalpha_l (wint_t __wc
, __locale_t __locale
) throw ();
23074 extern int iswcntrl_l (wint_t __wc
, __locale_t __locale
) throw ();
23078 extern int iswdigit_l (wint_t __wc
, __locale_t __locale
) throw ();
23082 extern int iswgraph_l (wint_t __wc
, __locale_t __locale
) throw ();
23087 extern int iswlower_l (wint_t __wc
, __locale_t __locale
) throw ();
23090 extern int iswprint_l (wint_t __wc
, __locale_t __locale
) throw ();
23095 extern int iswpunct_l (wint_t __wc
, __locale_t __locale
) throw ();
23100 extern int iswspace_l (wint_t __wc
, __locale_t __locale
) throw ();
23105 extern int iswupper_l (wint_t __wc
, __locale_t __locale
) throw ();
23110 extern int iswxdigit_l (wint_t __wc
, __locale_t __locale
) throw ();
23115 extern int iswblank_l (wint_t __wc
, __locale_t __locale
) throw ();
23119 extern wctype_t wctype_l (__const
char *__property
, __locale_t __locale
)
23124 extern int iswctype_l (wint_t __wc
, wctype_t __desc
, __locale_t __locale
)
23133 extern wint_t towlower_l (wint_t __wc
, __locale_t __locale
) throw ();
23136 extern wint_t towupper_l (wint_t __wc
, __locale_t __locale
) throw ();
23140 extern wctrans_t wctrans_l (__const
char *__property
, __locale_t __locale
)
23144 extern wint_t towctrans_l (wint_t __wc
, wctrans_t __desc
,
23145 __locale_t __locale
) throw ();
23150 # 55 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/cwctype" 2 3
23151 # 80 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/cwctype" 3
23182 #pragma GCC visibility pop
23183 # 47 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 2 3
23190 # 63 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
23191 template<typename _Tv
>
23193 __convert_to_v(const char* __in
, _Tv
& __out
, ios_base::iostate
& __err
,
23194 const __c_locale
& __cloc
);
23199 __convert_to_v(const char*, float&, ios_base::iostate
&,
23200 const __c_locale
&);
23204 __convert_to_v(const char*, double&, ios_base::iostate
&,
23205 const __c_locale
&);
23209 __convert_to_v(const char*, long double&, ios_base::iostate
&,
23210 const __c_locale
&);
23214 template<typename _CharT
, typename _Traits
>
23218 _S_pad(ios_base
& __io
, _CharT __fill
, _CharT
* __news
,
23219 const _CharT
* __olds
, const streamsize __newlen
,
23220 const streamsize __oldlen
, const bool __num
);
23228 template<typename _CharT
>
23230 __add_grouping(_CharT
* __s
, _CharT __sep
,
23231 const char* __gbeg
, size_t __gsize
,
23232 const _CharT
* __first
, const _CharT
* __last
);
23237 template<typename _CharT
>
23239 ostreambuf_iterator
<_CharT
>
23240 __write(ostreambuf_iterator
<_CharT
> __s
, const _CharT
* __ws
, int __len
)
23242 __s
._M_put(__ws
, __len
);
23247 template<typename _CharT
, typename _OutIter
>
23250 __write(_OutIter __s
, const _CharT
* __ws
, int __len
)
23252 for (int __j
= 0; __j
< __len
; __j
++, ++__s
)
23260 # 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/i686-pc-linux-gnu/bits/ctype_base.h" 1 3
23261 # 43 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/i686-pc-linux-gnu/bits/ctype_base.h" 3
23265 typedef const int* __to_type
;
23269 typedef unsigned short mask
;
23270 static const mask upper
= _ISupper
;
23271 static const mask lower
= _ISlower
;
23272 static const mask alpha
= _ISalpha
;
23273 static const mask digit
= _ISdigit
;
23274 static const mask xdigit
= _ISxdigit
;
23275 static const mask space
= _ISspace
;
23276 static const mask print
= _ISprint
;
23277 static const mask graph
= _ISalpha
| _ISdigit
| _ISpunct
;
23278 static const mask cntrl
= _IScntrl
;
23279 static const mask punct
= _ISpunct
;
23280 static const mask alnum
= _ISalpha
| _ISdigit
;
23282 # 133 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 2 3
23283 # 144 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
23284 template<typename _CharT
>
23285 class __ctype_abstract_base
: public locale::facet
, public ctype_base
23290 typedef _CharT char_type
;
23291 # 162 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
23293 is(mask __m
, char_type __c
) const
23294 { return this->do_is(__m
, __c
); }
23295 # 179 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
23297 is(const char_type
*__lo
, const char_type
*__hi
, mask
*__vec
) const
23298 { return this->do_is(__lo
, __hi
, __vec
); }
23299 # 195 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
23301 scan_is(mask __m
, const char_type
* __lo
, const char_type
* __hi
) const
23302 { return this->do_scan_is(__m
, __lo
, __hi
); }
23303 # 211 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
23305 scan_not(mask __m
, const char_type
* __lo
, const char_type
* __hi
) const
23306 { return this->do_scan_not(__m
, __lo
, __hi
); }
23307 # 225 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
23309 toupper(char_type __c
) const
23310 { return this->do_toupper(__c
); }
23311 # 240 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
23313 toupper(char_type
*__lo
, const char_type
* __hi
) const
23314 { return this->do_toupper(__lo
, __hi
); }
23315 # 254 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
23317 tolower(char_type __c
) const
23318 { return this->do_tolower(__c
); }
23319 # 269 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
23321 tolower(char_type
* __lo
, const char_type
* __hi
) const
23322 { return this->do_tolower(__lo
, __hi
); }
23323 # 286 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
23325 widen(char __c
) const
23326 { return this->do_widen(__c
); }
23327 # 305 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
23329 widen(const char* __lo
, const char* __hi
, char_type
* __to
) const
23330 { return this->do_widen(__lo
, __hi
, __to
); }
23331 # 324 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
23333 narrow(char_type __c
, char __dfault
) const
23334 { return this->do_narrow(__c
, __dfault
); }
23335 # 346 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
23337 narrow(const char_type
* __lo
, const char_type
* __hi
,
23338 char __dfault
, char *__to
) const
23339 { return this->do_narrow(__lo
, __hi
, __dfault
, __to
); }
23343 __ctype_abstract_base(size_t __refs
= 0): facet(__refs
) { }
23346 ~__ctype_abstract_base() { }
23347 # 371 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
23349 do_is(mask __m
, char_type __c
) const = 0;
23350 # 390 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
23351 virtual const char_type
*
23352 do_is(const char_type
* __lo
, const char_type
* __hi
,
23353 mask
* __vec
) const = 0;
23354 # 409 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
23355 virtual const char_type
*
23356 do_scan_is(mask __m
, const char_type
* __lo
,
23357 const char_type
* __hi
) const = 0;
23358 # 428 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
23359 virtual const char_type
*
23360 do_scan_not(mask __m
, const char_type
* __lo
,
23361 const char_type
* __hi
) const = 0;
23362 # 446 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
23364 do_toupper(char_type
) const = 0;
23365 # 463 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
23366 virtual const char_type
*
23367 do_toupper(char_type
* __lo
, const char_type
* __hi
) const = 0;
23368 # 479 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
23370 do_tolower(char_type
) const = 0;
23371 # 496 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
23372 virtual const char_type
*
23373 do_tolower(char_type
* __lo
, const char_type
* __hi
) const = 0;
23374 # 515 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
23376 do_widen(char) const = 0;
23377 # 536 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
23378 virtual const char*
23379 do_widen(const char* __lo
, const char* __hi
,
23380 char_type
* __dest
) const = 0;
23381 # 558 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
23383 do_narrow(char_type
, char __dfault
) const = 0;
23384 # 582 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
23385 virtual const char_type
*
23386 do_narrow(const char_type
* __lo
, const char_type
* __hi
,
23387 char __dfault
, char* __dest
) const = 0;
23389 # 605 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
23390 template<typename _CharT
>
23391 class ctype
: public __ctype_abstract_base
<_CharT
>
23395 typedef _CharT char_type
;
23396 typedef typename __ctype_abstract_base
<_CharT
>::mask mask
;
23399 static locale::id id
;
23402 ctype(size_t __refs
= 0) : __ctype_abstract_base
<_CharT
>(__refs
) { }
23409 do_is(mask __m
, char_type __c
) const;
23411 virtual const char_type
*
23412 do_is(const char_type
* __lo
, const char_type
* __hi
, mask
* __vec
) const;
23414 virtual const char_type
*
23415 do_scan_is(mask __m
, const char_type
* __lo
, const char_type
* __hi
) const;
23417 virtual const char_type
*
23418 do_scan_not(mask __m
, const char_type
* __lo
,
23419 const char_type
* __hi
) const;
23422 do_toupper(char_type __c
) const;
23424 virtual const char_type
*
23425 do_toupper(char_type
* __lo
, const char_type
* __hi
) const;
23428 do_tolower(char_type __c
) const;
23430 virtual const char_type
*
23431 do_tolower(char_type
* __lo
, const char_type
* __hi
) const;
23434 do_widen(char __c
) const;
23436 virtual const char*
23437 do_widen(const char* __lo
, const char* __hi
, char_type
* __dest
) const;
23440 do_narrow(char_type
, char __dfault
) const;
23442 virtual const char_type
*
23443 do_narrow(const char_type
* __lo
, const char_type
* __hi
,
23444 char __dfault
, char* __dest
) const;
23447 template<typename _CharT
>
23448 locale::id ctype
<_CharT
>::id
;
23449 # 674 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
23451 class ctype
<char> : public locale::facet
, public ctype_base
23456 typedef char char_type
;
23460 __c_locale _M_c_locale_ctype
;
23462 __to_type _M_toupper
;
23463 __to_type _M_tolower
;
23464 const mask
* _M_table
;
23465 mutable char _M_widen_ok
;
23466 mutable char _M_widen
[1 + static_cast<unsigned char>(-1)];
23467 mutable char _M_narrow
[1 + static_cast<unsigned char>(-1)];
23468 mutable char _M_narrow_ok
;
23473 static locale::id id
;
23475 static const size_t table_size
= 1 + static_cast<unsigned char>(-1);
23476 # 711 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
23478 ctype(const mask
* __table
= 0, bool __del
= false, size_t __refs
= 0);
23479 # 724 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
23481 ctype(__c_locale __cloc
, const mask
* __table
= 0, bool __del
= false,
23482 size_t __refs
= 0);
23483 # 737 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
23485 is(mask __m
, char __c
) const;
23486 # 752 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
23488 is(const char* __lo
, const char* __hi
, mask
* __vec
) const;
23489 # 766 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
23491 scan_is(mask __m
, const char* __lo
, const char* __hi
) const;
23492 # 780 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
23494 scan_not(mask __m
, const char* __lo
, const char* __hi
) const;
23495 # 795 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
23497 toupper(char_type __c
) const
23498 { return this->do_toupper(__c
); }
23499 # 812 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
23501 toupper(char_type
*__lo
, const char_type
* __hi
) const
23502 { return this->do_toupper(__lo
, __hi
); }
23503 # 828 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
23505 tolower(char_type __c
) const
23506 { return this->do_tolower(__c
); }
23507 # 845 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
23509 tolower(char_type
* __lo
, const char_type
* __hi
) const
23510 { return this->do_tolower(__lo
, __hi
); }
23511 # 865 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
23513 widen(char __c
) const
23516 return _M_widen
[static_cast<unsigned char>(__c
)];
23517 this->_M_widen_init();
23518 return this->do_widen(__c
);
23520 # 892 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
23522 widen(const char* __lo
, const char* __hi
, char_type
* __to
) const
23524 if (_M_widen_ok
== 1)
23526 memcpy(__to
, __lo
, __hi
- __lo
);
23531 return this->do_widen(__lo
, __hi
, __to
);
23533 # 923 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
23535 narrow(char_type __c
, char __dfault
) const
23537 if (_M_narrow
[static_cast<unsigned char>(__c
)])
23538 return _M_narrow
[static_cast<unsigned char>(__c
)];
23539 const char __t
= do_narrow(__c
, __dfault
);
23540 if (__t
!= __dfault
)
23541 _M_narrow
[static_cast<unsigned char>(__c
)] = __t
;
23544 # 956 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
23546 narrow(const char_type
* __lo
, const char_type
* __hi
,
23547 char __dfault
, char *__to
) const
23549 if (__builtin_expect(_M_narrow_ok
== 1, true))
23551 memcpy(__to
, __lo
, __hi
- __lo
);
23556 return this->do_narrow(__lo
, __hi
, __dfault
, __to
);
23563 table() const throw()
23564 { return _M_table
; }
23568 classic_table() throw();
23578 # 1003 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
23580 do_toupper(char_type
) const;
23581 # 1020 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
23582 virtual const char_type
*
23583 do_toupper(char_type
* __lo
, const char_type
* __hi
) const;
23584 # 1036 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
23586 do_tolower(char_type
) const;
23587 # 1053 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
23588 virtual const char_type
*
23589 do_tolower(char_type
* __lo
, const char_type
* __hi
) const;
23590 # 1073 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
23592 do_widen(char __c
) const
23594 # 1096 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
23595 virtual const char*
23596 do_widen(const char* __lo
, const char* __hi
, char_type
* __dest
) const
23598 memcpy(__dest
, __lo
, __hi
- __lo
);
23601 # 1122 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
23603 do_narrow(char_type __c
, char) const
23605 # 1148 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
23606 virtual const char_type
*
23607 do_narrow(const char_type
* __lo
, const char_type
* __hi
,
23608 char, char* __dest
) const
23610 memcpy(__dest
, __lo
, __hi
- __lo
);
23616 void _M_widen_init() const
23618 char __tmp
[sizeof(_M_widen
)];
23619 for (size_t __i
= 0; __i
< sizeof(_M_widen
); ++__i
)
23621 do_widen(__tmp
, __tmp
+ sizeof(__tmp
), _M_widen
);
23625 if (memcmp(__tmp
, _M_widen
, sizeof(_M_widen
)))
23632 void _M_narrow_init() const
23634 char __tmp
[sizeof(_M_narrow
)];
23635 for (size_t __i
= 0; __i
< sizeof(_M_narrow
); ++__i
)
23637 do_narrow(__tmp
, __tmp
+ sizeof(__tmp
), 0, _M_narrow
);
23640 if (memcmp(__tmp
, _M_narrow
, sizeof(_M_narrow
)))
23647 do_narrow(__tmp
, __tmp
+ 1, 1, &__c
);
23656 use_facet
<ctype
<char> >(const locale
& __loc
);
23657 # 1212 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
23659 class ctype
<wchar_t> : public __ctype_abstract_base
<wchar_t>
23664 typedef wchar_t char_type
;
23665 typedef wctype_t __wmask_type
;
23668 __c_locale _M_c_locale_ctype
;
23672 char _M_narrow
[128];
23673 wint_t _M_widen
[1 + static_cast<unsigned char>(-1)];
23677 __wmask_type _M_wmask
[16];
23682 static locale::id id
;
23683 # 1245 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
23685 ctype(size_t __refs
= 0);
23686 # 1256 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
23688 ctype(__c_locale __cloc
, size_t __refs
= 0);
23692 _M_convert_to_wmask(const mask __m
) const;
23697 # 1280 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
23699 do_is(mask __m
, char_type __c
) const;
23700 # 1299 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
23701 virtual const char_type
*
23702 do_is(const char_type
* __lo
, const char_type
* __hi
, mask
* __vec
) const;
23703 # 1317 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
23704 virtual const char_type
*
23705 do_scan_is(mask __m
, const char_type
* __lo
, const char_type
* __hi
) const;
23706 # 1335 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
23707 virtual const char_type
*
23708 do_scan_not(mask __m
, const char_type
* __lo
,
23709 const char_type
* __hi
) const;
23710 # 1352 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
23712 do_toupper(char_type
) const;
23713 # 1369 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
23714 virtual const char_type
*
23715 do_toupper(char_type
* __lo
, const char_type
* __hi
) const;
23716 # 1385 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
23718 do_tolower(char_type
) const;
23719 # 1402 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
23720 virtual const char_type
*
23721 do_tolower(char_type
* __lo
, const char_type
* __hi
) const;
23722 # 1422 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
23724 do_widen(char) const;
23725 # 1444 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
23726 virtual const char*
23727 do_widen(const char* __lo
, const char* __hi
, char_type
* __dest
) const;
23728 # 1467 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
23730 do_narrow(char_type
, char __dfault
) const;
23731 # 1493 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
23732 virtual const char_type
*
23733 do_narrow(const char_type
* __lo
, const char_type
* __hi
,
23734 char __dfault
, char* __dest
) const;
23738 _M_initialize_ctype();
23742 const ctype
<wchar_t>&
23743 use_facet
<ctype
<wchar_t> >(const locale
& __loc
);
23747 # 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/i686-pc-linux-gnu/bits/ctype_inline.h" 1 3
23748 # 37 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/i686-pc-linux-gnu/bits/ctype_inline.h" 3
23751 is(mask __m
, char __c
) const
23752 { return _M_table
[static_cast<unsigned char>(__c
)] & __m
; }
23756 is(const char* __low
, const char* __high
, mask
* __vec
) const
23758 while (__low
< __high
)
23759 *__vec
++ = _M_table
[static_cast<unsigned char>(*__low
++)];
23765 scan_is(mask __m
, const char* __low
, const char* __high
) const
23767 while (__low
< __high
23768 && !(_M_table
[static_cast<unsigned char>(*__low
)] & __m
))
23775 scan_not(mask __m
, const char* __low
, const char* __high
) const
23777 while (__low
< __high
23778 && (_M_table
[static_cast<unsigned char>(*__low
)] & __m
) != 0)
23782 # 1509 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 2 3
23785 template<typename _CharT
>
23786 class ctype_byname
: public ctype
<_CharT
>
23789 typedef _CharT char_type
;
23792 ctype_byname(const char* __s
, size_t __refs
= 0);
23796 ~ctype_byname() { };
23801 ctype_byname
<char>::ctype_byname(const char*, size_t refs
);
23804 ctype_byname
<wchar_t>::ctype_byname(const char*, size_t refs
);
23807 # 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/codecvt.h" 1 3
23808 # 45 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/codecvt.h" 3
23810 # 46 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/codecvt.h" 3
23824 # 69 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/codecvt.h" 3
23825 template<typename _InternT
, typename _ExternT
, typename _StateT
>
23826 class __codecvt_abstract_base
23827 : public locale::facet
, public codecvt_base
23831 typedef codecvt_base::result result
;
23832 typedef _InternT intern_type
;
23833 typedef _ExternT extern_type
;
23834 typedef _StateT state_type
;
23835 # 117 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/codecvt.h" 3
23837 out(state_type
& __state
, const intern_type
* __from
,
23838 const intern_type
* __from_end
, const intern_type
*& __from_next
,
23839 extern_type
* __to
, extern_type
* __to_end
,
23840 extern_type
*& __to_next
) const
23842 return this->do_out(__state
, __from
, __from_end
, __from_next
,
23843 __to
, __to_end
, __to_next
);
23845 # 156 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/codecvt.h" 3
23847 unshift(state_type
& __state
, extern_type
* __to
, extern_type
* __to_end
,
23848 extern_type
*& __to_next
) const
23849 { return this->do_unshift(__state
, __to
,__to_end
,__to_next
); }
23850 # 197 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/codecvt.h" 3
23852 in(state_type
& __state
, const extern_type
* __from
,
23853 const extern_type
* __from_end
, const extern_type
*& __from_next
,
23854 intern_type
* __to
, intern_type
* __to_end
,
23855 intern_type
*& __to_next
) const
23857 return this->do_in(__state
, __from
, __from_end
, __from_next
,
23858 __to
, __to_end
, __to_next
);
23862 encoding() const throw()
23863 { return this->do_encoding(); }
23866 always_noconv() const throw()
23867 { return this->do_always_noconv(); }
23870 length(state_type
& __state
, const extern_type
* __from
,
23871 const extern_type
* __end
, size_t __max
) const
23872 { return this->do_length(__state
, __from
, __end
, __max
); }
23875 max_length() const throw()
23876 { return this->do_max_length(); }
23880 __codecvt_abstract_base(size_t __refs
= 0) : locale::facet(__refs
) { }
23883 ~__codecvt_abstract_base() { }
23884 # 238 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/codecvt.h" 3
23886 do_out(state_type
& __state
, const intern_type
* __from
,
23887 const intern_type
* __from_end
, const intern_type
*& __from_next
,
23888 extern_type
* __to
, extern_type
* __to_end
,
23889 extern_type
*& __to_next
) const = 0;
23892 do_unshift(state_type
& __state
, extern_type
* __to
,
23893 extern_type
* __to_end
, extern_type
*& __to_next
) const = 0;
23896 do_in(state_type
& __state
, const extern_type
* __from
,
23897 const extern_type
* __from_end
, const extern_type
*& __from_next
,
23898 intern_type
* __to
, intern_type
* __to_end
,
23899 intern_type
*& __to_next
) const = 0;
23902 do_encoding() const throw() = 0;
23905 do_always_noconv() const throw() = 0;
23908 do_length(state_type
&, const extern_type
* __from
,
23909 const extern_type
* __end
, size_t __max
) const = 0;
23912 do_max_length() const throw() = 0;
23917 template<typename _InternT
, typename _ExternT
, typename _StateT
>
23919 : public __codecvt_abstract_base
<_InternT
, _ExternT
, _StateT
>
23923 typedef codecvt_base::result result
;
23924 typedef _InternT intern_type
;
23925 typedef _ExternT extern_type
;
23926 typedef _StateT state_type
;
23929 __c_locale _M_c_locale_codecvt
;
23932 static locale::id id
;
23935 codecvt(size_t __refs
= 0)
23936 : __codecvt_abstract_base
<_InternT
, _ExternT
, _StateT
> (__refs
) { }
23939 codecvt(__c_locale __cloc
, size_t __refs
= 0);
23946 do_out(state_type
& __state
, const intern_type
* __from
,
23947 const intern_type
* __from_end
, const intern_type
*& __from_next
,
23948 extern_type
* __to
, extern_type
* __to_end
,
23949 extern_type
*& __to_next
) const;
23952 do_unshift(state_type
& __state
, extern_type
* __to
,
23953 extern_type
* __to_end
, extern_type
*& __to_next
) const;
23956 do_in(state_type
& __state
, const extern_type
* __from
,
23957 const extern_type
* __from_end
, const extern_type
*& __from_next
,
23958 intern_type
* __to
, intern_type
* __to_end
,
23959 intern_type
*& __to_next
) const;
23962 do_encoding() const throw();
23965 do_always_noconv() const throw();
23968 do_length(state_type
&, const extern_type
* __from
,
23969 const extern_type
* __end
, size_t __max
) const;
23972 do_max_length() const throw();
23975 template<typename _InternT
, typename _ExternT
, typename _StateT
>
23976 locale::id codecvt
<_InternT
, _ExternT
, _StateT
>::id
;
23980 class codecvt
<char, char, mbstate_t>
23981 : public __codecvt_abstract_base
<char, char, mbstate_t>
23985 typedef char intern_type
;
23986 typedef char extern_type
;
23987 typedef mbstate_t state_type
;
23990 __c_locale _M_c_locale_codecvt
;
23993 static locale::id id
;
23996 codecvt(size_t __refs
= 0);
23999 codecvt(__c_locale __cloc
, size_t __refs
= 0);
24006 do_out(state_type
& __state
, const intern_type
* __from
,
24007 const intern_type
* __from_end
, const intern_type
*& __from_next
,
24008 extern_type
* __to
, extern_type
* __to_end
,
24009 extern_type
*& __to_next
) const;
24012 do_unshift(state_type
& __state
, extern_type
* __to
,
24013 extern_type
* __to_end
, extern_type
*& __to_next
) const;
24016 do_in(state_type
& __state
, const extern_type
* __from
,
24017 const extern_type
* __from_end
, const extern_type
*& __from_next
,
24018 intern_type
* __to
, intern_type
* __to_end
,
24019 intern_type
*& __to_next
) const;
24022 do_encoding() const throw();
24025 do_always_noconv() const throw();
24028 do_length(state_type
&, const extern_type
* __from
,
24029 const extern_type
* __end
, size_t __max
) const;
24032 do_max_length() const throw();
24038 class codecvt
<wchar_t, char, mbstate_t>
24039 : public __codecvt_abstract_base
<wchar_t, char, mbstate_t>
24043 typedef wchar_t intern_type
;
24044 typedef char extern_type
;
24045 typedef mbstate_t state_type
;
24048 __c_locale _M_c_locale_codecvt
;
24051 static locale::id id
;
24054 codecvt(size_t __refs
= 0);
24057 codecvt(__c_locale __cloc
, size_t __refs
= 0);
24064 do_out(state_type
& __state
, const intern_type
* __from
,
24065 const intern_type
* __from_end
, const intern_type
*& __from_next
,
24066 extern_type
* __to
, extern_type
* __to_end
,
24067 extern_type
*& __to_next
) const;
24070 do_unshift(state_type
& __state
,
24071 extern_type
* __to
, extern_type
* __to_end
,
24072 extern_type
*& __to_next
) const;
24075 do_in(state_type
& __state
,
24076 const extern_type
* __from
, const extern_type
* __from_end
,
24077 const extern_type
*& __from_next
,
24078 intern_type
* __to
, intern_type
* __to_end
,
24079 intern_type
*& __to_next
) const;
24082 int do_encoding() const throw();
24085 bool do_always_noconv() const throw();
24088 int do_length(state_type
&, const extern_type
* __from
,
24089 const extern_type
* __end
, size_t __max
) const;
24092 do_max_length() const throw();
24097 template<typename _InternT
, typename _ExternT
, typename _StateT
>
24098 class codecvt_byname
: public codecvt
<_InternT
, _ExternT
, _StateT
>
24102 codecvt_byname(const char* __s
, size_t __refs
= 0)
24103 : codecvt
<_InternT
, _ExternT
, _StateT
>(__refs
)
24105 if (std::strcmp(__s
, "C") != 0 && std::strcmp(__s
, "POSIX") != 0)
24107 this->_S_destroy_c_locale(this->_M_c_locale_codecvt
);
24108 this->_S_create_c_locale(this->_M_c_locale_codecvt
, __s
);
24114 ~codecvt_byname() { }
24116 # 1534 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 2 3
24131 _S_odigits_end
= _S_odigits
+ 16,
24132 _S_oudigits
= _S_odigits_end
,
24133 _S_oudigits_end
= _S_oudigits
+ 16,
24134 _S_oe
= _S_odigits
+ 14,
24135 _S_oE
= _S_oudigits
+ 14,
24136 _S_oend
= _S_oudigits_end
24144 static const char* _S_atoms_out
;
24148 static const char* _S_atoms_in
;
24157 _S_ie
= _S_izero
+ 14,
24158 _S_iE
= _S_izero
+ 20,
24165 _S_format_float(const ios_base
& __io
, char* __fptr
, char __mod
);
24168 template<typename _CharT
>
24169 struct __numpunct_cache
: public locale::facet
24171 const char* _M_grouping
;
24172 size_t _M_grouping_size
;
24173 bool _M_use_grouping
;
24174 const _CharT
* _M_truename
;
24175 size_t _M_truename_size
;
24176 const _CharT
* _M_falsename
;
24177 size_t _M_falsename_size
;
24178 _CharT _M_decimal_point
;
24179 _CharT _M_thousands_sep
;
24185 _CharT _M_atoms_out
[__num_base::_S_oend
];
24191 _CharT _M_atoms_in
[__num_base::_S_iend
];
24195 __numpunct_cache(size_t __refs
= 0) : facet(__refs
),
24196 _M_grouping(__null
), _M_grouping_size(0), _M_use_grouping(false),
24197 _M_truename(__null
), _M_truename_size(0), _M_falsename(__null
),
24198 _M_falsename_size(0), _M_decimal_point(_CharT()),
24199 _M_thousands_sep(_CharT()), _M_allocated(false)
24202 ~__numpunct_cache();
24205 _M_cache(const locale
& __loc
);
24209 operator=(const __numpunct_cache
&);
24212 __numpunct_cache(const __numpunct_cache
&);
24215 template<typename _CharT
>
24216 __numpunct_cache
<_CharT
>::~__numpunct_cache()
24220 delete [] _M_grouping
;
24221 delete [] _M_truename
;
24222 delete [] _M_falsename
;
24225 # 1656 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
24226 template<typename _CharT
>
24227 class numpunct
: public locale::facet
24233 typedef _CharT char_type
;
24234 typedef basic_string
<_CharT
> string_type
;
24236 typedef __numpunct_cache
<_CharT
> __cache_type
;
24239 __cache_type
* _M_data
;
24243 static locale::id id
;
24251 numpunct(size_t __refs
= 0) : facet(__refs
), _M_data(__null
)
24252 { _M_initialize_numpunct(); }
24253 # 1693 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
24255 numpunct(__cache_type
* __cache
, size_t __refs
= 0)
24256 : facet(__refs
), _M_data(__cache
)
24257 { _M_initialize_numpunct(); }
24258 # 1707 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
24260 numpunct(__c_locale __cloc
, size_t __refs
= 0)
24261 : facet(__refs
), _M_data(__null
)
24262 { _M_initialize_numpunct(__cloc
); }
24263 # 1721 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
24265 decimal_point() const
24266 { return this->do_decimal_point(); }
24267 # 1734 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
24269 thousands_sep() const
24270 { return this->do_thousands_sep(); }
24271 # 1765 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
24274 { return this->do_grouping(); }
24275 # 1778 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
24278 { return this->do_truename(); }
24279 # 1791 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
24282 { return this->do_falsename(); }
24288 # 1808 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
24290 do_decimal_point() const
24291 { return _M_data
->_M_decimal_point
; }
24292 # 1820 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
24294 do_thousands_sep() const
24295 { return _M_data
->_M_thousands_sep
; }
24296 # 1833 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
24298 do_grouping() const
24299 { return _M_data
->_M_grouping
; }
24300 # 1846 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
24301 virtual string_type
24302 do_truename() const
24303 { return _M_data
->_M_truename
; }
24304 # 1859 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
24305 virtual string_type
24306 do_falsename() const
24307 { return _M_data
->_M_falsename
; }
24311 _M_initialize_numpunct(__c_locale __cloc
= __null
);
24314 template<typename _CharT
>
24315 locale::id numpunct
<_CharT
>::id
;
24318 numpunct
<char>::~numpunct();
24322 numpunct
<char>::_M_initialize_numpunct(__c_locale __cloc
);
24326 numpunct
<wchar_t>::~numpunct();
24330 numpunct
<wchar_t>::_M_initialize_numpunct(__c_locale __cloc
);
24334 template<typename _CharT
>
24335 class numpunct_byname
: public numpunct
<_CharT
>
24338 typedef _CharT char_type
;
24339 typedef basic_string
<_CharT
> string_type
;
24342 numpunct_byname(const char* __s
, size_t __refs
= 0)
24343 : numpunct
<_CharT
>(__refs
)
24345 if (std::strcmp(__s
, "C") != 0 && std::strcmp(__s
, "POSIX") != 0)
24348 this->_S_create_c_locale(__tmp
, __s
);
24349 this->_M_initialize_numpunct(__tmp
);
24350 this->_S_destroy_c_locale(__tmp
);
24356 ~numpunct_byname() { }
24358 # 1925 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
24359 template<typename _CharT
, typename _InIter
>
24360 class num_get
: public locale::facet
24366 typedef _CharT char_type
;
24367 typedef _InIter iter_type
;
24371 static locale::id id
;
24372 # 1946 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
24374 num_get(size_t __refs
= 0) : facet(__refs
) { }
24375 # 1972 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
24377 get(iter_type __in
, iter_type __end
, ios_base
& __io
,
24378 ios_base::iostate
& __err
, bool& __v
) const
24379 { return this->do_get(__in
, __end
, __io
, __err
, __v
); }
24380 # 2008 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
24382 get(iter_type __in
, iter_type __end
, ios_base
& __io
,
24383 ios_base::iostate
& __err
, long& __v
) const
24384 { return this->do_get(__in
, __end
, __io
, __err
, __v
); }
24387 get(iter_type __in
, iter_type __end
, ios_base
& __io
,
24388 ios_base::iostate
& __err
, unsigned short& __v
) const
24389 { return this->do_get(__in
, __end
, __io
, __err
, __v
); }
24392 get(iter_type __in
, iter_type __end
, ios_base
& __io
,
24393 ios_base::iostate
& __err
, unsigned int& __v
) const
24394 { return this->do_get(__in
, __end
, __io
, __err
, __v
); }
24397 get(iter_type __in
, iter_type __end
, ios_base
& __io
,
24398 ios_base::iostate
& __err
, unsigned long& __v
) const
24399 { return this->do_get(__in
, __end
, __io
, __err
, __v
); }
24403 get(iter_type __in
, iter_type __end
, ios_base
& __io
,
24404 ios_base::iostate
& __err
, long long& __v
) const
24405 { return this->do_get(__in
, __end
, __io
, __err
, __v
); }
24408 get(iter_type __in
, iter_type __end
, ios_base
& __io
,
24409 ios_base::iostate
& __err
, unsigned long long& __v
) const
24410 { return this->do_get(__in
, __end
, __io
, __err
, __v
); }
24411 # 2067 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
24413 get(iter_type __in
, iter_type __end
, ios_base
& __io
,
24414 ios_base::iostate
& __err
, float& __v
) const
24415 { return this->do_get(__in
, __end
, __io
, __err
, __v
); }
24418 get(iter_type __in
, iter_type __end
, ios_base
& __io
,
24419 ios_base::iostate
& __err
, double& __v
) const
24420 { return this->do_get(__in
, __end
, __io
, __err
, __v
); }
24423 get(iter_type __in
, iter_type __end
, ios_base
& __io
,
24424 ios_base::iostate
& __err
, long double& __v
) const
24425 { return this->do_get(__in
, __end
, __io
, __err
, __v
); }
24426 # 2109 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
24428 get(iter_type __in
, iter_type __end
, ios_base
& __io
,
24429 ios_base::iostate
& __err
, void*& __v
) const
24430 { return this->do_get(__in
, __end
, __io
, __err
, __v
); }
24434 virtual ~num_get() { }
24437 _M_extract_float(iter_type
, iter_type
, ios_base
&, ios_base::iostate
&,
24438 string
& __xtrc
) const;
24440 template<typename _ValueT
>
24442 _M_extract_int(iter_type
, iter_type
, ios_base
&, ios_base::iostate
&,
24443 _ValueT
& __v
) const;
24444 # 2142 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
24446 do_get(iter_type
, iter_type
, ios_base
&, ios_base::iostate
&, bool&) const;
24450 do_get(iter_type
, iter_type
, ios_base
&, ios_base::iostate
&, long&) const;
24453 do_get(iter_type
, iter_type
, ios_base
&, ios_base::iostate
& __err
,
24454 unsigned short&) const;
24457 do_get(iter_type
, iter_type
, ios_base
&, ios_base::iostate
& __err
,
24458 unsigned int&) const;
24461 do_get(iter_type
, iter_type
, ios_base
&, ios_base::iostate
& __err
,
24462 unsigned long&) const;
24466 do_get(iter_type
, iter_type
, ios_base
&, ios_base::iostate
& __err
,
24470 do_get(iter_type
, iter_type
, ios_base
&, ios_base::iostate
& __err
,
24471 unsigned long long&) const;
24475 do_get(iter_type
, iter_type
, ios_base
&, ios_base::iostate
& __err
,
24479 do_get(iter_type
, iter_type
, ios_base
&, ios_base::iostate
& __err
,
24483 do_get(iter_type
, iter_type
, ios_base
&, ios_base::iostate
& __err
,
24484 long double&) const;
24487 do_get(iter_type
, iter_type
, ios_base
&, ios_base::iostate
& __err
,
24492 template<typename _CharT
, typename _InIter
>
24493 locale::id num_get
<_CharT
, _InIter
>::id
;
24494 # 2204 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
24495 template<typename _CharT
, typename _OutIter
>
24496 class num_put
: public locale::facet
24502 typedef _CharT char_type
;
24503 typedef _OutIter iter_type
;
24507 static locale::id id
;
24508 # 2225 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
24510 num_put(size_t __refs
= 0) : facet(__refs
) { }
24511 # 2243 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
24513 put(iter_type __s
, ios_base
& __f
, char_type __fill
, bool __v
) const
24514 { return this->do_put(__s
, __f
, __fill
, __v
); }
24515 # 2285 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
24517 put(iter_type __s
, ios_base
& __f
, char_type __fill
, long __v
) const
24518 { return this->do_put(__s
, __f
, __fill
, __v
); }
24521 put(iter_type __s
, ios_base
& __f
, char_type __fill
,
24522 unsigned long __v
) const
24523 { return this->do_put(__s
, __f
, __fill
, __v
); }
24527 put(iter_type __s
, ios_base
& __f
, char_type __fill
, long long __v
) const
24528 { return this->do_put(__s
, __f
, __fill
, __v
); }
24531 put(iter_type __s
, ios_base
& __f
, char_type __fill
,
24532 unsigned long long __v
) const
24533 { return this->do_put(__s
, __f
, __fill
, __v
); }
24534 # 2348 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
24536 put(iter_type __s
, ios_base
& __f
, char_type __fill
, double __v
) const
24537 { return this->do_put(__s
, __f
, __fill
, __v
); }
24540 put(iter_type __s
, ios_base
& __f
, char_type __fill
,
24541 long double __v
) const
24542 { return this->do_put(__s
, __f
, __fill
, __v
); }
24543 # 2373 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
24545 put(iter_type __s
, ios_base
& __f
, char_type __fill
,
24546 const void* __v
) const
24547 { return this->do_put(__s
, __f
, __fill
, __v
); }
24550 template<typename _ValueT
>
24552 _M_insert_float(iter_type
, ios_base
& __io
, char_type __fill
,
24553 char __mod
, _ValueT __v
) const;
24556 _M_group_float(const char* __grouping
, size_t __grouping_size
,
24557 char_type __sep
, const char_type
* __p
, char_type
* __new
,
24558 char_type
* __cs
, int& __len
) const;
24560 template<typename _ValueT
>
24562 _M_insert_int(iter_type
, ios_base
& __io
, char_type __fill
,
24563 _ValueT __v
) const;
24566 _M_group_int(const char* __grouping
, size_t __grouping_size
,
24567 char_type __sep
, ios_base
& __io
, char_type
* __new
,
24568 char_type
* __cs
, int& __len
) const;
24571 _M_pad(char_type __fill
, streamsize __w
, ios_base
& __io
,
24572 char_type
* __new
, const char_type
* __cs
, int& __len
) const;
24577 # 2421 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
24579 do_put(iter_type
, ios_base
&, char_type __fill
, bool __v
) const;
24582 do_put(iter_type
, ios_base
&, char_type __fill
, long __v
) const;
24585 do_put(iter_type
, ios_base
&, char_type __fill
, unsigned long) const;
24589 do_put(iter_type
, ios_base
&, char_type __fill
, long long __v
) const;
24592 do_put(iter_type
, ios_base
&, char_type __fill
, unsigned long long) const;
24596 do_put(iter_type
, ios_base
&, char_type __fill
, double __v
) const;
24599 do_put(iter_type
, ios_base
&, char_type __fill
, long double __v
) const;
24602 do_put(iter_type
, ios_base
&, char_type __fill
, const void* __v
) const;
24606 template <typename _CharT
, typename _OutIter
>
24607 locale::id num_put
<_CharT
, _OutIter
>::id
;
24608 # 2465 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
24609 template<typename _CharT
>
24610 class collate
: public locale::facet
24616 typedef _CharT char_type
;
24617 typedef basic_string
<_CharT
> string_type
;
24623 __c_locale _M_c_locale_collate
;
24627 static locale::id id
;
24628 # 2492 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
24630 collate(size_t __refs
= 0)
24631 : facet(__refs
), _M_c_locale_collate(_S_get_c_locale())
24633 # 2506 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
24635 collate(__c_locale __cloc
, size_t __refs
= 0)
24636 : facet(__refs
), _M_c_locale_collate(_S_clone_c_locale(__cloc
))
24638 # 2523 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
24640 compare(const _CharT
* __lo1
, const _CharT
* __hi1
,
24641 const _CharT
* __lo2
, const _CharT
* __hi2
) const
24642 { return this->do_compare(__lo1
, __hi1
, __lo2
, __hi2
); }
24643 # 2542 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
24645 transform(const _CharT
* __lo
, const _CharT
* __hi
) const
24646 { return this->do_transform(__lo
, __hi
); }
24647 # 2556 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
24649 hash(const _CharT
* __lo
, const _CharT
* __hi
) const
24650 { return this->do_hash(__lo
, __hi
); }
24654 _M_compare(const _CharT
*, const _CharT
*) const;
24657 _M_transform(_CharT
*, const _CharT
*, size_t) const;
24663 { _S_destroy_c_locale(_M_c_locale_collate
); }
24664 # 2585 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
24666 do_compare(const _CharT
* __lo1
, const _CharT
* __hi1
,
24667 const _CharT
* __lo2
, const _CharT
* __hi2
) const;
24668 # 2601 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
24669 virtual string_type
24670 do_transform(const _CharT
* __lo
, const _CharT
* __hi
) const;
24671 # 2614 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
24673 do_hash(const _CharT
* __lo
, const _CharT
* __hi
) const;
24676 template<typename _CharT
>
24677 locale::id collate
<_CharT
>::id
;
24682 collate
<char>::_M_compare(const char*, const char*) const;
24686 collate
<char>::_M_transform(char*, const char*, size_t) const;
24691 collate
<wchar_t>::_M_compare(const wchar_t*, const wchar_t*) const;
24695 collate
<wchar_t>::_M_transform(wchar_t*, const wchar_t*, size_t) const;
24699 template<typename _CharT
>
24700 class collate_byname
: public collate
<_CharT
>
24705 typedef _CharT char_type
;
24706 typedef basic_string
<_CharT
> string_type
;
24710 collate_byname(const char* __s
, size_t __refs
= 0)
24711 : collate
<_CharT
>(__refs
)
24713 if (std::strcmp(__s
, "C") != 0 && std::strcmp(__s
, "POSIX") != 0)
24715 this->_S_destroy_c_locale(this->_M_c_locale_collate
);
24716 this->_S_create_c_locale(this->_M_c_locale_collate
, __s
);
24722 ~collate_byname() { }
24724 # 2674 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
24728 enum dateorder
{ no_order
, dmy
, mdy
, ymd
, ydm
};
24731 template<typename _CharT
>
24732 struct __timepunct_cache
: public locale::facet
24735 static const _CharT
* _S_timezones
[14];
24737 const _CharT
* _M_date_format
;
24738 const _CharT
* _M_date_era_format
;
24739 const _CharT
* _M_time_format
;
24740 const _CharT
* _M_time_era_format
;
24741 const _CharT
* _M_date_time_format
;
24742 const _CharT
* _M_date_time_era_format
;
24743 const _CharT
* _M_am
;
24744 const _CharT
* _M_pm
;
24745 const _CharT
* _M_am_pm_format
;
24748 const _CharT
* _M_day1
;
24749 const _CharT
* _M_day2
;
24750 const _CharT
* _M_day3
;
24751 const _CharT
* _M_day4
;
24752 const _CharT
* _M_day5
;
24753 const _CharT
* _M_day6
;
24754 const _CharT
* _M_day7
;
24757 const _CharT
* _M_aday1
;
24758 const _CharT
* _M_aday2
;
24759 const _CharT
* _M_aday3
;
24760 const _CharT
* _M_aday4
;
24761 const _CharT
* _M_aday5
;
24762 const _CharT
* _M_aday6
;
24763 const _CharT
* _M_aday7
;
24766 const _CharT
* _M_month01
;
24767 const _CharT
* _M_month02
;
24768 const _CharT
* _M_month03
;
24769 const _CharT
* _M_month04
;
24770 const _CharT
* _M_month05
;
24771 const _CharT
* _M_month06
;
24772 const _CharT
* _M_month07
;
24773 const _CharT
* _M_month08
;
24774 const _CharT
* _M_month09
;
24775 const _CharT
* _M_month10
;
24776 const _CharT
* _M_month11
;
24777 const _CharT
* _M_month12
;
24780 const _CharT
* _M_amonth01
;
24781 const _CharT
* _M_amonth02
;
24782 const _CharT
* _M_amonth03
;
24783 const _CharT
* _M_amonth04
;
24784 const _CharT
* _M_amonth05
;
24785 const _CharT
* _M_amonth06
;
24786 const _CharT
* _M_amonth07
;
24787 const _CharT
* _M_amonth08
;
24788 const _CharT
* _M_amonth09
;
24789 const _CharT
* _M_amonth10
;
24790 const _CharT
* _M_amonth11
;
24791 const _CharT
* _M_amonth12
;
24795 __timepunct_cache(size_t __refs
= 0) : facet(__refs
),
24796 _M_date_format(__null
), _M_date_era_format(__null
), _M_time_format(__null
),
24797 _M_time_era_format(__null
), _M_date_time_format(__null
),
24798 _M_date_time_era_format(__null
), _M_am(__null
), _M_pm(__null
),
24799 _M_am_pm_format(__null
), _M_day1(__null
), _M_day2(__null
), _M_day3(__null
),
24800 _M_day4(__null
), _M_day5(__null
), _M_day6(__null
), _M_day7(__null
),
24801 _M_aday1(__null
), _M_aday2(__null
), _M_aday3(__null
), _M_aday4(__null
),
24802 _M_aday5(__null
), _M_aday6(__null
), _M_aday7(__null
), _M_month01(__null
),
24803 _M_month02(__null
), _M_month03(__null
), _M_month04(__null
), _M_month05(__null
),
24804 _M_month06(__null
), _M_month07(__null
), _M_month08(__null
), _M_month09(__null
),
24805 _M_month10(__null
), _M_month11(__null
), _M_month12(__null
), _M_amonth01(__null
),
24806 _M_amonth02(__null
), _M_amonth03(__null
), _M_amonth04(__null
),
24807 _M_amonth05(__null
), _M_amonth06(__null
), _M_amonth07(__null
),
24808 _M_amonth08(__null
), _M_amonth09(__null
), _M_amonth10(__null
),
24809 _M_amonth11(__null
), _M_amonth12(__null
), _M_allocated(false)
24812 ~__timepunct_cache();
24815 _M_cache(const locale
& __loc
);
24819 operator=(const __timepunct_cache
&);
24822 __timepunct_cache(const __timepunct_cache
&);
24825 template<typename _CharT
>
24826 __timepunct_cache
<_CharT
>::~__timepunct_cache()
24837 __timepunct_cache
<char>::_S_timezones
[14];
24842 __timepunct_cache
<wchar_t>::_S_timezones
[14];
24846 template<typename _CharT
>
24847 const _CharT
* __timepunct_cache
<_CharT
>::_S_timezones
[14];
24849 template<typename _CharT
>
24850 class __timepunct
: public locale::facet
24854 typedef _CharT __char_type
;
24855 typedef basic_string
<_CharT
> __string_type
;
24856 typedef __timepunct_cache
<_CharT
> __cache_type
;
24859 __cache_type
* _M_data
;
24860 __c_locale _M_c_locale_timepunct
;
24861 const char* _M_name_timepunct
;
24865 static locale::id id
;
24868 __timepunct(size_t __refs
= 0);
24871 __timepunct(__cache_type
* __cache
, size_t __refs
= 0);
24872 # 2832 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
24874 __timepunct(__c_locale __cloc
, const char* __s
, size_t __refs
= 0);
24879 _M_put(_CharT
* __s
, size_t __maxlen
, const _CharT
* __format
,
24880 const tm
* __tm
) const;
24883 _M_date_formats(const _CharT
** __date
) const
24886 __date
[0] = _M_data
->_M_date_format
;
24887 __date
[1] = _M_data
->_M_date_era_format
;
24891 _M_time_formats(const _CharT
** __time
) const
24894 __time
[0] = _M_data
->_M_time_format
;
24895 __time
[1] = _M_data
->_M_time_era_format
;
24899 _M_date_time_formats(const _CharT
** __dt
) const
24902 __dt
[0] = _M_data
->_M_date_time_format
;
24903 __dt
[1] = _M_data
->_M_date_time_era_format
;
24907 _M_am_pm_format(const _CharT
* __ampm
) const
24908 { __ampm
= _M_data
->_M_am_pm_format
; }
24911 _M_am_pm(const _CharT
** __ampm
) const
24913 __ampm
[0] = _M_data
->_M_am
;
24914 __ampm
[1] = _M_data
->_M_pm
;
24918 _M_days(const _CharT
** __days
) const
24920 __days
[0] = _M_data
->_M_day1
;
24921 __days
[1] = _M_data
->_M_day2
;
24922 __days
[2] = _M_data
->_M_day3
;
24923 __days
[3] = _M_data
->_M_day4
;
24924 __days
[4] = _M_data
->_M_day5
;
24925 __days
[5] = _M_data
->_M_day6
;
24926 __days
[6] = _M_data
->_M_day7
;
24930 _M_days_abbreviated(const _CharT
** __days
) const
24932 __days
[0] = _M_data
->_M_aday1
;
24933 __days
[1] = _M_data
->_M_aday2
;
24934 __days
[2] = _M_data
->_M_aday3
;
24935 __days
[3] = _M_data
->_M_aday4
;
24936 __days
[4] = _M_data
->_M_aday5
;
24937 __days
[5] = _M_data
->_M_aday6
;
24938 __days
[6] = _M_data
->_M_aday7
;
24942 _M_months(const _CharT
** __months
) const
24944 __months
[0] = _M_data
->_M_month01
;
24945 __months
[1] = _M_data
->_M_month02
;
24946 __months
[2] = _M_data
->_M_month03
;
24947 __months
[3] = _M_data
->_M_month04
;
24948 __months
[4] = _M_data
->_M_month05
;
24949 __months
[5] = _M_data
->_M_month06
;
24950 __months
[6] = _M_data
->_M_month07
;
24951 __months
[7] = _M_data
->_M_month08
;
24952 __months
[8] = _M_data
->_M_month09
;
24953 __months
[9] = _M_data
->_M_month10
;
24954 __months
[10] = _M_data
->_M_month11
;
24955 __months
[11] = _M_data
->_M_month12
;
24959 _M_months_abbreviated(const _CharT
** __months
) const
24961 __months
[0] = _M_data
->_M_amonth01
;
24962 __months
[1] = _M_data
->_M_amonth02
;
24963 __months
[2] = _M_data
->_M_amonth03
;
24964 __months
[3] = _M_data
->_M_amonth04
;
24965 __months
[4] = _M_data
->_M_amonth05
;
24966 __months
[5] = _M_data
->_M_amonth06
;
24967 __months
[6] = _M_data
->_M_amonth07
;
24968 __months
[7] = _M_data
->_M_amonth08
;
24969 __months
[8] = _M_data
->_M_amonth09
;
24970 __months
[9] = _M_data
->_M_amonth10
;
24971 __months
[10] = _M_data
->_M_amonth11
;
24972 __months
[11] = _M_data
->_M_amonth12
;
24981 _M_initialize_timepunct(__c_locale __cloc
= __null
);
24984 template<typename _CharT
>
24985 locale::id __timepunct
<_CharT
>::id
;
24990 __timepunct
<char>::_M_initialize_timepunct(__c_locale __cloc
);
24994 __timepunct
<char>::_M_put(char*, size_t, const char*, const tm
*) const;
24999 __timepunct
<wchar_t>::_M_initialize_timepunct(__c_locale __cloc
);
25003 __timepunct
<wchar_t>::_M_put(wchar_t*, size_t, const wchar_t*,
25008 # 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/i686-pc-linux-gnu/bits/time_members.h" 1 3
25009 # 37 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/i686-pc-linux-gnu/bits/time_members.h" 3
25010 template<typename _CharT
>
25011 __timepunct
<_CharT
>::__timepunct(size_t __refs
)
25012 : facet(__refs
), _M_data(__null
), _M_c_locale_timepunct(__null
),
25013 _M_name_timepunct(_S_get_c_name())
25014 { _M_initialize_timepunct(); }
25016 template<typename _CharT
>
25017 __timepunct
<_CharT
>::__timepunct(__cache_type
* __cache
, size_t __refs
)
25018 : facet(__refs
), _M_data(__cache
), _M_c_locale_timepunct(__null
),
25019 _M_name_timepunct(_S_get_c_name())
25020 { _M_initialize_timepunct(); }
25022 template<typename _CharT
>
25023 __timepunct
<_CharT
>::__timepunct(__c_locale __cloc
, const char* __s
,
25025 : facet(__refs
), _M_data(__null
), _M_c_locale_timepunct(__null
),
25026 _M_name_timepunct(__null
)
25028 const size_t __len
= std::strlen(__s
) + 1;
25029 char* __tmp
= new char[__len
];
25030 std::memcpy(__tmp
, __s
, __len
);
25031 _M_name_timepunct
= __tmp
;
25034 { _M_initialize_timepunct(__cloc
); }
25037 delete [] _M_name_timepunct
;
25042 template<typename _CharT
>
25043 __timepunct
<_CharT
>::~__timepunct()
25045 if (_M_name_timepunct
!= _S_get_c_name())
25046 delete [] _M_name_timepunct
;
25048 _S_destroy_c_locale(_M_c_locale_timepunct
);
25050 # 2968 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 2 3
25051 # 2981 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
25052 template<typename _CharT
, typename _InIter
>
25053 class time_get
: public locale::facet
, public time_base
25059 typedef _CharT char_type
;
25060 typedef _InIter iter_type
;
25062 typedef basic_string
<_CharT
> __string_type
;
25065 static locale::id id
;
25066 # 3003 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
25068 time_get(size_t __refs
= 0)
25069 : facet (__refs
) { }
25070 # 3020 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
25073 { return this->do_date_order(); }
25074 # 3044 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
25076 get_time(iter_type __beg
, iter_type __end
, ios_base
& __io
,
25077 ios_base::iostate
& __err
, tm
* __tm
) const
25078 { return this->do_get_time(__beg
, __end
, __io
, __err
, __tm
); }
25079 # 3069 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
25081 get_date(iter_type __beg
, iter_type __end
, ios_base
& __io
,
25082 ios_base::iostate
& __err
, tm
* __tm
) const
25083 { return this->do_get_date(__beg
, __end
, __io
, __err
, __tm
); }
25084 # 3097 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
25086 get_weekday(iter_type __beg
, iter_type __end
, ios_base
& __io
,
25087 ios_base::iostate
& __err
, tm
* __tm
) const
25088 { return this->do_get_weekday(__beg
, __end
, __io
, __err
, __tm
); }
25089 # 3126 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
25091 get_monthname(iter_type __beg
, iter_type __end
, ios_base
& __io
,
25092 ios_base::iostate
& __err
, tm
* __tm
) const
25093 { return this->do_get_monthname(__beg
, __end
, __io
, __err
, __tm
); }
25094 # 3152 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
25096 get_year(iter_type __beg
, iter_type __end
, ios_base
& __io
,
25097 ios_base::iostate
& __err
, tm
* __tm
) const
25098 { return this->do_get_year(__beg
, __end
, __io
, __err
, __tm
); }
25104 # 3172 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
25106 do_date_order() const;
25107 # 3190 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
25109 do_get_time(iter_type __beg
, iter_type __end
, ios_base
& __io
,
25110 ios_base::iostate
& __err
, tm
* __tm
) const;
25111 # 3209 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
25113 do_get_date(iter_type __beg
, iter_type __end
, ios_base
& __io
,
25114 ios_base::iostate
& __err
, tm
* __tm
) const;
25115 # 3228 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
25117 do_get_weekday(iter_type __beg
, iter_type __end
, ios_base
&,
25118 ios_base::iostate
& __err
, tm
* __tm
) const;
25119 # 3247 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
25121 do_get_monthname(iter_type __beg
, iter_type __end
, ios_base
&,
25122 ios_base::iostate
& __err
, tm
* __tm
) const;
25123 # 3266 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
25125 do_get_year(iter_type __beg
, iter_type __end
, ios_base
& __io
,
25126 ios_base::iostate
& __err
, tm
* __tm
) const;
25130 _M_extract_num(iter_type __beg
, iter_type __end
, int& __member
,
25131 int __min
, int __max
, size_t __len
,
25132 ios_base
& __io
, ios_base::iostate
& __err
) const;
25137 _M_extract_name(iter_type __beg
, iter_type __end
, int& __member
,
25138 const _CharT
** __names
, size_t __indexlen
,
25139 ios_base
& __io
, ios_base::iostate
& __err
) const;
25143 _M_extract_via_format(iter_type __beg
, iter_type __end
, ios_base
& __io
,
25144 ios_base::iostate
& __err
, tm
* __tm
,
25145 const _CharT
* __format
) const;
25148 template<typename _CharT
, typename _InIter
>
25149 locale::id time_get
<_CharT
, _InIter
>::id
;
25152 template<typename _CharT
, typename _InIter
>
25153 class time_get_byname
: public time_get
<_CharT
, _InIter
>
25157 typedef _CharT char_type
;
25158 typedef _InIter iter_type
;
25161 time_get_byname(const char*, size_t __refs
= 0)
25162 : time_get
<_CharT
, _InIter
>(__refs
) { }
25166 ~time_get_byname() { }
25168 # 3322 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
25169 template<typename _CharT
, typename _OutIter
>
25170 class time_put
: public locale::facet
25176 typedef _CharT char_type
;
25177 typedef _OutIter iter_type
;
25181 static locale::id id
;
25182 # 3343 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
25184 time_put(size_t __refs
= 0)
25185 : facet(__refs
) { }
25186 # 3362 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
25188 put(iter_type __s
, ios_base
& __io
, char_type __fill
, const tm
* __tm
,
25189 const _CharT
* __beg
, const _CharT
* __end
) const;
25190 # 3382 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
25192 put(iter_type __s
, ios_base
& __io
, char_type __fill
,
25193 const tm
* __tm
, char __format
, char __mod
= 0) const
25194 { return this->do_put(__s
, __io
, __fill
, __tm
, __format
, __mod
); }
25201 # 3409 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
25203 do_put(iter_type __s
, ios_base
& __io
, char_type __fill
, const tm
* __tm
,
25204 char __format
, char __mod
) const;
25207 template<typename _CharT
, typename _OutIter
>
25208 locale::id time_put
<_CharT
, _OutIter
>::id
;
25211 template<typename _CharT
, typename _OutIter
>
25212 class time_put_byname
: public time_put
<_CharT
, _OutIter
>
25216 typedef _CharT char_type
;
25217 typedef _OutIter iter_type
;
25220 time_put_byname(const char*, size_t __refs
= 0)
25221 : time_put
<_CharT
, _OutIter
>(__refs
)
25226 ~time_put_byname() { }
25228 # 3447 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
25232 enum part
{ none
, space
, symbol
, sign
, value
};
25233 struct pattern
{ char field
[4]; };
25235 static const pattern _S_default_pattern
;
25246 static const char* _S_atoms
;
25251 _S_construct_pattern(char __precedes
, char __space
, char __posn
);
25254 template<typename _CharT
, bool _Intl
>
25255 struct __moneypunct_cache
: public locale::facet
25257 const char* _M_grouping
;
25258 size_t _M_grouping_size
;
25259 bool _M_use_grouping
;
25260 _CharT _M_decimal_point
;
25261 _CharT _M_thousands_sep
;
25262 const _CharT
* _M_curr_symbol
;
25263 size_t _M_curr_symbol_size
;
25264 const _CharT
* _M_positive_sign
;
25265 size_t _M_positive_sign_size
;
25266 const _CharT
* _M_negative_sign
;
25267 size_t _M_negative_sign_size
;
25268 int _M_frac_digits
;
25269 money_base::pattern _M_pos_format
;
25270 money_base::pattern _M_neg_format
;
25275 _CharT _M_atoms
[money_base::_S_end
];
25279 __moneypunct_cache(size_t __refs
= 0) : facet(__refs
),
25280 _M_grouping(__null
), _M_grouping_size(0), _M_use_grouping(false),
25281 _M_decimal_point(_CharT()), _M_thousands_sep(_CharT()),
25282 _M_curr_symbol(__null
), _M_curr_symbol_size(0),
25283 _M_positive_sign(__null
), _M_positive_sign_size(0),
25284 _M_negative_sign(__null
), _M_negative_sign_size(0),
25286 _M_pos_format(money_base::pattern()),
25287 _M_neg_format(money_base::pattern()), _M_allocated(false)
25290 ~__moneypunct_cache();
25293 _M_cache(const locale
& __loc
);
25296 __moneypunct_cache
&
25297 operator=(const __moneypunct_cache
&);
25300 __moneypunct_cache(const __moneypunct_cache
&);
25303 template<typename _CharT
, bool _Intl
>
25304 __moneypunct_cache
<_CharT
, _Intl
>::~__moneypunct_cache()
25308 delete [] _M_grouping
;
25309 delete [] _M_curr_symbol
;
25310 delete [] _M_positive_sign
;
25311 delete [] _M_negative_sign
;
25321 template<typename _CharT
, bool _Intl
>
25322 class moneypunct
: public locale::facet
, public money_base
25328 typedef _CharT char_type
;
25329 typedef basic_string
<_CharT
> string_type
;
25331 typedef __moneypunct_cache
<_CharT
, _Intl
> __cache_type
;
25334 __cache_type
* _M_data
;
25339 static const bool intl
= _Intl
;
25341 static locale::id id
;
25342 # 3568 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
25344 moneypunct(size_t __refs
= 0) : facet(__refs
), _M_data(__null
)
25345 { _M_initialize_moneypunct(); }
25346 # 3580 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
25348 moneypunct(__cache_type
* __cache
, size_t __refs
= 0)
25349 : facet(__refs
), _M_data(__cache
)
25350 { _M_initialize_moneypunct(); }
25351 # 3595 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
25353 moneypunct(__c_locale __cloc
, const char* __s
, size_t __refs
= 0)
25354 : facet(__refs
), _M_data(__null
)
25355 { _M_initialize_moneypunct(__cloc
, __s
); }
25356 # 3609 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
25358 decimal_point() const
25359 { return this->do_decimal_point(); }
25360 # 3622 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
25362 thousands_sep() const
25363 { return this->do_thousands_sep(); }
25364 # 3651 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
25367 { return this->do_grouping(); }
25368 # 3664 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
25370 curr_symbol() const
25371 { return this->do_curr_symbol(); }
25372 # 3681 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
25374 positive_sign() const
25375 { return this->do_positive_sign(); }
25376 # 3698 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
25378 negative_sign() const
25379 { return this->do_negative_sign(); }
25380 # 3714 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
25382 frac_digits() const
25383 { return this->do_frac_digits(); }
25384 # 3749 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
25387 { return this->do_pos_format(); }
25391 { return this->do_neg_format(); }
25398 # 3771 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
25400 do_decimal_point() const
25401 { return _M_data
->_M_decimal_point
; }
25402 # 3783 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
25404 do_thousands_sep() const
25405 { return _M_data
->_M_thousands_sep
; }
25406 # 3796 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
25408 do_grouping() const
25409 { return _M_data
->_M_grouping
; }
25410 # 3809 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
25411 virtual string_type
25412 do_curr_symbol() const
25413 { return _M_data
->_M_curr_symbol
; }
25414 # 3822 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
25415 virtual string_type
25416 do_positive_sign() const
25417 { return _M_data
->_M_positive_sign
; }
25418 # 3835 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
25419 virtual string_type
25420 do_negative_sign() const
25421 { return _M_data
->_M_negative_sign
; }
25422 # 3849 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
25424 do_frac_digits() const
25425 { return _M_data
->_M_frac_digits
; }
25426 # 3863 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
25428 do_pos_format() const
25429 { return _M_data
->_M_pos_format
; }
25430 # 3877 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
25432 do_neg_format() const
25433 { return _M_data
->_M_neg_format
; }
25437 _M_initialize_moneypunct(__c_locale __cloc
= __null
,
25438 const char* __name
= __null
);
25441 template<typename _CharT
, bool _Intl
>
25442 locale::id moneypunct
<_CharT
, _Intl
>::id
;
25444 template<typename _CharT
, bool _Intl
>
25445 const bool moneypunct
<_CharT
, _Intl
>::intl
;
25448 moneypunct
<char, true>::~moneypunct();
25451 moneypunct
<char, false>::~moneypunct();
25455 moneypunct
<char, true>::_M_initialize_moneypunct(__c_locale
, const char*);
25459 moneypunct
<char, false>::_M_initialize_moneypunct(__c_locale
, const char*);
25463 moneypunct
<wchar_t, true>::~moneypunct();
25466 moneypunct
<wchar_t, false>::~moneypunct();
25470 moneypunct
<wchar_t, true>::_M_initialize_moneypunct(__c_locale
,
25475 moneypunct
<wchar_t, false>::_M_initialize_moneypunct(__c_locale
,
25480 template<typename _CharT
, bool _Intl
>
25481 class moneypunct_byname
: public moneypunct
<_CharT
, _Intl
>
25484 typedef _CharT char_type
;
25485 typedef basic_string
<_CharT
> string_type
;
25487 static const bool intl
= _Intl
;
25490 moneypunct_byname(const char* __s
, size_t __refs
= 0)
25491 : moneypunct
<_CharT
, _Intl
>(__refs
)
25493 if (std::strcmp(__s
, "C") != 0 && std::strcmp(__s
, "POSIX") != 0)
25496 this->_S_create_c_locale(__tmp
, __s
);
25497 this->_M_initialize_moneypunct(__tmp
);
25498 this->_S_destroy_c_locale(__tmp
);
25504 ~moneypunct_byname() { }
25507 template<typename _CharT
, bool _Intl
>
25508 const bool moneypunct_byname
<_CharT
, _Intl
>::intl
;
25509 # 3968 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
25510 template<typename _CharT
, typename _InIter
>
25511 class money_get
: public locale::facet
25517 typedef _CharT char_type
;
25518 typedef _InIter iter_type
;
25519 typedef basic_string
<_CharT
> string_type
;
25523 static locale::id id
;
25524 # 3990 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
25526 money_get(size_t __refs
= 0) : facet(__refs
) { }
25527 # 4020 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
25529 get(iter_type __s
, iter_type __end
, bool __intl
, ios_base
& __io
,
25530 ios_base::iostate
& __err
, long double& __units
) const
25531 { return this->do_get(__s
, __end
, __intl
, __io
, __err
, __units
); }
25532 # 4050 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
25534 get(iter_type __s
, iter_type __end
, bool __intl
, ios_base
& __io
,
25535 ios_base::iostate
& __err
, string_type
& __digits
) const
25536 { return this->do_get(__s
, __end
, __intl
, __io
, __err
, __digits
); }
25542 # 4067 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
25544 do_get(iter_type __s
, iter_type __end
, bool __intl
, ios_base
& __io
,
25545 ios_base::iostate
& __err
, long double& __units
) const;
25546 # 4078 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
25548 do_get(iter_type __s
, iter_type __end
, bool __intl
, ios_base
& __io
,
25549 ios_base::iostate
& __err
, string_type
& __digits
) const;
25551 template<bool _Intl
>
25553 _M_extract(iter_type __s
, iter_type __end
, ios_base
& __io
,
25554 ios_base::iostate
& __err
, string
& __digits
) const;
25557 template<typename _CharT
, typename _InIter
>
25558 locale::id money_get
<_CharT
, _InIter
>::id
;
25559 # 4103 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
25560 template<typename _CharT
, typename _OutIter
>
25561 class money_put
: public locale::facet
25566 typedef _CharT char_type
;
25567 typedef _OutIter iter_type
;
25568 typedef basic_string
<_CharT
> string_type
;
25572 static locale::id id
;
25573 # 4124 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
25575 money_put(size_t __refs
= 0) : facet(__refs
) { }
25576 # 4144 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
25578 put(iter_type __s
, bool __intl
, ios_base
& __io
,
25579 char_type __fill
, long double __units
) const
25580 { return this->do_put(__s
, __intl
, __io
, __fill
, __units
); }
25581 # 4166 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
25583 put(iter_type __s
, bool __intl
, ios_base
& __io
,
25584 char_type __fill
, const string_type
& __digits
) const
25585 { return this->do_put(__s
, __intl
, __io
, __fill
, __digits
); }
25591 # 4194 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
25593 do_put(iter_type __s
, bool __intl
, ios_base
& __io
, char_type __fill
,
25594 long double __units
) const;
25595 # 4216 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
25597 do_put(iter_type __s
, bool __intl
, ios_base
& __io
, char_type __fill
,
25598 const string_type
& __digits
) const;
25600 template<bool _Intl
>
25602 _M_insert(iter_type __s
, ios_base
& __io
, char_type __fill
,
25603 const string_type
& __digits
) const;
25606 template<typename _CharT
, typename _OutIter
>
25607 locale::id money_put
<_CharT
, _OutIter
>::id
;
25612 struct messages_base
25614 typedef int catalog
;
25616 # 4257 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
25617 template<typename _CharT
>
25618 class messages
: public locale::facet
, public messages_base
25624 typedef _CharT char_type
;
25625 typedef basic_string
<_CharT
> string_type
;
25631 __c_locale _M_c_locale_messages
;
25632 const char* _M_name_messages
;
25636 static locale::id id
;
25637 # 4285 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
25639 messages(size_t __refs
= 0);
25640 # 4299 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
25642 messages(__c_locale __cloc
, const char* __s
, size_t __refs
= 0);
25643 # 4312 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
25645 open(const basic_string
<char>& __s
, const locale
& __loc
) const
25646 { return this->do_open(__s
, __loc
); }
25647 # 4330 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
25649 open(const basic_string
<char>&, const locale
&, const char*) const;
25650 # 4348 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
25652 get(catalog __c
, int __set
, int __msgid
, const string_type
& __s
) const
25653 { return this->do_get(__c
, __set
, __msgid
, __s
); }
25654 # 4359 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
25656 close(catalog __c
) const
25657 { return this->do_close(__c
); }
25663 # 4379 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
25665 do_open(const basic_string
<char>&, const locale
&) const;
25666 # 4398 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
25667 virtual string_type
25668 do_get(catalog
, int, int, const string_type
& __dfault
) const;
25676 do_close(catalog
) const;
25680 _M_convert_to_char(const string_type
& __msg
) const
25683 return reinterpret_cast<char*>(const_cast<_CharT
*>(__msg
.c_str()));
25688 _M_convert_from_char(char*) const
25690 # 4455 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
25691 return string_type();
25695 template<typename _CharT
>
25696 locale::id messages
<_CharT
>::id
;
25701 messages
<char>::do_get(catalog
, int, int, const string
&) const;
25706 messages
<wchar_t>::do_get(catalog
, int, int, const wstring
&) const;
25710 template<typename _CharT
>
25711 class messages_byname
: public messages
<_CharT
>
25714 typedef _CharT char_type
;
25715 typedef basic_string
<_CharT
> string_type
;
25718 messages_byname(const char* __s
, size_t __refs
= 0);
25727 # 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/i686-pc-linux-gnu/bits/messages_members.h" 1 3
25728 # 37 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/i686-pc-linux-gnu/bits/messages_members.h" 3
25729 template<typename _CharT
>
25730 messages
<_CharT
>::messages(size_t __refs
)
25731 : facet(__refs
), _M_c_locale_messages(_S_get_c_locale()),
25732 _M_name_messages(_S_get_c_name())
25735 template<typename _CharT
>
25736 messages
<_CharT
>::messages(__c_locale __cloc
, const char* __s
,
25738 : facet(__refs
), _M_c_locale_messages(__null
), _M_name_messages(__null
)
25740 const size_t __len
= std::strlen(__s
) + 1;
25741 char* __tmp
= new char[__len
];
25742 std::memcpy(__tmp
, __s
, __len
);
25743 _M_name_messages
= __tmp
;
25746 _M_c_locale_messages
= _S_clone_c_locale(__cloc
);
25749 template<typename _CharT
>
25750 typename messages
<_CharT
>::catalog
25751 messages
<_CharT
>::open(const basic_string
<char>& __s
, const locale
& __loc
,
25752 const char* __dir
) const
25754 bindtextdomain(__s
.c_str(), __dir
);
25755 return this->do_open(__s
, __loc
);
25759 template<typename _CharT
>
25760 messages
<_CharT
>::~messages()
25762 if (_M_name_messages
!= _S_get_c_name())
25763 delete [] _M_name_messages
;
25764 _S_destroy_c_locale(_M_c_locale_messages
);
25767 template<typename _CharT
>
25768 typename messages
<_CharT
>::catalog
25769 messages
<_CharT
>::do_open(const basic_string
<char>& __s
,
25770 const locale
&) const
25774 textdomain(__s
.c_str());
25778 template<typename _CharT
>
25780 messages
<_CharT
>::do_close(catalog
) const
25784 template<typename _CharT
>
25785 messages_byname
<_CharT
>::messages_byname(const char* __s
, size_t __refs
)
25786 : messages
<_CharT
>(__refs
)
25788 if (this->_M_name_messages
!= locale::facet::_S_get_c_name())
25789 delete [] this->_M_name_messages
;
25790 char* __tmp
= new char[std::strlen(__s
) + 1];
25791 std::strcpy(__tmp
, __s
);
25792 this->_M_name_messages
= __tmp
;
25794 if (std::strcmp(__s
, "C") != 0 && std::strcmp(__s
, "POSIX") != 0)
25796 this->_S_destroy_c_locale(this->_M_c_locale_messages
);
25797 this->_S_create_c_locale(this->_M_c_locale_messages
, __s
);
25800 # 4492 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 2 3
25801 # 4500 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h" 3
25802 template<typename _CharT
>
25804 isspace(_CharT __c
, const locale
& __loc
)
25805 { return use_facet
<ctype
<_CharT
> >(__loc
).is(ctype_base::space
, __c
); }
25808 template<typename _CharT
>
25810 isprint(_CharT __c
, const locale
& __loc
)
25811 { return use_facet
<ctype
<_CharT
> >(__loc
).is(ctype_base::print
, __c
); }
25814 template<typename _CharT
>
25816 iscntrl(_CharT __c
, const locale
& __loc
)
25817 { return use_facet
<ctype
<_CharT
> >(__loc
).is(ctype_base::cntrl
, __c
); }
25820 template<typename _CharT
>
25822 isupper(_CharT __c
, const locale
& __loc
)
25823 { return use_facet
<ctype
<_CharT
> >(__loc
).is(ctype_base::upper
, __c
); }
25826 template<typename _CharT
>
25828 islower(_CharT __c
, const locale
& __loc
)
25829 { return use_facet
<ctype
<_CharT
> >(__loc
).is(ctype_base::lower
, __c
); }
25832 template<typename _CharT
>
25834 isalpha(_CharT __c
, const locale
& __loc
)
25835 { return use_facet
<ctype
<_CharT
> >(__loc
).is(ctype_base::alpha
, __c
); }
25838 template<typename _CharT
>
25840 isdigit(_CharT __c
, const locale
& __loc
)
25841 { return use_facet
<ctype
<_CharT
> >(__loc
).is(ctype_base::digit
, __c
); }
25844 template<typename _CharT
>
25846 ispunct(_CharT __c
, const locale
& __loc
)
25847 { return use_facet
<ctype
<_CharT
> >(__loc
).is(ctype_base::punct
, __c
); }
25850 template<typename _CharT
>
25852 isxdigit(_CharT __c
, const locale
& __loc
)
25853 { return use_facet
<ctype
<_CharT
> >(__loc
).is(ctype_base::xdigit
, __c
); }
25856 template<typename _CharT
>
25858 isalnum(_CharT __c
, const locale
& __loc
)
25859 { return use_facet
<ctype
<_CharT
> >(__loc
).is(ctype_base::alnum
, __c
); }
25862 template<typename _CharT
>
25864 isgraph(_CharT __c
, const locale
& __loc
)
25865 { return use_facet
<ctype
<_CharT
> >(__loc
).is(ctype_base::graph
, __c
); }
25868 template<typename _CharT
>
25870 toupper(_CharT __c
, const locale
& __loc
)
25871 { return use_facet
<ctype
<_CharT
> >(__loc
).toupper(__c
); }
25874 template<typename _CharT
>
25876 tolower(_CharT __c
, const locale
& __loc
)
25877 { return use_facet
<ctype
<_CharT
> >(__loc
).tolower(__c
); }
25879 # 45 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_ios.h" 2 3
25890 template<typename _CharT
, typename _Traits
>
25891 class basic_ios
: public ios_base
25900 typedef _CharT char_type
;
25901 typedef typename
_Traits::int_type int_type
;
25902 typedef typename
_Traits::pos_type pos_type
;
25903 typedef typename
_Traits::off_type off_type
;
25904 typedef _Traits traits_type
;
25905 # 78 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_ios.h" 3
25906 typedef ctype
<_CharT
> __ctype_type
;
25907 typedef num_put
<_CharT
, ostreambuf_iterator
<_CharT
, _Traits
> >
25909 typedef num_get
<_CharT
, istreambuf_iterator
<_CharT
, _Traits
> >
25915 basic_ostream
<_CharT
, _Traits
>* _M_tie
;
25916 mutable char_type _M_fill
;
25917 mutable bool _M_fill_init
;
25918 basic_streambuf
<_CharT
, _Traits
>* _M_streambuf
;
25921 const __ctype_type
* _M_ctype
;
25923 const __num_put_type
* _M_num_put
;
25925 const __num_get_type
* _M_num_get
;
25935 operator void*() const
25936 { return this->fail() ? 0 : const_cast<basic_ios
*>(this); }
25940 { return this->fail(); }
25941 # 122 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_ios.h" 3
25944 { return _M_streambuf_state
; }
25945 # 133 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_ios.h" 3
25947 clear(iostate __state
= goodbit
);
25956 setstate(iostate __state
)
25957 { this->clear(this->rdstate() | __state
); }
25963 _M_setstate(iostate __state
)
25967 _M_streambuf_state
|= __state
;
25968 if (this->exceptions() & __state
)
25980 { return this->rdstate() == 0; }
25990 { return (this->rdstate() & eofbit
) != 0; }
25991 # 186 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_ios.h" 3
25994 { return (this->rdstate() & (badbit
| failbit
)) != 0; }
26004 { return (this->rdstate() & badbit
) != 0; }
26005 # 207 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_ios.h" 3
26008 { return _M_exception
; }
26009 # 242 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_ios.h" 3
26011 exceptions(iostate __except
)
26013 _M_exception
= __except
;
26014 this->clear(_M_streambuf_state
);
26024 basic_ios(basic_streambuf
<_CharT
, _Traits
>* __sb
)
26025 : ios_base(), _M_tie(0), _M_fill(), _M_fill_init(false), _M_streambuf(0),
26026 _M_ctype(0), _M_num_put(0), _M_num_get(0)
26027 { this->init(__sb
); }
26037 # 280 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_ios.h" 3
26038 basic_ostream
<_CharT
, _Traits
>*
26041 # 292 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_ios.h" 3
26042 basic_ostream
<_CharT
, _Traits
>*
26043 tie(basic_ostream
<_CharT
, _Traits
>* __tiestr
)
26045 basic_ostream
<_CharT
, _Traits
>* __old
= _M_tie
;
26056 basic_streambuf
<_CharT
, _Traits
>*
26058 { return _M_streambuf
; }
26059 # 332 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_ios.h" 3
26060 basic_streambuf
<_CharT
, _Traits
>*
26061 rdbuf(basic_streambuf
<_CharT
, _Traits
>* __sb
);
26062 # 346 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_ios.h" 3
26064 copyfmt(const basic_ios
& __rhs
);
26077 _M_fill
= this->widen(' ');
26078 _M_fill_init
= true;
26082 # 375 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_ios.h" 3
26084 fill(char_type __ch
)
26086 char_type __old
= this->fill();
26090 # 395 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_ios.h" 3
26092 imbue(const locale
& __loc
);
26093 # 415 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_ios.h" 3
26095 narrow(char_type __c
, char __dfault
) const;
26096 # 433 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_ios.h" 3
26098 widen(char __c
) const;
26109 : ios_base(), _M_tie(0), _M_fill(char_type()), _M_fill_init(false),
26110 _M_streambuf(0), _M_ctype(0), _M_num_put(0), _M_num_get(0)
26120 init(basic_streambuf
<_CharT
, _Traits
>* __sb
);
26123 _M_cache_locale(const locale
& __loc
);
26128 # 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_ios.tcc" 1 3
26129 # 38 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_ios.tcc" 3
26131 # 39 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_ios.tcc" 3
26135 template<typename _CharT
, typename _Traits
>
26137 basic_ios
<_CharT
, _Traits
>::clear(iostate __state
)
26140 _M_streambuf_state
= __state
;
26142 _M_streambuf_state
= __state
| badbit
;
26143 if (this->exceptions() & this->rdstate())
26144 __throw_ios_failure(("basic_ios::clear"));
26147 template<typename _CharT
, typename _Traits
>
26148 basic_streambuf
<_CharT
, _Traits
>*
26149 basic_ios
<_CharT
, _Traits
>::rdbuf(basic_streambuf
<_CharT
, _Traits
>* __sb
)
26151 basic_streambuf
<_CharT
, _Traits
>* __old
= _M_streambuf
;
26152 _M_streambuf
= __sb
;
26157 template<typename _CharT
, typename _Traits
>
26158 basic_ios
<_CharT
, _Traits
>&
26159 basic_ios
<_CharT
, _Traits
>::copyfmt(const basic_ios
& __rhs
)
26163 if (this != &__rhs
)
26169 _Words
* __words
= (__rhs
._M_word_size
<= _S_local_word_size
) ?
26170 _M_local_word
: new _Words
[__rhs
._M_word_size
];
26173 _Callback_list
* __cb
= __rhs
._M_callbacks
;
26175 __cb
->_M_add_reference();
26176 _M_call_callbacks(erase_event
);
26177 if (_M_word
!= _M_local_word
)
26182 _M_dispose_callbacks();
26185 _M_callbacks
= __cb
;
26186 for (int __i
= 0; __i
< __rhs
._M_word_size
; ++__i
)
26187 __words
[__i
] = __rhs
._M_word
[__i
];
26189 _M_word_size
= __rhs
._M_word_size
;
26191 this->flags(__rhs
.flags());
26192 this->width(__rhs
.width());
26193 this->precision(__rhs
.precision());
26194 this->tie(__rhs
.tie());
26195 this->fill(__rhs
.fill());
26196 _M_ios_locale
= __rhs
.getloc();
26197 _M_cache_locale(_M_ios_locale
);
26199 _M_call_callbacks(copyfmt_event
);
26202 this->exceptions(__rhs
.exceptions());
26207 template<typename _CharT
, typename _Traits
>
26209 basic_ios
<_CharT
, _Traits
>::narrow(char_type __c
, char __dfault
) const
26210 { return __check_facet(_M_ctype
).narrow(__c
, __dfault
); }
26212 template<typename _CharT
, typename _Traits
>
26214 basic_ios
<_CharT
, _Traits
>::widen(char __c
) const
26215 { return __check_facet(_M_ctype
).widen(__c
); }
26218 template<typename _CharT
, typename _Traits
>
26220 basic_ios
<_CharT
, _Traits
>::imbue(const locale
& __loc
)
26222 locale
__old(this->getloc());
26223 ios_base::imbue(__loc
);
26224 _M_cache_locale(__loc
);
26225 if (this->rdbuf() != 0)
26226 this->rdbuf()->pubimbue(__loc
);
26230 template<typename _CharT
, typename _Traits
>
26232 basic_ios
<_CharT
, _Traits
>::init(basic_streambuf
<_CharT
, _Traits
>* __sb
)
26235 ios_base::_M_init();
26238 _M_cache_locale(_M_ios_locale
);
26239 # 159 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_ios.tcc" 3
26240 _M_fill
= _CharT();
26241 _M_fill_init
= false;
26244 _M_exception
= goodbit
;
26245 _M_streambuf
= __sb
;
26246 _M_streambuf_state
= __sb
? goodbit
: badbit
;
26249 template<typename _CharT
, typename _Traits
>
26251 basic_ios
<_CharT
, _Traits
>::_M_cache_locale(const locale
& __loc
)
26253 if (__builtin_expect(has_facet
<__ctype_type
>(__loc
), true))
26254 _M_ctype
= &use_facet
<__ctype_type
>(__loc
);
26258 if (__builtin_expect(has_facet
<__num_put_type
>(__loc
), true))
26259 _M_num_put
= &use_facet
<__num_put_type
>(__loc
);
26263 if (__builtin_expect(has_facet
<__num_get_type
>(__loc
), true))
26264 _M_num_get
= &use_facet
<__num_get_type
>(__loc
);
26273 extern template class basic_ios
<char>;
26276 extern template class basic_ios
<wchar_t>;
26280 # 465 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_ios.h" 2 3
26281 # 53 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/ios" 2 3
26283 #pragma GCC visibility pop
26284 # 46 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/ostream" 2 3
26288 # 57 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/ostream" 3
26289 template<typename _CharT
, typename _Traits
>
26290 class basic_ostream
: virtual public basic_ios
<_CharT
, _Traits
>
26294 typedef _CharT char_type
;
26295 typedef typename
_Traits::int_type int_type
;
26296 typedef typename
_Traits::pos_type pos_type
;
26297 typedef typename
_Traits::off_type off_type
;
26298 typedef _Traits traits_type
;
26301 typedef basic_streambuf
<_CharT
, _Traits
> __streambuf_type
;
26302 typedef basic_ios
<_CharT
, _Traits
> __ios_type
;
26303 typedef basic_ostream
<_CharT
, _Traits
> __ostream_type
;
26304 typedef num_put
<_CharT
, ostreambuf_iterator
<_CharT
, _Traits
> >
26306 typedef ctype
<_CharT
> __ctype_type
;
26308 template<typename _CharT2
, typename _Traits2
>
26309 friend basic_ostream
<_CharT2
, _Traits2
>&
26310 operator<<(basic_ostream
<_CharT2
, _Traits2
>&, _CharT2
);
26312 template<typename _Traits2
>
26313 friend basic_ostream
<char, _Traits2
>&
26314 operator<<(basic_ostream
<char, _Traits2
>&, char);
26316 template<typename _CharT2
, typename _Traits2
>
26317 friend basic_ostream
<_CharT2
, _Traits2
>&
26318 operator<<(basic_ostream
<_CharT2
, _Traits2
>&, const _CharT2
*);
26320 template<typename _Traits2
>
26321 friend basic_ostream
<char, _Traits2
>&
26322 operator<<(basic_ostream
<char, _Traits2
>&, const char*);
26324 template<typename _CharT2
, typename _Traits2
>
26325 friend basic_ostream
<_CharT2
, _Traits2
>&
26326 operator<<(basic_ostream
<_CharT2
, _Traits2
>&, const char*);
26327 # 104 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/ostream" 3
26329 basic_ostream(__streambuf_type
* __sb
)
26330 { this->init(__sb
); }
26338 ~basic_ostream() { }
26342 friend class sentry
;
26343 # 130 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/ostream" 3
26344 inline __ostream_type
&
26345 operator<<(__ostream_type
& (*__pf
)(__ostream_type
&));
26347 inline __ostream_type
&
26348 operator<<(__ios_type
& (*__pf
)(__ios_type
&));
26350 inline __ostream_type
&
26351 operator<<(ios_base
& (*__pf
) (ios_base
&));
26352 # 167 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/ostream" 3
26354 operator<<(long __n
);
26357 operator<<(unsigned long __n
);
26360 operator<<(bool __n
);
26363 operator<<(short __n
);
26366 operator<<(unsigned short __n
);
26369 operator<<(int __n
);
26372 operator<<(unsigned int __n
);
26376 operator<<(long long __n
);
26379 operator<<(unsigned long long __n
);
26383 operator<<(double __f
);
26386 operator<<(float __f
);
26389 operator<<(long double __f
);
26392 operator<<(const void* __p
);
26393 # 229 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/ostream" 3
26395 operator<<(__streambuf_type
* __sb
);
26396 # 262 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/ostream" 3
26398 put(char_type __c
);
26402 _M_write(const char_type
* __s
, streamsize __n
)
26404 streamsize __put
= this->rdbuf()->sputn(__s
, __n
);
26406 this->setstate(ios_base::badbit
);
26408 # 290 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/ostream" 3
26410 write(const char_type
* __s
, streamsize __n
);
26411 # 303 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/ostream" 3
26414 # 314 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/ostream" 3
26417 # 325 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/ostream" 3
26420 # 337 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/ostream" 3
26422 seekp(off_type
, ios_base::seekdir
);
26426 basic_ostream() { }
26428 # 355 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/ostream" 3
26429 template <typename _CharT
, typename _Traits
>
26430 class basic_ostream
<_CharT
, _Traits
>::sentry
26434 basic_ostream
<_CharT
,_Traits
>& _M_os
;
26437 # 374 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/ostream" 3
26439 sentry(basic_ostream
<_CharT
,_Traits
>& __os
);
26440 # 384 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/ostream" 3
26444 if (_M_os
.flags() & ios_base::unitbuf
&& !uncaught_exception())
26447 if (_M_os
.rdbuf() && _M_os
.rdbuf()->pubsync() == -1)
26448 _M_os
.setstate(ios_base::badbit
);
26451 # 402 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/ostream" 3
26452 operator bool() const
26455 # 423 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/ostream" 3
26456 template<typename _CharT
, typename _Traits
>
26457 basic_ostream
<_CharT
, _Traits
>&
26458 operator<<(basic_ostream
<_CharT
, _Traits
>& __out
, _CharT __c
);
26460 template<typename _CharT
, typename _Traits
>
26461 basic_ostream
<_CharT
, _Traits
>&
26462 operator<<(basic_ostream
<_CharT
, _Traits
>& __out
, char __c
)
26463 { return (__out
<< __out
.widen(__c
)); }
26466 template <class _Traits
>
26467 basic_ostream
<char, _Traits
>&
26468 operator<<(basic_ostream
<char, _Traits
>& __out
, char __c
);
26471 template<class _Traits
>
26472 basic_ostream
<char, _Traits
>&
26473 operator<<(basic_ostream
<char, _Traits
>& __out
, signed char __c
)
26474 { return (__out
<< static_cast<char>(__c
)); }
26476 template<class _Traits
>
26477 basic_ostream
<char, _Traits
>&
26478 operator<<(basic_ostream
<char, _Traits
>& __out
, unsigned char __c
)
26479 { return (__out
<< static_cast<char>(__c
)); }
26480 # 463 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/ostream" 3
26481 template<typename _CharT
, typename _Traits
>
26482 basic_ostream
<_CharT
, _Traits
>&
26483 operator<<(basic_ostream
<_CharT
, _Traits
>& __out
, const _CharT
* __s
);
26485 template<typename _CharT
, typename _Traits
>
26486 basic_ostream
<_CharT
, _Traits
> &
26487 operator<<(basic_ostream
<_CharT
, _Traits
>& __out
, const char* __s
);
26490 template<class _Traits
>
26491 basic_ostream
<char, _Traits
>&
26492 operator<<(basic_ostream
<char, _Traits
>& __out
, const char* __s
);
26495 template<class _Traits
>
26496 basic_ostream
<char, _Traits
>&
26497 operator<<(basic_ostream
<char, _Traits
>& __out
, const signed char* __s
)
26498 { return (__out
<< reinterpret_cast<const char*>(__s
)); }
26500 template<class _Traits
>
26501 basic_ostream
<char, _Traits
> &
26502 operator<<(basic_ostream
<char, _Traits
>& __out
, const unsigned char* __s
)
26503 { return (__out
<< reinterpret_cast<const char*>(__s
)); }
26504 # 497 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/ostream" 3
26505 template<typename _CharT
, typename _Traits
>
26506 basic_ostream
<_CharT
, _Traits
>&
26507 endl(basic_ostream
<_CharT
, _Traits
>& __os
)
26508 { return flush(__os
.put(__os
.widen('\n'))); }
26516 template<typename _CharT
, typename _Traits
>
26517 basic_ostream
<_CharT
, _Traits
>&
26518 ends(basic_ostream
<_CharT
, _Traits
>& __os
)
26519 { return __os
.put(_CharT()); }
26526 template<typename _CharT
, typename _Traits
>
26527 basic_ostream
<_CharT
, _Traits
>&
26528 flush(basic_ostream
<_CharT
, _Traits
>& __os
)
26529 { return __os
.flush(); }
26534 # 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/ostream.tcc" 1 3
26535 # 43 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/ostream.tcc" 3
26537 # 44 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/ostream.tcc" 3
26539 # 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/locale" 1 3
26540 # 42 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/locale" 3
26542 # 43 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/locale" 3
26543 #pragma GCC visibility push(default)
26548 # 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.tcc" 1 3
26549 # 39 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.tcc" 3
26551 # 40 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.tcc" 3
26554 # 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/typeinfo" 1 3
26555 # 40 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/typeinfo" 3
26556 #pragma GCC visibility push(default)
26560 namespace __cxxabiv1
26562 class __class_type_info
;
26564 # 59 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/typeinfo" 3
26580 virtual ~type_info();
26584 type_info
& operator=(const type_info
&);
26585 type_info(const type_info
&);
26588 const char *__name
;
26591 explicit type_info(const char *__n
): __name(__n
) { }
26597 const char* name() const
26599 # 105 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/typeinfo" 3
26600 bool before(const type_info
& __arg
) const
26601 { return __name
< __arg
.__name
; }
26602 bool operator==(const type_info
& __arg
) const
26603 { return __name
== __arg
.__name
; }
26605 bool operator!=(const type_info
& __arg
) const
26606 { return !operator==(__arg
); }
26611 virtual bool __is_pointer_p() const;
26613 virtual bool __is_function_p() const;
26621 virtual bool __do_catch(const type_info
*__thr_type
, void **__thr_obj
,
26622 unsigned __outer
) const;
26625 virtual bool __do_upcast(const __cxxabiv1::__class_type_info
*__target
,
26626 void **__obj_ptr
) const;
26634 class bad_cast
: public exception
26637 bad_cast() throw() { }
26640 virtual ~bad_cast() throw();
26644 class bad_typeid
: public exception
26647 bad_typeid () throw() { }
26650 virtual ~bad_typeid() throw();
26654 #pragma GCC visibility pop
26657 # 43 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.tcc" 2 3
26662 template<typename _Facet
>
26664 locale::combine(const locale
& __other
) const
26666 _Impl
* __tmp
= new _Impl(*_M_impl
, 1);
26669 __tmp
->_M_replace_facet(__other
._M_impl
, &_Facet::id
);
26673 __tmp
->_M_remove_reference();
26676 return locale(__tmp
);
26679 template<typename _CharT
, typename _Traits
, typename _Alloc
>
26681 locale::operator()(const basic_string
<_CharT
, _Traits
, _Alloc
>& __s1
,
26682 const basic_string
<_CharT
, _Traits
, _Alloc
>& __s2
) const
26684 typedef std::collate
<_CharT
> __collate_type
;
26685 const __collate_type
& __collate
= use_facet
<__collate_type
>(*this);
26686 return (__collate
.compare(__s1
.data(), __s1
.data() + __s1
.length(),
26687 __s2
.data(), __s2
.data() + __s2
.length()) < 0);
26689 # 86 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.tcc" 3
26690 template<typename _Facet
>
26692 has_facet(const locale
& __loc
) throw()
26694 const size_t __i
= _Facet::id
._M_id();
26695 const locale::facet
** __facets
= __loc
._M_impl
->_M_facets
;
26696 return (__i
< __loc
._M_impl
->_M_facets_size
&& __facets
[__i
]);
26698 # 108 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.tcc" 3
26699 template<typename _Facet
>
26700 inline const _Facet
&
26701 use_facet(const locale
& __loc
)
26703 const size_t __i
= _Facet::id
._M_id();
26704 const locale::facet
** __facets
= __loc
._M_impl
->_M_facets
;
26705 if (!(__i
< __loc
._M_impl
->_M_facets_size
&& __facets
[__i
]))
26706 __throw_bad_cast();
26707 return static_cast<const _Facet
&>(*__facets
[__i
]);
26712 template<typename _Facet
>
26716 operator() (const locale
& __loc
) const;
26720 template<typename _CharT
>
26721 struct __use_cache
<__numpunct_cache
<_CharT
> >
26723 const __numpunct_cache
<_CharT
>*
26724 operator() (const locale
& __loc
) const
26726 const size_t __i
= numpunct
<_CharT
>::id
._M_id();
26727 const locale::facet
** __caches
= __loc
._M_impl
->_M_caches
;
26728 if (!__caches
[__i
])
26730 __numpunct_cache
<_CharT
>* __tmp
= __null
;
26733 __tmp
= new __numpunct_cache
<_CharT
>;
26734 __tmp
->_M_cache(__loc
);
26741 __loc
._M_impl
->_M_install_cache(__tmp
, __i
);
26743 return static_cast<const __numpunct_cache
<_CharT
>*>(__caches
[__i
]);
26747 template<typename _CharT
, bool _Intl
>
26748 struct __use_cache
<__moneypunct_cache
<_CharT
, _Intl
> >
26750 const __moneypunct_cache
<_CharT
, _Intl
>*
26751 operator() (const locale
& __loc
) const
26753 const size_t __i
= moneypunct
<_CharT
, _Intl
>::id
._M_id();
26754 const locale::facet
** __caches
= __loc
._M_impl
->_M_caches
;
26755 if (!__caches
[__i
])
26757 __moneypunct_cache
<_CharT
, _Intl
>* __tmp
= __null
;
26760 __tmp
= new __moneypunct_cache
<_CharT
, _Intl
>;
26761 __tmp
->_M_cache(__loc
);
26768 __loc
._M_impl
->_M_install_cache(__tmp
, __i
);
26770 return static_cast<
26771 const __moneypunct_cache
<_CharT
, _Intl
>*>(__caches
[__i
]);
26775 template<typename _CharT
>
26777 __numpunct_cache
<_CharT
>::_M_cache(const locale
& __loc
)
26779 _M_allocated
= true;
26781 const numpunct
<_CharT
>& __np
= use_facet
<numpunct
<_CharT
> >(__loc
);
26783 _M_grouping_size
= __np
.grouping().size();
26784 char* __grouping
= new char[_M_grouping_size
];
26785 __np
.grouping().copy(__grouping
, _M_grouping_size
);
26786 _M_grouping
= __grouping
;
26787 _M_use_grouping
= (_M_grouping_size
26788 && static_cast<signed char>(__np
.grouping()[0]) > 0);
26790 _M_truename_size
= __np
.truename().size();
26791 _CharT
* __truename
= new _CharT
[_M_truename_size
];
26792 __np
.truename().copy(__truename
, _M_truename_size
);
26793 _M_truename
= __truename
;
26795 _M_falsename_size
= __np
.falsename().size();
26796 _CharT
* __falsename
= new _CharT
[_M_falsename_size
];
26797 __np
.falsename().copy(__falsename
, _M_falsename_size
);
26798 _M_falsename
= __falsename
;
26800 _M_decimal_point
= __np
.decimal_point();
26801 _M_thousands_sep
= __np
.thousands_sep();
26803 const ctype
<_CharT
>& __ct
= use_facet
<ctype
<_CharT
> >(__loc
);
26804 __ct
.widen(__num_base::_S_atoms_out
,
26805 __num_base::_S_atoms_out
+ __num_base::_S_oend
, _M_atoms_out
);
26806 __ct
.widen(__num_base::_S_atoms_in
,
26807 __num_base::_S_atoms_in
+ __num_base::_S_iend
, _M_atoms_in
);
26810 template<typename _CharT
, bool _Intl
>
26812 __moneypunct_cache
<_CharT
, _Intl
>::_M_cache(const locale
& __loc
)
26814 _M_allocated
= true;
26816 const moneypunct
<_CharT
, _Intl
>& __mp
=
26817 use_facet
<moneypunct
<_CharT
, _Intl
> >(__loc
);
26819 _M_grouping_size
= __mp
.grouping().size();
26820 char* __grouping
= new char[_M_grouping_size
];
26821 __mp
.grouping().copy(__grouping
, _M_grouping_size
);
26822 _M_grouping
= __grouping
;
26823 _M_use_grouping
= (_M_grouping_size
26824 && static_cast<signed char>(__mp
.grouping()[0]) > 0);
26826 _M_decimal_point
= __mp
.decimal_point();
26827 _M_thousands_sep
= __mp
.thousands_sep();
26828 _M_frac_digits
= __mp
.frac_digits();
26830 _M_curr_symbol_size
= __mp
.curr_symbol().size();
26831 _CharT
* __curr_symbol
= new _CharT
[_M_curr_symbol_size
];
26832 __mp
.curr_symbol().copy(__curr_symbol
, _M_curr_symbol_size
);
26833 _M_curr_symbol
= __curr_symbol
;
26835 _M_positive_sign_size
= __mp
.positive_sign().size();
26836 _CharT
* __positive_sign
= new _CharT
[_M_positive_sign_size
];
26837 __mp
.positive_sign().copy(__positive_sign
, _M_positive_sign_size
);
26838 _M_positive_sign
= __positive_sign
;
26840 _M_negative_sign_size
= __mp
.negative_sign().size();
26841 _CharT
* __negative_sign
= new _CharT
[_M_negative_sign_size
];
26842 __mp
.negative_sign().copy(__negative_sign
, _M_negative_sign_size
);
26843 _M_negative_sign
= __negative_sign
;
26845 _M_pos_format
= __mp
.pos_format();
26846 _M_neg_format
= __mp
.neg_format();
26848 const ctype
<_CharT
>& __ct
= use_facet
<ctype
<_CharT
> >(__loc
);
26849 __ct
.widen(money_base::_S_atoms
,
26850 money_base::_S_atoms
+ money_base::_S_end
, _M_atoms
);
26852 # 271 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.tcc" 3
26854 __verify_grouping(const char* __grouping
, size_t __grouping_size
,
26855 const string
& __grouping_tmp
);
26857 template<typename _CharT
, typename _InIter
>
26859 num_get
<_CharT
, _InIter
>::
26860 _M_extract_float(_InIter __beg
, _InIter __end
, ios_base
& __io
,
26861 ios_base::iostate
& __err
, string
& __xtrc
) const
26863 typedef char_traits
<_CharT
> __traits_type
;
26864 typedef __numpunct_cache
<_CharT
> __cache_type
;
26865 __use_cache
<__cache_type
> __uc
;
26866 const locale
& __loc
= __io
._M_getloc();
26867 const __cache_type
* __lc
= __uc(__loc
);
26868 const _CharT
* __lit
= __lc
->_M_atoms_in
;
26869 char_type __c
= char_type();
26872 bool __testeof
= __beg
== __end
;
26878 const bool __plus
= __c
== __lit
[__num_base::_S_iplus
];
26879 if ((__plus
|| __c
== __lit
[__num_base::_S_iminus
])
26880 && !(__lc
->_M_use_grouping
&& __c
== __lc
->_M_thousands_sep
)
26881 && !(__c
== __lc
->_M_decimal_point
))
26883 __xtrc
+= __plus
? '+' : '-';
26884 if (++__beg
!= __end
)
26892 bool __found_mantissa
= false;
26896 if (__lc
->_M_use_grouping
&& __c
== __lc
->_M_thousands_sep
26897 || __c
== __lc
->_M_decimal_point
)
26899 else if (__c
== __lit
[__num_base::_S_izero
])
26901 if (!__found_mantissa
)
26904 __found_mantissa
= true;
26908 if (++__beg
!= __end
)
26918 bool __found_dec
= false;
26919 bool __found_sci
= false;
26920 string __found_grouping
;
26921 if (__lc
->_M_use_grouping
)
26922 __found_grouping
.reserve(32);
26923 const char_type
* __q
;
26924 const char_type
* __lit_zero
= __lit
+ __num_base::_S_izero
;
26929 if (__lc
->_M_use_grouping
&& __c
== __lc
->_M_thousands_sep
)
26931 if (!__found_dec
&& !__found_sci
)
26937 __found_grouping
+= static_cast<char>(__sep_pos
);
26951 else if (__c
== __lc
->_M_decimal_point
)
26953 if (!__found_dec
&& !__found_sci
)
26958 if (__found_grouping
.size())
26959 __found_grouping
+= static_cast<char>(__sep_pos
);
26961 __found_dec
= true;
26966 else if ((__q
= __traits_type::find(__lit_zero
, 10, __c
)))
26968 __xtrc
+= __num_base::_S_atoms_in
[__q
- __lit
];
26969 __found_mantissa
= true;
26972 else if ((__c
== __lit
[__num_base::_S_ie
]
26973 || __c
== __lit
[__num_base::_S_iE
])
26974 && !__found_sci
&& __found_mantissa
)
26977 if (__found_grouping
.size() && !__found_dec
)
26978 __found_grouping
+= static_cast<char>(__sep_pos
);
26980 __found_sci
= true;
26983 if (++__beg
!= __end
)
26986 const bool __plus
= __c
== __lit
[__num_base::_S_iplus
];
26987 if ((__plus
|| __c
== __lit
[__num_base::_S_iminus
])
26988 && !(__lc
->_M_use_grouping
26989 && __c
== __lc
->_M_thousands_sep
)
26990 && !(__c
== __lc
->_M_decimal_point
))
26991 __xtrc
+= __plus
? '+' : '-';
27005 if (++__beg
!= __end
)
27013 if (__found_grouping
.size())
27016 if (!__found_dec
&& !__found_sci
)
27017 __found_grouping
+= static_cast<char>(__sep_pos
);
27019 if (!std::__verify_grouping(__lc
->_M_grouping
,
27020 __lc
->_M_grouping_size
,
27022 __err
|= ios_base::failbit
;
27027 __err
|= ios_base::eofbit
;
27031 template<typename _ValueT
>
27032 struct __to_unsigned_type
27033 { typedef _ValueT __type
; };
27036 struct __to_unsigned_type
<long>
27037 { typedef unsigned long __type
; };
27041 struct __to_unsigned_type
<long long>
27042 { typedef unsigned long long __type
; };
27045 template<typename _CharT
, typename _InIter
>
27046 template<typename _ValueT
>
27048 num_get
<_CharT
, _InIter
>::
27049 _M_extract_int(_InIter __beg
, _InIter __end
, ios_base
& __io
,
27050 ios_base::iostate
& __err
, _ValueT
& __v
) const
27052 typedef char_traits
<_CharT
> __traits_type
;
27053 typedef typename __to_unsigned_type
<_ValueT
>::__type __unsigned_type
;
27054 typedef __numpunct_cache
<_CharT
> __cache_type
;
27055 __use_cache
<__cache_type
> __uc
;
27056 const locale
& __loc
= __io
._M_getloc();
27057 const __cache_type
* __lc
= __uc(__loc
);
27058 const _CharT
* __lit
= __lc
->_M_atoms_in
;
27059 char_type __c
= char_type();
27062 const ios_base::fmtflags __basefield
= __io
.flags()
27063 & ios_base::basefield
;
27064 const bool __oct
= __basefield
== ios_base::oct
;
27065 int __base
= __oct
? 8 : (__basefield
== ios_base::hex
? 16 : 10);
27068 bool __testeof
= __beg
== __end
;
27071 bool __negative
= false;
27075 if (numeric_limits
<_ValueT
>::is_signed
)
27076 __negative
= __c
== __lit
[__num_base::_S_iminus
];
27077 if ((__negative
|| __c
== __lit
[__num_base::_S_iplus
])
27078 && !(__lc
->_M_use_grouping
&& __c
== __lc
->_M_thousands_sep
)
27079 && !(__c
== __lc
->_M_decimal_point
))
27081 if (++__beg
!= __end
)
27090 bool __found_zero
= false;
27094 if (__lc
->_M_use_grouping
&& __c
== __lc
->_M_thousands_sep
27095 || __c
== __lc
->_M_decimal_point
)
27097 else if (__c
== __lit
[__num_base::_S_izero
]
27098 && (!__found_zero
|| __base
== 10))
27100 __found_zero
= true;
27102 if (__basefield
== 0)
27107 else if (__found_zero
27108 && (__c
== __lit
[__num_base::_S_ix
]
27109 || __c
== __lit
[__num_base::_S_iX
]))
27111 if (__basefield
== 0)
27115 __found_zero
= false;
27124 if (++__beg
!= __end
)
27136 const size_t __len
= (__base
== 16 ? __num_base::_S_iend
27137 - __num_base::_S_izero
: __base
);
27140 string __found_grouping
;
27141 if (__lc
->_M_use_grouping
)
27142 __found_grouping
.reserve(32);
27143 bool __testfail
= false;
27144 const __unsigned_type __max
= __negative
?
27145 -numeric_limits
<_ValueT
>::min() : numeric_limits
<_ValueT
>::max();
27146 const __unsigned_type __smax
= __max
/ __base
;
27147 __unsigned_type __result
= 0;
27148 const char_type
* __q
;
27149 const char_type
* __lit_zero
= __lit
+ __num_base::_S_izero
;
27154 if (__lc
->_M_use_grouping
&& __c
== __lc
->_M_thousands_sep
)
27160 __found_grouping
+= static_cast<char>(__sep_pos
);
27169 else if (__c
== __lc
->_M_decimal_point
)
27171 else if ((__q
= __traits_type::find(__lit_zero
, __len
, __c
)))
27173 int __digit
= __q
- __lit_zero
;
27176 if (__result
> __smax
)
27180 __result
*= __base
;
27181 __testfail
|= __result
> __max
- __digit
;
27182 __result
+= __digit
;
27190 if (++__beg
!= __end
)
27198 if (__found_grouping
.size())
27201 __found_grouping
+= static_cast<char>(__sep_pos
);
27203 if (!std::__verify_grouping(__lc
->_M_grouping
,
27204 __lc
->_M_grouping_size
,
27206 __err
|= ios_base::failbit
;
27209 if (!__testfail
&& (__sep_pos
|| __found_zero
27210 || __found_grouping
.size()))
27211 __v
= __negative
? -__result
: __result
;
27213 __err
|= ios_base::failbit
;
27216 __err
|= ios_base::eofbit
;
27222 template<typename _CharT
, typename _InIter
>
27224 num_get
<_CharT
, _InIter
>::
27225 do_get(iter_type __beg
, iter_type __end
, ios_base
& __io
,
27226 ios_base::iostate
& __err
, bool& __v
) const
27228 if (!(__io
.flags() & ios_base::boolalpha
))
27234 __beg
= _M_extract_int(__beg
, __end
, __io
, __err
, __l
);
27235 if (__l
== 0 || __l
== 1)
27238 __err
|= ios_base::failbit
;
27243 typedef __numpunct_cache
<_CharT
> __cache_type
;
27244 __use_cache
<__cache_type
> __uc
;
27245 const locale
& __loc
= __io
._M_getloc();
27246 const __cache_type
* __lc
= __uc(__loc
);
27248 bool __testf
= true;
27249 bool __testt
= true;
27251 bool __testeof
= __beg
== __end
;
27252 for (__n
= 0; !__testeof
; ++__n
)
27254 const char_type __c
= *__beg
;
27257 if (__n
< __lc
->_M_falsename_size
)
27258 __testf
= __c
== __lc
->_M_falsename
[__n
];
27263 if (__n
< __lc
->_M_truename_size
)
27264 __testt
= __c
== __lc
->_M_truename
[__n
];
27268 if (!__testf
&& !__testt
)
27271 if (++__beg
== __end
)
27274 if (__testf
&& __n
== __lc
->_M_falsename_size
)
27276 else if (__testt
&& __n
== __lc
->_M_truename_size
)
27279 __err
|= ios_base::failbit
;
27282 __err
|= ios_base::eofbit
;
27287 template<typename _CharT
, typename _InIter
>
27289 num_get
<_CharT
, _InIter
>::
27290 do_get(iter_type __beg
, iter_type __end
, ios_base
& __io
,
27291 ios_base::iostate
& __err
, long& __v
) const
27292 { return _M_extract_int(__beg
, __end
, __io
, __err
, __v
); }
27294 template<typename _CharT
, typename _InIter
>
27296 num_get
<_CharT
, _InIter
>::
27297 do_get(iter_type __beg
, iter_type __end
, ios_base
& __io
,
27298 ios_base::iostate
& __err
, unsigned short& __v
) const
27299 { return _M_extract_int(__beg
, __end
, __io
, __err
, __v
); }
27301 template<typename _CharT
, typename _InIter
>
27303 num_get
<_CharT
, _InIter
>::
27304 do_get(iter_type __beg
, iter_type __end
, ios_base
& __io
,
27305 ios_base::iostate
& __err
, unsigned int& __v
) const
27306 { return _M_extract_int(__beg
, __end
, __io
, __err
, __v
); }
27308 template<typename _CharT
, typename _InIter
>
27310 num_get
<_CharT
, _InIter
>::
27311 do_get(iter_type __beg
, iter_type __end
, ios_base
& __io
,
27312 ios_base::iostate
& __err
, unsigned long& __v
) const
27313 { return _M_extract_int(__beg
, __end
, __io
, __err
, __v
); }
27316 template<typename _CharT
, typename _InIter
>
27318 num_get
<_CharT
, _InIter
>::
27319 do_get(iter_type __beg
, iter_type __end
, ios_base
& __io
,
27320 ios_base::iostate
& __err
, long long& __v
) const
27321 { return _M_extract_int(__beg
, __end
, __io
, __err
, __v
); }
27323 template<typename _CharT
, typename _InIter
>
27325 num_get
<_CharT
, _InIter
>::
27326 do_get(iter_type __beg
, iter_type __end
, ios_base
& __io
,
27327 ios_base::iostate
& __err
, unsigned long long& __v
) const
27328 { return _M_extract_int(__beg
, __end
, __io
, __err
, __v
); }
27331 template<typename _CharT
, typename _InIter
>
27333 num_get
<_CharT
, _InIter
>::
27334 do_get(iter_type __beg
, iter_type __end
, ios_base
& __io
,
27335 ios_base::iostate
& __err
, float& __v
) const
27338 __xtrc
.reserve(32);
27339 __beg
= _M_extract_float(__beg
, __end
, __io
, __err
, __xtrc
);
27340 std::__convert_to_v(__xtrc
.c_str(), __v
, __err
, _S_get_c_locale());
27344 template<typename _CharT
, typename _InIter
>
27346 num_get
<_CharT
, _InIter
>::
27347 do_get(iter_type __beg
, iter_type __end
, ios_base
& __io
,
27348 ios_base::iostate
& __err
, double& __v
) const
27351 __xtrc
.reserve(32);
27352 __beg
= _M_extract_float(__beg
, __end
, __io
, __err
, __xtrc
);
27353 std::__convert_to_v(__xtrc
.c_str(), __v
, __err
, _S_get_c_locale());
27357 template<typename _CharT
, typename _InIter
>
27359 num_get
<_CharT
, _InIter
>::
27360 do_get(iter_type __beg
, iter_type __end
, ios_base
& __io
,
27361 ios_base::iostate
& __err
, long double& __v
) const
27364 __xtrc
.reserve(32);
27365 __beg
= _M_extract_float(__beg
, __end
, __io
, __err
, __xtrc
);
27366 std::__convert_to_v(__xtrc
.c_str(), __v
, __err
, _S_get_c_locale());
27370 template<typename _CharT
, typename _InIter
>
27372 num_get
<_CharT
, _InIter
>::
27373 do_get(iter_type __beg
, iter_type __end
, ios_base
& __io
,
27374 ios_base::iostate
& __err
, void*& __v
) const
27377 typedef ios_base::fmtflags fmtflags
;
27378 const fmtflags __fmt
= __io
.flags();
27379 __io
.flags(__fmt
& ~ios_base::basefield
| ios_base::hex
);
27381 unsigned long __ul
;
27382 __beg
= _M_extract_int(__beg
, __end
, __io
, __err
, __ul
);
27387 if (!(__err
& ios_base::failbit
))
27388 __v
= reinterpret_cast<void*>(__ul
);
27394 template<typename _CharT
, typename _OutIter
>
27396 num_put
<_CharT
, _OutIter
>::
27397 _M_pad(_CharT __fill
, streamsize __w
, ios_base
& __io
,
27398 _CharT
* __new
, const _CharT
* __cs
, int& __len
) const
27402 __pad
<_CharT
, char_traits
<_CharT
> >::_S_pad(__io
, __fill
, __new
, __cs
,
27404 __len
= static_cast<int>(__w
);
27410 template<typename _CharT
>
27412 __int_to_char(_CharT
* __bufend
, long __v
, const _CharT
* __lit
,
27413 ios_base::fmtflags __flags
)
27415 unsigned long __ul
= __v
;
27416 const ios_base::fmtflags __basefield
= __flags
& ios_base::basefield
;
27417 if (__builtin_expect(__basefield
!= ios_base::oct
27418 && __basefield
!= ios_base::hex
, true))
27419 __ul
= __v
< 0 ? -__v
: __ul
;
27420 return __int_to_char(__bufend
, __ul
, __lit
, __flags
, false);
27423 template<typename _CharT
>
27425 __int_to_char(_CharT
* __bufend
, unsigned long __v
, const _CharT
* __lit
,
27426 ios_base::fmtflags __flags
)
27427 { return __int_to_char(__bufend
, __v
, __lit
, __flags
, false); }
27430 template<typename _CharT
>
27432 __int_to_char(_CharT
* __bufend
, long long __v
, const _CharT
* __lit
,
27433 ios_base::fmtflags __flags
)
27435 unsigned long long __ull
= __v
;
27436 const ios_base::fmtflags __basefield
= __flags
& ios_base::basefield
;
27437 if (__builtin_expect(__basefield
!= ios_base::oct
27438 && __basefield
!= ios_base::hex
, true))
27439 __ull
= __v
< 0 ? -__v
: __ull
;
27440 return __int_to_char(__bufend
, __ull
, __lit
, __flags
, false);
27443 template<typename _CharT
>
27445 __int_to_char(_CharT
* __bufend
, unsigned long long __v
,
27446 const _CharT
* __lit
, ios_base::fmtflags __flags
)
27447 { return __int_to_char(__bufend
, __v
, __lit
, __flags
, false); }
27451 template<typename _CharT
, typename _ValueT
>
27453 __int_to_char(_CharT
* __bufend
, _ValueT __v
, const _CharT
* __lit
,
27454 ios_base::fmtflags __flags
, bool)
27456 const ios_base::fmtflags __basefield
= __flags
& ios_base::basefield
;
27457 _CharT
* __buf
= __bufend
;
27459 if (__builtin_expect(__basefield
!= ios_base::oct
27460 && __basefield
!= ios_base::hex
, true))
27465 *--__buf
= __lit
[(__v
% 10) + __num_base::_S_odigits
];
27470 else if (__basefield
== ios_base::oct
)
27475 *--__buf
= __lit
[(__v
& 0x7) + __num_base::_S_odigits
];
27483 const bool __uppercase
= __flags
& ios_base::uppercase
;
27484 const int __case_offset
= __uppercase
? __num_base::_S_oudigits
27485 : __num_base::_S_odigits
;
27488 *--__buf
= __lit
[(__v
& 0xf) + __case_offset
];
27493 return __bufend
- __buf
;
27496 template<typename _CharT
, typename _OutIter
>
27498 num_put
<_CharT
, _OutIter
>::
27499 _M_group_int(const char* __grouping
, size_t __grouping_size
, _CharT __sep
,
27500 ios_base
&, _CharT
* __new
, _CharT
* __cs
, int& __len
) const
27502 _CharT
* __p
= std::__add_grouping(__new
, __sep
, __grouping
,
27503 __grouping_size
, __cs
, __cs
+ __len
);
27504 __len
= __p
- __new
;
27507 template<typename _CharT
, typename _OutIter
>
27508 template<typename _ValueT
>
27510 num_put
<_CharT
, _OutIter
>::
27511 _M_insert_int(_OutIter __s
, ios_base
& __io
, _CharT __fill
,
27514 typedef __numpunct_cache
<_CharT
> __cache_type
;
27515 __use_cache
<__cache_type
> __uc
;
27516 const locale
& __loc
= __io
._M_getloc();
27517 const __cache_type
* __lc
= __uc(__loc
);
27518 const _CharT
* __lit
= __lc
->_M_atoms_out
;
27519 const ios_base::fmtflags __flags
= __io
.flags();
27522 const int __ilen
= 5 * sizeof(_ValueT
);
27523 _CharT
* __cs
= static_cast<_CharT
*>(__builtin_alloca(sizeof(_CharT
)
27528 int __len
= __int_to_char(__cs
+ __ilen
, __v
, __lit
, __flags
);
27529 __cs
+= __ilen
- __len
;
27532 if (__lc
->_M_use_grouping
)
27536 _CharT
* __cs2
= static_cast<_CharT
*>(__builtin_alloca(sizeof(_CharT
)
27539 _M_group_int(__lc
->_M_grouping
, __lc
->_M_grouping_size
,
27540 __lc
->_M_thousands_sep
, __io
, __cs2
+ 2, __cs
, __len
);
27545 const ios_base::fmtflags __basefield
= __flags
& ios_base::basefield
;
27546 if (__builtin_expect(__basefield
!= ios_base::oct
27547 && __basefield
!= ios_base::hex
, true))
27552 if (__flags
& ios_base::showpos
27553 && numeric_limits
<_ValueT
>::is_signed
)
27554 *--__cs
= __lit
[__num_base::_S_oplus
], ++__len
;
27557 *--__cs
= __lit
[__num_base::_S_ominus
], ++__len
;
27559 else if (__flags
& ios_base::showbase
&& __v
)
27561 if (__basefield
== ios_base::oct
)
27562 *--__cs
= __lit
[__num_base::_S_odigits
], ++__len
;
27566 const bool __uppercase
= __flags
& ios_base::uppercase
;
27567 *--__cs
= __lit
[__num_base::_S_ox
+ __uppercase
];
27569 *--__cs
= __lit
[__num_base::_S_odigits
];
27575 const streamsize __w
= __io
.width();
27576 if (__w
> static_cast<streamsize
>(__len
))
27578 _CharT
* __cs3
= static_cast<_CharT
*>(__builtin_alloca(sizeof(_CharT
)
27580 _M_pad(__fill
, __w
, __io
, __cs3
, __cs
, __len
);
27587 return std::__write(__s
, __cs
, __len
);
27590 template<typename _CharT
, typename _OutIter
>
27592 num_put
<_CharT
, _OutIter
>::
27593 _M_group_float(const char* __grouping
, size_t __grouping_size
,
27594 _CharT __sep
, const _CharT
* __p
, _CharT
* __new
,
27595 _CharT
* __cs
, int& __len
) const
27600 const int __declen
= __p
? __p
- __cs
: __len
;
27601 _CharT
* __p2
= std::__add_grouping(__new
, __sep
, __grouping
,
27603 __cs
, __cs
+ __declen
);
27606 int __newlen
= __p2
- __new
;
27609 char_traits
<_CharT
>::copy(__p2
, __p
, __len
- __declen
);
27610 __newlen
+= __len
- __declen
;
27614 # 1043 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.tcc" 3
27615 template<typename _CharT
, typename _OutIter
>
27616 template<typename _ValueT
>
27618 num_put
<_CharT
, _OutIter
>::
27619 _M_insert_float(_OutIter __s
, ios_base
& __io
, _CharT __fill
, char __mod
,
27622 typedef __numpunct_cache
<_CharT
> __cache_type
;
27623 __use_cache
<__cache_type
> __uc
;
27624 const locale
& __loc
= __io
._M_getloc();
27625 const __cache_type
* __lc
= __uc(__loc
);
27628 streamsize __prec
= __io
.precision();
27629 if (__prec
< static_cast<streamsize
>(0))
27630 __prec
= static_cast<streamsize
>(6);
27632 const int __max_digits
= numeric_limits
<_ValueT
>::digits10
;
27642 int __cs_size
= __max_digits
* 3;
27643 char* __cs
= static_cast<char*>(__builtin_alloca(__cs_size
));
27645 __num_base::_S_format_float(__io
, __fbuf
, __mod
);
27646 __len
= std::__convert_from_v(__cs
, __cs_size
, __fbuf
, __v
,
27647 _S_get_c_locale(), __prec
);
27650 if (__len
>= __cs_size
)
27652 __cs_size
= __len
+ 1;
27653 __cs
= static_cast<char*>(__builtin_alloca(__cs_size
));
27654 __len
= std::__convert_from_v(__cs
, __cs_size
, __fbuf
, __v
,
27655 _S_get_c_locale(), __prec
);
27657 # 1107 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.tcc" 3
27658 const ctype
<_CharT
>& __ctype
= use_facet
<ctype
<_CharT
> >(__loc
);
27660 _CharT
* __ws
= static_cast<_CharT
*>(__builtin_alloca(sizeof(_CharT
)
27662 __ctype
.widen(__cs
, __cs
+ __len
, __ws
);
27665 const _CharT __cdec
= __ctype
.widen('.');
27666 const _CharT __dec
= __lc
->_M_decimal_point
;
27667 const _CharT
* __p
= char_traits
<_CharT
>::find(__ws
, __len
, __cdec
);
27669 __ws
[__p
- __ws
] = __dec
;
27674 if (__lc
->_M_use_grouping
27675 && (__p
|| __len
< 3 || (__cs
[1] <= '9' && __cs
[2] <= '9'
27676 && __cs
[1] >= '0' && __cs
[2] >= '0')))
27680 _CharT
* __ws2
= static_cast<_CharT
*>(__builtin_alloca(sizeof(_CharT
)
27683 streamsize __off
= 0;
27684 if (__cs
[0] == '-' || __cs
[0] == '+')
27687 __ws2
[0] = __ws
[0];
27691 _M_group_float(__lc
->_M_grouping
, __lc
->_M_grouping_size
,
27692 __lc
->_M_thousands_sep
, __p
, __ws2
+ __off
,
27693 __ws
+ __off
, __len
);
27700 const streamsize __w
= __io
.width();
27701 if (__w
> static_cast<streamsize
>(__len
))
27703 _CharT
* __ws3
= static_cast<_CharT
*>(__builtin_alloca(sizeof(_CharT
)
27705 _M_pad(__fill
, __w
, __io
, __ws3
, __ws
, __len
);
27712 return std::__write(__s
, __ws
, __len
);
27715 template<typename _CharT
, typename _OutIter
>
27717 num_put
<_CharT
, _OutIter
>::
27718 do_put(iter_type __s
, ios_base
& __io
, char_type __fill
, bool __v
) const
27720 const ios_base::fmtflags __flags
= __io
.flags();
27721 if ((__flags
& ios_base::boolalpha
) == 0)
27723 const long __l
= __v
;
27724 __s
= _M_insert_int(__s
, __io
, __fill
, __l
);
27728 typedef __numpunct_cache
<_CharT
> __cache_type
;
27729 __use_cache
<__cache_type
> __uc
;
27730 const locale
& __loc
= __io
._M_getloc();
27731 const __cache_type
* __lc
= __uc(__loc
);
27733 const _CharT
* __name
= __v
? __lc
->_M_truename
27734 : __lc
->_M_falsename
;
27735 int __len
= __v
? __lc
->_M_truename_size
27736 : __lc
->_M_falsename_size
;
27738 const streamsize __w
= __io
.width();
27739 if (__w
> static_cast<streamsize
>(__len
))
27742 = static_cast<_CharT
*>(__builtin_alloca(sizeof(_CharT
)
27744 _M_pad(__fill
, __w
, __io
, __cs
, __name
, __len
);
27748 __s
= std::__write(__s
, __name
, __len
);
27753 template<typename _CharT
, typename _OutIter
>
27755 num_put
<_CharT
, _OutIter
>::
27756 do_put(iter_type __s
, ios_base
& __io
, char_type __fill
, long __v
) const
27757 { return _M_insert_int(__s
, __io
, __fill
, __v
); }
27759 template<typename _CharT
, typename _OutIter
>
27761 num_put
<_CharT
, _OutIter
>::
27762 do_put(iter_type __s
, ios_base
& __io
, char_type __fill
,
27763 unsigned long __v
) const
27764 { return _M_insert_int(__s
, __io
, __fill
, __v
); }
27767 template<typename _CharT
, typename _OutIter
>
27769 num_put
<_CharT
, _OutIter
>::
27770 do_put(iter_type __s
, ios_base
& __io
, char_type __fill
, long long __v
) const
27771 { return _M_insert_int(__s
, __io
, __fill
, __v
); }
27773 template<typename _CharT
, typename _OutIter
>
27775 num_put
<_CharT
, _OutIter
>::
27776 do_put(iter_type __s
, ios_base
& __io
, char_type __fill
,
27777 unsigned long long __v
) const
27778 { return _M_insert_int(__s
, __io
, __fill
, __v
); }
27781 template<typename _CharT
, typename _OutIter
>
27783 num_put
<_CharT
, _OutIter
>::
27784 do_put(iter_type __s
, ios_base
& __io
, char_type __fill
, double __v
) const
27785 { return _M_insert_float(__s
, __io
, __fill
, char(), __v
); }
27787 template<typename _CharT
, typename _OutIter
>
27789 num_put
<_CharT
, _OutIter
>::
27790 do_put(iter_type __s
, ios_base
& __io
, char_type __fill
,
27791 long double __v
) const
27792 { return _M_insert_float(__s
, __io
, __fill
, 'L', __v
); }
27794 template<typename _CharT
, typename _OutIter
>
27796 num_put
<_CharT
, _OutIter
>::
27797 do_put(iter_type __s
, ios_base
& __io
, char_type __fill
,
27798 const void* __v
) const
27800 const ios_base::fmtflags __flags
= __io
.flags();
27801 const ios_base::fmtflags __fmt
= ~(ios_base::basefield
27802 | ios_base::uppercase
27803 | ios_base::internal
);
27804 __io
.flags(__flags
& __fmt
| (ios_base::hex
| ios_base::showbase
));
27806 __s
= _M_insert_int(__s
, __io
, __fill
,
27807 reinterpret_cast<unsigned long>(__v
));
27808 __io
.flags(__flags
);
27812 template<typename _CharT
, typename _InIter
>
27813 template<bool _Intl
>
27815 money_get
<_CharT
, _InIter
>::
27816 _M_extract(iter_type __beg
, iter_type __end
, ios_base
& __io
,
27817 ios_base::iostate
& __err
, string
& __units
) const
27819 typedef char_traits
<_CharT
> __traits_type
;
27820 typedef typename
string_type::size_type size_type
;
27821 typedef money_base::part part
;
27822 typedef __moneypunct_cache
<_CharT
, _Intl
> __cache_type
;
27824 const locale
& __loc
= __io
._M_getloc();
27825 const ctype
<_CharT
>& __ctype
= use_facet
<ctype
<_CharT
> >(__loc
);
27827 __use_cache
<__cache_type
> __uc
;
27828 const __cache_type
* __lc
= __uc(__loc
);
27829 const char_type
* __lit
= __lc
->_M_atoms
;
27832 bool __negative
= false;
27834 size_type __sign_size
= 0;
27836 const bool __mandatory_sign
= (__lc
->_M_positive_sign_size
27837 && __lc
->_M_negative_sign_size
);
27839 string __grouping_tmp
;
27840 if (__lc
->_M_use_grouping
)
27841 __grouping_tmp
.reserve(32);
27843 int __last_pos
= 0;
27847 bool __testvalid
= true;
27849 bool __testdecfound
= false;
27855 const char_type
* __lit_zero
= __lit
+ money_base::_S_zero
;
27856 const money_base::pattern __p
= __lc
->_M_neg_format
;
27857 for (int __i
= 0; __i
< 4 && __testvalid
; ++__i
)
27859 const part __which
= static_cast<part
>(__p
.field
[__i
]);
27862 case money_base::symbol
:
27867 if (__io
.flags() & ios_base::showbase
|| __sign_size
> 1
27869 || (__i
== 1 && (__mandatory_sign
27870 || (static_cast<part
>(__p
.field
[0])
27871 == money_base::sign
)
27872 || (static_cast<part
>(__p
.field
[2])
27873 == money_base::space
)))
27874 || (__i
== 2 && ((static_cast<part
>(__p
.field
[3])
27875 == money_base::value
)
27876 || __mandatory_sign
27877 && (static_cast<part
>(__p
.field
[3])
27878 == money_base::sign
))))
27880 const size_type __len
= __lc
->_M_curr_symbol_size
;
27882 for (; __beg
!= __end
&& __j
< __len
27883 && *__beg
== __lc
->_M_curr_symbol
[__j
];
27886 && (__j
|| __io
.flags() & ios_base::showbase
))
27887 __testvalid
= false;
27890 case money_base::sign
:
27892 if (__lc
->_M_positive_sign_size
&& __beg
!= __end
27893 && *__beg
== __lc
->_M_positive_sign
[0])
27895 __sign_size
= __lc
->_M_positive_sign_size
;
27898 else if (__lc
->_M_negative_sign_size
&& __beg
!= __end
27899 && *__beg
== __lc
->_M_negative_sign
[0])
27902 __sign_size
= __lc
->_M_negative_sign_size
;
27905 else if (__lc
->_M_positive_sign_size
27906 && !__lc
->_M_negative_sign_size
)
27910 else if (__mandatory_sign
)
27911 __testvalid
= false;
27913 case money_base::value
:
27916 for (; __beg
!= __end
; ++__beg
)
27918 const char_type __c
= *__beg
;
27919 const char_type
* __q
= __traits_type::find(__lit_zero
,
27923 __res
+= money_base::_S_atoms
[__q
- __lit
];
27926 else if (__c
== __lc
->_M_decimal_point
27927 && !__testdecfound
)
27931 __testdecfound
= true;
27933 else if (__lc
->_M_use_grouping
27934 && __c
== __lc
->_M_thousands_sep
27935 && !__testdecfound
)
27940 __grouping_tmp
+= static_cast<char>(__n
);
27945 __testvalid
= false;
27953 __testvalid
= false;
27955 case money_base::space
:
27957 if (__beg
!= __end
&& __ctype
.is(ctype_base::space
, *__beg
))
27960 __testvalid
= false;
27961 case money_base::none
:
27964 for (; __beg
!= __end
27965 && __ctype
.is(ctype_base::space
, *__beg
); ++__beg
);
27971 if (__sign_size
> 1 && __testvalid
)
27973 const char_type
* __sign
= __negative
? __lc
->_M_negative_sign
27974 : __lc
->_M_positive_sign
;
27976 for (; __beg
!= __end
&& __i
< __sign_size
27977 && *__beg
== __sign
[__i
]; ++__beg
, ++__i
);
27979 if (__i
!= __sign_size
)
27980 __testvalid
= false;
27986 if (__res
.size() > 1)
27988 const size_type __first
= __res
.find_first_not_of('0');
27989 const bool __only_zeros
= __first
== string::npos
;
27991 __res
.erase(0, __only_zeros
? __res
.size() - 1 : __first
);
27995 if (__negative
&& __res
[0] != '0')
27996 __res
.insert(__res
.begin(), '-');
27999 if (__grouping_tmp
.size())
28002 __grouping_tmp
+= static_cast<char>(__testdecfound
? __last_pos
28004 if (!std::__verify_grouping(__lc
->_M_grouping
,
28005 __lc
->_M_grouping_size
,
28007 __err
|= ios_base::failbit
;
28011 if (__testdecfound
&& __lc
->_M_frac_digits
> 0
28012 && __n
!= __lc
->_M_frac_digits
)
28013 __testvalid
= false;
28018 __err
|= ios_base::failbit
;
28020 __units
.swap(__res
);
28023 if (__beg
== __end
)
28024 __err
|= ios_base::eofbit
;
28028 template<typename _CharT
, typename _InIter
>
28030 money_get
<_CharT
, _InIter
>::
28031 do_get(iter_type __beg
, iter_type __end
, bool __intl
, ios_base
& __io
,
28032 ios_base::iostate
& __err
, long double& __units
) const
28036 __beg
= _M_extract
<true>(__beg
, __end
, __io
, __err
, __str
);
28038 __beg
= _M_extract
<false>(__beg
, __end
, __io
, __err
, __str
);
28039 std::__convert_to_v(__str
.c_str(), __units
, __err
, _S_get_c_locale());
28043 template<typename _CharT
, typename _InIter
>
28045 money_get
<_CharT
, _InIter
>::
28046 do_get(iter_type __beg
, iter_type __end
, bool __intl
, ios_base
& __io
,
28047 ios_base::iostate
& __err
, string_type
& __units
) const
28049 typedef typename
string::size_type size_type
;
28051 const locale
& __loc
= __io
._M_getloc();
28052 const ctype
<_CharT
>& __ctype
= use_facet
<ctype
<_CharT
> >(__loc
);
28055 const iter_type __ret
= __intl
? _M_extract
<true>(__beg
, __end
, __io
,
28057 : _M_extract
<false>(__beg
, __end
, __io
,
28059 const size_type __len
= __str
.size();
28062 _CharT
* __ws
= static_cast<_CharT
*>(__builtin_alloca(sizeof(_CharT
)
28064 __ctype
.widen(__str
.data(), __str
.data() + __len
, __ws
);
28065 __units
.assign(__ws
, __len
);
28071 template<typename _CharT
, typename _OutIter
>
28072 template<bool _Intl
>
28074 money_put
<_CharT
, _OutIter
>::
28075 _M_insert(iter_type __s
, ios_base
& __io
, char_type __fill
,
28076 const string_type
& __digits
) const
28078 typedef typename
string_type::size_type size_type
;
28079 typedef money_base::part part
;
28080 typedef __moneypunct_cache
<_CharT
, _Intl
> __cache_type
;
28082 const locale
& __loc
= __io
._M_getloc();
28083 const ctype
<_CharT
>& __ctype
= use_facet
<ctype
<_CharT
> >(__loc
);
28085 __use_cache
<__cache_type
> __uc
;
28086 const __cache_type
* __lc
= __uc(__loc
);
28087 const char_type
* __lit
= __lc
->_M_atoms
;
28091 const char_type
* __beg
= __digits
.data();
28093 money_base::pattern __p
;
28094 const char_type
* __sign
;
28095 size_type __sign_size
;
28096 if (!(*__beg
== __lit
[money_base::_S_minus
]))
28098 __p
= __lc
->_M_pos_format
;
28099 __sign
= __lc
->_M_positive_sign
;
28100 __sign_size
= __lc
->_M_positive_sign_size
;
28104 __p
= __lc
->_M_neg_format
;
28105 __sign
= __lc
->_M_negative_sign
;
28106 __sign_size
= __lc
->_M_negative_sign_size
;
28107 if (__digits
.size())
28112 size_type __len
= __ctype
.scan_not(ctype_base::digit
, __beg
,
28113 __beg
+ __digits
.size()) - __beg
;
28119 string_type __value
;
28120 __value
.reserve(2 * __len
);
28124 int __paddec
= __len
- __lc
->_M_frac_digits
;
28127 if (__lc
->_M_frac_digits
< 0)
28129 if (__lc
->_M_grouping_size
)
28132 static_cast<_CharT
*>(__builtin_alloca(sizeof(_CharT
)
28135 std::__add_grouping(__ws
, __lc
->_M_thousands_sep
,
28137 __lc
->_M_grouping_size
,
28138 __beg
, __beg
+ __paddec
);
28139 __value
.assign(__ws
, __ws_end
- __ws
);
28142 __value
.assign(__beg
, __paddec
);
28146 if (__lc
->_M_frac_digits
> 0)
28148 __value
+= __lc
->_M_decimal_point
;
28150 __value
.append(__beg
+ __paddec
, __lc
->_M_frac_digits
);
28154 __value
.append(-__paddec
, __lit
[money_base::_S_zero
]);
28155 __value
.append(__beg
, __len
);
28160 const ios_base::fmtflags __f
= __io
.flags()
28161 & ios_base::adjustfield
;
28162 __len
= __value
.size() + __sign_size
;
28163 __len
+= ((__io
.flags() & ios_base::showbase
)
28164 ? __lc
->_M_curr_symbol_size
: 0);
28167 __res
.reserve(2 * __len
);
28169 const size_type __width
= static_cast<size_type
>(__io
.width());
28170 const bool __testipad
= (__f
== ios_base::internal
28171 && __len
< __width
);
28173 for (int __i
= 0; __i
< 4; ++__i
)
28175 const part __which
= static_cast<part
>(__p
.field
[__i
]);
28178 case money_base::symbol
:
28179 if (__io
.flags() & ios_base::showbase
)
28180 __res
.append(__lc
->_M_curr_symbol
,
28181 __lc
->_M_curr_symbol_size
);
28183 case money_base::sign
:
28188 __res
+= __sign
[0];
28190 case money_base::value
:
28193 case money_base::space
:
28198 __res
.append(__width
- __len
, __fill
);
28202 case money_base::none
:
28204 __res
.append(__width
- __len
, __fill
);
28210 if (__sign_size
> 1)
28211 __res
.append(__sign
+ 1, __sign_size
- 1);
28214 __len
= __res
.size();
28215 if (__width
> __len
)
28217 if (__f
== ios_base::left
)
28219 __res
.append(__width
- __len
, __fill
);
28222 __res
.insert(0, __width
- __len
, __fill
);
28227 __s
= std::__write(__s
, __res
.data(), __len
);
28233 template<typename _CharT
, typename _OutIter
>
28235 money_put
<_CharT
, _OutIter
>::
28236 do_put(iter_type __s
, bool __intl
, ios_base
& __io
, char_type __fill
,
28237 long double __units
) const
28239 const locale __loc
= __io
.getloc();
28240 const ctype
<_CharT
>& __ctype
= use_facet
<ctype
<_CharT
> >(__loc
);
28243 int __cs_size
= 64;
28244 char* __cs
= static_cast<char*>(__builtin_alloca(__cs_size
));
28247 int __len
= std::__convert_from_v(__cs
, __cs_size
, "%.*Lf", __units
,
28248 _S_get_c_locale(), 0);
28250 if (__len
>= __cs_size
)
28252 __cs_size
= __len
+ 1;
28253 __cs
= static_cast<char*>(__builtin_alloca(__cs_size
));
28254 __len
= std::__convert_from_v(__cs
, __cs_size
, "%.*Lf", __units
,
28255 _S_get_c_locale(), 0);
28264 _CharT
* __ws
= static_cast<_CharT
*>(__builtin_alloca(sizeof(_CharT
)
28266 __ctype
.widen(__cs
, __cs
+ __len
, __ws
);
28267 const string_type
__digits(__ws
, __len
);
28268 return __intl
? _M_insert
<true>(__s
, __io
, __fill
, __digits
)
28269 : _M_insert
<false>(__s
, __io
, __fill
, __digits
);
28272 template<typename _CharT
, typename _OutIter
>
28274 money_put
<_CharT
, _OutIter
>::
28275 do_put(iter_type __s
, bool __intl
, ios_base
& __io
, char_type __fill
,
28276 const string_type
& __digits
) const
28277 { return __intl
? _M_insert
<true>(__s
, __io
, __fill
, __digits
)
28278 : _M_insert
<false>(__s
, __io
, __fill
, __digits
); }
28284 template<typename _CharT
, typename _InIter
>
28285 time_base::dateorder
28286 time_get
<_CharT
, _InIter
>::do_date_order() const
28287 { return time_base::no_order
; }
28291 template<typename _CharT
, typename _InIter
>
28293 time_get
<_CharT
, _InIter
>::
28294 _M_extract_via_format(iter_type __beg
, iter_type __end
, ios_base
& __io
,
28295 ios_base::iostate
& __err
, tm
* __tm
,
28296 const _CharT
* __format
) const
28298 const locale
& __loc
= __io
._M_getloc();
28299 const __timepunct
<_CharT
>& __tp
= use_facet
<__timepunct
<_CharT
> >(__loc
);
28300 const ctype
<_CharT
>& __ctype
= use_facet
<ctype
<_CharT
> >(__loc
);
28301 const size_t __len
= char_traits
<_CharT
>::length(__format
);
28303 for (size_t __i
= 0; __beg
!= __end
&& __i
< __len
&& !__err
; ++__i
)
28305 if (__ctype
.narrow(__format
[__i
], 0) == '%')
28308 char __c
= __ctype
.narrow(__format
[++__i
], 0);
28310 if (__c
== 'E' || __c
== 'O')
28311 __c
= __ctype
.narrow(__format
[++__i
], 0);
28318 const char_type
* __days1
[7];
28319 __tp
._M_days_abbreviated(__days1
);
28320 __beg
= _M_extract_name(__beg
, __end
, __tm
->tm_wday
, __days1
,
28325 const char_type
* __days2
[7];
28326 __tp
._M_days(__days2
);
28327 __beg
= _M_extract_name(__beg
, __end
, __tm
->tm_wday
, __days2
,
28333 const char_type
* __months1
[12];
28334 __tp
._M_months_abbreviated(__months1
);
28335 __beg
= _M_extract_name(__beg
, __end
, __tm
->tm_mon
,
28336 __months1
, 12, __io
, __err
);
28340 const char_type
* __months2
[12];
28341 __tp
._M_months(__months2
);
28342 __beg
= _M_extract_name(__beg
, __end
, __tm
->tm_mon
,
28343 __months2
, 12, __io
, __err
);
28347 const char_type
* __dt
[2];
28348 __tp
._M_date_time_formats(__dt
);
28349 __beg
= _M_extract_via_format(__beg
, __end
, __io
, __err
,
28354 __beg
= _M_extract_num(__beg
, __end
, __tm
->tm_mday
, 1, 31, 2,
28360 if (__ctype
.is(ctype_base::space
, *__beg
))
28361 __beg
= _M_extract_num(++__beg
, __end
, __tm
->tm_mday
, 1, 9,
28364 __beg
= _M_extract_num(__beg
, __end
, __tm
->tm_mday
, 10, 31,
28370 __ctype
.widen(__cs
, __cs
+ 9, __wcs
);
28371 __beg
= _M_extract_via_format(__beg
, __end
, __io
, __err
,
28376 __beg
= _M_extract_num(__beg
, __end
, __tm
->tm_hour
, 0, 23, 2,
28381 __beg
= _M_extract_num(__beg
, __end
, __tm
->tm_hour
, 1, 12, 2,
28386 __beg
= _M_extract_num(__beg
, __end
, __mem
, 1, 12, 2,
28389 __tm
->tm_mon
= __mem
- 1;
28393 __beg
= _M_extract_num(__beg
, __end
, __tm
->tm_min
, 0, 59, 2,
28397 if (__ctype
.narrow(*__beg
, 0) == '\n')
28400 __err
|= ios_base::failbit
;
28405 __ctype
.widen(__cs
, __cs
+ 6, __wcs
);
28406 __beg
= _M_extract_via_format(__beg
, __end
, __io
, __err
,
28413 __beg
= _M_extract_num(__beg
, __end
, __tm
->tm_sec
, 0, 60, 2,
28420 if (__ctype
.narrow(*__beg
, 0) == '\t')
28423 __err
|= ios_base::failbit
;
28428 __ctype
.widen(__cs
, __cs
+ 9, __wcs
);
28429 __beg
= _M_extract_via_format(__beg
, __end
, __io
, __err
,
28434 const char_type
* __dates
[2];
28435 __tp
._M_date_formats(__dates
);
28436 __beg
= _M_extract_via_format(__beg
, __end
, __io
, __err
,
28441 const char_type
* __times
[2];
28442 __tp
._M_time_formats(__times
);
28443 __beg
= _M_extract_via_format(__beg
, __end
, __io
, __err
,
28449 __beg
= _M_extract_num(__beg
, __end
, __tm
->tm_year
, 0, 99, 2,
28454 __beg
= _M_extract_num(__beg
, __end
, __mem
, 0, 9999, 4,
28457 __tm
->tm_year
= __mem
- 1900;
28461 if (__ctype
.is(ctype_base::upper
, *__beg
))
28464 __beg
= _M_extract_name(__beg
, __end
, __tmp
,
28465 __timepunct_cache
<_CharT
>::_S_timezones
,
28469 if (__beg
!= __end
&& !__err
&& __tmp
== 0
28470 && (*__beg
== __ctype
.widen('-')
28471 || *__beg
== __ctype
.widen('+')))
28473 __beg
= _M_extract_num(__beg
, __end
, __tmp
, 0, 23, 2,
28475 __beg
= _M_extract_num(__beg
, __end
, __tmp
, 0, 59, 2,
28480 __err
|= ios_base::failbit
;
28484 __err
|= ios_base::failbit
;
28490 if (__format
[__i
] == *__beg
)
28493 __err
|= ios_base::failbit
;
28499 template<typename _CharT
, typename _InIter
>
28501 time_get
<_CharT
, _InIter
>::
28502 _M_extract_num(iter_type __beg
, iter_type __end
, int& __member
,
28503 int __min
, int __max
, size_t __len
,
28504 ios_base
& __io
, ios_base::iostate
& __err
) const
28506 const locale
& __loc
= __io
._M_getloc();
28507 const ctype
<_CharT
>& __ctype
= use_facet
<ctype
<_CharT
> >(__loc
);
28510 int __mult
= __len
== 2 ? 10 : (__len
== 4 ? 1000 : 1);
28515 for (; __beg
!= __end
&& __i
< __len
; ++__beg
, ++__i
)
28517 const char __c
= __ctype
.narrow(*__beg
, '*');
28518 if (__c
>= '0' && __c
<= '9')
28520 __value
= __value
* 10 + (__c
- '0');
28521 const int __valuec
= __value
* __mult
;
28522 if (__valuec
> __max
|| __valuec
+ __mult
< __min
)
28530 __member
= __value
;
28532 __err
|= ios_base::failbit
;
28538 template<typename _CharT
, typename _InIter
>
28540 time_get
<_CharT
, _InIter
>::
28541 _M_extract_name(iter_type __beg
, iter_type __end
, int& __member
,
28542 const _CharT
** __names
, size_t __indexlen
,
28543 ios_base
& __io
, ios_base::iostate
& __err
) const
28545 typedef char_traits
<_CharT
> __traits_type
;
28546 const locale
& __loc
= __io
._M_getloc();
28547 const ctype
<_CharT
>& __ctype
= use_facet
<ctype
<_CharT
> >(__loc
);
28549 int* __matches
= static_cast<int*>(__builtin_alloca(sizeof(int)
28551 size_t __nmatches
= 0;
28553 bool __testvalid
= true;
28554 const char_type
* __name
;
28560 if (__beg
!= __end
)
28562 const char_type __c
= *__beg
;
28563 for (size_t __i1
= 0; __i1
< __indexlen
; ++__i1
)
28564 if (__c
== __names
[__i1
][0]
28565 || __c
== __ctype
.toupper(__names
[__i1
][0]))
28566 __matches
[__nmatches
++] = __i1
;
28569 while (__nmatches
> 1)
28572 size_t __minlen
= __traits_type::length(__names
[__matches
[0]]);
28573 for (size_t __i2
= 1; __i2
< __nmatches
; ++__i2
)
28574 __minlen
= std::min(__minlen
,
28575 __traits_type::length(__names
[__matches
[__i2
]]));
28577 if (__pos
< __minlen
&& __beg
!= __end
)
28578 for (size_t __i3
= 0; __i3
< __nmatches
;)
28580 __name
= __names
[__matches
[__i3
]];
28581 if (!(__name
[__pos
] == *__beg
))
28582 __matches
[__i3
] = __matches
[--__nmatches
];
28590 if (__nmatches
== 1)
28594 __name
= __names
[__matches
[0]];
28595 const size_t __len
= __traits_type::length(__name
);
28596 while (__pos
< __len
&& __beg
!= __end
&& __name
[__pos
] == *__beg
)
28599 if (__len
== __pos
)
28600 __member
= __matches
[0];
28602 __testvalid
= false;
28605 __testvalid
= false;
28607 __err
|= ios_base::failbit
;
28611 template<typename _CharT
, typename _InIter
>
28613 time_get
<_CharT
, _InIter
>::
28614 do_get_time(iter_type __beg
, iter_type __end
, ios_base
& __io
,
28615 ios_base::iostate
& __err
, tm
* __tm
) const
28617 const locale
& __loc
= __io
._M_getloc();
28618 const __timepunct
<_CharT
>& __tp
= use_facet
<__timepunct
<_CharT
> >(__loc
);
28619 const char_type
* __times
[2];
28620 __tp
._M_time_formats(__times
);
28621 __beg
= _M_extract_via_format(__beg
, __end
, __io
, __err
,
28623 if (__beg
== __end
)
28624 __err
|= ios_base::eofbit
;
28628 template<typename _CharT
, typename _InIter
>
28630 time_get
<_CharT
, _InIter
>::
28631 do_get_date(iter_type __beg
, iter_type __end
, ios_base
& __io
,
28632 ios_base::iostate
& __err
, tm
* __tm
) const
28634 const locale
& __loc
= __io
._M_getloc();
28635 const __timepunct
<_CharT
>& __tp
= use_facet
<__timepunct
<_CharT
> >(__loc
);
28636 const char_type
* __dates
[2];
28637 __tp
._M_date_formats(__dates
);
28638 __beg
= _M_extract_via_format(__beg
, __end
, __io
, __err
,
28640 if (__beg
== __end
)
28641 __err
|= ios_base::eofbit
;
28645 template<typename _CharT
, typename _InIter
>
28647 time_get
<_CharT
, _InIter
>::
28648 do_get_weekday(iter_type __beg
, iter_type __end
, ios_base
& __io
,
28649 ios_base::iostate
& __err
, tm
* __tm
) const
28651 typedef char_traits
<_CharT
> __traits_type
;
28652 const locale
& __loc
= __io
._M_getloc();
28653 const __timepunct
<_CharT
>& __tp
= use_facet
<__timepunct
<_CharT
> >(__loc
);
28654 const ctype
<_CharT
>& __ctype
= use_facet
<ctype
<_CharT
> >(__loc
);
28655 const char_type
* __days
[7];
28656 __tp
._M_days_abbreviated(__days
);
28658 __beg
= _M_extract_name(__beg
, __end
, __tmpwday
, __days
, 7, __io
, __err
);
28666 if (!__err
&& __beg
!= __end
)
28668 size_t __pos
= __traits_type::length(__days
[__tmpwday
]);
28669 __tp
._M_days(__days
);
28670 const char_type
* __name
= __days
[__tmpwday
];
28671 if (__name
[__pos
] == *__beg
)
28674 const size_t __len
= __traits_type::length(__name
);
28675 while (__pos
< __len
&& __beg
!= __end
28676 && __name
[__pos
] == *__beg
)
28678 if (__len
!= __pos
)
28679 __err
|= ios_base::failbit
;
28683 __tm
->tm_wday
= __tmpwday
;
28685 if (__beg
== __end
)
28686 __err
|= ios_base::eofbit
;
28690 template<typename _CharT
, typename _InIter
>
28692 time_get
<_CharT
, _InIter
>::
28693 do_get_monthname(iter_type __beg
, iter_type __end
,
28694 ios_base
& __io
, ios_base::iostate
& __err
, tm
* __tm
) const
28696 typedef char_traits
<_CharT
> __traits_type
;
28697 const locale
& __loc
= __io
._M_getloc();
28698 const __timepunct
<_CharT
>& __tp
= use_facet
<__timepunct
<_CharT
> >(__loc
);
28699 const ctype
<_CharT
>& __ctype
= use_facet
<ctype
<_CharT
> >(__loc
);
28700 const char_type
* __months
[12];
28701 __tp
._M_months_abbreviated(__months
);
28703 __beg
= _M_extract_name(__beg
, __end
, __tmpmon
, __months
, 12,
28712 if (!__err
&& __beg
!= __end
)
28714 size_t __pos
= __traits_type::length(__months
[__tmpmon
]);
28715 __tp
._M_months(__months
);
28716 const char_type
* __name
= __months
[__tmpmon
];
28717 if (__name
[__pos
] == *__beg
)
28720 const size_t __len
= __traits_type::length(__name
);
28721 while (__pos
< __len
&& __beg
!= __end
28722 && __name
[__pos
] == *__beg
)
28724 if (__len
!= __pos
)
28725 __err
|= ios_base::failbit
;
28729 __tm
->tm_mon
= __tmpmon
;
28731 if (__beg
== __end
)
28732 __err
|= ios_base::eofbit
;
28736 template<typename _CharT
, typename _InIter
>
28738 time_get
<_CharT
, _InIter
>::
28739 do_get_year(iter_type __beg
, iter_type __end
, ios_base
& __io
,
28740 ios_base::iostate
& __err
, tm
* __tm
) const
28742 const locale
& __loc
= __io
._M_getloc();
28743 const ctype
<_CharT
>& __ctype
= use_facet
<ctype
<_CharT
> >(__loc
);
28747 for (; __beg
!= __end
&& __i
< 4; ++__beg
, ++__i
)
28749 const char __c
= __ctype
.narrow(*__beg
, '*');
28750 if (__c
>= '0' && __c
<= '9')
28751 __value
= __value
* 10 + (__c
- '0');
28755 if (__i
== 2 || __i
== 4)
28756 __tm
->tm_year
= __i
== 2 ? __value
: __value
- 1900;
28758 __err
|= ios_base::failbit
;
28759 if (__beg
== __end
)
28760 __err
|= ios_base::eofbit
;
28764 template<typename _CharT
, typename _OutIter
>
28766 time_put
<_CharT
, _OutIter
>::
28767 put(iter_type __s
, ios_base
& __io
, char_type __fill
, const tm
* __tm
,
28768 const _CharT
* __beg
, const _CharT
* __end
) const
28770 const locale
& __loc
= __io
._M_getloc();
28771 ctype
<_CharT
> const& __ctype
= use_facet
<ctype
<_CharT
> >(__loc
);
28772 for (; __beg
!= __end
; ++__beg
)
28773 if (__ctype
.narrow(*__beg
, 0) != '%')
28778 else if (++__beg
!= __end
)
28782 const char __c
= __ctype
.narrow(*__beg
, 0);
28783 if (__c
!= 'E' && __c
!= 'O')
28785 else if (++__beg
!= __end
)
28788 __format
= __ctype
.narrow(*__beg
, 0);
28792 __s
= this->do_put(__s
, __io
, __fill
, __tm
, __format
, __mod
);
28799 template<typename _CharT
, typename _OutIter
>
28801 time_put
<_CharT
, _OutIter
>::
28802 do_put(iter_type __s
, ios_base
& __io
, char_type
, const tm
* __tm
,
28803 char __format
, char __mod
) const
28805 const locale
& __loc
= __io
._M_getloc();
28806 ctype
<_CharT
> const& __ctype
= use_facet
<ctype
<_CharT
> >(__loc
);
28807 __timepunct
<_CharT
> const& __tp
= use_facet
<__timepunct
<_CharT
> >(__loc
);
28811 const size_t __maxlen
= 128;
28813 static_cast<char_type
*>(__builtin_alloca(sizeof(char_type
) * __maxlen
));
28820 char_type __fmt
[4];
28821 __fmt
[0] = __ctype
.widen('%');
28824 __fmt
[1] = __format
;
28825 __fmt
[2] = char_type();
28830 __fmt
[2] = __format
;
28831 __fmt
[3] = char_type();
28834 __tp
._M_put(__res
, __maxlen
, __fmt
, __tm
);
28837 return std::__write(__s
, __res
, char_traits
<char_type
>::length(__res
));
28841 template<typename _CharT
>
28843 collate
<_CharT
>::_M_compare(const _CharT
*, const _CharT
*) const
28847 template<typename _CharT
>
28849 collate
<_CharT
>::_M_transform(_CharT
*, const _CharT
*, size_t) const
28852 template<typename _CharT
>
28855 do_compare(const _CharT
* __lo1
, const _CharT
* __hi1
,
28856 const _CharT
* __lo2
, const _CharT
* __hi2
) const
28860 const string_type
__one(__lo1
, __hi1
);
28861 const string_type
__two(__lo2
, __hi2
);
28863 const _CharT
* __p
= __one
.c_str();
28864 const _CharT
* __pend
= __one
.data() + __one
.length();
28865 const _CharT
* __q
= __two
.c_str();
28866 const _CharT
* __qend
= __two
.data() + __two
.length();
28873 const int __res
= _M_compare(__p
, __q
);
28877 __p
+= char_traits
<_CharT
>::length(__p
);
28878 __q
+= char_traits
<_CharT
>::length(__q
);
28879 if (__p
== __pend
&& __q
== __qend
)
28881 else if (__p
== __pend
)
28883 else if (__q
== __qend
)
28891 template<typename _CharT
>
28892 typename collate
<_CharT
>::string_type
28894 do_transform(const _CharT
* __lo
, const _CharT
* __hi
) const
28897 string_type
__str(__lo
, __hi
);
28899 const _CharT
* __p
= __str
.c_str();
28900 const _CharT
* __pend
= __str
.data() + __str
.length();
28902 size_t __len
= (__hi
- __lo
) * 2;
28913 static_cast<_CharT
*>(__builtin_alloca(sizeof(_CharT
) * __len
));
28914 size_t __res
= _M_transform(__c
, __p
, __len
);
28917 if (__res
>= __len
)
28920 __c
= static_cast<_CharT
*>(__builtin_alloca(sizeof(_CharT
)
28922 __res
= _M_transform(__c
, __p
, __len
);
28925 __ret
.append(__c
, __res
);
28926 __p
+= char_traits
<_CharT
>::length(__p
);
28931 __ret
.push_back(_CharT());
28935 template<typename _CharT
>
28938 do_hash(const _CharT
* __lo
, const _CharT
* __hi
) const
28940 unsigned long __val
= 0;
28941 for (; __lo
< __hi
; ++__lo
)
28942 __val
= *__lo
+ ((__val
<< 7) |
28943 (__val
>> (numeric_limits
<unsigned long>::digits
- 7)));
28944 return static_cast<long>(__val
);
28946 # 2407 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.tcc" 3
28947 template<typename _CharT
, typename _Traits
>
28949 __pad
<_CharT
, _Traits
>::_S_pad(ios_base
& __io
, _CharT __fill
,
28950 _CharT
* __news
, const _CharT
* __olds
,
28951 const streamsize __newlen
,
28952 const streamsize __oldlen
, const bool __num
)
28954 const size_t __plen
= static_cast<size_t>(__newlen
- __oldlen
);
28955 const ios_base::fmtflags __adjust
= __io
.flags() & ios_base::adjustfield
;
28958 if (__adjust
== ios_base::left
)
28960 _Traits::copy(__news
, const_cast<_CharT
*>(__olds
), __oldlen
);
28961 _Traits::assign(__news
+ __oldlen
, __plen
, __fill
);
28966 if (__adjust
== ios_base::internal
&& __num
)
28971 const locale
& __loc
= __io
._M_getloc();
28972 const ctype
<_CharT
>& __ctype
= use_facet
<ctype
<_CharT
> >(__loc
);
28974 const bool __testsign
= (__ctype
.widen('-') == __olds
[0]
28975 || __ctype
.widen('+') == __olds
[0]);
28976 const bool __testhex
= (__ctype
.widen('0') == __olds
[0]
28978 && (__ctype
.widen('x') == __olds
[1]
28979 || __ctype
.widen('X') == __olds
[1]));
28982 __news
[0] = __olds
[0];
28983 __news
[1] = __olds
[1];
28987 else if (__testsign
)
28989 __news
[0] = __olds
[0];
28995 _Traits::assign(__news
, __plen
, __fill
);
28996 _Traits::copy(__news
+ __plen
, const_cast<_CharT
*>(__olds
+ __mod
),
29001 __verify_grouping(const char* __grouping
, size_t __grouping_size
,
29002 const string
& __grouping_tmp
)
29004 const size_t __n
= __grouping_tmp
.size() - 1;
29005 const size_t __min
= std::min(__n
, size_t(__grouping_size
- 1));
29007 bool __test
= true;
29012 for (size_t __j
= 0; __j
< __min
&& __test
; --__i
, ++__j
)
29013 __test
= __grouping_tmp
[__i
] == __grouping
[__j
];
29014 for (; __i
&& __test
; --__i
)
29015 __test
= __grouping_tmp
[__i
] == __grouping
[__min
];
29019 if (static_cast<signed char>(__grouping
[__min
]) > 0)
29020 __test
&= __grouping_tmp
[0] <= __grouping
[__min
];
29024 template<typename _CharT
>
29026 __add_grouping(_CharT
* __s
, _CharT __sep
,
29027 const char* __gbeg
, size_t __gsize
,
29028 const _CharT
* __first
, const _CharT
* __last
)
29030 if (__last
- __first
> *__gbeg
29031 && static_cast<signed char>(*__gbeg
) > 0)
29033 const bool __bump
= __gsize
!= 1;
29034 __s
= std::__add_grouping(__s
, __sep
, __gbeg
+ __bump
,
29035 __gsize
- __bump
, __first
,
29037 __first
= __last
- *__gbeg
;
29041 *__s
++ = *__first
++;
29042 while (__first
!= __last
);
29050 extern template class moneypunct
<char, false>;
29051 extern template class moneypunct
<char, true>;
29052 extern template class moneypunct_byname
<char, false>;
29053 extern template class moneypunct_byname
<char, true>;
29054 extern template class money_get
<char>;
29055 extern template class money_put
<char>;
29056 extern template class numpunct
<char>;
29057 extern template class numpunct_byname
<char>;
29058 extern template class num_get
<char>;
29059 extern template class num_put
<char>;
29060 extern template class __timepunct
<char>;
29061 extern template class time_put
<char>;
29062 extern template class time_put_byname
<char>;
29063 extern template class time_get
<char>;
29064 extern template class time_get_byname
<char>;
29065 extern template class messages
<char>;
29066 extern template class messages_byname
<char>;
29067 extern template class ctype_byname
<char>;
29068 extern template class codecvt_byname
<char, char, mbstate_t>;
29069 extern template class collate
<char>;
29070 extern template class collate_byname
<char>;
29073 const codecvt
<char, char, mbstate_t>&
29074 use_facet
<codecvt
<char, char, mbstate_t> >(const locale
&);
29077 const collate
<char>&
29078 use_facet
<collate
<char> >(const locale
&);
29081 const numpunct
<char>&
29082 use_facet
<numpunct
<char> >(const locale
&);
29085 const num_put
<char>&
29086 use_facet
<num_put
<char> >(const locale
&);
29089 const num_get
<char>&
29090 use_facet
<num_get
<char> >(const locale
&);
29093 const moneypunct
<char, true>&
29094 use_facet
<moneypunct
<char, true> >(const locale
&);
29097 const moneypunct
<char, false>&
29098 use_facet
<moneypunct
<char, false> >(const locale
&);
29101 const money_put
<char>&
29102 use_facet
<money_put
<char> >(const locale
&);
29105 const money_get
<char>&
29106 use_facet
<money_get
<char> >(const locale
&);
29109 const __timepunct
<char>&
29110 use_facet
<__timepunct
<char> >(const locale
&);
29113 const time_put
<char>&
29114 use_facet
<time_put
<char> >(const locale
&);
29117 const time_get
<char>&
29118 use_facet
<time_get
<char> >(const locale
&);
29121 const messages
<char>&
29122 use_facet
<messages
<char> >(const locale
&);
29126 has_facet
<ctype
<char> >(const locale
&);
29130 has_facet
<codecvt
<char, char, mbstate_t> >(const locale
&);
29134 has_facet
<collate
<char> >(const locale
&);
29138 has_facet
<numpunct
<char> >(const locale
&);
29142 has_facet
<num_put
<char> >(const locale
&);
29146 has_facet
<num_get
<char> >(const locale
&);
29150 has_facet
<moneypunct
<char> >(const locale
&);
29154 has_facet
<money_put
<char> >(const locale
&);
29158 has_facet
<money_get
<char> >(const locale
&);
29162 has_facet
<__timepunct
<char> >(const locale
&);
29166 has_facet
<time_put
<char> >(const locale
&);
29170 has_facet
<time_get
<char> >(const locale
&);
29174 has_facet
<messages
<char> >(const locale
&);
29177 extern template class moneypunct
<wchar_t, false>;
29178 extern template class moneypunct
<wchar_t, true>;
29179 extern template class moneypunct_byname
<wchar_t, false>;
29180 extern template class moneypunct_byname
<wchar_t, true>;
29181 extern template class money_get
<wchar_t>;
29182 extern template class money_put
<wchar_t>;
29183 extern template class numpunct
<wchar_t>;
29184 extern template class numpunct_byname
<wchar_t>;
29185 extern template class num_get
<wchar_t>;
29186 extern template class num_put
<wchar_t>;
29187 extern template class __timepunct
<wchar_t>;
29188 extern template class time_put
<wchar_t>;
29189 extern template class time_put_byname
<wchar_t>;
29190 extern template class time_get
<wchar_t>;
29191 extern template class time_get_byname
<wchar_t>;
29192 extern template class messages
<wchar_t>;
29193 extern template class messages_byname
<wchar_t>;
29194 extern template class ctype_byname
<wchar_t>;
29195 extern template class codecvt_byname
<wchar_t, char, mbstate_t>;
29196 extern template class collate
<wchar_t>;
29197 extern template class collate_byname
<wchar_t>;
29200 const codecvt
<wchar_t, char, mbstate_t>&
29201 use_facet
<codecvt
<wchar_t, char, mbstate_t> >(locale
const&);
29204 const collate
<wchar_t>&
29205 use_facet
<collate
<wchar_t> >(const locale
&);
29208 const numpunct
<wchar_t>&
29209 use_facet
<numpunct
<wchar_t> >(const locale
&);
29212 const num_put
<wchar_t>&
29213 use_facet
<num_put
<wchar_t> >(const locale
&);
29216 const num_get
<wchar_t>&
29217 use_facet
<num_get
<wchar_t> >(const locale
&);
29220 const moneypunct
<wchar_t, true>&
29221 use_facet
<moneypunct
<wchar_t, true> >(const locale
&);
29224 const moneypunct
<wchar_t, false>&
29225 use_facet
<moneypunct
<wchar_t, false> >(const locale
&);
29228 const money_put
<wchar_t>&
29229 use_facet
<money_put
<wchar_t> >(const locale
&);
29232 const money_get
<wchar_t>&
29233 use_facet
<money_get
<wchar_t> >(const locale
&);
29236 const __timepunct
<wchar_t>&
29237 use_facet
<__timepunct
<wchar_t> >(const locale
&);
29240 const time_put
<wchar_t>&
29241 use_facet
<time_put
<wchar_t> >(const locale
&);
29244 const time_get
<wchar_t>&
29245 use_facet
<time_get
<wchar_t> >(const locale
&);
29248 const messages
<wchar_t>&
29249 use_facet
<messages
<wchar_t> >(const locale
&);
29253 has_facet
<ctype
<wchar_t> >(const locale
&);
29257 has_facet
<codecvt
<wchar_t, char, mbstate_t> >(const locale
&);
29261 has_facet
<collate
<wchar_t> >(const locale
&);
29265 has_facet
<numpunct
<wchar_t> >(const locale
&);
29269 has_facet
<num_put
<wchar_t> >(const locale
&);
29273 has_facet
<num_get
<wchar_t> >(const locale
&);
29277 has_facet
<moneypunct
<wchar_t> >(const locale
&);
29281 has_facet
<money_put
<wchar_t> >(const locale
&);
29285 has_facet
<money_get
<wchar_t> >(const locale
&);
29289 has_facet
<__timepunct
<wchar_t> >(const locale
&);
29293 has_facet
<time_put
<wchar_t> >(const locale
&);
29297 has_facet
<time_get
<wchar_t> >(const locale
&);
29301 has_facet
<messages
<wchar_t> >(const locale
&);
29305 # 49 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/locale" 2 3
29307 #pragma GCC visibility pop
29308 # 46 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/ostream.tcc" 2 3
29312 template<typename _CharT
, typename _Traits
>
29313 basic_ostream
<_CharT
, _Traits
>::sentry::
29314 sentry(basic_ostream
<_CharT
, _Traits
>& __os
)
29315 : _M_ok(false), _M_os(__os
)
29318 if (__os
.tie() && __os
.good())
29319 __os
.tie()->flush();
29324 __os
.setstate(ios_base::failbit
);
29327 template<typename _CharT
, typename _Traits
>
29328 basic_ostream
<_CharT
, _Traits
>&
29329 basic_ostream
<_CharT
, _Traits
>::
29330 operator<<(__ostream_type
& (*__pf
)(__ostream_type
&))
29335 return __pf(*this);
29338 template<typename _CharT
, typename _Traits
>
29339 basic_ostream
<_CharT
, _Traits
>&
29340 basic_ostream
<_CharT
, _Traits
>::
29341 operator<<(__ios_type
& (*__pf
)(__ios_type
&))
29350 template<typename _CharT
, typename _Traits
>
29351 basic_ostream
<_CharT
, _Traits
>&
29352 basic_ostream
<_CharT
, _Traits
>::
29353 operator<<(ios_base
& (*__pf
)(ios_base
&))
29362 template<typename _CharT
, typename _Traits
>
29363 basic_ostream
<_CharT
, _Traits
>&
29364 basic_ostream
<_CharT
, _Traits
>::
29365 operator<<(bool __n
)
29367 sentry
__cerb(*this);
29370 ios_base::iostate __err
= ios_base::iostate(ios_base::goodbit
);
29373 const __num_put_type
& __np
= __check_facet(this->_M_num_put
);
29374 if (__np
.put(*this, *this, this->fill(), __n
).failed())
29375 __err
|= ios_base::badbit
;
29378 { this->_M_setstate(ios_base::badbit
); }
29380 this->setstate(__err
);
29385 template<typename _CharT
, typename _Traits
>
29386 basic_ostream
<_CharT
, _Traits
>&
29387 basic_ostream
<_CharT
, _Traits
>::
29388 operator<<(short __n
)
29390 sentry
__cerb(*this);
29393 ios_base::iostate __err
= ios_base::iostate(ios_base::goodbit
);
29399 const ios_base::fmtflags __fmt
= (this->flags()
29400 & ios_base::basefield
);
29401 if (__fmt
== ios_base::oct
|| __fmt
== ios_base::hex
)
29402 __l
= static_cast<long>(static_cast<unsigned short>(__n
));
29404 __l
= static_cast<long>(__n
);
29405 const __num_put_type
& __np
= __check_facet(this->_M_num_put
);
29406 if (__np
.put(*this, *this, this->fill(), __l
).failed())
29407 __err
|= ios_base::badbit
;
29410 { this->_M_setstate(ios_base::badbit
); }
29412 this->setstate(__err
);
29417 template<typename _CharT
, typename _Traits
>
29418 basic_ostream
<_CharT
, _Traits
>&
29419 basic_ostream
<_CharT
, _Traits
>::
29420 operator<<(unsigned short __n
)
29422 sentry
__cerb(*this);
29425 ios_base::iostate __err
= ios_base::iostate(ios_base::goodbit
);
29430 const __num_put_type
& __np
= __check_facet(this->_M_num_put
);
29431 if (__np
.put(*this, *this, this->fill(),
29432 static_cast<unsigned long>(__n
)).failed())
29433 __err
|= ios_base::badbit
;
29436 { this->_M_setstate(ios_base::badbit
); }
29438 this->setstate(__err
);
29443 template<typename _CharT
, typename _Traits
>
29444 basic_ostream
<_CharT
, _Traits
>&
29445 basic_ostream
<_CharT
, _Traits
>::
29446 operator<<(int __n
)
29448 sentry
__cerb(*this);
29451 ios_base::iostate __err
= ios_base::iostate(ios_base::goodbit
);
29457 const ios_base::fmtflags __fmt
= (this->flags()
29458 & ios_base::basefield
);
29459 if (__fmt
== ios_base::oct
|| __fmt
== ios_base::hex
)
29460 __l
= static_cast<long>(static_cast<unsigned int>(__n
));
29462 __l
= static_cast<long>(__n
);
29463 const __num_put_type
& __np
= __check_facet(this->_M_num_put
);
29464 if (__np
.put(*this, *this, this->fill(), __l
).failed())
29465 __err
|= ios_base::badbit
;
29468 { this->_M_setstate(ios_base::badbit
); }
29470 this->setstate(__err
);
29475 template<typename _CharT
, typename _Traits
>
29476 basic_ostream
<_CharT
, _Traits
>&
29477 basic_ostream
<_CharT
, _Traits
>::
29478 operator<<(unsigned int __n
)
29480 sentry
__cerb(*this);
29483 ios_base::iostate __err
= ios_base::iostate(ios_base::goodbit
);
29488 const __num_put_type
& __np
= __check_facet(this->_M_num_put
);
29489 if (__np
.put(*this, *this, this->fill(),
29490 static_cast<unsigned long>(__n
)).failed())
29491 __err
|= ios_base::badbit
;
29494 { this->_M_setstate(ios_base::badbit
); }
29496 this->setstate(__err
);
29501 template<typename _CharT
, typename _Traits
>
29502 basic_ostream
<_CharT
, _Traits
>&
29503 basic_ostream
<_CharT
, _Traits
>::
29504 operator<<(long __n
)
29506 sentry
__cerb(*this);
29509 ios_base::iostate __err
= ios_base::iostate(ios_base::goodbit
);
29512 const __num_put_type
& __np
= __check_facet(this->_M_num_put
);
29513 if (__np
.put(*this, *this, this->fill(), __n
).failed())
29514 __err
|= ios_base::badbit
;
29517 { this->_M_setstate(ios_base::badbit
); }
29519 this->setstate(__err
);
29524 template<typename _CharT
, typename _Traits
>
29525 basic_ostream
<_CharT
, _Traits
>&
29526 basic_ostream
<_CharT
, _Traits
>::
29527 operator<<(unsigned long __n
)
29529 sentry
__cerb(*this);
29532 ios_base::iostate __err
= ios_base::iostate(ios_base::goodbit
);
29535 const __num_put_type
& __np
= __check_facet(this->_M_num_put
);
29536 if (__np
.put(*this, *this, this->fill(), __n
).failed())
29537 __err
|= ios_base::badbit
;
29540 { this->_M_setstate(ios_base::badbit
); }
29542 this->setstate(__err
);
29548 template<typename _CharT
, typename _Traits
>
29549 basic_ostream
<_CharT
, _Traits
>&
29550 basic_ostream
<_CharT
, _Traits
>::
29551 operator<<(long long __n
)
29553 sentry
__cerb(*this);
29556 ios_base::iostate __err
= ios_base::iostate(ios_base::goodbit
);
29559 const __num_put_type
& __np
= __check_facet(this->_M_num_put
);
29560 if (__np
.put(*this, *this, this->fill(), __n
).failed())
29561 __err
|= ios_base::badbit
;
29564 { this->_M_setstate(ios_base::badbit
); }
29566 this->setstate(__err
);
29571 template<typename _CharT
, typename _Traits
>
29572 basic_ostream
<_CharT
, _Traits
>&
29573 basic_ostream
<_CharT
, _Traits
>::
29574 operator<<(unsigned long long __n
)
29576 sentry
__cerb(*this);
29579 ios_base::iostate __err
= ios_base::iostate(ios_base::goodbit
);
29582 const __num_put_type
& __np
= __check_facet(this->_M_num_put
);
29583 if (__np
.put(*this, *this, this->fill(), __n
).failed())
29584 __err
|= ios_base::badbit
;
29587 { this->_M_setstate(ios_base::badbit
); }
29589 this->setstate(__err
);
29595 template<typename _CharT
, typename _Traits
>
29596 basic_ostream
<_CharT
, _Traits
>&
29597 basic_ostream
<_CharT
, _Traits
>::
29598 operator<<(float __n
)
29600 sentry
__cerb(*this);
29603 ios_base::iostate __err
= ios_base::iostate(ios_base::goodbit
);
29608 const __num_put_type
& __np
= __check_facet(this->_M_num_put
);
29609 if (__np
.put(*this, *this, this->fill(),
29610 static_cast<double>(__n
)).failed())
29611 __err
|= ios_base::badbit
;
29614 { this->_M_setstate(ios_base::badbit
); }
29616 this->setstate(__err
);
29621 template<typename _CharT
, typename _Traits
>
29622 basic_ostream
<_CharT
, _Traits
>&
29623 basic_ostream
<_CharT
, _Traits
>::
29624 operator<<(double __n
)
29626 sentry
__cerb(*this);
29629 ios_base::iostate __err
= ios_base::iostate(ios_base::goodbit
);
29632 const __num_put_type
& __np
= __check_facet(this->_M_num_put
);
29633 if (__np
.put(*this, *this, this->fill(), __n
).failed())
29634 __err
|= ios_base::badbit
;
29637 { this->_M_setstate(ios_base::badbit
); }
29639 this->setstate(__err
);
29644 template<typename _CharT
, typename _Traits
>
29645 basic_ostream
<_CharT
, _Traits
>&
29646 basic_ostream
<_CharT
, _Traits
>::
29647 operator<<(long double __n
)
29649 sentry
__cerb(*this);
29652 ios_base::iostate __err
= ios_base::iostate(ios_base::goodbit
);
29655 const __num_put_type
& __np
= __check_facet(this->_M_num_put
);
29656 if (__np
.put(*this, *this, this->fill(), __n
).failed())
29657 __err
|= ios_base::badbit
;
29660 { this->_M_setstate(ios_base::badbit
); }
29662 this->setstate(__err
);
29667 template<typename _CharT
, typename _Traits
>
29668 basic_ostream
<_CharT
, _Traits
>&
29669 basic_ostream
<_CharT
, _Traits
>::
29670 operator<<(const void* __n
)
29672 sentry
__cerb(*this);
29675 ios_base::iostate __err
= ios_base::iostate(ios_base::goodbit
);
29678 const __num_put_type
& __np
= __check_facet(this->_M_num_put
);
29679 if (__np
.put(*this, *this, this->fill(), __n
).failed())
29680 __err
|= ios_base::badbit
;
29683 { this->_M_setstate(ios_base::badbit
); }
29685 this->setstate(__err
);
29690 template<typename _CharT
, typename _Traits
>
29691 basic_ostream
<_CharT
, _Traits
>&
29692 basic_ostream
<_CharT
, _Traits
>::
29693 operator<<(__streambuf_type
* __sbin
)
29695 ios_base::iostate __err
= ios_base::iostate(ios_base::goodbit
);
29696 sentry
__cerb(*this);
29697 if (__cerb
&& __sbin
)
29701 if (!__copy_streambufs(__sbin
, this->rdbuf()))
29702 __err
|= ios_base::failbit
;
29705 { this->_M_setstate(ios_base::failbit
); }
29708 __err
|= ios_base::badbit
;
29710 this->setstate(__err
);
29714 template<typename _CharT
, typename _Traits
>
29715 basic_ostream
<_CharT
, _Traits
>&
29716 basic_ostream
<_CharT
, _Traits
>::
29725 sentry
__cerb(*this);
29728 ios_base::iostate __err
= ios_base::iostate(ios_base::goodbit
);
29731 const int_type __put
= this->rdbuf()->sputc(__c
);
29732 if (traits_type::eq_int_type(__put
, traits_type::eof()))
29733 __err
|= ios_base::badbit
;
29736 { this->_M_setstate(ios_base::badbit
); }
29738 this->setstate(__err
);
29743 template<typename _CharT
, typename _Traits
>
29744 basic_ostream
<_CharT
, _Traits
>&
29745 basic_ostream
<_CharT
, _Traits
>::
29746 write(const _CharT
* __s
, streamsize __n
)
29755 sentry
__cerb(*this);
29759 { _M_write(__s
, __n
); }
29761 { this->_M_setstate(ios_base::badbit
); }
29766 template<typename _CharT
, typename _Traits
>
29767 basic_ostream
<_CharT
, _Traits
>&
29768 basic_ostream
<_CharT
, _Traits
>::
29774 ios_base::iostate __err
= ios_base::iostate(ios_base::goodbit
);
29777 if (this->rdbuf() && this->rdbuf()->pubsync() == -1)
29778 __err
|= ios_base::badbit
;
29781 { this->_M_setstate(ios_base::badbit
); }
29783 this->setstate(__err
);
29787 template<typename _CharT
, typename _Traits
>
29788 typename basic_ostream
<_CharT
, _Traits
>::pos_type
29789 basic_ostream
<_CharT
, _Traits
>::
29792 pos_type __ret
= pos_type(-1);
29796 __ret
= this->rdbuf()->pubseekoff(0, ios_base::cur
, ios_base::out
);
29799 { this->_M_setstate(ios_base::badbit
); }
29803 template<typename _CharT
, typename _Traits
>
29804 basic_ostream
<_CharT
, _Traits
>&
29805 basic_ostream
<_CharT
, _Traits
>::
29806 seekp(pos_type __pos
)
29808 ios_base::iostate __err
= ios_base::iostate(ios_base::goodbit
);
29815 const pos_type __p
= this->rdbuf()->pubseekpos(__pos
,
29819 if (__p
== pos_type(off_type(-1)))
29820 __err
|= ios_base::failbit
;
29824 { this->_M_setstate(ios_base::badbit
); }
29826 this->setstate(__err
);
29830 template<typename _CharT
, typename _Traits
>
29831 basic_ostream
<_CharT
, _Traits
>&
29832 basic_ostream
<_CharT
, _Traits
>::
29833 seekp(off_type __off
, ios_base::seekdir __dir
)
29835 ios_base::iostate __err
= ios_base::iostate(ios_base::goodbit
);
29842 const pos_type __p
= this->rdbuf()->pubseekoff(__off
, __dir
,
29846 if (__p
== pos_type(off_type(-1)))
29847 __err
|= ios_base::failbit
;
29851 { this->_M_setstate(ios_base::badbit
); }
29853 this->setstate(__err
);
29858 template<typename _CharT
, typename _Traits
>
29859 basic_ostream
<_CharT
, _Traits
>&
29860 operator<<(basic_ostream
<_CharT
, _Traits
>& __out
, _CharT __c
)
29862 typedef basic_ostream
<_CharT
, _Traits
> __ostream_type
;
29863 typename
__ostream_type::sentry
__cerb(__out
);
29868 const streamsize __w
= __out
.width();
29869 streamsize __len
= 1;
29870 _CharT
* __cs
= &__c
;
29873 __cs
= static_cast<_CharT
*>(__builtin_alloca(sizeof(_CharT
)
29875 __pad
<_CharT
, _Traits
>::_S_pad(__out
, __out
.fill(), __cs
,
29876 &__c
, __w
, __len
, false);
29879 __out
._M_write(__cs
, __len
);
29883 { __out
._M_setstate(ios_base::badbit
); }
29889 template <class _Traits
>
29890 basic_ostream
<char, _Traits
>&
29891 operator<<(basic_ostream
<char, _Traits
>& __out
, char __c
)
29893 typedef basic_ostream
<char, _Traits
> __ostream_type
;
29894 typename
__ostream_type::sentry
__cerb(__out
);
29899 const streamsize __w
= __out
.width();
29900 streamsize __len
= 1;
29904 __cs
= static_cast<char*>(__builtin_alloca(__w
));
29905 __pad
<char, _Traits
>::_S_pad(__out
, __out
.fill(), __cs
,
29906 &__c
, __w
, __len
, false);
29909 __out
._M_write(__cs
, __len
);
29913 { __out
._M_setstate(ios_base::badbit
); }
29918 template<typename _CharT
, typename _Traits
>
29919 basic_ostream
<_CharT
, _Traits
>&
29920 operator<<(basic_ostream
<_CharT
, _Traits
>& __out
, const _CharT
* __s
)
29922 typedef basic_ostream
<_CharT
, _Traits
> __ostream_type
;
29923 typename
__ostream_type::sentry
__cerb(__out
);
29928 const streamsize __w
= __out
.width();
29929 streamsize __len
= static_cast<streamsize
>(_Traits::length(__s
));
29932 _CharT
* __cs
= (static_cast<
29933 _CharT
*>(__builtin_alloca(sizeof(_CharT
)
29935 __pad
<_CharT
, _Traits
>::_S_pad(__out
, __out
.fill(), __cs
,
29936 __s
, __w
, __len
, false);
29940 __out
._M_write(__s
, __len
);
29944 { __out
._M_setstate(ios_base::badbit
); }
29947 __out
.setstate(ios_base::badbit
);
29951 template<typename _CharT
, typename _Traits
>
29952 basic_ostream
<_CharT
, _Traits
>&
29953 operator<<(basic_ostream
<_CharT
, _Traits
>& __out
, const char* __s
)
29955 typedef basic_ostream
<_CharT
, _Traits
> __ostream_type
;
29959 typedef char_traits
<char> __traits_type
;
29960 typename
__ostream_type::sentry
__cerb(__out
);
29963 size_t __clen
= __traits_type::length(__s
);
29964 _CharT
* __ws
= static_cast<_CharT
*>(__builtin_alloca(sizeof(_CharT
)
29966 for (size_t __i
= 0; __i
< __clen
; ++__i
)
29967 __ws
[__i
] = __out
.widen(__s
[__i
]);
29968 _CharT
* __str
= __ws
;
29972 const streamsize __w
= __out
.width();
29973 streamsize __len
= static_cast<streamsize
>(__clen
);
29976 _CharT
* __cs
= (static_cast<
29977 _CharT
*>(__builtin_alloca(sizeof(_CharT
)
29979 __pad
<_CharT
, _Traits
>::_S_pad(__out
, __out
.fill(), __cs
,
29980 __ws
, __w
, __len
, false);
29984 __out
._M_write(__str
, __len
);
29988 { __out
._M_setstate(ios_base::badbit
); }
29991 __out
.setstate(ios_base::badbit
);
29996 template<class _Traits
>
29997 basic_ostream
<char, _Traits
>&
29998 operator<<(basic_ostream
<char, _Traits
>& __out
, const char* __s
)
30000 typedef basic_ostream
<char, _Traits
> __ostream_type
;
30001 typename
__ostream_type::sentry
__cerb(__out
);
30006 const streamsize __w
= __out
.width();
30007 streamsize __len
= static_cast<streamsize
>(_Traits::length(__s
));
30010 char* __cs
= static_cast<char*>(__builtin_alloca(__w
));
30011 __pad
<char, _Traits
>::_S_pad(__out
, __out
.fill(), __cs
,
30012 __s
, __w
, __len
, false);
30016 __out
._M_write(__s
, __len
);
30020 { __out
._M_setstate(ios_base::badbit
); }
30023 __out
.setstate(ios_base::badbit
);
30028 template<typename _CharT
, typename _Traits
, typename _Alloc
>
30029 basic_ostream
<_CharT
, _Traits
>&
30030 operator<<(basic_ostream
<_CharT
, _Traits
>& __out
,
30031 const basic_string
<_CharT
, _Traits
, _Alloc
>& __str
)
30033 typedef basic_ostream
<_CharT
, _Traits
> __ostream_type
;
30034 typename
__ostream_type::sentry
__cerb(__out
);
30037 const streamsize __w
= __out
.width();
30038 streamsize __len
= static_cast<streamsize
>(__str
.size());
30039 const _CharT
* __s
= __str
.data();
30045 _CharT
* __cs
= (static_cast<
30046 _CharT
*>(__builtin_alloca(sizeof(_CharT
) * __w
)));
30047 __pad
<_CharT
, _Traits
>::_S_pad(__out
, __out
.fill(), __cs
, __s
,
30048 __w
, __len
, false);
30052 __out
._M_write(__s
, __len
);
30062 extern template class basic_ostream
<char>;
30063 extern template ostream
& endl(ostream
&);
30064 extern template ostream
& ends(ostream
&);
30065 extern template ostream
& flush(ostream
&);
30066 extern template ostream
& operator<<(ostream
&, char);
30067 extern template ostream
& operator<<(ostream
&, unsigned char);
30068 extern template ostream
& operator<<(ostream
&, signed char);
30069 extern template ostream
& operator<<(ostream
&, const char*);
30070 extern template ostream
& operator<<(ostream
&, const unsigned char*);
30071 extern template ostream
& operator<<(ostream
&, const signed char*);
30074 extern template class basic_ostream
<wchar_t>;
30075 extern template wostream
& endl(wostream
&);
30076 extern template wostream
& ends(wostream
&);
30077 extern template wostream
& flush(wostream
&);
30078 extern template wostream
& operator<<(wostream
&, wchar_t);
30079 extern template wostream
& operator<<(wostream
&, char);
30080 extern template wostream
& operator<<(wostream
&, const wchar_t*);
30081 extern template wostream
& operator<<(wostream
&, const char*);
30085 # 527 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/ostream" 2 3
30088 #pragma GCC visibility pop
30089 # 72 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/iterator" 2 3
30090 # 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/istream" 1 3
30091 # 42 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/istream" 3
30093 # 43 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/istream" 3
30094 #pragma GCC visibility push(default)
30101 # 58 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/istream" 3
30102 template<typename _CharT
, typename _Traits
>
30103 class basic_istream
: virtual public basic_ios
<_CharT
, _Traits
>
30107 typedef _CharT char_type
;
30108 typedef typename
_Traits::int_type int_type
;
30109 typedef typename
_Traits::pos_type pos_type
;
30110 typedef typename
_Traits::off_type off_type
;
30111 typedef _Traits traits_type
;
30114 typedef basic_streambuf
<_CharT
, _Traits
> __streambuf_type
;
30115 typedef basic_ios
<_CharT
, _Traits
> __ios_type
;
30116 typedef basic_istream
<_CharT
, _Traits
> __istream_type
;
30117 typedef num_get
<_CharT
, istreambuf_iterator
<_CharT
, _Traits
> >
30119 typedef ctype
<_CharT
> __ctype_type
;
30121 template<typename _CharT2
, typename _Traits2
>
30122 friend basic_istream
<_CharT2
, _Traits2
>&
30123 operator>>(basic_istream
<_CharT2
, _Traits2
>&, _CharT2
&);
30125 template<typename _CharT2
, typename _Traits2
>
30126 friend basic_istream
<_CharT2
, _Traits2
>&
30127 operator>>(basic_istream
<_CharT2
, _Traits2
>&, _CharT2
*);
30137 streamsize _M_gcount
;
30140 # 104 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/istream" 3
30142 basic_istream(__streambuf_type
* __sb
): _M_gcount(streamsize(0))
30143 { this->init(__sb
); }
30152 { _M_gcount
= streamsize(0); }
30156 friend class sentry
;
30157 # 131 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/istream" 3
30158 inline __istream_type
&
30159 operator>>(__istream_type
& (*__pf
)(__istream_type
&));
30161 inline __istream_type
&
30162 operator>>(__ios_type
& (*__pf
)(__ios_type
&));
30164 inline __istream_type
&
30165 operator>>(ios_base
& (*__pf
)(ios_base
&));
30166 # 169 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/istream" 3
30168 operator>>(bool& __n
);
30171 operator>>(short& __n
);
30174 operator>>(unsigned short& __n
);
30177 operator>>(int& __n
);
30180 operator>>(unsigned int& __n
);
30183 operator>>(long& __n
);
30186 operator>>(unsigned long& __n
);
30190 operator>>(long long& __n
);
30193 operator>>(unsigned long long& __n
);
30197 operator>>(float& __f
);
30200 operator>>(double& __f
);
30203 operator>>(long double& __f
);
30206 operator>>(void*& __p
);
30207 # 230 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/istream" 3
30209 operator>>(__streambuf_type
* __sb
);
30210 # 240 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/istream" 3
30213 { return _M_gcount
; }
30214 # 272 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/istream" 3
30217 # 286 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/istream" 3
30219 get(char_type
& __c
);
30220 # 313 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/istream" 3
30222 get(char_type
* __s
, streamsize __n
, char_type __delim
);
30223 # 324 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/istream" 3
30224 inline __istream_type
&
30225 get(char_type
* __s
, streamsize __n
)
30226 { return this->get(__s
, __n
, this->widen('\n')); }
30227 # 347 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/istream" 3
30229 get(__streambuf_type
& __sb
, char_type __delim
);
30230 # 357 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/istream" 3
30231 inline __istream_type
&
30232 get(__streambuf_type
& __sb
)
30233 { return this->get(__sb
, this->widen('\n')); }
30234 # 386 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/istream" 3
30236 getline(char_type
* __s
, streamsize __n
, char_type __delim
);
30237 # 397 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/istream" 3
30238 inline __istream_type
&
30239 getline(char_type
* __s
, streamsize __n
)
30240 { return this->getline(__s
, __n
, this->widen('\n')); }
30241 # 421 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/istream" 3
30246 ignore(streamsize __n
);
30249 ignore(streamsize __n
, int_type __delim
);
30250 # 438 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/istream" 3
30253 # 456 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/istream" 3
30255 read(char_type
* __s
, streamsize __n
);
30256 # 475 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/istream" 3
30258 readsome(char_type
* __s
, streamsize __n
);
30259 # 491 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/istream" 3
30261 putback(char_type __c
);
30262 # 506 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/istream" 3
30265 # 524 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/istream" 3
30268 # 538 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/istream" 3
30271 # 553 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/istream" 3
30274 # 569 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/istream" 3
30276 seekg(off_type
, ios_base::seekdir
);
30281 basic_istream(): _M_gcount(streamsize(0)) { }
30286 basic_istream
<char>&
30287 basic_istream
<char>::
30288 getline(char_type
* __s
, streamsize __n
, char_type __delim
);
30291 basic_istream
<char>&
30292 basic_istream
<char>::
30293 ignore(streamsize __n
);
30296 basic_istream
<char>&
30297 basic_istream
<char>::
30298 ignore(streamsize __n
, int_type __delim
);
30302 basic_istream
<wchar_t>&
30303 basic_istream
<wchar_t>::
30304 getline(char_type
* __s
, streamsize __n
, char_type __delim
);
30307 basic_istream
<wchar_t>&
30308 basic_istream
<wchar_t>::
30309 ignore(streamsize __n
);
30312 basic_istream
<wchar_t>&
30313 basic_istream
<wchar_t>::
30314 ignore(streamsize __n
, int_type __delim
);
30315 # 622 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/istream" 3
30316 template<typename _CharT
, typename _Traits
>
30317 class basic_istream
<_CharT
, _Traits
>::sentry
30321 typedef _Traits traits_type
;
30322 typedef basic_streambuf
<_CharT
, _Traits
> __streambuf_type
;
30323 typedef basic_istream
<_CharT
, _Traits
> __istream_type
;
30324 typedef typename
__istream_type::__ctype_type __ctype_type
;
30325 typedef typename
_Traits::int_type __int_type
;
30326 # 654 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/istream" 3
30328 sentry(basic_istream
<_CharT
, _Traits
>& __is
, bool __noskipws
= false);
30329 # 664 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/istream" 3
30330 operator bool() const { return _M_ok
; }
30335 # 683 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/istream" 3
30336 template<typename _CharT
, typename _Traits
>
30337 basic_istream
<_CharT
, _Traits
>&
30338 operator>>(basic_istream
<_CharT
, _Traits
>& __in
, _CharT
& __c
);
30340 template<class _Traits
>
30341 basic_istream
<char, _Traits
>&
30342 operator>>(basic_istream
<char, _Traits
>& __in
, unsigned char& __c
)
30343 { return (__in
>> reinterpret_cast<char&>(__c
)); }
30345 template<class _Traits
>
30346 basic_istream
<char, _Traits
>&
30347 operator>>(basic_istream
<char, _Traits
>& __in
, signed char& __c
)
30348 { return (__in
>> reinterpret_cast<char&>(__c
)); }
30349 # 724 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/istream" 3
30350 template<typename _CharT
, typename _Traits
>
30351 basic_istream
<_CharT
, _Traits
>&
30352 operator>>(basic_istream
<_CharT
, _Traits
>& __in
, _CharT
* __s
);
30356 basic_istream
<char>&
30357 operator>>(basic_istream
<char>& __in
, char* __s
);
30359 template<class _Traits
>
30360 basic_istream
<char, _Traits
>&
30361 operator>>(basic_istream
<char, _Traits
>& __in
, unsigned char* __s
)
30362 { return (__in
>> reinterpret_cast<char*>(__s
)); }
30364 template<class _Traits
>
30365 basic_istream
<char, _Traits
>&
30366 operator>>(basic_istream
<char, _Traits
>& __in
, signed char* __s
)
30367 { return (__in
>> reinterpret_cast<char*>(__s
)); }
30368 # 751 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/istream" 3
30369 template<typename _CharT
, typename _Traits
>
30370 class basic_iostream
30371 : public basic_istream
<_CharT
, _Traits
>,
30372 public basic_ostream
<_CharT
, _Traits
>
30378 typedef _CharT char_type
;
30379 typedef typename
_Traits::int_type int_type
;
30380 typedef typename
_Traits::pos_type pos_type
;
30381 typedef typename
_Traits::off_type off_type
;
30382 typedef _Traits traits_type
;
30385 typedef basic_istream
<_CharT
, _Traits
> __istream_type
;
30386 typedef basic_ostream
<_CharT
, _Traits
> __ostream_type
;
30395 basic_iostream(basic_streambuf
<_CharT
, _Traits
>* __sb
)
30396 : __istream_type(), __ostream_type()
30397 { this->init(__sb
); }
30403 ~basic_iostream() { }
30407 basic_iostream() : __istream_type(), __ostream_type()
30410 # 814 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/istream" 3
30411 template<typename _CharT
, typename _Traits
>
30412 basic_istream
<_CharT
, _Traits
>&
30413 ws(basic_istream
<_CharT
, _Traits
>& __is
);
30417 # 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/istream.tcc" 1 3
30418 # 43 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/istream.tcc" 3
30420 # 44 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/istream.tcc" 3
30427 template<typename _CharT
, typename _Traits
>
30428 basic_istream
<_CharT
, _Traits
>::sentry::
30429 sentry(basic_istream
<_CharT
, _Traits
>& __in
, bool __noskip
) : _M_ok(false)
30431 ios_base::iostate __err
= ios_base::iostate(ios_base::goodbit
);
30435 __in
.tie()->flush();
30436 if (!__noskip
&& (__in
.flags() & ios_base::skipws
))
30438 const __int_type __eof
= traits_type::eof();
30439 __streambuf_type
* __sb
= __in
.rdbuf();
30440 __int_type __c
= __sb
->sgetc();
30442 const __ctype_type
& __ct
= __check_facet(__in
._M_ctype
);
30443 while (!traits_type::eq_int_type(__c
, __eof
)
30444 && __ct
.is(ctype_base::space
,
30445 traits_type::to_char_type(__c
)))
30446 __c
= __sb
->snextc();
30451 if (traits_type::eq_int_type(__c
, __eof
))
30452 __err
|= ios_base::eofbit
;
30456 if (__in
.good() && __err
== ios_base::goodbit
)
30460 __err
|= ios_base::failbit
;
30461 __in
.setstate(__err
);
30465 template<typename _CharT
, typename _Traits
>
30466 basic_istream
<_CharT
, _Traits
>&
30467 basic_istream
<_CharT
, _Traits
>::
30468 operator>>(__istream_type
& (*__pf
)(__istream_type
&))
30469 { return __pf(*this); }
30471 template<typename _CharT
, typename _Traits
>
30472 basic_istream
<_CharT
, _Traits
>&
30473 basic_istream
<_CharT
, _Traits
>::
30474 operator>>(__ios_type
& (*__pf
)(__ios_type
&))
30480 template<typename _CharT
, typename _Traits
>
30481 basic_istream
<_CharT
, _Traits
>&
30482 basic_istream
<_CharT
, _Traits
>::
30483 operator>>(ios_base
& (*__pf
)(ios_base
&))
30489 template<typename _CharT
, typename _Traits
>
30490 basic_istream
<_CharT
, _Traits
>&
30491 basic_istream
<_CharT
, _Traits
>::
30492 operator>>(bool& __n
)
30494 sentry
__cerb(*this, false);
30497 ios_base::iostate __err
= ios_base::iostate(ios_base::goodbit
);
30500 const __num_get_type
& __ng
= __check_facet(this->_M_num_get
);
30501 __ng
.get(*this, 0, *this, __err
, __n
);
30504 { this->_M_setstate(ios_base::badbit
); }
30506 this->setstate(__err
);
30511 template<typename _CharT
, typename _Traits
>
30512 basic_istream
<_CharT
, _Traits
>&
30513 basic_istream
<_CharT
, _Traits
>::
30514 operator>>(short& __n
)
30516 sentry
__cerb(*this, false);
30519 ios_base::iostate __err
= ios_base::iostate(ios_base::goodbit
);
30523 const __num_get_type
& __ng
= __check_facet(this->_M_num_get
);
30524 __ng
.get(*this, 0, *this, __err
, __l
);
30527 if (!(__err
& ios_base::failbit
)
30528 && (numeric_limits
<short>::min() <= __l
30529 && __l
<= numeric_limits
<short>::max()))
30532 __err
|= ios_base::failbit
;
30535 { this->_M_setstate(ios_base::badbit
); }
30537 this->setstate(__err
);
30542 template<typename _CharT
, typename _Traits
>
30543 basic_istream
<_CharT
, _Traits
>&
30544 basic_istream
<_CharT
, _Traits
>::
30545 operator>>(unsigned short& __n
)
30547 sentry
__cerb(*this, false);
30550 ios_base::iostate __err
= ios_base::iostate(ios_base::goodbit
);
30553 const __num_get_type
& __ng
= __check_facet(this->_M_num_get
);
30554 __ng
.get(*this, 0, *this, __err
, __n
);
30557 { this->_M_setstate(ios_base::badbit
); }
30559 this->setstate(__err
);
30564 template<typename _CharT
, typename _Traits
>
30565 basic_istream
<_CharT
, _Traits
>&
30566 basic_istream
<_CharT
, _Traits
>::
30567 operator>>(int& __n
)
30569 sentry
__cerb(*this, false);
30572 ios_base::iostate __err
= ios_base::iostate(ios_base::goodbit
);
30576 const __num_get_type
& __ng
= __check_facet(this->_M_num_get
);
30577 __ng
.get(*this, 0, *this, __err
, __l
);
30580 if (!(__err
& ios_base::failbit
)
30581 && (numeric_limits
<int>::min() <= __l
30582 && __l
<= numeric_limits
<int>::max()))
30585 __err
|= ios_base::failbit
;
30588 { this->_M_setstate(ios_base::badbit
); }
30590 this->setstate(__err
);
30595 template<typename _CharT
, typename _Traits
>
30596 basic_istream
<_CharT
, _Traits
>&
30597 basic_istream
<_CharT
, _Traits
>::
30598 operator>>(unsigned int& __n
)
30600 sentry
__cerb(*this, false);
30603 ios_base::iostate __err
= ios_base::iostate(ios_base::goodbit
);
30606 const __num_get_type
& __ng
= __check_facet(this->_M_num_get
);
30607 __ng
.get(*this, 0, *this, __err
, __n
);
30610 { this->_M_setstate(ios_base::badbit
); }
30612 this->setstate(__err
);
30617 template<typename _CharT
, typename _Traits
>
30618 basic_istream
<_CharT
, _Traits
>&
30619 basic_istream
<_CharT
, _Traits
>::
30620 operator>>(long& __n
)
30622 sentry
__cerb(*this, false);
30625 ios_base::iostate __err
= ios_base::iostate(ios_base::goodbit
);
30628 const __num_get_type
& __ng
= __check_facet(this->_M_num_get
);
30629 __ng
.get(*this, 0, *this, __err
, __n
);
30632 { this->_M_setstate(ios_base::badbit
); }
30634 this->setstate(__err
);
30639 template<typename _CharT
, typename _Traits
>
30640 basic_istream
<_CharT
, _Traits
>&
30641 basic_istream
<_CharT
, _Traits
>::
30642 operator>>(unsigned long& __n
)
30644 sentry
__cerb(*this, false);
30647 ios_base::iostate __err
= ios_base::iostate(ios_base::goodbit
);
30650 const __num_get_type
& __ng
= __check_facet(this->_M_num_get
);
30651 __ng
.get(*this, 0, *this, __err
, __n
);
30654 { this->_M_setstate(ios_base::badbit
); }
30656 this->setstate(__err
);
30662 template<typename _CharT
, typename _Traits
>
30663 basic_istream
<_CharT
, _Traits
>&
30664 basic_istream
<_CharT
, _Traits
>::
30665 operator>>(long long& __n
)
30667 sentry
__cerb(*this, false);
30670 ios_base::iostate __err
= ios_base::iostate(ios_base::goodbit
);
30673 const __num_get_type
& __ng
= __check_facet(this->_M_num_get
);
30674 __ng
.get(*this, 0, *this, __err
, __n
);
30677 { this->_M_setstate(ios_base::badbit
); }
30679 this->setstate(__err
);
30684 template<typename _CharT
, typename _Traits
>
30685 basic_istream
<_CharT
, _Traits
>&
30686 basic_istream
<_CharT
, _Traits
>::
30687 operator>>(unsigned long long& __n
)
30689 sentry
__cerb(*this, false);
30692 ios_base::iostate __err
= ios_base::iostate(ios_base::goodbit
);
30695 const __num_get_type
& __ng
= __check_facet(this->_M_num_get
);
30696 __ng
.get(*this, 0, *this, __err
, __n
);
30699 { this->_M_setstate(ios_base::badbit
); }
30701 this->setstate(__err
);
30707 template<typename _CharT
, typename _Traits
>
30708 basic_istream
<_CharT
, _Traits
>&
30709 basic_istream
<_CharT
, _Traits
>::
30710 operator>>(float& __n
)
30712 sentry
__cerb(*this, false);
30715 ios_base::iostate __err
= ios_base::iostate(ios_base::goodbit
);
30718 const __num_get_type
& __ng
= __check_facet(this->_M_num_get
);
30719 __ng
.get(*this, 0, *this, __err
, __n
);
30722 { this->_M_setstate(ios_base::badbit
); }
30724 this->setstate(__err
);
30729 template<typename _CharT
, typename _Traits
>
30730 basic_istream
<_CharT
, _Traits
>&
30731 basic_istream
<_CharT
, _Traits
>::
30732 operator>>(double& __n
)
30734 sentry
__cerb(*this, false);
30737 ios_base::iostate __err
= ios_base::iostate(ios_base::goodbit
);
30740 const __num_get_type
& __ng
= __check_facet(this->_M_num_get
);
30741 __ng
.get(*this, 0, *this, __err
, __n
);
30744 { this->_M_setstate(ios_base::badbit
); }
30746 this->setstate(__err
);
30751 template<typename _CharT
, typename _Traits
>
30752 basic_istream
<_CharT
, _Traits
>&
30753 basic_istream
<_CharT
, _Traits
>::
30754 operator>>(long double& __n
)
30756 sentry
__cerb(*this, false);
30759 ios_base::iostate __err
= ios_base::iostate(ios_base::goodbit
);
30762 const __num_get_type
& __ng
= __check_facet(this->_M_num_get
);
30763 __ng
.get(*this, 0, *this, __err
, __n
);
30766 { this->_M_setstate(ios_base::badbit
); }
30768 this->setstate(__err
);
30773 template<typename _CharT
, typename _Traits
>
30774 basic_istream
<_CharT
, _Traits
>&
30775 basic_istream
<_CharT
, _Traits
>::
30776 operator>>(void*& __n
)
30778 sentry
__cerb(*this, false);
30781 ios_base::iostate __err
= ios_base::iostate(ios_base::goodbit
);
30784 const __num_get_type
& __ng
= __check_facet(this->_M_num_get
);
30785 __ng
.get(*this, 0, *this, __err
, __n
);
30788 { this->_M_setstate(ios_base::badbit
); }
30790 this->setstate(__err
);
30795 template<typename _CharT
, typename _Traits
>
30796 basic_istream
<_CharT
, _Traits
>&
30797 basic_istream
<_CharT
, _Traits
>::
30798 operator>>(__streambuf_type
* __sbout
)
30800 ios_base::iostate __err
= ios_base::iostate(ios_base::goodbit
);
30801 sentry
__cerb(*this, false);
30802 if (__cerb
&& __sbout
)
30806 if (!__copy_streambufs(this->rdbuf(), __sbout
))
30807 __err
|= ios_base::failbit
;
30810 { this->_M_setstate(ios_base::failbit
); }
30813 __err
|= ios_base::failbit
;
30815 this->setstate(__err
);
30819 template<typename _CharT
, typename _Traits
>
30820 typename basic_istream
<_CharT
, _Traits
>::int_type
30821 basic_istream
<_CharT
, _Traits
>::
30824 const int_type __eof
= traits_type::eof();
30825 int_type __c
= __eof
;
30827 ios_base::iostate __err
= ios_base::iostate(ios_base::goodbit
);
30828 sentry
__cerb(*this, true);
30833 __c
= this->rdbuf()->sbumpc();
30835 if (!traits_type::eq_int_type(__c
, __eof
))
30838 __err
|= ios_base::eofbit
;
30841 { this->_M_setstate(ios_base::badbit
); }
30844 __err
|= ios_base::failbit
;
30846 this->setstate(__err
);
30850 template<typename _CharT
, typename _Traits
>
30851 basic_istream
<_CharT
, _Traits
>&
30852 basic_istream
<_CharT
, _Traits
>::
30853 get(char_type
& __c
)
30856 ios_base::iostate __err
= ios_base::iostate(ios_base::goodbit
);
30857 sentry
__cerb(*this, true);
30862 const int_type __cb
= this->rdbuf()->sbumpc();
30864 if (!traits_type::eq_int_type(__cb
, traits_type::eof()))
30867 __c
= traits_type::to_char_type(__cb
);
30870 __err
|= ios_base::eofbit
;
30873 { this->_M_setstate(ios_base::badbit
); }
30876 __err
|= ios_base::failbit
;
30878 this->setstate(__err
);
30882 template<typename _CharT
, typename _Traits
>
30883 basic_istream
<_CharT
, _Traits
>&
30884 basic_istream
<_CharT
, _Traits
>::
30885 get(char_type
* __s
, streamsize __n
, char_type __delim
)
30888 ios_base::iostate __err
= ios_base::iostate(ios_base::goodbit
);
30889 sentry
__cerb(*this, true);
30894 const int_type __idelim
= traits_type::to_int_type(__delim
);
30895 const int_type __eof
= traits_type::eof();
30896 __streambuf_type
* __sb
= this->rdbuf();
30897 int_type __c
= __sb
->sgetc();
30899 while (_M_gcount
+ 1 < __n
30900 && !traits_type::eq_int_type(__c
, __eof
)
30901 && !traits_type::eq_int_type(__c
, __idelim
))
30903 *__s
++ = traits_type::to_char_type(__c
);
30905 __c
= __sb
->snextc();
30907 if (traits_type::eq_int_type(__c
, __eof
))
30908 __err
|= ios_base::eofbit
;
30911 { this->_M_setstate(ios_base::badbit
); }
30916 *__s
= char_type();
30918 __err
|= ios_base::failbit
;
30920 this->setstate(__err
);
30924 template<typename _CharT
, typename _Traits
>
30925 basic_istream
<_CharT
, _Traits
>&
30926 basic_istream
<_CharT
, _Traits
>::
30927 get(__streambuf_type
& __sb
, char_type __delim
)
30930 ios_base::iostate __err
= ios_base::iostate(ios_base::goodbit
);
30931 sentry
__cerb(*this, true);
30936 const int_type __idelim
= traits_type::to_int_type(__delim
);
30937 const int_type __eof
= traits_type::eof();
30938 __streambuf_type
* __this_sb
= this->rdbuf();
30939 int_type __c
= __this_sb
->sgetc();
30940 char_type __c2
= traits_type::to_char_type(__c
);
30942 while (!traits_type::eq_int_type(__c
, __eof
)
30943 && !traits_type::eq_int_type(__c
, __idelim
)
30944 && !traits_type::eq_int_type(__sb
.sputc(__c2
), __eof
))
30947 __c
= __this_sb
->snextc();
30948 __c2
= traits_type::to_char_type(__c
);
30950 if (traits_type::eq_int_type(__c
, __eof
))
30951 __err
|= ios_base::eofbit
;
30954 { this->_M_setstate(ios_base::badbit
); }
30957 __err
|= ios_base::failbit
;
30959 this->setstate(__err
);
30963 template<typename _CharT
, typename _Traits
>
30964 basic_istream
<_CharT
, _Traits
>&
30965 basic_istream
<_CharT
, _Traits
>::
30966 getline(char_type
* __s
, streamsize __n
, char_type __delim
)
30969 ios_base::iostate __err
= ios_base::iostate(ios_base::goodbit
);
30970 sentry
__cerb(*this, true);
30975 const int_type __idelim
= traits_type::to_int_type(__delim
);
30976 const int_type __eof
= traits_type::eof();
30977 __streambuf_type
* __sb
= this->rdbuf();
30978 int_type __c
= __sb
->sgetc();
30980 while (_M_gcount
+ 1 < __n
30981 && !traits_type::eq_int_type(__c
, __eof
)
30982 && !traits_type::eq_int_type(__c
, __idelim
))
30984 *__s
++ = traits_type::to_char_type(__c
);
30985 __c
= __sb
->snextc();
30988 if (traits_type::eq_int_type(__c
, __eof
))
30989 __err
|= ios_base::eofbit
;
30992 if (traits_type::eq_int_type(__c
, __idelim
))
30998 __err
|= ios_base::failbit
;
31002 { this->_M_setstate(ios_base::badbit
); }
31007 *__s
= char_type();
31009 __err
|= ios_base::failbit
;
31011 this->setstate(__err
);
31018 template<typename _CharT
, typename _Traits
>
31019 basic_istream
<_CharT
, _Traits
>&
31020 basic_istream
<_CharT
, _Traits
>::
31024 sentry
__cerb(*this, true);
31027 ios_base::iostate __err
= ios_base::iostate(ios_base::goodbit
);
31030 const int_type __eof
= traits_type::eof();
31031 __streambuf_type
* __sb
= this->rdbuf();
31033 if (traits_type::eq_int_type(__sb
->sbumpc(), __eof
))
31034 __err
|= ios_base::eofbit
;
31039 { this->_M_setstate(ios_base::badbit
); }
31041 this->setstate(__err
);
31046 template<typename _CharT
, typename _Traits
>
31047 basic_istream
<_CharT
, _Traits
>&
31048 basic_istream
<_CharT
, _Traits
>::
31049 ignore(streamsize __n
)
31052 sentry
__cerb(*this, true);
31053 if (__cerb
&& __n
> 0)
31055 ios_base::iostate __err
= ios_base::iostate(ios_base::goodbit
);
31058 const int_type __eof
= traits_type::eof();
31059 __streambuf_type
* __sb
= this->rdbuf();
31060 int_type __c
= __sb
->sgetc();
31061 # 692 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/istream.tcc" 3
31062 bool __large_ignore
= false;
31065 while (_M_gcount
< __n
31066 && !traits_type::eq_int_type(__c
, __eof
))
31069 __c
= __sb
->snextc();
31071 if (__n
== numeric_limits
<streamsize
>::max()
31072 && !traits_type::eq_int_type(__c
, __eof
))
31074 _M_gcount
= numeric_limits
<streamsize
>::min();
31075 __large_ignore
= true;
31081 if (__large_ignore
)
31082 _M_gcount
= numeric_limits
<streamsize
>::max();
31084 if (traits_type::eq_int_type(__c
, __eof
))
31085 __err
|= ios_base::eofbit
;
31088 { this->_M_setstate(ios_base::badbit
); }
31090 this->setstate(__err
);
31095 template<typename _CharT
, typename _Traits
>
31096 basic_istream
<_CharT
, _Traits
>&
31097 basic_istream
<_CharT
, _Traits
>::
31098 ignore(streamsize __n
, int_type __delim
)
31101 sentry
__cerb(*this, true);
31102 if (__cerb
&& __n
> 0)
31104 ios_base::iostate __err
= ios_base::iostate(ios_base::goodbit
);
31107 const int_type __eof
= traits_type::eof();
31108 __streambuf_type
* __sb
= this->rdbuf();
31109 int_type __c
= __sb
->sgetc();
31112 bool __large_ignore
= false;
31115 while (_M_gcount
< __n
31116 && !traits_type::eq_int_type(__c
, __eof
)
31117 && !traits_type::eq_int_type(__c
, __delim
))
31120 __c
= __sb
->snextc();
31122 if (__n
== numeric_limits
<streamsize
>::max()
31123 && !traits_type::eq_int_type(__c
, __eof
)
31124 && !traits_type::eq_int_type(__c
, __delim
))
31126 _M_gcount
= numeric_limits
<streamsize
>::min();
31127 __large_ignore
= true;
31133 if (__large_ignore
)
31134 _M_gcount
= numeric_limits
<streamsize
>::max();
31136 if (traits_type::eq_int_type(__c
, __eof
))
31137 __err
|= ios_base::eofbit
;
31138 else if (traits_type::eq_int_type(__c
, __delim
))
31140 if (_M_gcount
< numeric_limits
<streamsize
>::max())
31146 { this->_M_setstate(ios_base::badbit
); }
31148 this->setstate(__err
);
31153 template<typename _CharT
, typename _Traits
>
31154 typename basic_istream
<_CharT
, _Traits
>::int_type
31155 basic_istream
<_CharT
, _Traits
>::
31158 int_type __c
= traits_type::eof();
31160 sentry
__cerb(*this, true);
31163 ios_base::iostate __err
= ios_base::iostate(ios_base::goodbit
);
31166 __c
= this->rdbuf()->sgetc();
31167 if (traits_type::eq_int_type(__c
, traits_type::eof()))
31168 __err
|= ios_base::eofbit
;
31171 { this->_M_setstate(ios_base::badbit
); }
31173 this->setstate(__err
);
31178 template<typename _CharT
, typename _Traits
>
31179 basic_istream
<_CharT
, _Traits
>&
31180 basic_istream
<_CharT
, _Traits
>::
31181 read(char_type
* __s
, streamsize __n
)
31184 sentry
__cerb(*this, true);
31187 ios_base::iostate __err
= ios_base::iostate(ios_base::goodbit
);
31190 _M_gcount
= this->rdbuf()->sgetn(__s
, __n
);
31191 if (_M_gcount
!= __n
)
31192 __err
|= (ios_base::eofbit
| ios_base::failbit
);
31195 { this->_M_setstate(ios_base::badbit
); }
31197 this->setstate(__err
);
31202 template<typename _CharT
, typename _Traits
>
31204 basic_istream
<_CharT
, _Traits
>::
31205 readsome(char_type
* __s
, streamsize __n
)
31208 sentry
__cerb(*this, true);
31211 ios_base::iostate __err
= ios_base::iostate(ios_base::goodbit
);
31215 const streamsize __num
= this->rdbuf()->in_avail();
31217 _M_gcount
= this->rdbuf()->sgetn(__s
, std::min(__num
, __n
));
31218 else if (__num
== -1)
31219 __err
|= ios_base::eofbit
;
31222 { this->_M_setstate(ios_base::badbit
); }
31224 this->setstate(__err
);
31229 template<typename _CharT
, typename _Traits
>
31230 basic_istream
<_CharT
, _Traits
>&
31231 basic_istream
<_CharT
, _Traits
>::
31232 putback(char_type __c
)
31237 sentry
__cerb(*this, true);
31240 ios_base::iostate __err
= ios_base::iostate(ios_base::goodbit
);
31243 const int_type __eof
= traits_type::eof();
31244 __streambuf_type
* __sb
= this->rdbuf();
31246 || traits_type::eq_int_type(__sb
->sputbackc(__c
), __eof
))
31247 __err
|= ios_base::badbit
;
31250 { this->_M_setstate(ios_base::badbit
); }
31252 this->setstate(__err
);
31257 template<typename _CharT
, typename _Traits
>
31258 basic_istream
<_CharT
, _Traits
>&
31259 basic_istream
<_CharT
, _Traits
>::
31265 sentry
__cerb(*this, true);
31268 ios_base::iostate __err
= ios_base::iostate(ios_base::goodbit
);
31271 const int_type __eof
= traits_type::eof();
31272 __streambuf_type
* __sb
= this->rdbuf();
31274 || traits_type::eq_int_type(__sb
->sungetc(), __eof
))
31275 __err
|= ios_base::badbit
;
31278 { this->_M_setstate(ios_base::badbit
); }
31280 this->setstate(__err
);
31285 template<typename _CharT
, typename _Traits
>
31287 basic_istream
<_CharT
, _Traits
>::
31293 sentry
__cerb(*this, true);
31296 ios_base::iostate __err
= ios_base::iostate(ios_base::goodbit
);
31299 __streambuf_type
* __sb
= this->rdbuf();
31302 if (__sb
->pubsync() == -1)
31303 __err
|= ios_base::badbit
;
31309 { this->_M_setstate(ios_base::badbit
); }
31311 this->setstate(__err
);
31316 template<typename _CharT
, typename _Traits
>
31317 typename basic_istream
<_CharT
, _Traits
>::pos_type
31318 basic_istream
<_CharT
, _Traits
>::
31323 pos_type __ret
= pos_type(-1);
31327 __ret
= this->rdbuf()->pubseekoff(0, ios_base::cur
, ios_base::in
);
31330 { this->_M_setstate(ios_base::badbit
); }
31334 template<typename _CharT
, typename _Traits
>
31335 basic_istream
<_CharT
, _Traits
>&
31336 basic_istream
<_CharT
, _Traits
>::
31337 seekg(pos_type __pos
)
31341 ios_base::iostate __err
= ios_base::iostate(ios_base::goodbit
);
31347 const pos_type __p
= this->rdbuf()->pubseekpos(__pos
,
31351 if (__p
== pos_type(off_type(-1)))
31352 __err
|= ios_base::failbit
;
31356 { this->_M_setstate(ios_base::badbit
); }
31358 this->setstate(__err
);
31362 template<typename _CharT
, typename _Traits
>
31363 basic_istream
<_CharT
, _Traits
>&
31364 basic_istream
<_CharT
, _Traits
>::
31365 seekg(off_type __off
, ios_base::seekdir __dir
)
31369 ios_base::iostate __err
= ios_base::iostate(ios_base::goodbit
);
31375 const pos_type __p
= this->rdbuf()->pubseekoff(__off
, __dir
,
31379 if (__p
== pos_type(off_type(-1)))
31380 __err
|= ios_base::failbit
;
31384 { this->_M_setstate(ios_base::badbit
); }
31386 this->setstate(__err
);
31391 template<typename _CharT
, typename _Traits
>
31392 basic_istream
<_CharT
, _Traits
>&
31393 operator>>(basic_istream
<_CharT
, _Traits
>& __in
, _CharT
& __c
)
31395 typedef basic_istream
<_CharT
, _Traits
> __istream_type
;
31396 typedef typename
__istream_type::int_type __int_type
;
31398 typename
__istream_type::sentry
__cerb(__in
, false);
31401 ios_base::iostate __err
= ios_base::iostate(ios_base::goodbit
);
31404 const __int_type __cb
= __in
.rdbuf()->sbumpc();
31405 if (!_Traits::eq_int_type(__cb
, _Traits::eof()))
31406 __c
= _Traits::to_char_type(__cb
);
31408 __err
|= (ios_base::eofbit
| ios_base::failbit
);
31411 { __in
._M_setstate(ios_base::badbit
); }
31413 __in
.setstate(__err
);
31418 template<typename _CharT
, typename _Traits
>
31419 basic_istream
<_CharT
, _Traits
>&
31420 operator>>(basic_istream
<_CharT
, _Traits
>& __in
, _CharT
* __s
)
31422 typedef basic_istream
<_CharT
, _Traits
> __istream_type
;
31423 typedef typename
__istream_type::__streambuf_type __streambuf_type
;
31424 typedef typename
_Traits::int_type int_type
;
31425 typedef _CharT char_type
;
31426 typedef ctype
<_CharT
> __ctype_type
;
31428 streamsize __extracted
= 0;
31429 ios_base::iostate __err
= ios_base::iostate(ios_base::goodbit
);
31430 typename
__istream_type::sentry
__cerb(__in
, false);
31436 streamsize __num
= __in
.width();
31438 __num
= numeric_limits
<streamsize
>::max();
31440 const __ctype_type
& __ct
= use_facet
<__ctype_type
>(__in
.getloc());
31442 const int_type __eof
= _Traits::eof();
31443 __streambuf_type
* __sb
= __in
.rdbuf();
31444 int_type __c
= __sb
->sgetc();
31446 while (__extracted
< __num
- 1
31447 && !_Traits::eq_int_type(__c
, __eof
)
31448 && !__ct
.is(ctype_base::space
,
31449 _Traits::to_char_type(__c
)))
31451 *__s
++ = _Traits::to_char_type(__c
);
31453 __c
= __sb
->snextc();
31455 if (_Traits::eq_int_type(__c
, __eof
))
31456 __err
|= ios_base::eofbit
;
31460 *__s
= char_type();
31464 { __in
._M_setstate(ios_base::badbit
); }
31467 __err
|= ios_base::failbit
;
31469 __in
.setstate(__err
);
31474 template<typename _CharT
, typename _Traits
>
31475 basic_istream
<_CharT
,_Traits
>&
31476 ws(basic_istream
<_CharT
,_Traits
>& __in
)
31478 typedef basic_istream
<_CharT
, _Traits
> __istream_type
;
31479 typedef typename
__istream_type::__streambuf_type __streambuf_type
;
31480 typedef typename
__istream_type::__ctype_type __ctype_type
;
31481 typedef typename
__istream_type::int_type __int_type
;
31483 const __ctype_type
& __ct
= use_facet
<__ctype_type
>(__in
.getloc());
31484 const __int_type __eof
= _Traits::eof();
31485 __streambuf_type
* __sb
= __in
.rdbuf();
31486 __int_type __c
= __sb
->sgetc();
31488 while (!_Traits::eq_int_type(__c
, __eof
)
31489 && __ct
.is(ctype_base::space
, _Traits::to_char_type(__c
)))
31490 __c
= __sb
->snextc();
31492 if (_Traits::eq_int_type(__c
, __eof
))
31493 __in
.setstate(ios_base::eofbit
);
31498 template<typename _CharT
, typename _Traits
, typename _Alloc
>
31499 basic_istream
<_CharT
, _Traits
>&
31500 operator>>(basic_istream
<_CharT
, _Traits
>& __in
,
31501 basic_string
<_CharT
, _Traits
, _Alloc
>& __str
)
31503 typedef basic_istream
<_CharT
, _Traits
> __istream_type
;
31504 typedef typename
__istream_type::int_type __int_type
;
31505 typedef typename
__istream_type::__streambuf_type __streambuf_type
;
31506 typedef typename
__istream_type::__ctype_type __ctype_type
;
31507 typedef basic_string
<_CharT
, _Traits
, _Alloc
> __string_type
;
31508 typedef typename
__string_type::size_type __size_type
;
31510 __size_type __extracted
= 0;
31511 ios_base::iostate __err
= ios_base::iostate(ios_base::goodbit
);
31512 typename
__istream_type::sentry
__cerb(__in
, false);
31520 __size_type __len
= 0;
31521 const streamsize __w
= __in
.width();
31522 const __size_type __n
= __w
> 0 ? static_cast<__size_type
>(__w
)
31523 : __str
.max_size();
31524 const __ctype_type
& __ct
= use_facet
<__ctype_type
>(__in
.getloc());
31525 const __int_type __eof
= _Traits::eof();
31526 __streambuf_type
* __sb
= __in
.rdbuf();
31527 __int_type __c
= __sb
->sgetc();
31529 while (__extracted
< __n
31530 && !_Traits::eq_int_type(__c
, __eof
)
31531 && !__ct
.is(ctype_base::space
, _Traits::to_char_type(__c
)))
31533 if (__len
== sizeof(__buf
) / sizeof(_CharT
))
31535 __str
.append(__buf
, sizeof(__buf
) / sizeof(_CharT
));
31538 __buf
[__len
++] = _Traits::to_char_type(__c
);
31540 __c
= __sb
->snextc();
31542 __str
.append(__buf
, __len
);
31544 if (_Traits::eq_int_type(__c
, __eof
))
31545 __err
|= ios_base::eofbit
;
31553 __in
._M_setstate(ios_base::badbit
);
31558 __err
|= ios_base::failbit
;
31560 __in
.setstate(__err
);
31564 template<typename _CharT
, typename _Traits
, typename _Alloc
>
31565 basic_istream
<_CharT
, _Traits
>&
31566 getline(basic_istream
<_CharT
, _Traits
>& __in
,
31567 basic_string
<_CharT
, _Traits
, _Alloc
>& __str
, _CharT __delim
)
31569 typedef basic_istream
<_CharT
, _Traits
> __istream_type
;
31570 typedef typename
__istream_type::int_type __int_type
;
31571 typedef typename
__istream_type::__streambuf_type __streambuf_type
;
31572 typedef typename
__istream_type::__ctype_type __ctype_type
;
31573 typedef basic_string
<_CharT
, _Traits
, _Alloc
> __string_type
;
31574 typedef typename
__string_type::size_type __size_type
;
31576 __size_type __extracted
= 0;
31577 const __size_type __n
= __str
.max_size();
31578 ios_base::iostate __err
= ios_base::iostate(ios_base::goodbit
);
31579 typename
__istream_type::sentry
__cerb(__in
, true);
31585 const __int_type __idelim
= _Traits::to_int_type(__delim
);
31586 const __int_type __eof
= _Traits::eof();
31587 __streambuf_type
* __sb
= __in
.rdbuf();
31588 __int_type __c
= __sb
->sgetc();
31590 while (__extracted
< __n
31591 && !_Traits::eq_int_type(__c
, __eof
)
31592 && !_Traits::eq_int_type(__c
, __idelim
))
31594 __str
+= _Traits::to_char_type(__c
);
31596 __c
= __sb
->snextc();
31599 if (_Traits::eq_int_type(__c
, __eof
))
31600 __err
|= ios_base::eofbit
;
31601 else if (_Traits::eq_int_type(__c
, __idelim
))
31607 __err
|= ios_base::failbit
;
31614 __in
._M_setstate(ios_base::badbit
);
31618 __err
|= ios_base::failbit
;
31620 __in
.setstate(__err
);
31624 template<class _CharT
, class _Traits
, class _Alloc
>
31625 inline basic_istream
<_CharT
,_Traits
>&
31626 getline(basic_istream
<_CharT
, _Traits
>& __in
,
31627 basic_string
<_CharT
,_Traits
,_Alloc
>& __str
)
31628 { return getline(__in
, __str
, __in
.widen('\n')); }
31634 extern template class basic_istream
<char>;
31635 extern template istream
& ws(istream
&);
31636 extern template istream
& operator>>(istream
&, char&);
31637 extern template istream
& operator>>(istream
&, char*);
31638 extern template istream
& operator>>(istream
&, unsigned char&);
31639 extern template istream
& operator>>(istream
&, signed char&);
31640 extern template istream
& operator>>(istream
&, unsigned char*);
31641 extern template istream
& operator>>(istream
&, signed char*);
31643 extern template class basic_iostream
<char>;
31646 extern template class basic_istream
<wchar_t>;
31647 extern template wistream
& ws(wistream
&);
31648 extern template wistream
& operator>>(wistream
&, wchar_t&);
31649 extern template wistream
& operator>>(wistream
&, wchar_t*);
31651 extern template class basic_iostream
<wchar_t>;
31655 # 821 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/istream" 2 3
31658 #pragma GCC visibility pop
31659 # 73 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/iterator" 2 3
31660 # 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stream_iterator.h" 1 3
31661 # 38 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stream_iterator.h" 3
31663 # 39 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stream_iterator.h" 3
31670 template<typename _Tp
, typename _CharT
= char,
31671 typename _Traits
= char_traits
<_CharT
>, typename _Dist
= ptrdiff_t>
31672 class istream_iterator
31673 : public iterator
<input_iterator_tag
, _Tp
, _Dist
, const _Tp
*, const _Tp
&>
31676 typedef _CharT char_type
;
31677 typedef _Traits traits_type
;
31678 typedef basic_istream
<_CharT
, _Traits
> istream_type
;
31681 istream_type
* _M_stream
;
31688 : _M_stream(0), _M_value(), _M_ok(false) {}
31691 istream_iterator(istream_type
& __s
)
31695 istream_iterator(const istream_iterator
& __obj
)
31696 : _M_stream(__obj
._M_stream
), _M_value(__obj
._M_value
),
31710 operator->() const { return &(operator*()); }
31728 istream_iterator __tmp
= *this;
31734 _M_equal(const istream_iterator
& __x
) const
31735 { return (_M_ok
== __x
._M_ok
) && (!_M_ok
|| _M_stream
== __x
._M_stream
); }
31741 _M_ok
= (_M_stream
&& *_M_stream
) ? true : false;
31744 *_M_stream
>> _M_value
;
31745 _M_ok
= *_M_stream
? true : false;
31751 template<typename _Tp
, typename _CharT
, typename _Traits
, typename _Dist
>
31753 operator==(const istream_iterator
<_Tp
, _CharT
, _Traits
, _Dist
>& __x
,
31754 const istream_iterator
<_Tp
, _CharT
, _Traits
, _Dist
>& __y
)
31755 { return __x
._M_equal(__y
); }
31758 template <class _Tp
, class _CharT
, class _Traits
, class _Dist
>
31760 operator!=(const istream_iterator
<_Tp
, _CharT
, _Traits
, _Dist
>& __x
,
31761 const istream_iterator
<_Tp
, _CharT
, _Traits
, _Dist
>& __y
)
31762 { return !__x
._M_equal(__y
); }
31763 # 150 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stream_iterator.h" 3
31764 template<typename _Tp
, typename _CharT
= char,
31765 typename _Traits
= char_traits
<_CharT
> >
31766 class ostream_iterator
31767 : public iterator
<output_iterator_tag
, void, void, void, void>
31772 typedef _CharT char_type
;
31773 typedef _Traits traits_type
;
31774 typedef basic_ostream
<_CharT
, _Traits
> ostream_type
;
31778 ostream_type
* _M_stream
;
31779 const _CharT
* _M_string
;
31783 ostream_iterator(ostream_type
& __s
) : _M_stream(&__s
), _M_string(0) {}
31784 # 181 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stream_iterator.h" 3
31785 ostream_iterator(ostream_type
& __s
, const _CharT
* __c
)
31786 : _M_stream(&__s
), _M_string(__c
) { }
31789 ostream_iterator(const ostream_iterator
& __obj
)
31790 : _M_stream(__obj
._M_stream
), _M_string(__obj
._M_string
) { }
31795 operator=(const _Tp
& __value
)
31800 *_M_stream
<< __value
;
31801 if (_M_string
) *_M_stream
<< _M_string
;
31818 # 74 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/iterator" 2 3
31821 #pragma GCC visibility pop
31822 # 69 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/ext/hashtable.h" 2 3
31825 # 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/ext/hash_fun.h" 1 3
31826 # 66 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/ext/hash_fun.h" 3
31827 namespace __gnu_cxx
31831 template<class _Key
>
31835 __stl_hash_string(const char* __s
)
31837 unsigned long __h
= 0;
31838 for ( ; *__s
; ++__s
)
31839 __h
= 5 * __h
+ *__s
;
31840 return size_t(__h
);
31847 operator()(const char* __s
) const
31848 { return __stl_hash_string(__s
); }
31852 struct hash
<const char*>
31855 operator()(const char* __s
) const
31856 { return __stl_hash_string(__s
); }
31863 operator()(char __x
) const
31868 struct hash
<unsigned char>
31871 operator()(unsigned char __x
) const
31876 struct hash
<signed char>
31879 operator()(unsigned char __x
) const
31887 operator()(short __x
) const
31892 struct hash
<unsigned short>
31895 operator()(unsigned short __x
) const
31903 operator()(int __x
) const
31908 struct hash
<unsigned int>
31911 operator()(unsigned int __x
) const
31919 operator()(long __x
) const
31924 struct hash
<unsigned long>
31927 operator()(unsigned long __x
) const
31931 # 72 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/ext/hashtable.h" 2 3
31933 namespace __gnu_cxx
31936 using std::ptrdiff_t;
31937 using std::forward_iterator_tag
;
31938 using std::input_iterator_tag
;
31939 using std::_Construct
;
31940 using std::_Destroy
;
31941 using std::distance
;
31944 using std::__iterator_category
;
31946 template <class _Val
>
31947 struct _Hashtable_node
31949 _Hashtable_node
* _M_next
;
31953 template <class _Val
, class _Key
, class _HashFcn
, class _ExtractKey
,
31954 class _EqualKey
, class _Alloc
= std::allocator
<_Val
> >
31957 template <class _Val
, class _Key
, class _HashFcn
,
31958 class _ExtractKey
, class _EqualKey
, class _Alloc
>
31959 struct _Hashtable_iterator
;
31961 template <class _Val
, class _Key
, class _HashFcn
,
31962 class _ExtractKey
, class _EqualKey
, class _Alloc
>
31963 struct _Hashtable_const_iterator
;
31965 template <class _Val
, class _Key
, class _HashFcn
,
31966 class _ExtractKey
, class _EqualKey
, class _Alloc
>
31967 struct _Hashtable_iterator
31969 typedef hashtable
<_Val
, _Key
, _HashFcn
, _ExtractKey
, _EqualKey
, _Alloc
>
31971 typedef _Hashtable_iterator
<_Val
, _Key
, _HashFcn
,
31972 _ExtractKey
, _EqualKey
, _Alloc
>
31974 typedef _Hashtable_const_iterator
<_Val
, _Key
, _HashFcn
,
31975 _ExtractKey
, _EqualKey
, _Alloc
>
31977 typedef _Hashtable_node
<_Val
> _Node
;
31978 typedef forward_iterator_tag iterator_category
;
31979 typedef _Val value_type
;
31980 typedef ptrdiff_t difference_type
;
31981 typedef size_t size_type
;
31982 typedef _Val
& reference
;
31983 typedef _Val
* pointer
;
31988 _Hashtable_iterator(_Node
* __n
, _Hashtable
* __tab
)
31989 : _M_cur(__n
), _M_ht(__tab
) {}
31991 _Hashtable_iterator() {}
31995 { return _M_cur
->_M_val
; }
31999 { return &(operator*()); }
32008 operator==(const iterator
& __it
) const
32009 { return _M_cur
== __it
._M_cur
; }
32012 operator!=(const iterator
& __it
) const
32013 { return _M_cur
!= __it
._M_cur
; }
32016 template <class _Val
, class _Key
, class _HashFcn
,
32017 class _ExtractKey
, class _EqualKey
, class _Alloc
>
32018 struct _Hashtable_const_iterator
32020 typedef hashtable
<_Val
, _Key
, _HashFcn
, _ExtractKey
, _EqualKey
, _Alloc
>
32022 typedef _Hashtable_iterator
<_Val
,_Key
,_HashFcn
,
32023 _ExtractKey
,_EqualKey
,_Alloc
>
32025 typedef _Hashtable_const_iterator
<_Val
, _Key
, _HashFcn
,
32026 _ExtractKey
, _EqualKey
, _Alloc
>
32028 typedef _Hashtable_node
<_Val
> _Node
;
32030 typedef forward_iterator_tag iterator_category
;
32031 typedef _Val value_type
;
32032 typedef ptrdiff_t difference_type
;
32033 typedef size_t size_type
;
32034 typedef const _Val
& reference
;
32035 typedef const _Val
* pointer
;
32037 const _Node
* _M_cur
;
32038 const _Hashtable
* _M_ht
;
32040 _Hashtable_const_iterator(const _Node
* __n
, const _Hashtable
* __tab
)
32041 : _M_cur(__n
), _M_ht(__tab
) {}
32043 _Hashtable_const_iterator() {}
32045 _Hashtable_const_iterator(const iterator
& __it
)
32046 : _M_cur(__it
._M_cur
), _M_ht(__it
._M_ht
) {}
32050 { return _M_cur
->_M_val
; }
32054 { return &(operator*()); }
32063 operator==(const const_iterator
& __it
) const
32064 { return _M_cur
== __it
._M_cur
; }
32067 operator!=(const const_iterator
& __it
) const
32068 { return _M_cur
!= __it
._M_cur
; }
32072 enum { _S_num_primes
= 28 };
32074 static const unsigned long __stl_prime_list
[_S_num_primes
] =
32076 53ul, 97ul, 193ul, 389ul, 769ul,
32077 1543ul, 3079ul, 6151ul, 12289ul, 24593ul,
32078 49157ul, 98317ul, 196613ul, 393241ul, 786433ul,
32079 1572869ul, 3145739ul, 6291469ul, 12582917ul, 25165843ul,
32080 50331653ul, 100663319ul, 201326611ul, 402653189ul, 805306457ul,
32081 1610612741ul, 3221225473ul, 4294967291ul
32084 inline unsigned long
32085 __stl_next_prime(unsigned long __n
)
32087 const unsigned long* __first
= __stl_prime_list
;
32088 const unsigned long* __last
= __stl_prime_list
+ (int)_S_num_primes
;
32089 const unsigned long* pos
= std::lower_bound(__first
, __last
, __n
);
32090 return pos
== __last
? *(__last
- 1) : *pos
;
32095 template <class _Val
, class _Key
, class _HF
, class _Ex
,
32096 class _Eq
, class _All
>
32099 template <class _Val
, class _Key
, class _HF
, class _Ex
,
32100 class _Eq
, class _All
>
32102 operator==(const hashtable
<_Val
, _Key
, _HF
, _Ex
, _Eq
, _All
>& __ht1
,
32103 const hashtable
<_Val
, _Key
, _HF
, _Ex
, _Eq
, _All
>& __ht2
);
32104 # 254 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/ext/hashtable.h" 3
32105 template <class _Val
, class _Key
, class _HashFcn
,
32106 class _ExtractKey
, class _EqualKey
, class _Alloc
>
32110 typedef _Key key_type
;
32111 typedef _Val value_type
;
32112 typedef _HashFcn hasher
;
32113 typedef _EqualKey key_equal
;
32115 typedef size_t size_type
;
32116 typedef ptrdiff_t difference_type
;
32117 typedef value_type
* pointer
;
32118 typedef const value_type
* const_pointer
;
32119 typedef value_type
& reference
;
32120 typedef const value_type
& const_reference
;
32124 { return _M_hash
; }
32128 { return _M_equals
; }
32131 typedef _Hashtable_node
<_Val
> _Node
;
32134 typedef typename
_Alloc::template rebind
<value_type
>::other allocator_type
;
32136 get_allocator() const
32137 { return _M_node_allocator
; }
32140 typedef typename
_Alloc::template rebind
<_Node
>::other _Node_Alloc
;
32141 typedef typename
_Alloc::template rebind
<_Node
*>::other _Nodeptr_Alloc
;
32142 typedef vector
<_Node
*, _Nodeptr_Alloc
> _Vector_type
;
32144 _Node_Alloc _M_node_allocator
;
32148 { return _M_node_allocator
.allocate(1); }
32151 _M_put_node(_Node
* __p
)
32152 { _M_node_allocator
.deallocate(__p
, 1); }
32156 key_equal _M_equals
;
32157 _ExtractKey _M_get_key
;
32158 _Vector_type _M_buckets
;
32159 size_type _M_num_elements
;
32162 typedef _Hashtable_iterator
<_Val
, _Key
, _HashFcn
, _ExtractKey
,
32165 typedef _Hashtable_const_iterator
<_Val
, _Key
, _HashFcn
, _ExtractKey
,
32170 _Hashtable_iterator
<_Val
, _Key
, _HashFcn
, _ExtractKey
, _EqualKey
, _Alloc
>;
32173 _Hashtable_const_iterator
<_Val
, _Key
, _HashFcn
, _ExtractKey
,
32174 _EqualKey
, _Alloc
>;
32177 hashtable(size_type __n
, const _HashFcn
& __hf
,
32178 const _EqualKey
& __eql
, const _ExtractKey
& __ext
,
32179 const allocator_type
& __a
= allocator_type())
32180 : _M_node_allocator(__a
), _M_hash(__hf
), _M_equals(__eql
),
32181 _M_get_key(__ext
), _M_buckets(__a
), _M_num_elements(0)
32182 { _M_initialize_buckets(__n
); }
32184 hashtable(size_type __n
, const _HashFcn
& __hf
,
32185 const _EqualKey
& __eql
,
32186 const allocator_type
& __a
= allocator_type())
32187 : _M_node_allocator(__a
), _M_hash(__hf
), _M_equals(__eql
),
32188 _M_get_key(_ExtractKey()), _M_buckets(__a
), _M_num_elements(0)
32189 { _M_initialize_buckets(__n
); }
32191 hashtable(const hashtable
& __ht
)
32192 : _M_node_allocator(__ht
.get_allocator()), _M_hash(__ht
._M_hash
),
32193 _M_equals(__ht
._M_equals
), _M_get_key(__ht
._M_get_key
),
32194 _M_buckets(__ht
.get_allocator()), _M_num_elements(0)
32195 { _M_copy_from(__ht
); }
32198 operator= (const hashtable
& __ht
)
32203 _M_hash
= __ht
._M_hash
;
32204 _M_equals
= __ht
._M_equals
;
32205 _M_get_key
= __ht
._M_get_key
;
32206 _M_copy_from(__ht
);
32216 { return _M_num_elements
; }
32220 { return size_type(-1); }
32224 { return size() == 0; }
32227 swap(hashtable
& __ht
)
32229 std::swap(_M_hash
, __ht
._M_hash
);
32230 std::swap(_M_equals
, __ht
._M_equals
);
32231 std::swap(_M_get_key
, __ht
._M_get_key
);
32232 _M_buckets
.swap(__ht
._M_buckets
);
32233 std::swap(_M_num_elements
, __ht
._M_num_elements
);
32239 for (size_type __n
= 0; __n
< _M_buckets
.size(); ++__n
)
32240 if (_M_buckets
[__n
])
32241 return iterator(_M_buckets
[__n
], this);
32247 { return iterator(0, this); }
32252 for (size_type __n
= 0; __n
< _M_buckets
.size(); ++__n
)
32253 if (_M_buckets
[__n
])
32254 return const_iterator(_M_buckets
[__n
], this);
32260 { return const_iterator(0, this); }
32262 template <class _Vl
, class _Ky
, class _HF
, class _Ex
, class _Eq
,
32265 operator==(const hashtable
<_Vl
, _Ky
, _HF
, _Ex
, _Eq
, _Al
>&,
32266 const hashtable
<_Vl
, _Ky
, _HF
, _Ex
, _Eq
, _Al
>&);
32270 bucket_count() const
32271 { return _M_buckets
.size(); }
32274 max_bucket_count() const
32275 { return __stl_prime_list
[(int)_S_num_primes
- 1]; }
32278 elems_in_bucket(size_type __bucket
) const
32280 size_type __result
= 0;
32281 for (_Node
* __cur
= _M_buckets
[__bucket
]; __cur
; __cur
= __cur
->_M_next
)
32286 pair
<iterator
, bool>
32287 insert_unique(const value_type
& __obj
)
32289 resize(_M_num_elements
+ 1);
32290 return insert_unique_noresize(__obj
);
32294 insert_equal(const value_type
& __obj
)
32296 resize(_M_num_elements
+ 1);
32297 return insert_equal_noresize(__obj
);
32300 pair
<iterator
, bool>
32301 insert_unique_noresize(const value_type
& __obj
);
32304 insert_equal_noresize(const value_type
& __obj
);
32306 template <class _InputIterator
>
32308 insert_unique(_InputIterator __f
, _InputIterator __l
)
32309 { insert_unique(__f
, __l
, __iterator_category(__f
)); }
32311 template <class _InputIterator
>
32313 insert_equal(_InputIterator __f
, _InputIterator __l
)
32314 { insert_equal(__f
, __l
, __iterator_category(__f
)); }
32316 template <class _InputIterator
>
32318 insert_unique(_InputIterator __f
, _InputIterator __l
,
32319 input_iterator_tag
)
32321 for ( ; __f
!= __l
; ++__f
)
32322 insert_unique(*__f
);
32325 template <class _InputIterator
>
32327 insert_equal(_InputIterator __f
, _InputIterator __l
,
32328 input_iterator_tag
)
32330 for ( ; __f
!= __l
; ++__f
)
32331 insert_equal(*__f
);
32334 template <class _ForwardIterator
>
32336 insert_unique(_ForwardIterator __f
, _ForwardIterator __l
,
32337 forward_iterator_tag
)
32339 size_type __n
= distance(__f
, __l
);
32340 resize(_M_num_elements
+ __n
);
32341 for ( ; __n
> 0; --__n
, ++__f
)
32342 insert_unique_noresize(*__f
);
32345 template <class _ForwardIterator
>
32347 insert_equal(_ForwardIterator __f
, _ForwardIterator __l
,
32348 forward_iterator_tag
)
32350 size_type __n
= distance(__f
, __l
);
32351 resize(_M_num_elements
+ __n
);
32352 for ( ; __n
> 0; --__n
, ++__f
)
32353 insert_equal_noresize(*__f
);
32357 find_or_insert(const value_type
& __obj
);
32360 find(const key_type
& __key
)
32362 size_type __n
= _M_bkt_num_key(__key
);
32364 for (__first
= _M_buckets
[__n
];
32365 __first
&& !_M_equals(_M_get_key(__first
->_M_val
), __key
);
32366 __first
= __first
->_M_next
)
32368 return iterator(__first
, this);
32372 find(const key_type
& __key
) const
32374 size_type __n
= _M_bkt_num_key(__key
);
32375 const _Node
* __first
;
32376 for (__first
= _M_buckets
[__n
];
32377 __first
&& !_M_equals(_M_get_key(__first
->_M_val
), __key
);
32378 __first
= __first
->_M_next
)
32380 return const_iterator(__first
, this);
32384 count(const key_type
& __key
) const
32386 const size_type __n
= _M_bkt_num_key(__key
);
32387 size_type __result
= 0;
32389 for (const _Node
* __cur
= _M_buckets
[__n
]; __cur
;
32390 __cur
= __cur
->_M_next
)
32391 if (_M_equals(_M_get_key(__cur
->_M_val
), __key
))
32396 pair
<iterator
, iterator
>
32397 equal_range(const key_type
& __key
);
32399 pair
<const_iterator
, const_iterator
>
32400 equal_range(const key_type
& __key
) const;
32403 erase(const key_type
& __key
);
32406 erase(const iterator
& __it
);
32409 erase(iterator __first
, iterator __last
);
32412 erase(const const_iterator
& __it
);
32415 erase(const_iterator __first
, const_iterator __last
);
32418 resize(size_type __num_elements_hint
);
32425 _M_next_size(size_type __n
) const
32426 { return __stl_next_prime(__n
); }
32429 _M_initialize_buckets(size_type __n
)
32431 const size_type __n_buckets
= _M_next_size(__n
);
32432 _M_buckets
.reserve(__n_buckets
);
32433 _M_buckets
.insert(_M_buckets
.end(), __n_buckets
, (_Node
*) 0);
32434 _M_num_elements
= 0;
32438 _M_bkt_num_key(const key_type
& __key
) const
32439 { return _M_bkt_num_key(__key
, _M_buckets
.size()); }
32442 _M_bkt_num(const value_type
& __obj
) const
32443 { return _M_bkt_num_key(_M_get_key(__obj
)); }
32446 _M_bkt_num_key(const key_type
& __key
, size_t __n
) const
32447 { return _M_hash(__key
) % __n
; }
32450 _M_bkt_num(const value_type
& __obj
, size_t __n
) const
32451 { return _M_bkt_num_key(_M_get_key(__obj
), __n
); }
32454 _M_new_node(const value_type
& __obj
)
32456 _Node
* __n
= _M_get_node();
32460 this->get_allocator().construct(&__n
->_M_val
, __obj
);
32471 _M_delete_node(_Node
* __n
)
32473 this->get_allocator().destroy(&__n
->_M_val
);
32478 _M_erase_bucket(const size_type __n
, _Node
* __first
, _Node
* __last
);
32481 _M_erase_bucket(const size_type __n
, _Node
* __last
);
32484 _M_copy_from(const hashtable
& __ht
);
32487 template <class _Val
, class _Key
, class _HF
, class _ExK
, class _EqK
,
32489 _Hashtable_iterator
<_Val
, _Key
, _HF
, _ExK
, _EqK
, _All
>&
32490 _Hashtable_iterator
<_Val
, _Key
, _HF
, _ExK
, _EqK
, _All
>::
32493 const _Node
* __old
= _M_cur
;
32494 _M_cur
= _M_cur
->_M_next
;
32497 size_type __bucket
= _M_ht
->_M_bkt_num(__old
->_M_val
);
32498 while (!_M_cur
&& ++__bucket
< _M_ht
->_M_buckets
.size())
32499 _M_cur
= _M_ht
->_M_buckets
[__bucket
];
32504 template <class _Val
, class _Key
, class _HF
, class _ExK
, class _EqK
,
32506 inline _Hashtable_iterator
<_Val
, _Key
, _HF
, _ExK
, _EqK
, _All
>
32507 _Hashtable_iterator
<_Val
, _Key
, _HF
, _ExK
, _EqK
, _All
>::
32510 iterator __tmp
= *this;
32515 template <class _Val
, class _Key
, class _HF
, class _ExK
, class _EqK
,
32517 _Hashtable_const_iterator
<_Val
, _Key
, _HF
, _ExK
, _EqK
, _All
>&
32518 _Hashtable_const_iterator
<_Val
, _Key
, _HF
, _ExK
, _EqK
, _All
>::
32521 const _Node
* __old
= _M_cur
;
32522 _M_cur
= _M_cur
->_M_next
;
32525 size_type __bucket
= _M_ht
->_M_bkt_num(__old
->_M_val
);
32526 while (!_M_cur
&& ++__bucket
< _M_ht
->_M_buckets
.size())
32527 _M_cur
= _M_ht
->_M_buckets
[__bucket
];
32532 template <class _Val
, class _Key
, class _HF
, class _ExK
, class _EqK
,
32534 inline _Hashtable_const_iterator
<_Val
, _Key
, _HF
, _ExK
, _EqK
, _All
>
32535 _Hashtable_const_iterator
<_Val
, _Key
, _HF
, _ExK
, _EqK
, _All
>::
32538 const_iterator __tmp
= *this;
32543 template <class _Val
, class _Key
, class _HF
, class _Ex
, class _Eq
, class _All
>
32545 operator==(const hashtable
<_Val
, _Key
, _HF
, _Ex
, _Eq
, _All
>& __ht1
,
32546 const hashtable
<_Val
, _Key
, _HF
, _Ex
, _Eq
, _All
>& __ht2
)
32548 typedef typename hashtable
<_Val
, _Key
, _HF
, _Ex
, _Eq
, _All
>::_Node _Node
;
32550 if (__ht1
._M_buckets
.size() != __ht2
._M_buckets
.size())
32553 for (size_t __n
= 0; __n
< __ht1
._M_buckets
.size(); ++__n
)
32555 _Node
* __cur1
= __ht1
._M_buckets
[__n
];
32556 _Node
* __cur2
= __ht2
._M_buckets
[__n
];
32558 for (; __cur1
&& __cur2
;
32559 __cur1
= __cur1
->_M_next
, __cur2
= __cur2
->_M_next
)
32561 if (__cur1
|| __cur2
)
32564 for (__cur1
= __ht1
._M_buckets
[__n
] ; __cur1
;
32565 __cur1
= __cur1
->_M_next
)
32567 bool _found__cur1
= false;
32568 for (_Node
* __cur2
= __ht2
._M_buckets
[__n
];
32569 __cur2
; __cur2
= __cur2
->_M_next
)
32571 if (__cur1
->_M_val
== __cur2
->_M_val
)
32573 _found__cur1
= true;
32584 template <class _Val
, class _Key
, class _HF
, class _Ex
, class _Eq
, class _All
>
32586 operator!=(const hashtable
<_Val
, _Key
, _HF
, _Ex
, _Eq
, _All
>& __ht1
,
32587 const hashtable
<_Val
, _Key
, _HF
, _Ex
, _Eq
, _All
>& __ht2
)
32588 { return !(__ht1
== __ht2
); }
32590 template <class _Val
, class _Key
, class _HF
, class _Extract
, class _EqKey
,
32593 swap(hashtable
<_Val
, _Key
, _HF
, _Extract
, _EqKey
, _All
>& __ht1
,
32594 hashtable
<_Val
, _Key
, _HF
, _Extract
, _EqKey
, _All
>& __ht2
)
32595 { __ht1
.swap(__ht2
); }
32597 template <class _Val
, class _Key
, class _HF
, class _Ex
, class _Eq
, class _All
>
32598 pair
<typename hashtable
<_Val
, _Key
, _HF
, _Ex
, _Eq
, _All
>::iterator
, bool>
32599 hashtable
<_Val
, _Key
, _HF
, _Ex
, _Eq
, _All
>::
32600 insert_unique_noresize(const value_type
& __obj
)
32602 const size_type __n
= _M_bkt_num(__obj
);
32603 _Node
* __first
= _M_buckets
[__n
];
32605 for (_Node
* __cur
= __first
; __cur
; __cur
= __cur
->_M_next
)
32606 if (_M_equals(_M_get_key(__cur
->_M_val
), _M_get_key(__obj
)))
32607 return pair
<iterator
, bool>(iterator(__cur
, this), false);
32609 _Node
* __tmp
= _M_new_node(__obj
);
32610 __tmp
->_M_next
= __first
;
32611 _M_buckets
[__n
] = __tmp
;
32613 return pair
<iterator
, bool>(iterator(__tmp
, this), true);
32616 template <class _Val
, class _Key
, class _HF
, class _Ex
, class _Eq
, class _All
>
32617 typename hashtable
<_Val
, _Key
, _HF
, _Ex
, _Eq
, _All
>::iterator
32618 hashtable
<_Val
, _Key
, _HF
, _Ex
, _Eq
, _All
>::
32619 insert_equal_noresize(const value_type
& __obj
)
32621 const size_type __n
= _M_bkt_num(__obj
);
32622 _Node
* __first
= _M_buckets
[__n
];
32624 for (_Node
* __cur
= __first
; __cur
; __cur
= __cur
->_M_next
)
32625 if (_M_equals(_M_get_key(__cur
->_M_val
), _M_get_key(__obj
)))
32627 _Node
* __tmp
= _M_new_node(__obj
);
32628 __tmp
->_M_next
= __cur
->_M_next
;
32629 __cur
->_M_next
= __tmp
;
32631 return iterator(__tmp
, this);
32634 _Node
* __tmp
= _M_new_node(__obj
);
32635 __tmp
->_M_next
= __first
;
32636 _M_buckets
[__n
] = __tmp
;
32638 return iterator(__tmp
, this);
32641 template <class _Val
, class _Key
, class _HF
, class _Ex
, class _Eq
, class _All
>
32642 typename hashtable
<_Val
, _Key
, _HF
, _Ex
, _Eq
, _All
>::reference
32643 hashtable
<_Val
, _Key
, _HF
, _Ex
, _Eq
, _All
>::
32644 find_or_insert(const value_type
& __obj
)
32646 resize(_M_num_elements
+ 1);
32648 size_type __n
= _M_bkt_num(__obj
);
32649 _Node
* __first
= _M_buckets
[__n
];
32651 for (_Node
* __cur
= __first
; __cur
; __cur
= __cur
->_M_next
)
32652 if (_M_equals(_M_get_key(__cur
->_M_val
), _M_get_key(__obj
)))
32653 return __cur
->_M_val
;
32655 _Node
* __tmp
= _M_new_node(__obj
);
32656 __tmp
->_M_next
= __first
;
32657 _M_buckets
[__n
] = __tmp
;
32659 return __tmp
->_M_val
;
32662 template <class _Val
, class _Key
, class _HF
, class _Ex
, class _Eq
, class _All
>
32663 pair
<typename hashtable
<_Val
, _Key
, _HF
, _Ex
, _Eq
, _All
>::iterator
,
32664 typename hashtable
<_Val
, _Key
, _HF
, _Ex
, _Eq
, _All
>::iterator
>
32665 hashtable
<_Val
, _Key
, _HF
, _Ex
, _Eq
, _All
>::
32666 equal_range(const key_type
& __key
)
32668 typedef pair
<iterator
, iterator
> _Pii
;
32669 const size_type __n
= _M_bkt_num_key(__key
);
32671 for (_Node
* __first
= _M_buckets
[__n
]; __first
;
32672 __first
= __first
->_M_next
)
32673 if (_M_equals(_M_get_key(__first
->_M_val
), __key
))
32675 for (_Node
* __cur
= __first
->_M_next
; __cur
;
32676 __cur
= __cur
->_M_next
)
32677 if (!_M_equals(_M_get_key(__cur
->_M_val
), __key
))
32678 return _Pii(iterator(__first
, this), iterator(__cur
, this));
32679 for (size_type __m
= __n
+ 1; __m
< _M_buckets
.size(); ++__m
)
32680 if (_M_buckets
[__m
])
32681 return _Pii(iterator(__first
, this),
32682 iterator(_M_buckets
[__m
], this));
32683 return _Pii(iterator(__first
, this), end());
32685 return _Pii(end(), end());
32688 template <class _Val
, class _Key
, class _HF
, class _Ex
, class _Eq
, class _All
>
32689 pair
<typename hashtable
<_Val
, _Key
, _HF
, _Ex
, _Eq
, _All
>::const_iterator
,
32690 typename hashtable
<_Val
, _Key
, _HF
, _Ex
, _Eq
, _All
>::const_iterator
>
32691 hashtable
<_Val
, _Key
, _HF
, _Ex
, _Eq
, _All
>::
32692 equal_range(const key_type
& __key
) const
32694 typedef pair
<const_iterator
, const_iterator
> _Pii
;
32695 const size_type __n
= _M_bkt_num_key(__key
);
32697 for (const _Node
* __first
= _M_buckets
[__n
]; __first
;
32698 __first
= __first
->_M_next
)
32700 if (_M_equals(_M_get_key(__first
->_M_val
), __key
))
32702 for (const _Node
* __cur
= __first
->_M_next
; __cur
;
32703 __cur
= __cur
->_M_next
)
32704 if (!_M_equals(_M_get_key(__cur
->_M_val
), __key
))
32705 return _Pii(const_iterator(__first
, this),
32706 const_iterator(__cur
, this));
32707 for (size_type __m
= __n
+ 1; __m
< _M_buckets
.size(); ++__m
)
32708 if (_M_buckets
[__m
])
32709 return _Pii(const_iterator(__first
, this),
32710 const_iterator(_M_buckets
[__m
], this));
32711 return _Pii(const_iterator(__first
, this), end());
32714 return _Pii(end(), end());
32717 template <class _Val
, class _Key
, class _HF
, class _Ex
, class _Eq
, class _All
>
32718 typename hashtable
<_Val
, _Key
, _HF
, _Ex
, _Eq
, _All
>::size_type
32719 hashtable
<_Val
, _Key
, _HF
, _Ex
, _Eq
, _All
>::
32720 erase(const key_type
& __key
)
32722 const size_type __n
= _M_bkt_num_key(__key
);
32723 _Node
* __first
= _M_buckets
[__n
];
32724 size_type __erased
= 0;
32728 _Node
* __cur
= __first
;
32729 _Node
* __next
= __cur
->_M_next
;
32732 if (_M_equals(_M_get_key(__next
->_M_val
), __key
))
32734 __cur
->_M_next
= __next
->_M_next
;
32735 _M_delete_node(__next
);
32736 __next
= __cur
->_M_next
;
32743 __next
= __cur
->_M_next
;
32746 if (_M_equals(_M_get_key(__first
->_M_val
), __key
))
32748 _M_buckets
[__n
] = __first
->_M_next
;
32749 _M_delete_node(__first
);
32757 template <class _Val
, class _Key
, class _HF
, class _Ex
, class _Eq
, class _All
>
32758 void hashtable
<_Val
, _Key
, _HF
, _Ex
, _Eq
, _All
>::
32759 erase(const iterator
& __it
)
32761 _Node
* __p
= __it
._M_cur
;
32764 const size_type __n
= _M_bkt_num(__p
->_M_val
);
32765 _Node
* __cur
= _M_buckets
[__n
];
32769 _M_buckets
[__n
] = __cur
->_M_next
;
32770 _M_delete_node(__cur
);
32775 _Node
* __next
= __cur
->_M_next
;
32780 __cur
->_M_next
= __next
->_M_next
;
32781 _M_delete_node(__next
);
32788 __next
= __cur
->_M_next
;
32795 template <class _Val
, class _Key
, class _HF
, class _Ex
, class _Eq
, class _All
>
32797 hashtable
<_Val
, _Key
, _HF
, _Ex
, _Eq
, _All
>::
32798 erase(iterator __first
, iterator __last
)
32800 size_type __f_bucket
= __first
._M_cur
? _M_bkt_num(__first
._M_cur
->_M_val
)
32801 : _M_buckets
.size();
32803 size_type __l_bucket
= __last
._M_cur
? _M_bkt_num(__last
._M_cur
->_M_val
)
32804 : _M_buckets
.size();
32806 if (__first
._M_cur
== __last
._M_cur
)
32808 else if (__f_bucket
== __l_bucket
)
32809 _M_erase_bucket(__f_bucket
, __first
._M_cur
, __last
._M_cur
);
32812 _M_erase_bucket(__f_bucket
, __first
._M_cur
, 0);
32813 for (size_type __n
= __f_bucket
+ 1; __n
< __l_bucket
; ++__n
)
32814 _M_erase_bucket(__n
, 0);
32815 if (__l_bucket
!= _M_buckets
.size())
32816 _M_erase_bucket(__l_bucket
, __last
._M_cur
);
32820 template <class _Val
, class _Key
, class _HF
, class _Ex
, class _Eq
, class _All
>
32822 hashtable
<_Val
, _Key
, _HF
, _Ex
, _Eq
, _All
>::
32823 erase(const_iterator __first
, const_iterator __last
)
32825 erase(iterator(const_cast<_Node
*>(__first
._M_cur
),
32826 const_cast<hashtable
*>(__first
._M_ht
)),
32827 iterator(const_cast<_Node
*>(__last
._M_cur
),
32828 const_cast<hashtable
*>(__last
._M_ht
)));
32831 template <class _Val
, class _Key
, class _HF
, class _Ex
, class _Eq
, class _All
>
32833 hashtable
<_Val
, _Key
, _HF
, _Ex
, _Eq
, _All
>::
32834 erase(const const_iterator
& __it
)
32835 { erase(iterator(const_cast<_Node
*>(__it
._M_cur
),
32836 const_cast<hashtable
*>(__it
._M_ht
))); }
32838 template <class _Val
, class _Key
, class _HF
, class _Ex
, class _Eq
, class _All
>
32840 hashtable
<_Val
, _Key
, _HF
, _Ex
, _Eq
, _All
>::
32841 resize(size_type __num_elements_hint
)
32843 const size_type __old_n
= _M_buckets
.size();
32844 if (__num_elements_hint
> __old_n
)
32846 const size_type __n
= _M_next_size(__num_elements_hint
);
32849 _Vector_type
__tmp(__n
, (_Node
*)(0), _M_buckets
.get_allocator());
32852 for (size_type __bucket
= 0; __bucket
< __old_n
; ++__bucket
)
32854 _Node
* __first
= _M_buckets
[__bucket
];
32857 size_type __new_bucket
= _M_bkt_num(__first
->_M_val
,
32859 _M_buckets
[__bucket
] = __first
->_M_next
;
32860 __first
->_M_next
= __tmp
[__new_bucket
];
32861 __tmp
[__new_bucket
] = __first
;
32862 __first
= _M_buckets
[__bucket
];
32865 _M_buckets
.swap(__tmp
);
32869 for (size_type __bucket
= 0; __bucket
< __tmp
.size();
32872 while (__tmp
[__bucket
])
32874 _Node
* __next
= __tmp
[__bucket
]->_M_next
;
32875 _M_delete_node(__tmp
[__bucket
]);
32876 __tmp
[__bucket
] = __next
;
32885 template <class _Val
, class _Key
, class _HF
, class _Ex
, class _Eq
, class _All
>
32887 hashtable
<_Val
, _Key
, _HF
, _Ex
, _Eq
, _All
>::
32888 _M_erase_bucket(const size_type __n
, _Node
* __first
, _Node
* __last
)
32890 _Node
* __cur
= _M_buckets
[__n
];
32891 if (__cur
== __first
)
32892 _M_erase_bucket(__n
, __last
);
32896 for (__next
= __cur
->_M_next
;
32898 __cur
= __next
, __next
= __cur
->_M_next
)
32900 while (__next
!= __last
)
32902 __cur
->_M_next
= __next
->_M_next
;
32903 _M_delete_node(__next
);
32904 __next
= __cur
->_M_next
;
32910 template <class _Val
, class _Key
, class _HF
, class _Ex
, class _Eq
, class _All
>
32912 hashtable
<_Val
, _Key
, _HF
, _Ex
, _Eq
, _All
>::
32913 _M_erase_bucket(const size_type __n
, _Node
* __last
)
32915 _Node
* __cur
= _M_buckets
[__n
];
32916 while (__cur
!= __last
)
32918 _Node
* __next
= __cur
->_M_next
;
32919 _M_delete_node(__cur
);
32921 _M_buckets
[__n
] = __cur
;
32926 template <class _Val
, class _Key
, class _HF
, class _Ex
, class _Eq
, class _All
>
32928 hashtable
<_Val
, _Key
, _HF
, _Ex
, _Eq
, _All
>::
32931 for (size_type __i
= 0; __i
< _M_buckets
.size(); ++__i
)
32933 _Node
* __cur
= _M_buckets
[__i
];
32936 _Node
* __next
= __cur
->_M_next
;
32937 _M_delete_node(__cur
);
32940 _M_buckets
[__i
] = 0;
32942 _M_num_elements
= 0;
32945 template <class _Val
, class _Key
, class _HF
, class _Ex
, class _Eq
, class _All
>
32947 hashtable
<_Val
, _Key
, _HF
, _Ex
, _Eq
, _All
>::
32948 _M_copy_from(const hashtable
& __ht
)
32950 _M_buckets
.clear();
32951 _M_buckets
.reserve(__ht
._M_buckets
.size());
32952 _M_buckets
.insert(_M_buckets
.end(), __ht
._M_buckets
.size(), (_Node
*) 0);
32955 for (size_type __i
= 0; __i
< __ht
._M_buckets
.size(); ++__i
) {
32956 const _Node
* __cur
= __ht
._M_buckets
[__i
];
32959 _Node
* __local_copy
= _M_new_node(__cur
->_M_val
);
32960 _M_buckets
[__i
] = __local_copy
;
32962 for (_Node
* __next
= __cur
->_M_next
;
32964 __cur
= __next
, __next
= __cur
->_M_next
)
32966 __local_copy
->_M_next
= _M_new_node(__next
->_M_val
);
32967 __local_copy
= __local_copy
->_M_next
;
32971 _M_num_elements
= __ht
._M_num_elements
;
32980 # 67 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/ext/hash_map" 2 3
32983 namespace __gnu_cxx
32985 using std::equal_to
;
32986 using std::allocator
;
32988 using std::_Select1st
;
32992 template<class _Key
, class _Tp
, class _HashFcn
= hash
<_Key
>,
32993 class _EqualKey
= equal_to
<_Key
>, class _Alloc
= allocator
<_Tp
> >
32996 template<class _Key
, class _Tp
, class _HashFn
, class _EqKey
, class _Alloc
>
32998 operator==(const hash_map
<_Key
, _Tp
, _HashFn
, _EqKey
, _Alloc
>&,
32999 const hash_map
<_Key
, _Tp
, _HashFn
, _EqKey
, _Alloc
>&);
33006 template <class _Key
, class _Tp
, class _HashFcn
, class _EqualKey
,
33011 typedef hashtable
<pair
<const _Key
, _Tp
>,_Key
, _HashFcn
,
33012 _Select1st
<pair
<const _Key
, _Tp
> >,
33013 _EqualKey
, _Alloc
> _Ht
;
33018 typedef typename
_Ht::key_type key_type
;
33019 typedef _Tp data_type
;
33020 typedef _Tp mapped_type
;
33021 typedef typename
_Ht::value_type value_type
;
33022 typedef typename
_Ht::hasher hasher
;
33023 typedef typename
_Ht::key_equal key_equal
;
33025 typedef typename
_Ht::size_type size_type
;
33026 typedef typename
_Ht::difference_type difference_type
;
33027 typedef typename
_Ht::pointer pointer
;
33028 typedef typename
_Ht::const_pointer const_pointer
;
33029 typedef typename
_Ht::reference reference
;
33030 typedef typename
_Ht::const_reference const_reference
;
33032 typedef typename
_Ht::iterator iterator
;
33033 typedef typename
_Ht::const_iterator const_iterator
;
33035 typedef typename
_Ht::allocator_type allocator_type
;
33039 { return _M_ht
.hash_funct(); }
33043 { return _M_ht
.key_eq(); }
33046 get_allocator() const
33047 { return _M_ht
.get_allocator(); }
33051 : _M_ht(100, hasher(), key_equal(), allocator_type()) {}
33054 hash_map(size_type __n
)
33055 : _M_ht(__n
, hasher(), key_equal(), allocator_type()) {}
33057 hash_map(size_type __n
, const hasher
& __hf
)
33058 : _M_ht(__n
, __hf
, key_equal(), allocator_type()) {}
33060 hash_map(size_type __n
, const hasher
& __hf
, const key_equal
& __eql
,
33061 const allocator_type
& __a
= allocator_type())
33062 : _M_ht(__n
, __hf
, __eql
, __a
) {}
33064 template <class _InputIterator
>
33065 hash_map(_InputIterator __f
, _InputIterator __l
)
33066 : _M_ht(100, hasher(), key_equal(), allocator_type())
33067 { _M_ht
.insert_unique(__f
, __l
); }
33069 template <class _InputIterator
>
33070 hash_map(_InputIterator __f
, _InputIterator __l
, size_type __n
)
33071 : _M_ht(__n
, hasher(), key_equal(), allocator_type())
33072 { _M_ht
.insert_unique(__f
, __l
); }
33074 template <class _InputIterator
>
33075 hash_map(_InputIterator __f
, _InputIterator __l
, size_type __n
,
33076 const hasher
& __hf
)
33077 : _M_ht(__n
, __hf
, key_equal(), allocator_type())
33078 { _M_ht
.insert_unique(__f
, __l
); }
33080 template <class _InputIterator
>
33081 hash_map(_InputIterator __f
, _InputIterator __l
, size_type __n
,
33082 const hasher
& __hf
, const key_equal
& __eql
,
33083 const allocator_type
& __a
= allocator_type())
33084 : _M_ht(__n
, __hf
, __eql
, __a
)
33085 { _M_ht
.insert_unique(__f
, __l
); }
33090 { return _M_ht
.size(); }
33094 { return _M_ht
.max_size(); }
33098 { return _M_ht
.empty(); }
33101 swap(hash_map
& __hs
)
33102 { _M_ht
.swap(__hs
._M_ht
); }
33104 template <class _K1
, class _T1
, class _HF
, class _EqK
, class _Al
>
33106 operator== (const hash_map
<_K1
, _T1
, _HF
, _EqK
, _Al
>&,
33107 const hash_map
<_K1
, _T1
, _HF
, _EqK
, _Al
>&);
33111 { return _M_ht
.begin(); }
33115 { return _M_ht
.end(); }
33119 { return _M_ht
.begin(); }
33123 { return _M_ht
.end(); }
33126 pair
<iterator
, bool>
33127 insert(const value_type
& __obj
)
33128 { return _M_ht
.insert_unique(__obj
); }
33130 template <class _InputIterator
>
33132 insert(_InputIterator __f
, _InputIterator __l
)
33133 { _M_ht
.insert_unique(__f
, __l
); }
33135 pair
<iterator
, bool>
33136 insert_noresize(const value_type
& __obj
)
33137 { return _M_ht
.insert_unique_noresize(__obj
); }
33140 find(const key_type
& __key
)
33141 { return _M_ht
.find(__key
); }
33144 find(const key_type
& __key
) const
33145 { return _M_ht
.find(__key
); }
33148 operator[](const key_type
& __key
)
33149 { return _M_ht
.find_or_insert(value_type(__key
, _Tp())).second
; }
33152 count(const key_type
& __key
) const
33153 { return _M_ht
.count(__key
); }
33155 pair
<iterator
, iterator
>
33156 equal_range(const key_type
& __key
)
33157 { return _M_ht
.equal_range(__key
); }
33159 pair
<const_iterator
, const_iterator
>
33160 equal_range(const key_type
& __key
) const
33161 { return _M_ht
.equal_range(__key
); }
33164 erase(const key_type
& __key
)
33165 {return _M_ht
.erase(__key
); }
33168 erase(iterator __it
)
33169 { _M_ht
.erase(__it
); }
33172 erase(iterator __f
, iterator __l
)
33173 { _M_ht
.erase(__f
, __l
); }
33180 resize(size_type __hint
)
33181 { _M_ht
.resize(__hint
); }
33184 bucket_count() const
33185 { return _M_ht
.bucket_count(); }
33188 max_bucket_count() const
33189 { return _M_ht
.max_bucket_count(); }
33192 elems_in_bucket(size_type __n
) const
33193 { return _M_ht
.elems_in_bucket(__n
); }
33196 template <class _Key
, class _Tp
, class _HashFcn
, class _EqlKey
, class _Alloc
>
33198 operator==(const hash_map
<_Key
, _Tp
, _HashFcn
, _EqlKey
, _Alloc
>& __hm1
,
33199 const hash_map
<_Key
, _Tp
, _HashFcn
, _EqlKey
, _Alloc
>& __hm2
)
33200 { return __hm1
._M_ht
== __hm2
._M_ht
; }
33202 template <class _Key
, class _Tp
, class _HashFcn
, class _EqlKey
, class _Alloc
>
33204 operator!=(const hash_map
<_Key
, _Tp
, _HashFcn
, _EqlKey
, _Alloc
>& __hm1
,
33205 const hash_map
<_Key
, _Tp
, _HashFcn
, _EqlKey
, _Alloc
>& __hm2
)
33206 { return !(__hm1
== __hm2
); }
33208 template <class _Key
, class _Tp
, class _HashFcn
, class _EqlKey
, class _Alloc
>
33210 swap(hash_map
<_Key
, _Tp
, _HashFcn
, _EqlKey
, _Alloc
>& __hm1
,
33211 hash_map
<_Key
, _Tp
, _HashFcn
, _EqlKey
, _Alloc
>& __hm2
)
33212 { __hm1
.swap(__hm2
); }
33216 template <class _Key
, class _Tp
,
33217 class _HashFcn
= hash
<_Key
>,
33218 class _EqualKey
= equal_to
<_Key
>,
33219 class _Alloc
= allocator
<_Tp
> >
33220 class hash_multimap
;
33222 template <class _Key
, class _Tp
, class _HF
, class _EqKey
, class _Alloc
>
33224 operator==(const hash_multimap
<_Key
, _Tp
, _HF
, _EqKey
, _Alloc
>& __hm1
,
33225 const hash_multimap
<_Key
, _Tp
, _HF
, _EqKey
, _Alloc
>& __hm2
);
33232 template <class _Key
, class _Tp
, class _HashFcn
, class _EqualKey
,
33234 class hash_multimap
33243 typedef hashtable
<pair
<const _Key
, _Tp
>, _Key
, _HashFcn
,
33244 _Select1st
<pair
<const _Key
, _Tp
> >, _EqualKey
, _Alloc
>
33250 typedef typename
_Ht::key_type key_type
;
33251 typedef _Tp data_type
;
33252 typedef _Tp mapped_type
;
33253 typedef typename
_Ht::value_type value_type
;
33254 typedef typename
_Ht::hasher hasher
;
33255 typedef typename
_Ht::key_equal key_equal
;
33257 typedef typename
_Ht::size_type size_type
;
33258 typedef typename
_Ht::difference_type difference_type
;
33259 typedef typename
_Ht::pointer pointer
;
33260 typedef typename
_Ht::const_pointer const_pointer
;
33261 typedef typename
_Ht::reference reference
;
33262 typedef typename
_Ht::const_reference const_reference
;
33264 typedef typename
_Ht::iterator iterator
;
33265 typedef typename
_Ht::const_iterator const_iterator
;
33267 typedef typename
_Ht::allocator_type allocator_type
;
33271 { return _M_ht
.hash_funct(); }
33275 { return _M_ht
.key_eq(); }
33278 get_allocator() const
33279 { return _M_ht
.get_allocator(); }
33283 : _M_ht(100, hasher(), key_equal(), allocator_type()) {}
33286 hash_multimap(size_type __n
)
33287 : _M_ht(__n
, hasher(), key_equal(), allocator_type()) {}
33289 hash_multimap(size_type __n
, const hasher
& __hf
)
33290 : _M_ht(__n
, __hf
, key_equal(), allocator_type()) {}
33292 hash_multimap(size_type __n
, const hasher
& __hf
, const key_equal
& __eql
,
33293 const allocator_type
& __a
= allocator_type())
33294 : _M_ht(__n
, __hf
, __eql
, __a
) {}
33296 template <class _InputIterator
>
33297 hash_multimap(_InputIterator __f
, _InputIterator __l
)
33298 : _M_ht(100, hasher(), key_equal(), allocator_type())
33299 { _M_ht
.insert_equal(__f
, __l
); }
33301 template <class _InputIterator
>
33302 hash_multimap(_InputIterator __f
, _InputIterator __l
, size_type __n
)
33303 : _M_ht(__n
, hasher(), key_equal(), allocator_type())
33304 { _M_ht
.insert_equal(__f
, __l
); }
33306 template <class _InputIterator
>
33307 hash_multimap(_InputIterator __f
, _InputIterator __l
, size_type __n
,
33308 const hasher
& __hf
)
33309 : _M_ht(__n
, __hf
, key_equal(), allocator_type())
33310 { _M_ht
.insert_equal(__f
, __l
); }
33312 template <class _InputIterator
>
33313 hash_multimap(_InputIterator __f
, _InputIterator __l
, size_type __n
,
33314 const hasher
& __hf
, const key_equal
& __eql
,
33315 const allocator_type
& __a
= allocator_type())
33316 : _M_ht(__n
, __hf
, __eql
, __a
)
33317 { _M_ht
.insert_equal(__f
, __l
); }
33322 { return _M_ht
.size(); }
33326 { return _M_ht
.max_size(); }
33330 { return _M_ht
.empty(); }
33333 swap(hash_multimap
& __hs
)
33334 { _M_ht
.swap(__hs
._M_ht
); }
33336 template <class _K1
, class _T1
, class _HF
, class _EqK
, class _Al
>
33338 operator==(const hash_multimap
<_K1
, _T1
, _HF
, _EqK
, _Al
>&,
33339 const hash_multimap
<_K1
, _T1
, _HF
, _EqK
, _Al
>&);
33343 { return _M_ht
.begin(); }
33347 { return _M_ht
.end(); }
33351 { return _M_ht
.begin(); }
33355 { return _M_ht
.end(); }
33359 insert(const value_type
& __obj
)
33360 { return _M_ht
.insert_equal(__obj
); }
33362 template <class _InputIterator
>
33364 insert(_InputIterator __f
, _InputIterator __l
)
33365 { _M_ht
.insert_equal(__f
,__l
); }
33368 insert_noresize(const value_type
& __obj
)
33369 { return _M_ht
.insert_equal_noresize(__obj
); }
33372 find(const key_type
& __key
)
33373 { return _M_ht
.find(__key
); }
33376 find(const key_type
& __key
) const
33377 { return _M_ht
.find(__key
); }
33380 count(const key_type
& __key
) const
33381 { return _M_ht
.count(__key
); }
33383 pair
<iterator
, iterator
>
33384 equal_range(const key_type
& __key
)
33385 { return _M_ht
.equal_range(__key
); }
33387 pair
<const_iterator
, const_iterator
>
33388 equal_range(const key_type
& __key
) const
33389 { return _M_ht
.equal_range(__key
); }
33392 erase(const key_type
& __key
)
33393 { return _M_ht
.erase(__key
); }
33396 erase(iterator __it
)
33397 { _M_ht
.erase(__it
); }
33400 erase(iterator __f
, iterator __l
)
33401 { _M_ht
.erase(__f
, __l
); }
33409 resize(size_type __hint
)
33410 { _M_ht
.resize(__hint
); }
33413 bucket_count() const
33414 { return _M_ht
.bucket_count(); }
33417 max_bucket_count() const
33418 { return _M_ht
.max_bucket_count(); }
33421 elems_in_bucket(size_type __n
) const
33422 { return _M_ht
.elems_in_bucket(__n
); }
33425 template <class _Key
, class _Tp
, class _HF
, class _EqKey
, class _Alloc
>
33427 operator==(const hash_multimap
<_Key
, _Tp
, _HF
, _EqKey
, _Alloc
>& __hm1
,
33428 const hash_multimap
<_Key
, _Tp
, _HF
, _EqKey
, _Alloc
>& __hm2
)
33429 { return __hm1
._M_ht
== __hm2
._M_ht
; }
33431 template <class _Key
, class _Tp
, class _HF
, class _EqKey
, class _Alloc
>
33433 operator!=(const hash_multimap
<_Key
, _Tp
, _HF
, _EqKey
, _Alloc
>& __hm1
,
33434 const hash_multimap
<_Key
, _Tp
, _HF
, _EqKey
, _Alloc
>& __hm2
)
33435 { return !(__hm1
== __hm2
); }
33437 template <class _Key
, class _Tp
, class _HashFcn
, class _EqlKey
, class _Alloc
>
33439 swap(hash_multimap
<_Key
, _Tp
, _HashFcn
, _EqlKey
, _Alloc
>& __hm1
,
33440 hash_multimap
<_Key
, _Tp
, _HashFcn
, _EqlKey
, _Alloc
>& __hm2
)
33441 { __hm1
.swap(__hm2
); }
33450 template <class _Key
, class _Tp
, class _HashFn
, class _EqKey
, class _Alloc
>
33451 class insert_iterator
<__gnu_cxx::hash_map
<_Key
, _Tp
, _HashFn
,
33455 typedef __gnu_cxx::hash_map
<_Key
, _Tp
, _HashFn
, _EqKey
, _Alloc
>
33457 _Container
* container
;
33460 typedef _Container container_type
;
33461 typedef output_iterator_tag iterator_category
;
33462 typedef void value_type
;
33463 typedef void difference_type
;
33464 typedef void pointer
;
33465 typedef void reference
;
33467 insert_iterator(_Container
& __x
)
33468 : container(&__x
) {}
33470 insert_iterator(_Container
& __x
, typename
_Container::iterator
)
33471 : container(&__x
) {}
33473 insert_iterator
<_Container
>&
33474 operator=(const typename
_Container::value_type
& __value
)
33476 container
->insert(__value
);
33480 insert_iterator
<_Container
>&
33484 insert_iterator
<_Container
>&
33485 operator++() { return *this; }
33487 insert_iterator
<_Container
>&
33492 template <class _Key
, class _Tp
, class _HashFn
, class _EqKey
, class _Alloc
>
33493 class insert_iterator
<__gnu_cxx::hash_multimap
<_Key
, _Tp
, _HashFn
,
33497 typedef __gnu_cxx::hash_multimap
<_Key
, _Tp
, _HashFn
, _EqKey
, _Alloc
>
33499 _Container
* container
;
33500 typename
_Container::iterator iter
;
33503 typedef _Container container_type
;
33504 typedef output_iterator_tag iterator_category
;
33505 typedef void value_type
;
33506 typedef void difference_type
;
33507 typedef void pointer
;
33508 typedef void reference
;
33510 insert_iterator(_Container
& __x
)
33511 : container(&__x
) {}
33513 insert_iterator(_Container
& __x
, typename
_Container::iterator
)
33514 : container(&__x
) {}
33516 insert_iterator
<_Container
>&
33517 operator=(const typename
_Container::value_type
& __value
)
33519 container
->insert(__value
);
33523 insert_iterator
<_Container
>&
33527 insert_iterator
<_Container
>&
33531 insert_iterator
<_Container
>&
33541 #pragma GCC visibility pop
33542 # 26 "../ast/identifier.h" 2
33544 namespace jl
{ namespace ast
{
33547 typedef unsigned int ident
;
33552 const ident kInvalidIdent
= 0;
33553 # 47 "../ast/identifier.h"
33554 class IdentifierManager
33558 bool operator() ( const char* aS1
, const char* aS2
) const
33560 return strcmp( aS1
, aS2
) == 0;
33565 typedef __gnu_cxx::hash
<const char*> hashFunc
;
33566 typedef __gnu_cxx::hash_map
<const char*, ident
, hashFunc
, hashComp
> identMap
;
33568 typedef std::vector
<std::string
> nameVector
;
33571 nameVector m_names
;
33574 IdentifierManager();
33575 ~IdentifierManager();
33583 ident
Insert( const char* aIdentifier
);
33589 ident
Lookup( const char* aIdentifier
) const;
33595 const char* GetIdentName( ident aIdent
) const;
33598 bool IsValid( ident aIdent
) const;
33600 bool IsIdentifier( const char* aIdentifier
) const;
33604 static IdentifierManager
& GetInstance();
33609 # 1 "../ast/types.h" 1
33610 # 21 "../ast/types.h"
33611 namespace jl
{ namespace ast
{
33628 struct invalid_type_tag
{};
33629 struct function_type_tag
{};
33631 template< TypeId TId
> struct TypeId2Type
33633 typedef invalid_type_tag Type
;
33635 template< typename T
> struct Type2TypeId
33637 static TypeId
GetTypeId() { return TypeIdInvalid
; }
33644 template<> struct TypeId2Type
<TypeIdVoid
> { typedef void Type
; }; template<> struct Type2TypeId
<void> { static TypeId
GetTypeId() { return TypeIdVoid
; } };;
33645 template<> struct TypeId2Type
<TypeIdInteger
> { typedef int Type
; }; template<> struct Type2TypeId
<int> { static TypeId
GetTypeId() { return TypeIdInteger
; } };;
33646 template<> struct TypeId2Type
<TypeIdDouble
> { typedef double Type
; }; template<> struct Type2TypeId
<double> { static TypeId
GetTypeId() { return TypeIdDouble
; } };;
33647 template<> struct TypeId2Type
<TypeIdString
> { typedef char* Type
; }; template<> struct Type2TypeId
<char*> { static TypeId
GetTypeId() { return TypeIdString
; } };;
33648 template<> struct TypeId2Type
<TypeIdBool
> { typedef bool Type
; }; template<> struct Type2TypeId
<bool> { static TypeId
GetTypeId() { return TypeIdBool
; } };;
33650 template<> struct TypeId2Type
<TypeIdFunction
> { typedef function_type_tag Type
; }; template<> struct Type2TypeId
<function_type_tag
> { static TypeId
GetTypeId() { return TypeIdFunction
; } };;
33657 # 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/list" 1 3
33658 # 63 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/list" 3
33660 # 64 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/list" 3
33661 #pragma GCC visibility push(default)
33668 # 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_list.h" 1 3
33669 # 66 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_list.h" 3
33678 struct _List_node_base
33680 _List_node_base
* _M_next
;
33681 _List_node_base
* _M_prev
;
33684 swap(_List_node_base
& __x
, _List_node_base
& __y
);
33687 transfer(_List_node_base
* const __first
,
33688 _List_node_base
* const __last
);
33694 hook(_List_node_base
* const __position
);
33701 template<typename _Tp
>
33702 struct _List_node
: public _List_node_base
33706 # 110 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_list.h" 3
33707 template<typename _Tp
>
33708 struct _List_iterator
33710 typedef _List_iterator
<_Tp
> _Self
;
33711 typedef _List_node
<_Tp
> _Node
;
33713 typedef ptrdiff_t difference_type
;
33714 typedef std::bidirectional_iterator_tag iterator_category
;
33715 typedef _Tp value_type
;
33716 typedef _Tp
* pointer
;
33717 typedef _Tp
& reference
;
33723 _List_iterator(_List_node_base
* __x
)
33729 { return static_cast<_Node
*>(_M_node
)->_M_data
; }
33733 { return &static_cast<_Node
*>(_M_node
)->_M_data
; }
33738 _M_node
= _M_node
->_M_next
;
33745 _Self __tmp
= *this;
33746 _M_node
= _M_node
->_M_next
;
33753 _M_node
= _M_node
->_M_prev
;
33760 _Self __tmp
= *this;
33761 _M_node
= _M_node
->_M_prev
;
33766 operator==(const _Self
& __x
) const
33767 { return _M_node
== __x
._M_node
; }
33770 operator!=(const _Self
& __x
) const
33771 { return _M_node
!= __x
._M_node
; }
33774 _List_node_base
* _M_node
;
33776 # 187 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_list.h" 3
33777 template<typename _Tp
>
33778 struct _List_const_iterator
33780 typedef _List_const_iterator
<_Tp
> _Self
;
33781 typedef const _List_node
<_Tp
> _Node
;
33782 typedef _List_iterator
<_Tp
> iterator
;
33784 typedef ptrdiff_t difference_type
;
33785 typedef std::bidirectional_iterator_tag iterator_category
;
33786 typedef _Tp value_type
;
33787 typedef const _Tp
* pointer
;
33788 typedef const _Tp
& reference
;
33790 _List_const_iterator()
33794 _List_const_iterator(const _List_node_base
* __x
)
33797 _List_const_iterator(const iterator
& __x
)
33798 : _M_node(__x
._M_node
) { }
33804 { return static_cast<_Node
*>(_M_node
)->_M_data
; }
33808 { return &static_cast<_Node
*>(_M_node
)->_M_data
; }
33813 _M_node
= _M_node
->_M_next
;
33820 _Self __tmp
= *this;
33821 _M_node
= _M_node
->_M_next
;
33828 _M_node
= _M_node
->_M_prev
;
33835 _Self __tmp
= *this;
33836 _M_node
= _M_node
->_M_prev
;
33841 operator==(const _Self
& __x
) const
33842 { return _M_node
== __x
._M_node
; }
33845 operator!=(const _Self
& __x
) const
33846 { return _M_node
!= __x
._M_node
; }
33849 const _List_node_base
* _M_node
;
33852 template<typename _Val
>
33854 operator==(const _List_iterator
<_Val
>& __x
,
33855 const _List_const_iterator
<_Val
>& __y
)
33856 { return __x
._M_node
== __y
._M_node
; }
33858 template<typename _Val
>
33860 operator!=(const _List_iterator
<_Val
>& __x
,
33861 const _List_const_iterator
<_Val
>& __y
)
33862 { return __x
._M_node
!= __y
._M_node
; }
33870 template<typename _Tp
, typename _Alloc
>
33874 # 297 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_list.h" 3
33875 typedef typename
_Alloc::template rebind
<_List_node
<_Tp
> >::other
33878 typedef typename
_Alloc::template rebind
<_Tp
>::other _Tp_alloc_type
;
33881 : public _Node_alloc_type
33883 _List_node_base _M_node
;
33885 _List_impl(const _Node_alloc_type
& __a
)
33886 : _Node_alloc_type(__a
), _M_node()
33890 _List_impl _M_impl
;
33894 { return _M_impl
._Node_alloc_type::allocate(1); }
33897 _M_put_node(_List_node
<_Tp
>* __p
)
33898 { _M_impl
._Node_alloc_type::deallocate(__p
, 1); }
33901 typedef _Alloc allocator_type
;
33904 _M_get_Tp_allocator() const
33905 { return *static_cast<const _Node_alloc_type
*>(&this->_M_impl
); }
33908 get_allocator() const
33909 { return _M_get_Tp_allocator(); }
33911 _List_base(const allocator_type
& __a
)
33925 this->_M_impl
._M_node
._M_next
= &this->_M_impl
._M_node
;
33926 this->_M_impl
._M_node
._M_prev
= &this->_M_impl
._M_node
;
33929 # 397 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_list.h" 3
33930 template<typename _Tp
, typename _Alloc
= std::allocator
<_Tp
> >
33931 class list
: protected _List_base
<_Tp
, _Alloc
>
33934 typedef typename
_Alloc::value_type _Alloc_value_type
;
33938 typedef _List_base
<_Tp
, _Alloc
> _Base
;
33939 typedef typename
_Base::_Tp_alloc_type _Tp_alloc_type
;
33942 typedef _Tp value_type
;
33943 typedef typename
_Tp_alloc_type::pointer pointer
;
33944 typedef typename
_Tp_alloc_type::const_pointer const_pointer
;
33945 typedef typename
_Tp_alloc_type::reference reference
;
33946 typedef typename
_Tp_alloc_type::const_reference const_reference
;
33947 typedef _List_iterator
<_Tp
> iterator
;
33948 typedef _List_const_iterator
<_Tp
> const_iterator
;
33949 typedef std::reverse_iterator
<const_iterator
> const_reverse_iterator
;
33950 typedef std::reverse_iterator
<iterator
> reverse_iterator
;
33951 typedef size_t size_type
;
33952 typedef ptrdiff_t difference_type
;
33953 typedef _Alloc allocator_type
;
33958 typedef _List_node
<_Tp
> _Node
;
33966 using _Base::_M_impl
;
33967 using _Base::_M_put_node
;
33968 using _Base::_M_get_node
;
33969 using _Base::_M_get_Tp_allocator
;
33970 # 445 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_list.h" 3
33972 _M_create_node(const value_type
& __x
)
33974 _Node
* __p
= this->_M_get_node();
33977 _M_get_Tp_allocator().construct(&__p
->_M_data
, __x
);
33994 list(const allocator_type
& __a
= allocator_type())
33996 # 478 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_list.h" 3
33998 list(size_type __n
, const value_type
& __value
= value_type(),
33999 const allocator_type
& __a
= allocator_type())
34001 { this->insert(begin(), __n
, __value
); }
34002 # 491 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_list.h" 3
34003 list(const list
& __x
)
34004 : _Base(__x
.get_allocator())
34005 { this->insert(begin(), __x
.begin(), __x
.end()); }
34006 # 509 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_list.h" 3
34007 template<typename _InputIterator
>
34008 list(_InputIterator __first
, _InputIterator __last
,
34009 const allocator_type
& __a
= allocator_type())
34011 { this->insert(begin(), __first
, __last
); }
34012 # 530 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_list.h" 3
34014 operator=(const list
& __x
);
34015 # 543 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_list.h" 3
34017 assign(size_type __n
, const value_type
& __val
)
34018 { _M_fill_assign(__n
, __val
); }
34019 # 559 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_list.h" 3
34020 template<typename _InputIterator
>
34022 assign(_InputIterator __first
, _InputIterator __last
)
34025 typedef typename
std::__is_integer
<_InputIterator
>::__type _Integral
;
34026 _M_assign_dispatch(__first
, __last
, _Integral());
34031 get_allocator() const
34032 { return _Base::get_allocator(); }
34041 { return iterator(this->_M_impl
._M_node
._M_next
); }
34050 { return const_iterator(this->_M_impl
._M_node
._M_next
); }
34059 { return iterator(&this->_M_impl
._M_node
); }
34068 { return const_iterator(&this->_M_impl
._M_node
); }
34077 { return reverse_iterator(end()); }
34084 const_reverse_iterator
34086 { return const_reverse_iterator(end()); }
34095 { return reverse_iterator(begin()); }
34102 const_reverse_iterator
34104 { return const_reverse_iterator(begin()); }
34113 { return this->_M_impl
._M_node
._M_next
== &this->_M_impl
._M_node
; }
34118 { return std::distance(begin(), end()); }
34123 { return size_type(-1); }
34124 # 674 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_list.h" 3
34126 resize(size_type __new_size
, value_type __x
= value_type());
34135 { return *begin(); }
34143 { return *begin(); }
34152 iterator __tmp
= end();
34164 const_iterator __tmp
= end();
34168 # 729 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_list.h" 3
34170 push_front(const value_type
& __x
)
34171 { this->_M_insert(begin(), __x
); }
34172 # 745 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_list.h" 3
34175 { this->_M_erase(begin()); }
34176 # 759 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_list.h" 3
34178 push_back(const value_type
& __x
)
34179 { this->_M_insert(end(), __x
); }
34180 # 774 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_list.h" 3
34183 { this->_M_erase(iterator(this->_M_impl
._M_node
._M_prev
)); }
34184 # 789 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_list.h" 3
34186 insert(iterator __position
, const value_type
& __x
);
34187 # 805 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_list.h" 3
34189 insert(iterator __position
, size_type __n
, const value_type
& __x
)
34190 { _M_fill_insert(__position
, __n
, __x
); }
34191 # 823 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_list.h" 3
34192 template<typename _InputIterator
>
34194 insert(iterator __position
, _InputIterator __first
,
34195 _InputIterator __last
)
34198 typedef typename
std::__is_integer
<_InputIterator
>::__type _Integral
;
34199 _M_insert_dispatch(__position
, __first
, __last
, _Integral());
34201 # 848 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_list.h" 3
34203 erase(iterator __position
);
34204 # 870 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_list.h" 3
34206 erase(iterator __first
, iterator __last
)
34208 while (__first
!= __last
)
34209 __first
= erase(__first
);
34212 # 887 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_list.h" 3
34215 { _List_node_base::swap(this->_M_impl
._M_node
, __x
._M_impl
._M_node
); }
34229 # 914 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_list.h" 3
34231 splice(iterator __position
, list
& __x
)
34234 this->_M_transfer(__position
, __x
.begin(), __x
.end());
34236 # 930 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_list.h" 3
34238 splice(iterator __position
, list
&, iterator __i
)
34240 iterator __j
= __i
;
34242 if (__position
== __i
|| __position
== __j
)
34244 this->_M_transfer(__position
, __i
, __j
);
34246 # 952 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_list.h" 3
34248 splice(iterator __position
, list
&, iterator __first
, iterator __last
)
34250 if (__first
!= __last
)
34251 this->_M_transfer(__position
, __first
, __last
);
34253 # 970 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_list.h" 3
34255 remove(const _Tp
& __value
);
34256 # 984 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_list.h" 3
34257 template<typename _Predicate
>
34259 remove_if(_Predicate
);
34260 # 998 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_list.h" 3
34263 # 1013 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_list.h" 3
34264 template<typename _BinaryPredicate
>
34266 unique(_BinaryPredicate
);
34267 # 1026 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_list.h" 3
34270 # 1041 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_list.h" 3
34271 template<typename _StrictWeakOrdering
>
34273 merge(list
&, _StrictWeakOrdering
);
34282 { this->_M_impl
._M_node
.reverse(); }
34299 template<typename _StrictWeakOrdering
>
34301 sort(_StrictWeakOrdering
);
34307 template<typename _Integer
>
34309 _M_assign_dispatch(_Integer __n
, _Integer __val
, __true_type
)
34311 _M_fill_assign(static_cast<size_type
>(__n
),
34312 static_cast<value_type
>(__val
));
34316 template<typename _InputIterator
>
34318 _M_assign_dispatch(_InputIterator __first
, _InputIterator __last
,
34324 _M_fill_assign(size_type __n
, const value_type
& __val
);
34330 template<typename _Integer
>
34332 _M_insert_dispatch(iterator __pos
, _Integer __n
, _Integer __x
,
34335 _M_fill_insert(__pos
, static_cast<size_type
>(__n
),
34336 static_cast<value_type
>(__x
));
34340 template<typename _InputIterator
>
34342 _M_insert_dispatch(iterator __pos
,
34343 _InputIterator __first
, _InputIterator __last
,
34346 for (; __first
!= __last
; ++__first
)
34347 _M_insert(__pos
, *__first
);
34353 _M_fill_insert(iterator __pos
, size_type __n
, const value_type
& __x
)
34355 for (; __n
> 0; --__n
)
34356 _M_insert(__pos
, __x
);
34362 _M_transfer(iterator __position
, iterator __first
, iterator __last
)
34363 { __position
._M_node
->transfer(__first
._M_node
, __last
._M_node
); }
34367 _M_insert(iterator __position
, const value_type
& __x
)
34369 _Node
* __tmp
= _M_create_node(__x
);
34370 __tmp
->hook(__position
._M_node
);
34375 _M_erase(iterator __position
)
34377 __position
._M_node
->unhook();
34378 _Node
* __n
= static_cast<_Node
*>(__position
._M_node
);
34379 _M_get_Tp_allocator().destroy(&__n
->_M_data
);
34383 # 1164 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_list.h" 3
34384 template<typename _Tp
, typename _Alloc
>
34386 operator==(const list
<_Tp
, _Alloc
>& __x
, const list
<_Tp
, _Alloc
>& __y
)
34388 typedef typename list
<_Tp
, _Alloc
>::const_iterator const_iterator
;
34389 const_iterator __end1
= __x
.end();
34390 const_iterator __end2
= __y
.end();
34392 const_iterator __i1
= __x
.begin();
34393 const_iterator __i2
= __y
.begin();
34394 while (__i1
!= __end1
&& __i2
!= __end2
&& *__i1
== *__i2
)
34399 return __i1
== __end1
&& __i2
== __end2
;
34401 # 1193 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_list.h" 3
34402 template<typename _Tp
, typename _Alloc
>
34404 operator<(const list
<_Tp
, _Alloc
>& __x
, const list
<_Tp
, _Alloc
>& __y
)
34405 { return std::lexicographical_compare(__x
.begin(), __x
.end(),
34406 __y
.begin(), __y
.end()); }
34409 template<typename _Tp
, typename _Alloc
>
34411 operator!=(const list
<_Tp
, _Alloc
>& __x
, const list
<_Tp
, _Alloc
>& __y
)
34412 { return !(__x
== __y
); }
34415 template<typename _Tp
, typename _Alloc
>
34417 operator>(const list
<_Tp
, _Alloc
>& __x
, const list
<_Tp
, _Alloc
>& __y
)
34418 { return __y
< __x
; }
34421 template<typename _Tp
, typename _Alloc
>
34423 operator<=(const list
<_Tp
, _Alloc
>& __x
, const list
<_Tp
, _Alloc
>& __y
)
34424 { return !(__y
< __x
); }
34427 template<typename _Tp
, typename _Alloc
>
34429 operator>=(const list
<_Tp
, _Alloc
>& __x
, const list
<_Tp
, _Alloc
>& __y
)
34430 { return !(__x
< __y
); }
34433 template<typename _Tp
, typename _Alloc
>
34435 swap(list
<_Tp
, _Alloc
>& __x
, list
<_Tp
, _Alloc
>& __y
)
34438 # 72 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/list" 2 3
34441 # 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/list.tcc" 1 3
34442 # 64 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/list.tcc" 3
34445 template<typename _Tp
, typename _Alloc
>
34447 _List_base
<_Tp
, _Alloc
>::
34450 typedef _List_node
<_Tp
> _Node
;
34451 _Node
* __cur
= static_cast<_Node
*>(this->_M_impl
._M_node
._M_next
);
34452 while (__cur
!= &this->_M_impl
._M_node
)
34454 _Node
* __tmp
= __cur
;
34455 __cur
= static_cast<_Node
*>(__cur
->_M_next
);
34456 _M_get_Tp_allocator().destroy(&__tmp
->_M_data
);
34457 _M_put_node(__tmp
);
34461 template<typename _Tp
, typename _Alloc
>
34462 typename list
<_Tp
, _Alloc
>::iterator
34463 list
<_Tp
, _Alloc
>::
34464 insert(iterator __position
, const value_type
& __x
)
34466 _Node
* __tmp
= _M_create_node(__x
);
34467 __tmp
->hook(__position
._M_node
);
34468 return iterator(__tmp
);
34471 template<typename _Tp
, typename _Alloc
>
34472 typename list
<_Tp
, _Alloc
>::iterator
34473 list
<_Tp
, _Alloc
>::
34474 erase(iterator __position
)
34476 iterator __ret
= iterator(__position
._M_node
->_M_next
);
34477 _M_erase(__position
);
34481 template<typename _Tp
, typename _Alloc
>
34483 list
<_Tp
, _Alloc
>::
34484 resize(size_type __new_size
, value_type __x
)
34486 iterator __i
= begin();
34487 size_type __len
= 0;
34488 for (; __i
!= end() && __len
< __new_size
; ++__i
, ++__len
)
34490 if (__len
== __new_size
)
34493 insert(end(), __new_size
- __len
, __x
);
34496 template<typename _Tp
, typename _Alloc
>
34498 list
<_Tp
, _Alloc
>::
34499 operator=(const list
& __x
)
34503 iterator __first1
= begin();
34504 iterator __last1
= end();
34505 const_iterator __first2
= __x
.begin();
34506 const_iterator __last2
= __x
.end();
34507 for (; __first1
!= __last1
&& __first2
!= __last2
;
34508 ++__first1
, ++__first2
)
34509 *__first1
= *__first2
;
34510 if (__first2
== __last2
)
34511 erase(__first1
, __last1
);
34513 insert(__last1
, __first2
, __last2
);
34518 template<typename _Tp
, typename _Alloc
>
34520 list
<_Tp
, _Alloc
>::
34521 _M_fill_assign(size_type __n
, const value_type
& __val
)
34523 iterator __i
= begin();
34524 for (; __i
!= end() && __n
> 0; ++__i
, --__n
)
34527 insert(end(), __n
, __val
);
34532 template<typename _Tp
, typename _Alloc
>
34533 template <typename _InputIterator
>
34535 list
<_Tp
, _Alloc
>::
34536 _M_assign_dispatch(_InputIterator __first2
, _InputIterator __last2
,
34539 iterator __first1
= begin();
34540 iterator __last1
= end();
34541 for (; __first1
!= __last1
&& __first2
!= __last2
;
34542 ++__first1
, ++__first2
)
34543 *__first1
= *__first2
;
34544 if (__first2
== __last2
)
34545 erase(__first1
, __last1
);
34547 insert(__last1
, __first2
, __last2
);
34550 template<typename _Tp
, typename _Alloc
>
34552 list
<_Tp
, _Alloc
>::
34553 remove(const value_type
& __value
)
34555 iterator __first
= begin();
34556 iterator __last
= end();
34557 while (__first
!= __last
)
34559 iterator __next
= __first
;
34561 if (*__first
== __value
)
34567 template<typename _Tp
, typename _Alloc
>
34569 list
<_Tp
, _Alloc
>::
34572 iterator __first
= begin();
34573 iterator __last
= end();
34574 if (__first
== __last
)
34576 iterator __next
= __first
;
34577 while (++__next
!= __last
)
34579 if (*__first
== *__next
)
34587 template<typename _Tp
, typename _Alloc
>
34589 list
<_Tp
, _Alloc
>::
34596 iterator __first1
= begin();
34597 iterator __last1
= end();
34598 iterator __first2
= __x
.begin();
34599 iterator __last2
= __x
.end();
34600 while (__first1
!= __last1
&& __first2
!= __last2
)
34601 if (*__first2
< *__first1
)
34603 iterator __next
= __first2
;
34604 _M_transfer(__first1
, __first2
, ++__next
);
34609 if (__first2
!= __last2
)
34610 _M_transfer(__last1
, __first2
, __last2
);
34614 template<typename _Tp
, typename _Alloc
>
34616 list
<_Tp
, _Alloc
>::
34620 if (this->_M_impl
._M_node
._M_next
!= &this->_M_impl
._M_node
34621 && this->_M_impl
._M_node
._M_next
->_M_next
!= &this->_M_impl
._M_node
)
34625 list
* __fill
= &__tmp
[0];
34630 __carry
.splice(__carry
.begin(), *this, begin());
34632 for(__counter
= &__tmp
[0];
34633 __counter
!= __fill
&& !__counter
->empty();
34636 __counter
->merge(__carry
);
34637 __carry
.swap(*__counter
);
34639 __carry
.swap(*__counter
);
34640 if (__counter
== __fill
)
34643 while ( !empty() );
34645 for (__counter
= &__tmp
[1]; __counter
!= __fill
; ++__counter
)
34646 __counter
->merge(*(__counter
- 1));
34647 swap( *(__fill
- 1) );
34651 template<typename _Tp
, typename _Alloc
>
34652 template <typename _Predicate
>
34654 list
<_Tp
, _Alloc
>::
34655 remove_if(_Predicate __pred
)
34657 iterator __first
= begin();
34658 iterator __last
= end();
34659 while (__first
!= __last
)
34661 iterator __next
= __first
;
34663 if (__pred(*__first
))
34669 template<typename _Tp
, typename _Alloc
>
34670 template <typename _BinaryPredicate
>
34672 list
<_Tp
, _Alloc
>::
34673 unique(_BinaryPredicate __binary_pred
)
34675 iterator __first
= begin();
34676 iterator __last
= end();
34677 if (__first
== __last
)
34679 iterator __next
= __first
;
34680 while (++__next
!= __last
)
34682 if (__binary_pred(*__first
, *__next
))
34690 template<typename _Tp
, typename _Alloc
>
34691 template <typename _StrictWeakOrdering
>
34693 list
<_Tp
, _Alloc
>::
34694 merge(list
& __x
, _StrictWeakOrdering __comp
)
34700 iterator __first1
= begin();
34701 iterator __last1
= end();
34702 iterator __first2
= __x
.begin();
34703 iterator __last2
= __x
.end();
34704 while (__first1
!= __last1
&& __first2
!= __last2
)
34705 if (__comp(*__first2
, *__first1
))
34707 iterator __next
= __first2
;
34708 _M_transfer(__first1
, __first2
, ++__next
);
34713 if (__first2
!= __last2
)
34714 _M_transfer(__last1
, __first2
, __last2
);
34718 template<typename _Tp
, typename _Alloc
>
34719 template <typename _StrictWeakOrdering
>
34721 list
<_Tp
, _Alloc
>::
34722 sort(_StrictWeakOrdering __comp
)
34725 if (this->_M_impl
._M_node
._M_next
!= &this->_M_impl
._M_node
34726 && this->_M_impl
._M_node
._M_next
->_M_next
!= &this->_M_impl
._M_node
)
34730 list
* __fill
= &__tmp
[0];
34735 __carry
.splice(__carry
.begin(), *this, begin());
34737 for(__counter
= &__tmp
[0];
34738 __counter
!= __fill
&& !__counter
->empty();
34741 __counter
->merge(__carry
, __comp
);
34742 __carry
.swap(*__counter
);
34744 __carry
.swap(*__counter
);
34745 if (__counter
== __fill
)
34748 while ( !empty() );
34750 for (__counter
= &__tmp
[1]; __counter
!= __fill
; ++__counter
)
34751 __counter
->merge(*(__counter
- 1), __comp
);
34752 swap(*(__fill
- 1));
34756 # 75 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/list" 2 3
34763 #pragma GCC visibility pop
34767 namespace jl
{ namespace jvm
{;
34769 char *QuoteString(char *s
);
34772 typedef std::list
<Instruction
*> instList
;
34774 typedef instList::iterator Label
;
34822 jvm_invokenonvirtual
,
34825 jvm_invokeinterface
,
34833 jvm_multianewarray
,
35001 int GetSourceLine();
35002 virtual const char *GetInstruction() = 0;
35003 virtual const int GetStackChange() = 0;
35005 Instruction(int aSourceLine
) : m_source_line (aSourceLine
) {}
35008 template <opcode OP
> class JVMInst
: public Instruction
35011 JVMInst(int aSourceLine
) : Instruction(aSourceLine
) {};
35014 virtual const char *GetInstruction() {return "INVALID";}
35015 opcode
GetOpcode() {return OP
;}
35016 virtual const int GetStackChange() {return 0;}
35023 char *m_descriptor
;
35025 FieldArg(char *aField
, char *aDescriptor
)
35027 int l1
= strlen(aField
), l2
= strlen(aDescriptor
);
35028 m_field
= new char[l1
+ l2
+ 2];
35029 memcpy(m_field
,aField
,l1
);
35031 m_descriptor
= m_field
+l1
+1;
35032 memcpy(m_descriptor
, aDescriptor
, l2
+1);
35039 m_field
= m_descriptor
= __null
;
35043 const char *GetString() {return m_field
;}
35046 switch (*m_descriptor
)
35064 IincArg(int aVar
, int aAmmount
) : m_var(aVar
), m_ammount(aAmmount
),m_string(__null
) {}
35065 ~IincArg() { if (m_string
) delete []m_string
; m_string
= 0;}
35066 const char *GetString()
35068 if (m_string
) return m_string
;
35069 m_string
= new char[m_var
/10+1 +((m_ammount
>= 0) ? m_ammount
/10 +1 : m_ammount
/ 10 + 2) +1 ];
35070 sprintf(m_string
, "%d %d", m_var
, m_ammount
);
35080 const char *GetString() {return "-- NOT IMPLEMENTED --";};
35088 StringArg(StringArg
&s
) { m_string
= strdup(s
.m_string
);}
35089 StringArg(char *aString
) { m_string
= strdup(aString
);}
35090 ~StringArg() {free(m_string
);m_string
= __null
;}
35091 const char *GetString() {return m_string
;};
35094 typedef StringArg ClassArg
;
35095 typedef StringArg ArrayTypeArg
;
35097 class MethodSpecArg
35102 char *m_descriptor
;
35104 MethodSpecArg(char *aClass
, char *aMethod
, char*aDescriptor
)
35106 int l1
= strlen(aClass
);
35107 int l2
= strlen(aMethod
);
35108 int l3
= strlen(aDescriptor
);
35110 m_class
= new char[l1
+l2
+l3
+2];
35111 memcpy(m_class
,aClass
,l1
);
35112 m_method
= m_class
+l1
;
35114 memcpy(m_method
,aMethod
,l3
);
35115 m_descriptor
= m_method
+ l3
;
35116 memcpy(m_descriptor
, aDescriptor
,l3
+1);
35118 MethodSpecArg(MethodSpecArg
&m
)
35120 m_class
= new char[strlen(m
.m_class
)];
35121 strcpy(m_class
,m
.m_class
);
35122 m_method
= m_class
+ (m
.m_method
- m
.m_class
);
35123 m_descriptor
= m_class
+ (m
.m_descriptor
- m
.m_class
);
35129 const char *GetString() {return m_class
;};
35130 unsigned int ArgStackSize();
35137 MethodSpecArg m_method
;
35138 unsigned int m_num_args
;
35141 InterfaceArg(MethodSpecArg a
) : m_method(a
), m_string(__null
) {m_num_args
= a
.ArgStackSize();}
35142 ~InterfaceArg() {if (m_string
) delete m_string
; m_string
= __null
;}
35144 const char *GetString() {
35145 if (m_string
) return m_string
;
35146 m_string
= new char[strlen(m_method
.GetString()) + m_num_args
/10 + 2];
35147 sprintf(m_string
, "%s %d", m_method
.GetString(), m_num_args
);
35151 unsigned int ArgStackSize()
35157 class MultiANewArrayArg
35160 char *m_descriptor
;
35161 unsigned int m_num_dim
;
35164 MultiANewArrayArg(char *aDesc
, unsigned int aNum
) : m_num_dim(aNum
), m_string(__null
) {m_descriptor
= strdup(aDesc
); }
35165 ~MultiANewArrayArg() {if (m_string
) delete m_string
; m_string
= __null
; if (m_descriptor
) free( m_descriptor
); m_descriptor
= __null
;}
35167 const char *GetString() {
35168 if (m_string
) return m_string
;
35169 m_string
= new char[strlen(m_descriptor
) + m_num_dim
/10 + 2];
35170 sprintf(m_string
, "%s %d", m_descriptor
, m_num_dim
);
35174 unsigned int ArgStackSize()
35186 virtual const char *GetString() = 0;
35187 virtual jl::ast::TypeId
GetConstantType() const = 0;
35190 template <typename T
> class ConstantArgT
: public TConstantArg
35196 ConstantArgT(T aValue
) : m_value(aValue
), m_string(__null
) {}
35198 virtual jl::ast::TypeId
GetConstantType() const
35200 return jl::ast::Type2TypeId
<T
>::GetTypeId();
35203 const T
& GetConstant() const
35207 virtual const char *GetString();
35211 class LookupSwitchArg
35214 typedef __gnu_cxx::hash
<int> hashFunc
;
35217 bool operator() ( int aI1
, int aI2
) const
35219 return ( aI1
== aI2
);
35222 typedef __gnu_cxx::hash_map
<int, Label
, hashFunc
, hashComp
> LabelMap
;
35227 LookupSwitchArg(LabelMap aMap
, Label aDefault
) : m_map(aMap
), m_default(aDefault
) {}
35228 ~LookupSwitchArg() {}
35230 char *GetString() {return "-- NOT IMPLEMENTED --";}
35233 class TableSwitchArg
35236 typedef std::list
<Label
> LabelList
;
35239 LabelList m_labels
;
35242 TableSwitchArg(int aLow
, LabelList aList
, Label aDefault
) : m_low(aLow
), m_default(aDefault
), m_labels(aList
) {}
35243 ~TableSwitchArg() {}
35245 char *GetString() {return "-- NOT IMPLEMENTED --";}
35252 TConstantArg
*m_arg
;
35254 ConstantArg(int aT
) {m_arg
= new ConstantArgT
<int>(aT
);};
35255 ConstantArg(bool aT
) {m_arg
= new ConstantArgT
<bool>(aT
);};
35256 ConstantArg(double aT
) {m_arg
= new ConstantArgT
<double>(aT
);};
35257 ConstantArg(char* aT
) {m_arg
= new ConstantArgT
<char*>(aT
);};
35258 ~ConstantArg() {delete m_arg
;}
35259 const char *GetString() {return m_arg
->GetString();}
35262 template<> class JVMInst
<jvm_ret
> : public Instruction
{ private: int m_arg
; char *m_instruction
; public: JVMInst(int aSourceLine
, int aArg
) : Instruction(aSourceLine
), m_arg(aArg
), m_instruction(__null
) {} ~JVMInst() {if (m_instruction
) delete [] m_instruction
; m_instruction
= 0; } virtual const char *GetInstruction() { if (m_instruction
) { return m_instruction
; } m_instruction
= new char[strlen("ret")+(m_arg
>= 0 ? m_arg
/10 +1 : -m_arg
/10 +2) +2]; sprintf(m_instruction
, "%s %d", "ret", m_arg
); return m_instruction
; } virtual const int GetStackChange() { return 0; } int GetArg() {return m_arg
;} void SetArg(int aArg
) {m_arg
= aArg
; if (m_instruction
) delete [] m_instruction
; m_instruction
= 0; } };
35263 template<> class JVMInst
<jvm_aload
> : public Instruction
{ private: int m_arg
; char *m_instruction
; public: JVMInst(int aSourceLine
, int aArg
) : Instruction(aSourceLine
), m_arg(aArg
), m_instruction(__null
) {} ~JVMInst() {if (m_instruction
) delete [] m_instruction
; m_instruction
= 0; } virtual const char *GetInstruction() { if (m_instruction
) { return m_instruction
; } m_instruction
= new char[strlen("aload")+(m_arg
>= 0 ? m_arg
/10 +1 : -m_arg
/10 +2) +2]; sprintf(m_instruction
, "%s %d", "aload", m_arg
); return m_instruction
; } virtual const int GetStackChange() { return +1; } int GetArg() {return m_arg
;} void SetArg(int aArg
) {m_arg
= aArg
; if (m_instruction
) delete [] m_instruction
; m_instruction
= 0; } };
35264 template<> class JVMInst
<jvm_astore
> : public Instruction
{ private: int m_arg
; char *m_instruction
; public: JVMInst(int aSourceLine
, int aArg
) : Instruction(aSourceLine
), m_arg(aArg
), m_instruction(__null
) {} ~JVMInst() {if (m_instruction
) delete [] m_instruction
; m_instruction
= 0; } virtual const char *GetInstruction() { if (m_instruction
) { return m_instruction
; } m_instruction
= new char[strlen("astore")+(m_arg
>= 0 ? m_arg
/10 +1 : -m_arg
/10 +2) +2]; sprintf(m_instruction
, "%s %d", "astore", m_arg
); return m_instruction
; } virtual const int GetStackChange() { return -1; } int GetArg() {return m_arg
;} void SetArg(int aArg
) {m_arg
= aArg
; if (m_instruction
) delete [] m_instruction
; m_instruction
= 0; } };
35265 template<> class JVMInst
<jvm_dload
> : public Instruction
{ private: int m_arg
; char *m_instruction
; public: JVMInst(int aSourceLine
, int aArg
) : Instruction(aSourceLine
), m_arg(aArg
), m_instruction(__null
) {} ~JVMInst() {if (m_instruction
) delete [] m_instruction
; m_instruction
= 0; } virtual const char *GetInstruction() { if (m_instruction
) { return m_instruction
; } m_instruction
= new char[strlen("dload")+(m_arg
>= 0 ? m_arg
/10 +1 : -m_arg
/10 +2) +2]; sprintf(m_instruction
, "%s %d", "dload", m_arg
); return m_instruction
; } virtual const int GetStackChange() { return +2; } int GetArg() {return m_arg
;} void SetArg(int aArg
) {m_arg
= aArg
; if (m_instruction
) delete [] m_instruction
; m_instruction
= 0; } };
35266 template<> class JVMInst
<jvm_dstore
> : public Instruction
{ private: int m_arg
; char *m_instruction
; public: JVMInst(int aSourceLine
, int aArg
) : Instruction(aSourceLine
), m_arg(aArg
), m_instruction(__null
) {} ~JVMInst() {if (m_instruction
) delete [] m_instruction
; m_instruction
= 0; } virtual const char *GetInstruction() { if (m_instruction
) { return m_instruction
; } m_instruction
= new char[strlen("dstore")+(m_arg
>= 0 ? m_arg
/10 +1 : -m_arg
/10 +2) +2]; sprintf(m_instruction
, "%s %d", "dstore", m_arg
); return m_instruction
; } virtual const int GetStackChange() { return -2; } int GetArg() {return m_arg
;} void SetArg(int aArg
) {m_arg
= aArg
; if (m_instruction
) delete [] m_instruction
; m_instruction
= 0; } };
35267 template<> class JVMInst
<jvm_fload
> : public Instruction
{ private: int m_arg
; char *m_instruction
; public: JVMInst(int aSourceLine
, int aArg
) : Instruction(aSourceLine
), m_arg(aArg
), m_instruction(__null
) {} ~JVMInst() {if (m_instruction
) delete [] m_instruction
; m_instruction
= 0; } virtual const char *GetInstruction() { if (m_instruction
) { return m_instruction
; } m_instruction
= new char[strlen("fload")+(m_arg
>= 0 ? m_arg
/10 +1 : -m_arg
/10 +2) +2]; sprintf(m_instruction
, "%s %d", "fload", m_arg
); return m_instruction
; } virtual const int GetStackChange() { return +1; } int GetArg() {return m_arg
;} void SetArg(int aArg
) {m_arg
= aArg
; if (m_instruction
) delete [] m_instruction
; m_instruction
= 0; } };
35268 template<> class JVMInst
<jvm_fstore
> : public Instruction
{ private: int m_arg
; char *m_instruction
; public: JVMInst(int aSourceLine
, int aArg
) : Instruction(aSourceLine
), m_arg(aArg
), m_instruction(__null
) {} ~JVMInst() {if (m_instruction
) delete [] m_instruction
; m_instruction
= 0; } virtual const char *GetInstruction() { if (m_instruction
) { return m_instruction
; } m_instruction
= new char[strlen("fstore")+(m_arg
>= 0 ? m_arg
/10 +1 : -m_arg
/10 +2) +2]; sprintf(m_instruction
, "%s %d", "fstore", m_arg
); return m_instruction
; } virtual const int GetStackChange() { return -1; } int GetArg() {return m_arg
;} void SetArg(int aArg
) {m_arg
= aArg
; if (m_instruction
) delete [] m_instruction
; m_instruction
= 0; } };
35269 template<> class JVMInst
<jvm_iload
> : public Instruction
{ private: int m_arg
; char *m_instruction
; public: JVMInst(int aSourceLine
, int aArg
) : Instruction(aSourceLine
), m_arg(aArg
), m_instruction(__null
) {} ~JVMInst() {if (m_instruction
) delete [] m_instruction
; m_instruction
= 0; } virtual const char *GetInstruction() { if (m_instruction
) { return m_instruction
; } m_instruction
= new char[strlen("iload")+(m_arg
>= 0 ? m_arg
/10 +1 : -m_arg
/10 +2) +2]; sprintf(m_instruction
, "%s %d", "iload", m_arg
); return m_instruction
; } virtual const int GetStackChange() { return +1; } int GetArg() {return m_arg
;} void SetArg(int aArg
) {m_arg
= aArg
; if (m_instruction
) delete [] m_instruction
; m_instruction
= 0; } };
35270 template<> class JVMInst
<jvm_istore
> : public Instruction
{ private: int m_arg
; char *m_instruction
; public: JVMInst(int aSourceLine
, int aArg
) : Instruction(aSourceLine
), m_arg(aArg
), m_instruction(__null
) {} ~JVMInst() {if (m_instruction
) delete [] m_instruction
; m_instruction
= 0; } virtual const char *GetInstruction() { if (m_instruction
) { return m_instruction
; } m_instruction
= new char[strlen("istore")+(m_arg
>= 0 ? m_arg
/10 +1 : -m_arg
/10 +2) +2]; sprintf(m_instruction
, "%s %d", "istore", m_arg
); return m_instruction
; } virtual const int GetStackChange() { return -1; } int GetArg() {return m_arg
;} void SetArg(int aArg
) {m_arg
= aArg
; if (m_instruction
) delete [] m_instruction
; m_instruction
= 0; } };
35271 template<> class JVMInst
<jvm_lload
> : public Instruction
{ private: int m_arg
; char *m_instruction
; public: JVMInst(int aSourceLine
, int aArg
) : Instruction(aSourceLine
), m_arg(aArg
), m_instruction(__null
) {} ~JVMInst() {if (m_instruction
) delete [] m_instruction
; m_instruction
= 0; } virtual const char *GetInstruction() { if (m_instruction
) { return m_instruction
; } m_instruction
= new char[strlen("lload")+(m_arg
>= 0 ? m_arg
/10 +1 : -m_arg
/10 +2) +2]; sprintf(m_instruction
, "%s %d", "lload", m_arg
); return m_instruction
; } virtual const int GetStackChange() { return +2; } int GetArg() {return m_arg
;} void SetArg(int aArg
) {m_arg
= aArg
; if (m_instruction
) delete [] m_instruction
; m_instruction
= 0; } };
35272 template<> class JVMInst
<jvm_lstore
> : public Instruction
{ private: int m_arg
; char *m_instruction
; public: JVMInst(int aSourceLine
, int aArg
) : Instruction(aSourceLine
), m_arg(aArg
), m_instruction(__null
) {} ~JVMInst() {if (m_instruction
) delete [] m_instruction
; m_instruction
= 0; } virtual const char *GetInstruction() { if (m_instruction
) { return m_instruction
; } m_instruction
= new char[strlen("lstore")+(m_arg
>= 0 ? m_arg
/10 +1 : -m_arg
/10 +2) +2]; sprintf(m_instruction
, "%s %d", "lstore", m_arg
); return m_instruction
; } virtual const int GetStackChange() { return -2; } int GetArg() {return m_arg
;} void SetArg(int aArg
) {m_arg
= aArg
; if (m_instruction
) delete [] m_instruction
; m_instruction
= 0; } };
35275 template<> class JVMInst
<jvm_bipush
> : public Instruction
{ private: int m_arg
; char *m_instruction
; public: JVMInst(int aSourceLine
, int aArg
) : Instruction(aSourceLine
), m_arg(aArg
), m_instruction(__null
) {} ~JVMInst() {if (m_instruction
) delete [] m_instruction
; m_instruction
= 0; } virtual const char *GetInstruction() { if (m_instruction
) { return m_instruction
; } m_instruction
= new char[strlen("bipush")+(m_arg
>= 0 ? m_arg
/10 +1 : -m_arg
/10 +2) +2]; sprintf(m_instruction
, "%s %d", "bipush", m_arg
); return m_instruction
; } virtual const int GetStackChange() { return +1; } int GetArg() {return m_arg
;} void SetArg(int aArg
) {m_arg
= aArg
; if (m_instruction
) delete [] m_instruction
; m_instruction
= 0; } };
35276 template<> class JVMInst
<jvm_sipush
> : public Instruction
{ private: int m_arg
; char *m_instruction
; public: JVMInst(int aSourceLine
, int aArg
) : Instruction(aSourceLine
), m_arg(aArg
), m_instruction(__null
) {} ~JVMInst() {if (m_instruction
) delete [] m_instruction
; m_instruction
= 0; } virtual const char *GetInstruction() { if (m_instruction
) { return m_instruction
; } m_instruction
= new char[strlen("sipush")+(m_arg
>= 0 ? m_arg
/10 +1 : -m_arg
/10 +2) +2]; sprintf(m_instruction
, "%s %d", "sipush", m_arg
); return m_instruction
; } virtual const int GetStackChange() { return +1; } int GetArg() {return m_arg
;} void SetArg(int aArg
) {m_arg
= aArg
; if (m_instruction
) delete [] m_instruction
; m_instruction
= 0; } };
35278 template<> class JVMInst
<jvm_iinc
> : public Instruction
{ private: IincArg m_args
; char *m_instruction
; public: JVMInst(int aSourceLine
, IincArg aArgs
) : Instruction(aSourceLine
), m_args(aArgs
), m_instruction(__null
) {} ~JVMInst() {if (m_instruction
) delete [] m_instruction
; m_instruction
= 0; } virtual const char *GetInstruction() { if (m_instruction
) { return m_instruction
; } m_instruction
= new char[strlen("iinc")+strlen(m_args
.GetString())+2]; sprintf(m_instruction
, "%s %s", "iinc", m_args
.GetString()); return m_instruction
; } virtual const int GetStackChange() { return 0; } IincArg
GetArgs() {return m_args
;} void SetArgs(IincArg aArgs
) {m_args
= aArgs
; if (m_instruction
) delete [] m_instruction
; m_instruction
= 0; } };
35280 template<> class JVMInst
<jvm_goto
> : public Instruction
{ private: LabelArg m_args
; char *m_instruction
; public: JVMInst(int aSourceLine
, LabelArg aArgs
) : Instruction(aSourceLine
), m_args(aArgs
), m_instruction(__null
) {} ~JVMInst() {if (m_instruction
) delete [] m_instruction
; m_instruction
= 0; } virtual const char *GetInstruction() { if (m_instruction
) { return m_instruction
; } m_instruction
= new char[strlen("goto")+strlen(m_args
.GetString())+2]; sprintf(m_instruction
, "%s %s", "goto", m_args
.GetString()); return m_instruction
; } virtual const int GetStackChange() { return 0; } LabelArg
GetArgs() {return m_args
;} void SetArgs(LabelArg aArgs
) {m_args
= aArgs
; if (m_instruction
) delete [] m_instruction
; m_instruction
= 0; } };
35281 template<> class JVMInst
<jvm_goto_w
> : public Instruction
{ private: LabelArg m_args
; char *m_instruction
; public: JVMInst(int aSourceLine
, LabelArg aArgs
) : Instruction(aSourceLine
), m_args(aArgs
), m_instruction(__null
) {} ~JVMInst() {if (m_instruction
) delete [] m_instruction
; m_instruction
= 0; } virtual const char *GetInstruction() { if (m_instruction
) { return m_instruction
; } m_instruction
= new char[strlen("goto_w")+strlen(m_args
.GetString())+2]; sprintf(m_instruction
, "%s %s", "goto_w", m_args
.GetString()); return m_instruction
; } virtual const int GetStackChange() { return 0; } LabelArg
GetArgs() {return m_args
;} void SetArgs(LabelArg aArgs
) {m_args
= aArgs
; if (m_instruction
) delete [] m_instruction
; m_instruction
= 0; } };
35282 template<> class JVMInst
<jvm_if_acmpeq
> : public Instruction
{ private: LabelArg m_args
; char *m_instruction
; public: JVMInst(int aSourceLine
, LabelArg aArgs
) : Instruction(aSourceLine
), m_args(aArgs
), m_instruction(__null
) {} ~JVMInst() {if (m_instruction
) delete [] m_instruction
; m_instruction
= 0; } virtual const char *GetInstruction() { if (m_instruction
) { return m_instruction
; } m_instruction
= new char[strlen("if_acmpeq")+strlen(m_args
.GetString())+2]; sprintf(m_instruction
, "%s %s", "if_acmpeq", m_args
.GetString()); return m_instruction
; } virtual const int GetStackChange() { return -2; } LabelArg
GetArgs() {return m_args
;} void SetArgs(LabelArg aArgs
) {m_args
= aArgs
; if (m_instruction
) delete [] m_instruction
; m_instruction
= 0; } };
35283 template<> class JVMInst
<jvm_if_acmpne
> : public Instruction
{ private: LabelArg m_args
; char *m_instruction
; public: JVMInst(int aSourceLine
, LabelArg aArgs
) : Instruction(aSourceLine
), m_args(aArgs
), m_instruction(__null
) {} ~JVMInst() {if (m_instruction
) delete [] m_instruction
; m_instruction
= 0; } virtual const char *GetInstruction() { if (m_instruction
) { return m_instruction
; } m_instruction
= new char[strlen("if_acmpne")+strlen(m_args
.GetString())+2]; sprintf(m_instruction
, "%s %s", "if_acmpne", m_args
.GetString()); return m_instruction
; } virtual const int GetStackChange() { return -2; } LabelArg
GetArgs() {return m_args
;} void SetArgs(LabelArg aArgs
) {m_args
= aArgs
; if (m_instruction
) delete [] m_instruction
; m_instruction
= 0; } };
35284 template<> class JVMInst
<jvm_if_icmpeq
> : public Instruction
{ private: LabelArg m_args
; char *m_instruction
; public: JVMInst(int aSourceLine
, LabelArg aArgs
) : Instruction(aSourceLine
), m_args(aArgs
), m_instruction(__null
) {} ~JVMInst() {if (m_instruction
) delete [] m_instruction
; m_instruction
= 0; } virtual const char *GetInstruction() { if (m_instruction
) { return m_instruction
; } m_instruction
= new char[strlen("if_icmpeq")+strlen(m_args
.GetString())+2]; sprintf(m_instruction
, "%s %s", "if_icmpeq", m_args
.GetString()); return m_instruction
; } virtual const int GetStackChange() { return -2; } LabelArg
GetArgs() {return m_args
;} void SetArgs(LabelArg aArgs
) {m_args
= aArgs
; if (m_instruction
) delete [] m_instruction
; m_instruction
= 0; } };
35285 template<> class JVMInst
<jvm_if_icmpge
> : public Instruction
{ private: LabelArg m_args
; char *m_instruction
; public: JVMInst(int aSourceLine
, LabelArg aArgs
) : Instruction(aSourceLine
), m_args(aArgs
), m_instruction(__null
) {} ~JVMInst() {if (m_instruction
) delete [] m_instruction
; m_instruction
= 0; } virtual const char *GetInstruction() { if (m_instruction
) { return m_instruction
; } m_instruction
= new char[strlen("if_icmpge")+strlen(m_args
.GetString())+2]; sprintf(m_instruction
, "%s %s", "if_icmpge", m_args
.GetString()); return m_instruction
; } virtual const int GetStackChange() { return -2; } LabelArg
GetArgs() {return m_args
;} void SetArgs(LabelArg aArgs
) {m_args
= aArgs
; if (m_instruction
) delete [] m_instruction
; m_instruction
= 0; } };
35286 template<> class JVMInst
<jvm_if_icmpgt
> : public Instruction
{ private: LabelArg m_args
; char *m_instruction
; public: JVMInst(int aSourceLine
, LabelArg aArgs
) : Instruction(aSourceLine
), m_args(aArgs
), m_instruction(__null
) {} ~JVMInst() {if (m_instruction
) delete [] m_instruction
; m_instruction
= 0; } virtual const char *GetInstruction() { if (m_instruction
) { return m_instruction
; } m_instruction
= new char[strlen("if_icmpgt")+strlen(m_args
.GetString())+2]; sprintf(m_instruction
, "%s %s", "if_icmpgt", m_args
.GetString()); return m_instruction
; } virtual const int GetStackChange() { return -2; } LabelArg
GetArgs() {return m_args
;} void SetArgs(LabelArg aArgs
) {m_args
= aArgs
; if (m_instruction
) delete [] m_instruction
; m_instruction
= 0; } };
35287 template<> class JVMInst
<jvm_if_icmple
> : public Instruction
{ private: LabelArg m_args
; char *m_instruction
; public: JVMInst(int aSourceLine
, LabelArg aArgs
) : Instruction(aSourceLine
), m_args(aArgs
), m_instruction(__null
) {} ~JVMInst() {if (m_instruction
) delete [] m_instruction
; m_instruction
= 0; } virtual const char *GetInstruction() { if (m_instruction
) { return m_instruction
; } m_instruction
= new char[strlen("if_icmple")+strlen(m_args
.GetString())+2]; sprintf(m_instruction
, "%s %s", "if_icmple", m_args
.GetString()); return m_instruction
; } virtual const int GetStackChange() { return -2; } LabelArg
GetArgs() {return m_args
;} void SetArgs(LabelArg aArgs
) {m_args
= aArgs
; if (m_instruction
) delete [] m_instruction
; m_instruction
= 0; } };
35288 template<> class JVMInst
<jvm_if_icmplt
> : public Instruction
{ private: LabelArg m_args
; char *m_instruction
; public: JVMInst(int aSourceLine
, LabelArg aArgs
) : Instruction(aSourceLine
), m_args(aArgs
), m_instruction(__null
) {} ~JVMInst() {if (m_instruction
) delete [] m_instruction
; m_instruction
= 0; } virtual const char *GetInstruction() { if (m_instruction
) { return m_instruction
; } m_instruction
= new char[strlen("if_icmplt")+strlen(m_args
.GetString())+2]; sprintf(m_instruction
, "%s %s", "if_icmplt", m_args
.GetString()); return m_instruction
; } virtual const int GetStackChange() { return -2; } LabelArg
GetArgs() {return m_args
;} void SetArgs(LabelArg aArgs
) {m_args
= aArgs
; if (m_instruction
) delete [] m_instruction
; m_instruction
= 0; } };
35289 template<> class JVMInst
<jvm_if_icmpne
> : public Instruction
{ private: LabelArg m_args
; char *m_instruction
; public: JVMInst(int aSourceLine
, LabelArg aArgs
) : Instruction(aSourceLine
), m_args(aArgs
), m_instruction(__null
) {} ~JVMInst() {if (m_instruction
) delete [] m_instruction
; m_instruction
= 0; } virtual const char *GetInstruction() { if (m_instruction
) { return m_instruction
; } m_instruction
= new char[strlen("if_icmpne")+strlen(m_args
.GetString())+2]; sprintf(m_instruction
, "%s %s", "if_icmpne", m_args
.GetString()); return m_instruction
; } virtual const int GetStackChange() { return -2; } LabelArg
GetArgs() {return m_args
;} void SetArgs(LabelArg aArgs
) {m_args
= aArgs
; if (m_instruction
) delete [] m_instruction
; m_instruction
= 0; } };
35290 template<> class JVMInst
<jvm_ifeq
> : public Instruction
{ private: LabelArg m_args
; char *m_instruction
; public: JVMInst(int aSourceLine
, LabelArg aArgs
) : Instruction(aSourceLine
), m_args(aArgs
), m_instruction(__null
) {} ~JVMInst() {if (m_instruction
) delete [] m_instruction
; m_instruction
= 0; } virtual const char *GetInstruction() { if (m_instruction
) { return m_instruction
; } m_instruction
= new char[strlen("ifeq")+strlen(m_args
.GetString())+2]; sprintf(m_instruction
, "%s %s", "ifeq", m_args
.GetString()); return m_instruction
; } virtual const int GetStackChange() { return -1; } LabelArg
GetArgs() {return m_args
;} void SetArgs(LabelArg aArgs
) {m_args
= aArgs
; if (m_instruction
) delete [] m_instruction
; m_instruction
= 0; } };
35291 template<> class JVMInst
<jvm_ifge
> : public Instruction
{ private: LabelArg m_args
; char *m_instruction
; public: JVMInst(int aSourceLine
, LabelArg aArgs
) : Instruction(aSourceLine
), m_args(aArgs
), m_instruction(__null
) {} ~JVMInst() {if (m_instruction
) delete [] m_instruction
; m_instruction
= 0; } virtual const char *GetInstruction() { if (m_instruction
) { return m_instruction
; } m_instruction
= new char[strlen("ifge")+strlen(m_args
.GetString())+2]; sprintf(m_instruction
, "%s %s", "ifge", m_args
.GetString()); return m_instruction
; } virtual const int GetStackChange() { return -1; } LabelArg
GetArgs() {return m_args
;} void SetArgs(LabelArg aArgs
) {m_args
= aArgs
; if (m_instruction
) delete [] m_instruction
; m_instruction
= 0; } };
35292 template<> class JVMInst
<jvm_ifgt
> : public Instruction
{ private: LabelArg m_args
; char *m_instruction
; public: JVMInst(int aSourceLine
, LabelArg aArgs
) : Instruction(aSourceLine
), m_args(aArgs
), m_instruction(__null
) {} ~JVMInst() {if (m_instruction
) delete [] m_instruction
; m_instruction
= 0; } virtual const char *GetInstruction() { if (m_instruction
) { return m_instruction
; } m_instruction
= new char[strlen("ifgt")+strlen(m_args
.GetString())+2]; sprintf(m_instruction
, "%s %s", "ifgt", m_args
.GetString()); return m_instruction
; } virtual const int GetStackChange() { return -1; } LabelArg
GetArgs() {return m_args
;} void SetArgs(LabelArg aArgs
) {m_args
= aArgs
; if (m_instruction
) delete [] m_instruction
; m_instruction
= 0; } };
35293 template<> class JVMInst
<jvm_ifle
> : public Instruction
{ private: LabelArg m_args
; char *m_instruction
; public: JVMInst(int aSourceLine
, LabelArg aArgs
) : Instruction(aSourceLine
), m_args(aArgs
), m_instruction(__null
) {} ~JVMInst() {if (m_instruction
) delete [] m_instruction
; m_instruction
= 0; } virtual const char *GetInstruction() { if (m_instruction
) { return m_instruction
; } m_instruction
= new char[strlen("ifle")+strlen(m_args
.GetString())+2]; sprintf(m_instruction
, "%s %s", "ifle", m_args
.GetString()); return m_instruction
; } virtual const int GetStackChange() { return -1; } LabelArg
GetArgs() {return m_args
;} void SetArgs(LabelArg aArgs
) {m_args
= aArgs
; if (m_instruction
) delete [] m_instruction
; m_instruction
= 0; } };
35294 template<> class JVMInst
<jvm_iflt
> : public Instruction
{ private: LabelArg m_args
; char *m_instruction
; public: JVMInst(int aSourceLine
, LabelArg aArgs
) : Instruction(aSourceLine
), m_args(aArgs
), m_instruction(__null
) {} ~JVMInst() {if (m_instruction
) delete [] m_instruction
; m_instruction
= 0; } virtual const char *GetInstruction() { if (m_instruction
) { return m_instruction
; } m_instruction
= new char[strlen("iflt")+strlen(m_args
.GetString())+2]; sprintf(m_instruction
, "%s %s", "iflt", m_args
.GetString()); return m_instruction
; } virtual const int GetStackChange() { return -1; } LabelArg
GetArgs() {return m_args
;} void SetArgs(LabelArg aArgs
) {m_args
= aArgs
; if (m_instruction
) delete [] m_instruction
; m_instruction
= 0; } };
35295 template<> class JVMInst
<jvm_ifne
> : public Instruction
{ private: LabelArg m_args
; char *m_instruction
; public: JVMInst(int aSourceLine
, LabelArg aArgs
) : Instruction(aSourceLine
), m_args(aArgs
), m_instruction(__null
) {} ~JVMInst() {if (m_instruction
) delete [] m_instruction
; m_instruction
= 0; } virtual const char *GetInstruction() { if (m_instruction
) { return m_instruction
; } m_instruction
= new char[strlen("ifne")+strlen(m_args
.GetString())+2]; sprintf(m_instruction
, "%s %s", "ifne", m_args
.GetString()); return m_instruction
; } virtual const int GetStackChange() { return -1; } LabelArg
GetArgs() {return m_args
;} void SetArgs(LabelArg aArgs
) {m_args
= aArgs
; if (m_instruction
) delete [] m_instruction
; m_instruction
= 0; } };
35296 template<> class JVMInst
<jvm_ifnonnull
> : public Instruction
{ private: LabelArg m_args
; char *m_instruction
; public: JVMInst(int aSourceLine
, LabelArg aArgs
) : Instruction(aSourceLine
), m_args(aArgs
), m_instruction(__null
) {} ~JVMInst() {if (m_instruction
) delete [] m_instruction
; m_instruction
= 0; } virtual const char *GetInstruction() { if (m_instruction
) { return m_instruction
; } m_instruction
= new char[strlen("ifnonnull")+strlen(m_args
.GetString())+2]; sprintf(m_instruction
, "%s %s", "ifnonnull", m_args
.GetString()); return m_instruction
; } virtual const int GetStackChange() { return -1; } LabelArg
GetArgs() {return m_args
;} void SetArgs(LabelArg aArgs
) {m_args
= aArgs
; if (m_instruction
) delete [] m_instruction
; m_instruction
= 0; } };
35297 template<> class JVMInst
<jvm_ifnull
> : public Instruction
{ private: LabelArg m_args
; char *m_instruction
; public: JVMInst(int aSourceLine
, LabelArg aArgs
) : Instruction(aSourceLine
), m_args(aArgs
), m_instruction(__null
) {} ~JVMInst() {if (m_instruction
) delete [] m_instruction
; m_instruction
= 0; } virtual const char *GetInstruction() { if (m_instruction
) { return m_instruction
; } m_instruction
= new char[strlen("ifnull")+strlen(m_args
.GetString())+2]; sprintf(m_instruction
, "%s %s", "ifnull", m_args
.GetString()); return m_instruction
; } virtual const int GetStackChange() { return -1; } LabelArg
GetArgs() {return m_args
;} void SetArgs(LabelArg aArgs
) {m_args
= aArgs
; if (m_instruction
) delete [] m_instruction
; m_instruction
= 0; } };
35298 template<> class JVMInst
<jvm_jsr
> : public Instruction
{ private: LabelArg m_args
; char *m_instruction
; public: JVMInst(int aSourceLine
, LabelArg aArgs
) : Instruction(aSourceLine
), m_args(aArgs
), m_instruction(__null
) {} ~JVMInst() {if (m_instruction
) delete [] m_instruction
; m_instruction
= 0; } virtual const char *GetInstruction() { if (m_instruction
) { return m_instruction
; } m_instruction
= new char[strlen("jsr")+strlen(m_args
.GetString())+2]; sprintf(m_instruction
, "%s %s", "jsr", m_args
.GetString()); return m_instruction
; } virtual const int GetStackChange() { return +1; } LabelArg
GetArgs() {return m_args
;} void SetArgs(LabelArg aArgs
) {m_args
= aArgs
; if (m_instruction
) delete [] m_instruction
; m_instruction
= 0; } };
35299 template<> class JVMInst
<jvm_jsr_w
> : public Instruction
{ private: LabelArg m_args
; char *m_instruction
; public: JVMInst(int aSourceLine
, LabelArg aArgs
) : Instruction(aSourceLine
), m_args(aArgs
), m_instruction(__null
) {} ~JVMInst() {if (m_instruction
) delete [] m_instruction
; m_instruction
= 0; } virtual const char *GetInstruction() { if (m_instruction
) { return m_instruction
; } m_instruction
= new char[strlen("jsr_w")+strlen(m_args
.GetString())+2]; sprintf(m_instruction
, "%s %s", "jsr_w", m_args
.GetString()); return m_instruction
; } virtual const int GetStackChange() { return +1; } LabelArg
GetArgs() {return m_args
;} void SetArgs(LabelArg aArgs
) {m_args
= aArgs
; if (m_instruction
) delete [] m_instruction
; m_instruction
= 0; } };
35301 template<> class JVMInst
<jvm_anewarray
> : public Instruction
{ private: ClassArg m_args
; char *m_instruction
; public: JVMInst(int aSourceLine
, ClassArg aArgs
) : Instruction(aSourceLine
), m_args(aArgs
), m_instruction(__null
) {} ~JVMInst() {if (m_instruction
) delete [] m_instruction
; m_instruction
= 0; } virtual const char *GetInstruction() { if (m_instruction
) { return m_instruction
; } m_instruction
= new char[strlen("anewarray")+strlen(m_args
.GetString())+2]; sprintf(m_instruction
, "%s %s", "anewarray", m_args
.GetString()); return m_instruction
; } virtual const int GetStackChange() { return 0; } ClassArg
GetArgs() {return m_args
;} void SetArgs(ClassArg aArgs
) {m_args
= aArgs
; if (m_instruction
) delete [] m_instruction
; m_instruction
= 0; } };
35302 template<> class JVMInst
<jvm_checkcast
> : public Instruction
{ private: ClassArg m_args
; char *m_instruction
; public: JVMInst(int aSourceLine
, ClassArg aArgs
) : Instruction(aSourceLine
), m_args(aArgs
), m_instruction(__null
) {} ~JVMInst() {if (m_instruction
) delete [] m_instruction
; m_instruction
= 0; } virtual const char *GetInstruction() { if (m_instruction
) { return m_instruction
; } m_instruction
= new char[strlen("checkcast")+strlen(m_args
.GetString())+2]; sprintf(m_instruction
, "%s %s", "checkcast", m_args
.GetString()); return m_instruction
; } virtual const int GetStackChange() { return 0; } ClassArg
GetArgs() {return m_args
;} void SetArgs(ClassArg aArgs
) {m_args
= aArgs
; if (m_instruction
) delete [] m_instruction
; m_instruction
= 0; } };
35303 template<> class JVMInst
<jvm_instanceof
> : public Instruction
{ private: ClassArg m_args
; char *m_instruction
; public: JVMInst(int aSourceLine
, ClassArg aArgs
) : Instruction(aSourceLine
), m_args(aArgs
), m_instruction(__null
) {} ~JVMInst() {if (m_instruction
) delete [] m_instruction
; m_instruction
= 0; } virtual const char *GetInstruction() { if (m_instruction
) { return m_instruction
; } m_instruction
= new char[strlen("instanceof")+strlen(m_args
.GetString())+2]; sprintf(m_instruction
, "%s %s", "instanceof", m_args
.GetString()); return m_instruction
; } virtual const int GetStackChange() { return 0; } ClassArg
GetArgs() {return m_args
;} void SetArgs(ClassArg aArgs
) {m_args
= aArgs
; if (m_instruction
) delete [] m_instruction
; m_instruction
= 0; } };
35304 template<> class JVMInst
<jvm_new
> : public Instruction
{ private: ClassArg m_args
; char *m_instruction
; public: JVMInst(int aSourceLine
, ClassArg aArgs
) : Instruction(aSourceLine
), m_args(aArgs
), m_instruction(__null
) {} ~JVMInst() {if (m_instruction
) delete [] m_instruction
; m_instruction
= 0; } virtual const char *GetInstruction() { if (m_instruction
) { return m_instruction
; } m_instruction
= new char[strlen("new")+strlen(m_args
.GetString())+2]; sprintf(m_instruction
, "%s %s", "new", m_args
.GetString()); return m_instruction
; } virtual const int GetStackChange() { return +1; } ClassArg
GetArgs() {return m_args
;} void SetArgs(ClassArg aArgs
) {m_args
= aArgs
; if (m_instruction
) delete [] m_instruction
; m_instruction
= 0; } };
35306 template<> class JVMInst
<jvm_invokenonvirtual
> : public Instruction
{ private: MethodSpecArg m_args
; char *m_instruction
; public: JVMInst(int aSourceLine
, MethodSpecArg aArgs
) : Instruction(aSourceLine
), m_args(aArgs
), m_instruction(__null
) {} ~JVMInst() {if (m_instruction
) delete [] m_instruction
; m_instruction
= 0; } virtual const char *GetInstruction() { if (m_instruction
) { return m_instruction
; } m_instruction
= new char[strlen("invokenonvirtual")+strlen(m_args
.GetString())+2]; sprintf(m_instruction
, "%s %s", "invokenonvirtual", m_args
.GetString()); return m_instruction
; } virtual const int GetStackChange() { return (-1-m_args
.ArgStackSize()); } MethodSpecArg
GetArgs() {return m_args
;} void SetArgs(MethodSpecArg aArgs
) {m_args
= aArgs
; if (m_instruction
) delete [] m_instruction
; m_instruction
= 0; } };
35307 template<> class JVMInst
<jvm_invokestatic
> : public Instruction
{ private: MethodSpecArg m_args
; char *m_instruction
; public: JVMInst(int aSourceLine
, MethodSpecArg aArgs
) : Instruction(aSourceLine
), m_args(aArgs
), m_instruction(__null
) {} ~JVMInst() {if (m_instruction
) delete [] m_instruction
; m_instruction
= 0; } virtual const char *GetInstruction() { if (m_instruction
) { return m_instruction
; } m_instruction
= new char[strlen("invokestatic")+strlen(m_args
.GetString())+2]; sprintf(m_instruction
, "%s %s", "invokestatic", m_args
.GetString()); return m_instruction
; } virtual const int GetStackChange() { return (-m_args
.ArgStackSize()); } MethodSpecArg
GetArgs() {return m_args
;} void SetArgs(MethodSpecArg aArgs
) {m_args
= aArgs
; if (m_instruction
) delete [] m_instruction
; m_instruction
= 0; } };
35308 template<> class JVMInst
<jvm_invokevirtual
> : public Instruction
{ private: MethodSpecArg m_args
; char *m_instruction
; public: JVMInst(int aSourceLine
, MethodSpecArg aArgs
) : Instruction(aSourceLine
), m_args(aArgs
), m_instruction(__null
) {} ~JVMInst() {if (m_instruction
) delete [] m_instruction
; m_instruction
= 0; } virtual const char *GetInstruction() { if (m_instruction
) { return m_instruction
; } m_instruction
= new char[strlen("invokevirtual")+strlen(m_args
.GetString())+2]; sprintf(m_instruction
, "%s %s", "invokevirtual", m_args
.GetString()); return m_instruction
; } virtual const int GetStackChange() { return (-1-m_args
.ArgStackSize()); } MethodSpecArg
GetArgs() {return m_args
;} void SetArgs(MethodSpecArg aArgs
) {m_args
= aArgs
; if (m_instruction
) delete [] m_instruction
; m_instruction
= 0; } };
35310 template<> class JVMInst
<jvm_invokeinterface
> : public Instruction
{ private: InterfaceArg m_args
; char *m_instruction
; public: JVMInst(int aSourceLine
, InterfaceArg aArgs
) : Instruction(aSourceLine
), m_args(aArgs
), m_instruction(__null
) {} ~JVMInst() {if (m_instruction
) delete [] m_instruction
; m_instruction
= 0; } virtual const char *GetInstruction() { if (m_instruction
) { return m_instruction
; } m_instruction
= new char[strlen("invokeinterface")+strlen(m_args
.GetString())+2]; sprintf(m_instruction
, "%s %s", "invokeinterface", m_args
.GetString()); return m_instruction
; } virtual const int GetStackChange() { return (-1-m_args
.ArgStackSize()); } InterfaceArg
GetArgs() {return m_args
;} void SetArgs(InterfaceArg aArgs
) {m_args
= aArgs
; if (m_instruction
) delete [] m_instruction
; m_instruction
= 0; } };
35312 template<> class JVMInst
<jvm_getfield
> : public Instruction
{ private: FieldArg m_args
; char *m_instruction
; public: JVMInst(int aSourceLine
, FieldArg aArgs
) : Instruction(aSourceLine
), m_args(aArgs
), m_instruction(__null
) {} ~JVMInst() {if (m_instruction
) delete [] m_instruction
; m_instruction
= 0; } virtual const char *GetInstruction() { if (m_instruction
) { return m_instruction
; } m_instruction
= new char[strlen("getfield")+strlen(m_args
.GetString())+2]; sprintf(m_instruction
, "%s %s", "getfield", m_args
.GetString()); return m_instruction
; } virtual const int GetStackChange() { return (-1+m_args
.GetValueSize()); } FieldArg
GetArgs() {return m_args
;} void SetArgs(FieldArg aArgs
) {m_args
= aArgs
; if (m_instruction
) delete [] m_instruction
; m_instruction
= 0; } };
35313 template<> class JVMInst
<jvm_getstatic
> : public Instruction
{ private: FieldArg m_args
; char *m_instruction
; public: JVMInst(int aSourceLine
, FieldArg aArgs
) : Instruction(aSourceLine
), m_args(aArgs
), m_instruction(__null
) {} ~JVMInst() {if (m_instruction
) delete [] m_instruction
; m_instruction
= 0; } virtual const char *GetInstruction() { if (m_instruction
) { return m_instruction
; } m_instruction
= new char[strlen("getstatic")+strlen(m_args
.GetString())+2]; sprintf(m_instruction
, "%s %s", "getstatic", m_args
.GetString()); return m_instruction
; } virtual const int GetStackChange() { return m_args
.GetValueSize(); } FieldArg
GetArgs() {return m_args
;} void SetArgs(FieldArg aArgs
) {m_args
= aArgs
; if (m_instruction
) delete [] m_instruction
; m_instruction
= 0; } };
35314 template<> class JVMInst
<jvm_putfield
> : public Instruction
{ private: FieldArg m_args
; char *m_instruction
; public: JVMInst(int aSourceLine
, FieldArg aArgs
) : Instruction(aSourceLine
), m_args(aArgs
), m_instruction(__null
) {} ~JVMInst() {if (m_instruction
) delete [] m_instruction
; m_instruction
= 0; } virtual const char *GetInstruction() { if (m_instruction
) { return m_instruction
; } m_instruction
= new char[strlen("putfield")+strlen(m_args
.GetString())+2]; sprintf(m_instruction
, "%s %s", "putfield", m_args
.GetString()); return m_instruction
; } virtual const int GetStackChange() { return (-1-m_args
.GetValueSize()); } FieldArg
GetArgs() {return m_args
;} void SetArgs(FieldArg aArgs
) {m_args
= aArgs
; if (m_instruction
) delete [] m_instruction
; m_instruction
= 0; } };
35315 template<> class JVMInst
<jvm_putstatic
> : public Instruction
{ private: FieldArg m_args
; char *m_instruction
; public: JVMInst(int aSourceLine
, FieldArg aArgs
) : Instruction(aSourceLine
), m_args(aArgs
), m_instruction(__null
) {} ~JVMInst() {if (m_instruction
) delete [] m_instruction
; m_instruction
= 0; } virtual const char *GetInstruction() { if (m_instruction
) { return m_instruction
; } m_instruction
= new char[strlen("putstatic")+strlen(m_args
.GetString())+2]; sprintf(m_instruction
, "%s %s", "putstatic", m_args
.GetString()); return m_instruction
; } virtual const int GetStackChange() { return -m_args
.GetValueSize(); } FieldArg
GetArgs() {return m_args
;} void SetArgs(FieldArg aArgs
) {m_args
= aArgs
; if (m_instruction
) delete [] m_instruction
; m_instruction
= 0; } };
35317 template<> class JVMInst
<jvm_newarray
> : public Instruction
{ private: ArrayTypeArg m_args
; char *m_instruction
; public: JVMInst(int aSourceLine
, ArrayTypeArg aArgs
) : Instruction(aSourceLine
), m_args(aArgs
), m_instruction(__null
) {} ~JVMInst() {if (m_instruction
) delete [] m_instruction
; m_instruction
= 0; } virtual const char *GetInstruction() { if (m_instruction
) { return m_instruction
; } m_instruction
= new char[strlen("newarray")+strlen(m_args
.GetString())+2]; sprintf(m_instruction
, "%s %s", "newarray", m_args
.GetString()); return m_instruction
; } virtual const int GetStackChange() { return 0; } ArrayTypeArg
GetArgs() {return m_args
;} void SetArgs(ArrayTypeArg aArgs
) {m_args
= aArgs
; if (m_instruction
) delete [] m_instruction
; m_instruction
= 0; } };
35319 template<> class JVMInst
<jvm_multianewarray
> : public Instruction
{ private: MultiANewArrayArg m_args
; char *m_instruction
; public: JVMInst(int aSourceLine
, MultiANewArrayArg aArgs
) : Instruction(aSourceLine
), m_args(aArgs
), m_instruction(__null
) {} ~JVMInst() {if (m_instruction
) delete [] m_instruction
; m_instruction
= 0; } virtual const char *GetInstruction() { if (m_instruction
) { return m_instruction
; } m_instruction
= new char[strlen("multianewarray")+strlen(m_args
.GetString())+2]; sprintf(m_instruction
, "%s %s", "multianewarray", m_args
.GetString()); return m_instruction
; } virtual const int GetStackChange() { return -m_args
.ArgStackSize(); } MultiANewArrayArg
GetArgs() {return m_args
;} void SetArgs(MultiANewArrayArg aArgs
) {m_args
= aArgs
; if (m_instruction
) delete [] m_instruction
; m_instruction
= 0; } };
35321 template<> class JVMInst
<jvm_ldc
> : public Instruction
{ private: ConstantArg m_args
; char *m_instruction
; public: JVMInst(int aSourceLine
, ConstantArg aArgs
) : Instruction(aSourceLine
), m_args(aArgs
), m_instruction(__null
) {} ~JVMInst() {if (m_instruction
) delete [] m_instruction
; m_instruction
= 0; } virtual const char *GetInstruction() { if (m_instruction
) { return m_instruction
; } m_instruction
= new char[strlen("ldc")+strlen(m_args
.GetString())+2]; sprintf(m_instruction
, "%s %s", "ldc", m_args
.GetString()); return m_instruction
; } virtual const int GetStackChange() { return +1; } ConstantArg
GetArgs() {return m_args
;} void SetArgs(ConstantArg aArgs
) {m_args
= aArgs
; if (m_instruction
) delete [] m_instruction
; m_instruction
= 0; } };
35322 template<> class JVMInst
<jvm_ldc_w
> : public Instruction
{ private: ConstantArg m_args
; char *m_instruction
; public: JVMInst(int aSourceLine
, ConstantArg aArgs
) : Instruction(aSourceLine
), m_args(aArgs
), m_instruction(__null
) {} ~JVMInst() {if (m_instruction
) delete [] m_instruction
; m_instruction
= 0; } virtual const char *GetInstruction() { if (m_instruction
) { return m_instruction
; } m_instruction
= new char[strlen("ldc_w")+strlen(m_args
.GetString())+2]; sprintf(m_instruction
, "%s %s", "ldc_w", m_args
.GetString()); return m_instruction
; } virtual const int GetStackChange() { return +1; } ConstantArg
GetArgs() {return m_args
;} void SetArgs(ConstantArg aArgs
) {m_args
= aArgs
; if (m_instruction
) delete [] m_instruction
; m_instruction
= 0; } };
35323 template<> class JVMInst
<jvm_ldc2_w
> : public Instruction
{ private: ConstantArg m_args
; char *m_instruction
; public: JVMInst(int aSourceLine
, ConstantArg aArgs
) : Instruction(aSourceLine
), m_args(aArgs
), m_instruction(__null
) {} ~JVMInst() {if (m_instruction
) delete [] m_instruction
; m_instruction
= 0; } virtual const char *GetInstruction() { if (m_instruction
) { return m_instruction
; } m_instruction
= new char[strlen("ldc2_w")+strlen(m_args
.GetString())+2]; sprintf(m_instruction
, "%s %s", "ldc2_w", m_args
.GetString()); return m_instruction
; } virtual const int GetStackChange() { return +2; } ConstantArg
GetArgs() {return m_args
;} void SetArgs(ConstantArg aArgs
) {m_args
= aArgs
; if (m_instruction
) delete [] m_instruction
; m_instruction
= 0; } };
35325 template<> class JVMInst
<jvm_lookupswitch
> : public Instruction
{ private: LookupSwitchArg m_args
; char *m_instruction
; public: JVMInst(int aSourceLine
, LookupSwitchArg aArgs
) : Instruction(aSourceLine
), m_args(aArgs
), m_instruction(__null
) {} ~JVMInst() {if (m_instruction
) delete [] m_instruction
; m_instruction
= 0; } virtual const char *GetInstruction() { if (m_instruction
) { return m_instruction
; } m_instruction
= new char[strlen("lookupswitch")+strlen(m_args
.GetString())+2]; sprintf(m_instruction
, "%s %s", "lookupswitch", m_args
.GetString()); return m_instruction
; } virtual const int GetStackChange() { return -1; } LookupSwitchArg
GetArgs() {return m_args
;} void SetArgs(LookupSwitchArg aArgs
) {m_args
= aArgs
; if (m_instruction
) delete [] m_instruction
; m_instruction
= 0; } };
35326 template<> class JVMInst
<jvm_tableswitch
> : public Instruction
{ private: TableSwitchArg m_args
; char *m_instruction
; public: JVMInst(int aSourceLine
, TableSwitchArg aArgs
) : Instruction(aSourceLine
), m_args(aArgs
), m_instruction(__null
) {} ~JVMInst() {if (m_instruction
) delete [] m_instruction
; m_instruction
= 0; } virtual const char *GetInstruction() { if (m_instruction
) { return m_instruction
; } m_instruction
= new char[strlen("tableswitch")+strlen(m_args
.GetString())+2]; sprintf(m_instruction
, "%s %s", "tableswitch", m_args
.GetString()); return m_instruction
; } virtual const int GetStackChange() { return -1; } TableSwitchArg
GetArgs() {return m_args
;} void SetArgs(TableSwitchArg aArgs
) {m_args
= aArgs
; if (m_instruction
) delete [] m_instruction
; m_instruction
= 0; } };
35328 template<> class JVMInst
<jvm_aaload
> { virtual const char *GetInstruction() {return "aaload";} virtual const int GetStackChange() {return -1;} };
35329 template<> class JVMInst
<jvm_aastore
> { virtual const char *GetInstruction() {return "aastore";} virtual const int GetStackChange() {return -3;} };
35330 template<> class JVMInst
<jvm_aconst_null
> { virtual const char *GetInstruction() {return "aconst_null";} virtual const int GetStackChange() {return +1;} };
35331 template<> class JVMInst
<jvm_aload_0
> { virtual const char *GetInstruction() {return "aload_0";} virtual const int GetStackChange() {return +1;} };
35332 template<> class JVMInst
<jvm_aload_1
> { virtual const char *GetInstruction() {return "aload_1";} virtual const int GetStackChange() {return +1;} };
35333 template<> class JVMInst
<jvm_aload_2
> { virtual const char *GetInstruction() {return "aload_2";} virtual const int GetStackChange() {return +1;} };
35334 template<> class JVMInst
<jvm_aload_3
> { virtual const char *GetInstruction() {return "aload_3";} virtual const int GetStackChange() {return +1;} };
35335 template<> class JVMInst
<jvm_areturn
> { virtual const char *GetInstruction() {return "areturn";} virtual const int GetStackChange() {return -1;} };
35336 template<> class JVMInst
<jvm_arraylength
> { virtual const char *GetInstruction() {return "arraylength";} virtual const int GetStackChange() {return 0;} };
35337 template<> class JVMInst
<jvm_astore_0
> { virtual const char *GetInstruction() {return "astore_0";} virtual const int GetStackChange() {return -1;} };
35338 template<> class JVMInst
<jvm_astore_1
> { virtual const char *GetInstruction() {return "astore_1";} virtual const int GetStackChange() {return -1;} };
35339 template<> class JVMInst
<jvm_astore_2
> { virtual const char *GetInstruction() {return "astore_2";} virtual const int GetStackChange() {return -1;} };
35340 template<> class JVMInst
<jvm_astore_3
> { virtual const char *GetInstruction() {return "astore_3";} virtual const int GetStackChange() {return -1;} };
35341 template<> class JVMInst
<jvm_athrow
> { virtual const char *GetInstruction() {return "athrow";} virtual const int GetStackChange() {return 0;} };
35342 template<> class JVMInst
<jvm_baload
> { virtual const char *GetInstruction() {return "baload";} virtual const int GetStackChange() {return -1;} };
35343 template<> class JVMInst
<jvm_bastore
> { virtual const char *GetInstruction() {return "bastore";} virtual const int GetStackChange() {return -3;} };
35344 template<> class JVMInst
<jvm_breakpoint
> { virtual const char *GetInstruction() {return "breakpoint";} virtual const int GetStackChange() {return 0;} };
35345 template<> class JVMInst
<jvm_caload
> { virtual const char *GetInstruction() {return "caload";} virtual const int GetStackChange() {return -1;} };
35346 template<> class JVMInst
<jvm_castore
> { virtual const char *GetInstruction() {return "castore";} virtual const int GetStackChange() {return -3;} };
35347 template<> class JVMInst
<jvm_d2f
> { virtual const char *GetInstruction() {return "d2f";} virtual const int GetStackChange() {return -1;} };
35348 template<> class JVMInst
<jvm_d2i
> { virtual const char *GetInstruction() {return "d2i";} virtual const int GetStackChange() {return -1;} };
35349 template<> class JVMInst
<jvm_d2l
> { virtual const char *GetInstruction() {return "d2l";} virtual const int GetStackChange() {return 0;} };
35350 template<> class JVMInst
<jvm_dadd
> { virtual const char *GetInstruction() {return "dadd";} virtual const int GetStackChange() {return -2;} };
35351 template<> class JVMInst
<jvm_daload
> { virtual const char *GetInstruction() {return "daload";} virtual const int GetStackChange() {return 0;} };
35352 template<> class JVMInst
<jvm_dastore
> { virtual const char *GetInstruction() {return "dastore";} virtual const int GetStackChange() {return -4;} };
35353 template<> class JVMInst
<jvm_dcmpg
> { virtual const char *GetInstruction() {return "dcmpg";} virtual const int GetStackChange() {return -3;} };
35354 template<> class JVMInst
<jvm_dcmpl
> { virtual const char *GetInstruction() {return "dcmpl";} virtual const int GetStackChange() {return -3;} };
35355 template<> class JVMInst
<jvm_dconst_0
> { virtual const char *GetInstruction() {return "dconst_0";} virtual const int GetStackChange() {return +2;} };
35356 template<> class JVMInst
<jvm_dconst_1
> { virtual const char *GetInstruction() {return "dconst_1";} virtual const int GetStackChange() {return +2;} };
35357 template<> class JVMInst
<jvm_ddiv
> { virtual const char *GetInstruction() {return "ddiv";} virtual const int GetStackChange() {return -2;} };
35358 template<> class JVMInst
<jvm_dload_0
> { virtual const char *GetInstruction() {return "dload_0";} virtual const int GetStackChange() {return +2;} };
35359 template<> class JVMInst
<jvm_dload_1
> { virtual const char *GetInstruction() {return "dload_1";} virtual const int GetStackChange() {return +2;} };
35360 template<> class JVMInst
<jvm_dload_2
> { virtual const char *GetInstruction() {return "dload_2";} virtual const int GetStackChange() {return +2;} };
35361 template<> class JVMInst
<jvm_dload_3
> { virtual const char *GetInstruction() {return "dload_3";} virtual const int GetStackChange() {return +2;} };
35362 template<> class JVMInst
<jvm_dmul
> { virtual const char *GetInstruction() {return "dmul";} virtual const int GetStackChange() {return -2;} };
35363 template<> class JVMInst
<jvm_dneg
> { virtual const char *GetInstruction() {return "dneg";} virtual const int GetStackChange() {return 0;} };
35364 template<> class JVMInst
<jvm_drem
> { virtual const char *GetInstruction() {return "drem";} virtual const int GetStackChange() {return -2;} };
35365 template<> class JVMInst
<jvm_dreturn
> { virtual const char *GetInstruction() {return "dreturn";} virtual const int GetStackChange() {return -2;} };
35366 template<> class JVMInst
<jvm_dstore_0
> { virtual const char *GetInstruction() {return "dstore_0";} virtual const int GetStackChange() {return -2;} };
35367 template<> class JVMInst
<jvm_dstore_1
> { virtual const char *GetInstruction() {return "dstore_1";} virtual const int GetStackChange() {return -2;} };
35368 template<> class JVMInst
<jvm_dstore_2
> { virtual const char *GetInstruction() {return "dstore_2";} virtual const int GetStackChange() {return -2;} };
35369 template<> class JVMInst
<jvm_dstore_3
> { virtual const char *GetInstruction() {return "dstore_3";} virtual const int GetStackChange() {return -2;} };
35370 template<> class JVMInst
<jvm_dsub
> { virtual const char *GetInstruction() {return "dsub";} virtual const int GetStackChange() {return -2;} };
35371 template<> class JVMInst
<jvm_dup
> { virtual const char *GetInstruction() {return "dup";} virtual const int GetStackChange() {return +1;} };
35372 template<> class JVMInst
<jvm_dup2
> { virtual const char *GetInstruction() {return "dup2";} virtual const int GetStackChange() {return +2;} };
35373 template<> class JVMInst
<jvm_dup2_x1
> { virtual const char *GetInstruction() {return "dup2_x1";} virtual const int GetStackChange() {return +2;} };
35374 template<> class JVMInst
<jvm_dup2_x2
> { virtual const char *GetInstruction() {return "dup2_x2";} virtual const int GetStackChange() {return +2;} };
35375 template<> class JVMInst
<jvm_dup_x1
> { virtual const char *GetInstruction() {return "dup_x1";} virtual const int GetStackChange() {return +1;} };
35376 template<> class JVMInst
<jvm_dup_x2
> { virtual const char *GetInstruction() {return "dup_x2";} virtual const int GetStackChange() {return +1;} };
35377 template<> class JVMInst
<jvm_f2d
> { virtual const char *GetInstruction() {return "f2d";} virtual const int GetStackChange() {return +1;} };
35378 template<> class JVMInst
<jvm_f2i
> { virtual const char *GetInstruction() {return "f2i";} virtual const int GetStackChange() {return 0;} };
35379 template<> class JVMInst
<jvm_f2l
> { virtual const char *GetInstruction() {return "f2l";} virtual const int GetStackChange() {return +1;} };
35380 template<> class JVMInst
<jvm_fadd
> { virtual const char *GetInstruction() {return "fadd";} virtual const int GetStackChange() {return -1;} };
35381 template<> class JVMInst
<jvm_faload
> { virtual const char *GetInstruction() {return "faload";} virtual const int GetStackChange() {return -1;} };
35382 template<> class JVMInst
<jvm_fastore
> { virtual const char *GetInstruction() {return "fastore";} virtual const int GetStackChange() {return -3;} };
35383 template<> class JVMInst
<jvm_fcmpg
> { virtual const char *GetInstruction() {return "fcmpg";} virtual const int GetStackChange() {return -1;} };
35384 template<> class JVMInst
<jvm_fcmpl
> { virtual const char *GetInstruction() {return "fcmpl";} virtual const int GetStackChange() {return -1;} };
35385 template<> class JVMInst
<jvm_fconst_0
> { virtual const char *GetInstruction() {return "fconst_0";} virtual const int GetStackChange() {return +1;} };
35386 template<> class JVMInst
<jvm_fconst_1
> { virtual const char *GetInstruction() {return "fconst_1";} virtual const int GetStackChange() {return +1;} };
35387 template<> class JVMInst
<jvm_fconst_2
> { virtual const char *GetInstruction() {return "fconst_2";} virtual const int GetStackChange() {return +1;} };
35388 template<> class JVMInst
<jvm_fdiv
> { virtual const char *GetInstruction() {return "fdiv";} virtual const int GetStackChange() {return -1;} };
35389 template<> class JVMInst
<jvm_fload_0
> { virtual const char *GetInstruction() {return "fload_0";} virtual const int GetStackChange() {return +1;} };
35390 template<> class JVMInst
<jvm_fload_1
> { virtual const char *GetInstruction() {return "fload_1";} virtual const int GetStackChange() {return +1;} };
35391 template<> class JVMInst
<jvm_fload_2
> { virtual const char *GetInstruction() {return "fload_2";} virtual const int GetStackChange() {return +1;} };
35392 template<> class JVMInst
<jvm_fload_3
> { virtual const char *GetInstruction() {return "fload_3";} virtual const int GetStackChange() {return +1;} };
35393 template<> class JVMInst
<jvm_fmul
> { virtual const char *GetInstruction() {return "fmul";} virtual const int GetStackChange() {return -1;} };
35394 template<> class JVMInst
<jvm_fneg
> { virtual const char *GetInstruction() {return "fneg";} virtual const int GetStackChange() {return 0;} };
35395 template<> class JVMInst
<jvm_frem
> { virtual const char *GetInstruction() {return "frem";} virtual const int GetStackChange() {return -1;} };
35396 template<> class JVMInst
<jvm_freturn
> { virtual const char *GetInstruction() {return "freturn";} virtual const int GetStackChange() {return -1;} };
35397 template<> class JVMInst
<jvm_fstore_0
> { virtual const char *GetInstruction() {return "fstore_0";} virtual const int GetStackChange() {return -1;} };
35398 template<> class JVMInst
<jvm_fstore_1
> { virtual const char *GetInstruction() {return "fstore_1";} virtual const int GetStackChange() {return -1;} };
35399 template<> class JVMInst
<jvm_fstore_2
> { virtual const char *GetInstruction() {return "fstore_2";} virtual const int GetStackChange() {return -1;} };
35400 template<> class JVMInst
<jvm_fstore_3
> { virtual const char *GetInstruction() {return "fstore_3";} virtual const int GetStackChange() {return -1;} };
35401 template<> class JVMInst
<jvm_fsub
> { virtual const char *GetInstruction() {return "fsub";} virtual const int GetStackChange() {return -1;} };
35402 template<> class JVMInst
<jvm_i2d
> { virtual const char *GetInstruction() {return "i2d";} virtual const int GetStackChange() {return +1;} };
35403 template<> class JVMInst
<jvm_i2f
> { virtual const char *GetInstruction() {return "i2f";} virtual const int GetStackChange() {return 0;} };
35404 template<> class JVMInst
<jvm_i2l
> { virtual const char *GetInstruction() {return "i2l";} virtual const int GetStackChange() {return +1;} };
35405 template<> class JVMInst
<jvm_iadd
> { virtual const char *GetInstruction() {return "iadd";} virtual const int GetStackChange() {return -1;} };
35406 template<> class JVMInst
<jvm_iaload
> { virtual const char *GetInstruction() {return "iaload";} virtual const int GetStackChange() {return -1;} };
35407 template<> class JVMInst
<jvm_iand
> { virtual const char *GetInstruction() {return "iand";} virtual const int GetStackChange() {return -1;} };
35408 template<> class JVMInst
<jvm_iastore
> { virtual const char *GetInstruction() {return "iastore";} virtual const int GetStackChange() {return -3;} };
35409 template<> class JVMInst
<jvm_iconst_0
> { virtual const char *GetInstruction() {return "iconst_0";} virtual const int GetStackChange() {return +1;} };
35410 template<> class JVMInst
<jvm_iconst_1
> { virtual const char *GetInstruction() {return "iconst_1";} virtual const int GetStackChange() {return +1;} };
35411 template<> class JVMInst
<jvm_iconst_2
> { virtual const char *GetInstruction() {return "iconst_2";} virtual const int GetStackChange() {return +1;} };
35412 template<> class JVMInst
<jvm_iconst_3
> { virtual const char *GetInstruction() {return "iconst_3";} virtual const int GetStackChange() {return +1;} };
35413 template<> class JVMInst
<jvm_iconst_4
> { virtual const char *GetInstruction() {return "iconst_4";} virtual const int GetStackChange() {return +1;} };
35414 template<> class JVMInst
<jvm_iconst_5
> { virtual const char *GetInstruction() {return "iconst_5";} virtual const int GetStackChange() {return +1;} };
35415 template<> class JVMInst
<jvm_iconst_m1
> { virtual const char *GetInstruction() {return "iconst_m1";} virtual const int GetStackChange() {return +1;} };
35416 template<> class JVMInst
<jvm_idiv
> { virtual const char *GetInstruction() {return "idiv";} virtual const int GetStackChange() {return -1;} };
35417 template<> class JVMInst
<jvm_iload_0
> { virtual const char *GetInstruction() {return "iload_0";} virtual const int GetStackChange() {return +1;} };
35418 template<> class JVMInst
<jvm_iload_1
> { virtual const char *GetInstruction() {return "iload_1";} virtual const int GetStackChange() {return +1;} };
35419 template<> class JVMInst
<jvm_iload_2
> { virtual const char *GetInstruction() {return "iload_2";} virtual const int GetStackChange() {return +1;} };
35420 template<> class JVMInst
<jvm_iload_3
> { virtual const char *GetInstruction() {return "iload_3";} virtual const int GetStackChange() {return +1;} };
35421 template<> class JVMInst
<jvm_imul
> { virtual const char *GetInstruction() {return "imul";} virtual const int GetStackChange() {return -1;} };
35422 template<> class JVMInst
<jvm_ineg
> { virtual const char *GetInstruction() {return "ineg";} virtual const int GetStackChange() {return 0;} };
35423 template<> class JVMInst
<jvm_int2byte
> { virtual const char *GetInstruction() {return "int2byte";} virtual const int GetStackChange() {return 0;} };
35424 template<> class JVMInst
<jvm_int2char
> { virtual const char *GetInstruction() {return "int2char";} virtual const int GetStackChange() {return 0;} };
35425 template<> class JVMInst
<jvm_int2short
> { virtual const char *GetInstruction() {return "int2short";} virtual const int GetStackChange() {return 0;} };
35426 template<> class JVMInst
<jvm_ior
> { virtual const char *GetInstruction() {return "ior";} virtual const int GetStackChange() {return -1;} };
35427 template<> class JVMInst
<jvm_irem
> { virtual const char *GetInstruction() {return "irem";} virtual const int GetStackChange() {return -1;} };
35428 template<> class JVMInst
<jvm_ireturn
> { virtual const char *GetInstruction() {return "ireturn";} virtual const int GetStackChange() {return -1;} };
35429 template<> class JVMInst
<jvm_ishl
> { virtual const char *GetInstruction() {return "ishl";} virtual const int GetStackChange() {return -1;} };
35430 template<> class JVMInst
<jvm_ishr
> { virtual const char *GetInstruction() {return "ishr";} virtual const int GetStackChange() {return -1;} };
35431 template<> class JVMInst
<jvm_istore_0
> { virtual const char *GetInstruction() {return "istore_0";} virtual const int GetStackChange() {return -1;} };
35432 template<> class JVMInst
<jvm_istore_1
> { virtual const char *GetInstruction() {return "istore_1";} virtual const int GetStackChange() {return -1;} };
35433 template<> class JVMInst
<jvm_istore_2
> { virtual const char *GetInstruction() {return "istore_2";} virtual const int GetStackChange() {return -1;} };
35434 template<> class JVMInst
<jvm_istore_3
> { virtual const char *GetInstruction() {return "istore_3";} virtual const int GetStackChange() {return -1;} };
35435 template<> class JVMInst
<jvm_isub
> { virtual const char *GetInstruction() {return "isub";} virtual const int GetStackChange() {return -1;} };
35436 template<> class JVMInst
<jvm_iushr
> { virtual const char *GetInstruction() {return "iushr";} virtual const int GetStackChange() {return -1;} };
35437 template<> class JVMInst
<jvm_ixor
> { virtual const char *GetInstruction() {return "ixor";} virtual const int GetStackChange() {return -1;} };
35438 template<> class JVMInst
<jvm_l2d
> { virtual const char *GetInstruction() {return "l2d";} virtual const int GetStackChange() {return 0;} };
35439 template<> class JVMInst
<jvm_l2f
> { virtual const char *GetInstruction() {return "l2f";} virtual const int GetStackChange() {return -1;} };
35440 template<> class JVMInst
<jvm_l2i
> { virtual const char *GetInstruction() {return "l2i";} virtual const int GetStackChange() {return -1;} };
35441 template<> class JVMInst
<jvm_ladd
> { virtual const char *GetInstruction() {return "ladd";} virtual const int GetStackChange() {return -2;} };
35442 template<> class JVMInst
<jvm_laload
> { virtual const char *GetInstruction() {return "laload";} virtual const int GetStackChange() {return 0;} };
35443 template<> class JVMInst
<jvm_land
> { virtual const char *GetInstruction() {return "land";} virtual const int GetStackChange() {return -2;} };
35444 template<> class JVMInst
<jvm_lastore
> { virtual const char *GetInstruction() {return "lastore";} virtual const int GetStackChange() {return -4;} };
35445 template<> class JVMInst
<jvm_lcmp
> { virtual const char *GetInstruction() {return "lcmp";} virtual const int GetStackChange() {return -3;} };
35446 template<> class JVMInst
<jvm_lconst_0
> { virtual const char *GetInstruction() {return "lconst_0";} virtual const int GetStackChange() {return +2;} };
35447 template<> class JVMInst
<jvm_lconst_1
> { virtual const char *GetInstruction() {return "lconst_1";} virtual const int GetStackChange() {return +2;} };
35448 template<> class JVMInst
<jvm_ldiv
> { virtual const char *GetInstruction() {return "ldiv";} virtual const int GetStackChange() {return -2;} };
35449 template<> class JVMInst
<jvm_lload_0
> { virtual const char *GetInstruction() {return "lload_0";} virtual const int GetStackChange() {return +2;} };
35450 template<> class JVMInst
<jvm_lload_1
> { virtual const char *GetInstruction() {return "lload_1";} virtual const int GetStackChange() {return +2;} };
35451 template<> class JVMInst
<jvm_lload_2
> { virtual const char *GetInstruction() {return "lload_2";} virtual const int GetStackChange() {return +2;} };
35452 template<> class JVMInst
<jvm_lload_3
> { virtual const char *GetInstruction() {return "lload_3";} virtual const int GetStackChange() {return +2;} };
35453 template<> class JVMInst
<jvm_lmul
> { virtual const char *GetInstruction() {return "lmul";} virtual const int GetStackChange() {return -2;} };
35454 template<> class JVMInst
<jvm_lneg
> { virtual const char *GetInstruction() {return "lneg";} virtual const int GetStackChange() {return 0;} };
35455 template<> class JVMInst
<jvm_lor
> { virtual const char *GetInstruction() {return "lor";} virtual const int GetStackChange() {return -2;} };
35456 template<> class JVMInst
<jvm_lrem
> { virtual const char *GetInstruction() {return "lrem";} virtual const int GetStackChange() {return -2;} };
35457 template<> class JVMInst
<jvm_lreturn
> { virtual const char *GetInstruction() {return "lreturn";} virtual const int GetStackChange() {return -2;} };
35458 template<> class JVMInst
<jvm_lshl
> { virtual const char *GetInstruction() {return "lshl";} virtual const int GetStackChange() {return -1;} };
35459 template<> class JVMInst
<jvm_lshr
> { virtual const char *GetInstruction() {return "lshr";} virtual const int GetStackChange() {return -1;} };
35460 template<> class JVMInst
<jvm_lstore_0
> { virtual const char *GetInstruction() {return "lstore_0";} virtual const int GetStackChange() {return -2;} };
35461 template<> class JVMInst
<jvm_lstore_1
> { virtual const char *GetInstruction() {return "lstore_1";} virtual const int GetStackChange() {return -2;} };
35462 template<> class JVMInst
<jvm_lstore_2
> { virtual const char *GetInstruction() {return "lstore_2";} virtual const int GetStackChange() {return -2;} };
35463 template<> class JVMInst
<jvm_lstore_3
> { virtual const char *GetInstruction() {return "lstore_3";} virtual const int GetStackChange() {return -2;} };
35464 template<> class JVMInst
<jvm_lsub
> { virtual const char *GetInstruction() {return "lsub";} virtual const int GetStackChange() {return -2;} };
35465 template<> class JVMInst
<jvm_lushr
> { virtual const char *GetInstruction() {return "lushr";} virtual const int GetStackChange() {return -1;} };
35466 template<> class JVMInst
<jvm_lxor
> { virtual const char *GetInstruction() {return "lxor";} virtual const int GetStackChange() {return -2;} };
35467 template<> class JVMInst
<jvm_monitorenter
> { virtual const char *GetInstruction() {return "monitorenter";} virtual const int GetStackChange() {return -1;} };
35468 template<> class JVMInst
<jvm_monitorexit
> { virtual const char *GetInstruction() {return "monitorexit";} virtual const int GetStackChange() {return -1;} };
35469 template<> class JVMInst
<jvm_nop
> { virtual const char *GetInstruction() {return "nop";} virtual const int GetStackChange() {return 0;} };
35470 template<> class JVMInst
<jvm_pop
> { virtual const char *GetInstruction() {return "pop";} virtual const int GetStackChange() {return -1;} };
35471 template<> class JVMInst
<jvm_pop2
> { virtual const char *GetInstruction() {return "pop2";} virtual const int GetStackChange() {return -2;} };
35472 template<> class JVMInst
<jvm_return
> { virtual const char *GetInstruction() {return "return";} virtual const int GetStackChange() {return 0;} };
35473 template<> class JVMInst
<jvm_saload
> { virtual const char *GetInstruction() {return "saload";} virtual const int GetStackChange() {return -1;} };
35474 template<> class JVMInst
<jvm_sastore
> { virtual const char *GetInstruction() {return "sastore";} virtual const int GetStackChange() {return -3;} };
35475 template<> class JVMInst
<jvm_swap
> { virtual const char *GetInstruction() {return "swap";} virtual const int GetStackChange() {return 0;} };
35480 Jasmin() : m_idents(jl::ast::IdentifierManager::GetInstance()) {};
35483 typedef __gnu_cxx::hash
<jl::ast::ident
> hashFunc
;
35486 bool operator() (jl::ast::ident aI1
, jl::ast::ident aI2
) const
35488 return ( aI1
== aI2
);
35494 Function(const char *aName
) : m_name(aName
), m_max_stack_size(0), m_current_stack_size(0), m_num_locals(0) {}
35497 const char *m_name
;
35498 int m_max_stack_size
;
35499 int m_current_stack_size
;
35501 instList m_instructions
;
35503 void Add(Instruction
* aInst
);
35504 void Add(instList aInstructions
);
35506 typedef __gnu_cxx::hash_map
<jl::ast::ident
, Function
*, hashFunc
, hashComp
> funcMap
;
35508 jl::ast::IdentifierManager
& m_idents
;
35509 funcMap m_functions
;
35510 Function
*m_add_to
;
35513 void AddToFunc(jl::ast::ident aIdent
, Instruction
* aInst
);
35515 void AddToFunc(jl::ast::ident aIdent
, instList aInstructions
);
35518 void AddToFunc(Instruction
* aInst
);
35521 void AddToFunc(instList aInstructions
);
35523 void AddToFunc(jl::ast::ident aIdent
);
35530 namespace jl
{ namespace jvm
{;
35532 char *QuoteString(char * s
)
35534 char *c
= s
, *r
, *rc
;
35549 rc
= r
= new char[len
+2];
35579 template <> const char *ConstantArgT
<int>::GetString()
35581 if (m_string
) return m_string
;
35582 m_string
= new char[(m_value
>= 0) ? m_value
/10 +2 : -m_value
/10 +3];
35583 sprintf(m_string
, "%d", m_value
);
35586 template <> const char *ConstantArgT
<double>::GetString()
35588 if (m_string
) return m_string
;
35589 m_string
= new char[32];
35590 m_string
[snprintf(m_string
, 32, "%g", m_value
)] = 0;
35594 template <> const char *ConstantArgT
<bool>::GetString()
35596 return (m_value
) ? "1" : "0";
35599 template <> ConstantArgT
<char*>::ConstantArgT(char *aValue
) : m_string(__null
)
35601 m_value
= strdup(aValue
);
35604 template <> ConstantArgT
<char*>::~ConstantArgT()
35608 template <> const char *ConstantArgT
<char*>::GetString()
35610 if (m_string
) return m_string
;
35611 return m_string
= QuoteString(m_value
);
35615 unsigned int MethodSpecArg::ArgStackSize()
35617 char *c
= m_descriptor
;
35618 unsigned int s
= 0;
35621 bool start
= false;
35623 bool in_class
= false;
35624 bool in_array
= false;
35628 ((void) (start
&& in_class
|| ::jl::DoAssertFault( "start && in_class", 0, "jasmin.cpp", 101 )));
35633 ((void) (!start
&& !stop
&& !in_class
|| ::jl::DoAssertFault( "!start && !stop && !in_class", 0, "jasmin.cpp", 106 )));
35637 ((void) (start
&& !stop
&& !in_class
|| ::jl::DoAssertFault( "start && !stop && !in_class", 0, "jasmin.cpp", 110 )));
35641 ((void) (start
|| ::jl::DoAssertFault( "start", 0, "jasmin.cpp", 114 )));
35653 ((void) (start
|| ::jl::DoAssertFault( "start", 0, "jasmin.cpp", 126 )));
35656 if (!stop
&& !in_array
)
35669 ((void) (start
|| ::jl::DoAssertFault( "start", 0, "jasmin.cpp", 142 )));
35672 if (!stop
&& !in_array
)
35680 ((void) (start
|| ::jl::DoAssertFault( "start", 0, "jasmin.cpp", 153 )));
35683 if (!stop
&& !in_array
)
35691 ((void) (in_class
|| ::jl::DoAssertFault( "in_class", 0, "jasmin.cpp", 164 )));
35698 void Jasmin::Function::Add(Instruction
* aInst
)
35700 m_current_stack_size
+= aInst
->GetStackChange();
35701 if (m_max_stack_size
< m_current_stack_size
)
35703 m_max_stack_size
= m_current_stack_size
;
35706 m_instructions
.push_back(aInst
);
35708 void Jasmin::Function::Add(instList aInstructions
)
35710 for (instList::iterator it
= aInstructions
.begin();
35711 it
!= aInstructions
.end(); it
++)
35713 m_current_stack_size
+= (*it
)->GetStackChange();
35714 if (m_max_stack_size
< m_current_stack_size
)
35716 m_max_stack_size
= m_current_stack_size
;
35719 m_instructions
.splice(m_instructions
.end(),aInstructions
);
35727 void Jasmin::AddToFunc(jl::ast::ident aIdent
, Instruction
* aInst
)
35732 void Jasmin::AddToFunc(jl::ast::ident aIdent
, instList aInstructions
)
35735 AddToFunc(aInstructions
);
35737 void Jasmin::AddToFunc(Instruction
* aInst
)
35739 m_add_to
->Add(aInst
);
35741 void Jasmin::AddToFunc(instList aInstructions
)
35743 m_add_to
->Add(aInstructions
);
35745 void Jasmin::AddToFunc(jl::ast::ident aIdent
)
35747 funcMap::iterator it
= m_functions
.find(aIdent
);
35748 if (it
== m_functions
.end())
35750 m_functions
[aIdent
] = new Function(m_idents
.GetIdentName(aIdent
));
35751 m_add_to
= m_functions
[aIdent
];
35754 m_add_to
= (*it
).second
;