1 // /usr/libexec/gcc/x86_64-pc-linux-gnu/4.2.2/cc1plus -quiet -D_GNU_SOURCE -D_REENTRANT genfield.cxx -quiet -dumpbase genfield.cxx -mtune=generic -auxbase-strip genfield.o -O3 -fopenmp -o - -frandom-seed=0
7 # 1 "/usr/include/boost/array.hpp" 1 3 4
8 # 27 "/usr/include/boost/array.hpp" 3 4
9 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/cstddef" 1 3 4
10 # 48 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/cstddef" 3 4
12 # 49 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/cstddef" 3
14 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/x86_64-pc-linux-gnu/bits/c++config.h" 1 3
15 # 41 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/x86_64-pc-linux-gnu/bits/c++config.h" 3
16 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/x86_64-pc-linux-gnu/bits/os_defines.h" 1 3
17 # 44 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/x86_64-pc-linux-gnu/bits/os_defines.h" 3
18 # 1 "/usr/include/features.h" 1 3 4
26 # 1 "/usr/include/gentoo-multilib/amd64/features.h" 1 3 4
27 # 322 "/usr/include/gentoo-multilib/amd64/features.h" 3 4
28 # 1 "/usr/include/sys/cdefs.h" 1 3 4
36 # 1 "/usr/include/gentoo-multilib/amd64/sys/cdefs.h" 1 3 4
37 # 324 "/usr/include/gentoo-multilib/amd64/sys/cdefs.h" 3 4
38 # 1 "/usr/include/bits/wordsize.h" 1 3 4
46 # 1 "/usr/include/gentoo-multilib/amd64/bits/wordsize.h" 1 3 4
47 # 9 "/usr/include/bits/wordsize.h" 2 3 4
48 # 325 "/usr/include/gentoo-multilib/amd64/sys/cdefs.h" 2 3 4
49 # 9 "/usr/include/sys/cdefs.h" 2 3 4
50 # 323 "/usr/include/gentoo-multilib/amd64/features.h" 2 3 4
51 # 345 "/usr/include/gentoo-multilib/amd64/features.h" 3 4
52 # 1 "/usr/include/gnu/stubs.h" 1 3 4
60 # 1 "/usr/include/gentoo-multilib/amd64/gnu/stubs.h" 1 3 4
64 # 1 "/usr/include/bits/wordsize.h" 1 3 4
72 # 1 "/usr/include/gentoo-multilib/amd64/bits/wordsize.h" 1 3 4
73 # 9 "/usr/include/bits/wordsize.h" 2 3 4
74 # 5 "/usr/include/gentoo-multilib/amd64/gnu/stubs.h" 2 3 4
79 # 1 "/usr/include/gnu/stubs-64.h" 1 3 4
83 # 1 "/usr/include/gentoo-multilib/amd64/gnu/stubs-64.h" 1 3 4
84 # 5 "/usr/include/gnu/stubs-64.h" 2 3 4
85 # 10 "/usr/include/gentoo-multilib/amd64/gnu/stubs.h" 2 3 4
86 # 9 "/usr/include/gnu/stubs.h" 2 3 4
87 # 346 "/usr/include/gentoo-multilib/amd64/features.h" 2 3 4
88 # 9 "/usr/include/features.h" 2 3 4
89 # 45 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/x86_64-pc-linux-gnu/bits/os_defines.h" 2 3
90 # 42 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/x86_64-pc-linux-gnu/bits/c++config.h" 2 3
93 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/x86_64-pc-linux-gnu/bits/cpu_defines.h" 1 3
94 # 45 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/x86_64-pc-linux-gnu/bits/c++config.h" 2 3
95 # 149 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/x86_64-pc-linux-gnu/bits/c++config.h" 3
96 namespace std __attribute__ ((__visibility__ ("default"))) {
97 # 161 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/x86_64-pc-linux-gnu/bits/c++config.h" 3
99 # 51 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/cstddef" 2 3
100 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/stddef.h" 1 3 4
101 # 152 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/stddef.h" 3 4
102 typedef long int ptrdiff_t;
103 # 214 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/stddef.h" 3 4
104 typedef long unsigned int size_t;
105 # 52 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/cstddef" 2 3
107 namespace std __attribute__ ((__visibility__ ("default"))) {
113 # 28 "/usr/include/boost/array.hpp" 2 3 4
114 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/stdexcept" 1 3 4
115 # 41 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/stdexcept" 3 4
117 # 42 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/stdexcept" 3
119 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/exception" 1 3
120 # 40 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/exception" 3
121 #pragma GCC visibility push(default)
129 # 56 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/exception" 3
133 exception() throw() { }
134 virtual ~exception() throw();
138 virtual const char* what() const throw();
143 class bad_exception : public exception
146 bad_exception() throw() { }
150 virtual ~bad_exception() throw();
153 virtual const char* what() const throw();
157 typedef void (*terminate_handler) ();
160 typedef void (*unexpected_handler) ();
163 terminate_handler set_terminate(terminate_handler) throw();
167 void terminate() __attribute__ ((__noreturn__));
170 unexpected_handler set_unexpected(unexpected_handler) throw();
174 void unexpected() __attribute__ ((__noreturn__));
175 # 112 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/exception" 3
176 bool uncaught_exception() throw();
179 namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) {
180 # 127 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/exception" 3
181 void __verbose_terminate_handler ();
187 #pragma GCC visibility pop
188 # 44 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/stdexcept" 2 3
189 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/string" 1 3
190 # 43 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/string" 3
192 # 44 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/string" 3
195 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stringfwd.h" 1 3
196 # 42 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stringfwd.h" 3
198 # 43 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stringfwd.h" 3
202 namespace std __attribute__ ((__visibility__ ("default"))) {
204 template<typename _Alloc>
207 template<class _CharT>
210 template<typename _CharT, typename _Traits = char_traits<_CharT>,
211 typename _Alloc = allocator<_CharT> >
214 template<> struct char_traits<char>;
216 typedef basic_string<char> string;
219 template<> struct char_traits<wchar_t>;
221 typedef basic_string<wchar_t> wstring;
225 # 47 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/string" 2 3
226 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/char_traits.h" 1 3
227 # 43 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/char_traits.h" 3
229 # 44 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/char_traits.h" 3
231 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/cstring" 1 3
232 # 48 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/cstring" 3
234 # 49 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/cstring" 3
238 # 1 "/usr/include/string.h" 1 3 4
246 # 1 "/usr/include/gentoo-multilib/amd64/string.h" 1 3 4
247 # 26 "/usr/include/gentoo-multilib/amd64/string.h" 3 4
248 # 1 "/usr/include/features.h" 1 3 4
249 # 27 "/usr/include/gentoo-multilib/amd64/string.h" 2 3 4
256 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/stddef.h" 1 3 4
257 # 34 "/usr/include/gentoo-multilib/amd64/string.h" 2 3 4
262 extern void *memcpy (void *__restrict __dest,
263 __const void *__restrict __src, size_t __n)
264 throw () __attribute__ ((__nonnull__ (1, 2)));
267 extern void *memmove (void *__dest, __const void *__src, size_t __n)
268 throw () __attribute__ ((__nonnull__ (1, 2)));
275 extern void *memccpy (void *__restrict __dest, __const void *__restrict __src,
277 throw () __attribute__ ((__nonnull__ (1, 2)));
283 extern void *memset (void *__s, int __c, size_t __n) throw () __attribute__ ((__nonnull__ (1)));
286 extern int memcmp (__const void *__s1, __const void *__s2, size_t __n)
287 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
290 extern void *memchr (__const void *__s, int __c, size_t __n)
291 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
297 extern void *rawmemchr (__const void *__s, int __c)
298 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
301 extern void *memrchr (__const void *__s, int __c, size_t __n)
302 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
308 extern char *strcpy (char *__restrict __dest, __const char *__restrict __src)
309 throw () __attribute__ ((__nonnull__ (1, 2)));
311 extern char *strncpy (char *__restrict __dest,
312 __const char *__restrict __src, size_t __n)
313 throw () __attribute__ ((__nonnull__ (1, 2)));
316 extern char *strcat (char *__restrict __dest, __const char *__restrict __src)
317 throw () __attribute__ ((__nonnull__ (1, 2)));
319 extern char *strncat (char *__restrict __dest, __const char *__restrict __src,
320 size_t __n) throw () __attribute__ ((__nonnull__ (1, 2)));
323 extern int strcmp (__const char *__s1, __const char *__s2)
324 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
326 extern int strncmp (__const char *__s1, __const char *__s2, size_t __n)
327 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
330 extern int strcoll (__const char *__s1, __const char *__s2)
331 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
333 extern size_t strxfrm (char *__restrict __dest,
334 __const char *__restrict __src, size_t __n)
335 throw () __attribute__ ((__nonnull__ (2)));
342 # 1 "/usr/include/xlocale.h" 1 3 4
350 # 1 "/usr/include/gentoo-multilib/amd64/xlocale.h" 1 3 4
351 # 28 "/usr/include/gentoo-multilib/amd64/xlocale.h" 3 4
352 typedef struct __locale_struct
355 struct locale_data *__locales[13];
358 const unsigned short int *__ctype_b;
359 const int *__ctype_tolower;
360 const int *__ctype_toupper;
363 const char *__names[13];
365 # 9 "/usr/include/xlocale.h" 2 3 4
366 # 119 "/usr/include/gentoo-multilib/amd64/string.h" 2 3 4
369 extern int strcoll_l (__const char *__s1, __const char *__s2, __locale_t __l)
370 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 3)));
372 extern size_t strxfrm_l (char *__dest, __const char *__src, size_t __n,
373 __locale_t __l) throw () __attribute__ ((__nonnull__ (2, 4)));
378 extern char *strdup (__const char *__s)
379 throw () __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1)));
386 extern char *strndup (__const char *__string, size_t __n)
387 throw () __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1)));
388 # 165 "/usr/include/gentoo-multilib/amd64/string.h" 3 4
391 extern char *strchr (__const char *__s, int __c)
392 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
394 extern char *strrchr (__const char *__s, int __c)
395 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
401 extern char *strchrnul (__const char *__s, int __c)
402 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
408 extern size_t strcspn (__const char *__s, __const char *__reject)
409 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
412 extern size_t strspn (__const char *__s, __const char *__accept)
413 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
415 extern char *strpbrk (__const char *__s, __const char *__accept)
416 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
418 extern char *strstr (__const char *__haystack, __const char *__needle)
419 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
423 extern char *strtok (char *__restrict __s, __const char *__restrict __delim)
424 throw () __attribute__ ((__nonnull__ (2)));
429 extern char *__strtok_r (char *__restrict __s,
430 __const char *__restrict __delim,
431 char **__restrict __save_ptr)
432 throw () __attribute__ ((__nonnull__ (2, 3)));
434 extern char *strtok_r (char *__restrict __s, __const char *__restrict __delim,
435 char **__restrict __save_ptr)
436 throw () __attribute__ ((__nonnull__ (2, 3)));
441 extern char *strcasestr (__const char *__haystack, __const char *__needle)
442 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
449 extern void *memmem (__const void *__haystack, size_t __haystacklen,
450 __const void *__needle, size_t __needlelen)
451 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 3)));
455 extern void *__mempcpy (void *__restrict __dest,
456 __const void *__restrict __src, size_t __n)
457 throw () __attribute__ ((__nonnull__ (1, 2)));
458 extern void *mempcpy (void *__restrict __dest,
459 __const void *__restrict __src, size_t __n)
460 throw () __attribute__ ((__nonnull__ (1, 2)));
466 extern size_t strlen (__const char *__s)
467 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
473 extern size_t strnlen (__const char *__string, size_t __maxlen)
474 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
480 extern char *strerror (int __errnum) throw ();
482 # 281 "/usr/include/gentoo-multilib/amd64/string.h" 3 4
483 extern char *strerror_r (int __errnum, char *__buf, size_t __buflen)
484 throw () __attribute__ ((__nonnull__ (2)));
490 extern char *strerror_l (int __errnum, __locale_t __l) throw ();
496 extern void __bzero (void *__s, size_t __n) throw () __attribute__ ((__nonnull__ (1)));
500 extern void bcopy (__const void *__src, void *__dest, size_t __n)
501 throw () __attribute__ ((__nonnull__ (1, 2)));
504 extern void bzero (void *__s, size_t __n) throw () __attribute__ ((__nonnull__ (1)));
507 extern int bcmp (__const void *__s1, __const void *__s2, size_t __n)
508 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
511 extern char *index (__const char *__s, int __c)
512 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
515 extern char *rindex (__const char *__s, int __c)
516 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
520 extern int ffs (int __i) throw () __attribute__ ((__const__));
525 extern int ffsl (long int __l) throw () __attribute__ ((__const__));
527 __extension__ extern int ffsll (long long int __ll)
528 throw () __attribute__ ((__const__));
533 extern int strcasecmp (__const char *__s1, __const char *__s2)
534 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
537 extern int strncasecmp (__const char *__s1, __const char *__s2, size_t __n)
538 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
544 extern int strcasecmp_l (__const char *__s1, __const char *__s2,
546 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 3)));
548 extern int strncasecmp_l (__const char *__s1, __const char *__s2,
549 size_t __n, __locale_t __loc)
550 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 4)));
556 extern char *strsep (char **__restrict __stringp,
557 __const char *__restrict __delim)
558 throw () __attribute__ ((__nonnull__ (1, 2)));
563 extern int strverscmp (__const char *__s1, __const char *__s2)
564 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
567 extern char *strsignal (int __sig) throw ();
570 extern char *__stpcpy (char *__restrict __dest, __const char *__restrict __src)
571 throw () __attribute__ ((__nonnull__ (1, 2)));
572 extern char *stpcpy (char *__restrict __dest, __const char *__restrict __src)
573 throw () __attribute__ ((__nonnull__ (1, 2)));
577 extern char *__stpncpy (char *__restrict __dest,
578 __const char *__restrict __src, size_t __n)
579 throw () __attribute__ ((__nonnull__ (1, 2)));
580 extern char *stpncpy (char *__restrict __dest,
581 __const char *__restrict __src, size_t __n)
582 throw () __attribute__ ((__nonnull__ (1, 2)));
585 extern char *strfry (char *__string) throw () __attribute__ ((__nonnull__ (1)));
588 extern void *memfrob (void *__s, size_t __n) throw () __attribute__ ((__nonnull__ (1)));
595 extern char *basename (__const char *__filename) throw () __attribute__ ((__nonnull__ (1)));
596 # 432 "/usr/include/gentoo-multilib/amd64/string.h" 3 4
598 # 9 "/usr/include/string.h" 2 3 4
599 # 53 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/cstring" 2 3
600 # 78 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/cstring" 3
601 namespace std __attribute__ ((__visibility__ ("default"))) {
624 memchr(void* __p, int __c, size_t __n)
625 { return memchr(const_cast<const void*>(__p), __c, __n); }
630 strchr(char* __s1, int __n)
631 { return __builtin_strchr(const_cast<const char*>(__s1), __n); }
636 strpbrk(char* __s1, const char* __s2)
637 { return __builtin_strpbrk(const_cast<const char*>(__s1), __s2); }
642 strrchr(char* __s1, int __n)
643 { return __builtin_strrchr(const_cast<const char*>(__s1), __n); }
648 strstr(char* __s1, const char* __s2)
649 { return __builtin_strstr(const_cast<const char*>(__s1), __s2); }
652 # 46 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/char_traits.h" 2 3
653 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_algobase.h" 1 3
654 # 67 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_algobase.h" 3
655 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/climits" 1 3
656 # 48 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/climits" 3
658 # 49 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/climits" 3
660 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/limits.h" 1 3 4
661 # 11 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/limits.h" 3 4
662 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/syslimits.h" 1 3 4
669 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/limits.h" 1 3 4
670 # 122 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/limits.h" 3 4
671 # 1 "/usr/include/limits.h" 1 3 4
679 # 1 "/usr/include/gentoo-multilib/amd64/limits.h" 1 3 4
680 # 27 "/usr/include/gentoo-multilib/amd64/limits.h" 3 4
681 # 1 "/usr/include/features.h" 1 3 4
682 # 28 "/usr/include/gentoo-multilib/amd64/limits.h" 2 3 4
683 # 145 "/usr/include/gentoo-multilib/amd64/limits.h" 3 4
684 # 1 "/usr/include/bits/posix1_lim.h" 1 3 4
692 # 1 "/usr/include/gentoo-multilib/amd64/bits/posix1_lim.h" 1 3 4
693 # 153 "/usr/include/gentoo-multilib/amd64/bits/posix1_lim.h" 3 4
694 # 1 "/usr/include/bits/local_lim.h" 1 3 4
702 # 1 "/usr/include/gentoo-multilib/amd64/bits/local_lim.h" 1 3 4
703 # 36 "/usr/include/gentoo-multilib/amd64/bits/local_lim.h" 3 4
704 # 1 "/usr/include/linux/limits.h" 1 3 4
705 # 37 "/usr/include/gentoo-multilib/amd64/bits/local_lim.h" 2 3 4
706 # 9 "/usr/include/bits/local_lim.h" 2 3 4
707 # 154 "/usr/include/gentoo-multilib/amd64/bits/posix1_lim.h" 2 3 4
708 # 9 "/usr/include/bits/posix1_lim.h" 2 3 4
709 # 146 "/usr/include/gentoo-multilib/amd64/limits.h" 2 3 4
713 # 1 "/usr/include/bits/posix2_lim.h" 1 3 4
721 # 1 "/usr/include/gentoo-multilib/amd64/bits/posix2_lim.h" 1 3 4
722 # 9 "/usr/include/bits/posix2_lim.h" 2 3 4
723 # 150 "/usr/include/gentoo-multilib/amd64/limits.h" 2 3 4
727 # 1 "/usr/include/bits/xopen_lim.h" 1 3 4
735 # 1 "/usr/include/gentoo-multilib/amd64/bits/xopen_lim.h" 1 3 4
736 # 34 "/usr/include/gentoo-multilib/amd64/bits/xopen_lim.h" 3 4
737 # 1 "/usr/include/bits/stdio_lim.h" 1 3 4
745 # 1 "/usr/include/gentoo-multilib/amd64/bits/stdio_lim.h" 1 3 4
746 # 9 "/usr/include/bits/stdio_lim.h" 2 3 4
747 # 35 "/usr/include/gentoo-multilib/amd64/bits/xopen_lim.h" 2 3 4
748 # 9 "/usr/include/bits/xopen_lim.h" 2 3 4
749 # 154 "/usr/include/gentoo-multilib/amd64/limits.h" 2 3 4
750 # 9 "/usr/include/limits.h" 2 3 4
751 # 123 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/limits.h" 2 3 4
752 # 8 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/syslimits.h" 2 3 4
753 # 12 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/limits.h" 2 3 4
754 # 51 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/climits" 2 3
755 # 68 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_algobase.h" 2 3
756 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/cstdlib" 1 3
757 # 48 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/cstdlib" 3
759 # 49 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/cstdlib" 3
760 # 72 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/cstdlib" 3
761 # 1 "/usr/include/stdlib.h" 1 3 4
769 # 1 "/usr/include/gentoo-multilib/amd64/stdlib.h" 1 3 4
770 # 25 "/usr/include/gentoo-multilib/amd64/stdlib.h" 3 4
771 # 1 "/usr/include/features.h" 1 3 4
772 # 26 "/usr/include/gentoo-multilib/amd64/stdlib.h" 2 3 4
780 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/stddef.h" 1 3 4
781 # 34 "/usr/include/gentoo-multilib/amd64/stdlib.h" 2 3 4
790 # 1 "/usr/include/bits/waitflags.h" 1 3 4
798 # 1 "/usr/include/gentoo-multilib/amd64/bits/waitflags.h" 1 3 4
799 # 9 "/usr/include/bits/waitflags.h" 2 3 4
800 # 43 "/usr/include/gentoo-multilib/amd64/stdlib.h" 2 3 4
801 # 1 "/usr/include/bits/waitstatus.h" 1 3 4
809 # 1 "/usr/include/gentoo-multilib/amd64/bits/waitstatus.h" 1 3 4
810 # 65 "/usr/include/gentoo-multilib/amd64/bits/waitstatus.h" 3 4
811 # 1 "/usr/include/endian.h" 1 3 4
819 # 1 "/usr/include/gentoo-multilib/amd64/endian.h" 1 3 4
820 # 22 "/usr/include/gentoo-multilib/amd64/endian.h" 3 4
821 # 1 "/usr/include/features.h" 1 3 4
822 # 23 "/usr/include/gentoo-multilib/amd64/endian.h" 2 3 4
823 # 37 "/usr/include/gentoo-multilib/amd64/endian.h" 3 4
824 # 1 "/usr/include/bits/endian.h" 1 3 4
832 # 1 "/usr/include/gentoo-multilib/amd64/bits/endian.h" 1 3 4
833 # 9 "/usr/include/bits/endian.h" 2 3 4
834 # 38 "/usr/include/gentoo-multilib/amd64/endian.h" 2 3 4
835 # 9 "/usr/include/endian.h" 2 3 4
836 # 66 "/usr/include/gentoo-multilib/amd64/bits/waitstatus.h" 2 3 4
844 unsigned int __w_termsig:7;
845 unsigned int __w_coredump:1;
846 unsigned int __w_retcode:8;
859 unsigned int __w_stopval:8;
860 unsigned int __w_stopsig:8;
870 # 9 "/usr/include/bits/waitstatus.h" 2 3 4
871 # 44 "/usr/include/gentoo-multilib/amd64/stdlib.h" 2 3 4
872 # 96 "/usr/include/gentoo-multilib/amd64/stdlib.h" 3 4
895 __extension__ typedef struct
902 # 140 "/usr/include/gentoo-multilib/amd64/stdlib.h" 3 4
903 extern size_t __ctype_get_mb_cur_max (void) throw () ;
908 extern double atof (__const char *__nptr)
909 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
911 extern int atoi (__const char *__nptr)
912 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
914 extern long int atol (__const char *__nptr)
915 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
921 __extension__ extern long long int atoll (__const char *__nptr)
922 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
928 extern double strtod (__const char *__restrict __nptr,
929 char **__restrict __endptr)
930 throw () __attribute__ ((__nonnull__ (1))) ;
936 extern float strtof (__const char *__restrict __nptr,
937 char **__restrict __endptr) throw () __attribute__ ((__nonnull__ (1))) ;
939 extern long double strtold (__const char *__restrict __nptr,
940 char **__restrict __endptr)
941 throw () __attribute__ ((__nonnull__ (1))) ;
947 extern long int strtol (__const char *__restrict __nptr,
948 char **__restrict __endptr, int __base)
949 throw () __attribute__ ((__nonnull__ (1))) ;
951 extern unsigned long int strtoul (__const char *__restrict __nptr,
952 char **__restrict __endptr, int __base)
953 throw () __attribute__ ((__nonnull__ (1))) ;
959 extern long long int strtoq (__const char *__restrict __nptr,
960 char **__restrict __endptr, int __base)
961 throw () __attribute__ ((__nonnull__ (1))) ;
964 extern unsigned long long int strtouq (__const char *__restrict __nptr,
965 char **__restrict __endptr, int __base)
966 throw () __attribute__ ((__nonnull__ (1))) ;
973 extern long long int strtoll (__const char *__restrict __nptr,
974 char **__restrict __endptr, int __base)
975 throw () __attribute__ ((__nonnull__ (1))) ;
978 extern unsigned long long int strtoull (__const char *__restrict __nptr,
979 char **__restrict __endptr, int __base)
980 throw () __attribute__ ((__nonnull__ (1))) ;
982 # 236 "/usr/include/gentoo-multilib/amd64/stdlib.h" 3 4
983 # 1 "/usr/include/xlocale.h" 1 3 4
984 # 237 "/usr/include/gentoo-multilib/amd64/stdlib.h" 2 3 4
988 extern long int strtol_l (__const char *__restrict __nptr,
989 char **__restrict __endptr, int __base,
990 __locale_t __loc) throw () __attribute__ ((__nonnull__ (1, 4))) ;
992 extern unsigned long int strtoul_l (__const char *__restrict __nptr,
993 char **__restrict __endptr,
994 int __base, __locale_t __loc)
995 throw () __attribute__ ((__nonnull__ (1, 4))) ;
998 extern long long int strtoll_l (__const char *__restrict __nptr,
999 char **__restrict __endptr, int __base,
1001 throw () __attribute__ ((__nonnull__ (1, 4))) ;
1004 extern unsigned long long int strtoull_l (__const char *__restrict __nptr,
1005 char **__restrict __endptr,
1006 int __base, __locale_t __loc)
1007 throw () __attribute__ ((__nonnull__ (1, 4))) ;
1009 extern double strtod_l (__const char *__restrict __nptr,
1010 char **__restrict __endptr, __locale_t __loc)
1011 throw () __attribute__ ((__nonnull__ (1, 3))) ;
1013 extern float strtof_l (__const char *__restrict __nptr,
1014 char **__restrict __endptr, __locale_t __loc)
1015 throw () __attribute__ ((__nonnull__ (1, 3))) ;
1017 extern long double strtold_l (__const char *__restrict __nptr,
1018 char **__restrict __endptr,
1020 throw () __attribute__ ((__nonnull__ (1, 3))) ;
1027 extern double __strtod_internal (__const char *__restrict __nptr,
1028 char **__restrict __endptr, int __group)
1029 throw () __attribute__ ((__nonnull__ (1))) ;
1030 extern float __strtof_internal (__const char *__restrict __nptr,
1031 char **__restrict __endptr, int __group)
1032 throw () __attribute__ ((__nonnull__ (1))) ;
1033 extern long double __strtold_internal (__const char *__restrict __nptr,
1034 char **__restrict __endptr,
1036 throw () __attribute__ ((__nonnull__ (1))) ;
1038 extern long int __strtol_internal (__const char *__restrict __nptr,
1039 char **__restrict __endptr,
1040 int __base, int __group)
1041 throw () __attribute__ ((__nonnull__ (1))) ;
1045 extern unsigned long int __strtoul_internal (__const char *__restrict __nptr,
1046 char **__restrict __endptr,
1047 int __base, int __group)
1048 throw () __attribute__ ((__nonnull__ (1))) ;
1054 extern long long int __strtoll_internal (__const char *__restrict __nptr,
1055 char **__restrict __endptr,
1056 int __base, int __group)
1057 throw () __attribute__ ((__nonnull__ (1))) ;
1062 extern unsigned long long int __strtoull_internal (__const char *
1064 char **__restrict __endptr,
1065 int __base, int __group)
1066 throw () __attribute__ ((__nonnull__ (1))) ;
1075 extern __inline double
1076 strtod (__const char *__restrict __nptr, char **__restrict __endptr) throw ()
1078 return __strtod_internal (__nptr, __endptr, 0);
1080 extern __inline long int
1081 strtol (__const char *__restrict __nptr, char **__restrict __endptr, int __base) throw ()
1084 return __strtol_internal (__nptr, __endptr, __base, 0);
1086 extern __inline unsigned long int
1087 strtoul (__const char *__restrict __nptr, char **__restrict __endptr, int __base) throw ()
1090 return __strtoul_internal (__nptr, __endptr, __base, 0);
1096 extern __inline float
1097 strtof (__const char *__restrict __nptr, char **__restrict __endptr) throw ()
1099 return __strtof_internal (__nptr, __endptr, 0);
1102 extern __inline long double
1103 strtold (__const char *__restrict __nptr, char **__restrict __endptr) throw ()
1105 return __strtold_internal (__nptr, __endptr, 0);
1112 __extension__ extern __inline long long int
1113 strtoq (__const char *__restrict __nptr, char **__restrict __endptr, int __base) throw ()
1116 return __strtoll_internal (__nptr, __endptr, __base, 0);
1118 __extension__ extern __inline unsigned long long int
1119 strtouq (__const char *__restrict __nptr, char **__restrict __endptr, int __base) throw ()
1122 return __strtoull_internal (__nptr, __endptr, __base, 0);
1128 __extension__ extern __inline long long int
1129 strtoll (__const char *__restrict __nptr, char **__restrict __endptr, int __base) throw ()
1132 return __strtoll_internal (__nptr, __endptr, __base, 0);
1134 __extension__ extern __inline unsigned long long int
1135 strtoull (__const char * __restrict __nptr, char **__restrict __endptr, int __base) throw ()
1138 return __strtoull_internal (__nptr, __endptr, __base, 0);
1144 extern __inline double
1145 atof (__const char *__nptr) throw ()
1147 return strtod (__nptr, (char **) __null);
1150 atoi (__const char *__nptr) throw ()
1152 return (int) strtol (__nptr, (char **) __null, 10);
1154 extern __inline long int
1155 atol (__const char *__nptr) throw ()
1157 return strtol (__nptr, (char **) __null, 10);
1163 __extension__ extern __inline long long int
1164 atoll (__const char *__nptr) throw ()
1166 return strtoll (__nptr, (char **) __null, 10);
1169 # 429 "/usr/include/gentoo-multilib/amd64/stdlib.h" 3 4
1170 extern char *l64a (long int __n) throw () ;
1173 extern long int a64l (__const char *__s)
1174 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
1179 # 1 "/usr/include/sys/types.h" 1 3 4
1187 # 1 "/usr/include/gentoo-multilib/amd64/sys/types.h" 1 3 4
1188 # 27 "/usr/include/gentoo-multilib/amd64/sys/types.h" 3 4
1189 # 1 "/usr/include/features.h" 1 3 4
1190 # 28 "/usr/include/gentoo-multilib/amd64/sys/types.h" 2 3 4
1194 # 1 "/usr/include/bits/types.h" 1 3 4
1202 # 1 "/usr/include/gentoo-multilib/amd64/bits/types.h" 1 3 4
1203 # 27 "/usr/include/gentoo-multilib/amd64/bits/types.h" 3 4
1204 # 1 "/usr/include/features.h" 1 3 4
1205 # 28 "/usr/include/gentoo-multilib/amd64/bits/types.h" 2 3 4
1206 # 1 "/usr/include/bits/wordsize.h" 1 3 4
1214 # 1 "/usr/include/gentoo-multilib/amd64/bits/wordsize.h" 1 3 4
1215 # 9 "/usr/include/bits/wordsize.h" 2 3 4
1216 # 29 "/usr/include/gentoo-multilib/amd64/bits/types.h" 2 3 4
1219 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/stddef.h" 1 3 4
1220 # 32 "/usr/include/gentoo-multilib/amd64/bits/types.h" 2 3 4
1223 typedef unsigned char __u_char;
1224 typedef unsigned short int __u_short;
1225 typedef unsigned int __u_int;
1226 typedef unsigned long int __u_long;
1229 typedef signed char __int8_t;
1230 typedef unsigned char __uint8_t;
1231 typedef signed short int __int16_t;
1232 typedef unsigned short int __uint16_t;
1233 typedef signed int __int32_t;
1234 typedef unsigned int __uint32_t;
1236 typedef signed long int __int64_t;
1237 typedef unsigned long int __uint64_t;
1245 typedef long int __quad_t;
1246 typedef unsigned long int __u_quad_t;
1247 # 134 "/usr/include/gentoo-multilib/amd64/bits/types.h" 3 4
1248 # 1 "/usr/include/bits/typesizes.h" 1 3 4
1256 # 1 "/usr/include/gentoo-multilib/amd64/bits/typesizes.h" 1 3 4
1257 # 9 "/usr/include/bits/typesizes.h" 2 3 4
1258 # 135 "/usr/include/gentoo-multilib/amd64/bits/types.h" 2 3 4
1261 typedef unsigned long int __dev_t;
1262 typedef unsigned int __uid_t;
1263 typedef unsigned int __gid_t;
1264 typedef unsigned long int __ino_t;
1265 typedef unsigned long int __ino64_t;
1266 typedef unsigned int __mode_t;
1267 typedef unsigned long int __nlink_t;
1268 typedef long int __off_t;
1269 typedef long int __off64_t;
1270 typedef int __pid_t;
1271 typedef struct { int __val[2]; } __fsid_t;
1272 typedef long int __clock_t;
1273 typedef unsigned long int __rlim_t;
1274 typedef unsigned long int __rlim64_t;
1275 typedef unsigned int __id_t;
1276 typedef long int __time_t;
1277 typedef unsigned int __useconds_t;
1278 typedef long int __suseconds_t;
1280 typedef int __daddr_t;
1281 typedef long int __swblk_t;
1282 typedef int __key_t;
1285 typedef int __clockid_t;
1288 typedef void * __timer_t;
1291 typedef long int __blksize_t;
1296 typedef long int __blkcnt_t;
1297 typedef long int __blkcnt64_t;
1300 typedef unsigned long int __fsblkcnt_t;
1301 typedef unsigned long int __fsblkcnt64_t;
1304 typedef unsigned long int __fsfilcnt_t;
1305 typedef unsigned long int __fsfilcnt64_t;
1307 typedef long int __ssize_t;
1311 typedef __off64_t __loff_t;
1312 typedef __quad_t *__qaddr_t;
1313 typedef char *__caddr_t;
1316 typedef long int __intptr_t;
1319 typedef unsigned int __socklen_t;
1320 # 9 "/usr/include/bits/types.h" 2 3 4
1321 # 32 "/usr/include/gentoo-multilib/amd64/sys/types.h" 2 3 4
1325 typedef __u_char u_char;
1326 typedef __u_short u_short;
1327 typedef __u_int u_int;
1328 typedef __u_long u_long;
1329 typedef __quad_t quad_t;
1330 typedef __u_quad_t u_quad_t;
1331 typedef __fsid_t fsid_t;
1336 typedef __loff_t loff_t;
1340 typedef __ino_t ino_t;
1347 typedef __ino64_t ino64_t;
1352 typedef __dev_t dev_t;
1357 typedef __gid_t gid_t;
1362 typedef __mode_t mode_t;
1367 typedef __nlink_t nlink_t;
1372 typedef __uid_t uid_t;
1378 typedef __off_t off_t;
1385 typedef __off64_t off64_t;
1390 typedef __pid_t pid_t;
1395 typedef __id_t id_t;
1400 typedef __ssize_t ssize_t;
1406 typedef __daddr_t daddr_t;
1407 typedef __caddr_t caddr_t;
1413 typedef __key_t key_t;
1414 # 133 "/usr/include/gentoo-multilib/amd64/sys/types.h" 3 4
1415 # 1 "/usr/include/time.h" 1 3 4
1423 # 1 "/usr/include/gentoo-multilib/amd64/time.h" 1 3 4
1424 # 57 "/usr/include/gentoo-multilib/amd64/time.h" 3 4
1425 # 1 "/usr/include/bits/types.h" 1 3 4
1426 # 58 "/usr/include/gentoo-multilib/amd64/time.h" 2 3 4
1430 typedef __clock_t clock_t;
1434 # 73 "/usr/include/gentoo-multilib/amd64/time.h" 3 4
1435 # 1 "/usr/include/bits/types.h" 1 3 4
1436 # 74 "/usr/include/gentoo-multilib/amd64/time.h" 2 3 4
1440 typedef __time_t time_t;
1444 # 90 "/usr/include/gentoo-multilib/amd64/time.h" 3 4
1445 # 1 "/usr/include/bits/types.h" 1 3 4
1446 # 91 "/usr/include/gentoo-multilib/amd64/time.h" 2 3 4
1449 typedef __clockid_t clockid_t;
1450 # 102 "/usr/include/gentoo-multilib/amd64/time.h" 3 4
1451 # 1 "/usr/include/bits/types.h" 1 3 4
1452 # 103 "/usr/include/gentoo-multilib/amd64/time.h" 2 3 4
1455 typedef __timer_t timer_t;
1456 # 9 "/usr/include/time.h" 2 3 4
1457 # 134 "/usr/include/gentoo-multilib/amd64/sys/types.h" 2 3 4
1461 typedef __useconds_t useconds_t;
1465 typedef __suseconds_t suseconds_t;
1471 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/stddef.h" 1 3 4
1472 # 148 "/usr/include/gentoo-multilib/amd64/sys/types.h" 2 3 4
1476 typedef unsigned long int ulong;
1477 typedef unsigned short int ushort;
1478 typedef unsigned int uint;
1479 # 195 "/usr/include/gentoo-multilib/amd64/sys/types.h" 3 4
1480 typedef int int8_t __attribute__ ((__mode__ (__QI__)));
1481 typedef int int16_t __attribute__ ((__mode__ (__HI__)));
1482 typedef int int32_t __attribute__ ((__mode__ (__SI__)));
1483 typedef int int64_t __attribute__ ((__mode__ (__DI__)));
1486 typedef unsigned int u_int8_t __attribute__ ((__mode__ (__QI__)));
1487 typedef unsigned int u_int16_t __attribute__ ((__mode__ (__HI__)));
1488 typedef unsigned int u_int32_t __attribute__ ((__mode__ (__SI__)));
1489 typedef unsigned int u_int64_t __attribute__ ((__mode__ (__DI__)));
1491 typedef int register_t __attribute__ ((__mode__ (__word__)));
1492 # 217 "/usr/include/gentoo-multilib/amd64/sys/types.h" 3 4
1493 # 1 "/usr/include/endian.h" 1 3 4
1494 # 218 "/usr/include/gentoo-multilib/amd64/sys/types.h" 2 3 4
1497 # 1 "/usr/include/sys/select.h" 1 3 4
1505 # 1 "/usr/include/gentoo-multilib/amd64/sys/select.h" 1 3 4
1506 # 25 "/usr/include/gentoo-multilib/amd64/sys/select.h" 3 4
1507 # 1 "/usr/include/features.h" 1 3 4
1508 # 26 "/usr/include/gentoo-multilib/amd64/sys/select.h" 2 3 4
1511 # 1 "/usr/include/bits/types.h" 1 3 4
1512 # 29 "/usr/include/gentoo-multilib/amd64/sys/select.h" 2 3 4
1515 # 1 "/usr/include/bits/select.h" 1 3 4
1523 # 1 "/usr/include/gentoo-multilib/amd64/bits/select.h" 1 3 4
1524 # 9 "/usr/include/bits/select.h" 2 3 4
1525 # 32 "/usr/include/gentoo-multilib/amd64/sys/select.h" 2 3 4
1528 # 1 "/usr/include/bits/sigset.h" 1 3 4
1536 # 1 "/usr/include/gentoo-multilib/amd64/bits/sigset.h" 1 3 4
1537 # 24 "/usr/include/gentoo-multilib/amd64/bits/sigset.h" 3 4
1538 typedef int __sig_atomic_t;
1545 unsigned long int __val[(1024 / (8 * sizeof (unsigned long int)))];
1547 # 9 "/usr/include/bits/sigset.h" 2 3 4
1548 # 35 "/usr/include/gentoo-multilib/amd64/sys/select.h" 2 3 4
1552 typedef __sigset_t sigset_t;
1558 # 1 "/usr/include/time.h" 1 3 4
1566 # 1 "/usr/include/gentoo-multilib/amd64/time.h" 1 3 4
1567 # 117 "/usr/include/gentoo-multilib/amd64/time.h" 3 4
1568 # 1 "/usr/include/bits/types.h" 1 3 4
1569 # 118 "/usr/include/gentoo-multilib/amd64/time.h" 2 3 4
1578 # 9 "/usr/include/time.h" 2 3 4
1579 # 45 "/usr/include/gentoo-multilib/amd64/sys/select.h" 2 3 4
1581 # 1 "/usr/include/bits/time.h" 1 3 4
1589 # 1 "/usr/include/gentoo-multilib/amd64/bits/time.h" 1 3 4
1590 # 65 "/usr/include/gentoo-multilib/amd64/bits/time.h" 3 4
1591 # 1 "/usr/include/bits/types.h" 1 3 4
1592 # 66 "/usr/include/gentoo-multilib/amd64/bits/time.h" 2 3 4
1599 __suseconds_t tv_usec;
1601 # 9 "/usr/include/bits/time.h" 2 3 4
1602 # 47 "/usr/include/gentoo-multilib/amd64/sys/select.h" 2 3 4
1603 # 55 "/usr/include/gentoo-multilib/amd64/sys/select.h" 3 4
1604 typedef long int __fd_mask;
1605 # 67 "/usr/include/gentoo-multilib/amd64/sys/select.h" 3 4
1611 __fd_mask fds_bits[1024 / (8 * sizeof (__fd_mask))];
1624 typedef __fd_mask fd_mask;
1625 # 99 "/usr/include/gentoo-multilib/amd64/sys/select.h" 3 4
1627 # 109 "/usr/include/gentoo-multilib/amd64/sys/select.h" 3 4
1628 extern int select (int __nfds, fd_set *__restrict __readfds,
1629 fd_set *__restrict __writefds,
1630 fd_set *__restrict __exceptfds,
1631 struct timeval *__restrict __timeout);
1632 # 121 "/usr/include/gentoo-multilib/amd64/sys/select.h" 3 4
1633 extern int pselect (int __nfds, fd_set *__restrict __readfds,
1634 fd_set *__restrict __writefds,
1635 fd_set *__restrict __exceptfds,
1636 const struct timespec *__restrict __timeout,
1637 const __sigset_t *__restrict __sigmask);
1641 # 9 "/usr/include/sys/select.h" 2 3 4
1642 # 221 "/usr/include/gentoo-multilib/amd64/sys/types.h" 2 3 4
1645 # 1 "/usr/include/sys/sysmacros.h" 1 3 4
1653 # 1 "/usr/include/gentoo-multilib/amd64/sys/sysmacros.h" 1 3 4
1654 # 24 "/usr/include/gentoo-multilib/amd64/sys/sysmacros.h" 3 4
1655 # 1 "/usr/include/features.h" 1 3 4
1656 # 25 "/usr/include/gentoo-multilib/amd64/sys/sysmacros.h" 2 3 4
1663 extern __inline unsigned int gnu_dev_major (unsigned long long int __dev)
1666 extern __inline unsigned int gnu_dev_minor (unsigned long long int __dev)
1669 extern __inline unsigned long long int gnu_dev_makedev (unsigned int __major,
1670 unsigned int __minor)
1674 __extension__ extern __inline unsigned int
1675 gnu_dev_major (unsigned long long int __dev) throw ()
1677 return ((__dev >> 8) & 0xfff) | ((unsigned int) (__dev >> 32) & ~0xfff);
1680 __extension__ extern __inline unsigned int
1681 gnu_dev_minor (unsigned long long int __dev) throw ()
1683 return (__dev & 0xff) | ((unsigned int) (__dev >> 12) & ~0xff);
1686 __extension__ extern __inline unsigned long long int
1687 gnu_dev_makedev (unsigned int __major, unsigned int __minor) throw ()
1689 return ((__minor & 0xff) | ((__major & 0xfff) << 8)
1690 | (((unsigned long long int) (__minor & ~0xff)) << 12)
1691 | (((unsigned long long int) (__major & ~0xfff)) << 32));
1693 # 9 "/usr/include/sys/sysmacros.h" 2 3 4
1694 # 224 "/usr/include/gentoo-multilib/amd64/sys/types.h" 2 3 4
1699 typedef __blksize_t blksize_t;
1706 typedef __blkcnt_t blkcnt_t;
1710 typedef __fsblkcnt_t fsblkcnt_t;
1714 typedef __fsfilcnt_t fsfilcnt_t;
1715 # 262 "/usr/include/gentoo-multilib/amd64/sys/types.h" 3 4
1716 typedef __blkcnt64_t blkcnt64_t;
1717 typedef __fsblkcnt64_t fsblkcnt64_t;
1718 typedef __fsfilcnt64_t fsfilcnt64_t;
1724 # 1 "/usr/include/bits/pthreadtypes.h" 1 3 4
1732 # 1 "/usr/include/gentoo-multilib/amd64/bits/pthreadtypes.h" 1 3 4
1733 # 23 "/usr/include/gentoo-multilib/amd64/bits/pthreadtypes.h" 3 4
1734 # 1 "/usr/include/bits/wordsize.h" 1 3 4
1742 # 1 "/usr/include/gentoo-multilib/amd64/bits/wordsize.h" 1 3 4
1743 # 9 "/usr/include/bits/wordsize.h" 2 3 4
1744 # 24 "/usr/include/gentoo-multilib/amd64/bits/pthreadtypes.h" 2 3 4
1745 # 50 "/usr/include/gentoo-multilib/amd64/bits/pthreadtypes.h" 3 4
1746 typedef unsigned long int pthread_t;
1757 typedef struct __pthread_internal_list
1759 struct __pthread_internal_list *__prev;
1760 struct __pthread_internal_list *__next;
1762 # 76 "/usr/include/gentoo-multilib/amd64/bits/pthreadtypes.h" 3 4
1765 struct __pthread_mutex_s
1768 unsigned int __count;
1771 unsigned int __nusers;
1778 __pthread_list_t __list;
1779 # 101 "/usr/include/gentoo-multilib/amd64/bits/pthreadtypes.h" 3 4
1789 } pthread_mutexattr_t;
1799 unsigned int __futex;
1800 __extension__ unsigned long long int __total_seq;
1801 __extension__ unsigned long long int __wakeup_seq;
1802 __extension__ unsigned long long int __woken_seq;
1804 unsigned int __nwaiters;
1805 unsigned int __broadcast_seq;
1808 __extension__ long long int __align;
1815 } pthread_condattr_t;
1819 typedef unsigned int pthread_key_t;
1823 typedef int pthread_once_t;
1835 unsigned int __nr_readers;
1836 unsigned int __readers_wakeup;
1837 unsigned int __writer_wakeup;
1838 unsigned int __nr_readers_queued;
1839 unsigned int __nr_writers_queued;
1842 unsigned long int __pad2;
1843 unsigned long int __pad3;
1846 unsigned int __flags;
1848 # 184 "/usr/include/gentoo-multilib/amd64/bits/pthreadtypes.h" 3 4
1857 } pthread_rwlockattr_t;
1863 typedef volatile int pthread_spinlock_t;
1872 } pthread_barrier_t;
1878 } pthread_barrierattr_t;
1879 # 9 "/usr/include/bits/pthreadtypes.h" 2 3 4
1880 # 271 "/usr/include/gentoo-multilib/amd64/sys/types.h" 2 3 4
1884 # 9 "/usr/include/sys/types.h" 2 3 4
1885 # 439 "/usr/include/gentoo-multilib/amd64/stdlib.h" 2 3 4
1892 extern long int random (void) throw ();
1895 extern void srandom (unsigned int __seed) throw ();
1901 extern char *initstate (unsigned int __seed, char *__statebuf,
1902 size_t __statelen) throw () __attribute__ ((__nonnull__ (2)));
1906 extern char *setstate (char *__statebuf) throw () __attribute__ ((__nonnull__ (1)));
1925 extern int random_r (struct random_data *__restrict __buf,
1926 int32_t *__restrict __result) throw () __attribute__ ((__nonnull__ (1, 2)));
1928 extern int srandom_r (unsigned int __seed, struct random_data *__buf)
1929 throw () __attribute__ ((__nonnull__ (2)));
1931 extern int initstate_r (unsigned int __seed, char *__restrict __statebuf,
1933 struct random_data *__restrict __buf)
1934 throw () __attribute__ ((__nonnull__ (2, 4)));
1936 extern int setstate_r (char *__restrict __statebuf,
1937 struct random_data *__restrict __buf)
1938 throw () __attribute__ ((__nonnull__ (1, 2)));
1945 extern int rand (void) throw ();
1947 extern void srand (unsigned int __seed) throw ();
1952 extern int rand_r (unsigned int *__seed) throw ();
1960 extern double drand48 (void) throw ();
1961 extern double erand48 (unsigned short int __xsubi[3]) throw () __attribute__ ((__nonnull__ (1)));
1964 extern long int lrand48 (void) throw ();
1965 extern long int nrand48 (unsigned short int __xsubi[3])
1966 throw () __attribute__ ((__nonnull__ (1)));
1969 extern long int mrand48 (void) throw ();
1970 extern long int jrand48 (unsigned short int __xsubi[3])
1971 throw () __attribute__ ((__nonnull__ (1)));
1974 extern void srand48 (long int __seedval) throw ();
1975 extern unsigned short int *seed48 (unsigned short int __seed16v[3])
1976 throw () __attribute__ ((__nonnull__ (1)));
1977 extern void lcong48 (unsigned short int __param[7]) throw () __attribute__ ((__nonnull__ (1)));
1985 unsigned short int __x[3];
1986 unsigned short int __old_x[3];
1987 unsigned short int __c;
1988 unsigned short int __init;
1989 unsigned long long int __a;
1993 extern int drand48_r (struct drand48_data *__restrict __buffer,
1994 double *__restrict __result) throw () __attribute__ ((__nonnull__ (1, 2)));
1995 extern int erand48_r (unsigned short int __xsubi[3],
1996 struct drand48_data *__restrict __buffer,
1997 double *__restrict __result) throw () __attribute__ ((__nonnull__ (1, 2)));
2000 extern int lrand48_r (struct drand48_data *__restrict __buffer,
2001 long int *__restrict __result)
2002 throw () __attribute__ ((__nonnull__ (1, 2)));
2003 extern int nrand48_r (unsigned short int __xsubi[3],
2004 struct drand48_data *__restrict __buffer,
2005 long int *__restrict __result)
2006 throw () __attribute__ ((__nonnull__ (1, 2)));
2009 extern int mrand48_r (struct drand48_data *__restrict __buffer,
2010 long int *__restrict __result)
2011 throw () __attribute__ ((__nonnull__ (1, 2)));
2012 extern int jrand48_r (unsigned short int __xsubi[3],
2013 struct drand48_data *__restrict __buffer,
2014 long int *__restrict __result)
2015 throw () __attribute__ ((__nonnull__ (1, 2)));
2018 extern int srand48_r (long int __seedval, struct drand48_data *__buffer)
2019 throw () __attribute__ ((__nonnull__ (2)));
2021 extern int seed48_r (unsigned short int __seed16v[3],
2022 struct drand48_data *__buffer) throw () __attribute__ ((__nonnull__ (1, 2)));
2024 extern int lcong48_r (unsigned short int __param[7],
2025 struct drand48_data *__buffer)
2026 throw () __attribute__ ((__nonnull__ (1, 2)));
2036 extern void *malloc (size_t __size) throw () __attribute__ ((__malloc__)) ;
2038 extern void *calloc (size_t __nmemb, size_t __size)
2039 throw () __attribute__ ((__malloc__)) ;
2047 extern void *realloc (void *__ptr, size_t __size)
2048 throw () __attribute__ ((__malloc__)) __attribute__ ((__warn_unused_result__));
2050 extern void free (void *__ptr) throw ();
2055 extern void cfree (void *__ptr) throw ();
2059 # 1 "/usr/include/alloca.h" 1 3 4
2067 # 1 "/usr/include/gentoo-multilib/amd64/alloca.h" 1 3 4
2068 # 22 "/usr/include/gentoo-multilib/amd64/alloca.h" 3 4
2069 # 1 "/usr/include/features.h" 1 3 4
2070 # 23 "/usr/include/gentoo-multilib/amd64/alloca.h" 2 3 4
2073 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/stddef.h" 1 3 4
2074 # 26 "/usr/include/gentoo-multilib/amd64/alloca.h" 2 3 4
2082 extern void *alloca (size_t __size) throw ();
2089 # 9 "/usr/include/alloca.h" 2 3 4
2090 # 613 "/usr/include/gentoo-multilib/amd64/stdlib.h" 2 3 4
2095 extern void *valloc (size_t __size) throw () __attribute__ ((__malloc__)) ;
2100 extern int posix_memalign (void **__memptr, size_t __alignment, size_t __size)
2101 throw () __attribute__ ((__nonnull__ (1))) ;
2106 extern void abort (void) throw () __attribute__ ((__noreturn__));
2110 extern int atexit (void (*__func) (void)) throw () __attribute__ ((__nonnull__ (1)));
2116 extern int on_exit (void (*__func) (int __status, void *__arg), void *__arg)
2117 throw () __attribute__ ((__nonnull__ (1)));
2124 extern void exit (int __status) throw () __attribute__ ((__noreturn__));
2131 extern void _Exit (int __status) throw () __attribute__ ((__noreturn__));
2138 extern char *getenv (__const char *__name) throw () __attribute__ ((__nonnull__ (1))) ;
2143 extern char *__secure_getenv (__const char *__name)
2144 throw () __attribute__ ((__nonnull__ (1))) ;
2150 extern int putenv (char *__string) throw () __attribute__ ((__nonnull__ (1)));
2156 extern int setenv (__const char *__name, __const char *__value, int __replace)
2157 throw () __attribute__ ((__nonnull__ (2)));
2160 extern int unsetenv (__const char *__name) throw ();
2167 extern int clearenv (void) throw ();
2168 # 698 "/usr/include/gentoo-multilib/amd64/stdlib.h" 3 4
2169 extern char *mktemp (char *__template) throw () __attribute__ ((__nonnull__ (1))) ;
2170 # 709 "/usr/include/gentoo-multilib/amd64/stdlib.h" 3 4
2171 extern int mkstemp (char *__template) __attribute__ ((__nonnull__ (1))) ;
2172 # 719 "/usr/include/gentoo-multilib/amd64/stdlib.h" 3 4
2173 extern int mkstemp64 (char *__template) __attribute__ ((__nonnull__ (1))) ;
2174 # 729 "/usr/include/gentoo-multilib/amd64/stdlib.h" 3 4
2175 extern char *mkdtemp (char *__template) throw () __attribute__ ((__nonnull__ (1))) ;
2184 extern int system (__const char *__command) ;
2191 extern char *canonicalize_file_name (__const char *__name)
2192 throw () __attribute__ ((__nonnull__ (1))) ;
2193 # 755 "/usr/include/gentoo-multilib/amd64/stdlib.h" 3 4
2194 extern char *realpath (__const char *__restrict __name,
2195 char *__restrict __resolved) throw () ;
2202 typedef int (*__compar_fn_t) (__const void *, __const void *);
2205 typedef __compar_fn_t comparison_fn_t;
2212 extern void *bsearch (__const void *__key, __const void *__base,
2213 size_t __nmemb, size_t __size, __compar_fn_t __compar)
2214 __attribute__ ((__nonnull__ (1, 2, 5))) ;
2218 extern void qsort (void *__base, size_t __nmemb, size_t __size,
2219 __compar_fn_t __compar) __attribute__ ((__nonnull__ (1, 4)));
2223 extern int abs (int __x) throw () __attribute__ ((__const__)) ;
2224 extern long int labs (long int __x) throw () __attribute__ ((__const__)) ;
2228 __extension__ extern long long int llabs (long long int __x)
2229 throw () __attribute__ ((__const__)) ;
2237 extern div_t div (int __numer, int __denom)
2238 throw () __attribute__ ((__const__)) ;
2239 extern ldiv_t ldiv (long int __numer, long int __denom)
2240 throw () __attribute__ ((__const__)) ;
2245 __extension__ extern lldiv_t lldiv (long long int __numer,
2246 long long int __denom)
2247 throw () __attribute__ ((__const__)) ;
2249 # 820 "/usr/include/gentoo-multilib/amd64/stdlib.h" 3 4
2250 extern char *ecvt (double __value, int __ndigit, int *__restrict __decpt,
2251 int *__restrict __sign) throw () __attribute__ ((__nonnull__ (3, 4))) ;
2256 extern char *fcvt (double __value, int __ndigit, int *__restrict __decpt,
2257 int *__restrict __sign) throw () __attribute__ ((__nonnull__ (3, 4))) ;
2262 extern char *gcvt (double __value, int __ndigit, char *__buf)
2263 throw () __attribute__ ((__nonnull__ (3))) ;
2268 extern char *qecvt (long double __value, int __ndigit,
2269 int *__restrict __decpt, int *__restrict __sign)
2270 throw () __attribute__ ((__nonnull__ (3, 4))) ;
2271 extern char *qfcvt (long double __value, int __ndigit,
2272 int *__restrict __decpt, int *__restrict __sign)
2273 throw () __attribute__ ((__nonnull__ (3, 4))) ;
2274 extern char *qgcvt (long double __value, int __ndigit, char *__buf)
2275 throw () __attribute__ ((__nonnull__ (3))) ;
2280 extern int ecvt_r (double __value, int __ndigit, int *__restrict __decpt,
2281 int *__restrict __sign, char *__restrict __buf,
2282 size_t __len) throw () __attribute__ ((__nonnull__ (3, 4, 5)));
2283 extern int fcvt_r (double __value, int __ndigit, int *__restrict __decpt,
2284 int *__restrict __sign, char *__restrict __buf,
2285 size_t __len) throw () __attribute__ ((__nonnull__ (3, 4, 5)));
2287 extern int qecvt_r (long double __value, int __ndigit,
2288 int *__restrict __decpt, int *__restrict __sign,
2289 char *__restrict __buf, size_t __len)
2290 throw () __attribute__ ((__nonnull__ (3, 4, 5)));
2291 extern int qfcvt_r (long double __value, int __ndigit,
2292 int *__restrict __decpt, int *__restrict __sign,
2293 char *__restrict __buf, size_t __len)
2294 throw () __attribute__ ((__nonnull__ (3, 4, 5)));
2302 extern int mblen (__const char *__s, size_t __n) throw () ;
2305 extern int mbtowc (wchar_t *__restrict __pwc,
2306 __const char *__restrict __s, size_t __n) throw () ;
2309 extern int wctomb (char *__s, wchar_t __wchar) throw () ;
2313 extern size_t mbstowcs (wchar_t *__restrict __pwcs,
2314 __const char *__restrict __s, size_t __n) throw ();
2316 extern size_t wcstombs (char *__restrict __s,
2317 __const wchar_t *__restrict __pwcs, size_t __n)
2327 extern int rpmatch (__const char *__response) throw () __attribute__ ((__nonnull__ (1))) ;
2328 # 908 "/usr/include/gentoo-multilib/amd64/stdlib.h" 3 4
2329 extern int getsubopt (char **__restrict __optionp,
2330 char *__const *__restrict __tokens,
2331 char **__restrict __valuep)
2332 throw () __attribute__ ((__nonnull__ (1, 2, 3))) ;
2338 extern void setkey (__const char *__key) throw () __attribute__ ((__nonnull__ (1)));
2346 extern int posix_openpt (int __oflag) ;
2354 extern int grantpt (int __fd) throw ();
2358 extern int unlockpt (int __fd) throw ();
2363 extern char *ptsname (int __fd) throw () ;
2370 extern int ptsname_r (int __fd, char *__buf, size_t __buflen)
2371 throw () __attribute__ ((__nonnull__ (2)));
2374 extern int getpt (void);
2381 extern int getloadavg (double __loadavg[], int __nelem)
2382 throw () __attribute__ ((__nonnull__ (1)));
2383 # 976 "/usr/include/gentoo-multilib/amd64/stdlib.h" 3 4
2385 # 9 "/usr/include/stdlib.h" 2 3 4
2386 # 73 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/cstdlib" 2 3
2387 # 104 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/cstdlib" 3
2388 namespace std __attribute__ ((__visibility__ ("default"))) {
2427 abs(long __i) { return labs(__i); }
2430 div(long __i, long __j) { return ldiv(__i, __j); }
2433 # 161 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/cstdlib" 3
2434 namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) {
2447 abs(long long __x) { return __x >= 0 ? __x : -__x; }
2453 div(long long __n, long long __d)
2454 { lldiv_t __q; __q.quot = __n / __d; __q.rem = __n % __d; return __q; }
2457 # 194 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/cstdlib" 3
2467 namespace std __attribute__ ((__visibility__ ("default"))) {
2470 using ::__gnu_cxx::lldiv_t;
2472 using ::__gnu_cxx::_Exit;
2473 using ::__gnu_cxx::abs;
2475 using ::__gnu_cxx::llabs;
2476 using ::__gnu_cxx::div;
2477 using ::__gnu_cxx::lldiv;
2479 using ::__gnu_cxx::atoll;
2480 using ::__gnu_cxx::strtof;
2481 using ::__gnu_cxx::strtoll;
2482 using ::__gnu_cxx::strtoull;
2483 using ::__gnu_cxx::strtold;
2486 # 69 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_algobase.h" 2 3
2488 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/iosfwd" 1 3
2489 # 42 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/iosfwd" 3
2491 # 43 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/iosfwd" 3
2494 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/x86_64-pc-linux-gnu/bits/c++locale.h" 1 3
2495 # 45 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/x86_64-pc-linux-gnu/bits/c++locale.h" 3
2497 # 46 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/x86_64-pc-linux-gnu/bits/c++locale.h" 3
2500 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/cstdio" 1 3
2501 # 48 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/cstdio" 3
2503 # 49 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/cstdio" 3
2508 # 1 "/usr/include/stdio.h" 1 3 4
2516 # 1 "/usr/include/gentoo-multilib/amd64/stdio.h" 1 3 4
2517 # 28 "/usr/include/gentoo-multilib/amd64/stdio.h" 3 4
2518 # 1 "/usr/include/features.h" 1 3 4
2519 # 29 "/usr/include/gentoo-multilib/amd64/stdio.h" 2 3 4
2525 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/stddef.h" 1 3 4
2526 # 35 "/usr/include/gentoo-multilib/amd64/stdio.h" 2 3 4
2528 # 1 "/usr/include/bits/types.h" 1 3 4
2529 # 37 "/usr/include/gentoo-multilib/amd64/stdio.h" 2 3 4
2530 # 45 "/usr/include/gentoo-multilib/amd64/stdio.h" 3 4
2535 typedef struct _IO_FILE FILE;
2541 # 65 "/usr/include/gentoo-multilib/amd64/stdio.h" 3 4
2542 typedef struct _IO_FILE __FILE;
2543 # 75 "/usr/include/gentoo-multilib/amd64/stdio.h" 3 4
2544 # 1 "/usr/include/libio.h" 1 3 4
2552 # 1 "/usr/include/gentoo-multilib/amd64/libio.h" 1 3 4
2553 # 32 "/usr/include/gentoo-multilib/amd64/libio.h" 3 4
2554 # 1 "/usr/include/_G_config.h" 1 3 4
2562 # 1 "/usr/include/gentoo-multilib/amd64/_G_config.h" 1 3 4
2563 # 9 "/usr/include/gentoo-multilib/amd64/_G_config.h" 3 4
2564 # 1 "/usr/include/bits/types.h" 1 3 4
2565 # 10 "/usr/include/gentoo-multilib/amd64/_G_config.h" 2 3 4
2570 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/stddef.h" 1 3 4
2571 # 355 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/stddef.h" 3 4
2572 typedef unsigned int wint_t;
2573 # 15 "/usr/include/gentoo-multilib/amd64/_G_config.h" 2 3 4
2574 # 24 "/usr/include/gentoo-multilib/amd64/_G_config.h" 3 4
2575 # 1 "/usr/include/wchar.h" 1 3 4
2583 # 1 "/usr/include/gentoo-multilib/amd64/wchar.h" 1 3 4
2584 # 48 "/usr/include/gentoo-multilib/amd64/wchar.h" 3 4
2585 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/stddef.h" 1 3 4
2586 # 49 "/usr/include/gentoo-multilib/amd64/wchar.h" 2 3 4
2588 # 1 "/usr/include/bits/wchar.h" 1 3 4
2596 # 1 "/usr/include/gentoo-multilib/amd64/bits/wchar.h" 1 3 4
2597 # 9 "/usr/include/bits/wchar.h" 2 3 4
2598 # 51 "/usr/include/gentoo-multilib/amd64/wchar.h" 2 3 4
2599 # 76 "/usr/include/gentoo-multilib/amd64/wchar.h" 3 4
2609 # 9 "/usr/include/wchar.h" 2 3 4
2610 # 25 "/usr/include/gentoo-multilib/amd64/_G_config.h" 2 3 4
2615 __mbstate_t __state;
2620 __mbstate_t __state;
2622 # 44 "/usr/include/gentoo-multilib/amd64/_G_config.h" 3 4
2623 # 1 "/usr/include/gconv.h" 1 3 4
2631 # 1 "/usr/include/gentoo-multilib/amd64/gconv.h" 1 3 4
2632 # 26 "/usr/include/gentoo-multilib/amd64/gconv.h" 3 4
2633 # 1 "/usr/include/features.h" 1 3 4
2634 # 27 "/usr/include/gentoo-multilib/amd64/gconv.h" 2 3 4
2636 # 1 "/usr/include/wchar.h" 1 3 4
2644 # 1 "/usr/include/gentoo-multilib/amd64/wchar.h" 1 3 4
2645 # 48 "/usr/include/gentoo-multilib/amd64/wchar.h" 3 4
2646 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/stddef.h" 1 3 4
2647 # 49 "/usr/include/gentoo-multilib/amd64/wchar.h" 2 3 4
2649 # 1 "/usr/include/bits/wchar.h" 1 3 4
2650 # 51 "/usr/include/gentoo-multilib/amd64/wchar.h" 2 3 4
2651 # 9 "/usr/include/wchar.h" 2 3 4
2652 # 29 "/usr/include/gentoo-multilib/amd64/gconv.h" 2 3 4
2655 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/stddef.h" 1 3 4
2656 # 32 "/usr/include/gentoo-multilib/amd64/gconv.h" 2 3 4
2669 __GCONV_EMPTY_INPUT,
2670 __GCONV_FULL_OUTPUT,
2671 __GCONV_ILLEGAL_INPUT,
2672 __GCONV_INCOMPLETE_INPUT,
2674 __GCONV_ILLEGAL_DESCRIPTOR,
2675 __GCONV_INTERNAL_ERROR
2682 __GCONV_IS_LAST = 0x0001,
2683 __GCONV_IGNORE_ERRORS = 0x0002
2688 struct __gconv_step;
2689 struct __gconv_step_data;
2690 struct __gconv_loaded_object;
2691 struct __gconv_trans_data;
2695 typedef int (*__gconv_fct) (struct __gconv_step *, struct __gconv_step_data *,
2696 __const unsigned char **, __const unsigned char *,
2697 unsigned char **, size_t *, int, int);
2700 typedef wint_t (*__gconv_btowc_fct) (struct __gconv_step *, unsigned char);
2703 typedef int (*__gconv_init_fct) (struct __gconv_step *);
2704 typedef void (*__gconv_end_fct) (struct __gconv_step *);
2708 typedef int (*__gconv_trans_fct) (struct __gconv_step *,
2709 struct __gconv_step_data *, void *,
2710 __const unsigned char *,
2711 __const unsigned char **,
2712 __const unsigned char *, unsigned char **,
2716 typedef int (*__gconv_trans_context_fct) (void *, __const unsigned char *,
2717 __const unsigned char *,
2718 unsigned char *, unsigned char *);
2721 typedef int (*__gconv_trans_query_fct) (__const char *, __const char ***,
2725 typedef int (*__gconv_trans_init_fct) (void **, const char *);
2726 typedef void (*__gconv_trans_end_fct) (void *);
2728 struct __gconv_trans_data
2731 __gconv_trans_fct __trans_fct;
2732 __gconv_trans_context_fct __trans_context_fct;
2733 __gconv_trans_end_fct __trans_end_fct;
2735 struct __gconv_trans_data *__next;
2742 struct __gconv_loaded_object *__shlib_handle;
2743 __const char *__modname;
2751 __gconv_btowc_fct __btowc_fct;
2752 __gconv_init_fct __init_fct;
2753 __gconv_end_fct __end_fct;
2757 int __min_needed_from;
2758 int __max_needed_from;
2759 int __min_needed_to;
2760 int __max_needed_to;
2770 struct __gconv_step_data
2772 unsigned char *__outbuf;
2773 unsigned char *__outbufend;
2781 int __invocation_counter;
2787 __mbstate_t *__statep;
2788 __mbstate_t __state;
2792 struct __gconv_trans_data *__trans;
2797 typedef struct __gconv_info
2800 struct __gconv_step *__steps;
2801 __extension__ struct __gconv_step_data __data [];
2803 # 9 "/usr/include/gconv.h" 2 3 4
2804 # 45 "/usr/include/gentoo-multilib/amd64/_G_config.h" 2 3 4
2807 struct __gconv_info __cd;
2810 struct __gconv_info __cd;
2811 struct __gconv_step_data __data;
2815 typedef int _G_int16_t __attribute__ ((__mode__ (__HI__)));
2816 typedef int _G_int32_t __attribute__ ((__mode__ (__SI__)));
2817 typedef unsigned int _G_uint16_t __attribute__ ((__mode__ (__HI__)));
2818 typedef unsigned int _G_uint32_t __attribute__ ((__mode__ (__SI__)));
2819 # 9 "/usr/include/_G_config.h" 2 3 4
2820 # 33 "/usr/include/gentoo-multilib/amd64/libio.h" 2 3 4
2821 # 53 "/usr/include/gentoo-multilib/amd64/libio.h" 3 4
2822 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/stdarg.h" 1 3 4
2823 # 43 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/stdarg.h" 3 4
2824 typedef __builtin_va_list __gnuc_va_list;
2825 # 54 "/usr/include/gentoo-multilib/amd64/libio.h" 2 3 4
2826 # 167 "/usr/include/gentoo-multilib/amd64/libio.h" 3 4
2827 struct _IO_jump_t; struct _IO_FILE;
2828 # 177 "/usr/include/gentoo-multilib/amd64/libio.h" 3 4
2829 typedef void _IO_lock_t;
2836 struct _IO_marker *_next;
2837 struct _IO_FILE *_sbuf;
2842 # 200 "/usr/include/gentoo-multilib/amd64/libio.h" 3 4
2846 enum __codecvt_result
2853 # 268 "/usr/include/gentoo-multilib/amd64/libio.h" 3 4
2862 char* _IO_read_base;
2863 char* _IO_write_base;
2864 char* _IO_write_ptr;
2865 char* _IO_write_end;
2869 char *_IO_save_base;
2870 char *_IO_backup_base;
2873 struct _IO_marker *_markers;
2875 struct _IO_FILE *_chain;
2883 __off_t _old_offset;
2887 unsigned short _cur_column;
2888 signed char _vtable_offset;
2894 # 316 "/usr/include/gentoo-multilib/amd64/libio.h" 3 4
2896 # 325 "/usr/include/gentoo-multilib/amd64/libio.h" 3 4
2905 char _unused2[15 * sizeof (int) - 4 * sizeof (void *) - sizeof (size_t)];
2913 struct _IO_FILE_plus;
2915 extern struct _IO_FILE_plus _IO_2_1_stdin_;
2916 extern struct _IO_FILE_plus _IO_2_1_stdout_;
2917 extern struct _IO_FILE_plus _IO_2_1_stderr_;
2918 # 361 "/usr/include/gentoo-multilib/amd64/libio.h" 3 4
2919 typedef __ssize_t __io_read_fn (void *__cookie, char *__buf, size_t __nbytes);
2927 typedef __ssize_t __io_write_fn (void *__cookie, __const char *__buf,
2936 typedef int __io_seek_fn (void *__cookie, __off64_t *__pos, int __w);
2939 typedef int __io_close_fn (void *__cookie);
2944 typedef __io_read_fn cookie_read_function_t;
2945 typedef __io_write_fn cookie_write_function_t;
2946 typedef __io_seek_fn cookie_seek_function_t;
2947 typedef __io_close_fn cookie_close_function_t;
2953 __io_write_fn *write;
2955 __io_close_fn *close;
2956 } _IO_cookie_io_functions_t;
2957 typedef _IO_cookie_io_functions_t cookie_io_functions_t;
2959 struct _IO_cookie_file;
2962 extern void _IO_cookie_init (struct _IO_cookie_file *__cfile, int __read_write,
2963 void *__cookie, _IO_cookie_io_functions_t __fns);
2971 extern int __underflow (_IO_FILE *);
2972 extern int __uflow (_IO_FILE *);
2973 extern int __overflow (_IO_FILE *, int);
2974 extern wint_t __wunderflow (_IO_FILE *);
2975 extern wint_t __wuflow (_IO_FILE *);
2976 extern wint_t __woverflow (_IO_FILE *, wint_t);
2977 # 451 "/usr/include/gentoo-multilib/amd64/libio.h" 3 4
2978 extern int _IO_getc (_IO_FILE *__fp);
2979 extern int _IO_putc (int __c, _IO_FILE *__fp);
2980 extern int _IO_feof (_IO_FILE *__fp) throw ();
2981 extern int _IO_ferror (_IO_FILE *__fp) throw ();
2983 extern int _IO_peekc_locked (_IO_FILE *__fp);
2989 extern void _IO_flockfile (_IO_FILE *) throw ();
2990 extern void _IO_funlockfile (_IO_FILE *) throw ();
2991 extern int _IO_ftrylockfile (_IO_FILE *) throw ();
2992 # 481 "/usr/include/gentoo-multilib/amd64/libio.h" 3 4
2993 extern int _IO_vfscanf (_IO_FILE * __restrict, const char * __restrict,
2994 __gnuc_va_list, int *__restrict);
2995 extern int _IO_vfprintf (_IO_FILE *__restrict, const char *__restrict,
2997 extern __ssize_t _IO_padn (_IO_FILE *, int, __ssize_t);
2998 extern size_t _IO_sgetn (_IO_FILE *, void *, size_t);
3000 extern __off64_t _IO_seekoff (_IO_FILE *, __off64_t, int, int);
3001 extern __off64_t _IO_seekpos (_IO_FILE *, __off64_t, int);
3003 extern void _IO_free_backup_area (_IO_FILE *) throw ();
3004 # 543 "/usr/include/gentoo-multilib/amd64/libio.h" 3 4
3006 # 9 "/usr/include/libio.h" 2 3 4
3007 # 76 "/usr/include/gentoo-multilib/amd64/stdio.h" 2 3 4
3012 typedef __gnuc_va_list va_list;
3013 # 89 "/usr/include/gentoo-multilib/amd64/stdio.h" 3 4
3016 typedef _G_fpos_t fpos_t;
3022 typedef _G_fpos64_t fpos64_t;
3023 # 141 "/usr/include/gentoo-multilib/amd64/stdio.h" 3 4
3024 # 1 "/usr/include/bits/stdio_lim.h" 1 3 4
3032 # 1 "/usr/include/gentoo-multilib/amd64/bits/stdio_lim.h" 1 3 4
3033 # 9 "/usr/include/bits/stdio_lim.h" 2 3 4
3034 # 142 "/usr/include/gentoo-multilib/amd64/stdio.h" 2 3 4
3038 extern struct _IO_FILE *stdin;
3039 extern struct _IO_FILE *stdout;
3040 extern struct _IO_FILE *stderr;
3048 extern int remove (__const char *__filename) throw ();
3050 extern int rename (__const char *__old, __const char *__new) throw ();
3055 extern int renameat (int __oldfd, __const char *__old, int __newfd,
3056 __const char *__new) throw ();
3065 extern FILE *tmpfile (void) ;
3066 # 182 "/usr/include/gentoo-multilib/amd64/stdio.h" 3 4
3067 extern FILE *tmpfile64 (void) ;
3071 extern char *tmpnam (char *__s) throw () ;
3077 extern char *tmpnam_r (char *__s) throw () ;
3078 # 204 "/usr/include/gentoo-multilib/amd64/stdio.h" 3 4
3079 extern char *tempnam (__const char *__dir, __const char *__pfx)
3080 throw () __attribute__ ((__malloc__)) ;
3089 extern int fclose (FILE *__stream);
3094 extern int fflush (FILE *__stream);
3096 # 229 "/usr/include/gentoo-multilib/amd64/stdio.h" 3 4
3097 extern int fflush_unlocked (FILE *__stream);
3098 # 239 "/usr/include/gentoo-multilib/amd64/stdio.h" 3 4
3099 extern int fcloseall (void);
3109 extern FILE *fopen (__const char *__restrict __filename,
3110 __const char *__restrict __modes) ;
3115 extern FILE *freopen (__const char *__restrict __filename,
3116 __const char *__restrict __modes,
3117 FILE *__restrict __stream) ;
3118 # 272 "/usr/include/gentoo-multilib/amd64/stdio.h" 3 4
3121 extern FILE *fopen64 (__const char *__restrict __filename,
3122 __const char *__restrict __modes) ;
3123 extern FILE *freopen64 (__const char *__restrict __filename,
3124 __const char *__restrict __modes,
3125 FILE *__restrict __stream) ;
3130 extern FILE *fdopen (int __fd, __const char *__modes) throw () ;
3136 extern FILE *fopencookie (void *__restrict __magic_cookie,
3137 __const char *__restrict __modes,
3138 _IO_cookie_io_functions_t __io_funcs) throw () ;
3141 extern FILE *fmemopen (void *__s, size_t __len, __const char *__modes)
3147 extern FILE *open_memstream (char **__bufloc, size_t *__sizeloc) throw () ;
3154 extern void setbuf (FILE *__restrict __stream, char *__restrict __buf) throw ();
3158 extern int setvbuf (FILE *__restrict __stream, char *__restrict __buf,
3159 int __modes, size_t __n) throw ();
3165 extern void setbuffer (FILE *__restrict __stream, char *__restrict __buf,
3166 size_t __size) throw ();
3169 extern void setlinebuf (FILE *__stream) throw ();
3178 extern int fprintf (FILE *__restrict __stream,
3179 __const char *__restrict __format, ...);
3184 extern int printf (__const char *__restrict __format, ...);
3186 extern int sprintf (char *__restrict __s,
3187 __const char *__restrict __format, ...) throw ();
3193 extern int vfprintf (FILE *__restrict __s, __const char *__restrict __format,
3194 __gnuc_va_list __arg);
3199 extern int vprintf (__const char *__restrict __format, __gnuc_va_list __arg);
3201 extern int vsprintf (char *__restrict __s, __const char *__restrict __format,
3202 __gnuc_va_list __arg) throw ();
3208 extern int snprintf (char *__restrict __s, size_t __maxlen,
3209 __const char *__restrict __format, ...)
3210 throw () __attribute__ ((__format__ (__printf__, 3, 4)));
3212 extern int vsnprintf (char *__restrict __s, size_t __maxlen,
3213 __const char *__restrict __format, __gnuc_va_list __arg)
3214 throw () __attribute__ ((__format__ (__printf__, 3, 0)));
3221 extern int vasprintf (char **__restrict __ptr, __const char *__restrict __f,
3222 __gnuc_va_list __arg)
3223 throw () __attribute__ ((__format__ (__printf__, 2, 0))) ;
3224 extern int __asprintf (char **__restrict __ptr,
3225 __const char *__restrict __fmt, ...)
3226 throw () __attribute__ ((__format__ (__printf__, 2, 3))) ;
3227 extern int asprintf (char **__restrict __ptr,
3228 __const char *__restrict __fmt, ...)
3229 throw () __attribute__ ((__format__ (__printf__, 2, 3))) ;
3237 extern int vdprintf (int __fd, __const char *__restrict __fmt,
3238 __gnuc_va_list __arg)
3239 __attribute__ ((__format__ (__printf__, 2, 0)));
3240 extern int dprintf (int __fd, __const char *__restrict __fmt, ...)
3241 __attribute__ ((__format__ (__printf__, 2, 3)));
3250 extern int fscanf (FILE *__restrict __stream,
3251 __const char *__restrict __format, ...) ;
3256 extern int scanf (__const char *__restrict __format, ...) ;
3258 extern int sscanf (__const char *__restrict __s,
3259 __const char *__restrict __format, ...) throw ();
3268 extern int vfscanf (FILE *__restrict __s, __const char *__restrict __format,
3269 __gnuc_va_list __arg)
3270 __attribute__ ((__format__ (__scanf__, 2, 0))) ;
3276 extern int vscanf (__const char *__restrict __format, __gnuc_va_list __arg)
3277 __attribute__ ((__format__ (__scanf__, 1, 0))) ;
3280 extern int vsscanf (__const char *__restrict __s,
3281 __const char *__restrict __format, __gnuc_va_list __arg)
3282 throw () __attribute__ ((__format__ (__scanf__, 2, 0)));
3292 extern int fgetc (FILE *__stream);
3293 extern int getc (FILE *__stream);
3299 extern int getchar (void);
3301 # 464 "/usr/include/gentoo-multilib/amd64/stdio.h" 3 4
3302 extern int getc_unlocked (FILE *__stream);
3303 extern int getchar_unlocked (void);
3304 # 475 "/usr/include/gentoo-multilib/amd64/stdio.h" 3 4
3305 extern int fgetc_unlocked (FILE *__stream);
3317 extern int fputc (int __c, FILE *__stream);
3318 extern int putc (int __c, FILE *__stream);
3324 extern int putchar (int __c);
3326 # 508 "/usr/include/gentoo-multilib/amd64/stdio.h" 3 4
3327 extern int fputc_unlocked (int __c, FILE *__stream);
3335 extern int putc_unlocked (int __c, FILE *__stream);
3336 extern int putchar_unlocked (int __c);
3343 extern int getw (FILE *__stream);
3346 extern int putw (int __w, FILE *__stream);
3355 extern char *fgets (char *__restrict __s, int __n, FILE *__restrict __stream)
3363 extern char *gets (char *__s) ;
3365 # 554 "/usr/include/gentoo-multilib/amd64/stdio.h" 3 4
3366 extern char *fgets_unlocked (char *__restrict __s, int __n,
3367 FILE *__restrict __stream) ;
3368 # 570 "/usr/include/gentoo-multilib/amd64/stdio.h" 3 4
3369 extern __ssize_t __getdelim (char **__restrict __lineptr,
3370 size_t *__restrict __n, int __delimiter,
3371 FILE *__restrict __stream) ;
3372 extern __ssize_t getdelim (char **__restrict __lineptr,
3373 size_t *__restrict __n, int __delimiter,
3374 FILE *__restrict __stream) ;
3382 extern __ssize_t getline (char **__restrict __lineptr,
3383 size_t *__restrict __n,
3384 FILE *__restrict __stream) ;
3393 extern int fputs (__const char *__restrict __s, FILE *__restrict __stream);
3399 extern int puts (__const char *__s);
3406 extern int ungetc (int __c, FILE *__stream);
3413 extern size_t fread (void *__restrict __ptr, size_t __size,
3414 size_t __n, FILE *__restrict __stream) ;
3419 extern size_t fwrite (__const void *__restrict __ptr, size_t __size,
3420 size_t __n, FILE *__restrict __s) ;
3422 # 631 "/usr/include/gentoo-multilib/amd64/stdio.h" 3 4
3423 extern int fputs_unlocked (__const char *__restrict __s,
3424 FILE *__restrict __stream);
3425 # 642 "/usr/include/gentoo-multilib/amd64/stdio.h" 3 4
3426 extern size_t fread_unlocked (void *__restrict __ptr, size_t __size,
3427 size_t __n, FILE *__restrict __stream) ;
3428 extern size_t fwrite_unlocked (__const void *__restrict __ptr, size_t __size,
3429 size_t __n, FILE *__restrict __stream) ;
3438 extern int fseek (FILE *__stream, long int __off, int __whence);
3443 extern long int ftell (FILE *__stream) ;
3448 extern void rewind (FILE *__stream);
3450 # 678 "/usr/include/gentoo-multilib/amd64/stdio.h" 3 4
3451 extern int fseeko (FILE *__stream, __off_t __off, int __whence);
3456 extern __off_t ftello (FILE *__stream) ;
3457 # 697 "/usr/include/gentoo-multilib/amd64/stdio.h" 3 4
3464 extern int fgetpos (FILE *__restrict __stream, fpos_t *__restrict __pos);
3469 extern int fsetpos (FILE *__stream, __const fpos_t *__pos);
3470 # 720 "/usr/include/gentoo-multilib/amd64/stdio.h" 3 4
3474 extern int fseeko64 (FILE *__stream, __off64_t __off, int __whence);
3475 extern __off64_t ftello64 (FILE *__stream) ;
3476 extern int fgetpos64 (FILE *__restrict __stream, fpos64_t *__restrict __pos);
3477 extern int fsetpos64 (FILE *__stream, __const fpos64_t *__pos);
3482 extern void clearerr (FILE *__stream) throw ();
3484 extern int feof (FILE *__stream) throw () ;
3486 extern int ferror (FILE *__stream) throw () ;
3491 extern void clearerr_unlocked (FILE *__stream) throw ();
3492 extern int feof_unlocked (FILE *__stream) throw () ;
3493 extern int ferror_unlocked (FILE *__stream) throw () ;
3502 extern void perror (__const char *__s);
3509 # 1 "/usr/include/bits/sys_errlist.h" 1 3 4
3517 # 1 "/usr/include/gentoo-multilib/amd64/bits/sys_errlist.h" 1 3 4
3518 # 27 "/usr/include/gentoo-multilib/amd64/bits/sys_errlist.h" 3 4
3519 extern int sys_nerr;
3520 extern __const char *__const sys_errlist[];
3523 extern int _sys_nerr;
3524 extern __const char *__const _sys_errlist[];
3525 # 9 "/usr/include/bits/sys_errlist.h" 2 3 4
3526 # 759 "/usr/include/gentoo-multilib/amd64/stdio.h" 2 3 4
3531 extern int fileno (FILE *__stream) throw () ;
3536 extern int fileno_unlocked (FILE *__stream) throw () ;
3537 # 778 "/usr/include/gentoo-multilib/amd64/stdio.h" 3 4
3538 extern FILE *popen (__const char *__command, __const char *__modes) ;
3544 extern int pclose (FILE *__stream);
3550 extern char *ctermid (char *__s) throw ();
3556 extern char *cuserid (char *__s);
3564 extern int obstack_printf (struct obstack *__restrict __obstack,
3565 __const char *__restrict __format, ...)
3566 throw () __attribute__ ((__format__ (__printf__, 2, 3)));
3567 extern int obstack_vprintf (struct obstack *__restrict __obstack,
3568 __const char *__restrict __format,
3569 __gnuc_va_list __args)
3570 throw () __attribute__ ((__format__ (__printf__, 2, 0)));
3578 extern void flockfile (FILE *__stream) throw ();
3582 extern int ftrylockfile (FILE *__stream) throw () ;
3585 extern void funlockfile (FILE *__stream) throw ();
3586 # 839 "/usr/include/gentoo-multilib/amd64/stdio.h" 3 4
3587 # 1 "/usr/include/bits/stdio.h" 1 3 4
3595 # 1 "/usr/include/gentoo-multilib/amd64/bits/stdio.h" 1 3 4
3596 # 33 "/usr/include/gentoo-multilib/amd64/bits/stdio.h" 3 4
3598 vprintf (__const char *__restrict __fmt, __gnuc_va_list __arg)
3600 return vfprintf (stdout, __fmt, __arg);
3607 return _IO_getc (stdin);
3614 fgetc_unlocked (FILE *__fp)
3616 return (__builtin_expect (((__fp)->_IO_read_ptr >= (__fp)->_IO_read_end), 0) ? __uflow (__fp) : *(unsigned char *) (__fp)->_IO_read_ptr++);
3624 getc_unlocked (FILE *__fp)
3626 return (__builtin_expect (((__fp)->_IO_read_ptr >= (__fp)->_IO_read_end), 0) ? __uflow (__fp) : *(unsigned char *) (__fp)->_IO_read_ptr++);
3631 getchar_unlocked (void)
3633 return (__builtin_expect (((stdin)->_IO_read_ptr >= (stdin)->_IO_read_end), 0) ? __uflow (stdin) : *(unsigned char *) (stdin)->_IO_read_ptr++);
3642 return _IO_putc (__c, stdout);
3649 fputc_unlocked (int __c, FILE *__stream)
3651 return (__builtin_expect (((__stream)->_IO_write_ptr >= (__stream)->_IO_write_end), 0) ? __overflow (__stream, (unsigned char) (__c)) : (unsigned char) (*(__stream)->_IO_write_ptr++ = (__c)));
3659 putc_unlocked (int __c, FILE *__stream)
3661 return (__builtin_expect (((__stream)->_IO_write_ptr >= (__stream)->_IO_write_end), 0) ? __overflow (__stream, (unsigned char) (__c)) : (unsigned char) (*(__stream)->_IO_write_ptr++ = (__c)));
3666 putchar_unlocked (int __c)
3668 return (__builtin_expect (((stdout)->_IO_write_ptr >= (stdout)->_IO_write_end), 0) ? __overflow (stdout, (unsigned char) (__c)) : (unsigned char) (*(stdout)->_IO_write_ptr++ = (__c)));
3676 getline (char **__lineptr, size_t *__n, FILE *__stream)
3678 return __getdelim (__lineptr, __n, '\n', __stream);
3686 feof_unlocked (FILE *__stream) throw ()
3688 return (((__stream)->_flags & 0x10) != 0);
3693 ferror_unlocked (FILE *__stream) throw ()
3695 return (((__stream)->_flags & 0x20) != 0);
3697 # 9 "/usr/include/bits/stdio.h" 2 3 4
3698 # 840 "/usr/include/gentoo-multilib/amd64/stdio.h" 2 3 4
3699 # 848 "/usr/include/gentoo-multilib/amd64/stdio.h" 3 4
3701 # 9 "/usr/include/stdio.h" 2 3 4
3702 # 54 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/cstdio" 2 3
3703 # 98 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/cstdio" 3
3704 namespace std __attribute__ ((__visibility__ ("default"))) {
3752 # 155 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/cstdio" 3
3753 namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) {
3754 # 170 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/cstdio" 3
3764 namespace std __attribute__ ((__visibility__ ("default"))) {
3766 using ::__gnu_cxx::snprintf;
3767 using ::__gnu_cxx::vfscanf;
3768 using ::__gnu_cxx::vscanf;
3769 using ::__gnu_cxx::vsnprintf;
3770 using ::__gnu_cxx::vsscanf;
3773 # 49 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/x86_64-pc-linux-gnu/bits/c++locale.h" 2 3
3774 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/clocale" 1 3
3775 # 48 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/clocale" 3
3777 # 49 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/clocale" 3
3780 # 1 "/usr/include/locale.h" 1 3 4
3788 # 1 "/usr/include/gentoo-multilib/amd64/locale.h" 1 3 4
3789 # 26 "/usr/include/gentoo-multilib/amd64/locale.h" 3 4
3790 # 1 "/usr/include/features.h" 1 3 4
3791 # 27 "/usr/include/gentoo-multilib/amd64/locale.h" 2 3 4
3794 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/stddef.h" 1 3 4
3795 # 30 "/usr/include/gentoo-multilib/amd64/locale.h" 2 3 4
3796 # 1 "/usr/include/bits/locale.h" 1 3 4
3804 # 1 "/usr/include/gentoo-multilib/amd64/bits/locale.h" 1 3 4
3805 # 27 "/usr/include/gentoo-multilib/amd64/bits/locale.h" 3 4
3818 __LC_TELEPHONE = 10,
3819 __LC_MEASUREMENT = 11,
3820 __LC_IDENTIFICATION = 12
3822 # 9 "/usr/include/bits/locale.h" 2 3 4
3823 # 31 "/usr/include/gentoo-multilib/amd64/locale.h" 2 3 4
3826 # 51 "/usr/include/gentoo-multilib/amd64/locale.h" 3 4
3834 char *decimal_point;
3835 char *thousands_sep;
3847 char *int_curr_symbol;
3848 char *currency_symbol;
3849 char *mon_decimal_point;
3850 char *mon_thousands_sep;
3852 char *positive_sign;
3853 char *negative_sign;
3854 char int_frac_digits;
3859 char p_sep_by_space;
3863 char n_sep_by_space;
3874 char int_p_cs_precedes;
3876 char int_p_sep_by_space;
3878 char int_n_cs_precedes;
3880 char int_n_sep_by_space;
3887 char int_p_sign_posn;
3888 char int_n_sign_posn;
3889 # 121 "/usr/include/gentoo-multilib/amd64/locale.h" 3 4
3894 extern char *setlocale (int __category, __const char *__locale) throw ();
3897 extern struct lconv *localeconv (void) throw ();
3900 # 146 "/usr/include/gentoo-multilib/amd64/locale.h" 3 4
3901 # 1 "/usr/include/xlocale.h" 1 3 4
3902 # 147 "/usr/include/gentoo-multilib/amd64/locale.h" 2 3 4
3904 typedef __locale_t locale_t;
3910 extern __locale_t newlocale (int __category_mask, __const char *__locale,
3911 __locale_t __base) throw ();
3912 # 189 "/usr/include/gentoo-multilib/amd64/locale.h" 3 4
3913 extern __locale_t duplocale (__locale_t __dataset) throw ();
3917 extern void freelocale (__locale_t __dataset) throw ();
3924 extern __locale_t uselocale (__locale_t __dataset) throw ();
3933 # 9 "/usr/include/locale.h" 2 3 4
3934 # 52 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/clocale" 2 3
3940 namespace std __attribute__ ((__visibility__ ("default"))) {
3947 # 50 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/x86_64-pc-linux-gnu/bits/c++locale.h" 2 3
3948 # 1 "/usr/include/langinfo.h" 1 3 4
3956 # 1 "/usr/include/gentoo-multilib/amd64/langinfo.h" 1 3 4
3957 # 24 "/usr/include/gentoo-multilib/amd64/langinfo.h" 3 4
3958 # 1 "/usr/include/nl_types.h" 1 3 4
3966 # 1 "/usr/include/gentoo-multilib/amd64/nl_types.h" 1 3 4
3967 # 22 "/usr/include/gentoo-multilib/amd64/nl_types.h" 3 4
3968 # 1 "/usr/include/features.h" 1 3 4
3969 # 23 "/usr/include/gentoo-multilib/amd64/nl_types.h" 2 3 4
3970 # 31 "/usr/include/gentoo-multilib/amd64/nl_types.h" 3 4
3974 typedef void *nl_catd;
3977 typedef int nl_item;
3983 extern nl_catd catopen (__const char *__cat_name, int __flag) __attribute__ ((__nonnull__ (1)));
3987 extern char *catgets (nl_catd __catalog, int __set, int __number,
3988 __const char *__string) throw () __attribute__ ((__nonnull__ (1)));
3991 extern int catclose (nl_catd __catalog) throw () __attribute__ ((__nonnull__ (1)));
3994 # 9 "/usr/include/nl_types.h" 2 3 4
3995 # 25 "/usr/include/gentoo-multilib/amd64/langinfo.h" 2 3 4
3997 # 1 "/usr/include/bits/locale.h" 1 3 4
4005 # 1 "/usr/include/gentoo-multilib/amd64/bits/locale.h" 1 3 4
4006 # 9 "/usr/include/bits/locale.h" 2 3 4
4007 # 27 "/usr/include/gentoo-multilib/amd64/langinfo.h" 2 3 4
4011 # 42 "/usr/include/gentoo-multilib/amd64/langinfo.h" 3 4
4017 ABDAY_1 = (((__LC_TIME) << 16) | (0)),
4129 _NL_TIME_ERA_NUM_ENTRIES,
4130 _NL_TIME_ERA_ENTRIES,
4191 _NL_TIME_WEEK_NDAYS,
4192 _NL_TIME_WEEK_1STDAY,
4193 _NL_TIME_WEEK_1STWEEK,
4194 _NL_TIME_FIRST_WEEKDAY,
4195 _NL_TIME_FIRST_WORKDAY,
4196 _NL_TIME_CAL_DIRECTION,
4210 _NL_COLLATE_NRULES = (((__LC_COLLATE) << 16) | (0)),
4211 _NL_COLLATE_RULESETS,
4212 _NL_COLLATE_TABLEMB,
4213 _NL_COLLATE_WEIGHTMB,
4214 _NL_COLLATE_EXTRAMB,
4215 _NL_COLLATE_INDIRECTMB,
4219 _NL_COLLATE_TABLEWC,
4220 _NL_COLLATE_WEIGHTWC,
4221 _NL_COLLATE_EXTRAWC,
4222 _NL_COLLATE_INDIRECTWC,
4223 _NL_COLLATE_SYMB_HASH_SIZEMB,
4224 _NL_COLLATE_SYMB_TABLEMB,
4225 _NL_COLLATE_SYMB_EXTRAMB,
4226 _NL_COLLATE_COLLSEQMB,
4227 _NL_COLLATE_COLLSEQWC,
4228 _NL_COLLATE_CODESET,
4234 _NL_CTYPE_CLASS = (((__LC_CTYPE) << 16) | (0)),
4244 _NL_CTYPE_CLASS_NAMES,
4245 _NL_CTYPE_MAP_NAMES,
4247 _NL_CTYPE_MB_CUR_MAX,
4248 _NL_CTYPE_CODESET_NAME,
4249 CODESET = _NL_CTYPE_CODESET_NAME,
4251 _NL_CTYPE_TOUPPER32,
4252 _NL_CTYPE_TOLOWER32,
4253 _NL_CTYPE_CLASS_OFFSET,
4254 _NL_CTYPE_MAP_OFFSET,
4255 _NL_CTYPE_INDIGITS_MB_LEN,
4256 _NL_CTYPE_INDIGITS0_MB,
4257 _NL_CTYPE_INDIGITS1_MB,
4258 _NL_CTYPE_INDIGITS2_MB,
4259 _NL_CTYPE_INDIGITS3_MB,
4260 _NL_CTYPE_INDIGITS4_MB,
4261 _NL_CTYPE_INDIGITS5_MB,
4262 _NL_CTYPE_INDIGITS6_MB,
4263 _NL_CTYPE_INDIGITS7_MB,
4264 _NL_CTYPE_INDIGITS8_MB,
4265 _NL_CTYPE_INDIGITS9_MB,
4266 _NL_CTYPE_INDIGITS_WC_LEN,
4267 _NL_CTYPE_INDIGITS0_WC,
4268 _NL_CTYPE_INDIGITS1_WC,
4269 _NL_CTYPE_INDIGITS2_WC,
4270 _NL_CTYPE_INDIGITS3_WC,
4271 _NL_CTYPE_INDIGITS4_WC,
4272 _NL_CTYPE_INDIGITS5_WC,
4273 _NL_CTYPE_INDIGITS6_WC,
4274 _NL_CTYPE_INDIGITS7_WC,
4275 _NL_CTYPE_INDIGITS8_WC,
4276 _NL_CTYPE_INDIGITS9_WC,
4277 _NL_CTYPE_OUTDIGIT0_MB,
4278 _NL_CTYPE_OUTDIGIT1_MB,
4279 _NL_CTYPE_OUTDIGIT2_MB,
4280 _NL_CTYPE_OUTDIGIT3_MB,
4281 _NL_CTYPE_OUTDIGIT4_MB,
4282 _NL_CTYPE_OUTDIGIT5_MB,
4283 _NL_CTYPE_OUTDIGIT6_MB,
4284 _NL_CTYPE_OUTDIGIT7_MB,
4285 _NL_CTYPE_OUTDIGIT8_MB,
4286 _NL_CTYPE_OUTDIGIT9_MB,
4287 _NL_CTYPE_OUTDIGIT0_WC,
4288 _NL_CTYPE_OUTDIGIT1_WC,
4289 _NL_CTYPE_OUTDIGIT2_WC,
4290 _NL_CTYPE_OUTDIGIT3_WC,
4291 _NL_CTYPE_OUTDIGIT4_WC,
4292 _NL_CTYPE_OUTDIGIT5_WC,
4293 _NL_CTYPE_OUTDIGIT6_WC,
4294 _NL_CTYPE_OUTDIGIT7_WC,
4295 _NL_CTYPE_OUTDIGIT8_WC,
4296 _NL_CTYPE_OUTDIGIT9_WC,
4297 _NL_CTYPE_TRANSLIT_TAB_SIZE,
4298 _NL_CTYPE_TRANSLIT_FROM_IDX,
4299 _NL_CTYPE_TRANSLIT_FROM_TBL,
4300 _NL_CTYPE_TRANSLIT_TO_IDX,
4301 _NL_CTYPE_TRANSLIT_TO_TBL,
4302 _NL_CTYPE_TRANSLIT_DEFAULT_MISSING_LEN,
4303 _NL_CTYPE_TRANSLIT_DEFAULT_MISSING,
4304 _NL_CTYPE_TRANSLIT_IGNORE_LEN,
4305 _NL_CTYPE_TRANSLIT_IGNORE,
4306 _NL_CTYPE_MAP_TO_NONASCII,
4307 _NL_CTYPE_EXTRA_MAP_1,
4308 _NL_CTYPE_EXTRA_MAP_2,
4309 _NL_CTYPE_EXTRA_MAP_3,
4310 _NL_CTYPE_EXTRA_MAP_4,
4311 _NL_CTYPE_EXTRA_MAP_5,
4312 _NL_CTYPE_EXTRA_MAP_6,
4313 _NL_CTYPE_EXTRA_MAP_7,
4314 _NL_CTYPE_EXTRA_MAP_8,
4315 _NL_CTYPE_EXTRA_MAP_9,
4316 _NL_CTYPE_EXTRA_MAP_10,
4317 _NL_CTYPE_EXTRA_MAP_11,
4318 _NL_CTYPE_EXTRA_MAP_12,
4319 _NL_CTYPE_EXTRA_MAP_13,
4320 _NL_CTYPE_EXTRA_MAP_14,
4326 __INT_CURR_SYMBOL = (((__LC_MONETARY) << 16) | (0)),
4334 __MON_DECIMAL_POINT,
4338 __MON_THOUSANDS_SEP,
4386 _NL_MONETARY_CRNCYSTR,
4388 __INT_P_CS_PRECEDES,
4392 __INT_P_SEP_BY_SPACE,
4396 __INT_N_CS_PRECEDES,
4400 __INT_N_SEP_BY_SPACE,
4412 _NL_MONETARY_DUO_INT_CURR_SYMBOL,
4413 _NL_MONETARY_DUO_CURRENCY_SYMBOL,
4414 _NL_MONETARY_DUO_INT_FRAC_DIGITS,
4415 _NL_MONETARY_DUO_FRAC_DIGITS,
4416 _NL_MONETARY_DUO_P_CS_PRECEDES,
4417 _NL_MONETARY_DUO_P_SEP_BY_SPACE,
4418 _NL_MONETARY_DUO_N_CS_PRECEDES,
4419 _NL_MONETARY_DUO_N_SEP_BY_SPACE,
4420 _NL_MONETARY_DUO_INT_P_CS_PRECEDES,
4421 _NL_MONETARY_DUO_INT_P_SEP_BY_SPACE,
4422 _NL_MONETARY_DUO_INT_N_CS_PRECEDES,
4423 _NL_MONETARY_DUO_INT_N_SEP_BY_SPACE,
4424 _NL_MONETARY_DUO_P_SIGN_POSN,
4425 _NL_MONETARY_DUO_N_SIGN_POSN,
4426 _NL_MONETARY_DUO_INT_P_SIGN_POSN,
4427 _NL_MONETARY_DUO_INT_N_SIGN_POSN,
4428 _NL_MONETARY_UNO_VALID_FROM,
4429 _NL_MONETARY_UNO_VALID_TO,
4430 _NL_MONETARY_DUO_VALID_FROM,
4431 _NL_MONETARY_DUO_VALID_TO,
4432 _NL_MONETARY_CONVERSION_RATE,
4433 _NL_MONETARY_DECIMAL_POINT_WC,
4434 _NL_MONETARY_THOUSANDS_SEP_WC,
4435 _NL_MONETARY_CODESET,
4436 _NL_NUM_LC_MONETARY,
4440 __DECIMAL_POINT = (((__LC_NUMERIC) << 16) | (0)),
4444 RADIXCHAR = __DECIMAL_POINT,
4450 THOUSEP = __THOUSANDS_SEP,
4456 _NL_NUMERIC_DECIMAL_POINT_WC,
4457 _NL_NUMERIC_THOUSANDS_SEP_WC,
4458 _NL_NUMERIC_CODESET,
4461 __YESEXPR = (((__LC_MESSAGES) << 16) | (0)),
4473 _NL_MESSAGES_CODESET,
4474 _NL_NUM_LC_MESSAGES,
4476 _NL_PAPER_HEIGHT = (((__LC_PAPER) << 16) | (0)),
4481 _NL_NAME_NAME_FMT = (((__LC_NAME) << 16) | (0)),
4490 _NL_ADDRESS_POSTAL_FMT = (((__LC_ADDRESS) << 16) | (0)),
4491 _NL_ADDRESS_COUNTRY_NAME,
4492 _NL_ADDRESS_COUNTRY_POST,
4493 _NL_ADDRESS_COUNTRY_AB2,
4494 _NL_ADDRESS_COUNTRY_AB3,
4495 _NL_ADDRESS_COUNTRY_CAR,
4496 _NL_ADDRESS_COUNTRY_NUM,
4497 _NL_ADDRESS_COUNTRY_ISBN,
4498 _NL_ADDRESS_LANG_NAME,
4499 _NL_ADDRESS_LANG_AB,
4500 _NL_ADDRESS_LANG_TERM,
4501 _NL_ADDRESS_LANG_LIB,
4502 _NL_ADDRESS_CODESET,
4505 _NL_TELEPHONE_TEL_INT_FMT = (((__LC_TELEPHONE) << 16) | (0)),
4506 _NL_TELEPHONE_TEL_DOM_FMT,
4507 _NL_TELEPHONE_INT_SELECT,
4508 _NL_TELEPHONE_INT_PREFIX,
4509 _NL_TELEPHONE_CODESET,
4510 _NL_NUM_LC_TELEPHONE,
4512 _NL_MEASUREMENT_MEASUREMENT = (((__LC_MEASUREMENT) << 16) | (0)),
4513 _NL_MEASUREMENT_CODESET,
4514 _NL_NUM_LC_MEASUREMENT,
4516 _NL_IDENTIFICATION_TITLE = (((__LC_IDENTIFICATION) << 16) | (0)),
4517 _NL_IDENTIFICATION_SOURCE,
4518 _NL_IDENTIFICATION_ADDRESS,
4519 _NL_IDENTIFICATION_CONTACT,
4520 _NL_IDENTIFICATION_EMAIL,
4521 _NL_IDENTIFICATION_TEL,
4522 _NL_IDENTIFICATION_FAX,
4523 _NL_IDENTIFICATION_LANGUAGE,
4524 _NL_IDENTIFICATION_TERRITORY,
4525 _NL_IDENTIFICATION_AUDIENCE,
4526 _NL_IDENTIFICATION_APPLICATION,
4527 _NL_IDENTIFICATION_ABBREVIATION,
4528 _NL_IDENTIFICATION_REVISION,
4529 _NL_IDENTIFICATION_DATE,
4530 _NL_IDENTIFICATION_CATEGORY,
4531 _NL_IDENTIFICATION_CODESET,
4532 _NL_NUM_LC_IDENTIFICATION,
4537 # 582 "/usr/include/gentoo-multilib/amd64/langinfo.h" 3 4
4538 extern char *nl_langinfo (nl_item __item) throw ();
4546 # 1 "/usr/include/xlocale.h" 1 3 4
4547 # 591 "/usr/include/gentoo-multilib/amd64/langinfo.h" 2 3 4
4550 extern char *nl_langinfo_l (nl_item __item, __locale_t l);
4554 # 9 "/usr/include/langinfo.h" 2 3 4
4555 # 51 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/x86_64-pc-linux-gnu/bits/c++locale.h" 2 3
4556 # 1 "/usr/include/iconv.h" 1 3 4
4564 # 1 "/usr/include/gentoo-multilib/amd64/iconv.h" 1 3 4
4565 # 22 "/usr/include/gentoo-multilib/amd64/iconv.h" 3 4
4566 # 1 "/usr/include/features.h" 1 3 4
4567 # 23 "/usr/include/gentoo-multilib/amd64/iconv.h" 2 3 4
4569 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/stddef.h" 1 3 4
4570 # 25 "/usr/include/gentoo-multilib/amd64/iconv.h" 2 3 4
4576 typedef void *iconv_t;
4584 extern iconv_t iconv_open (__const char *__tocode, __const char *__fromcode);
4589 extern size_t iconv (iconv_t __cd, char **__restrict __inbuf,
4590 size_t *__restrict __inbytesleft,
4591 char **__restrict __outbuf,
4592 size_t *__restrict __outbytesleft);
4598 extern int iconv_close (iconv_t __cd);
4601 # 9 "/usr/include/iconv.h" 2 3 4
4602 # 52 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/x86_64-pc-linux-gnu/bits/c++locale.h" 2 3
4603 # 1 "/usr/include/libintl.h" 1 3 4
4611 # 1 "/usr/include/gentoo-multilib/amd64/libintl.h" 1 3 4
4612 # 24 "/usr/include/gentoo-multilib/amd64/libintl.h" 3 4
4613 # 1 "/usr/include/features.h" 1 3 4
4614 # 25 "/usr/include/gentoo-multilib/amd64/libintl.h" 2 3 4
4615 # 35 "/usr/include/gentoo-multilib/amd64/libintl.h" 3 4
4621 extern char *gettext (__const char *__msgid)
4622 throw () __attribute__ ((__format_arg__ (1)));
4626 extern char *dgettext (__const char *__domainname, __const char *__msgid)
4627 throw () __attribute__ ((__format_arg__ (2)));
4628 extern char *__dgettext (__const char *__domainname, __const char *__msgid)
4629 throw () __attribute__ ((__format_arg__ (2)));
4633 extern char *dcgettext (__const char *__domainname,
4634 __const char *__msgid, int __category)
4635 throw () __attribute__ ((__format_arg__ (2)));
4636 extern char *__dcgettext (__const char *__domainname,
4637 __const char *__msgid, int __category)
4638 throw () __attribute__ ((__format_arg__ (2)));
4643 extern char *ngettext (__const char *__msgid1, __const char *__msgid2,
4644 unsigned long int __n)
4645 throw () __attribute__ ((__format_arg__ (1))) __attribute__ ((__format_arg__ (2)));
4649 extern char *dngettext (__const char *__domainname, __const char *__msgid1,
4650 __const char *__msgid2, unsigned long int __n)
4651 throw () __attribute__ ((__format_arg__ (2))) __attribute__ ((__format_arg__ (3)));
4655 extern char *dcngettext (__const char *__domainname, __const char *__msgid1,
4656 __const char *__msgid2, unsigned long int __n,
4658 throw () __attribute__ ((__format_arg__ (2))) __attribute__ ((__format_arg__ (3)));
4664 extern char *textdomain (__const char *__domainname) throw ();
4668 extern char *bindtextdomain (__const char *__domainname,
4669 __const char *__dirname) throw ();
4673 extern char *bind_textdomain_codeset (__const char *__domainname,
4674 __const char *__codeset) throw ();
4675 # 122 "/usr/include/gentoo-multilib/amd64/libintl.h" 3 4
4677 # 9 "/usr/include/libintl.h" 2 3 4
4678 # 53 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/x86_64-pc-linux-gnu/bits/c++locale.h" 2 3
4679 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/cstdarg" 1 3
4680 # 48 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/cstdarg" 3
4682 # 49 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/cstdarg" 3
4685 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/stdarg.h" 1 3 4
4686 # 52 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/cstdarg" 2 3
4693 namespace std __attribute__ ((__visibility__ ("default"))) {
4698 # 54 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/x86_64-pc-linux-gnu/bits/c++locale.h" 2 3
4705 namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) {
4707 extern "C" __typeof(uselocale) __uselocale;
4712 namespace std __attribute__ ((__visibility__ ("default"))) {
4714 typedef __locale_t __c_locale;
4721 __convert_from_v(const __c_locale& __cloc __attribute__ ((__unused__)),
4723 const int __size __attribute__ ((__unused__)),
4724 const char* __fmt, ...)
4727 __c_locale __old = __gnu_cxx::__uselocale(__cloc);
4736 __builtin_va_start(__args,__fmt);
4739 const int __ret = std::vsnprintf(__out, __size, __fmt, __args);
4744 __builtin_va_end(__args);
4747 __gnu_cxx::__uselocale(__old);
4756 # 46 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/iosfwd" 2 3
4757 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/x86_64-pc-linux-gnu/bits/c++io.h" 1 3
4758 # 43 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/x86_64-pc-linux-gnu/bits/c++io.h" 3
4759 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/x86_64-pc-linux-gnu/bits/gthr.h" 1 3
4760 # 33 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/x86_64-pc-linux-gnu/bits/gthr.h" 3
4761 #pragma GCC visibility push(default)
4762 # 114 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/x86_64-pc-linux-gnu/bits/gthr.h" 3
4763 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/x86_64-pc-linux-gnu/bits/gthr-default.h" 1 3
4764 # 43 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/x86_64-pc-linux-gnu/bits/gthr-default.h" 3
4765 # 1 "/usr/include/pthread.h" 1 3 4
4773 # 1 "/usr/include/gentoo-multilib/amd64/pthread.h" 1 3 4
4774 # 23 "/usr/include/gentoo-multilib/amd64/pthread.h" 3 4
4775 # 1 "/usr/include/features.h" 1 3 4
4776 # 24 "/usr/include/gentoo-multilib/amd64/pthread.h" 2 3 4
4777 # 1 "/usr/include/sched.h" 1 3 4
4785 # 1 "/usr/include/gentoo-multilib/amd64/sched.h" 1 3 4
4786 # 23 "/usr/include/gentoo-multilib/amd64/sched.h" 3 4
4787 # 1 "/usr/include/features.h" 1 3 4
4788 # 24 "/usr/include/gentoo-multilib/amd64/sched.h" 2 3 4
4791 # 1 "/usr/include/bits/types.h" 1 3 4
4792 # 27 "/usr/include/gentoo-multilib/amd64/sched.h" 2 3 4
4795 # 1 "/usr/include/time.h" 1 3 4
4803 # 1 "/usr/include/gentoo-multilib/amd64/time.h" 1 3 4
4804 # 9 "/usr/include/time.h" 2 3 4
4805 # 30 "/usr/include/gentoo-multilib/amd64/sched.h" 2 3 4
4808 # 1 "/usr/include/bits/sched.h" 1 3 4
4816 # 1 "/usr/include/gentoo-multilib/amd64/bits/sched.h" 1 3 4
4817 # 66 "/usr/include/gentoo-multilib/amd64/bits/sched.h" 3 4
4820 int __sched_priority;
4827 extern int clone (int (*__fn) (void *__arg), void *__child_stack,
4828 int __flags, void *__arg, ...) throw ();
4831 extern int unshare (int __flags) throw ();
4834 extern int sched_getcpu (void) throw ();
4845 struct __sched_param
4847 int __sched_priority;
4849 # 108 "/usr/include/gentoo-multilib/amd64/bits/sched.h" 3 4
4850 typedef unsigned long int __cpu_mask;
4859 __cpu_mask __bits[1024 / (8 * sizeof (__cpu_mask))];
4861 # 134 "/usr/include/gentoo-multilib/amd64/bits/sched.h" 3 4
4862 extern int __sched_cpucount (size_t __setsize, cpu_set_t *__setp) throw ();
4863 # 9 "/usr/include/bits/sched.h" 2 3 4
4864 # 33 "/usr/include/gentoo-multilib/amd64/sched.h" 2 3 4
4872 extern int sched_setparam (__pid_t __pid, __const struct sched_param *__param)
4876 extern int sched_getparam (__pid_t __pid, struct sched_param *__param) throw ();
4879 extern int sched_setscheduler (__pid_t __pid, int __policy,
4880 __const struct sched_param *__param) throw ();
4883 extern int sched_getscheduler (__pid_t __pid) throw ();
4886 extern int sched_yield (void) throw ();
4889 extern int sched_get_priority_max (int __algorithm) throw ();
4892 extern int sched_get_priority_min (int __algorithm) throw ();
4895 extern int sched_rr_get_interval (__pid_t __pid, struct timespec *__t) throw ();
4896 # 77 "/usr/include/gentoo-multilib/amd64/sched.h" 3 4
4897 extern int sched_setaffinity (__pid_t __pid, size_t __cpusetsize,
4898 __const cpu_set_t *__cpuset) throw ();
4901 extern int sched_getaffinity (__pid_t __pid, size_t __cpusetsize,
4902 cpu_set_t *__cpuset) throw ();
4906 # 9 "/usr/include/sched.h" 2 3 4
4907 # 25 "/usr/include/gentoo-multilib/amd64/pthread.h" 2 3 4
4908 # 1 "/usr/include/time.h" 1 3 4
4916 # 1 "/usr/include/gentoo-multilib/amd64/time.h" 1 3 4
4917 # 29 "/usr/include/gentoo-multilib/amd64/time.h" 3 4
4918 # 1 "/usr/include/features.h" 1 3 4
4919 # 30 "/usr/include/gentoo-multilib/amd64/time.h" 2 3 4
4929 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/stddef.h" 1 3 4
4930 # 40 "/usr/include/gentoo-multilib/amd64/time.h" 2 3 4
4934 # 1 "/usr/include/bits/time.h" 1 3 4
4942 # 1 "/usr/include/gentoo-multilib/amd64/bits/time.h" 1 3 4
4943 # 9 "/usr/include/bits/time.h" 2 3 4
4944 # 44 "/usr/include/gentoo-multilib/amd64/time.h" 2 3 4
4945 # 132 "/usr/include/gentoo-multilib/amd64/time.h" 3 4
4962 __const char *tm_zone;
4978 struct timespec it_interval;
4979 struct timespec it_value;
4984 # 181 "/usr/include/gentoo-multilib/amd64/time.h" 3 4
4988 extern clock_t clock (void) throw ();
4991 extern time_t time (time_t *__timer) throw ();
4994 extern double difftime (time_t __time1, time_t __time0)
4995 throw () __attribute__ ((__const__));
4998 extern time_t mktime (struct tm *__tp) throw ();
5004 extern size_t strftime (char *__restrict __s, size_t __maxsize,
5005 __const char *__restrict __format,
5006 __const struct tm *__restrict __tp) throw ();
5012 extern char *strptime (__const char *__restrict __s,
5013 __const char *__restrict __fmt, struct tm *__tp)
5020 # 1 "/usr/include/xlocale.h" 1 3 4
5021 # 217 "/usr/include/gentoo-multilib/amd64/time.h" 2 3 4
5023 extern size_t strftime_l (char *__restrict __s, size_t __maxsize,
5024 __const char *__restrict __format,
5025 __const struct tm *__restrict __tp,
5026 __locale_t __loc) throw ();
5028 extern char *strptime_l (__const char *__restrict __s,
5029 __const char *__restrict __fmt, struct tm *__tp,
5030 __locale_t __loc) throw ();
5037 extern struct tm *gmtime (__const time_t *__timer) throw ();
5041 extern struct tm *localtime (__const time_t *__timer) throw ();
5047 extern struct tm *gmtime_r (__const time_t *__restrict __timer,
5048 struct tm *__restrict __tp) throw ();
5052 extern struct tm *localtime_r (__const time_t *__restrict __timer,
5053 struct tm *__restrict __tp) throw ();
5059 extern char *asctime (__const struct tm *__tp) throw ();
5062 extern char *ctime (__const time_t *__timer) throw ();
5070 extern char *asctime_r (__const struct tm *__restrict __tp,
5071 char *__restrict __buf) throw ();
5074 extern char *ctime_r (__const time_t *__restrict __timer,
5075 char *__restrict __buf) throw ();
5080 extern char *__tzname[2];
5081 extern int __daylight;
5082 extern long int __timezone;
5087 extern char *tzname[2];
5091 extern void tzset (void) throw ();
5095 extern int daylight;
5096 extern long int timezone;
5102 extern int stime (__const time_t *__when) throw ();
5103 # 312 "/usr/include/gentoo-multilib/amd64/time.h" 3 4
5104 extern time_t timegm (struct tm *__tp) throw ();
5107 extern time_t timelocal (struct tm *__tp) throw ();
5110 extern int dysize (int __year) throw () __attribute__ ((__const__));
5111 # 327 "/usr/include/gentoo-multilib/amd64/time.h" 3 4
5112 extern int nanosleep (__const struct timespec *__requested_time,
5113 struct timespec *__remaining);
5117 extern int clock_getres (clockid_t __clock_id, struct timespec *__res) throw ();
5120 extern int clock_gettime (clockid_t __clock_id, struct timespec *__tp) throw ();
5123 extern int clock_settime (clockid_t __clock_id, __const struct timespec *__tp)
5131 extern int clock_nanosleep (clockid_t __clock_id, int __flags,
5132 __const struct timespec *__req,
5133 struct timespec *__rem);
5136 extern int clock_getcpuclockid (pid_t __pid, clockid_t *__clock_id) throw ();
5141 extern int timer_create (clockid_t __clock_id,
5142 struct sigevent *__restrict __evp,
5143 timer_t *__restrict __timerid) throw ();
5146 extern int timer_delete (timer_t __timerid) throw ();
5149 extern int timer_settime (timer_t __timerid, int __flags,
5150 __const struct itimerspec *__restrict __value,
5151 struct itimerspec *__restrict __ovalue) throw ();
5154 extern int timer_gettime (timer_t __timerid, struct itimerspec *__value)
5158 extern int timer_getoverrun (timer_t __timerid) throw ();
5159 # 389 "/usr/include/gentoo-multilib/amd64/time.h" 3 4
5160 extern int getdate_err;
5161 # 398 "/usr/include/gentoo-multilib/amd64/time.h" 3 4
5162 extern struct tm *getdate (__const char *__string);
5163 # 412 "/usr/include/gentoo-multilib/amd64/time.h" 3 4
5164 extern int getdate_r (__const char *__restrict __string,
5165 struct tm *__restrict __resbufp);
5169 # 9 "/usr/include/time.h" 2 3 4
5170 # 26 "/usr/include/gentoo-multilib/amd64/pthread.h" 2 3 4
5173 # 1 "/usr/include/signal.h" 1 3 4
5181 # 1 "/usr/include/gentoo-multilib/amd64/signal.h" 1 3 4
5182 # 29 "/usr/include/gentoo-multilib/amd64/signal.h" 3 4
5183 # 1 "/usr/include/features.h" 1 3 4
5184 # 30 "/usr/include/gentoo-multilib/amd64/signal.h" 2 3 4
5188 # 1 "/usr/include/bits/sigset.h" 1 3 4
5196 # 1 "/usr/include/gentoo-multilib/amd64/bits/sigset.h" 1 3 4
5197 # 9 "/usr/include/bits/sigset.h" 2 3 4
5198 # 34 "/usr/include/gentoo-multilib/amd64/signal.h" 2 3 4
5199 # 400 "/usr/include/gentoo-multilib/amd64/signal.h" 3 4
5201 # 9 "/usr/include/signal.h" 2 3 4
5202 # 29 "/usr/include/gentoo-multilib/amd64/pthread.h" 2 3 4
5203 # 1 "/usr/include/bits/pthreadtypes.h" 1 3 4
5204 # 30 "/usr/include/gentoo-multilib/amd64/pthread.h" 2 3 4
5205 # 1 "/usr/include/bits/setjmp.h" 1 3 4
5213 # 1 "/usr/include/gentoo-multilib/amd64/bits/setjmp.h" 1 3 4
5214 # 27 "/usr/include/gentoo-multilib/amd64/bits/setjmp.h" 3 4
5215 # 1 "/usr/include/bits/wordsize.h" 1 3 4
5223 # 1 "/usr/include/gentoo-multilib/amd64/bits/wordsize.h" 1 3 4
5224 # 9 "/usr/include/bits/wordsize.h" 2 3 4
5225 # 28 "/usr/include/gentoo-multilib/amd64/bits/setjmp.h" 2 3 4
5230 typedef long int __jmp_buf[8];
5231 # 9 "/usr/include/bits/setjmp.h" 2 3 4
5232 # 31 "/usr/include/gentoo-multilib/amd64/pthread.h" 2 3 4
5233 # 1 "/usr/include/bits/wordsize.h" 1 3 4
5241 # 1 "/usr/include/gentoo-multilib/amd64/bits/wordsize.h" 1 3 4
5242 # 9 "/usr/include/bits/wordsize.h" 2 3 4
5243 # 32 "/usr/include/gentoo-multilib/amd64/pthread.h" 2 3 4
5249 PTHREAD_CREATE_JOINABLE,
5251 PTHREAD_CREATE_DETACHED
5259 PTHREAD_MUTEX_TIMED_NP,
5260 PTHREAD_MUTEX_RECURSIVE_NP,
5261 PTHREAD_MUTEX_ERRORCHECK_NP,
5262 PTHREAD_MUTEX_ADAPTIVE_NP
5265 PTHREAD_MUTEX_NORMAL = PTHREAD_MUTEX_TIMED_NP,
5266 PTHREAD_MUTEX_RECURSIVE = PTHREAD_MUTEX_RECURSIVE_NP,
5267 PTHREAD_MUTEX_ERRORCHECK = PTHREAD_MUTEX_ERRORCHECK_NP,
5268 PTHREAD_MUTEX_DEFAULT = PTHREAD_MUTEX_NORMAL
5272 , PTHREAD_MUTEX_FAST_NP = PTHREAD_MUTEX_TIMED_NP
5281 PTHREAD_MUTEX_STALLED_NP,
5282 PTHREAD_MUTEX_ROBUST_NP
5292 PTHREAD_PRIO_INHERIT,
5293 PTHREAD_PRIO_PROTECT
5295 # 114 "/usr/include/gentoo-multilib/amd64/pthread.h" 3 4
5298 PTHREAD_RWLOCK_PREFER_READER_NP,
5299 PTHREAD_RWLOCK_PREFER_WRITER_NP,
5300 PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP,
5301 PTHREAD_RWLOCK_DEFAULT_NP = PTHREAD_RWLOCK_PREFER_READER_NP
5303 # 144 "/usr/include/gentoo-multilib/amd64/pthread.h" 3 4
5306 PTHREAD_INHERIT_SCHED,
5308 PTHREAD_EXPLICIT_SCHED
5316 PTHREAD_SCOPE_SYSTEM,
5318 PTHREAD_SCOPE_PROCESS
5326 PTHREAD_PROCESS_PRIVATE,
5328 PTHREAD_PROCESS_SHARED
5331 # 179 "/usr/include/gentoo-multilib/amd64/pthread.h" 3 4
5332 struct _pthread_cleanup_buffer
5334 void (*__routine) (void *);
5337 struct _pthread_cleanup_buffer *__prev;
5343 PTHREAD_CANCEL_ENABLE,
5345 PTHREAD_CANCEL_DISABLE
5350 PTHREAD_CANCEL_DEFERRED,
5352 PTHREAD_CANCEL_ASYNCHRONOUS
5355 # 217 "/usr/include/gentoo-multilib/amd64/pthread.h" 3 4
5361 extern int pthread_create (pthread_t *__restrict __newthread,
5362 __const pthread_attr_t *__restrict __attr,
5363 void *(*__start_routine) (void *),
5364 void *__restrict __arg) throw () __attribute__ ((__nonnull__ (1, 3)));
5370 extern void pthread_exit (void *__retval) __attribute__ ((__noreturn__));
5378 extern int pthread_join (pthread_t __th, void **__thread_return);
5383 extern int pthread_tryjoin_np (pthread_t __th, void **__thread_return) throw ();
5391 extern int pthread_timedjoin_np (pthread_t __th, void **__thread_return,
5392 __const struct timespec *__abstime);
5399 extern int pthread_detach (pthread_t __th) throw ();
5403 extern pthread_t pthread_self (void) throw () __attribute__ ((__const__));
5406 extern int pthread_equal (pthread_t __thread1, pthread_t __thread2) throw ();
5414 extern int pthread_attr_init (pthread_attr_t *__attr) throw () __attribute__ ((__nonnull__ (1)));
5417 extern int pthread_attr_destroy (pthread_attr_t *__attr)
5418 throw () __attribute__ ((__nonnull__ (1)));
5421 extern int pthread_attr_getdetachstate (__const pthread_attr_t *__attr,
5423 throw () __attribute__ ((__nonnull__ (1, 2)));
5426 extern int pthread_attr_setdetachstate (pthread_attr_t *__attr,
5428 throw () __attribute__ ((__nonnull__ (1)));
5432 extern int pthread_attr_getguardsize (__const pthread_attr_t *__attr,
5433 size_t *__guardsize)
5434 throw () __attribute__ ((__nonnull__ (1, 2)));
5437 extern int pthread_attr_setguardsize (pthread_attr_t *__attr,
5439 throw () __attribute__ ((__nonnull__ (1)));
5443 extern int pthread_attr_getschedparam (__const pthread_attr_t *__restrict
5445 struct sched_param *__restrict __param)
5446 throw () __attribute__ ((__nonnull__ (1, 2)));
5449 extern int pthread_attr_setschedparam (pthread_attr_t *__restrict __attr,
5450 __const struct sched_param *__restrict
5451 __param) throw () __attribute__ ((__nonnull__ (1, 2)));
5454 extern int pthread_attr_getschedpolicy (__const pthread_attr_t *__restrict
5455 __attr, int *__restrict __policy)
5456 throw () __attribute__ ((__nonnull__ (1, 2)));
5459 extern int pthread_attr_setschedpolicy (pthread_attr_t *__attr, int __policy)
5460 throw () __attribute__ ((__nonnull__ (1)));
5463 extern int pthread_attr_getinheritsched (__const pthread_attr_t *__restrict
5464 __attr, int *__restrict __inherit)
5465 throw () __attribute__ ((__nonnull__ (1, 2)));
5468 extern int pthread_attr_setinheritsched (pthread_attr_t *__attr,
5470 throw () __attribute__ ((__nonnull__ (1)));
5474 extern int pthread_attr_getscope (__const pthread_attr_t *__restrict __attr,
5475 int *__restrict __scope)
5476 throw () __attribute__ ((__nonnull__ (1, 2)));
5479 extern int pthread_attr_setscope (pthread_attr_t *__attr, int __scope)
5480 throw () __attribute__ ((__nonnull__ (1)));
5483 extern int pthread_attr_getstackaddr (__const pthread_attr_t *__restrict
5484 __attr, void **__restrict __stackaddr)
5485 throw () __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__deprecated__));
5491 extern int pthread_attr_setstackaddr (pthread_attr_t *__attr,
5493 throw () __attribute__ ((__nonnull__ (1))) __attribute__ ((__deprecated__));
5496 extern int pthread_attr_getstacksize (__const pthread_attr_t *__restrict
5497 __attr, size_t *__restrict __stacksize)
5498 throw () __attribute__ ((__nonnull__ (1, 2)));
5503 extern int pthread_attr_setstacksize (pthread_attr_t *__attr,
5505 throw () __attribute__ ((__nonnull__ (1)));
5509 extern int pthread_attr_getstack (__const pthread_attr_t *__restrict __attr,
5510 void **__restrict __stackaddr,
5511 size_t *__restrict __stacksize)
5512 throw () __attribute__ ((__nonnull__ (1, 2, 3)));
5517 extern int pthread_attr_setstack (pthread_attr_t *__attr, void *__stackaddr,
5518 size_t __stacksize) throw () __attribute__ ((__nonnull__ (1)));
5524 extern int pthread_attr_setaffinity_np (pthread_attr_t *__attr,
5525 size_t __cpusetsize,
5526 __const cpu_set_t *__cpuset)
5527 throw () __attribute__ ((__nonnull__ (1, 3)));
5531 extern int pthread_attr_getaffinity_np (__const pthread_attr_t *__attr,
5532 size_t __cpusetsize,
5533 cpu_set_t *__cpuset)
5534 throw () __attribute__ ((__nonnull__ (1, 3)));
5540 extern int pthread_getattr_np (pthread_t __th, pthread_attr_t *__attr)
5541 throw () __attribute__ ((__nonnull__ (2)));
5549 extern int pthread_setschedparam (pthread_t __target_thread, int __policy,
5550 __const struct sched_param *__param)
5551 throw () __attribute__ ((__nonnull__ (3)));
5554 extern int pthread_getschedparam (pthread_t __target_thread,
5555 int *__restrict __policy,
5556 struct sched_param *__restrict __param)
5557 throw () __attribute__ ((__nonnull__ (2, 3)));
5560 extern int pthread_setschedprio (pthread_t __target_thread, int __prio)
5566 extern int pthread_getconcurrency (void) throw ();
5569 extern int pthread_setconcurrency (int __level) throw ();
5577 extern int pthread_yield (void) throw ();
5582 extern int pthread_setaffinity_np (pthread_t __th, size_t __cpusetsize,
5583 __const cpu_set_t *__cpuset)
5584 throw () __attribute__ ((__nonnull__ (3)));
5587 extern int pthread_getaffinity_np (pthread_t __th, size_t __cpusetsize,
5588 cpu_set_t *__cpuset)
5589 throw () __attribute__ ((__nonnull__ (3)));
5590 # 463 "/usr/include/gentoo-multilib/amd64/pthread.h" 3 4
5591 extern int pthread_once (pthread_once_t *__once_control,
5592 void (*__init_routine) (void)) __attribute__ ((__nonnull__ (1, 2)));
5593 # 475 "/usr/include/gentoo-multilib/amd64/pthread.h" 3 4
5594 extern int pthread_setcancelstate (int __state, int *__oldstate);
5598 extern int pthread_setcanceltype (int __type, int *__oldtype);
5601 extern int pthread_cancel (pthread_t __th);
5606 extern void pthread_testcancel (void);
5615 __jmp_buf __cancel_jmp_buf;
5616 int __mask_was_saved;
5617 } __cancel_jmp_buf[1];
5619 } __pthread_unwind_buf_t __attribute__ ((__aligned__));
5620 # 509 "/usr/include/gentoo-multilib/amd64/pthread.h" 3 4
5621 struct __pthread_cleanup_frame
5623 void (*__cancel_routine) (void *);
5632 class __pthread_cleanup_class
5634 void (*__cancel_routine) (void *);
5640 __pthread_cleanup_class (void (*__fct) (void *), void *__arg)
5641 : __cancel_routine (__fct), __cancel_arg (__arg), __do_it (1) { }
5642 ~__pthread_cleanup_class () { if (__do_it) __cancel_routine (__cancel_arg); }
5643 void __setdoit (int __newval) { __do_it = __newval; }
5644 void __defer () { pthread_setcanceltype (PTHREAD_CANCEL_DEFERRED,
5646 void __restore () const { pthread_setcanceltype (__cancel_type, 0); }
5648 # 709 "/usr/include/gentoo-multilib/amd64/pthread.h" 3 4
5649 struct __jmp_buf_tag;
5650 extern int __sigsetjmp (struct __jmp_buf_tag *__env, int __savemask) throw ();
5656 extern int pthread_mutex_init (pthread_mutex_t *__mutex,
5657 __const pthread_mutexattr_t *__mutexattr)
5658 throw () __attribute__ ((__nonnull__ (1)));
5661 extern int pthread_mutex_destroy (pthread_mutex_t *__mutex)
5662 throw () __attribute__ ((__nonnull__ (1)));
5665 extern int pthread_mutex_trylock (pthread_mutex_t *__mutex)
5666 throw () __attribute__ ((__nonnull__ (1)));
5669 extern int pthread_mutex_lock (pthread_mutex_t *__mutex)
5670 throw () __attribute__ ((__nonnull__ (1)));
5674 extern int pthread_mutex_timedlock (pthread_mutex_t *__restrict __mutex,
5675 __const struct timespec *__restrict
5676 __abstime) throw () __attribute__ ((__nonnull__ (1, 2)));
5680 extern int pthread_mutex_unlock (pthread_mutex_t *__mutex)
5681 throw () __attribute__ ((__nonnull__ (1)));
5686 extern int pthread_mutex_getprioceiling (__const pthread_mutex_t *
5688 int *__restrict __prioceiling)
5689 throw () __attribute__ ((__nonnull__ (1, 2)));
5693 extern int pthread_mutex_setprioceiling (pthread_mutex_t *__restrict __mutex,
5695 int *__restrict __old_ceiling)
5696 throw () __attribute__ ((__nonnull__ (1, 3)));
5702 extern int pthread_mutex_consistent_np (pthread_mutex_t *__mutex)
5703 throw () __attribute__ ((__nonnull__ (1)));
5711 extern int pthread_mutexattr_init (pthread_mutexattr_t *__attr)
5712 throw () __attribute__ ((__nonnull__ (1)));
5715 extern int pthread_mutexattr_destroy (pthread_mutexattr_t *__attr)
5716 throw () __attribute__ ((__nonnull__ (1)));
5719 extern int pthread_mutexattr_getpshared (__const pthread_mutexattr_t *
5721 int *__restrict __pshared)
5722 throw () __attribute__ ((__nonnull__ (1, 2)));
5725 extern int pthread_mutexattr_setpshared (pthread_mutexattr_t *__attr,
5727 throw () __attribute__ ((__nonnull__ (1)));
5731 extern int pthread_mutexattr_gettype (__const pthread_mutexattr_t *__restrict
5732 __attr, int *__restrict __kind)
5733 throw () __attribute__ ((__nonnull__ (1, 2)));
5738 extern int pthread_mutexattr_settype (pthread_mutexattr_t *__attr, int __kind)
5739 throw () __attribute__ ((__nonnull__ (1)));
5742 extern int pthread_mutexattr_getprotocol (__const pthread_mutexattr_t *
5744 int *__restrict __protocol)
5745 throw () __attribute__ ((__nonnull__ (1, 2)));
5749 extern int pthread_mutexattr_setprotocol (pthread_mutexattr_t *__attr,
5751 throw () __attribute__ ((__nonnull__ (1)));
5754 extern int pthread_mutexattr_getprioceiling (__const pthread_mutexattr_t *
5756 int *__restrict __prioceiling)
5757 throw () __attribute__ ((__nonnull__ (1, 2)));
5760 extern int pthread_mutexattr_setprioceiling (pthread_mutexattr_t *__attr,
5762 throw () __attribute__ ((__nonnull__ (1)));
5767 extern int pthread_mutexattr_getrobust_np (__const pthread_mutexattr_t *__attr,
5769 throw () __attribute__ ((__nonnull__ (1, 2)));
5772 extern int pthread_mutexattr_setrobust_np (pthread_mutexattr_t *__attr,
5774 throw () __attribute__ ((__nonnull__ (1)));
5775 # 843 "/usr/include/gentoo-multilib/amd64/pthread.h" 3 4
5776 extern int pthread_rwlock_init (pthread_rwlock_t *__restrict __rwlock,
5777 __const pthread_rwlockattr_t *__restrict
5778 __attr) throw () __attribute__ ((__nonnull__ (1)));
5781 extern int pthread_rwlock_destroy (pthread_rwlock_t *__rwlock)
5782 throw () __attribute__ ((__nonnull__ (1)));
5785 extern int pthread_rwlock_rdlock (pthread_rwlock_t *__rwlock)
5786 throw () __attribute__ ((__nonnull__ (1)));
5789 extern int pthread_rwlock_tryrdlock (pthread_rwlock_t *__rwlock)
5790 throw () __attribute__ ((__nonnull__ (1)));
5794 extern int pthread_rwlock_timedrdlock (pthread_rwlock_t *__restrict __rwlock,
5795 __const struct timespec *__restrict
5796 __abstime) throw () __attribute__ ((__nonnull__ (1, 2)));
5800 extern int pthread_rwlock_wrlock (pthread_rwlock_t *__rwlock)
5801 throw () __attribute__ ((__nonnull__ (1)));
5804 extern int pthread_rwlock_trywrlock (pthread_rwlock_t *__rwlock)
5805 throw () __attribute__ ((__nonnull__ (1)));
5809 extern int pthread_rwlock_timedwrlock (pthread_rwlock_t *__restrict __rwlock,
5810 __const struct timespec *__restrict
5811 __abstime) throw () __attribute__ ((__nonnull__ (1, 2)));
5815 extern int pthread_rwlock_unlock (pthread_rwlock_t *__rwlock)
5816 throw () __attribute__ ((__nonnull__ (1)));
5822 extern int pthread_rwlockattr_init (pthread_rwlockattr_t *__attr)
5823 throw () __attribute__ ((__nonnull__ (1)));
5826 extern int pthread_rwlockattr_destroy (pthread_rwlockattr_t *__attr)
5827 throw () __attribute__ ((__nonnull__ (1)));
5830 extern int pthread_rwlockattr_getpshared (__const pthread_rwlockattr_t *
5832 int *__restrict __pshared)
5833 throw () __attribute__ ((__nonnull__ (1, 2)));
5836 extern int pthread_rwlockattr_setpshared (pthread_rwlockattr_t *__attr,
5838 throw () __attribute__ ((__nonnull__ (1)));
5841 extern int pthread_rwlockattr_getkind_np (__const pthread_rwlockattr_t *
5843 int *__restrict __pref)
5844 throw () __attribute__ ((__nonnull__ (1, 2)));
5847 extern int pthread_rwlockattr_setkind_np (pthread_rwlockattr_t *__attr,
5848 int __pref) throw () __attribute__ ((__nonnull__ (1)));
5856 extern int pthread_cond_init (pthread_cond_t *__restrict __cond,
5857 __const pthread_condattr_t *__restrict
5858 __cond_attr) throw () __attribute__ ((__nonnull__ (1)));
5861 extern int pthread_cond_destroy (pthread_cond_t *__cond)
5862 throw () __attribute__ ((__nonnull__ (1)));
5865 extern int pthread_cond_signal (pthread_cond_t *__cond)
5866 throw () __attribute__ ((__nonnull__ (1)));
5869 extern int pthread_cond_broadcast (pthread_cond_t *__cond)
5870 throw () __attribute__ ((__nonnull__ (1)));
5877 extern int pthread_cond_wait (pthread_cond_t *__restrict __cond,
5878 pthread_mutex_t *__restrict __mutex)
5879 __attribute__ ((__nonnull__ (1, 2)));
5880 # 955 "/usr/include/gentoo-multilib/amd64/pthread.h" 3 4
5881 extern int pthread_cond_timedwait (pthread_cond_t *__restrict __cond,
5882 pthread_mutex_t *__restrict __mutex,
5883 __const struct timespec *__restrict
5884 __abstime) __attribute__ ((__nonnull__ (1, 2, 3)));
5889 extern int pthread_condattr_init (pthread_condattr_t *__attr)
5890 throw () __attribute__ ((__nonnull__ (1)));
5893 extern int pthread_condattr_destroy (pthread_condattr_t *__attr)
5894 throw () __attribute__ ((__nonnull__ (1)));
5897 extern int pthread_condattr_getpshared (__const pthread_condattr_t *
5899 int *__restrict __pshared)
5900 throw () __attribute__ ((__nonnull__ (1, 2)));
5903 extern int pthread_condattr_setpshared (pthread_condattr_t *__attr,
5904 int __pshared) throw () __attribute__ ((__nonnull__ (1)));
5908 extern int pthread_condattr_getclock (__const pthread_condattr_t *
5910 __clockid_t *__restrict __clock_id)
5911 throw () __attribute__ ((__nonnull__ (1, 2)));
5914 extern int pthread_condattr_setclock (pthread_condattr_t *__attr,
5915 __clockid_t __clock_id)
5916 throw () __attribute__ ((__nonnull__ (1)));
5917 # 999 "/usr/include/gentoo-multilib/amd64/pthread.h" 3 4
5918 extern int pthread_spin_init (pthread_spinlock_t *__lock, int __pshared)
5919 throw () __attribute__ ((__nonnull__ (1)));
5922 extern int pthread_spin_destroy (pthread_spinlock_t *__lock)
5923 throw () __attribute__ ((__nonnull__ (1)));
5926 extern int pthread_spin_lock (pthread_spinlock_t *__lock)
5927 throw () __attribute__ ((__nonnull__ (1)));
5930 extern int pthread_spin_trylock (pthread_spinlock_t *__lock)
5931 throw () __attribute__ ((__nonnull__ (1)));
5934 extern int pthread_spin_unlock (pthread_spinlock_t *__lock)
5935 throw () __attribute__ ((__nonnull__ (1)));
5942 extern int pthread_barrier_init (pthread_barrier_t *__restrict __barrier,
5943 __const pthread_barrierattr_t *__restrict
5944 __attr, unsigned int __count)
5945 throw () __attribute__ ((__nonnull__ (1)));
5948 extern int pthread_barrier_destroy (pthread_barrier_t *__barrier)
5949 throw () __attribute__ ((__nonnull__ (1)));
5952 extern int pthread_barrier_wait (pthread_barrier_t *__barrier)
5953 throw () __attribute__ ((__nonnull__ (1)));
5957 extern int pthread_barrierattr_init (pthread_barrierattr_t *__attr)
5958 throw () __attribute__ ((__nonnull__ (1)));
5961 extern int pthread_barrierattr_destroy (pthread_barrierattr_t *__attr)
5962 throw () __attribute__ ((__nonnull__ (1)));
5965 extern int pthread_barrierattr_getpshared (__const pthread_barrierattr_t *
5967 int *__restrict __pshared)
5968 throw () __attribute__ ((__nonnull__ (1, 2)));
5971 extern int pthread_barrierattr_setpshared (pthread_barrierattr_t *__attr,
5973 throw () __attribute__ ((__nonnull__ (1)));
5974 # 1066 "/usr/include/gentoo-multilib/amd64/pthread.h" 3 4
5975 extern int pthread_key_create (pthread_key_t *__key,
5976 void (*__destr_function) (void *))
5977 throw () __attribute__ ((__nonnull__ (1)));
5980 extern int pthread_key_delete (pthread_key_t __key) throw ();
5983 extern void *pthread_getspecific (pthread_key_t __key) throw ();
5986 extern int pthread_setspecific (pthread_key_t __key,
5987 __const void *__pointer) throw () ;
5992 extern int pthread_getcpuclockid (pthread_t __thread_id,
5993 __clockid_t *__clock_id)
5994 throw () __attribute__ ((__nonnull__ (2)));
5995 # 1100 "/usr/include/gentoo-multilib/amd64/pthread.h" 3 4
5996 extern int pthread_atfork (void (*__prepare) (void),
5997 void (*__parent) (void),
5998 void (*__child) (void)) throw ();
6004 pthread_equal (pthread_t __thread1, pthread_t __thread2) throw ()
6006 return __thread1 == __thread2;
6011 # 9 "/usr/include/pthread.h" 2 3 4
6012 # 44 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/x86_64-pc-linux-gnu/bits/gthr-default.h" 2 3
6013 # 1 "/usr/include/unistd.h" 1 3 4
6021 # 1 "/usr/include/gentoo-multilib/amd64/unistd.h" 1 3 4
6022 # 26 "/usr/include/gentoo-multilib/amd64/unistd.h" 3 4
6023 # 1 "/usr/include/features.h" 1 3 4
6024 # 27 "/usr/include/gentoo-multilib/amd64/unistd.h" 2 3 4
6027 # 173 "/usr/include/gentoo-multilib/amd64/unistd.h" 3 4
6028 # 1 "/usr/include/bits/posix_opt.h" 1 3 4
6036 # 1 "/usr/include/gentoo-multilib/amd64/bits/posix_opt.h" 1 3 4
6037 # 9 "/usr/include/bits/posix_opt.h" 2 3 4
6038 # 174 "/usr/include/gentoo-multilib/amd64/unistd.h" 2 3 4
6042 # 1 "/usr/include/bits/environments.h" 1 3 4
6050 # 1 "/usr/include/gentoo-multilib/amd64/bits/environments.h" 1 3 4
6051 # 23 "/usr/include/gentoo-multilib/amd64/bits/environments.h" 3 4
6052 # 1 "/usr/include/bits/wordsize.h" 1 3 4
6060 # 1 "/usr/include/gentoo-multilib/amd64/bits/wordsize.h" 1 3 4
6061 # 9 "/usr/include/bits/wordsize.h" 2 3 4
6062 # 24 "/usr/include/gentoo-multilib/amd64/bits/environments.h" 2 3 4
6063 # 9 "/usr/include/bits/environments.h" 2 3 4
6064 # 178 "/usr/include/gentoo-multilib/amd64/unistd.h" 2 3 4
6065 # 188 "/usr/include/gentoo-multilib/amd64/unistd.h" 3 4
6066 # 1 "/usr/include/bits/types.h" 1 3 4
6067 # 189 "/usr/include/gentoo-multilib/amd64/unistd.h" 2 3 4
6068 # 197 "/usr/include/gentoo-multilib/amd64/unistd.h" 3 4
6069 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/stddef.h" 1 3 4
6070 # 198 "/usr/include/gentoo-multilib/amd64/unistd.h" 2 3 4
6071 # 238 "/usr/include/gentoo-multilib/amd64/unistd.h" 3 4
6072 typedef __intptr_t intptr_t;
6079 typedef __socklen_t socklen_t;
6080 # 258 "/usr/include/gentoo-multilib/amd64/unistd.h" 3 4
6081 extern int access (__const char *__name, int __type) throw () __attribute__ ((__nonnull__ (1)));
6086 extern int euidaccess (__const char *__name, int __type)
6087 throw () __attribute__ ((__nonnull__ (1)));
6090 extern int eaccess (__const char *__name, int __type)
6091 throw () __attribute__ ((__nonnull__ (1)));
6098 extern int faccessat (int __fd, __const char *__file, int __type, int __flag)
6099 throw () __attribute__ ((__nonnull__ (2))) ;
6100 # 301 "/usr/include/gentoo-multilib/amd64/unistd.h" 3 4
6101 extern __off_t lseek (int __fd, __off_t __offset, int __whence) throw ();
6102 # 312 "/usr/include/gentoo-multilib/amd64/unistd.h" 3 4
6103 extern __off64_t lseek64 (int __fd, __off64_t __offset, int __whence)
6111 extern int close (int __fd);
6118 extern ssize_t read (int __fd, void *__buf, size_t __nbytes) ;
6124 extern ssize_t write (int __fd, __const void *__buf, size_t __n) ;
6125 # 343 "/usr/include/gentoo-multilib/amd64/unistd.h" 3 4
6126 extern ssize_t pread (int __fd, void *__buf, size_t __nbytes,
6134 extern ssize_t pwrite (int __fd, __const void *__buf, size_t __n,
6136 # 371 "/usr/include/gentoo-multilib/amd64/unistd.h" 3 4
6137 extern ssize_t pread64 (int __fd, void *__buf, size_t __nbytes,
6138 __off64_t __offset) ;
6141 extern ssize_t pwrite64 (int __fd, __const void *__buf, size_t __n,
6142 __off64_t __offset) ;
6150 extern int pipe (int __pipedes[2]) throw () ;
6151 # 393 "/usr/include/gentoo-multilib/amd64/unistd.h" 3 4
6152 extern unsigned int alarm (unsigned int __seconds) throw ();
6153 # 405 "/usr/include/gentoo-multilib/amd64/unistd.h" 3 4
6154 extern unsigned int sleep (unsigned int __seconds);
6161 extern __useconds_t ualarm (__useconds_t __value, __useconds_t __interval)
6169 extern int usleep (__useconds_t __useconds);
6170 # 429 "/usr/include/gentoo-multilib/amd64/unistd.h" 3 4
6171 extern int pause (void);
6175 extern int chown (__const char *__file, __uid_t __owner, __gid_t __group)
6176 throw () __attribute__ ((__nonnull__ (1))) ;
6180 extern int fchown (int __fd, __uid_t __owner, __gid_t __group) throw () ;
6185 extern int lchown (__const char *__file, __uid_t __owner, __gid_t __group)
6186 throw () __attribute__ ((__nonnull__ (1))) ;
6193 extern int fchownat (int __fd, __const char *__file, __uid_t __owner,
6194 __gid_t __group, int __flag)
6195 throw () __attribute__ ((__nonnull__ (2))) ;
6199 extern int chdir (__const char *__path) throw () __attribute__ ((__nonnull__ (1))) ;
6203 extern int fchdir (int __fd) throw () ;
6204 # 471 "/usr/include/gentoo-multilib/amd64/unistd.h" 3 4
6205 extern char *getcwd (char *__buf, size_t __size) throw () ;
6211 extern char *get_current_dir_name (void) throw ();
6218 extern char *getwd (char *__buf)
6219 throw () __attribute__ ((__nonnull__ (1))) __attribute__ ((__deprecated__)) ;
6224 extern int dup (int __fd) throw () ;
6227 extern int dup2 (int __fd, int __fd2) throw ();
6230 extern char **__environ;
6232 extern char **environ;
6238 extern int execve (__const char *__path, char *__const __argv[],
6239 char *__const __envp[]) throw () __attribute__ ((__nonnull__ (1)));
6244 extern int fexecve (int __fd, char *__const __argv[], char *__const __envp[])
6250 extern int execv (__const char *__path, char *__const __argv[])
6251 throw () __attribute__ ((__nonnull__ (1)));
6255 extern int execle (__const char *__path, __const char *__arg, ...)
6256 throw () __attribute__ ((__nonnull__ (1)));
6260 extern int execl (__const char *__path, __const char *__arg, ...)
6261 throw () __attribute__ ((__nonnull__ (1)));
6265 extern int execvp (__const char *__file, char *__const __argv[])
6266 throw () __attribute__ ((__nonnull__ (1)));
6271 extern int execlp (__const char *__file, __const char *__arg, ...)
6272 throw () __attribute__ ((__nonnull__ (1)));
6277 extern int nice (int __inc) throw () ;
6282 extern void _exit (int __status) __attribute__ ((__noreturn__));
6288 # 1 "/usr/include/bits/confname.h" 1 3 4
6296 # 1 "/usr/include/gentoo-multilib/amd64/bits/confname.h" 1 3 4
6297 # 26 "/usr/include/gentoo-multilib/amd64/bits/confname.h" 3 4
6312 _PC_CHOWN_RESTRICTED,
6328 _PC_REC_INCR_XFER_SIZE,
6330 _PC_REC_MAX_XFER_SIZE,
6332 _PC_REC_MIN_XFER_SIZE,
6365 _SC_REALTIME_SIGNALS,
6367 _SC_PRIORITY_SCHEDULING,
6371 _SC_ASYNCHRONOUS_IO,
6375 _SC_SYNCHRONIZED_IO,
6385 _SC_MEMORY_PROTECTION,
6387 _SC_MESSAGE_PASSING,
6391 _SC_SHARED_MEMORY_OBJECTS,
6397 _SC_AIO_PRIO_DELTA_MAX,
6431 _SC_COLL_WEIGHTS_MAX,
6433 _SC_EQUIV_CLASS_MAX,
6441 _SC_CHARCLASS_NAME_MAX,
6475 _SC_IOV_MAX = _SC_UIO_MAXIOV,
6477 _SC_PII_INTERNET_STREAM,
6479 _SC_PII_INTERNET_DGRAM,
6493 _SC_THREAD_SAFE_FUNCTIONS,
6495 _SC_GETGR_R_SIZE_MAX,
6497 _SC_GETPW_R_SIZE_MAX,
6503 _SC_THREAD_DESTRUCTOR_ITERATIONS,
6505 _SC_THREAD_KEYS_MAX,
6507 _SC_THREAD_STACK_MIN,
6509 _SC_THREAD_THREADS_MAX,
6511 _SC_THREAD_ATTR_STACKADDR,
6513 _SC_THREAD_ATTR_STACKSIZE,
6515 _SC_THREAD_PRIORITY_SCHEDULING,
6517 _SC_THREAD_PRIO_INHERIT,
6519 _SC_THREAD_PRIO_PROTECT,
6521 _SC_THREAD_PROCESS_SHARED,
6524 _SC_NPROCESSORS_CONF,
6526 _SC_NPROCESSORS_ONLN,
6539 _SC_XOPEN_XCU_VERSION,
6614 _SC_XBS5_ILP32_OFF32,
6616 _SC_XBS5_ILP32_OFFBIG,
6618 _SC_XBS5_LP64_OFF64,
6620 _SC_XBS5_LPBIG_OFFBIG,
6627 _SC_XOPEN_REALTIME_THREADS,
6638 _SC_C_LANG_SUPPORT_R,
6640 _SC_CLOCK_SELECTION,
6648 _SC_DEVICE_SPECIFIC,
6650 _SC_DEVICE_SPECIFIC_R,
6658 _SC_FILE_ATTRIBUTES,
6664 _SC_MONOTONIC_CLOCK,
6672 _SC_READER_WRITER_LOCKS,
6686 _SC_SPORADIC_SERVER,
6688 _SC_THREAD_SPORADIC_SERVER,
6690 _SC_SYSTEM_DATABASE,
6692 _SC_SYSTEM_DATABASE_R,
6696 _SC_TYPED_MEMORY_OBJECTS,
6704 _SC_2_PBS_ACCOUNTING,
6716 _SC_2_PBS_CHECKPOINT,
6721 _SC_V6_ILP32_OFFBIG,
6725 _SC_V6_LPBIG_OFFBIG,
6732 _SC_TRACE_EVENT_FILTER,
6739 _SC_LEVEL1_ICACHE_SIZE,
6741 _SC_LEVEL1_ICACHE_ASSOC,
6743 _SC_LEVEL1_ICACHE_LINESIZE,
6745 _SC_LEVEL1_DCACHE_SIZE,
6747 _SC_LEVEL1_DCACHE_ASSOC,
6749 _SC_LEVEL1_DCACHE_LINESIZE,
6751 _SC_LEVEL2_CACHE_SIZE,
6753 _SC_LEVEL2_CACHE_ASSOC,
6755 _SC_LEVEL2_CACHE_LINESIZE,
6757 _SC_LEVEL3_CACHE_SIZE,
6759 _SC_LEVEL3_CACHE_ASSOC,
6761 _SC_LEVEL3_CACHE_LINESIZE,
6763 _SC_LEVEL4_CACHE_SIZE,
6765 _SC_LEVEL4_CACHE_ASSOC,
6767 _SC_LEVEL4_CACHE_LINESIZE,
6771 _SC_IPV6 = _SC_LEVEL1_ICACHE_SIZE + 50,
6783 _CS_V6_WIDTH_RESTRICTED_ENVS,
6786 _CS_GNU_LIBC_VERSION,
6788 _CS_GNU_LIBPTHREAD_VERSION,
6791 _CS_LFS_CFLAGS = 1000,
6805 _CS_LFS64_LINTFLAGS,
6808 _CS_XBS5_ILP32_OFF32_CFLAGS = 1100,
6810 _CS_XBS5_ILP32_OFF32_LDFLAGS,
6812 _CS_XBS5_ILP32_OFF32_LIBS,
6814 _CS_XBS5_ILP32_OFF32_LINTFLAGS,
6816 _CS_XBS5_ILP32_OFFBIG_CFLAGS,
6818 _CS_XBS5_ILP32_OFFBIG_LDFLAGS,
6820 _CS_XBS5_ILP32_OFFBIG_LIBS,
6822 _CS_XBS5_ILP32_OFFBIG_LINTFLAGS,
6824 _CS_XBS5_LP64_OFF64_CFLAGS,
6826 _CS_XBS5_LP64_OFF64_LDFLAGS,
6828 _CS_XBS5_LP64_OFF64_LIBS,
6830 _CS_XBS5_LP64_OFF64_LINTFLAGS,
6832 _CS_XBS5_LPBIG_OFFBIG_CFLAGS,
6834 _CS_XBS5_LPBIG_OFFBIG_LDFLAGS,
6836 _CS_XBS5_LPBIG_OFFBIG_LIBS,
6838 _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS,
6841 _CS_POSIX_V6_ILP32_OFF32_CFLAGS,
6843 _CS_POSIX_V6_ILP32_OFF32_LDFLAGS,
6845 _CS_POSIX_V6_ILP32_OFF32_LIBS,
6847 _CS_POSIX_V6_ILP32_OFF32_LINTFLAGS,
6849 _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS,
6851 _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS,
6853 _CS_POSIX_V6_ILP32_OFFBIG_LIBS,
6855 _CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS,
6857 _CS_POSIX_V6_LP64_OFF64_CFLAGS,
6859 _CS_POSIX_V6_LP64_OFF64_LDFLAGS,
6861 _CS_POSIX_V6_LP64_OFF64_LIBS,
6863 _CS_POSIX_V6_LP64_OFF64_LINTFLAGS,
6865 _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS,
6867 _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS,
6869 _CS_POSIX_V6_LPBIG_OFFBIG_LIBS,
6871 _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS
6874 # 9 "/usr/include/bits/confname.h" 2 3 4
6875 # 555 "/usr/include/gentoo-multilib/amd64/unistd.h" 2 3 4
6878 extern long int pathconf (__const char *__path, int __name)
6879 throw () __attribute__ ((__nonnull__ (1)));
6882 extern long int fpathconf (int __fd, int __name) throw ();
6885 extern long int sysconf (int __name) throw ();
6889 extern size_t confstr (int __name, char *__buf, size_t __len) throw ();
6894 extern __pid_t getpid (void) throw ();
6897 extern __pid_t getppid (void) throw ();
6902 extern __pid_t getpgrp (void) throw ();
6903 # 591 "/usr/include/gentoo-multilib/amd64/unistd.h" 3 4
6904 extern __pid_t __getpgid (__pid_t __pid) throw ();
6906 extern __pid_t getpgid (__pid_t __pid) throw ();
6913 extern int setpgid (__pid_t __pid, __pid_t __pgid) throw ();
6914 # 617 "/usr/include/gentoo-multilib/amd64/unistd.h" 3 4
6915 extern int setpgrp (void) throw ();
6916 # 634 "/usr/include/gentoo-multilib/amd64/unistd.h" 3 4
6917 extern __pid_t setsid (void) throw ();
6921 extern __pid_t getsid (__pid_t __pid) throw ();
6925 extern __uid_t getuid (void) throw ();
6928 extern __uid_t geteuid (void) throw ();
6931 extern __gid_t getgid (void) throw ();
6934 extern __gid_t getegid (void) throw ();
6939 extern int getgroups (int __size, __gid_t __list[]) throw () ;
6943 extern int group_member (__gid_t __gid) throw ();
6950 extern int setuid (__uid_t __uid) throw ();
6955 extern int setreuid (__uid_t __ruid, __uid_t __euid) throw ();
6960 extern int seteuid (__uid_t __uid) throw ();
6967 extern int setgid (__gid_t __gid) throw ();
6972 extern int setregid (__gid_t __rgid, __gid_t __egid) throw ();
6977 extern int setegid (__gid_t __gid) throw ();
6983 extern int getresuid (__uid_t *__ruid, __uid_t *__euid, __uid_t *__suid)
6988 extern int getresgid (__gid_t *__rgid, __gid_t *__egid, __gid_t *__sgid)
6993 extern int setresuid (__uid_t __ruid, __uid_t __euid, __uid_t __suid)
6998 extern int setresgid (__gid_t __rgid, __gid_t __egid, __gid_t __sgid)
7006 extern __pid_t fork (void) throw ();
7013 extern __pid_t vfork (void) throw ();
7019 extern char *ttyname (int __fd) throw ();
7023 extern int ttyname_r (int __fd, char *__buf, size_t __buflen)
7024 throw () __attribute__ ((__nonnull__ (2))) ;
7028 extern int isatty (int __fd) throw ();
7034 extern int ttyslot (void) throw ();
7039 extern int link (__const char *__from, __const char *__to)
7040 throw () __attribute__ ((__nonnull__ (1, 2))) ;
7045 extern int linkat (int __fromfd, __const char *__from, int __tofd,
7046 __const char *__to, int __flags)
7047 throw () __attribute__ ((__nonnull__ (2, 4))) ;
7052 extern int symlink (__const char *__from, __const char *__to)
7053 throw () __attribute__ ((__nonnull__ (1, 2))) ;
7058 extern ssize_t readlink (__const char *__restrict __path,
7059 char *__restrict __buf, size_t __len)
7060 throw () __attribute__ ((__nonnull__ (1, 2))) ;
7065 extern int symlinkat (__const char *__from, int __tofd,
7066 __const char *__to) throw () __attribute__ ((__nonnull__ (1, 3))) ;
7069 extern ssize_t readlinkat (int __fd, __const char *__restrict __path,
7070 char *__restrict __buf, size_t __len)
7071 throw () __attribute__ ((__nonnull__ (2, 3))) ;
7075 extern int unlink (__const char *__name) throw () __attribute__ ((__nonnull__ (1)));
7079 extern int unlinkat (int __fd, __const char *__name, int __flag)
7080 throw () __attribute__ ((__nonnull__ (2)));
7084 extern int rmdir (__const char *__path) throw () __attribute__ ((__nonnull__ (1)));
7088 extern __pid_t tcgetpgrp (int __fd) throw ();
7091 extern int tcsetpgrp (int __fd, __pid_t __pgrp_id) throw ();
7098 extern char *getlogin (void);
7106 extern int getlogin_r (char *__name, size_t __name_len) __attribute__ ((__nonnull__ (1)));
7111 extern int setlogin (__const char *__name) throw () __attribute__ ((__nonnull__ (1)));
7112 # 837 "/usr/include/gentoo-multilib/amd64/unistd.h" 3 4
7113 # 1 "/usr/include/getopt.h" 1 3 4
7121 # 1 "/usr/include/gentoo-multilib/amd64/getopt.h" 1 3 4
7122 # 50 "/usr/include/gentoo-multilib/amd64/getopt.h" 3 4
7124 # 59 "/usr/include/gentoo-multilib/amd64/getopt.h" 3 4
7125 extern char *optarg;
7126 # 73 "/usr/include/gentoo-multilib/amd64/getopt.h" 3 4
7137 # 152 "/usr/include/gentoo-multilib/amd64/getopt.h" 3 4
7138 extern int getopt (int ___argc, char *const *___argv, const char *__shortopts)
7140 # 171 "/usr/include/gentoo-multilib/amd64/getopt.h" 3 4
7142 # 9 "/usr/include/getopt.h" 2 3 4
7143 # 838 "/usr/include/gentoo-multilib/amd64/unistd.h" 2 3 4
7151 extern int gethostname (char *__name, size_t __len) throw () __attribute__ ((__nonnull__ (1)));
7158 extern int sethostname (__const char *__name, size_t __len)
7159 throw () __attribute__ ((__nonnull__ (1))) ;
7163 extern int sethostid (long int __id) throw () ;
7169 extern int getdomainname (char *__name, size_t __len)
7170 throw () __attribute__ ((__nonnull__ (1))) ;
7171 extern int setdomainname (__const char *__name, size_t __len)
7172 throw () __attribute__ ((__nonnull__ (1))) ;
7178 extern int vhangup (void) throw ();
7181 extern int revoke (__const char *__file) throw () __attribute__ ((__nonnull__ (1))) ;
7189 extern int profil (unsigned short int *__sample_buffer, size_t __size,
7190 size_t __offset, unsigned int __scale)
7191 throw () __attribute__ ((__nonnull__ (1)));
7197 extern int acct (__const char *__name) throw ();
7201 extern char *getusershell (void) throw ();
7202 extern void endusershell (void) throw ();
7203 extern void setusershell (void) throw ();
7209 extern int daemon (int __nochdir, int __noclose) throw () ;
7216 extern int chroot (__const char *__path) throw () __attribute__ ((__nonnull__ (1))) ;
7220 extern char *getpass (__const char *__prompt) __attribute__ ((__nonnull__ (1)));
7221 # 923 "/usr/include/gentoo-multilib/amd64/unistd.h" 3 4
7222 extern int fsync (int __fd);
7229 extern long int gethostid (void);
7232 extern void sync (void) throw ();
7237 extern int getpagesize (void) throw () __attribute__ ((__const__));
7242 extern int getdtablesize (void) throw ();
7247 extern int truncate (__const char *__file, __off_t __length)
7248 throw () __attribute__ ((__nonnull__ (1))) ;
7249 # 960 "/usr/include/gentoo-multilib/amd64/unistd.h" 3 4
7250 extern int truncate64 (__const char *__file, __off64_t __length)
7251 throw () __attribute__ ((__nonnull__ (1))) ;
7252 # 970 "/usr/include/gentoo-multilib/amd64/unistd.h" 3 4
7253 extern int ftruncate (int __fd, __off_t __length) throw () ;
7254 # 980 "/usr/include/gentoo-multilib/amd64/unistd.h" 3 4
7255 extern int ftruncate64 (int __fd, __off64_t __length) throw () ;
7256 # 990 "/usr/include/gentoo-multilib/amd64/unistd.h" 3 4
7257 extern int brk (void *__addr) throw () ;
7263 extern void *sbrk (intptr_t __delta) throw ();
7264 # 1011 "/usr/include/gentoo-multilib/amd64/unistd.h" 3 4
7265 extern long int syscall (long int __sysno, ...) throw ();
7266 # 1034 "/usr/include/gentoo-multilib/amd64/unistd.h" 3 4
7267 extern int lockf (int __fd, int __cmd, __off_t __len) ;
7268 # 1044 "/usr/include/gentoo-multilib/amd64/unistd.h" 3 4
7269 extern int lockf64 (int __fd, int __cmd, __off64_t __len) ;
7270 # 1065 "/usr/include/gentoo-multilib/amd64/unistd.h" 3 4
7271 extern int fdatasync (int __fildes);
7279 extern char *crypt (__const char *__key, __const char *__salt)
7280 throw () __attribute__ ((__nonnull__ (1, 2)));
7284 extern void encrypt (char *__block, int __edflag) throw () __attribute__ ((__nonnull__ (1)));
7291 extern void swab (__const void *__restrict __from, void *__restrict __to,
7292 ssize_t __n) throw () __attribute__ ((__nonnull__ (1, 2)));
7300 extern char *ctermid (char *__s) throw ();
7301 # 1103 "/usr/include/gentoo-multilib/amd64/unistd.h" 3 4
7303 # 9 "/usr/include/unistd.h" 2 3 4
7304 # 45 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/x86_64-pc-linux-gnu/bits/gthr-default.h" 2 3
7306 typedef pthread_key_t __gthread_key_t;
7307 typedef pthread_once_t __gthread_once_t;
7308 typedef pthread_mutex_t __gthread_mutex_t;
7309 typedef pthread_mutex_t __gthread_recursive_mutex_t;
7310 # 92 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/x86_64-pc-linux-gnu/bits/gthr-default.h" 3
7311 static __typeof(pthread_once) __gthrw_pthread_once __attribute__ ((__weakref__("pthread_once")));
7312 static __typeof(pthread_getspecific) __gthrw_pthread_getspecific __attribute__ ((__weakref__("pthread_getspecific")));
7313 static __typeof(pthread_setspecific) __gthrw_pthread_setspecific __attribute__ ((__weakref__("pthread_setspecific")));
7314 static __typeof(pthread_create) __gthrw_pthread_create __attribute__ ((__weakref__("pthread_create")));
7315 static __typeof(pthread_cancel) __gthrw_pthread_cancel __attribute__ ((__weakref__("pthread_cancel")));
7316 static __typeof(pthread_mutex_lock) __gthrw_pthread_mutex_lock __attribute__ ((__weakref__("pthread_mutex_lock")));
7317 static __typeof(pthread_mutex_trylock) __gthrw_pthread_mutex_trylock __attribute__ ((__weakref__("pthread_mutex_trylock")));
7318 static __typeof(pthread_mutex_unlock) __gthrw_pthread_mutex_unlock __attribute__ ((__weakref__("pthread_mutex_unlock")));
7319 static __typeof(pthread_mutex_init) __gthrw_pthread_mutex_init __attribute__ ((__weakref__("pthread_mutex_init")));
7322 static __typeof(pthread_key_create) __gthrw_pthread_key_create __attribute__ ((__weakref__("pthread_key_create")));
7323 static __typeof(pthread_key_delete) __gthrw_pthread_key_delete __attribute__ ((__weakref__("pthread_key_delete")));
7324 static __typeof(pthread_mutexattr_init) __gthrw_pthread_mutexattr_init __attribute__ ((__weakref__("pthread_mutexattr_init")));
7325 static __typeof(pthread_mutexattr_settype) __gthrw_pthread_mutexattr_settype __attribute__ ((__weakref__("pthread_mutexattr_settype")));
7326 static __typeof(pthread_mutexattr_destroy) __gthrw_pthread_mutexattr_destroy __attribute__ ((__weakref__("pthread_mutexattr_destroy")));
7327 # 202 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/x86_64-pc-linux-gnu/bits/gthr-default.h" 3
7329 __gthread_active_p (void)
7331 static void *const __gthread_active_ptr
7332 = __extension__ (void *) &__gthrw_pthread_cancel;
7333 return __gthread_active_ptr != 0;
7335 # 571 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/x86_64-pc-linux-gnu/bits/gthr-default.h" 3
7337 __gthread_once (__gthread_once_t *once, void (*func) (void))
7339 if (__gthread_active_p ())
7340 return __gthrw_pthread_once (once, func);
7346 __gthread_key_create (__gthread_key_t *key, void (*dtor) (void *))
7348 return __gthrw_pthread_key_create (key, dtor);
7352 __gthread_key_delete (__gthread_key_t key)
7354 return __gthrw_pthread_key_delete (key);
7357 static inline void *
7358 __gthread_getspecific (__gthread_key_t key)
7360 return __gthrw_pthread_getspecific (key);
7364 __gthread_setspecific (__gthread_key_t key, const void *ptr)
7366 return __gthrw_pthread_setspecific (key, ptr);
7370 __gthread_mutex_lock (__gthread_mutex_t *mutex)
7372 if (__gthread_active_p ())
7373 return __gthrw_pthread_mutex_lock (mutex);
7379 __gthread_mutex_trylock (__gthread_mutex_t *mutex)
7381 if (__gthread_active_p ())
7382 return __gthrw_pthread_mutex_trylock (mutex);
7388 __gthread_mutex_unlock (__gthread_mutex_t *mutex)
7390 if (__gthread_active_p ())
7391 return __gthrw_pthread_mutex_unlock (mutex);
7395 # 653 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/x86_64-pc-linux-gnu/bits/gthr-default.h" 3
7397 __gthread_recursive_mutex_lock (__gthread_recursive_mutex_t *mutex)
7399 return __gthread_mutex_lock (mutex);
7403 __gthread_recursive_mutex_trylock (__gthread_recursive_mutex_t *mutex)
7405 return __gthread_mutex_trylock (mutex);
7409 __gthread_recursive_mutex_unlock (__gthread_recursive_mutex_t *mutex)
7411 return __gthread_mutex_unlock (mutex);
7413 # 115 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/x86_64-pc-linux-gnu/bits/gthr.h" 2 3
7421 #pragma GCC visibility pop
7422 # 44 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/x86_64-pc-linux-gnu/bits/c++io.h" 2 3
7424 namespace std __attribute__ ((__visibility__ ("default"))) {
7426 typedef __gthread_mutex_t __c_lock;
7429 typedef FILE __c_file;
7432 # 47 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/iosfwd" 2 3
7433 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/cctype" 1 3
7434 # 48 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/cctype" 3
7436 # 49 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/cctype" 3
7439 # 1 "/usr/include/ctype.h" 1 3 4
7447 # 1 "/usr/include/gentoo-multilib/amd64/ctype.h" 1 3 4
7448 # 27 "/usr/include/gentoo-multilib/amd64/ctype.h" 3 4
7449 # 1 "/usr/include/features.h" 1 3 4
7450 # 28 "/usr/include/gentoo-multilib/amd64/ctype.h" 2 3 4
7451 # 1 "/usr/include/bits/types.h" 1 3 4
7452 # 29 "/usr/include/gentoo-multilib/amd64/ctype.h" 2 3 4
7455 # 41 "/usr/include/gentoo-multilib/amd64/ctype.h" 3 4
7456 # 1 "/usr/include/endian.h" 1 3 4
7457 # 42 "/usr/include/gentoo-multilib/amd64/ctype.h" 2 3 4
7466 _ISupper = ((0) < 8 ? ((1 << (0)) << 8) : ((1 << (0)) >> 8)),
7467 _ISlower = ((1) < 8 ? ((1 << (1)) << 8) : ((1 << (1)) >> 8)),
7468 _ISalpha = ((2) < 8 ? ((1 << (2)) << 8) : ((1 << (2)) >> 8)),
7469 _ISdigit = ((3) < 8 ? ((1 << (3)) << 8) : ((1 << (3)) >> 8)),
7470 _ISxdigit = ((4) < 8 ? ((1 << (4)) << 8) : ((1 << (4)) >> 8)),
7471 _ISspace = ((5) < 8 ? ((1 << (5)) << 8) : ((1 << (5)) >> 8)),
7472 _ISprint = ((6) < 8 ? ((1 << (6)) << 8) : ((1 << (6)) >> 8)),
7473 _ISgraph = ((7) < 8 ? ((1 << (7)) << 8) : ((1 << (7)) >> 8)),
7474 _ISblank = ((8) < 8 ? ((1 << (8)) << 8) : ((1 << (8)) >> 8)),
7475 _IScntrl = ((9) < 8 ? ((1 << (9)) << 8) : ((1 << (9)) >> 8)),
7476 _ISpunct = ((10) < 8 ? ((1 << (10)) << 8) : ((1 << (10)) >> 8)),
7477 _ISalnum = ((11) < 8 ? ((1 << (11)) << 8) : ((1 << (11)) >> 8))
7479 # 81 "/usr/include/gentoo-multilib/amd64/ctype.h" 3 4
7480 extern __const unsigned short int **__ctype_b_loc (void)
7481 __attribute__ ((__const));
7482 extern __const __int32_t **__ctype_tolower_loc (void)
7483 __attribute__ ((__const));
7484 extern __const __int32_t **__ctype_toupper_loc (void)
7485 __attribute__ ((__const));
7486 # 96 "/usr/include/gentoo-multilib/amd64/ctype.h" 3 4
7493 extern int isalnum (int) throw ();
7494 extern int isalpha (int) throw ();
7495 extern int iscntrl (int) throw ();
7496 extern int isdigit (int) throw ();
7497 extern int islower (int) throw ();
7498 extern int isgraph (int) throw ();
7499 extern int isprint (int) throw ();
7500 extern int ispunct (int) throw ();
7501 extern int isspace (int) throw ();
7502 extern int isupper (int) throw ();
7503 extern int isxdigit (int) throw ();
7507 extern int tolower (int __c) throw ();
7510 extern int toupper (int __c) throw ();
7519 extern int isblank (int) throw ();
7526 extern int isctype (int __c, int __mask) throw ();
7533 extern int isascii (int __c) throw ();
7537 extern int toascii (int __c) throw ();
7541 extern int _toupper (int) throw ();
7542 extern int _tolower (int) throw ();
7543 # 233 "/usr/include/gentoo-multilib/amd64/ctype.h" 3 4
7544 # 1 "/usr/include/xlocale.h" 1 3 4
7545 # 234 "/usr/include/gentoo-multilib/amd64/ctype.h" 2 3 4
7546 # 247 "/usr/include/gentoo-multilib/amd64/ctype.h" 3 4
7547 extern int isalnum_l (int, __locale_t) throw ();
7548 extern int isalpha_l (int, __locale_t) throw ();
7549 extern int iscntrl_l (int, __locale_t) throw ();
7550 extern int isdigit_l (int, __locale_t) throw ();
7551 extern int islower_l (int, __locale_t) throw ();
7552 extern int isgraph_l (int, __locale_t) throw ();
7553 extern int isprint_l (int, __locale_t) throw ();
7554 extern int ispunct_l (int, __locale_t) throw ();
7555 extern int isspace_l (int, __locale_t) throw ();
7556 extern int isupper_l (int, __locale_t) throw ();
7557 extern int isxdigit_l (int, __locale_t) throw ();
7559 extern int isblank_l (int, __locale_t) throw ();
7563 extern int __tolower_l (int __c, __locale_t __l) throw ();
7564 extern int tolower_l (int __c, __locale_t __l) throw ();
7567 extern int __toupper_l (int __c, __locale_t __l) throw ();
7568 extern int toupper_l (int __c, __locale_t __l) throw ();
7569 # 323 "/usr/include/gentoo-multilib/amd64/ctype.h" 3 4
7571 # 9 "/usr/include/ctype.h" 2 3 4
7572 # 52 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/cctype" 2 3
7573 # 68 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/cctype" 3
7574 namespace std __attribute__ ((__visibility__ ("default"))) {
7591 # 48 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/iosfwd" 2 3
7593 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/postypes.h" 1 3
7594 # 44 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/postypes.h" 3
7596 # 45 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/postypes.h" 3
7598 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/cwchar" 1 3
7599 # 48 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/cwchar" 3
7601 # 49 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/cwchar" 3
7605 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/ctime" 1 3
7606 # 48 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/ctime" 3
7608 # 49 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/ctime" 3
7611 # 1 "/usr/include/time.h" 1 3 4
7612 # 52 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/ctime" 2 3
7613 # 64 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/ctime" 3
7614 namespace std __attribute__ ((__visibility__ ("default"))) {
7631 # 53 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/cwchar" 2 3
7634 # 1 "/usr/include/wchar.h" 1 3 4
7642 # 1 "/usr/include/gentoo-multilib/amd64/wchar.h" 1 3 4
7643 # 28 "/usr/include/gentoo-multilib/amd64/wchar.h" 3 4
7644 # 1 "/usr/include/features.h" 1 3 4
7645 # 29 "/usr/include/gentoo-multilib/amd64/wchar.h" 2 3 4
7646 # 37 "/usr/include/gentoo-multilib/amd64/wchar.h" 3 4
7647 # 1 "/usr/include/stdio.h" 1 3 4
7648 # 38 "/usr/include/gentoo-multilib/amd64/wchar.h" 2 3 4
7649 # 48 "/usr/include/gentoo-multilib/amd64/wchar.h" 3 4
7650 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/stddef.h" 1 3 4
7651 # 49 "/usr/include/gentoo-multilib/amd64/wchar.h" 2 3 4
7653 # 1 "/usr/include/bits/wchar.h" 1 3 4
7654 # 51 "/usr/include/gentoo-multilib/amd64/wchar.h" 2 3 4
7655 # 93 "/usr/include/gentoo-multilib/amd64/wchar.h" 3 4
7658 typedef __mbstate_t mbstate_t;
7662 # 118 "/usr/include/gentoo-multilib/amd64/wchar.h" 3 4
7678 extern wchar_t *wcscpy (wchar_t *__restrict __dest,
7679 __const wchar_t *__restrict __src) throw ();
7681 extern wchar_t *wcsncpy (wchar_t *__restrict __dest,
7682 __const wchar_t *__restrict __src, size_t __n)
7686 extern wchar_t *wcscat (wchar_t *__restrict __dest,
7687 __const wchar_t *__restrict __src) throw ();
7689 extern wchar_t *wcsncat (wchar_t *__restrict __dest,
7690 __const wchar_t *__restrict __src, size_t __n)
7694 extern int wcscmp (__const wchar_t *__s1, __const wchar_t *__s2)
7695 throw () __attribute__ ((__pure__));
7697 extern int wcsncmp (__const wchar_t *__s1, __const wchar_t *__s2, size_t __n)
7698 throw () __attribute__ ((__pure__));
7703 extern int wcscasecmp (__const wchar_t *__s1, __const wchar_t *__s2) throw ();
7706 extern int wcsncasecmp (__const wchar_t *__s1, __const wchar_t *__s2,
7707 size_t __n) throw ();
7711 # 1 "/usr/include/xlocale.h" 1 3 4
7712 # 167 "/usr/include/gentoo-multilib/amd64/wchar.h" 2 3 4
7714 extern int wcscasecmp_l (__const wchar_t *__s1, __const wchar_t *__s2,
7715 __locale_t __loc) throw ();
7717 extern int wcsncasecmp_l (__const wchar_t *__s1, __const wchar_t *__s2,
7718 size_t __n, __locale_t __loc) throw ();
7724 extern int wcscoll (__const wchar_t *__s1, __const wchar_t *__s2) throw ();
7728 extern size_t wcsxfrm (wchar_t *__restrict __s1,
7729 __const wchar_t *__restrict __s2, size_t __n) throw ();
7738 extern int wcscoll_l (__const wchar_t *__s1, __const wchar_t *__s2,
7739 __locale_t __loc) throw ();
7744 extern size_t wcsxfrm_l (wchar_t *__s1, __const wchar_t *__s2,
7745 size_t __n, __locale_t __loc) throw ();
7748 extern wchar_t *wcsdup (__const wchar_t *__s) throw () __attribute__ ((__malloc__));
7753 extern wchar_t *wcschr (__const wchar_t *__wcs, wchar_t __wc)
7754 throw () __attribute__ ((__pure__));
7756 extern wchar_t *wcsrchr (__const wchar_t *__wcs, wchar_t __wc)
7757 throw () __attribute__ ((__pure__));
7763 extern wchar_t *wcschrnul (__const wchar_t *__s, wchar_t __wc)
7764 throw () __attribute__ ((__pure__));
7770 extern size_t wcscspn (__const wchar_t *__wcs, __const wchar_t *__reject)
7771 throw () __attribute__ ((__pure__));
7774 extern size_t wcsspn (__const wchar_t *__wcs, __const wchar_t *__accept)
7775 throw () __attribute__ ((__pure__));
7777 extern wchar_t *wcspbrk (__const wchar_t *__wcs, __const wchar_t *__accept)
7778 throw () __attribute__ ((__pure__));
7780 extern wchar_t *wcsstr (__const wchar_t *__haystack, __const wchar_t *__needle)
7781 throw () __attribute__ ((__pure__));
7784 extern wchar_t *wcstok (wchar_t *__restrict __s,
7785 __const wchar_t *__restrict __delim,
7786 wchar_t **__restrict __ptr) throw ();
7789 extern size_t wcslen (__const wchar_t *__s) throw () __attribute__ ((__pure__));
7794 extern wchar_t *wcswcs (__const wchar_t *__haystack, __const wchar_t *__needle)
7795 throw () __attribute__ ((__pure__));
7800 extern size_t wcsnlen (__const wchar_t *__s, size_t __maxlen)
7801 throw () __attribute__ ((__pure__));
7807 extern wchar_t *wmemchr (__const wchar_t *__s, wchar_t __c, size_t __n)
7808 throw () __attribute__ ((__pure__));
7811 extern int wmemcmp (__const wchar_t *__restrict __s1,
7812 __const wchar_t *__restrict __s2, size_t __n)
7813 throw () __attribute__ ((__pure__));
7816 extern wchar_t *wmemcpy (wchar_t *__restrict __s1,
7817 __const wchar_t *__restrict __s2, size_t __n) throw ();
7821 extern wchar_t *wmemmove (wchar_t *__s1, __const wchar_t *__s2, size_t __n)
7825 extern wchar_t *wmemset (wchar_t *__s, wchar_t __c, size_t __n) throw ();
7831 extern wchar_t *wmempcpy (wchar_t *__restrict __s1,
7832 __const wchar_t *__restrict __s2, size_t __n)
7840 extern wint_t btowc (int __c) throw ();
7844 extern int wctob (wint_t __c) throw ();
7848 extern int mbsinit (__const mbstate_t *__ps) throw () __attribute__ ((__pure__));
7852 extern size_t mbrtowc (wchar_t *__restrict __pwc,
7853 __const char *__restrict __s, size_t __n,
7854 mbstate_t *__p) throw ();
7857 extern size_t wcrtomb (char *__restrict __s, wchar_t __wc,
7858 mbstate_t *__restrict __ps) throw ();
7861 extern size_t __mbrlen (__const char *__restrict __s, size_t __n,
7862 mbstate_t *__restrict __ps) throw ();
7863 extern size_t mbrlen (__const char *__restrict __s, size_t __n,
7864 mbstate_t *__restrict __ps) throw ();
7866 # 341 "/usr/include/gentoo-multilib/amd64/wchar.h" 3 4
7867 extern __inline size_t
7868 mbrlen (__const char *__restrict __s, size_t __n, mbstate_t *__restrict __ps) throw ()
7870 { return (__ps != __null
7871 ? mbrtowc (__null, __s, __n, __ps) : __mbrlen (__s, __n, __null)); }
7877 extern size_t mbsrtowcs (wchar_t *__restrict __dst,
7878 __const char **__restrict __src, size_t __len,
7879 mbstate_t *__restrict __ps) throw ();
7883 extern size_t wcsrtombs (char *__restrict __dst,
7884 __const wchar_t **__restrict __src, size_t __len,
7885 mbstate_t *__restrict __ps) throw ();
7892 extern size_t mbsnrtowcs (wchar_t *__restrict __dst,
7893 __const char **__restrict __src, size_t __nmc,
7894 size_t __len, mbstate_t *__restrict __ps) throw ();
7898 extern size_t wcsnrtombs (char *__restrict __dst,
7899 __const wchar_t **__restrict __src,
7900 size_t __nwc, size_t __len,
7901 mbstate_t *__restrict __ps) throw ();
7908 extern int wcwidth (wchar_t __c) throw ();
7912 extern int wcswidth (__const wchar_t *__s, size_t __n) throw ();
7919 extern double wcstod (__const wchar_t *__restrict __nptr,
7920 wchar_t **__restrict __endptr) throw ();
7924 extern float wcstof (__const wchar_t *__restrict __nptr,
7925 wchar_t **__restrict __endptr) throw ();
7926 extern long double wcstold (__const wchar_t *__restrict __nptr,
7927 wchar_t **__restrict __endptr) throw ();
7933 extern long int wcstol (__const wchar_t *__restrict __nptr,
7934 wchar_t **__restrict __endptr, int __base) throw ();
7938 extern unsigned long int wcstoul (__const wchar_t *__restrict __nptr,
7939 wchar_t **__restrict __endptr, int __base)
7946 extern long long int wcstoll (__const wchar_t *__restrict __nptr,
7947 wchar_t **__restrict __endptr, int __base)
7953 extern unsigned long long int wcstoull (__const wchar_t *__restrict __nptr,
7954 wchar_t **__restrict __endptr,
7955 int __base) throw ();
7963 extern long long int wcstoq (__const wchar_t *__restrict __nptr,
7964 wchar_t **__restrict __endptr, int __base)
7970 extern unsigned long long int wcstouq (__const wchar_t *__restrict __nptr,
7971 wchar_t **__restrict __endptr,
7972 int __base) throw ();
7973 # 463 "/usr/include/gentoo-multilib/amd64/wchar.h" 3 4
7974 # 1 "/usr/include/xlocale.h" 1 3 4
7975 # 464 "/usr/include/gentoo-multilib/amd64/wchar.h" 2 3 4
7979 extern long int wcstol_l (__const wchar_t *__restrict __nptr,
7980 wchar_t **__restrict __endptr, int __base,
7981 __locale_t __loc) throw ();
7983 extern unsigned long int wcstoul_l (__const wchar_t *__restrict __nptr,
7984 wchar_t **__restrict __endptr,
7985 int __base, __locale_t __loc) throw ();
7988 extern long long int wcstoll_l (__const wchar_t *__restrict __nptr,
7989 wchar_t **__restrict __endptr,
7990 int __base, __locale_t __loc) throw ();
7993 extern unsigned long long int wcstoull_l (__const wchar_t *__restrict __nptr,
7994 wchar_t **__restrict __endptr,
7995 int __base, __locale_t __loc)
7998 extern double wcstod_l (__const wchar_t *__restrict __nptr,
7999 wchar_t **__restrict __endptr, __locale_t __loc)
8002 extern float wcstof_l (__const wchar_t *__restrict __nptr,
8003 wchar_t **__restrict __endptr, __locale_t __loc)
8006 extern long double wcstold_l (__const wchar_t *__restrict __nptr,
8007 wchar_t **__restrict __endptr,
8008 __locale_t __loc) throw ();
8014 extern double __wcstod_internal (__const wchar_t *__restrict __nptr,
8015 wchar_t **__restrict __endptr, int __group)
8017 extern float __wcstof_internal (__const wchar_t *__restrict __nptr,
8018 wchar_t **__restrict __endptr, int __group)
8020 extern long double __wcstold_internal (__const wchar_t *__restrict __nptr,
8021 wchar_t **__restrict __endptr,
8022 int __group) throw ();
8026 extern long int __wcstol_internal (__const wchar_t *__restrict __nptr,
8027 wchar_t **__restrict __endptr,
8028 int __base, int __group) throw ();
8033 extern unsigned long int __wcstoul_internal (__const wchar_t *__restrict __npt,
8034 wchar_t **__restrict __endptr,
8035 int __base, int __group) throw ();
8041 extern long long int __wcstoll_internal (__const wchar_t *__restrict __nptr,
8042 wchar_t **__restrict __endptr,
8043 int __base, int __group) throw ();
8049 extern unsigned long long int __wcstoull_internal (__const wchar_t *
8052 __restrict __endptr,
8054 int __group) throw ();
8063 extern __inline double
8064 wcstod (__const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr) throw ()
8066 { return __wcstod_internal (__nptr, __endptr, 0); }
8067 extern __inline long int
8068 wcstol (__const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr, int __base) throw ()
8070 { return __wcstol_internal (__nptr, __endptr, __base, 0); }
8071 extern __inline unsigned long int
8072 wcstoul (__const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr, int __base) throw ()
8074 { return __wcstoul_internal (__nptr, __endptr, __base, 0); }
8078 extern __inline float
8079 wcstof (__const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr) throw ()
8081 { return __wcstof_internal (__nptr, __endptr, 0); }
8083 extern __inline long double
8084 wcstold (__const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr) throw ()
8086 { return __wcstold_internal (__nptr, __endptr, 0); }
8089 extern __inline long long int
8090 wcstoq (__const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr, int __base) throw ()
8092 { return __wcstoll_internal (__nptr, __endptr, __base, 0); }
8094 extern __inline unsigned long long int
8095 wcstouq (__const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr, int __base) throw ()
8097 { return __wcstoull_internal (__nptr, __endptr, __base, 0); }
8105 extern wchar_t *wcpcpy (wchar_t *__dest, __const wchar_t *__src) throw ();
8109 extern wchar_t *wcpncpy (wchar_t *__dest, __const wchar_t *__src, size_t __n)
8111 # 607 "/usr/include/gentoo-multilib/amd64/wchar.h" 3 4
8112 extern __FILE *open_wmemstream (wchar_t **__bufloc, size_t *__sizeloc) throw ();
8119 extern int fwide (__FILE *__fp, int __mode) throw ();
8126 extern int fwprintf (__FILE *__restrict __stream,
8127 __const wchar_t *__restrict __format, ...)
8133 extern int wprintf (__const wchar_t *__restrict __format, ...)
8136 extern int swprintf (wchar_t *__restrict __s, size_t __n,
8137 __const wchar_t *__restrict __format, ...)
8144 extern int vfwprintf (__FILE *__restrict __s,
8145 __const wchar_t *__restrict __format,
8146 __gnuc_va_list __arg)
8152 extern int vwprintf (__const wchar_t *__restrict __format,
8153 __gnuc_va_list __arg)
8157 extern int vswprintf (wchar_t *__restrict __s, size_t __n,
8158 __const wchar_t *__restrict __format,
8159 __gnuc_va_list __arg)
8167 extern int fwscanf (__FILE *__restrict __stream,
8168 __const wchar_t *__restrict __format, ...)
8174 extern int wscanf (__const wchar_t *__restrict __format, ...)
8177 extern int swscanf (__const wchar_t *__restrict __s,
8178 __const wchar_t *__restrict __format, ...)
8191 extern int vfwscanf (__FILE *__restrict __s,
8192 __const wchar_t *__restrict __format,
8193 __gnuc_va_list __arg)
8199 extern int vwscanf (__const wchar_t *__restrict __format,
8200 __gnuc_va_list __arg)
8203 extern int vswscanf (__const wchar_t *__restrict __s,
8204 __const wchar_t *__restrict __format,
8205 __gnuc_va_list __arg)
8217 extern wint_t fgetwc (__FILE *__stream);
8218 extern wint_t getwc (__FILE *__stream);
8224 extern wint_t getwchar (void);
8231 extern wint_t fputwc (wchar_t __wc, __FILE *__stream);
8232 extern wint_t putwc (wchar_t __wc, __FILE *__stream);
8238 extern wint_t putwchar (wchar_t __wc);
8246 extern wchar_t *fgetws (wchar_t *__restrict __ws, int __n,
8247 __FILE *__restrict __stream);
8253 extern int fputws (__const wchar_t *__restrict __ws,
8254 __FILE *__restrict __stream);
8261 extern wint_t ungetwc (wint_t __wc, __FILE *__stream);
8263 # 768 "/usr/include/gentoo-multilib/amd64/wchar.h" 3 4
8264 extern wint_t getwc_unlocked (__FILE *__stream);
8265 extern wint_t getwchar_unlocked (void);
8273 extern wint_t fgetwc_unlocked (__FILE *__stream);
8281 extern wint_t fputwc_unlocked (wchar_t __wc, __FILE *__stream);
8282 # 794 "/usr/include/gentoo-multilib/amd64/wchar.h" 3 4
8283 extern wint_t putwc_unlocked (wchar_t __wc, __FILE *__stream);
8284 extern wint_t putwchar_unlocked (wchar_t __wc);
8285 # 804 "/usr/include/gentoo-multilib/amd64/wchar.h" 3 4
8286 extern wchar_t *fgetws_unlocked (wchar_t *__restrict __ws, int __n,
8287 __FILE *__restrict __stream);
8295 extern int fputws_unlocked (__const wchar_t *__restrict __ws,
8296 __FILE *__restrict __stream);
8304 extern size_t wcsftime (wchar_t *__restrict __s, size_t __maxsize,
8305 __const wchar_t *__restrict __format,
8306 __const struct tm *__restrict __tp) throw ();
8310 # 1 "/usr/include/xlocale.h" 1 3 4
8311 # 829 "/usr/include/gentoo-multilib/amd64/wchar.h" 2 3 4
8315 extern size_t wcsftime_l (wchar_t *__restrict __s, size_t __maxsize,
8316 __const wchar_t *__restrict __format,
8317 __const struct tm *__restrict __tp,
8318 __locale_t __loc) throw ();
8319 # 858 "/usr/include/gentoo-multilib/amd64/wchar.h" 3 4
8321 # 9 "/usr/include/wchar.h" 2 3 4
8322 # 56 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/cwchar" 2 3
8323 # 70 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/cwchar" 3
8324 namespace std __attribute__ ((__visibility__ ("default"))) {
8329 # 144 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/cwchar" 3
8330 namespace std __attribute__ ((__visibility__ ("default"))) {
8399 wcschr(wchar_t* __p, wchar_t __c)
8400 { return wcschr(const_cast<const wchar_t*>(__p), __c); }
8405 wcspbrk(wchar_t* __s1, const wchar_t* __s2)
8406 { return wcspbrk(const_cast<const wchar_t*>(__s1), __s2); }
8411 wcsrchr(wchar_t* __p, wchar_t __c)
8412 { return wcsrchr(const_cast<const wchar_t*>(__p), __c); }
8417 wcsstr(wchar_t* __s1, const wchar_t* __s2)
8418 { return wcsstr(const_cast<const wchar_t*>(__s1), __s2); }
8423 wmemchr(wchar_t* __p, wchar_t __c, size_t __n)
8424 { return wmemchr(const_cast<const wchar_t*>(__p), __c, __n); }
8434 namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) {
8442 # 264 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/cwchar" 3
8449 namespace std __attribute__ ((__visibility__ ("default"))) {
8451 using ::__gnu_cxx::wcstold;
8452 using ::__gnu_cxx::wcstoll;
8453 using ::__gnu_cxx::wcstoull;
8456 # 47 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/postypes.h" 2 3
8459 # 1 "/usr/include/stdint.h" 1 3 4
8467 # 1 "/usr/include/gentoo-multilib/amd64/stdint.h" 1 3 4
8468 # 26 "/usr/include/gentoo-multilib/amd64/stdint.h" 3 4
8469 # 1 "/usr/include/features.h" 1 3 4
8470 # 27 "/usr/include/gentoo-multilib/amd64/stdint.h" 2 3 4
8471 # 1 "/usr/include/bits/wchar.h" 1 3 4
8472 # 28 "/usr/include/gentoo-multilib/amd64/stdint.h" 2 3 4
8473 # 1 "/usr/include/bits/wordsize.h" 1 3 4
8481 # 1 "/usr/include/gentoo-multilib/amd64/bits/wordsize.h" 1 3 4
8482 # 9 "/usr/include/bits/wordsize.h" 2 3 4
8483 # 29 "/usr/include/gentoo-multilib/amd64/stdint.h" 2 3 4
8484 # 49 "/usr/include/gentoo-multilib/amd64/stdint.h" 3 4
8485 typedef unsigned char uint8_t;
8486 typedef unsigned short int uint16_t;
8488 typedef unsigned int uint32_t;
8492 typedef unsigned long int uint64_t;
8493 # 66 "/usr/include/gentoo-multilib/amd64/stdint.h" 3 4
8494 typedef signed char int_least8_t;
8495 typedef short int int_least16_t;
8496 typedef int int_least32_t;
8498 typedef long int int_least64_t;
8505 typedef unsigned char uint_least8_t;
8506 typedef unsigned short int uint_least16_t;
8507 typedef unsigned int uint_least32_t;
8509 typedef unsigned long int uint_least64_t;
8510 # 91 "/usr/include/gentoo-multilib/amd64/stdint.h" 3 4
8511 typedef signed char int_fast8_t;
8513 typedef long int int_fast16_t;
8514 typedef long int int_fast32_t;
8515 typedef long int int_fast64_t;
8516 # 104 "/usr/include/gentoo-multilib/amd64/stdint.h" 3 4
8517 typedef unsigned char uint_fast8_t;
8519 typedef unsigned long int uint_fast16_t;
8520 typedef unsigned long int uint_fast32_t;
8521 typedef unsigned long int uint_fast64_t;
8522 # 123 "/usr/include/gentoo-multilib/amd64/stdint.h" 3 4
8523 typedef unsigned long int uintptr_t;
8524 # 135 "/usr/include/gentoo-multilib/amd64/stdint.h" 3 4
8525 typedef long int intmax_t;
8526 typedef unsigned long int uintmax_t;
8527 # 9 "/usr/include/stdint.h" 2 3 4
8528 # 50 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/postypes.h" 2 3
8531 namespace std __attribute__ ((__visibility__ ("default"))) {
8532 # 72 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/postypes.h" 3
8533 typedef int64_t streamoff;
8539 typedef ptrdiff_t streamsize;
8541 template<typename _StateT>
8543 # 94 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/postypes.h" 3
8544 template<typename _StateT>
8557 : _M_off(0), _M_state() { }
8558 # 116 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/postypes.h" 3
8559 fpos(streamoff __off)
8560 : _M_off(__off), _M_state() { }
8563 operator streamoff() const { return _M_off; }
8568 { _M_state = __st; }
8573 { return _M_state; }
8580 operator+=(streamoff __off)
8591 operator-=(streamoff __off)
8604 operator+(streamoff __off) const
8618 operator-(streamoff __off) const
8631 operator-(const fpos& __other) const
8632 { return _M_off - __other._M_off; }
8640 template<typename _StateT>
8642 operator==(const fpos<_StateT>& __lhs, const fpos<_StateT>& __rhs)
8643 { return streamoff(__lhs) == streamoff(__rhs); }
8645 template<typename _StateT>
8647 operator!=(const fpos<_StateT>& __lhs, const fpos<_StateT>& __rhs)
8648 { return streamoff(__lhs) != streamoff(__rhs); }
8654 typedef fpos<mbstate_t> streampos;
8656 typedef fpos<mbstate_t> wstreampos;
8659 # 50 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/iosfwd" 2 3
8660 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/functexcept.h" 1 3
8661 # 42 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/functexcept.h" 3
8662 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/exception_defines.h" 1 3
8663 # 43 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/functexcept.h" 2 3
8665 namespace std __attribute__ ((__visibility__ ("default"))) {
8669 __throw_bad_exception(void) __attribute__((__noreturn__));
8673 __throw_bad_alloc(void) __attribute__((__noreturn__));
8677 __throw_bad_cast(void) __attribute__((__noreturn__));
8680 __throw_bad_typeid(void) __attribute__((__noreturn__));
8684 __throw_logic_error(const char*) __attribute__((__noreturn__));
8687 __throw_domain_error(const char*) __attribute__((__noreturn__));
8690 __throw_invalid_argument(const char*) __attribute__((__noreturn__));
8693 __throw_length_error(const char*) __attribute__((__noreturn__));
8696 __throw_out_of_range(const char*) __attribute__((__noreturn__));
8699 __throw_runtime_error(const char*) __attribute__((__noreturn__));
8702 __throw_range_error(const char*) __attribute__((__noreturn__));
8705 __throw_overflow_error(const char*) __attribute__((__noreturn__));
8708 __throw_underflow_error(const char*) __attribute__((__noreturn__));
8712 __throw_ios_failure(const char*) __attribute__((__noreturn__));
8715 # 51 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/iosfwd" 2 3
8717 namespace std __attribute__ ((__visibility__ ("default"))) {
8719 template<typename _CharT, typename _Traits = char_traits<_CharT> >
8722 template<typename _CharT, typename _Traits = char_traits<_CharT> >
8723 class basic_streambuf;
8725 template<typename _CharT, typename _Traits = char_traits<_CharT> >
8726 class basic_istream;
8728 template<typename _CharT, typename _Traits = char_traits<_CharT> >
8729 class basic_ostream;
8731 template<typename _CharT, typename _Traits = char_traits<_CharT> >
8732 class basic_iostream;
8734 template<typename _CharT, typename _Traits = char_traits<_CharT>,
8735 typename _Alloc = allocator<_CharT> >
8736 class basic_stringbuf;
8738 template<typename _CharT, typename _Traits = char_traits<_CharT>,
8739 typename _Alloc = allocator<_CharT> >
8740 class basic_istringstream;
8742 template<typename _CharT, typename _Traits = char_traits<_CharT>,
8743 typename _Alloc = allocator<_CharT> >
8744 class basic_ostringstream;
8746 template<typename _CharT, typename _Traits = char_traits<_CharT>,
8747 typename _Alloc = allocator<_CharT> >
8748 class basic_stringstream;
8750 template<typename _CharT, typename _Traits = char_traits<_CharT> >
8751 class basic_filebuf;
8753 template<typename _CharT, typename _Traits = char_traits<_CharT> >
8754 class basic_ifstream;
8756 template<typename _CharT, typename _Traits = char_traits<_CharT> >
8757 class basic_ofstream;
8759 template<typename _CharT, typename _Traits = char_traits<_CharT> >
8760 class basic_fstream;
8762 template<typename _CharT, typename _Traits = char_traits<_CharT> >
8763 class istreambuf_iterator;
8765 template<typename _CharT, typename _Traits = char_traits<_CharT> >
8766 class ostreambuf_iterator;
8771 # 135 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/iosfwd" 3
8772 typedef basic_ios<char> ios;
8773 typedef basic_streambuf<char> streambuf;
8774 typedef basic_istream<char> istream;
8775 typedef basic_ostream<char> ostream;
8776 typedef basic_iostream<char> iostream;
8777 typedef basic_stringbuf<char> stringbuf;
8778 typedef basic_istringstream<char> istringstream;
8779 typedef basic_ostringstream<char> ostringstream;
8780 typedef basic_stringstream<char> stringstream;
8781 typedef basic_filebuf<char> filebuf;
8782 typedef basic_ifstream<char> ifstream;
8783 typedef basic_ofstream<char> ofstream;
8784 typedef basic_fstream<char> fstream;
8787 typedef basic_ios<wchar_t> wios;
8788 typedef basic_streambuf<wchar_t> wstreambuf;
8789 typedef basic_istream<wchar_t> wistream;
8790 typedef basic_ostream<wchar_t> wostream;
8791 typedef basic_iostream<wchar_t> wiostream;
8792 typedef basic_stringbuf<wchar_t> wstringbuf;
8793 typedef basic_istringstream<wchar_t> wistringstream;
8794 typedef basic_ostringstream<wchar_t> wostringstream;
8795 typedef basic_stringstream<wchar_t> wstringstream;
8796 typedef basic_filebuf<wchar_t> wfilebuf;
8797 typedef basic_ifstream<wchar_t> wifstream;
8798 typedef basic_ofstream<wchar_t> wofstream;
8799 typedef basic_fstream<wchar_t> wfstream;
8804 # 71 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_algobase.h" 2 3
8805 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_pair.h" 1 3
8806 # 64 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_pair.h" 3
8807 namespace std __attribute__ ((__visibility__ ("default"))) {
8810 template<class _T1, class _T2>
8813 typedef _T1 first_type;
8814 typedef _T2 second_type;
8824 : first(), second() { }
8827 pair(const _T1& __a, const _T2& __b)
8828 : first(__a), second(__b) { }
8831 template<class _U1, class _U2>
8832 pair(const pair<_U1, _U2>& __p)
8833 : first(__p.first), second(__p.second) { }
8837 template<class _T1, class _T2>
8839 operator==(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y)
8840 { return __x.first == __y.first && __x.second == __y.second; }
8843 template<class _T1, class _T2>
8845 operator<(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y)
8846 { return __x.first < __y.first
8847 || (!(__y.first < __x.first) && __x.second < __y.second); }
8850 template<class _T1, class _T2>
8852 operator!=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y)
8853 { return !(__x == __y); }
8856 template<class _T1, class _T2>
8858 operator>(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y)
8859 { return __y < __x; }
8862 template<class _T1, class _T2>
8864 operator<=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y)
8865 { return !(__y < __x); }
8868 template<class _T1, class _T2>
8870 operator>=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y)
8871 { return !(__x < __y); }
8872 # 142 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_pair.h" 3
8873 template<class _T1, class _T2>
8874 inline pair<_T1, _T2>
8875 make_pair(_T1 __x, _T2 __y)
8876 { return pair<_T1, _T2>(__x, __y); }
8879 # 72 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_algobase.h" 2 3
8880 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/cpp_type_traits.h" 1 3
8881 # 41 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/cpp_type_traits.h" 3
8883 # 42 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/cpp_type_traits.h" 3
8884 # 74 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/cpp_type_traits.h" 3
8885 namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) {
8887 template<typename _Iterator, typename _Container>
8888 class __normal_iterator;
8892 namespace std __attribute__ ((__visibility__ ("default"))) {
8899 typedef char __two[2];
8901 template<typename _Tp>
8902 __one __test_type(int _Tp::*);
8903 template<typename _Tp>
8904 __two& __test_type(...);
8908 struct __true_type { };
8909 struct __false_type { };
8913 { typedef __false_type __type; };
8916 struct __truth_type<true>
8917 { typedef __true_type __type; };
8921 template<class _Sp, class _Tp>
8924 enum { __value = bool(_Sp::__value) || bool(_Tp::__value) };
8925 typedef typename __truth_type<__value>::__type __type;
8929 template<typename, typename>
8932 enum { __value = 0 };
8933 typedef __false_type __type;
8936 template<typename _Tp>
8937 struct __are_same<_Tp, _Tp>
8939 enum { __value = 1 };
8940 typedef __true_type __type;
8944 template<typename _Tp>
8947 enum { __value = 0 };
8948 typedef __false_type __type;
8952 struct __is_void<void>
8954 enum { __value = 1 };
8955 typedef __true_type __type;
8961 template<typename _Tp>
8964 enum { __value = 0 };
8965 typedef __false_type __type;
8972 struct __is_integer<bool>
8974 enum { __value = 1 };
8975 typedef __true_type __type;
8979 struct __is_integer<char>
8981 enum { __value = 1 };
8982 typedef __true_type __type;
8986 struct __is_integer<signed char>
8988 enum { __value = 1 };
8989 typedef __true_type __type;
8993 struct __is_integer<unsigned char>
8995 enum { __value = 1 };
8996 typedef __true_type __type;
9001 struct __is_integer<wchar_t>
9003 enum { __value = 1 };
9004 typedef __true_type __type;
9009 struct __is_integer<short>
9011 enum { __value = 1 };
9012 typedef __true_type __type;
9016 struct __is_integer<unsigned short>
9018 enum { __value = 1 };
9019 typedef __true_type __type;
9023 struct __is_integer<int>
9025 enum { __value = 1 };
9026 typedef __true_type __type;
9030 struct __is_integer<unsigned int>
9032 enum { __value = 1 };
9033 typedef __true_type __type;
9037 struct __is_integer<long>
9039 enum { __value = 1 };
9040 typedef __true_type __type;
9044 struct __is_integer<unsigned long>
9046 enum { __value = 1 };
9047 typedef __true_type __type;
9051 struct __is_integer<long long>
9053 enum { __value = 1 };
9054 typedef __true_type __type;
9058 struct __is_integer<unsigned long long>
9060 enum { __value = 1 };
9061 typedef __true_type __type;
9067 template<typename _Tp>
9068 struct __is_floating
9070 enum { __value = 0 };
9071 typedef __false_type __type;
9076 struct __is_floating<float>
9078 enum { __value = 1 };
9079 typedef __true_type __type;
9083 struct __is_floating<double>
9085 enum { __value = 1 };
9086 typedef __true_type __type;
9090 struct __is_floating<long double>
9092 enum { __value = 1 };
9093 typedef __true_type __type;
9099 template<typename _Tp>
9102 enum { __value = 0 };
9103 typedef __false_type __type;
9106 template<typename _Tp>
9107 struct __is_pointer<_Tp*>
9109 enum { __value = 1 };
9110 typedef __true_type __type;
9116 template<typename _Tp>
9117 struct __is_normal_iterator
9119 enum { __value = 0 };
9120 typedef __false_type __type;
9123 template<typename _Iterator, typename _Container>
9124 struct __is_normal_iterator< __gnu_cxx::__normal_iterator<_Iterator,
9127 enum { __value = 1 };
9128 typedef __true_type __type;
9134 template<typename _Tp>
9135 struct __is_arithmetic
9136 : public __traitor<__is_integer<_Tp>, __is_floating<_Tp> >
9142 template<typename _Tp>
9143 struct __is_fundamental
9144 : public __traitor<__is_void<_Tp>, __is_arithmetic<_Tp> >
9150 template<typename _Tp>
9152 : public __traitor<__is_arithmetic<_Tp>, __is_pointer<_Tp> >
9156 template<typename _Tp>
9161 __value = (sizeof(__detail::__test_type<_Tp>(0))
9162 != sizeof(__detail::__one))
9169 template<typename _Tp>
9175 template<typename _Up>
9182 __value = sizeof(__first<_Tp>) == sizeof(__second<_Tp>)
9189 template<typename _Tp>
9192 enum { __value = 0 };
9193 typedef __false_type __type;
9197 struct __is_char<char>
9199 enum { __value = 1 };
9200 typedef __true_type __type;
9205 struct __is_char<wchar_t>
9207 enum { __value = 1 };
9208 typedef __true_type __type;
9213 # 73 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_algobase.h" 2 3
9214 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/ext/type_traits.h" 1 3
9215 # 38 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/ext/type_traits.h" 3
9217 # 39 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/ext/type_traits.h" 3
9220 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/utility" 1 3
9221 # 63 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/utility" 3
9223 # 64 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/utility" 3
9226 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_relops.h" 1 3
9227 # 74 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_relops.h" 3
9228 namespace std __attribute__ ((__visibility__ ("default"))) {
9232 # 90 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_relops.h" 3
9233 template <class _Tp>
9235 operator!=(const _Tp& __x, const _Tp& __y)
9236 { return !(__x == __y); }
9237 # 103 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_relops.h" 3
9238 template <class _Tp>
9240 operator>(const _Tp& __x, const _Tp& __y)
9241 { return __y < __x; }
9242 # 116 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_relops.h" 3
9243 template <class _Tp>
9245 operator<=(const _Tp& __x, const _Tp& __y)
9246 { return !(__y < __x); }
9247 # 129 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_relops.h" 3
9248 template <class _Tp>
9250 operator>=(const _Tp& __x, const _Tp& __y)
9251 { return !(__x < __y); }
9256 # 67 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/utility" 2 3
9257 # 42 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/ext/type_traits.h" 2 3
9260 namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) {
9263 template<bool, typename>
9267 template<typename _Tp>
9268 struct __enable_if<true, _Tp>
9269 { typedef _Tp __type; };
9273 template<bool _Cond, typename _Iftrue, typename _Iffalse>
9274 struct __conditional_type
9275 { typedef _Iftrue __type; };
9277 template<typename _Iftrue, typename _Iffalse>
9278 struct __conditional_type<false, _Iftrue, _Iffalse>
9279 { typedef _Iffalse __type; };
9283 template<typename _Tp>
9284 struct __add_unsigned
9287 typedef __enable_if<std::__is_integer<_Tp>::__value, _Tp> __if_type;
9290 typedef typename __if_type::__type __type;
9294 struct __add_unsigned<char>
9295 { typedef unsigned char __type; };
9298 struct __add_unsigned<signed char>
9299 { typedef unsigned char __type; };
9302 struct __add_unsigned<short>
9303 { typedef unsigned short __type; };
9306 struct __add_unsigned<int>
9307 { typedef unsigned int __type; };
9310 struct __add_unsigned<long>
9311 { typedef unsigned long __type; };
9314 struct __add_unsigned<long long>
9315 { typedef unsigned long long __type; };
9319 struct __add_unsigned<bool>;
9322 struct __add_unsigned<wchar_t>;
9326 template<typename _Tp>
9327 struct __remove_unsigned
9330 typedef __enable_if<std::__is_integer<_Tp>::__value, _Tp> __if_type;
9333 typedef typename __if_type::__type __type;
9337 struct __remove_unsigned<char>
9338 { typedef signed char __type; };
9341 struct __remove_unsigned<unsigned char>
9342 { typedef signed char __type; };
9345 struct __remove_unsigned<unsigned short>
9346 { typedef short __type; };
9349 struct __remove_unsigned<unsigned int>
9350 { typedef int __type; };
9353 struct __remove_unsigned<unsigned long>
9354 { typedef long __type; };
9357 struct __remove_unsigned<unsigned long long>
9358 { typedef long long __type; };
9362 struct __remove_unsigned<bool>;
9365 struct __remove_unsigned<wchar_t>;
9368 # 74 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_algobase.h" 2 3
9369 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_iterator_base_types.h" 1 3
9370 # 67 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_iterator_base_types.h" 3
9372 # 68 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_iterator_base_types.h" 3
9374 namespace std __attribute__ ((__visibility__ ("default"))) {
9375 # 80 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_iterator_base_types.h" 3
9376 struct input_iterator_tag {};
9378 struct output_iterator_tag {};
9380 struct forward_iterator_tag : public input_iterator_tag {};
9383 struct bidirectional_iterator_tag : public forward_iterator_tag {};
9386 struct random_access_iterator_tag : public bidirectional_iterator_tag {};
9387 # 104 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_iterator_base_types.h" 3
9388 template<typename _Category, typename _Tp, typename _Distance = ptrdiff_t,
9389 typename _Pointer = _Tp*, typename _Reference = _Tp&>
9393 typedef _Category iterator_category;
9395 typedef _Tp value_type;
9397 typedef _Distance difference_type;
9399 typedef _Pointer pointer;
9401 typedef _Reference reference;
9410 template<typename _Iterator>
9411 struct iterator_traits
9413 typedef typename _Iterator::iterator_category iterator_category;
9414 typedef typename _Iterator::value_type value_type;
9415 typedef typename _Iterator::difference_type difference_type;
9416 typedef typename _Iterator::pointer pointer;
9417 typedef typename _Iterator::reference reference;
9420 template<typename _Tp>
9421 struct iterator_traits<_Tp*>
9423 typedef random_access_iterator_tag iterator_category;
9424 typedef _Tp value_type;
9425 typedef ptrdiff_t difference_type;
9426 typedef _Tp* pointer;
9427 typedef _Tp& reference;
9430 template<typename _Tp>
9431 struct iterator_traits<const _Tp*>
9433 typedef random_access_iterator_tag iterator_category;
9434 typedef _Tp value_type;
9435 typedef ptrdiff_t difference_type;
9436 typedef const _Tp* pointer;
9437 typedef const _Tp& reference;
9446 template<typename _Iter>
9447 inline typename iterator_traits<_Iter>::iterator_category
9448 __iterator_category(const _Iter&)
9449 { return typename iterator_traits<_Iter>::iterator_category(); }
9452 # 75 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_algobase.h" 2 3
9453 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_iterator_base_funcs.h" 1 3
9454 # 68 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_iterator_base_funcs.h" 3
9456 # 69 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_iterator_base_funcs.h" 3
9457 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/concept_check.h" 1 3
9458 # 38 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/concept_check.h" 3
9460 # 39 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/concept_check.h" 3
9461 # 70 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_iterator_base_funcs.h" 2 3
9463 namespace std __attribute__ ((__visibility__ ("default"))) {
9465 template<typename _InputIterator>
9466 inline typename iterator_traits<_InputIterator>::difference_type
9467 __distance(_InputIterator __first, _InputIterator __last,
9473 typename iterator_traits<_InputIterator>::difference_type __n = 0;
9474 while (__first != __last)
9482 template<typename _RandomAccessIterator>
9483 inline typename iterator_traits<_RandomAccessIterator>::difference_type
9484 __distance(_RandomAccessIterator __first, _RandomAccessIterator __last,
9485 random_access_iterator_tag)
9490 return __last - __first;
9492 # 113 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_iterator_base_funcs.h" 3
9493 template<typename _InputIterator>
9494 inline typename iterator_traits<_InputIterator>::difference_type
9495 distance(_InputIterator __first, _InputIterator __last)
9498 return std::__distance(__first, __last,
9499 std::__iterator_category(__first));
9502 template<typename _InputIterator, typename _Distance>
9504 __advance(_InputIterator& __i, _Distance __n, input_iterator_tag)
9512 template<typename _BidirectionalIterator, typename _Distance>
9514 __advance(_BidirectionalIterator& __i, _Distance __n,
9515 bidirectional_iterator_tag)
9528 template<typename _RandomAccessIterator, typename _Distance>
9530 __advance(_RandomAccessIterator& __i, _Distance __n,
9531 random_access_iterator_tag)
9538 # 171 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_iterator_base_funcs.h" 3
9539 template<typename _InputIterator, typename _Distance>
9541 advance(_InputIterator& __i, _Distance __n)
9544 typename iterator_traits<_InputIterator>::difference_type __d = __n;
9545 std::__advance(__i, __d, std::__iterator_category(__i));
9549 # 76 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_algobase.h" 2 3
9550 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_iterator.h" 1 3
9551 # 72 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_iterator.h" 3
9552 namespace std __attribute__ ((__visibility__ ("default"))) {
9553 # 93 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_iterator.h" 3
9554 template<typename _Iterator>
9555 class reverse_iterator
9556 : public iterator<typename iterator_traits<_Iterator>::iterator_category,
9557 typename iterator_traits<_Iterator>::value_type,
9558 typename iterator_traits<_Iterator>::difference_type,
9559 typename iterator_traits<_Iterator>::pointer,
9560 typename iterator_traits<_Iterator>::reference>
9566 typedef _Iterator iterator_type;
9567 typedef typename iterator_traits<_Iterator>::difference_type
9569 typedef typename iterator_traits<_Iterator>::reference reference;
9570 typedef typename iterator_traits<_Iterator>::pointer pointer;
9579 reverse_iterator() : current() { }
9585 reverse_iterator(iterator_type __x) : current(__x) { }
9590 reverse_iterator(const reverse_iterator& __x)
9591 : current(__x.current) { }
9597 template<typename _Iter>
9598 reverse_iterator(const reverse_iterator<_Iter>& __x)
9599 : current(__x.base()) { }
9616 _Iterator __tmp = current;
9627 { return &(operator*()); }
9649 reverse_iterator __tmp = *this;
9674 reverse_iterator __tmp = *this;
9685 operator+(difference_type __n) const
9686 { return reverse_iterator(current - __n); }
9694 operator+=(difference_type __n)
9706 operator-(difference_type __n) const
9707 { return reverse_iterator(current + __n); }
9715 operator-=(difference_type __n)
9727 operator[](difference_type __n) const
9728 { return *(*this + __n); }
9730 # 280 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_iterator.h" 3
9731 template<typename _Iterator>
9733 operator==(const reverse_iterator<_Iterator>& __x,
9734 const reverse_iterator<_Iterator>& __y)
9735 { return __x.base() == __y.base(); }
9737 template<typename _Iterator>
9739 operator<(const reverse_iterator<_Iterator>& __x,
9740 const reverse_iterator<_Iterator>& __y)
9741 { return __y.base() < __x.base(); }
9743 template<typename _Iterator>
9745 operator!=(const reverse_iterator<_Iterator>& __x,
9746 const reverse_iterator<_Iterator>& __y)
9747 { return !(__x == __y); }
9749 template<typename _Iterator>
9751 operator>(const reverse_iterator<_Iterator>& __x,
9752 const reverse_iterator<_Iterator>& __y)
9753 { return __y < __x; }
9755 template<typename _Iterator>
9757 operator<=(const reverse_iterator<_Iterator>& __x,
9758 const reverse_iterator<_Iterator>& __y)
9759 { return !(__y < __x); }
9761 template<typename _Iterator>
9763 operator>=(const reverse_iterator<_Iterator>& __x,
9764 const reverse_iterator<_Iterator>& __y)
9765 { return !(__x < __y); }
9767 template<typename _Iterator>
9768 inline typename reverse_iterator<_Iterator>::difference_type
9769 operator-(const reverse_iterator<_Iterator>& __x,
9770 const reverse_iterator<_Iterator>& __y)
9771 { return __y.base() - __x.base(); }
9773 template<typename _Iterator>
9774 inline reverse_iterator<_Iterator>
9775 operator+(typename reverse_iterator<_Iterator>::difference_type __n,
9776 const reverse_iterator<_Iterator>& __x)
9777 { return reverse_iterator<_Iterator>(__x.base() - __n); }
9781 template<typename _IteratorL, typename _IteratorR>
9783 operator==(const reverse_iterator<_IteratorL>& __x,
9784 const reverse_iterator<_IteratorR>& __y)
9785 { return __x.base() == __y.base(); }
9787 template<typename _IteratorL, typename _IteratorR>
9789 operator<(const reverse_iterator<_IteratorL>& __x,
9790 const reverse_iterator<_IteratorR>& __y)
9791 { return __y.base() < __x.base(); }
9793 template<typename _IteratorL, typename _IteratorR>
9795 operator!=(const reverse_iterator<_IteratorL>& __x,
9796 const reverse_iterator<_IteratorR>& __y)
9797 { return !(__x == __y); }
9799 template<typename _IteratorL, typename _IteratorR>
9801 operator>(const reverse_iterator<_IteratorL>& __x,
9802 const reverse_iterator<_IteratorR>& __y)
9803 { return __y < __x; }
9805 template<typename _IteratorL, typename _IteratorR>
9807 operator<=(const reverse_iterator<_IteratorL>& __x,
9808 const reverse_iterator<_IteratorR>& __y)
9809 { return !(__y < __x); }
9811 template<typename _IteratorL, typename _IteratorR>
9813 operator>=(const reverse_iterator<_IteratorL>& __x,
9814 const reverse_iterator<_IteratorR>& __y)
9815 { return !(__x < __y); }
9817 template<typename _IteratorL, typename _IteratorR>
9818 inline typename reverse_iterator<_IteratorL>::difference_type
9819 operator-(const reverse_iterator<_IteratorL>& __x,
9820 const reverse_iterator<_IteratorR>& __y)
9821 { return __y.base() - __x.base(); }
9822 # 384 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_iterator.h" 3
9823 template<typename _Container>
9824 class back_insert_iterator
9825 : public iterator<output_iterator_tag, void, void, void, void>
9828 _Container* container;
9832 typedef _Container container_type;
9836 back_insert_iterator(_Container& __x) : container(&__x) { }
9837 # 410 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_iterator.h" 3
9838 back_insert_iterator&
9839 operator=(typename _Container::const_reference __value)
9841 container->push_back(__value);
9846 back_insert_iterator&
9851 back_insert_iterator&
9856 back_insert_iterator
9860 # 444 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_iterator.h" 3
9861 template<typename _Container>
9862 inline back_insert_iterator<_Container>
9863 back_inserter(_Container& __x)
9864 { return back_insert_iterator<_Container>(__x); }
9865 # 459 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_iterator.h" 3
9866 template<typename _Container>
9867 class front_insert_iterator
9868 : public iterator<output_iterator_tag, void, void, void, void>
9871 _Container* container;
9875 typedef _Container container_type;
9878 explicit front_insert_iterator(_Container& __x) : container(&__x) { }
9879 # 484 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_iterator.h" 3
9880 front_insert_iterator&
9881 operator=(typename _Container::const_reference __value)
9883 container->push_front(__value);
9888 front_insert_iterator&
9893 front_insert_iterator&
9898 front_insert_iterator
9902 # 518 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_iterator.h" 3
9903 template<typename _Container>
9904 inline front_insert_iterator<_Container>
9905 front_inserter(_Container& __x)
9906 { return front_insert_iterator<_Container>(__x); }
9907 # 537 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_iterator.h" 3
9908 template<typename _Container>
9909 class insert_iterator
9910 : public iterator<output_iterator_tag, void, void, void, void>
9913 _Container* container;
9914 typename _Container::iterator iter;
9918 typedef _Container container_type;
9924 insert_iterator(_Container& __x, typename _Container::iterator __i)
9925 : container(&__x), iter(__i) {}
9926 # 579 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_iterator.h" 3
9928 operator=(const typename _Container::const_reference __value)
9930 iter = container->insert(iter, __value);
9950 # 614 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_iterator.h" 3
9951 template<typename _Container, typename _Iterator>
9952 inline insert_iterator<_Container>
9953 inserter(_Container& __x, _Iterator __i)
9955 return insert_iterator<_Container>(__x,
9956 typename _Container::iterator(__i));
9961 namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) {
9962 # 633 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_iterator.h" 3
9963 using std::iterator_traits;
9964 using std::iterator;
9965 template<typename _Iterator, typename _Container>
9966 class __normal_iterator
9969 _Iterator _M_current;
9972 typedef typename iterator_traits<_Iterator>::iterator_category
9974 typedef typename iterator_traits<_Iterator>::value_type value_type;
9975 typedef typename iterator_traits<_Iterator>::difference_type
9977 typedef typename iterator_traits<_Iterator>::reference reference;
9978 typedef typename iterator_traits<_Iterator>::pointer pointer;
9980 __normal_iterator() : _M_current(_Iterator()) { }
9983 __normal_iterator(const _Iterator& __i) : _M_current(__i) { }
9986 template<typename _Iter>
9987 __normal_iterator(const __normal_iterator<_Iter,
9988 typename __enable_if<
9989 (std::__are_same<_Iter, typename _Container::pointer>::__value),
9990 _Container>::__type>& __i)
9991 : _M_current(__i.base()) { }
9996 { return *_M_current; }
10000 { return _M_current; }
10011 { return __normal_iterator(_M_current++); }
10023 { return __normal_iterator(_M_current--); }
10027 operator[](const difference_type& __n) const
10028 { return _M_current[__n]; }
10031 operator+=(const difference_type& __n)
10032 { _M_current += __n; return *this; }
10035 operator+(const difference_type& __n) const
10036 { return __normal_iterator(_M_current + __n); }
10039 operator-=(const difference_type& __n)
10040 { _M_current -= __n; return *this; }
10043 operator-(const difference_type& __n) const
10044 { return __normal_iterator(_M_current - __n); }
10048 { return _M_current; }
10050 # 730 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_iterator.h" 3
10051 template<typename _IteratorL, typename _IteratorR, typename _Container>
10053 operator==(const __normal_iterator<_IteratorL, _Container>& __lhs,
10054 const __normal_iterator<_IteratorR, _Container>& __rhs)
10055 { return __lhs.base() == __rhs.base(); }
10057 template<typename _Iterator, typename _Container>
10059 operator==(const __normal_iterator<_Iterator, _Container>& __lhs,
10060 const __normal_iterator<_Iterator, _Container>& __rhs)
10061 { return __lhs.base() == __rhs.base(); }
10063 template<typename _IteratorL, typename _IteratorR, typename _Container>
10065 operator!=(const __normal_iterator<_IteratorL, _Container>& __lhs,
10066 const __normal_iterator<_IteratorR, _Container>& __rhs)
10067 { return __lhs.base() != __rhs.base(); }
10069 template<typename _Iterator, typename _Container>
10071 operator!=(const __normal_iterator<_Iterator, _Container>& __lhs,
10072 const __normal_iterator<_Iterator, _Container>& __rhs)
10073 { return __lhs.base() != __rhs.base(); }
10076 template<typename _IteratorL, typename _IteratorR, typename _Container>
10078 operator<(const __normal_iterator<_IteratorL, _Container>& __lhs,
10079 const __normal_iterator<_IteratorR, _Container>& __rhs)
10080 { return __lhs.base() < __rhs.base(); }
10082 template<typename _Iterator, typename _Container>
10084 operator<(const __normal_iterator<_Iterator, _Container>& __lhs,
10085 const __normal_iterator<_Iterator, _Container>& __rhs)
10086 { return __lhs.base() < __rhs.base(); }
10088 template<typename _IteratorL, typename _IteratorR, typename _Container>
10090 operator>(const __normal_iterator<_IteratorL, _Container>& __lhs,
10091 const __normal_iterator<_IteratorR, _Container>& __rhs)
10092 { return __lhs.base() > __rhs.base(); }
10094 template<typename _Iterator, typename _Container>
10096 operator>(const __normal_iterator<_Iterator, _Container>& __lhs,
10097 const __normal_iterator<_Iterator, _Container>& __rhs)
10098 { return __lhs.base() > __rhs.base(); }
10100 template<typename _IteratorL, typename _IteratorR, typename _Container>
10102 operator<=(const __normal_iterator<_IteratorL, _Container>& __lhs,
10103 const __normal_iterator<_IteratorR, _Container>& __rhs)
10104 { return __lhs.base() <= __rhs.base(); }
10106 template<typename _Iterator, typename _Container>
10108 operator<=(const __normal_iterator<_Iterator, _Container>& __lhs,
10109 const __normal_iterator<_Iterator, _Container>& __rhs)
10110 { return __lhs.base() <= __rhs.base(); }
10112 template<typename _IteratorL, typename _IteratorR, typename _Container>
10114 operator>=(const __normal_iterator<_IteratorL, _Container>& __lhs,
10115 const __normal_iterator<_IteratorR, _Container>& __rhs)
10116 { return __lhs.base() >= __rhs.base(); }
10118 template<typename _Iterator, typename _Container>
10120 operator>=(const __normal_iterator<_Iterator, _Container>& __lhs,
10121 const __normal_iterator<_Iterator, _Container>& __rhs)
10122 { return __lhs.base() >= __rhs.base(); }
10128 template<typename _IteratorL, typename _IteratorR, typename _Container>
10129 inline typename __normal_iterator<_IteratorL, _Container>::difference_type
10130 operator-(const __normal_iterator<_IteratorL, _Container>& __lhs,
10131 const __normal_iterator<_IteratorR, _Container>& __rhs)
10132 { return __lhs.base() - __rhs.base(); }
10134 template<typename _Iterator, typename _Container>
10135 inline typename __normal_iterator<_Iterator, _Container>::difference_type
10136 operator-(const __normal_iterator<_Iterator, _Container>& __lhs,
10137 const __normal_iterator<_Iterator, _Container>& __rhs)
10138 { return __lhs.base() - __rhs.base(); }
10140 template<typename _Iterator, typename _Container>
10141 inline __normal_iterator<_Iterator, _Container>
10142 operator+(typename __normal_iterator<_Iterator, _Container>::difference_type
10143 __n, const __normal_iterator<_Iterator, _Container>& __i)
10144 { return __normal_iterator<_Iterator, _Container>(__i.base() + __n); }
10147 # 77 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_algobase.h" 2 3
10149 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/debug/debug.h" 1 3
10150 # 47 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/debug/debug.h" 3
10153 namespace __debug { }
10156 namespace __gnu_cxx
10158 namespace __debug { };
10161 namespace __gnu_debug
10163 using namespace std::__debug;
10164 using namespace __gnu_cxx::__debug;
10166 # 79 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_algobase.h" 2 3
10168 namespace std __attribute__ ((__visibility__ ("default"))) {
10169 # 91 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_algobase.h" 3
10170 template<typename _Tp>
10172 swap(_Tp& __a, _Tp& __b)
10185 template<bool _BoolType>
10188 template<typename _ForwardIterator1, typename _ForwardIterator2>
10190 iter_swap(_ForwardIterator1 __a, _ForwardIterator2 __b)
10192 typedef typename iterator_traits<_ForwardIterator1>::value_type
10194 _ValueType1 __tmp = *__a;
10201 struct __iter_swap<true>
10203 template<typename _ForwardIterator1, typename _ForwardIterator2>
10205 iter_swap(_ForwardIterator1 __a, _ForwardIterator2 __b)
10210 # 141 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_algobase.h" 3
10211 template<typename _ForwardIterator1, typename _ForwardIterator2>
10213 iter_swap(_ForwardIterator1 __a, _ForwardIterator2 __b)
10215 typedef typename iterator_traits<_ForwardIterator1>::value_type
10217 typedef typename iterator_traits<_ForwardIterator2>::value_type
10230 typedef typename iterator_traits<_ForwardIterator1>::reference
10232 typedef typename iterator_traits<_ForwardIterator2>::reference
10234 std::__iter_swap<__are_same<_ValueType1, _ValueType2>::__value &&
10235 __are_same<_ValueType1 &, _ReferenceType1>::__value &&
10236 __are_same<_ValueType2 &, _ReferenceType2>::__value>::
10237 iter_swap(__a, __b);
10239 # 180 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_algobase.h" 3
10240 template<typename _Tp>
10242 min(const _Tp& __a, const _Tp& __b)
10251 # 202 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_algobase.h" 3
10252 template<typename _Tp>
10254 max(const _Tp& __a, const _Tp& __b)
10263 # 224 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_algobase.h" 3
10264 template<typename _Tp, typename _Compare>
10266 min(const _Tp& __a, const _Tp& __b, _Compare __comp)
10269 if (__comp(__b, __a))
10273 # 244 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_algobase.h" 3
10274 template<typename _Tp, typename _Compare>
10276 max(const _Tp& __a, const _Tp& __b, _Compare __comp)
10279 if (__comp(__a, __b))
10290 template<bool, typename>
10293 template<typename _II, typename _OI>
10295 copy(_II __first, _II __last, _OI __result)
10297 for (; __first != __last; ++__result, ++__first)
10298 *__result = *__first;
10303 template<bool _BoolType>
10304 struct __copy<_BoolType, random_access_iterator_tag>
10306 template<typename _II, typename _OI>
10308 copy(_II __first, _II __last, _OI __result)
10310 typedef typename iterator_traits<_II>::difference_type _Distance;
10311 for(_Distance __n = __last - __first; __n > 0; --__n)
10313 *__result = *__first;
10322 struct __copy<true, random_access_iterator_tag>
10324 template<typename _Tp>
10326 copy(const _Tp* __first, const _Tp* __last, _Tp* __result)
10328 std::memmove(__result, __first, sizeof(_Tp) * (__last - __first));
10329 return __result + (__last - __first);
10333 template<typename _II, typename _OI>
10335 __copy_aux(_II __first, _II __last, _OI __result)
10337 typedef typename iterator_traits<_II>::value_type _ValueTypeI;
10338 typedef typename iterator_traits<_OI>::value_type _ValueTypeO;
10339 typedef typename iterator_traits<_II>::iterator_category _Category;
10340 const bool __simple = (__is_scalar<_ValueTypeI>::__value
10341 && __is_pointer<_II>::__value
10342 && __is_pointer<_OI>::__value
10343 && __are_same<_ValueTypeI, _ValueTypeO>::__value);
10345 return std::__copy<__simple, _Category>::copy(__first, __last, __result);
10349 template<typename _CharT>
10350 typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value,
10351 ostreambuf_iterator<_CharT> >::__type
10352 __copy_aux(_CharT*, _CharT*, ostreambuf_iterator<_CharT>);
10354 template<typename _CharT>
10355 typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value,
10356 ostreambuf_iterator<_CharT> >::__type
10357 __copy_aux(const _CharT*, const _CharT*, ostreambuf_iterator<_CharT>);
10359 template<typename _CharT>
10360 typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, _CharT*>::__type
10361 __copy_aux(istreambuf_iterator<_CharT>, istreambuf_iterator<_CharT>,
10364 template<bool, bool>
10365 struct __copy_normal
10367 template<typename _II, typename _OI>
10369 __copy_n(_II __first, _II __last, _OI __result)
10370 { return std::__copy_aux(__first, __last, __result); }
10374 struct __copy_normal<true, false>
10376 template<typename _II, typename _OI>
10378 __copy_n(_II __first, _II __last, _OI __result)
10379 { return std::__copy_aux(__first.base(), __last.base(), __result); }
10383 struct __copy_normal<false, true>
10385 template<typename _II, typename _OI>
10387 __copy_n(_II __first, _II __last, _OI __result)
10388 { return _OI(std::__copy_aux(__first, __last, __result.base())); }
10392 struct __copy_normal<true, true>
10394 template<typename _II, typename _OI>
10396 __copy_n(_II __first, _II __last, _OI __result)
10397 { return _OI(std::__copy_aux(__first.base(), __last.base(),
10398 __result.base())); }
10400 # 387 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_algobase.h" 3
10401 template<typename _InputIterator, typename _OutputIterator>
10402 inline _OutputIterator
10403 copy(_InputIterator __first, _InputIterator __last,
10404 _OutputIterator __result)
10412 const bool __in = __is_normal_iterator<_InputIterator>::__value;
10413 const bool __out = __is_normal_iterator<_OutputIterator>::__value;
10414 return std::__copy_normal<__in, __out>::__copy_n(__first, __last,
10419 template<typename _CharT>
10420 typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value,
10421 ostreambuf_iterator<_CharT> >::__type
10422 copy(istreambuf_iterator<_CharT>, istreambuf_iterator<_CharT>,
10423 ostreambuf_iterator<_CharT>);
10425 template<bool, typename>
10426 struct __copy_backward
10428 template<typename _BI1, typename _BI2>
10430 __copy_b(_BI1 __first, _BI1 __last, _BI2 __result)
10432 while (__first != __last)
10433 *--__result = *--__last;
10438 template<bool _BoolType>
10439 struct __copy_backward<_BoolType, random_access_iterator_tag>
10441 template<typename _BI1, typename _BI2>
10443 __copy_b(_BI1 __first, _BI1 __last, _BI2 __result)
10445 typename iterator_traits<_BI1>::difference_type __n;
10446 for (__n = __last - __first; __n > 0; --__n)
10447 *--__result = *--__last;
10453 struct __copy_backward<true, random_access_iterator_tag>
10455 template<typename _Tp>
10457 __copy_b(const _Tp* __first, const _Tp* __last, _Tp* __result)
10459 const ptrdiff_t _Num = __last - __first;
10460 std::memmove(__result - _Num, __first, sizeof(_Tp) * _Num);
10461 return __result - _Num;
10465 template<typename _BI1, typename _BI2>
10467 __copy_backward_aux(_BI1 __first, _BI1 __last, _BI2 __result)
10469 typedef typename iterator_traits<_BI1>::value_type _ValueType1;
10470 typedef typename iterator_traits<_BI2>::value_type _ValueType2;
10471 typedef typename iterator_traits<_BI1>::iterator_category _Category;
10472 const bool __simple = (__is_scalar<_ValueType1>::__value
10473 && __is_pointer<_BI1>::__value
10474 && __is_pointer<_BI2>::__value
10475 && __are_same<_ValueType1, _ValueType2>::__value);
10477 return std::__copy_backward<__simple, _Category>::__copy_b(__first,
10482 template<bool, bool>
10483 struct __copy_backward_normal
10485 template<typename _BI1, typename _BI2>
10487 __copy_b_n(_BI1 __first, _BI1 __last, _BI2 __result)
10488 { return std::__copy_backward_aux(__first, __last, __result); }
10492 struct __copy_backward_normal<true, false>
10494 template<typename _BI1, typename _BI2>
10496 __copy_b_n(_BI1 __first, _BI1 __last, _BI2 __result)
10497 { return std::__copy_backward_aux(__first.base(), __last.base(),
10502 struct __copy_backward_normal<false, true>
10504 template<typename _BI1, typename _BI2>
10506 __copy_b_n(_BI1 __first, _BI1 __last, _BI2 __result)
10507 { return _BI2(std::__copy_backward_aux(__first, __last,
10508 __result.base())); }
10512 struct __copy_backward_normal<true, true>
10514 template<typename _BI1, typename _BI2>
10516 __copy_b_n(_BI1 __first, _BI1 __last, _BI2 __result)
10517 { return _BI2(std::__copy_backward_aux(__first.base(), __last.base(),
10518 __result.base())); }
10520 # 524 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_algobase.h" 3
10521 template <typename _BI1, typename _BI2>
10523 copy_backward(_BI1 __first, _BI1 __last, _BI2 __result)
10533 const bool __bi1 = __is_normal_iterator<_BI1>::__value;
10534 const bool __bi2 = __is_normal_iterator<_BI2>::__value;
10535 return std::__copy_backward_normal<__bi1, __bi2>::__copy_b_n(__first,
10543 template<typename _ForwardIterator, typename _Tp>
10545 fill(_ForwardIterator __first, _ForwardIterator __last,
10546 const _Tp& __value)
10548 for (; __first != __last; ++__first)
10549 *__first = __value;
10554 struct __fill<true>
10556 template<typename _ForwardIterator, typename _Tp>
10558 fill(_ForwardIterator __first, _ForwardIterator __last,
10559 const _Tp& __value)
10561 const _Tp __tmp = __value;
10562 for (; __first != __last; ++__first)
10566 # 581 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_algobase.h" 3
10567 template<typename _ForwardIterator, typename _Tp>
10569 fill(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __value)
10576 const bool __scalar = __is_scalar<_Tp>::__value;
10577 std::__fill<__scalar>::fill(__first, __last, __value);
10582 fill(unsigned char* __first, unsigned char* __last, const unsigned char& __c)
10585 const unsigned char __tmp = __c;
10586 std::memset(__first, __tmp, __last - __first);
10590 fill(signed char* __first, signed char* __last, const signed char& __c)
10593 const signed char __tmp = __c;
10594 std::memset(__first, static_cast<unsigned char>(__tmp), __last - __first);
10598 fill(char* __first, char* __last, const char& __c)
10601 const char __tmp = __c;
10602 std::memset(__first, static_cast<unsigned char>(__tmp), __last - __first);
10608 template<typename _OutputIterator, typename _Size, typename _Tp>
10609 static _OutputIterator
10610 fill_n(_OutputIterator __first, _Size __n, const _Tp& __value)
10612 for (; __n > 0; --__n, ++__first)
10613 *__first = __value;
10619 struct __fill_n<true>
10621 template<typename _OutputIterator, typename _Size, typename _Tp>
10622 static _OutputIterator
10623 fill_n(_OutputIterator __first, _Size __n, const _Tp& __value)
10625 const _Tp __tmp = __value;
10626 for (; __n > 0; --__n, ++__first)
10631 # 657 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_algobase.h" 3
10632 template<typename _OutputIterator, typename _Size, typename _Tp>
10634 fill_n(_OutputIterator __first, _Size __n, const _Tp& __value)
10639 const bool __scalar = __is_scalar<_Tp>::__value;
10640 return std::__fill_n<__scalar>::fill_n(__first, __n, __value);
10643 template<typename _Size>
10644 inline unsigned char*
10645 fill_n(unsigned char* __first, _Size __n, const unsigned char& __c)
10647 std::fill(__first, __first + __n, __c);
10648 return __first + __n;
10651 template<typename _Size>
10652 inline signed char*
10653 fill_n(signed char* __first, _Size __n, const signed char& __c)
10655 std::fill(__first, __first + __n, __c);
10656 return __first + __n;
10659 template<typename _Size>
10661 fill_n(char* __first, _Size __n, const char& __c)
10663 std::fill(__first, __first + __n, __c);
10664 return __first + __n;
10666 # 704 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_algobase.h" 3
10667 template<typename _InputIterator1, typename _InputIterator2>
10668 pair<_InputIterator1, _InputIterator2>
10669 mismatch(_InputIterator1 __first1, _InputIterator1 __last1,
10670 _InputIterator2 __first2)
10680 while (__first1 != __last1 && *__first1 == *__first2)
10685 return pair<_InputIterator1, _InputIterator2>(__first1, __first2);
10687 # 739 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_algobase.h" 3
10688 template<typename _InputIterator1, typename _InputIterator2,
10689 typename _BinaryPredicate>
10690 pair<_InputIterator1, _InputIterator2>
10691 mismatch(_InputIterator1 __first1, _InputIterator1 __last1,
10692 _InputIterator2 __first2, _BinaryPredicate __binary_pred)
10699 while (__first1 != __last1 && __binary_pred(*__first1, *__first2))
10704 return pair<_InputIterator1, _InputIterator2>(__first1, __first2);
10706 # 769 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_algobase.h" 3
10707 template<typename _InputIterator1, typename _InputIterator2>
10709 equal(_InputIterator1 __first1, _InputIterator1 __last1,
10710 _InputIterator2 __first2)
10720 for (; __first1 != __last1; ++__first1, ++__first2)
10721 if (!(*__first1 == *__first2))
10725 # 801 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_algobase.h" 3
10726 template<typename _InputIterator1, typename _InputIterator2,
10727 typename _BinaryPredicate>
10729 equal(_InputIterator1 __first1, _InputIterator1 __last1,
10730 _InputIterator2 __first2,
10731 _BinaryPredicate __binary_pred)
10738 for (; __first1 != __last1; ++__first1, ++__first2)
10739 if (!__binary_pred(*__first1, *__first2))
10743 # 833 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_algobase.h" 3
10744 template<typename _InputIterator1, typename _InputIterator2>
10746 lexicographical_compare(_InputIterator1 __first1, _InputIterator1 __last1,
10747 _InputIterator2 __first2, _InputIterator2 __last2)
10761 for (; __first1 != __last1 && __first2 != __last2;
10762 ++__first1, ++__first2)
10764 if (*__first1 < *__first2)
10766 if (*__first2 < *__first1)
10769 return __first1 == __last1 && __first2 != __last2;
10771 # 873 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_algobase.h" 3
10772 template<typename _InputIterator1, typename _InputIterator2,
10775 lexicographical_compare(_InputIterator1 __first1, _InputIterator1 __last1,
10776 _InputIterator2 __first2, _InputIterator2 __last2,
10785 for (; __first1 != __last1 && __first2 != __last2;
10786 ++__first1, ++__first2)
10788 if (__comp(*__first1, *__first2))
10790 if (__comp(*__first2, *__first1))
10793 return __first1 == __last1 && __first2 != __last2;
10797 lexicographical_compare(const unsigned char* __first1,
10798 const unsigned char* __last1,
10799 const unsigned char* __first2,
10800 const unsigned char* __last2)
10805 const size_t __len1 = __last1 - __first1;
10806 const size_t __len2 = __last2 - __first2;
10807 const int __result = std::memcmp(__first1, __first2,
10808 std::min(__len1, __len2));
10809 return __result != 0 ? __result < 0 : __len1 < __len2;
10813 lexicographical_compare(const char* __first1, const char* __last1,
10814 const char* __first2, const char* __last2)
10820 return std::lexicographical_compare((const signed char*) __first1,
10821 (const signed char*) __last1,
10822 (const signed char*) __first2,
10823 (const signed char*) __last2);
10833 # 47 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/char_traits.h" 2 3
10836 namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) {
10837 # 61 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/char_traits.h" 3
10838 template <class _CharT>
10841 typedef unsigned long int_type;
10842 typedef std::streampos pos_type;
10843 typedef std::streamoff off_type;
10844 typedef std::mbstate_t state_type;
10846 # 86 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/char_traits.h" 3
10847 template<typename _CharT>
10850 typedef _CharT char_type;
10851 typedef typename _Char_types<_CharT>::int_type int_type;
10852 typedef typename _Char_types<_CharT>::pos_type pos_type;
10853 typedef typename _Char_types<_CharT>::off_type off_type;
10854 typedef typename _Char_types<_CharT>::state_type state_type;
10857 assign(char_type& __c1, const char_type& __c2)
10861 eq(const char_type& __c1, const char_type& __c2)
10862 { return __c1 == __c2; }
10865 lt(const char_type& __c1, const char_type& __c2)
10866 { return __c1 < __c2; }
10869 compare(const char_type* __s1, const char_type* __s2, std::size_t __n);
10872 length(const char_type* __s);
10874 static const char_type*
10875 find(const char_type* __s, std::size_t __n, const char_type& __a);
10878 move(char_type* __s1, const char_type* __s2, std::size_t __n);
10881 copy(char_type* __s1, const char_type* __s2, std::size_t __n);
10884 assign(char_type* __s, std::size_t __n, char_type __a);
10887 to_char_type(const int_type& __c)
10888 { return static_cast<char_type>(__c); }
10891 to_int_type(const char_type& __c)
10892 { return static_cast<int_type>(__c); }
10895 eq_int_type(const int_type& __c1, const int_type& __c2)
10896 { return __c1 == __c2; }
10900 { return static_cast<int_type>((-1)); }
10903 not_eof(const int_type& __c)
10904 { return !eq_int_type(__c, eof()) ? __c : to_int_type(char_type()); }
10907 template<typename _CharT>
10909 char_traits<_CharT>::
10910 compare(const char_type* __s1, const char_type* __s2, std::size_t __n)
10912 for (std::size_t __i = 0; __i < __n; ++__i)
10913 if (lt(__s1[__i], __s2[__i]))
10915 else if (lt(__s2[__i], __s1[__i]))
10920 template<typename _CharT>
10922 char_traits<_CharT>::
10923 length(const char_type* __p)
10925 std::size_t __i = 0;
10926 while (!eq(__p[__i], char_type()))
10931 template<typename _CharT>
10932 const typename char_traits<_CharT>::char_type*
10933 char_traits<_CharT>::
10934 find(const char_type* __s, std::size_t __n, const char_type& __a)
10936 for (std::size_t __i = 0; __i < __n; ++__i)
10937 if (eq(__s[__i], __a))
10942 template<typename _CharT>
10943 typename char_traits<_CharT>::char_type*
10944 char_traits<_CharT>::
10945 move(char_type* __s1, const char_type* __s2, std::size_t __n)
10947 return static_cast<_CharT*>(std::memmove(__s1, __s2,
10948 __n * sizeof(char_type)));
10951 template<typename _CharT>
10952 typename char_traits<_CharT>::char_type*
10953 char_traits<_CharT>::
10954 copy(char_type* __s1, const char_type* __s2, std::size_t __n)
10956 std::copy(__s2, __s2 + __n, __s1);
10960 template<typename _CharT>
10961 typename char_traits<_CharT>::char_type*
10962 char_traits<_CharT>::
10963 assign(char_type* __s, std::size_t __n, char_type __a)
10965 std::fill_n(__s, __n, __a);
10971 namespace std __attribute__ ((__visibility__ ("default"))) {
10972 # 225 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/char_traits.h" 3
10973 template<class _CharT>
10974 struct char_traits : public __gnu_cxx::char_traits<_CharT>
10980 struct char_traits<char>
10982 typedef char char_type;
10983 typedef int int_type;
10984 typedef streampos pos_type;
10985 typedef streamoff off_type;
10986 typedef mbstate_t state_type;
10989 assign(char_type& __c1, const char_type& __c2)
10993 eq(const char_type& __c1, const char_type& __c2)
10994 { return __c1 == __c2; }
10997 lt(const char_type& __c1, const char_type& __c2)
10998 { return __c1 < __c2; }
11001 compare(const char_type* __s1, const char_type* __s2, size_t __n)
11002 { return memcmp(__s1, __s2, __n); }
11005 length(const char_type* __s)
11006 { return strlen(__s); }
11008 static const char_type*
11009 find(const char_type* __s, size_t __n, const char_type& __a)
11010 { return static_cast<const char_type*>(memchr(__s, __a, __n)); }
11013 move(char_type* __s1, const char_type* __s2, size_t __n)
11014 { return static_cast<char_type*>(memmove(__s1, __s2, __n)); }
11017 copy(char_type* __s1, const char_type* __s2, size_t __n)
11018 { return static_cast<char_type*>(memcpy(__s1, __s2, __n)); }
11021 assign(char_type* __s, size_t __n, char_type __a)
11022 { return static_cast<char_type*>(memset(__s, __a, __n)); }
11025 to_char_type(const int_type& __c)
11026 { return static_cast<char_type>(__c); }
11031 to_int_type(const char_type& __c)
11032 { return static_cast<int_type>(static_cast<unsigned char>(__c)); }
11035 eq_int_type(const int_type& __c1, const int_type& __c2)
11036 { return __c1 == __c2; }
11039 eof() { return static_cast<int_type>((-1)); }
11042 not_eof(const int_type& __c)
11043 { return (__c == eof()) ? 0 : __c; }
11050 struct char_traits<wchar_t>
11052 typedef wchar_t char_type;
11053 typedef wint_t int_type;
11054 typedef streamoff off_type;
11055 typedef wstreampos pos_type;
11056 typedef mbstate_t state_type;
11059 assign(char_type& __c1, const char_type& __c2)
11063 eq(const char_type& __c1, const char_type& __c2)
11064 { return __c1 == __c2; }
11067 lt(const char_type& __c1, const char_type& __c2)
11068 { return __c1 < __c2; }
11071 compare(const char_type* __s1, const char_type* __s2, size_t __n)
11072 { return wmemcmp(__s1, __s2, __n); }
11075 length(const char_type* __s)
11076 { return wcslen(__s); }
11078 static const char_type*
11079 find(const char_type* __s, size_t __n, const char_type& __a)
11080 { return wmemchr(__s, __a, __n); }
11083 move(char_type* __s1, const char_type* __s2, size_t __n)
11084 { return wmemmove(__s1, __s2, __n); }
11087 copy(char_type* __s1, const char_type* __s2, size_t __n)
11088 { return wmemcpy(__s1, __s2, __n); }
11091 assign(char_type* __s, size_t __n, char_type __a)
11092 { return wmemset(__s, __a, __n); }
11095 to_char_type(const int_type& __c) { return char_type(__c); }
11098 to_int_type(const char_type& __c) { return int_type(__c); }
11101 eq_int_type(const int_type& __c1, const int_type& __c2)
11102 { return __c1 == __c2; }
11105 eof() { return static_cast<int_type>((0xffffffffu)); }
11108 not_eof(const int_type& __c)
11109 { return eq_int_type(__c, eof()) ? 0 : __c; }
11114 # 48 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/string" 2 3
11115 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/memory" 1 3
11116 # 51 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/memory" 3
11118 # 52 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/memory" 3
11121 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/allocator.h" 1 3
11122 # 53 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/allocator.h" 3
11123 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/x86_64-pc-linux-gnu/bits/c++allocator.h" 1 3
11124 # 39 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/x86_64-pc-linux-gnu/bits/c++allocator.h" 3
11125 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/ext/new_allocator.h" 1 3
11126 # 37 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/ext/new_allocator.h" 3
11127 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/new" 1 3
11128 # 47 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/new" 3
11129 #pragma GCC visibility push(default)
11140 class bad_alloc : public exception
11143 bad_alloc() throw() { }
11147 virtual ~bad_alloc() throw();
11150 virtual const char* what() const throw();
11153 struct nothrow_t { };
11155 extern const nothrow_t nothrow;
11159 typedef void (*new_handler)();
11163 new_handler set_new_handler(new_handler) throw();
11165 # 95 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/new" 3
11166 void* operator new(std::size_t) throw (std::bad_alloc);
11167 void* operator new[](std::size_t) throw (std::bad_alloc);
11168 void operator delete(void*) throw();
11169 void operator delete[](void*) throw();
11170 void* operator new(std::size_t, const std::nothrow_t&) throw();
11171 void* operator new[](std::size_t, const std::nothrow_t&) throw();
11172 void operator delete(void*, const std::nothrow_t&) throw();
11173 void operator delete[](void*, const std::nothrow_t&) throw();
11176 inline void* operator new(std::size_t, void* __p) throw() { return __p; }
11177 inline void* operator new[](std::size_t, void* __p) throw() { return __p; }
11180 inline void operator delete (void*, void*) throw() { }
11181 inline void operator delete[](void*, void*) throw() { }
11185 #pragma GCC visibility pop
11186 # 38 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/ext/new_allocator.h" 2 3
11189 namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) {
11192 using std::ptrdiff_t;
11193 # 52 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/ext/new_allocator.h" 3
11194 template<typename _Tp>
11195 class new_allocator
11198 typedef size_t size_type;
11199 typedef ptrdiff_t difference_type;
11200 typedef _Tp* pointer;
11201 typedef const _Tp* const_pointer;
11202 typedef _Tp& reference;
11203 typedef const _Tp& const_reference;
11204 typedef _Tp value_type;
11206 template<typename _Tp1>
11208 { typedef new_allocator<_Tp1> other; };
11210 new_allocator() throw() { }
11212 new_allocator(const new_allocator&) throw() { }
11214 template<typename _Tp1>
11215 new_allocator(const new_allocator<_Tp1>&) throw() { }
11217 ~new_allocator() throw() { }
11220 address(reference __x) const { return &__x; }
11223 address(const_reference __x) const { return &__x; }
11228 allocate(size_type __n, const void* = 0)
11230 if (__builtin_expect(__n > this->max_size(), false))
11231 std::__throw_bad_alloc();
11233 return static_cast<_Tp*>(::operator new(__n * sizeof(_Tp)));
11238 deallocate(pointer __p, size_type)
11239 { ::operator delete(__p); }
11242 max_size() const throw()
11243 { return size_t(-1) / sizeof(_Tp); }
11248 construct(pointer __p, const _Tp& __val)
11249 { ::new(__p) _Tp(__val); }
11252 destroy(pointer __p) { __p->~_Tp(); }
11255 template<typename _Tp>
11257 operator==(const new_allocator<_Tp>&, const new_allocator<_Tp>&)
11260 template<typename _Tp>
11262 operator!=(const new_allocator<_Tp>&, const new_allocator<_Tp>&)
11266 # 40 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/x86_64-pc-linux-gnu/bits/c++allocator.h" 2 3
11267 # 54 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/allocator.h" 2 3
11271 namespace std __attribute__ ((__visibility__ ("default"))) {
11273 template<typename _Tp>
11278 class allocator<void>
11281 typedef size_t size_type;
11282 typedef ptrdiff_t difference_type;
11283 typedef void* pointer;
11284 typedef const void* const_pointer;
11285 typedef void value_type;
11287 template<typename _Tp1>
11289 { typedef allocator<_Tp1> other; };
11298 template<typename _Tp>
11299 class allocator: public __gnu_cxx::new_allocator<_Tp>
11302 typedef size_t size_type;
11303 typedef ptrdiff_t difference_type;
11304 typedef _Tp* pointer;
11305 typedef const _Tp* const_pointer;
11306 typedef _Tp& reference;
11307 typedef const _Tp& const_reference;
11308 typedef _Tp value_type;
11310 template<typename _Tp1>
11312 { typedef allocator<_Tp1> other; };
11314 allocator() throw() { }
11316 allocator(const allocator& __a) throw()
11317 : __gnu_cxx::new_allocator<_Tp>(__a) { }
11319 template<typename _Tp1>
11320 allocator(const allocator<_Tp1>&) throw() { }
11322 ~allocator() throw() { }
11327 template<typename _T1, typename _T2>
11329 operator==(const allocator<_T1>&, const allocator<_T2>&)
11332 template<typename _T1, typename _T2>
11334 operator!=(const allocator<_T1>&, const allocator<_T2>&)
11341 extern template class allocator<char>;
11342 extern template class allocator<wchar_t>;
11349 template<typename _Alloc, bool = std::__is_empty<_Alloc>::__value>
11350 struct __alloc_swap
11351 { static void _S_do_it(_Alloc&, _Alloc&) { } };
11353 template<typename _Alloc>
11354 struct __alloc_swap<_Alloc, false>
11357 _S_do_it(_Alloc& __one, _Alloc& __two)
11360 if (__one != __two)
11361 swap(__one, __two);
11366 # 55 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/memory" 2 3
11367 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_construct.h" 1 3
11368 # 67 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_construct.h" 3
11369 namespace std __attribute__ ((__visibility__ ("default"))) {
11377 template<typename _T1, typename _T2>
11379 _Construct(_T1* __p, const _T2& __value)
11383 ::new(static_cast<void*>(__p)) _T1(__value);
11392 template<typename _T1>
11394 _Construct(_T1* __p)
11398 ::new(static_cast<void*>(__p)) _T1();
11406 template<typename _Tp>
11408 _Destroy(_Tp* __pointer)
11409 { __pointer->~_Tp(); }
11410 # 116 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_construct.h" 3
11411 template<typename _ForwardIterator>
11413 __destroy_aux(_ForwardIterator __first, _ForwardIterator __last,
11416 for (; __first != __last; ++__first)
11417 std::_Destroy(&*__first);
11419 # 134 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_construct.h" 3
11420 template<typename _ForwardIterator>
11422 __destroy_aux(_ForwardIterator, _ForwardIterator, __true_type)
11424 # 146 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_construct.h" 3
11425 template<typename _ForwardIterator>
11427 _Destroy(_ForwardIterator __first, _ForwardIterator __last)
11429 typedef typename iterator_traits<_ForwardIterator>::value_type
11431 typedef typename std::__is_scalar<_Value_type>::__type
11432 _Has_trivial_destructor;
11434 std::__destroy_aux(__first, __last, _Has_trivial_destructor());
11436 # 166 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_construct.h" 3
11437 template <typename _Tp> class allocator;
11439 template<typename _ForwardIterator, typename _Allocator>
11441 _Destroy(_ForwardIterator __first, _ForwardIterator __last,
11442 _Allocator __alloc)
11444 for (; __first != __last; ++__first)
11445 __alloc.destroy(&*__first);
11448 template<typename _ForwardIterator, typename _Tp>
11450 _Destroy(_ForwardIterator __first, _ForwardIterator __last,
11453 _Destroy(__first, __last);
11457 # 56 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/memory" 2 3
11459 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_uninitialized.h" 1 3
11460 # 67 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_uninitialized.h" 3
11461 namespace std __attribute__ ((__visibility__ ("default"))) {
11464 template<typename _InputIterator, typename _ForwardIterator>
11465 inline _ForwardIterator
11466 __uninitialized_copy_aux(_InputIterator __first, _InputIterator __last,
11467 _ForwardIterator __result,
11469 { return std::copy(__first, __last, __result); }
11471 template<typename _InputIterator, typename _ForwardIterator>
11472 inline _ForwardIterator
11473 __uninitialized_copy_aux(_InputIterator __first, _InputIterator __last,
11474 _ForwardIterator __result,
11477 _ForwardIterator __cur = __result;
11480 for (; __first != __last; ++__first, ++__cur)
11481 std::_Construct(&*__cur, *__first);
11486 std::_Destroy(__result, __cur);
11490 # 106 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_uninitialized.h" 3
11491 template<typename _InputIterator, typename _ForwardIterator>
11492 inline _ForwardIterator
11493 uninitialized_copy(_InputIterator __first, _InputIterator __last,
11494 _ForwardIterator __result)
11496 typedef typename iterator_traits<_ForwardIterator>::value_type _ValueType;
11497 typedef typename std::__is_scalar<_ValueType>::__type _Is_POD;
11498 return std::__uninitialized_copy_aux(__first, __last, __result,
11503 uninitialized_copy(const char* __first, const char* __last, char* __result)
11505 std::memmove(__result, __first, __last - __first);
11506 return __result + (__last - __first);
11510 uninitialized_copy(const wchar_t* __first, const wchar_t* __last,
11513 std::memmove(__result, __first, sizeof(wchar_t) * (__last - __first));
11514 return __result + (__last - __first);
11519 template<typename _ForwardIterator, typename _Tp>
11521 __uninitialized_fill_aux(_ForwardIterator __first,
11522 _ForwardIterator __last,
11523 const _Tp& __x, __true_type)
11524 { std::fill(__first, __last, __x); }
11526 template<typename _ForwardIterator, typename _Tp>
11528 __uninitialized_fill_aux(_ForwardIterator __first, _ForwardIterator __last,
11529 const _Tp& __x, __false_type)
11531 _ForwardIterator __cur = __first;
11534 for (; __cur != __last; ++__cur)
11535 std::_Construct(&*__cur, __x);
11539 std::_Destroy(__first, __cur);
11543 # 168 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_uninitialized.h" 3
11544 template<typename _ForwardIterator, typename _Tp>
11546 uninitialized_fill(_ForwardIterator __first, _ForwardIterator __last,
11549 typedef typename iterator_traits<_ForwardIterator>::value_type _ValueType;
11550 typedef typename std::__is_scalar<_ValueType>::__type _Is_POD;
11551 std::__uninitialized_fill_aux(__first, __last, __x, _Is_POD());
11556 template<typename _ForwardIterator, typename _Size, typename _Tp>
11558 __uninitialized_fill_n_aux(_ForwardIterator __first, _Size __n,
11559 const _Tp& __x, __true_type)
11560 { std::fill_n(__first, __n, __x); }
11562 template<typename _ForwardIterator, typename _Size, typename _Tp>
11564 __uninitialized_fill_n_aux(_ForwardIterator __first, _Size __n,
11565 const _Tp& __x, __false_type)
11567 _ForwardIterator __cur = __first;
11570 for (; __n > 0; --__n, ++__cur)
11571 std::_Construct(&*__cur, __x);
11575 std::_Destroy(__first, __cur);
11579 # 213 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_uninitialized.h" 3
11580 template<typename _ForwardIterator, typename _Size, typename _Tp>
11582 uninitialized_fill_n(_ForwardIterator __first, _Size __n, const _Tp& __x)
11584 typedef typename iterator_traits<_ForwardIterator>::value_type _ValueType;
11585 typedef typename std::__is_scalar<_ValueType>::__type _Is_POD;
11586 std::__uninitialized_fill_n_aux(__first, __n, __x, _Is_POD());
11595 template<typename _InputIterator, typename _ForwardIterator,
11596 typename _Allocator>
11598 __uninitialized_copy_a(_InputIterator __first, _InputIterator __last,
11599 _ForwardIterator __result,
11600 _Allocator __alloc)
11602 _ForwardIterator __cur = __result;
11605 for (; __first != __last; ++__first, ++__cur)
11606 __alloc.construct(&*__cur, *__first);
11611 std::_Destroy(__result, __cur, __alloc);
11616 template<typename _InputIterator, typename _ForwardIterator, typename _Tp>
11617 inline _ForwardIterator
11618 __uninitialized_copy_a(_InputIterator __first, _InputIterator __last,
11619 _ForwardIterator __result,
11621 { return std::uninitialized_copy(__first, __last, __result); }
11623 template<typename _ForwardIterator, typename _Tp, typename _Allocator>
11625 __uninitialized_fill_a(_ForwardIterator __first, _ForwardIterator __last,
11626 const _Tp& __x, _Allocator __alloc)
11628 _ForwardIterator __cur = __first;
11631 for (; __cur != __last; ++__cur)
11632 __alloc.construct(&*__cur, __x);
11636 std::_Destroy(__first, __cur, __alloc);
11641 template<typename _ForwardIterator, typename _Tp, typename _Tp2>
11643 __uninitialized_fill_a(_ForwardIterator __first, _ForwardIterator __last,
11644 const _Tp& __x, allocator<_Tp2>)
11645 { std::uninitialized_fill(__first, __last, __x); }
11647 template<typename _ForwardIterator, typename _Size, typename _Tp,
11648 typename _Allocator>
11650 __uninitialized_fill_n_a(_ForwardIterator __first, _Size __n,
11652 _Allocator __alloc)
11654 _ForwardIterator __cur = __first;
11657 for (; __n > 0; --__n, ++__cur)
11658 __alloc.construct(&*__cur, __x);
11662 std::_Destroy(__first, __cur, __alloc);
11667 template<typename _ForwardIterator, typename _Size, typename _Tp,
11670 __uninitialized_fill_n_a(_ForwardIterator __first, _Size __n,
11673 { std::uninitialized_fill_n(__first, __n, __x); }
11674 # 318 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_uninitialized.h" 3
11675 template<typename _InputIterator1, typename _InputIterator2,
11676 typename _ForwardIterator, typename _Allocator>
11677 inline _ForwardIterator
11678 __uninitialized_copy_copy(_InputIterator1 __first1,
11679 _InputIterator1 __last1,
11680 _InputIterator2 __first2,
11681 _InputIterator2 __last2,
11682 _ForwardIterator __result,
11683 _Allocator __alloc)
11685 _ForwardIterator __mid = std::__uninitialized_copy_a(__first1, __last1,
11690 return std::__uninitialized_copy_a(__first2, __last2, __mid, __alloc);
11694 std::_Destroy(__result, __mid, __alloc);
11702 template<typename _ForwardIterator, typename _Tp, typename _InputIterator,
11703 typename _Allocator>
11704 inline _ForwardIterator
11705 __uninitialized_fill_copy(_ForwardIterator __result, _ForwardIterator __mid,
11706 const _Tp& __x, _InputIterator __first,
11707 _InputIterator __last,
11708 _Allocator __alloc)
11710 std::__uninitialized_fill_a(__result, __mid, __x, __alloc);
11713 return std::__uninitialized_copy_a(__first, __last, __mid, __alloc);
11717 std::_Destroy(__result, __mid, __alloc);
11725 template<typename _InputIterator, typename _ForwardIterator, typename _Tp,
11726 typename _Allocator>
11728 __uninitialized_copy_fill(_InputIterator __first1, _InputIterator __last1,
11729 _ForwardIterator __first2,
11730 _ForwardIterator __last2, const _Tp& __x,
11731 _Allocator __alloc)
11733 _ForwardIterator __mid2 = std::__uninitialized_copy_a(__first1, __last1,
11738 std::__uninitialized_fill_a(__mid2, __last2, __x, __alloc);
11742 std::_Destroy(__first2, __mid2, __alloc);
11748 # 58 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/memory" 2 3
11749 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_raw_storage_iter.h" 1 3
11750 # 64 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_raw_storage_iter.h" 3
11751 namespace std __attribute__ ((__visibility__ ("default"))) {
11757 template <class _ForwardIterator, class _Tp>
11758 class raw_storage_iterator
11759 : public iterator<output_iterator_tag, void, void, void, void>
11762 _ForwardIterator _M_iter;
11766 raw_storage_iterator(_ForwardIterator __x)
11769 raw_storage_iterator&
11770 operator*() { return *this; }
11772 raw_storage_iterator&
11773 operator=(const _Tp& __element)
11775 std::_Construct(&*_M_iter, __element);
11779 raw_storage_iterator<_ForwardIterator, _Tp>&
11786 raw_storage_iterator<_ForwardIterator, _Tp>
11789 raw_storage_iterator<_ForwardIterator, _Tp> __tmp = *this;
11796 # 59 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/memory" 2 3
11798 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/limits" 1 3
11799 # 46 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/limits" 3
11801 # 47 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/limits" 3
11802 # 150 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/limits" 3
11803 namespace std __attribute__ ((__visibility__ ("default"))) {
11810 enum float_round_style
11812 round_indeterminate = -1,
11813 round_toward_zero = 0,
11814 round_to_nearest = 1,
11815 round_toward_infinity = 2,
11816 round_toward_neg_infinity = 3
11825 enum float_denorm_style
11828 denorm_indeterminate = -1,
11834 # 192 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/limits" 3
11835 struct __numeric_limits_base
11839 static const bool is_specialized = false;
11844 static const int digits = 0;
11846 static const int digits10 = 0;
11848 static const bool is_signed = false;
11854 static const bool is_integer = false;
11859 static const bool is_exact = false;
11862 static const int radix = 0;
11866 static const int min_exponent = 0;
11869 static const int min_exponent10 = 0;
11873 static const int max_exponent = 0;
11876 static const int max_exponent10 = 0;
11879 static const bool has_infinity = false;
11882 static const bool has_quiet_NaN = false;
11885 static const bool has_signaling_NaN = false;
11887 static const float_denorm_style has_denorm = denorm_absent;
11890 static const bool has_denorm_loss = false;
11894 static const bool is_iec559 = false;
11898 static const bool is_bounded = false;
11903 static const bool is_modulo = false;
11906 static const bool traps = false;
11908 static const bool tinyness_before = false;
11912 static const float_round_style round_style = round_toward_zero;
11914 # 285 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/limits" 3
11915 template<typename _Tp>
11916 struct numeric_limits : public __numeric_limits_base
11920 static _Tp min() throw() { return static_cast<_Tp>(0); }
11922 static _Tp max() throw() { return static_cast<_Tp>(0); }
11925 static _Tp epsilon() throw() { return static_cast<_Tp>(0); }
11927 static _Tp round_error() throw() { return static_cast<_Tp>(0); }
11929 static _Tp infinity() throw() { return static_cast<_Tp>(0); }
11931 static _Tp quiet_NaN() throw() { return static_cast<_Tp>(0); }
11934 static _Tp signaling_NaN() throw() { return static_cast<_Tp>(0); }
11938 static _Tp denorm_min() throw() { return static_cast<_Tp>(0); }
11946 struct numeric_limits<bool>
11948 static const bool is_specialized = true;
11950 static bool min() throw()
11952 static bool max() throw()
11955 static const int digits = 1;
11956 static const int digits10 = 0;
11957 static const bool is_signed = false;
11958 static const bool is_integer = true;
11959 static const bool is_exact = true;
11960 static const int radix = 2;
11961 static bool epsilon() throw()
11963 static bool round_error() throw()
11966 static const int min_exponent = 0;
11967 static const int min_exponent10 = 0;
11968 static const int max_exponent = 0;
11969 static const int max_exponent10 = 0;
11971 static const bool has_infinity = false;
11972 static const bool has_quiet_NaN = false;
11973 static const bool has_signaling_NaN = false;
11974 static const float_denorm_style has_denorm = denorm_absent;
11975 static const bool has_denorm_loss = false;
11977 static bool infinity() throw()
11979 static bool quiet_NaN() throw()
11981 static bool signaling_NaN() throw()
11983 static bool denorm_min() throw()
11986 static const bool is_iec559 = false;
11987 static const bool is_bounded = true;
11988 static const bool is_modulo = false;
11993 static const bool traps = true;
11994 static const bool tinyness_before = false;
11995 static const float_round_style round_style = round_toward_zero;
12000 struct numeric_limits<char>
12002 static const bool is_specialized = true;
12004 static char min() throw()
12005 { return (((char)(-1) < 0) ? (char)1 << (sizeof(char) * 8 - ((char)(-1) < 0)) : (char)0); }
12006 static char max() throw()
12007 { return (((char)(-1) < 0) ? ((char)1 << (sizeof(char) * 8 - ((char)(-1) < 0))) - 1 : ~(char)0); }
12009 static const int digits = (sizeof(char) * 8 - ((char)(-1) < 0));
12010 static const int digits10 = ((sizeof(char) * 8 - ((char)(-1) < 0)) * 643 / 2136);
12011 static const bool is_signed = ((char)(-1) < 0);
12012 static const bool is_integer = true;
12013 static const bool is_exact = true;
12014 static const int radix = 2;
12015 static char epsilon() throw()
12017 static char round_error() throw()
12020 static const int min_exponent = 0;
12021 static const int min_exponent10 = 0;
12022 static const int max_exponent = 0;
12023 static const int max_exponent10 = 0;
12025 static const bool has_infinity = false;
12026 static const bool has_quiet_NaN = false;
12027 static const bool has_signaling_NaN = false;
12028 static const float_denorm_style has_denorm = denorm_absent;
12029 static const bool has_denorm_loss = false;
12031 static char infinity() throw()
12033 static char quiet_NaN() throw()
12035 static char signaling_NaN() throw()
12037 static char denorm_min() throw()
12038 { return static_cast<char>(0); }
12040 static const bool is_iec559 = false;
12041 static const bool is_bounded = true;
12042 static const bool is_modulo = true;
12044 static const bool traps = true;
12045 static const bool tinyness_before = false;
12046 static const float_round_style round_style = round_toward_zero;
12051 struct numeric_limits<signed char>
12053 static const bool is_specialized = true;
12055 static signed char min() throw()
12056 { return -127 - 1; }
12057 static signed char max() throw()
12060 static const int digits = (sizeof(signed char) * 8 - ((signed char)(-1) < 0));
12061 static const int digits10 = ((sizeof(signed char) * 8 - ((signed char)(-1) < 0)) * 643 / 2136);
12062 static const bool is_signed = true;
12063 static const bool is_integer = true;
12064 static const bool is_exact = true;
12065 static const int radix = 2;
12066 static signed char epsilon() throw()
12068 static signed char round_error() throw()
12071 static const int min_exponent = 0;
12072 static const int min_exponent10 = 0;
12073 static const int max_exponent = 0;
12074 static const int max_exponent10 = 0;
12076 static const bool has_infinity = false;
12077 static const bool has_quiet_NaN = false;
12078 static const bool has_signaling_NaN = false;
12079 static const float_denorm_style has_denorm = denorm_absent;
12080 static const bool has_denorm_loss = false;
12082 static signed char infinity() throw()
12083 { return static_cast<signed char>(0); }
12084 static signed char quiet_NaN() throw()
12085 { return static_cast<signed char>(0); }
12086 static signed char signaling_NaN() throw()
12087 { return static_cast<signed char>(0); }
12088 static signed char denorm_min() throw()
12089 { return static_cast<signed char>(0); }
12091 static const bool is_iec559 = false;
12092 static const bool is_bounded = true;
12093 static const bool is_modulo = true;
12095 static const bool traps = true;
12096 static const bool tinyness_before = false;
12097 static const float_round_style round_style = round_toward_zero;
12102 struct numeric_limits<unsigned char>
12104 static const bool is_specialized = true;
12106 static unsigned char min() throw()
12108 static unsigned char max() throw()
12109 { return 127 * 2U + 1; }
12111 static const int digits = (sizeof(unsigned char) * 8 - ((unsigned char)(-1) < 0));
12112 static const int digits10 = ((sizeof(unsigned char) * 8 - ((unsigned char)(-1) < 0)) * 643 / 2136);
12113 static const bool is_signed = false;
12114 static const bool is_integer = true;
12115 static const bool is_exact = true;
12116 static const int radix = 2;
12117 static unsigned char epsilon() throw()
12119 static unsigned char round_error() throw()
12122 static const int min_exponent = 0;
12123 static const int min_exponent10 = 0;
12124 static const int max_exponent = 0;
12125 static const int max_exponent10 = 0;
12127 static const bool has_infinity = false;
12128 static const bool has_quiet_NaN = false;
12129 static const bool has_signaling_NaN = false;
12130 static const float_denorm_style has_denorm = denorm_absent;
12131 static const bool has_denorm_loss = false;
12133 static unsigned char infinity() throw()
12134 { return static_cast<unsigned char>(0); }
12135 static unsigned char quiet_NaN() throw()
12136 { return static_cast<unsigned char>(0); }
12137 static unsigned char signaling_NaN() throw()
12138 { return static_cast<unsigned char>(0); }
12139 static unsigned char denorm_min() throw()
12140 { return static_cast<unsigned char>(0); }
12142 static const bool is_iec559 = false;
12143 static const bool is_bounded = true;
12144 static const bool is_modulo = true;
12146 static const bool traps = true;
12147 static const bool tinyness_before = false;
12148 static const float_round_style round_style = round_toward_zero;
12153 struct numeric_limits<wchar_t>
12155 static const bool is_specialized = true;
12157 static wchar_t min() throw()
12158 { return (((wchar_t)(-1) < 0) ? (wchar_t)1 << (sizeof(wchar_t) * 8 - ((wchar_t)(-1) < 0)) : (wchar_t)0); }
12159 static wchar_t max() throw()
12160 { return (((wchar_t)(-1) < 0) ? ((wchar_t)1 << (sizeof(wchar_t) * 8 - ((wchar_t)(-1) < 0))) - 1 : ~(wchar_t)0); }
12162 static const int digits = (sizeof(wchar_t) * 8 - ((wchar_t)(-1) < 0));
12163 static const int digits10 = ((sizeof(wchar_t) * 8 - ((wchar_t)(-1) < 0)) * 643 / 2136);
12164 static const bool is_signed = ((wchar_t)(-1) < 0);
12165 static const bool is_integer = true;
12166 static const bool is_exact = true;
12167 static const int radix = 2;
12168 static wchar_t epsilon() throw()
12170 static wchar_t round_error() throw()
12173 static const int min_exponent = 0;
12174 static const int min_exponent10 = 0;
12175 static const int max_exponent = 0;
12176 static const int max_exponent10 = 0;
12178 static const bool has_infinity = false;
12179 static const bool has_quiet_NaN = false;
12180 static const bool has_signaling_NaN = false;
12181 static const float_denorm_style has_denorm = denorm_absent;
12182 static const bool has_denorm_loss = false;
12184 static wchar_t infinity() throw()
12185 { return wchar_t(); }
12186 static wchar_t quiet_NaN() throw()
12187 { return wchar_t(); }
12188 static wchar_t signaling_NaN() throw()
12189 { return wchar_t(); }
12190 static wchar_t denorm_min() throw()
12191 { return wchar_t(); }
12193 static const bool is_iec559 = false;
12194 static const bool is_bounded = true;
12195 static const bool is_modulo = true;
12197 static const bool traps = true;
12198 static const bool tinyness_before = false;
12199 static const float_round_style round_style = round_toward_zero;
12204 struct numeric_limits<short>
12206 static const bool is_specialized = true;
12208 static short min() throw()
12209 { return -32767 - 1; }
12210 static short max() throw()
12213 static const int digits = (sizeof(short) * 8 - ((short)(-1) < 0));
12214 static const int digits10 = ((sizeof(short) * 8 - ((short)(-1) < 0)) * 643 / 2136);
12215 static const bool is_signed = true;
12216 static const bool is_integer = true;
12217 static const bool is_exact = true;
12218 static const int radix = 2;
12219 static short epsilon() throw()
12221 static short round_error() throw()
12224 static const int min_exponent = 0;
12225 static const int min_exponent10 = 0;
12226 static const int max_exponent = 0;
12227 static const int max_exponent10 = 0;
12229 static const bool has_infinity = false;
12230 static const bool has_quiet_NaN = false;
12231 static const bool has_signaling_NaN = false;
12232 static const float_denorm_style has_denorm = denorm_absent;
12233 static const bool has_denorm_loss = false;
12235 static short infinity() throw()
12236 { return short(); }
12237 static short quiet_NaN() throw()
12238 { return short(); }
12239 static short signaling_NaN() throw()
12240 { return short(); }
12241 static short denorm_min() throw()
12242 { return short(); }
12244 static const bool is_iec559 = false;
12245 static const bool is_bounded = true;
12246 static const bool is_modulo = true;
12248 static const bool traps = true;
12249 static const bool tinyness_before = false;
12250 static const float_round_style round_style = round_toward_zero;
12255 struct numeric_limits<unsigned short>
12257 static const bool is_specialized = true;
12259 static unsigned short min() throw()
12261 static unsigned short max() throw()
12262 { return 32767 * 2U + 1; }
12264 static const int digits = (sizeof(unsigned short) * 8 - ((unsigned short)(-1) < 0));
12265 static const int digits10 = ((sizeof(unsigned short) * 8 - ((unsigned short)(-1) < 0)) * 643 / 2136);
12266 static const bool is_signed = false;
12267 static const bool is_integer = true;
12268 static const bool is_exact = true;
12269 static const int radix = 2;
12270 static unsigned short epsilon() throw()
12272 static unsigned short round_error() throw()
12275 static const int min_exponent = 0;
12276 static const int min_exponent10 = 0;
12277 static const int max_exponent = 0;
12278 static const int max_exponent10 = 0;
12280 static const bool has_infinity = false;
12281 static const bool has_quiet_NaN = false;
12282 static const bool has_signaling_NaN = false;
12283 static const float_denorm_style has_denorm = denorm_absent;
12284 static const bool has_denorm_loss = false;
12286 static unsigned short infinity() throw()
12287 { return static_cast<unsigned short>(0); }
12288 static unsigned short quiet_NaN() throw()
12289 { return static_cast<unsigned short>(0); }
12290 static unsigned short signaling_NaN() throw()
12291 { return static_cast<unsigned short>(0); }
12292 static unsigned short denorm_min() throw()
12293 { return static_cast<unsigned short>(0); }
12295 static const bool is_iec559 = false;
12296 static const bool is_bounded = true;
12297 static const bool is_modulo = true;
12299 static const bool traps = true;
12300 static const bool tinyness_before = false;
12301 static const float_round_style round_style = round_toward_zero;
12306 struct numeric_limits<int>
12308 static const bool is_specialized = true;
12310 static int min() throw()
12311 { return -2147483647 - 1; }
12312 static int max() throw()
12313 { return 2147483647; }
12315 static const int digits = (sizeof(int) * 8 - ((int)(-1) < 0));
12316 static const int digits10 = ((sizeof(int) * 8 - ((int)(-1) < 0)) * 643 / 2136);
12317 static const bool is_signed = true;
12318 static const bool is_integer = true;
12319 static const bool is_exact = true;
12320 static const int radix = 2;
12321 static int epsilon() throw()
12323 static int round_error() throw()
12326 static const int min_exponent = 0;
12327 static const int min_exponent10 = 0;
12328 static const int max_exponent = 0;
12329 static const int max_exponent10 = 0;
12331 static const bool has_infinity = false;
12332 static const bool has_quiet_NaN = false;
12333 static const bool has_signaling_NaN = false;
12334 static const float_denorm_style has_denorm = denorm_absent;
12335 static const bool has_denorm_loss = false;
12337 static int infinity() throw()
12338 { return static_cast<int>(0); }
12339 static int quiet_NaN() throw()
12340 { return static_cast<int>(0); }
12341 static int signaling_NaN() throw()
12342 { return static_cast<int>(0); }
12343 static int denorm_min() throw()
12344 { return static_cast<int>(0); }
12346 static const bool is_iec559 = false;
12347 static const bool is_bounded = true;
12348 static const bool is_modulo = true;
12350 static const bool traps = true;
12351 static const bool tinyness_before = false;
12352 static const float_round_style round_style = round_toward_zero;
12357 struct numeric_limits<unsigned int>
12359 static const bool is_specialized = true;
12361 static unsigned int min() throw()
12363 static unsigned int max() throw()
12364 { return 2147483647 * 2U + 1; }
12366 static const int digits = (sizeof(unsigned int) * 8 - ((unsigned int)(-1) < 0));
12367 static const int digits10 = ((sizeof(unsigned int) * 8 - ((unsigned int)(-1) < 0)) * 643 / 2136);
12368 static const bool is_signed = false;
12369 static const bool is_integer = true;
12370 static const bool is_exact = true;
12371 static const int radix = 2;
12372 static unsigned int epsilon() throw()
12374 static unsigned int round_error() throw()
12377 static const int min_exponent = 0;
12378 static const int min_exponent10 = 0;
12379 static const int max_exponent = 0;
12380 static const int max_exponent10 = 0;
12382 static const bool has_infinity = false;
12383 static const bool has_quiet_NaN = false;
12384 static const bool has_signaling_NaN = false;
12385 static const float_denorm_style has_denorm = denorm_absent;
12386 static const bool has_denorm_loss = false;
12388 static unsigned int infinity() throw()
12389 { return static_cast<unsigned int>(0); }
12390 static unsigned int quiet_NaN() throw()
12391 { return static_cast<unsigned int>(0); }
12392 static unsigned int signaling_NaN() throw()
12393 { return static_cast<unsigned int>(0); }
12394 static unsigned int denorm_min() throw()
12395 { return static_cast<unsigned int>(0); }
12397 static const bool is_iec559 = false;
12398 static const bool is_bounded = true;
12399 static const bool is_modulo = true;
12401 static const bool traps = true;
12402 static const bool tinyness_before = false;
12403 static const float_round_style round_style = round_toward_zero;
12408 struct numeric_limits<long>
12410 static const bool is_specialized = true;
12412 static long min() throw()
12413 { return -9223372036854775807L - 1; }
12414 static long max() throw()
12415 { return 9223372036854775807L; }
12417 static const int digits = (sizeof(long) * 8 - ((long)(-1) < 0));
12418 static const int digits10 = ((sizeof(long) * 8 - ((long)(-1) < 0)) * 643 / 2136);
12419 static const bool is_signed = true;
12420 static const bool is_integer = true;
12421 static const bool is_exact = true;
12422 static const int radix = 2;
12423 static long epsilon() throw()
12425 static long round_error() throw()
12428 static const int min_exponent = 0;
12429 static const int min_exponent10 = 0;
12430 static const int max_exponent = 0;
12431 static const int max_exponent10 = 0;
12433 static const bool has_infinity = false;
12434 static const bool has_quiet_NaN = false;
12435 static const bool has_signaling_NaN = false;
12436 static const float_denorm_style has_denorm = denorm_absent;
12437 static const bool has_denorm_loss = false;
12439 static long infinity() throw()
12440 { return static_cast<long>(0); }
12441 static long quiet_NaN() throw()
12442 { return static_cast<long>(0); }
12443 static long signaling_NaN() throw()
12444 { return static_cast<long>(0); }
12445 static long denorm_min() throw()
12446 { return static_cast<long>(0); }
12448 static const bool is_iec559 = false;
12449 static const bool is_bounded = true;
12450 static const bool is_modulo = true;
12452 static const bool traps = true;
12453 static const bool tinyness_before = false;
12454 static const float_round_style round_style = round_toward_zero;
12459 struct numeric_limits<unsigned long>
12461 static const bool is_specialized = true;
12463 static unsigned long min() throw()
12465 static unsigned long max() throw()
12466 { return 9223372036854775807L * 2UL + 1; }
12468 static const int digits = (sizeof(unsigned long) * 8 - ((unsigned long)(-1) < 0));
12469 static const int digits10 = ((sizeof(unsigned long) * 8 - ((unsigned long)(-1) < 0)) * 643 / 2136);
12470 static const bool is_signed = false;
12471 static const bool is_integer = true;
12472 static const bool is_exact = true;
12473 static const int radix = 2;
12474 static unsigned long epsilon() throw()
12476 static unsigned long round_error() throw()
12479 static const int min_exponent = 0;
12480 static const int min_exponent10 = 0;
12481 static const int max_exponent = 0;
12482 static const int max_exponent10 = 0;
12484 static const bool has_infinity = false;
12485 static const bool has_quiet_NaN = false;
12486 static const bool has_signaling_NaN = false;
12487 static const float_denorm_style has_denorm = denorm_absent;
12488 static const bool has_denorm_loss = false;
12490 static unsigned long infinity() throw()
12491 { return static_cast<unsigned long>(0); }
12492 static unsigned long quiet_NaN() throw()
12493 { return static_cast<unsigned long>(0); }
12494 static unsigned long signaling_NaN() throw()
12495 { return static_cast<unsigned long>(0); }
12496 static unsigned long denorm_min() throw()
12497 { return static_cast<unsigned long>(0); }
12499 static const bool is_iec559 = false;
12500 static const bool is_bounded = true;
12501 static const bool is_modulo = true;
12503 static const bool traps = true;
12504 static const bool tinyness_before = false;
12505 static const float_round_style round_style = round_toward_zero;
12510 struct numeric_limits<long long>
12512 static const bool is_specialized = true;
12514 static long long min() throw()
12515 { return -9223372036854775807LL - 1; }
12516 static long long max() throw()
12517 { return 9223372036854775807LL; }
12519 static const int digits = (sizeof(long long) * 8 - ((long long)(-1) < 0));
12520 static const int digits10 = ((sizeof(long long) * 8 - ((long long)(-1) < 0)) * 643 / 2136);
12521 static const bool is_signed = true;
12522 static const bool is_integer = true;
12523 static const bool is_exact = true;
12524 static const int radix = 2;
12525 static long long epsilon() throw()
12527 static long long round_error() throw()
12530 static const int min_exponent = 0;
12531 static const int min_exponent10 = 0;
12532 static const int max_exponent = 0;
12533 static const int max_exponent10 = 0;
12535 static const bool has_infinity = false;
12536 static const bool has_quiet_NaN = false;
12537 static const bool has_signaling_NaN = false;
12538 static const float_denorm_style has_denorm = denorm_absent;
12539 static const bool has_denorm_loss = false;
12541 static long long infinity() throw()
12542 { return static_cast<long long>(0); }
12543 static long long quiet_NaN() throw()
12544 { return static_cast<long long>(0); }
12545 static long long signaling_NaN() throw()
12546 { return static_cast<long long>(0); }
12547 static long long denorm_min() throw()
12548 { return static_cast<long long>(0); }
12550 static const bool is_iec559 = false;
12551 static const bool is_bounded = true;
12552 static const bool is_modulo = true;
12554 static const bool traps = true;
12555 static const bool tinyness_before = false;
12556 static const float_round_style round_style = round_toward_zero;
12561 struct numeric_limits<unsigned long long>
12563 static const bool is_specialized = true;
12565 static unsigned long long min() throw()
12567 static unsigned long long max() throw()
12568 { return 9223372036854775807LL * 2ULL + 1; }
12570 static const int digits = (sizeof(unsigned long long) * 8 - ((unsigned long long)(-1) < 0));
12571 static const int digits10 = ((sizeof(unsigned long long) * 8 - ((unsigned long long)(-1) < 0)) * 643 / 2136);
12572 static const bool is_signed = false;
12573 static const bool is_integer = true;
12574 static const bool is_exact = true;
12575 static const int radix = 2;
12576 static unsigned long long epsilon() throw()
12578 static unsigned long long round_error() throw()
12581 static const int min_exponent = 0;
12582 static const int min_exponent10 = 0;
12583 static const int max_exponent = 0;
12584 static const int max_exponent10 = 0;
12586 static const bool has_infinity = false;
12587 static const bool has_quiet_NaN = false;
12588 static const bool has_signaling_NaN = false;
12589 static const float_denorm_style has_denorm = denorm_absent;
12590 static const bool has_denorm_loss = false;
12592 static unsigned long long infinity() throw()
12593 { return static_cast<unsigned long long>(0); }
12594 static unsigned long long quiet_NaN() throw()
12595 { return static_cast<unsigned long long>(0); }
12596 static unsigned long long signaling_NaN() throw()
12597 { return static_cast<unsigned long long>(0); }
12598 static unsigned long long denorm_min() throw()
12599 { return static_cast<unsigned long long>(0); }
12601 static const bool is_iec559 = false;
12602 static const bool is_bounded = true;
12603 static const bool is_modulo = true;
12605 static const bool traps = true;
12606 static const bool tinyness_before = false;
12607 static const float_round_style round_style = round_toward_zero;
12612 struct numeric_limits<float>
12614 static const bool is_specialized = true;
12616 static float min() throw()
12617 { return 1.17549435e-38F; }
12618 static float max() throw()
12619 { return 3.40282347e+38F; }
12621 static const int digits = 24;
12622 static const int digits10 = 6;
12623 static const bool is_signed = true;
12624 static const bool is_integer = false;
12625 static const bool is_exact = false;
12626 static const int radix = 2;
12627 static float epsilon() throw()
12628 { return 1.19209290e-7F; }
12629 static float round_error() throw()
12632 static const int min_exponent = (-125);
12633 static const int min_exponent10 = (-37);
12634 static const int max_exponent = 128;
12635 static const int max_exponent10 = 38;
12637 static const bool has_infinity = 1;
12638 static const bool has_quiet_NaN = 1;
12639 static const bool has_signaling_NaN = has_quiet_NaN;
12640 static const float_denorm_style has_denorm
12641 = bool(1) ? denorm_present : denorm_absent;
12642 static const bool has_denorm_loss = false;
12644 static float infinity() throw()
12645 { return __builtin_huge_valf (); }
12646 static float quiet_NaN() throw()
12647 { return __builtin_nanf (""); }
12648 static float signaling_NaN() throw()
12649 { return __builtin_nansf (""); }
12650 static float denorm_min() throw()
12651 { return 1.40129846e-45F; }
12653 static const bool is_iec559
12654 = has_infinity && has_quiet_NaN && has_denorm == denorm_present;
12655 static const bool is_bounded = true;
12656 static const bool is_modulo = false;
12658 static const bool traps = false;
12659 static const bool tinyness_before = false;
12660 static const float_round_style round_style = round_to_nearest;
12669 struct numeric_limits<double>
12671 static const bool is_specialized = true;
12673 static double min() throw()
12674 { return 2.2250738585072014e-308; }
12675 static double max() throw()
12676 { return 1.7976931348623157e+308; }
12678 static const int digits = 53;
12679 static const int digits10 = 15;
12680 static const bool is_signed = true;
12681 static const bool is_integer = false;
12682 static const bool is_exact = false;
12683 static const int radix = 2;
12684 static double epsilon() throw()
12685 { return 2.2204460492503131e-16; }
12686 static double round_error() throw()
12689 static const int min_exponent = (-1021);
12690 static const int min_exponent10 = (-307);
12691 static const int max_exponent = 1024;
12692 static const int max_exponent10 = 308;
12694 static const bool has_infinity = 1;
12695 static const bool has_quiet_NaN = 1;
12696 static const bool has_signaling_NaN = has_quiet_NaN;
12697 static const float_denorm_style has_denorm
12698 = bool(1) ? denorm_present : denorm_absent;
12699 static const bool has_denorm_loss = false;
12701 static double infinity() throw()
12702 { return __builtin_huge_val(); }
12703 static double quiet_NaN() throw()
12704 { return __builtin_nan (""); }
12705 static double signaling_NaN() throw()
12706 { return __builtin_nans (""); }
12707 static double denorm_min() throw()
12708 { return 4.9406564584124654e-324; }
12710 static const bool is_iec559
12711 = has_infinity && has_quiet_NaN && has_denorm == denorm_present;
12712 static const bool is_bounded = true;
12713 static const bool is_modulo = false;
12715 static const bool traps = false;
12716 static const bool tinyness_before = false;
12717 static const float_round_style round_style = round_to_nearest;
12726 struct numeric_limits<long double>
12728 static const bool is_specialized = true;
12730 static long double min() throw()
12731 { return 3.36210314311209350626e-4932L; }
12732 static long double max() throw()
12733 { return 1.18973149535723176502e+4932L; }
12735 static const int digits = 64;
12736 static const int digits10 = 18;
12737 static const bool is_signed = true;
12738 static const bool is_integer = false;
12739 static const bool is_exact = false;
12740 static const int radix = 2;
12741 static long double epsilon() throw()
12742 { return 1.08420217248550443401e-19L; }
12743 static long double round_error() throw()
12746 static const int min_exponent = (-16381);
12747 static const int min_exponent10 = (-4931);
12748 static const int max_exponent = 16384;
12749 static const int max_exponent10 = 4932;
12751 static const bool has_infinity = 1;
12752 static const bool has_quiet_NaN = 1;
12753 static const bool has_signaling_NaN = has_quiet_NaN;
12754 static const float_denorm_style has_denorm
12755 = bool(1) ? denorm_present : denorm_absent;
12756 static const bool has_denorm_loss
12759 static long double infinity() throw()
12760 { return __builtin_huge_vall (); }
12761 static long double quiet_NaN() throw()
12762 { return __builtin_nanl (""); }
12763 static long double signaling_NaN() throw()
12764 { return __builtin_nansl (""); }
12765 static long double denorm_min() throw()
12766 { return 3.64519953188247460253e-4951L; }
12768 static const bool is_iec559
12769 = has_infinity && has_quiet_NaN && has_denorm == denorm_present;
12770 static const bool is_bounded = true;
12771 static const bool is_modulo = false;
12773 static const bool traps = false;
12774 static const bool tinyness_before = false;
12775 static const float_round_style round_style = round_to_nearest;
12783 # 61 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/memory" 2 3
12785 namespace std __attribute__ ((__visibility__ ("default"))) {
12786 # 72 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/memory" 3
12787 template<typename _Tp>
12788 pair<_Tp*, ptrdiff_t>
12789 __get_temporary_buffer(ptrdiff_t __len, _Tp*)
12791 const ptrdiff_t __max = numeric_limits<ptrdiff_t>::max() / sizeof(_Tp);
12797 _Tp* __tmp = static_cast<_Tp*>(::operator new(__len * sizeof(_Tp),
12800 return pair<_Tp*, ptrdiff_t>(__tmp, __len);
12803 return pair<_Tp*, ptrdiff_t>(static_cast<_Tp*>(0), 0);
12805 # 108 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/memory" 3
12806 template<typename _Tp>
12807 inline pair<_Tp*, ptrdiff_t>
12808 get_temporary_buffer(ptrdiff_t __len)
12809 { return std::__get_temporary_buffer(__len, static_cast<_Tp*>(0)); }
12810 # 120 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/memory" 3
12811 template<typename _Tp>
12813 return_temporary_buffer(_Tp* __p)
12814 { ::operator delete(__p, nothrow); }
12815 # 132 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/memory" 3
12816 template<typename _Tp1>
12817 struct auto_ptr_ref
12822 auto_ptr_ref(_Tp1* __p): _M_ptr(__p) { }
12824 # 173 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/memory" 3
12825 template<typename _Tp>
12833 typedef _Tp element_type;
12842 auto_ptr(element_type* __p = 0) throw() : _M_ptr(__p) { }
12843 # 199 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/memory" 3
12844 auto_ptr(auto_ptr& __a) throw() : _M_ptr(__a.release()) { }
12845 # 211 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/memory" 3
12846 template<typename _Tp1>
12847 auto_ptr(auto_ptr<_Tp1>& __a) throw() : _M_ptr(__a.release()) { }
12848 # 222 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/memory" 3
12850 operator=(auto_ptr& __a) throw()
12852 reset(__a.release());
12855 # 239 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/memory" 3
12856 template<typename _Tp1>
12858 operator=(auto_ptr<_Tp1>& __a) throw()
12860 reset(__a.release());
12863 # 259 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/memory" 3
12864 ~auto_ptr() { delete _M_ptr; }
12865 # 269 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/memory" 3
12867 operator*() const throw()
12880 operator->() const throw()
12885 # 299 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/memory" 3
12887 get() const throw() { return _M_ptr; }
12888 # 313 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/memory" 3
12892 element_type* __tmp = _M_ptr;
12896 # 328 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/memory" 3
12898 reset(element_type* __p = 0) throw()
12906 # 349 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/memory" 3
12907 auto_ptr(auto_ptr_ref<element_type> __ref) throw()
12908 : _M_ptr(__ref._M_ptr) { }
12911 operator=(auto_ptr_ref<element_type> __ref) throw()
12913 if (__ref._M_ptr != this->get())
12916 _M_ptr = __ref._M_ptr;
12921 template<typename _Tp1>
12922 operator auto_ptr_ref<_Tp1>() throw()
12923 { return auto_ptr_ref<_Tp1>(this->release()); }
12925 template<typename _Tp1>
12926 operator auto_ptr<_Tp1>() throw()
12927 { return auto_ptr<_Tp1>(this->release()); }
12931 # 49 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/string" 2 3
12934 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/ostream_insert.h" 1 3
12935 # 38 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/ostream_insert.h" 3
12937 # 39 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/ostream_insert.h" 3
12941 namespace std __attribute__ ((__visibility__ ("default"))) {
12943 template<typename _CharT, typename _Traits>
12945 __ostream_write(basic_ostream<_CharT, _Traits>& __out,
12946 const _CharT* __s, streamsize __n)
12948 typedef basic_ostream<_CharT, _Traits> __ostream_type;
12949 typedef typename __ostream_type::ios_base __ios_base;
12951 const streamsize __put = __out.rdbuf()->sputn(__s, __n);
12953 __out.setstate(__ios_base::badbit);
12956 template<typename _CharT, typename _Traits>
12958 __ostream_fill(basic_ostream<_CharT, _Traits>& __out, streamsize __n)
12960 typedef basic_ostream<_CharT, _Traits> __ostream_type;
12961 typedef typename __ostream_type::ios_base __ios_base;
12963 const _CharT __c = __out.fill();
12964 for (; __n > 0; --__n)
12966 const typename _Traits::int_type __put = __out.rdbuf()->sputc(__c);
12967 if (_Traits::eq_int_type(__put, _Traits::eof()))
12969 __out.setstate(__ios_base::badbit);
12975 template<typename _CharT, typename _Traits>
12976 basic_ostream<_CharT, _Traits>&
12977 __ostream_insert(basic_ostream<_CharT, _Traits>& __out,
12978 const _CharT* __s, streamsize __n)
12980 typedef basic_ostream<_CharT, _Traits> __ostream_type;
12981 typedef typename __ostream_type::ios_base __ios_base;
12983 typename __ostream_type::sentry __cerb(__out);
12988 const streamsize __w = __out.width();
12991 const bool __left = ((__out.flags()
12992 & __ios_base::adjustfield)
12993 == __ios_base::left);
12995 __ostream_fill(__out, __w - __n);
12997 __ostream_write(__out, __s, __n);
12998 if (__left && __out.good())
12999 __ostream_fill(__out, __w - __n);
13002 __ostream_write(__out, __s, __n);
13006 { __out._M_setstate(__ios_base::badbit); }
13015 extern template ostream& __ostream_insert(ostream&, const char*, streamsize);
13018 extern template wostream& __ostream_insert(wostream&, const wchar_t*,
13024 # 52 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/string" 2 3
13026 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_function.h" 1 3
13027 # 64 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_function.h" 3
13028 namespace std __attribute__ ((__visibility__ ("default"))) {
13029 # 101 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_function.h" 3
13030 template <class _Arg, class _Result>
13031 struct unary_function
13033 typedef _Arg argument_type;
13036 typedef _Result result_type;
13042 template <class _Arg1, class _Arg2, class _Result>
13043 struct binary_function
13045 typedef _Arg1 first_argument_type;
13048 typedef _Arg2 second_argument_type;
13049 typedef _Result result_type;
13051 # 133 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_function.h" 3
13052 template <class _Tp>
13053 struct plus : public binary_function<_Tp, _Tp, _Tp>
13056 operator()(const _Tp& __x, const _Tp& __y) const
13057 { return __x + __y; }
13061 template <class _Tp>
13062 struct minus : public binary_function<_Tp, _Tp, _Tp>
13065 operator()(const _Tp& __x, const _Tp& __y) const
13066 { return __x - __y; }
13070 template <class _Tp>
13071 struct multiplies : public binary_function<_Tp, _Tp, _Tp>
13074 operator()(const _Tp& __x, const _Tp& __y) const
13075 { return __x * __y; }
13079 template <class _Tp>
13080 struct divides : public binary_function<_Tp, _Tp, _Tp>
13083 operator()(const _Tp& __x, const _Tp& __y) const
13084 { return __x / __y; }
13088 template <class _Tp>
13089 struct modulus : public binary_function<_Tp, _Tp, _Tp>
13092 operator()(const _Tp& __x, const _Tp& __y) const
13093 { return __x % __y; }
13097 template <class _Tp>
13098 struct negate : public unary_function<_Tp, _Tp>
13101 operator()(const _Tp& __x) const
13104 # 195 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_function.h" 3
13105 template <class _Tp>
13106 struct equal_to : public binary_function<_Tp, _Tp, bool>
13109 operator()(const _Tp& __x, const _Tp& __y) const
13110 { return __x == __y; }
13114 template <class _Tp>
13115 struct not_equal_to : public binary_function<_Tp, _Tp, bool>
13118 operator()(const _Tp& __x, const _Tp& __y) const
13119 { return __x != __y; }
13123 template <class _Tp>
13124 struct greater : public binary_function<_Tp, _Tp, bool>
13127 operator()(const _Tp& __x, const _Tp& __y) const
13128 { return __x > __y; }
13132 template <class _Tp>
13133 struct less : public binary_function<_Tp, _Tp, bool>
13136 operator()(const _Tp& __x, const _Tp& __y) const
13137 { return __x < __y; }
13141 template <class _Tp>
13142 struct greater_equal : public binary_function<_Tp, _Tp, bool>
13145 operator()(const _Tp& __x, const _Tp& __y) const
13146 { return __x >= __y; }
13150 template <class _Tp>
13151 struct less_equal : public binary_function<_Tp, _Tp, bool>
13154 operator()(const _Tp& __x, const _Tp& __y) const
13155 { return __x <= __y; }
13157 # 256 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_function.h" 3
13158 template <class _Tp>
13159 struct logical_and : public binary_function<_Tp, _Tp, bool>
13162 operator()(const _Tp& __x, const _Tp& __y) const
13163 { return __x && __y; }
13167 template <class _Tp>
13168 struct logical_or : public binary_function<_Tp, _Tp, bool>
13171 operator()(const _Tp& __x, const _Tp& __y) const
13172 { return __x || __y; }
13176 template <class _Tp>
13177 struct logical_not : public unary_function<_Tp, bool>
13180 operator()(const _Tp& __x) const
13183 # 311 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_function.h" 3
13184 template <class _Predicate>
13186 : public unary_function<typename _Predicate::argument_type, bool>
13189 _Predicate _M_pred;
13192 unary_negate(const _Predicate& __x) : _M_pred(__x) {}
13195 operator()(const typename _Predicate::argument_type& __x) const
13196 { return !_M_pred(__x); }
13200 template <class _Predicate>
13201 inline unary_negate<_Predicate>
13202 not1(const _Predicate& __pred)
13203 { return unary_negate<_Predicate>(__pred); }
13206 template <class _Predicate>
13207 class binary_negate
13208 : public binary_function<typename _Predicate::first_argument_type,
13209 typename _Predicate::second_argument_type,
13213 _Predicate _M_pred;
13216 binary_negate(const _Predicate& __x)
13220 operator()(const typename _Predicate::first_argument_type& __x,
13221 const typename _Predicate::second_argument_type& __y) const
13222 { return !_M_pred(__x, __y); }
13226 template <class _Predicate>
13227 inline binary_negate<_Predicate>
13228 not2(const _Predicate& __pred)
13229 { return binary_negate<_Predicate>(__pred); }
13230 # 391 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_function.h" 3
13231 template <class _Operation>
13233 : public unary_function<typename _Operation::second_argument_type,
13234 typename _Operation::result_type>
13238 typename _Operation::first_argument_type value;
13240 binder1st(const _Operation& __x,
13241 const typename _Operation::first_argument_type& __y)
13242 : op(__x), value(__y) {}
13244 typename _Operation::result_type
13245 operator()(const typename _Operation::second_argument_type& __x) const
13246 { return op(value, __x); }
13250 typename _Operation::result_type
13251 operator()(typename _Operation::second_argument_type& __x) const
13252 { return op(value, __x); }
13256 template <class _Operation, class _Tp>
13257 inline binder1st<_Operation>
13258 bind1st(const _Operation& __fn, const _Tp& __x)
13260 typedef typename _Operation::first_argument_type _Arg1_type;
13261 return binder1st<_Operation>(__fn, _Arg1_type(__x));
13265 template <class _Operation>
13267 : public unary_function<typename _Operation::first_argument_type,
13268 typename _Operation::result_type>
13272 typename _Operation::second_argument_type value;
13274 binder2nd(const _Operation& __x,
13275 const typename _Operation::second_argument_type& __y)
13276 : op(__x), value(__y) {}
13278 typename _Operation::result_type
13279 operator()(const typename _Operation::first_argument_type& __x) const
13280 { return op(__x, value); }
13284 typename _Operation::result_type
13285 operator()(typename _Operation::first_argument_type& __x) const
13286 { return op(__x, value); }
13290 template <class _Operation, class _Tp>
13291 inline binder2nd<_Operation>
13292 bind2nd(const _Operation& __fn, const _Tp& __x)
13294 typedef typename _Operation::second_argument_type _Arg2_type;
13295 return binder2nd<_Operation>(__fn, _Arg2_type(__x));
13297 # 480 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_function.h" 3
13298 template <class _Arg, class _Result>
13299 class pointer_to_unary_function : public unary_function<_Arg, _Result>
13302 _Result (*_M_ptr)(_Arg);
13304 pointer_to_unary_function() {}
13307 pointer_to_unary_function(_Result (*__x)(_Arg))
13311 operator()(_Arg __x) const
13312 { return _M_ptr(__x); }
13316 template <class _Arg, class _Result>
13317 inline pointer_to_unary_function<_Arg, _Result>
13318 ptr_fun(_Result (*__x)(_Arg))
13319 { return pointer_to_unary_function<_Arg, _Result>(__x); }
13322 template <class _Arg1, class _Arg2, class _Result>
13323 class pointer_to_binary_function
13324 : public binary_function<_Arg1, _Arg2, _Result>
13327 _Result (*_M_ptr)(_Arg1, _Arg2);
13329 pointer_to_binary_function() {}
13332 pointer_to_binary_function(_Result (*__x)(_Arg1, _Arg2))
13336 operator()(_Arg1 __x, _Arg2 __y) const
13337 { return _M_ptr(__x, __y); }
13341 template <class _Arg1, class _Arg2, class _Result>
13342 inline pointer_to_binary_function<_Arg1, _Arg2, _Result>
13343 ptr_fun(_Result (*__x)(_Arg1, _Arg2))
13344 { return pointer_to_binary_function<_Arg1, _Arg2, _Result>(__x); }
13347 template <class _Tp>
13348 struct _Identity : public unary_function<_Tp,_Tp>
13351 operator()(_Tp& __x) const
13355 operator()(const _Tp& __x) const
13359 template <class _Pair>
13360 struct _Select1st : public unary_function<_Pair,
13361 typename _Pair::first_type>
13363 typename _Pair::first_type&
13364 operator()(_Pair& __x) const
13365 { return __x.first; }
13367 const typename _Pair::first_type&
13368 operator()(const _Pair& __x) const
13369 { return __x.first; }
13372 template <class _Pair>
13373 struct _Select2nd : public unary_function<_Pair,
13374 typename _Pair::second_type>
13376 typename _Pair::second_type&
13377 operator()(_Pair& __x) const
13378 { return __x.second; }
13380 const typename _Pair::second_type&
13381 operator()(const _Pair& __x) const
13382 { return __x.second; }
13384 # 582 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_function.h" 3
13385 template <class _Ret, class _Tp>
13386 class mem_fun_t : public unary_function<_Tp*, _Ret>
13390 mem_fun_t(_Ret (_Tp::*__pf)())
13394 operator()(_Tp* __p) const
13395 { return (__p->*_M_f)(); }
13397 _Ret (_Tp::*_M_f)();
13401 template <class _Ret, class _Tp>
13402 class const_mem_fun_t : public unary_function<const _Tp*, _Ret>
13406 const_mem_fun_t(_Ret (_Tp::*__pf)() const)
13410 operator()(const _Tp* __p) const
13411 { return (__p->*_M_f)(); }
13413 _Ret (_Tp::*_M_f)() const;
13417 template <class _Ret, class _Tp>
13418 class mem_fun_ref_t : public unary_function<_Tp, _Ret>
13422 mem_fun_ref_t(_Ret (_Tp::*__pf)())
13426 operator()(_Tp& __r) const
13427 { return (__r.*_M_f)(); }
13429 _Ret (_Tp::*_M_f)();
13433 template <class _Ret, class _Tp>
13434 class const_mem_fun_ref_t : public unary_function<_Tp, _Ret>
13438 const_mem_fun_ref_t(_Ret (_Tp::*__pf)() const)
13442 operator()(const _Tp& __r) const
13443 { return (__r.*_M_f)(); }
13445 _Ret (_Tp::*_M_f)() const;
13449 template <class _Ret, class _Tp, class _Arg>
13450 class mem_fun1_t : public binary_function<_Tp*, _Arg, _Ret>
13454 mem_fun1_t(_Ret (_Tp::*__pf)(_Arg))
13458 operator()(_Tp* __p, _Arg __x) const
13459 { return (__p->*_M_f)(__x); }
13461 _Ret (_Tp::*_M_f)(_Arg);
13465 template <class _Ret, class _Tp, class _Arg>
13466 class const_mem_fun1_t : public binary_function<const _Tp*, _Arg, _Ret>
13470 const_mem_fun1_t(_Ret (_Tp::*__pf)(_Arg) const)
13474 operator()(const _Tp* __p, _Arg __x) const
13475 { return (__p->*_M_f)(__x); }
13477 _Ret (_Tp::*_M_f)(_Arg) const;
13481 template <class _Ret, class _Tp, class _Arg>
13482 class mem_fun1_ref_t : public binary_function<_Tp, _Arg, _Ret>
13486 mem_fun1_ref_t(_Ret (_Tp::*__pf)(_Arg))
13490 operator()(_Tp& __r, _Arg __x) const
13491 { return (__r.*_M_f)(__x); }
13493 _Ret (_Tp::*_M_f)(_Arg);
13497 template <class _Ret, class _Tp, class _Arg>
13498 class const_mem_fun1_ref_t : public binary_function<_Tp, _Arg, _Ret>
13502 const_mem_fun1_ref_t(_Ret (_Tp::*__pf)(_Arg) const)
13506 operator()(const _Tp& __r, _Arg __x) const
13507 { return (__r.*_M_f)(__x); }
13509 _Ret (_Tp::*_M_f)(_Arg) const;
13514 template <class _Ret, class _Tp>
13515 inline mem_fun_t<_Ret, _Tp>
13516 mem_fun(_Ret (_Tp::*__f)())
13517 { return mem_fun_t<_Ret, _Tp>(__f); }
13519 template <class _Ret, class _Tp>
13520 inline const_mem_fun_t<_Ret, _Tp>
13521 mem_fun(_Ret (_Tp::*__f)() const)
13522 { return const_mem_fun_t<_Ret, _Tp>(__f); }
13524 template <class _Ret, class _Tp>
13525 inline mem_fun_ref_t<_Ret, _Tp>
13526 mem_fun_ref(_Ret (_Tp::*__f)())
13527 { return mem_fun_ref_t<_Ret, _Tp>(__f); }
13529 template <class _Ret, class _Tp>
13530 inline const_mem_fun_ref_t<_Ret, _Tp>
13531 mem_fun_ref(_Ret (_Tp::*__f)() const)
13532 { return const_mem_fun_ref_t<_Ret, _Tp>(__f); }
13534 template <class _Ret, class _Tp, class _Arg>
13535 inline mem_fun1_t<_Ret, _Tp, _Arg>
13536 mem_fun(_Ret (_Tp::*__f)(_Arg))
13537 { return mem_fun1_t<_Ret, _Tp, _Arg>(__f); }
13539 template <class _Ret, class _Tp, class _Arg>
13540 inline const_mem_fun1_t<_Ret, _Tp, _Arg>
13541 mem_fun(_Ret (_Tp::*__f)(_Arg) const)
13542 { return const_mem_fun1_t<_Ret, _Tp, _Arg>(__f); }
13544 template <class _Ret, class _Tp, class _Arg>
13545 inline mem_fun1_ref_t<_Ret, _Tp, _Arg>
13546 mem_fun_ref(_Ret (_Tp::*__f)(_Arg))
13547 { return mem_fun1_ref_t<_Ret, _Tp, _Arg>(__f); }
13549 template <class _Ret, class _Tp, class _Arg>
13550 inline const_mem_fun1_ref_t<_Ret, _Tp, _Arg>
13551 mem_fun_ref(_Ret (_Tp::*__f)(_Arg) const)
13552 { return const_mem_fun1_ref_t<_Ret, _Tp, _Arg>(__f); }
13557 # 54 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/string" 2 3
13558 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/basic_string.h" 1 3
13559 # 44 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/basic_string.h" 3
13561 # 45 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/basic_string.h" 3
13563 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/ext/atomicity.h" 1 3
13564 # 40 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/ext/atomicity.h" 3
13565 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/x86_64-pc-linux-gnu/bits/atomic_word.h" 1 3
13566 # 37 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/x86_64-pc-linux-gnu/bits/atomic_word.h" 3
13567 typedef int _Atomic_word;
13568 # 41 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/ext/atomicity.h" 2 3
13570 namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) {
13577 static inline _Atomic_word
13578 __exchange_and_add(volatile _Atomic_word* __mem, int __val)
13579 { return __sync_fetch_and_add(__mem, __val); }
13582 __atomic_add(volatile _Atomic_word* __mem, int __val)
13583 { __sync_fetch_and_add(__mem, __val); }
13584 # 66 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/ext/atomicity.h" 3
13585 static inline _Atomic_word
13586 __exchange_and_add_single(_Atomic_word* __mem, int __val)
13588 _Atomic_word __result = *__mem;
13594 __atomic_add_single(_Atomic_word* __mem, int __val)
13595 { *__mem += __val; }
13597 static inline _Atomic_word
13598 __attribute__ ((__unused__))
13599 __exchange_and_add_dispatch(_Atomic_word* __mem, int __val)
13602 if (__gthread_active_p())
13603 return __exchange_and_add(__mem, __val);
13605 return __exchange_and_add_single(__mem, __val);
13612 __attribute__ ((__unused__))
13613 __atomic_add_dispatch(_Atomic_word* __mem, int __val)
13616 if (__gthread_active_p())
13617 __atomic_add(__mem, __val);
13619 __atomic_add_single(__mem, __val);
13626 # 47 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/basic_string.h" 2 3
13629 namespace std __attribute__ ((__visibility__ ("default"))) {
13630 # 110 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/basic_string.h" 3
13631 template<typename _CharT, typename _Traits, typename _Alloc>
13634 typedef typename _Alloc::template rebind<_CharT>::other _CharT_alloc_type;
13638 typedef _Traits traits_type;
13639 typedef typename _Traits::char_type value_type;
13640 typedef _Alloc allocator_type;
13641 typedef typename _CharT_alloc_type::size_type size_type;
13642 typedef typename _CharT_alloc_type::difference_type difference_type;
13643 typedef typename _CharT_alloc_type::reference reference;
13644 typedef typename _CharT_alloc_type::const_reference const_reference;
13645 typedef typename _CharT_alloc_type::pointer pointer;
13646 typedef typename _CharT_alloc_type::const_pointer const_pointer;
13647 typedef __gnu_cxx::__normal_iterator<pointer, basic_string> iterator;
13648 typedef __gnu_cxx::__normal_iterator<const_pointer, basic_string>
13650 typedef std::reverse_iterator<const_iterator> const_reverse_iterator;
13651 typedef std::reverse_iterator<iterator> reverse_iterator;
13654 # 147 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/basic_string.h" 3
13657 size_type _M_length;
13658 size_type _M_capacity;
13659 _Atomic_word _M_refcount;
13662 struct _Rep : _Rep_base
13665 typedef typename _Alloc::template rebind<char>::other _Raw_bytes_alloc;
13666 # 172 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/basic_string.h" 3
13667 static const size_type _S_max_size;
13668 static const _CharT _S_terminal;
13672 static size_type _S_empty_rep_storage[];
13680 void* __p = reinterpret_cast<void*>(&_S_empty_rep_storage);
13681 return *reinterpret_cast<_Rep*>(__p);
13685 _M_is_leaked() const
13686 { return this->_M_refcount < 0; }
13689 _M_is_shared() const
13690 { return this->_M_refcount > 0; }
13694 { this->_M_refcount = -1; }
13698 { this->_M_refcount = 0; }
13701 _M_set_length_and_sharable(size_type __n)
13703 this->_M_set_sharable();
13704 this->_M_length = __n;
13705 traits_type::assign(this->_M_refdata()[__n], _S_terminal);
13711 _M_refdata() throw()
13712 { return reinterpret_cast<_CharT*>(this + 1); }
13715 _M_grab(const _Alloc& __alloc1, const _Alloc& __alloc2)
13717 return (!_M_is_leaked() && __alloc1 == __alloc2)
13718 ? _M_refcopy() : _M_clone(__alloc1);
13723 _S_create(size_type, size_type, const _Alloc&);
13726 _M_dispose(const _Alloc& __a)
13729 if (__builtin_expect(this != &_S_empty_rep(), false))
13731 if (__gnu_cxx::__exchange_and_add_dispatch(&this->_M_refcount,
13737 _M_destroy(const _Alloc&) throw();
13740 _M_refcopy() throw()
13743 if (__builtin_expect(this != &_S_empty_rep(), false))
13745 __gnu_cxx::__atomic_add_dispatch(&this->_M_refcount, 1);
13746 return _M_refdata();
13750 _M_clone(const _Alloc&, size_type __res = 0);
13754 struct _Alloc_hider : _Alloc
13756 _Alloc_hider(_CharT* __dat, const _Alloc& __a)
13757 : _Alloc(__a), _M_p(__dat) { }
13767 static const size_type npos = static_cast<size_type>(-1);
13771 mutable _Alloc_hider _M_dataplus;
13775 { return _M_dataplus._M_p; }
13778 _M_data(_CharT* __p)
13779 { return (_M_dataplus._M_p = __p); }
13783 { return &((reinterpret_cast<_Rep*> (_M_data()))[-1]); }
13789 { return iterator(_M_data()); }
13793 { return iterator(_M_data() + this->size()); }
13798 if (!_M_rep()->_M_is_leaked())
13803 _M_check(size_type __pos, const char* __s) const
13805 if (__pos > this->size())
13806 __throw_out_of_range((__s));
13811 _M_check_length(size_type __n1, size_type __n2, const char* __s) const
13813 if (this->max_size() - (this->size() - __n1) < __n2)
13814 __throw_length_error((__s));
13819 _M_limit(size_type __pos, size_type __off) const
13821 const bool __testoff = __off < this->size() - __pos;
13822 return __testoff ? __off : this->size() - __pos;
13827 _M_disjunct(const _CharT* __s) const
13829 return (less<const _CharT*>()(__s, _M_data())
13830 || less<const _CharT*>()(_M_data() + this->size(), __s));
13836 _M_copy(_CharT* __d, const _CharT* __s, size_type __n)
13839 traits_type::assign(*__d, *__s);
13841 traits_type::copy(__d, __s, __n);
13845 _M_move(_CharT* __d, const _CharT* __s, size_type __n)
13848 traits_type::assign(*__d, *__s);
13850 traits_type::move(__d, __s, __n);
13854 _M_assign(_CharT* __d, size_type __n, _CharT __c)
13857 traits_type::assign(*__d, __c);
13859 traits_type::assign(__d, __n, __c);
13864 template<class _Iterator>
13866 _S_copy_chars(_CharT* __p, _Iterator __k1, _Iterator __k2)
13868 for (; __k1 != __k2; ++__k1, ++__p)
13869 traits_type::assign(*__p, *__k1);
13873 _S_copy_chars(_CharT* __p, iterator __k1, iterator __k2)
13874 { _S_copy_chars(__p, __k1.base(), __k2.base()); }
13877 _S_copy_chars(_CharT* __p, const_iterator __k1, const_iterator __k2)
13878 { _S_copy_chars(__p, __k1.base(), __k2.base()); }
13881 _S_copy_chars(_CharT* __p, _CharT* __k1, _CharT* __k2)
13882 { _M_copy(__p, __k1, __k2 - __k1); }
13885 _S_copy_chars(_CharT* __p, const _CharT* __k1, const _CharT* __k2)
13886 { _M_copy(__p, __k1, __k2 - __k1); }
13889 _M_mutate(size_type __pos, size_type __len1, size_type __len2);
13896 { return _Rep::_S_empty_rep(); }
13913 basic_string(const _Alloc& __a);
13920 basic_string(const basic_string& __str);
13927 basic_string(const basic_string& __str, size_type __pos,
13928 size_type __n = npos);
13936 basic_string(const basic_string& __str, size_type __pos,
13937 size_type __n, const _Alloc& __a);
13938 # 453 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/basic_string.h" 3
13939 basic_string(const _CharT* __s, size_type __n,
13940 const _Alloc& __a = _Alloc());
13946 basic_string(const _CharT* __s, const _Alloc& __a = _Alloc());
13953 basic_string(size_type __n, _CharT __c, const _Alloc& __a = _Alloc());
13961 template<class _InputIterator>
13962 basic_string(_InputIterator __beg, _InputIterator __end,
13963 const _Alloc& __a = _Alloc());
13969 { _M_rep()->_M_dispose(this->get_allocator()); }
13976 operator=(const basic_string& __str)
13977 { return this->assign(__str); }
13984 operator=(const _CharT* __s)
13985 { return this->assign(__s); }
13986 # 508 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/basic_string.h" 3
13988 operator=(_CharT __c)
13990 this->assign(1, __c);
14003 return iterator(_M_data());
14012 { return const_iterator(_M_data()); }
14022 return iterator(_M_data() + this->size());
14031 { return const_iterator(_M_data() + this->size()); }
14040 { return reverse_iterator(this->end()); }
14047 const_reverse_iterator
14049 { return const_reverse_iterator(this->end()); }
14058 { return reverse_iterator(this->begin()); }
14065 const_reverse_iterator
14067 { return const_reverse_iterator(this->begin()); }
14075 { return _M_rep()->_M_length; }
14081 { return _M_rep()->_M_length; }
14086 { return _Rep::_S_max_size; }
14087 # 619 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/basic_string.h" 3
14089 resize(size_type __n, _CharT __c);
14090 # 632 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/basic_string.h" 3
14092 resize(size_type __n)
14093 { this->resize(__n, _CharT()); }
14101 { return _M_rep()->_M_capacity; }
14102 # 661 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/basic_string.h" 3
14104 reserve(size_type __res_arg = 0);
14111 { _M_mutate(0, this->size(), 0); }
14118 { return this->size() == 0; }
14119 # 689 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/basic_string.h" 3
14121 operator[] (size_type __pos) const
14124 return _M_data()[__pos];
14126 # 706 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/basic_string.h" 3
14128 operator[](size_type __pos)
14135 return _M_data()[__pos];
14137 # 727 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/basic_string.h" 3
14139 at(size_type __n) const
14141 if (__n >= this->size())
14142 __throw_out_of_range(("basic_string::at"));
14143 return _M_data()[__n];
14145 # 746 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/basic_string.h" 3
14150 __throw_out_of_range(("basic_string::at"));
14152 return _M_data()[__n];
14162 operator+=(const basic_string& __str)
14163 { return this->append(__str); }
14171 operator+=(const _CharT* __s)
14172 { return this->append(__s); }
14180 operator+=(_CharT __c)
14182 this->push_back(__c);
14192 append(const basic_string& __str);
14193 # 806 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/basic_string.h" 3
14195 append(const basic_string& __str, size_type __pos, size_type __n);
14204 append(const _CharT* __s, size_type __n);
14212 append(const _CharT* __s)
14215 return this->append(__s, traits_type::length(__s));
14217 # 838 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/basic_string.h" 3
14219 append(size_type __n, _CharT __c);
14220 # 849 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/basic_string.h" 3
14221 template<class _InputIterator>
14223 append(_InputIterator __first, _InputIterator __last)
14224 { return this->replace(_M_iend(), _M_iend(), __first, __last); }
14231 push_back(_CharT __c)
14233 const size_type __len = 1 + this->size();
14234 if (__len > this->capacity() || _M_rep()->_M_is_shared())
14235 this->reserve(__len);
14236 traits_type::assign(_M_data()[this->size()], __c);
14237 _M_rep()->_M_set_length_and_sharable(__len);
14246 assign(const basic_string& __str);
14247 # 888 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/basic_string.h" 3
14249 assign(const basic_string& __str, size_type __pos, size_type __n)
14250 { return this->assign(__str._M_data()
14251 + __str._M_check(__pos, "basic_string::assign"),
14252 __str._M_limit(__pos, __n)); }
14253 # 904 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/basic_string.h" 3
14255 assign(const _CharT* __s, size_type __n);
14256 # 916 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/basic_string.h" 3
14258 assign(const _CharT* __s)
14261 return this->assign(__s, traits_type::length(__s));
14263 # 932 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/basic_string.h" 3
14265 assign(size_type __n, _CharT __c)
14266 { return _M_replace_aux(size_type(0), this->size(), __n, __c); }
14267 # 944 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/basic_string.h" 3
14268 template<class _InputIterator>
14270 assign(_InputIterator __first, _InputIterator __last)
14271 { return this->replace(_M_ibegin(), _M_iend(), __first, __last); }
14272 # 961 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/basic_string.h" 3
14274 insert(iterator __p, size_type __n, _CharT __c)
14275 { this->replace(__p, __p, __n, __c); }
14276 # 976 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/basic_string.h" 3
14277 template<class _InputIterator>
14279 insert(iterator __p, _InputIterator __beg, _InputIterator __end)
14280 { this->replace(__p, __p, __beg, __end); }
14281 # 992 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/basic_string.h" 3
14283 insert(size_type __pos1, const basic_string& __str)
14284 { return this->insert(__pos1, __str, size_type(0), __str.size()); }
14285 # 1014 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/basic_string.h" 3
14287 insert(size_type __pos1, const basic_string& __str,
14288 size_type __pos2, size_type __n)
14289 { return this->insert(__pos1, __str._M_data()
14290 + __str._M_check(__pos2, "basic_string::insert"),
14291 __str._M_limit(__pos2, __n)); }
14292 # 1037 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/basic_string.h" 3
14294 insert(size_type __pos, const _CharT* __s, size_type __n);
14295 # 1055 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/basic_string.h" 3
14297 insert(size_type __pos, const _CharT* __s)
14300 return this->insert(__pos, __s, traits_type::length(__s));
14302 # 1078 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/basic_string.h" 3
14304 insert(size_type __pos, size_type __n, _CharT __c)
14305 { return _M_replace_aux(_M_check(__pos, "basic_string::insert"),
14306 size_type(0), __n, __c); }
14307 # 1095 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/basic_string.h" 3
14309 insert(iterator __p, _CharT __c)
14312 const size_type __pos = __p - _M_ibegin();
14313 _M_replace_aux(__pos, size_type(0), size_type(1), __c);
14314 _M_rep()->_M_set_leaked();
14315 return iterator(_M_data() + __pos);
14317 # 1119 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/basic_string.h" 3
14319 erase(size_type __pos = 0, size_type __n = npos)
14321 _M_mutate(_M_check(__pos, "basic_string::erase"),
14322 _M_limit(__pos, __n), size_type(0));
14325 # 1135 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/basic_string.h" 3
14327 erase(iterator __position)
14331 const size_type __pos = __position - _M_ibegin();
14332 _M_mutate(__pos, size_type(1), size_type(0));
14333 _M_rep()->_M_set_leaked();
14334 return iterator(_M_data() + __pos);
14336 # 1155 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/basic_string.h" 3
14338 erase(iterator __first, iterator __last)
14342 const size_type __pos = __first - _M_ibegin();
14343 _M_mutate(__pos, __last - __first, size_type(0));
14344 _M_rep()->_M_set_leaked();
14345 return iterator(_M_data() + __pos);
14347 # 1182 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/basic_string.h" 3
14349 replace(size_type __pos, size_type __n, const basic_string& __str)
14350 { return this->replace(__pos, __n, __str._M_data(), __str.size()); }
14351 # 1204 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/basic_string.h" 3
14353 replace(size_type __pos1, size_type __n1, const basic_string& __str,
14354 size_type __pos2, size_type __n2)
14355 { return this->replace(__pos1, __n1, __str._M_data()
14356 + __str._M_check(__pos2, "basic_string::replace"),
14357 __str._M_limit(__pos2, __n2)); }
14358 # 1228 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/basic_string.h" 3
14360 replace(size_type __pos, size_type __n1, const _CharT* __s,
14362 # 1247 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/basic_string.h" 3
14364 replace(size_type __pos, size_type __n1, const _CharT* __s)
14367 return this->replace(__pos, __n1, __s, traits_type::length(__s));
14369 # 1270 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/basic_string.h" 3
14371 replace(size_type __pos, size_type __n1, size_type __n2, _CharT __c)
14372 { return _M_replace_aux(_M_check(__pos, "basic_string::replace"),
14373 _M_limit(__pos, __n1), __n2, __c); }
14374 # 1288 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/basic_string.h" 3
14376 replace(iterator __i1, iterator __i2, const basic_string& __str)
14377 { return this->replace(__i1, __i2, __str._M_data(), __str.size()); }
14378 # 1306 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/basic_string.h" 3
14380 replace(iterator __i1, iterator __i2, const _CharT* __s, size_type __n)
14384 return this->replace(__i1 - _M_ibegin(), __i2 - __i1, __s, __n);
14386 # 1327 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/basic_string.h" 3
14388 replace(iterator __i1, iterator __i2, const _CharT* __s)
14391 return this->replace(__i1, __i2, __s, traits_type::length(__s));
14393 # 1348 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/basic_string.h" 3
14395 replace(iterator __i1, iterator __i2, size_type __n, _CharT __c)
14399 return _M_replace_aux(__i1 - _M_ibegin(), __i2 - __i1, __n, __c);
14401 # 1370 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/basic_string.h" 3
14402 template<class _InputIterator>
14404 replace(iterator __i1, iterator __i2,
14405 _InputIterator __k1, _InputIterator __k2)
14410 typedef typename std::__is_integer<_InputIterator>::__type _Integral;
14411 return _M_replace_dispatch(__i1, __i2, __k1, __k2, _Integral());
14417 replace(iterator __i1, iterator __i2, _CharT* __k1, _CharT* __k2)
14422 return this->replace(__i1 - _M_ibegin(), __i2 - __i1,
14423 __k1, __k2 - __k1);
14427 replace(iterator __i1, iterator __i2,
14428 const _CharT* __k1, const _CharT* __k2)
14433 return this->replace(__i1 - _M_ibegin(), __i2 - __i1,
14434 __k1, __k2 - __k1);
14438 replace(iterator __i1, iterator __i2, iterator __k1, iterator __k2)
14443 return this->replace(__i1 - _M_ibegin(), __i2 - __i1,
14444 __k1.base(), __k2 - __k1);
14448 replace(iterator __i1, iterator __i2,
14449 const_iterator __k1, const_iterator __k2)
14454 return this->replace(__i1 - _M_ibegin(), __i2 - __i1,
14455 __k1.base(), __k2 - __k1);
14459 template<class _Integer>
14461 _M_replace_dispatch(iterator __i1, iterator __i2, _Integer __n,
14462 _Integer __val, __true_type)
14463 { return _M_replace_aux(__i1 - _M_ibegin(), __i2 - __i1, __n, __val); }
14465 template<class _InputIterator>
14467 _M_replace_dispatch(iterator __i1, iterator __i2, _InputIterator __k1,
14468 _InputIterator __k2, __false_type);
14471 _M_replace_aux(size_type __pos1, size_type __n1, size_type __n2,
14475 _M_replace_safe(size_type __pos1, size_type __n1, const _CharT* __s,
14480 template<class _InIterator>
14482 _S_construct_aux(_InIterator __beg, _InIterator __end,
14483 const _Alloc& __a, __false_type)
14485 typedef typename iterator_traits<_InIterator>::iterator_category _Tag;
14486 return _S_construct(__beg, __end, __a, _Tag());
14489 template<class _InIterator>
14491 _S_construct_aux(_InIterator __beg, _InIterator __end,
14492 const _Alloc& __a, __true_type)
14493 { return _S_construct(static_cast<size_type>(__beg),
14494 static_cast<value_type>(__end), __a); }
14496 template<class _InIterator>
14498 _S_construct(_InIterator __beg, _InIterator __end, const _Alloc& __a)
14500 typedef typename std::__is_integer<_InIterator>::__type _Integral;
14501 return _S_construct_aux(__beg, __end, __a, _Integral());
14505 template<class _InIterator>
14507 _S_construct(_InIterator __beg, _InIterator __end, const _Alloc& __a,
14508 input_iterator_tag);
14512 template<class _FwdIterator>
14514 _S_construct(_FwdIterator __beg, _FwdIterator __end, const _Alloc& __a,
14515 forward_iterator_tag);
14518 _S_construct(size_type __req, _CharT __c, const _Alloc& __a);
14521 # 1501 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/basic_string.h" 3
14523 copy(_CharT* __s, size_type __n, size_type __pos = 0) const;
14524 # 1511 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/basic_string.h" 3
14526 swap(basic_string& __s);
14527 # 1521 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/basic_string.h" 3
14530 { return _M_data(); }
14540 { return _M_data(); }
14546 get_allocator() const
14547 { return _M_dataplus; }
14548 # 1553 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/basic_string.h" 3
14550 find(const _CharT* __s, size_type __pos, size_type __n) const;
14551 # 1566 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/basic_string.h" 3
14553 find(const basic_string& __str, size_type __pos = 0) const
14554 { return this->find(__str.data(), __pos, __str.size()); }
14555 # 1580 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/basic_string.h" 3
14557 find(const _CharT* __s, size_type __pos = 0) const
14560 return this->find(__s, __pos, traits_type::length(__s));
14562 # 1597 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/basic_string.h" 3
14564 find(_CharT __c, size_type __pos = 0) const;
14565 # 1610 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/basic_string.h" 3
14567 rfind(const basic_string& __str, size_type __pos = npos) const
14568 { return this->rfind(__str.data(), __pos, __str.size()); }
14569 # 1625 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/basic_string.h" 3
14571 rfind(const _CharT* __s, size_type __pos, size_type __n) const;
14572 # 1638 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/basic_string.h" 3
14574 rfind(const _CharT* __s, size_type __pos = npos) const
14577 return this->rfind(__s, __pos, traits_type::length(__s));
14579 # 1655 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/basic_string.h" 3
14581 rfind(_CharT __c, size_type __pos = npos) const;
14582 # 1668 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/basic_string.h" 3
14584 find_first_of(const basic_string& __str, size_type __pos = 0) const
14585 { return this->find_first_of(__str.data(), __pos, __str.size()); }
14586 # 1683 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/basic_string.h" 3
14588 find_first_of(const _CharT* __s, size_type __pos, size_type __n) const;
14589 # 1696 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/basic_string.h" 3
14591 find_first_of(const _CharT* __s, size_type __pos = 0) const
14594 return this->find_first_of(__s, __pos, traits_type::length(__s));
14596 # 1715 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/basic_string.h" 3
14598 find_first_of(_CharT __c, size_type __pos = 0) const
14599 { return this->find(__c, __pos); }
14600 # 1729 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/basic_string.h" 3
14602 find_last_of(const basic_string& __str, size_type __pos = npos) const
14603 { return this->find_last_of(__str.data(), __pos, __str.size()); }
14604 # 1744 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/basic_string.h" 3
14606 find_last_of(const _CharT* __s, size_type __pos, size_type __n) const;
14607 # 1757 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/basic_string.h" 3
14609 find_last_of(const _CharT* __s, size_type __pos = npos) const
14612 return this->find_last_of(__s, __pos, traits_type::length(__s));
14614 # 1776 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/basic_string.h" 3
14616 find_last_of(_CharT __c, size_type __pos = npos) const
14617 { return this->rfind(__c, __pos); }
14618 # 1790 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/basic_string.h" 3
14620 find_first_not_of(const basic_string& __str, size_type __pos = 0) const
14621 { return this->find_first_not_of(__str.data(), __pos, __str.size()); }
14622 # 1805 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/basic_string.h" 3
14624 find_first_not_of(const _CharT* __s, size_type __pos,
14625 size_type __n) const;
14626 # 1819 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/basic_string.h" 3
14628 find_first_not_of(const _CharT* __s, size_type __pos = 0) const
14631 return this->find_first_not_of(__s, __pos, traits_type::length(__s));
14633 # 1836 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/basic_string.h" 3
14635 find_first_not_of(_CharT __c, size_type __pos = 0) const;
14636 # 1849 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/basic_string.h" 3
14638 find_last_not_of(const basic_string& __str, size_type __pos = npos) const
14639 { return this->find_last_not_of(__str.data(), __pos, __str.size()); }
14640 # 1865 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/basic_string.h" 3
14642 find_last_not_of(const _CharT* __s, size_type __pos,
14643 size_type __n) const;
14644 # 1878 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/basic_string.h" 3
14646 find_last_not_of(const _CharT* __s, size_type __pos = npos) const
14649 return this->find_last_not_of(__s, __pos, traits_type::length(__s));
14651 # 1895 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/basic_string.h" 3
14653 find_last_not_of(_CharT __c, size_type __pos = npos) const;
14654 # 1910 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/basic_string.h" 3
14656 substr(size_type __pos = 0, size_type __n = npos) const
14657 { return basic_string(*this,
14658 _M_check(__pos, "basic_string::substr"), __n); }
14659 # 1928 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/basic_string.h" 3
14661 compare(const basic_string& __str) const
14663 const size_type __size = this->size();
14664 const size_type __osize = __str.size();
14665 const size_type __len = std::min(__size, __osize);
14667 int __r = traits_type::compare(_M_data(), __str.data(), __len);
14669 __r = __size - __osize;
14672 # 1958 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/basic_string.h" 3
14674 compare(size_type __pos, size_type __n, const basic_string& __str) const;
14675 # 1982 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/basic_string.h" 3
14677 compare(size_type __pos1, size_type __n1, const basic_string& __str,
14678 size_type __pos2, size_type __n2) const;
14679 # 2000 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/basic_string.h" 3
14681 compare(const _CharT* __s) const;
14682 # 2023 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/basic_string.h" 3
14684 compare(size_type __pos, size_type __n1, const _CharT* __s) const;
14685 # 2048 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/basic_string.h" 3
14687 compare(size_type __pos, size_type __n1, const _CharT* __s,
14688 size_type __n2) const;
14691 template<typename _CharT, typename _Traits, typename _Alloc>
14692 inline basic_string<_CharT, _Traits, _Alloc>::
14695 : _M_dataplus(_S_empty_rep()._M_refdata(), _Alloc()) { }
14696 # 2069 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/basic_string.h" 3
14697 template<typename _CharT, typename _Traits, typename _Alloc>
14698 basic_string<_CharT, _Traits, _Alloc>
14699 operator+(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
14700 const basic_string<_CharT, _Traits, _Alloc>& __rhs)
14702 basic_string<_CharT, _Traits, _Alloc> __str(__lhs);
14703 __str.append(__rhs);
14713 template<typename _CharT, typename _Traits, typename _Alloc>
14714 basic_string<_CharT,_Traits,_Alloc>
14715 operator+(const _CharT* __lhs,
14716 const basic_string<_CharT,_Traits,_Alloc>& __rhs);
14724 template<typename _CharT, typename _Traits, typename _Alloc>
14725 basic_string<_CharT,_Traits,_Alloc>
14726 operator+(_CharT __lhs, const basic_string<_CharT,_Traits,_Alloc>& __rhs);
14734 template<typename _CharT, typename _Traits, typename _Alloc>
14735 inline basic_string<_CharT, _Traits, _Alloc>
14736 operator+(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
14737 const _CharT* __rhs)
14739 basic_string<_CharT, _Traits, _Alloc> __str(__lhs);
14740 __str.append(__rhs);
14750 template<typename _CharT, typename _Traits, typename _Alloc>
14751 inline basic_string<_CharT, _Traits, _Alloc>
14752 operator+(const basic_string<_CharT, _Traits, _Alloc>& __lhs, _CharT __rhs)
14754 typedef basic_string<_CharT, _Traits, _Alloc> __string_type;
14755 typedef typename __string_type::size_type __size_type;
14756 __string_type __str(__lhs);
14757 __str.append(__size_type(1), __rhs);
14760 # 2140 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/basic_string.h" 3
14761 template<typename _CharT, typename _Traits, typename _Alloc>
14763 operator==(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
14764 const basic_string<_CharT, _Traits, _Alloc>& __rhs)
14765 { return __lhs.compare(__rhs) == 0; }
14773 template<typename _CharT, typename _Traits, typename _Alloc>
14775 operator==(const _CharT* __lhs,
14776 const basic_string<_CharT, _Traits, _Alloc>& __rhs)
14777 { return __rhs.compare(__lhs) == 0; }
14785 template<typename _CharT, typename _Traits, typename _Alloc>
14787 operator==(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
14788 const _CharT* __rhs)
14789 { return __lhs.compare(__rhs) == 0; }
14790 # 2177 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/basic_string.h" 3
14791 template<typename _CharT, typename _Traits, typename _Alloc>
14793 operator!=(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
14794 const basic_string<_CharT, _Traits, _Alloc>& __rhs)
14795 { return __rhs.compare(__lhs) != 0; }
14803 template<typename _CharT, typename _Traits, typename _Alloc>
14805 operator!=(const _CharT* __lhs,
14806 const basic_string<_CharT, _Traits, _Alloc>& __rhs)
14807 { return __rhs.compare(__lhs) != 0; }
14815 template<typename _CharT, typename _Traits, typename _Alloc>
14817 operator!=(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
14818 const _CharT* __rhs)
14819 { return __lhs.compare(__rhs) != 0; }
14820 # 2214 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/basic_string.h" 3
14821 template<typename _CharT, typename _Traits, typename _Alloc>
14823 operator<(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
14824 const basic_string<_CharT, _Traits, _Alloc>& __rhs)
14825 { return __lhs.compare(__rhs) < 0; }
14833 template<typename _CharT, typename _Traits, typename _Alloc>
14835 operator<(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
14836 const _CharT* __rhs)
14837 { return __lhs.compare(__rhs) < 0; }
14845 template<typename _CharT, typename _Traits, typename _Alloc>
14847 operator<(const _CharT* __lhs,
14848 const basic_string<_CharT, _Traits, _Alloc>& __rhs)
14849 { return __rhs.compare(__lhs) > 0; }
14850 # 2251 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/basic_string.h" 3
14851 template<typename _CharT, typename _Traits, typename _Alloc>
14853 operator>(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
14854 const basic_string<_CharT, _Traits, _Alloc>& __rhs)
14855 { return __lhs.compare(__rhs) > 0; }
14863 template<typename _CharT, typename _Traits, typename _Alloc>
14865 operator>(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
14866 const _CharT* __rhs)
14867 { return __lhs.compare(__rhs) > 0; }
14875 template<typename _CharT, typename _Traits, typename _Alloc>
14877 operator>(const _CharT* __lhs,
14878 const basic_string<_CharT, _Traits, _Alloc>& __rhs)
14879 { return __rhs.compare(__lhs) < 0; }
14880 # 2288 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/basic_string.h" 3
14881 template<typename _CharT, typename _Traits, typename _Alloc>
14883 operator<=(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
14884 const basic_string<_CharT, _Traits, _Alloc>& __rhs)
14885 { return __lhs.compare(__rhs) <= 0; }
14893 template<typename _CharT, typename _Traits, typename _Alloc>
14895 operator<=(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
14896 const _CharT* __rhs)
14897 { return __lhs.compare(__rhs) <= 0; }
14905 template<typename _CharT, typename _Traits, typename _Alloc>
14907 operator<=(const _CharT* __lhs,
14908 const basic_string<_CharT, _Traits, _Alloc>& __rhs)
14909 { return __rhs.compare(__lhs) >= 0; }
14910 # 2325 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/basic_string.h" 3
14911 template<typename _CharT, typename _Traits, typename _Alloc>
14913 operator>=(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
14914 const basic_string<_CharT, _Traits, _Alloc>& __rhs)
14915 { return __lhs.compare(__rhs) >= 0; }
14923 template<typename _CharT, typename _Traits, typename _Alloc>
14925 operator>=(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
14926 const _CharT* __rhs)
14927 { return __lhs.compare(__rhs) >= 0; }
14935 template<typename _CharT, typename _Traits, typename _Alloc>
14937 operator>=(const _CharT* __lhs,
14938 const basic_string<_CharT, _Traits, _Alloc>& __rhs)
14939 { return __rhs.compare(__lhs) <= 0; }
14940 # 2362 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/basic_string.h" 3
14941 template<typename _CharT, typename _Traits, typename _Alloc>
14943 swap(basic_string<_CharT, _Traits, _Alloc>& __lhs,
14944 basic_string<_CharT, _Traits, _Alloc>& __rhs)
14945 { __lhs.swap(__rhs); }
14946 # 2379 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/basic_string.h" 3
14947 template<typename _CharT, typename _Traits, typename _Alloc>
14948 basic_istream<_CharT, _Traits>&
14949 operator>>(basic_istream<_CharT, _Traits>& __is,
14950 basic_string<_CharT, _Traits, _Alloc>& __str);
14953 basic_istream<char>&
14954 operator>>(basic_istream<char>& __is, basic_string<char>& __str);
14955 # 2397 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/basic_string.h" 3
14956 template<typename _CharT, typename _Traits, typename _Alloc>
14957 inline basic_ostream<_CharT, _Traits>&
14958 operator<<(basic_ostream<_CharT, _Traits>& __os,
14959 const basic_string<_CharT, _Traits, _Alloc>& __str)
14963 return __ostream_insert(__os, __str.data(), __str.size());
14965 # 2420 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/basic_string.h" 3
14966 template<typename _CharT, typename _Traits, typename _Alloc>
14967 basic_istream<_CharT, _Traits>&
14968 getline(basic_istream<_CharT, _Traits>& __is,
14969 basic_string<_CharT, _Traits, _Alloc>& __str, _CharT __delim);
14970 # 2437 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/basic_string.h" 3
14971 template<typename _CharT, typename _Traits, typename _Alloc>
14972 inline basic_istream<_CharT, _Traits>&
14973 getline(basic_istream<_CharT, _Traits>& __is,
14974 basic_string<_CharT, _Traits, _Alloc>& __str)
14975 { return getline(__is, __str, __is.widen('\n')); }
14978 basic_istream<char>&
14979 getline(basic_istream<char>& __in, basic_string<char>& __str,
14984 basic_istream<wchar_t>&
14985 getline(basic_istream<wchar_t>& __in, basic_string<wchar_t>& __str,
14990 # 55 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/string" 2 3
14993 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/algorithm" 1 3
14994 # 63 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/algorithm" 3
14996 # 64 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/algorithm" 3
15001 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_algo.h" 1 3
15002 # 65 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_algo.h" 3
15003 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_heap.h" 1 3
15004 # 65 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_heap.h" 3
15005 namespace std __attribute__ ((__visibility__ ("default"))) {
15010 template<typename _RandomAccessIterator, typename _Distance>
15012 __is_heap(_RandomAccessIterator __first, _Distance __n)
15014 _Distance __parent = 0;
15015 for (_Distance __child = 1; __child < __n; ++__child)
15017 if (__first[__parent] < __first[__child])
15019 if ((__child & 1) == 0)
15025 template<typename _RandomAccessIterator, typename _Distance,
15026 typename _StrictWeakOrdering>
15028 __is_heap(_RandomAccessIterator __first, _StrictWeakOrdering __comp,
15031 _Distance __parent = 0;
15032 for (_Distance __child = 1; __child < __n; ++__child)
15034 if (__comp(__first[__parent], __first[__child]))
15036 if ((__child & 1) == 0)
15042 template<typename _RandomAccessIterator>
15044 __is_heap(_RandomAccessIterator __first, _RandomAccessIterator __last)
15045 { return std::__is_heap(__first, std::distance(__first, __last)); }
15047 template<typename _RandomAccessIterator, typename _StrictWeakOrdering>
15049 __is_heap(_RandomAccessIterator __first, _RandomAccessIterator __last,
15050 _StrictWeakOrdering __comp)
15051 { return std::__is_heap(__first, __comp, std::distance(__first, __last)); }
15055 template<typename _RandomAccessIterator, typename _Distance, typename _Tp>
15057 __push_heap(_RandomAccessIterator __first,
15058 _Distance __holeIndex, _Distance __topIndex, _Tp __value)
15060 _Distance __parent = (__holeIndex - 1) / 2;
15061 while (__holeIndex > __topIndex && *(__first + __parent) < __value)
15063 *(__first + __holeIndex) = *(__first + __parent);
15064 __holeIndex = __parent;
15065 __parent = (__holeIndex - 1) / 2;
15067 *(__first + __holeIndex) = __value;
15069 # 139 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_heap.h" 3
15070 template<typename _RandomAccessIterator>
15072 push_heap(_RandomAccessIterator __first, _RandomAccessIterator __last)
15074 typedef typename iterator_traits<_RandomAccessIterator>::value_type
15076 typedef typename iterator_traits<_RandomAccessIterator>::difference_type
15086 std::__push_heap(__first, _DistanceType((__last - __first) - 1),
15087 _DistanceType(0), _ValueType(*(__last - 1)));
15090 template<typename _RandomAccessIterator, typename _Distance, typename _Tp,
15093 __push_heap(_RandomAccessIterator __first, _Distance __holeIndex,
15094 _Distance __topIndex, _Tp __value, _Compare __comp)
15096 _Distance __parent = (__holeIndex - 1) / 2;
15097 while (__holeIndex > __topIndex
15098 && __comp(*(__first + __parent), __value))
15100 *(__first + __holeIndex) = *(__first + __parent);
15101 __holeIndex = __parent;
15102 __parent = (__holeIndex - 1) / 2;
15104 *(__first + __holeIndex) = __value;
15106 # 187 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_heap.h" 3
15107 template<typename _RandomAccessIterator, typename _Compare>
15109 push_heap(_RandomAccessIterator __first, _RandomAccessIterator __last,
15112 typedef typename iterator_traits<_RandomAccessIterator>::value_type
15114 typedef typename iterator_traits<_RandomAccessIterator>::difference_type
15123 std::__push_heap(__first, _DistanceType((__last - __first) - 1),
15124 _DistanceType(0), _ValueType(*(__last - 1)), __comp);
15127 template<typename _RandomAccessIterator, typename _Distance, typename _Tp>
15129 __adjust_heap(_RandomAccessIterator __first, _Distance __holeIndex,
15130 _Distance __len, _Tp __value)
15132 const _Distance __topIndex = __holeIndex;
15133 _Distance __secondChild = 2 * __holeIndex + 2;
15134 while (__secondChild < __len)
15136 if (*(__first + __secondChild) < *(__first + (__secondChild - 1)))
15138 *(__first + __holeIndex) = *(__first + __secondChild);
15139 __holeIndex = __secondChild;
15140 __secondChild = 2 * (__secondChild + 1);
15142 if (__secondChild == __len)
15144 *(__first + __holeIndex) = *(__first + (__secondChild - 1));
15145 __holeIndex = __secondChild - 1;
15147 std::__push_heap(__first, __holeIndex, __topIndex, __value);
15150 template<typename _RandomAccessIterator, typename _Tp>
15152 __pop_heap(_RandomAccessIterator __first, _RandomAccessIterator __last,
15153 _RandomAccessIterator __result, _Tp __value)
15155 typedef typename iterator_traits<_RandomAccessIterator>::difference_type
15157 *__result = *__first;
15158 std::__adjust_heap(__first, _Distance(0), _Distance(__last - __first),
15161 # 251 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_heap.h" 3
15162 template<typename _RandomAccessIterator>
15164 pop_heap(_RandomAccessIterator __first, _RandomAccessIterator __last)
15166 typedef typename iterator_traits<_RandomAccessIterator>::value_type
15176 std::__pop_heap(__first, __last - 1, __last - 1,
15177 _ValueType(*(__last - 1)));
15180 template<typename _RandomAccessIterator, typename _Distance,
15181 typename _Tp, typename _Compare>
15183 __adjust_heap(_RandomAccessIterator __first, _Distance __holeIndex,
15184 _Distance __len, _Tp __value, _Compare __comp)
15186 const _Distance __topIndex = __holeIndex;
15187 _Distance __secondChild = 2 * __holeIndex + 2;
15188 while (__secondChild < __len)
15190 if (__comp(*(__first + __secondChild),
15191 *(__first + (__secondChild - 1))))
15193 *(__first + __holeIndex) = *(__first + __secondChild);
15194 __holeIndex = __secondChild;
15195 __secondChild = 2 * (__secondChild + 1);
15197 if (__secondChild == __len)
15199 *(__first + __holeIndex) = *(__first + (__secondChild - 1));
15200 __holeIndex = __secondChild - 1;
15202 std::__push_heap(__first, __holeIndex, __topIndex, __value, __comp);
15205 template<typename _RandomAccessIterator, typename _Tp, typename _Compare>
15207 __pop_heap(_RandomAccessIterator __first, _RandomAccessIterator __last,
15208 _RandomAccessIterator __result, _Tp __value, _Compare __comp)
15210 typedef typename iterator_traits<_RandomAccessIterator>::difference_type
15212 *__result = *__first;
15213 std::__adjust_heap(__first, _Distance(0), _Distance(__last - __first),
15216 # 317 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_heap.h" 3
15217 template<typename _RandomAccessIterator, typename _Compare>
15219 pop_heap(_RandomAccessIterator __first,
15220 _RandomAccessIterator __last, _Compare __comp)
15228 typedef typename iterator_traits<_RandomAccessIterator>::value_type
15230 std::__pop_heap(__first, __last - 1, __last - 1,
15231 _ValueType(*(__last - 1)), __comp);
15233 # 342 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_heap.h" 3
15234 template<typename _RandomAccessIterator>
15236 make_heap(_RandomAccessIterator __first, _RandomAccessIterator __last)
15238 typedef typename iterator_traits<_RandomAccessIterator>::value_type
15240 typedef typename iterator_traits<_RandomAccessIterator>::difference_type
15249 if (__last - __first < 2)
15252 const _DistanceType __len = __last - __first;
15253 _DistanceType __parent = (__len - 2) / 2;
15256 std::__adjust_heap(__first, __parent, __len,
15257 _ValueType(*(__first + __parent)));
15263 # 382 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_heap.h" 3
15264 template<typename _RandomAccessIterator, typename _Compare>
15266 make_heap(_RandomAccessIterator __first, _RandomAccessIterator __last,
15269 typedef typename iterator_traits<_RandomAccessIterator>::value_type
15271 typedef typename iterator_traits<_RandomAccessIterator>::difference_type
15279 if (__last - __first < 2)
15282 const _DistanceType __len = __last - __first;
15283 _DistanceType __parent = (__len - 2) / 2;
15286 std::__adjust_heap(__first, __parent, __len,
15287 _ValueType(*(__first + __parent)), __comp);
15293 # 420 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_heap.h" 3
15294 template<typename _RandomAccessIterator>
15296 sort_heap(_RandomAccessIterator __first, _RandomAccessIterator __last)
15306 while (__last - __first > 1)
15307 std::pop_heap(__first, _RandomAccessIterator(__last--));
15309 # 446 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_heap.h" 3
15310 template<typename _RandomAccessIterator, typename _Compare>
15312 sort_heap(_RandomAccessIterator __first, _RandomAccessIterator __last,
15321 while (__last - __first > 1)
15322 std::pop_heap(__first, _RandomAccessIterator(__last--), __comp);
15326 # 66 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_algo.h" 2 3
15327 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_tempbuf.h" 1 3
15328 # 67 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_tempbuf.h" 3
15329 namespace std __attribute__ ((__visibility__ ("default"))) {
15330 # 76 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_tempbuf.h" 3
15331 template<typename _ForwardIterator, typename _Tp>
15332 class _Temporary_buffer
15338 typedef _Tp value_type;
15339 typedef value_type* pointer;
15340 typedef pointer iterator;
15341 typedef ptrdiff_t size_type;
15344 size_type _M_original_len;
15349 _M_initialize_buffer(const _Tp&, __true_type) { }
15352 _M_initialize_buffer(const _Tp& __val, __false_type)
15353 { std::uninitialized_fill_n(_M_buffer, _M_len, __val); }
15363 requested_size() const
15364 { return _M_original_len; }
15369 { return _M_buffer; }
15374 { return _M_buffer + _M_len; }
15380 _Temporary_buffer(_ForwardIterator __first, _ForwardIterator __last);
15382 ~_Temporary_buffer()
15384 std::_Destroy(_M_buffer, _M_buffer + _M_len);
15385 std::return_temporary_buffer(_M_buffer);
15390 _Temporary_buffer(const _Temporary_buffer&);
15393 operator=(const _Temporary_buffer&);
15397 template<typename _ForwardIterator, typename _Tp>
15398 _Temporary_buffer<_ForwardIterator, _Tp>::
15399 _Temporary_buffer(_ForwardIterator __first, _ForwardIterator __last)
15400 : _M_original_len(std::distance(__first, __last)),
15401 _M_len(0), _M_buffer(0)
15404 typedef typename std::__is_scalar<_Tp>::__type _Trivial;
15408 pair<pointer, size_type> __p(get_temporary_buffer<
15409 value_type>(_M_original_len));
15410 _M_buffer = __p.first;
15411 _M_len = __p.second;
15413 _M_initialize_buffer(*__first, _Trivial());
15417 std::return_temporary_buffer(_M_buffer);
15425 # 67 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_algo.h" 2 3
15430 namespace std __attribute__ ((__visibility__ ("default"))) {
15431 # 85 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_algo.h" 3
15432 template<typename _Tp>
15434 __median(const _Tp& __a, const _Tp& __b, const _Tp& __c)
15441 else if (__a < __c)
15445 else if (__a < __c)
15447 else if (__b < __c)
15452 # 119 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_algo.h" 3
15453 template<typename _Tp, typename _Compare>
15455 __median(const _Tp& __a, const _Tp& __b, const _Tp& __c, _Compare __comp)
15459 if (__comp(__a, __b))
15460 if (__comp(__b, __c))
15462 else if (__comp(__a, __c))
15466 else if (__comp(__a, __c))
15468 else if (__comp(__b, __c))
15473 # 151 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_algo.h" 3
15474 template<typename _InputIterator, typename _Function>
15476 for_each(_InputIterator __first, _InputIterator __last, _Function __f)
15481 for ( ; __first != __last; ++__first)
15491 template<typename _InputIterator, typename _Tp>
15492 inline _InputIterator
15493 __find(_InputIterator __first, _InputIterator __last,
15494 const _Tp& __val, input_iterator_tag)
15496 while (__first != __last && !(*__first == __val))
15506 template<typename _InputIterator, typename _Predicate>
15507 inline _InputIterator
15508 __find_if(_InputIterator __first, _InputIterator __last,
15509 _Predicate __pred, input_iterator_tag)
15511 while (__first != __last && !__pred(*__first))
15521 template<typename _RandomAccessIterator, typename _Tp>
15522 _RandomAccessIterator
15523 __find(_RandomAccessIterator __first, _RandomAccessIterator __last,
15524 const _Tp& __val, random_access_iterator_tag)
15526 typename iterator_traits<_RandomAccessIterator>::difference_type
15527 __trip_count = (__last - __first) >> 2;
15529 for ( ; __trip_count > 0 ; --__trip_count)
15531 if (*__first == __val)
15535 if (*__first == __val)
15539 if (*__first == __val)
15543 if (*__first == __val)
15548 switch (__last - __first)
15551 if (*__first == __val)
15555 if (*__first == __val)
15559 if (*__first == __val)
15573 template<typename _RandomAccessIterator, typename _Predicate>
15574 _RandomAccessIterator
15575 __find_if(_RandomAccessIterator __first, _RandomAccessIterator __last,
15576 _Predicate __pred, random_access_iterator_tag)
15578 typename iterator_traits<_RandomAccessIterator>::difference_type
15579 __trip_count = (__last - __first) >> 2;
15581 for ( ; __trip_count > 0 ; --__trip_count)
15583 if (__pred(*__first))
15587 if (__pred(*__first))
15591 if (__pred(*__first))
15595 if (__pred(*__first))
15600 switch (__last - __first)
15603 if (__pred(*__first))
15607 if (__pred(*__first))
15611 if (__pred(*__first))
15625 template<typename _CharT>
15626 typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value,
15627 istreambuf_iterator<_CharT> >::__type
15628 find(istreambuf_iterator<_CharT>, istreambuf_iterator<_CharT>,
15630 # 316 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_algo.h" 3
15631 template<typename _InputIterator, typename _Tp>
15632 inline _InputIterator
15633 find(_InputIterator __first, _InputIterator __last,
15641 return std::__find(__first, __last, __val,
15642 std::__iterator_category(__first));
15644 # 338 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_algo.h" 3
15645 template<typename _InputIterator, typename _Predicate>
15646 inline _InputIterator
15647 find_if(_InputIterator __first, _InputIterator __last,
15655 return std::__find_if(__first, __last, __pred,
15656 std::__iterator_category(__first));
15658 # 360 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_algo.h" 3
15659 template<typename _ForwardIterator>
15661 adjacent_find(_ForwardIterator __first, _ForwardIterator __last)
15668 if (__first == __last)
15670 _ForwardIterator __next = __first;
15671 while(++__next != __last)
15673 if (*__first == *__next)
15679 # 391 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_algo.h" 3
15680 template<typename _ForwardIterator, typename _BinaryPredicate>
15682 adjacent_find(_ForwardIterator __first, _ForwardIterator __last,
15683 _BinaryPredicate __binary_pred)
15691 if (__first == __last)
15693 _ForwardIterator __next = __first;
15694 while(++__next != __last)
15696 if (__binary_pred(*__first, *__next))
15702 # 422 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_algo.h" 3
15703 template<typename _InputIterator, typename _Tp>
15704 typename iterator_traits<_InputIterator>::difference_type
15705 count(_InputIterator __first, _InputIterator __last, const _Tp& __value)
15712 typename iterator_traits<_InputIterator>::difference_type __n = 0;
15713 for ( ; __first != __last; ++__first)
15714 if (*__first == __value)
15718 # 446 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_algo.h" 3
15719 template<typename _InputIterator, typename _Predicate>
15720 typename iterator_traits<_InputIterator>::difference_type
15721 count_if(_InputIterator __first, _InputIterator __last, _Predicate __pred)
15728 typename iterator_traits<_InputIterator>::difference_type __n = 0;
15729 for ( ; __first != __last; ++__first)
15730 if (__pred(*__first))
15734 # 485 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_algo.h" 3
15735 template<typename _ForwardIterator1, typename _ForwardIterator2>
15737 search(_ForwardIterator1 __first1, _ForwardIterator1 __last1,
15738 _ForwardIterator2 __first2, _ForwardIterator2 __last2)
15749 if (__first1 == __last1 || __first2 == __last2)
15753 _ForwardIterator2 __tmp(__first2);
15755 if (__tmp == __last2)
15756 return std::find(__first1, __last1, *__first2);
15759 _ForwardIterator2 __p1, __p;
15760 __p1 = __first2; ++__p1;
15761 _ForwardIterator1 __current = __first1;
15763 while (__first1 != __last1)
15765 __first1 = std::find(__first1, __last1, *__first2);
15766 if (__first1 == __last1)
15770 __current = __first1;
15771 if (++__current == __last1)
15774 while (*__current == *__p)
15776 if (++__p == __last2)
15778 if (++__current == __last1)
15785 # 556 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_algo.h" 3
15786 template<typename _ForwardIterator1, typename _ForwardIterator2,
15787 typename _BinaryPredicate>
15789 search(_ForwardIterator1 __first1, _ForwardIterator1 __last1,
15790 _ForwardIterator2 __first2, _ForwardIterator2 __last2,
15791 _BinaryPredicate __predicate)
15803 if (__first1 == __last1 || __first2 == __last2)
15807 _ForwardIterator2 __tmp(__first2);
15809 if (__tmp == __last2)
15811 while (__first1 != __last1 && !__predicate(*__first1, *__first2))
15817 _ForwardIterator2 __p1, __p;
15818 __p1 = __first2; ++__p1;
15819 _ForwardIterator1 __current = __first1;
15821 while (__first1 != __last1)
15823 while (__first1 != __last1)
15825 if (__predicate(*__first1, *__first2))
15829 while (__first1 != __last1 && !__predicate(*__first1, *__first2))
15831 if (__first1 == __last1)
15835 __current = __first1;
15836 if (++__current == __last1)
15839 while (__predicate(*__current, *__p))
15841 if (++__p == __last2)
15843 if (++__current == __last1)
15850 # 628 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_algo.h" 3
15851 template<typename _ForwardIterator, typename _Integer, typename _Tp>
15853 __search_n(_ForwardIterator __first, _ForwardIterator __last,
15854 _Integer __count, const _Tp& __val,
15855 std::forward_iterator_tag)
15857 __first = std::find(__first, __last, __val);
15858 while (__first != __last)
15860 typename iterator_traits<_ForwardIterator>::difference_type
15862 _ForwardIterator __i = __first;
15864 while (__i != __last && __n != 1 && *__i == __val)
15873 __first = std::find(++__i, __last, __val);
15877 # 662 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_algo.h" 3
15878 template<typename _RandomAccessIter, typename _Integer, typename _Tp>
15880 __search_n(_RandomAccessIter __first, _RandomAccessIter __last,
15881 _Integer __count, const _Tp& __val,
15882 std::random_access_iterator_tag)
15885 typedef typename std::iterator_traits<_RandomAccessIter>::difference_type
15888 _DistanceType __tailSize = __last - __first;
15889 const _DistanceType __pattSize = __count;
15891 if (__tailSize < __pattSize)
15894 const _DistanceType __skipOffset = __pattSize - 1;
15895 _RandomAccessIter __lookAhead = __first + __skipOffset;
15896 __tailSize -= __pattSize;
15902 while (!(*__lookAhead == __val))
15904 if (__tailSize < __pattSize)
15906 __lookAhead += __pattSize;
15907 __tailSize -= __pattSize;
15909 _DistanceType __remainder = __skipOffset;
15910 for (_RandomAccessIter __backTrack = __lookAhead - 1;
15911 *__backTrack == __val; --__backTrack)
15913 if (--__remainder == 0)
15914 return (__lookAhead - __skipOffset);
15916 if (__remainder > __tailSize)
15918 __lookAhead += __remainder;
15919 __tailSize -= __remainder;
15922 # 720 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_algo.h" 3
15923 template<typename _ForwardIterator, typename _Integer, typename _Tp>
15925 search_n(_ForwardIterator __first, _ForwardIterator __last,
15926 _Integer __count, const _Tp& __val)
15937 return std::find(__first, __last, __val);
15938 return std::__search_n(__first, __last, __count, __val,
15939 std::__iterator_category(__first));
15941 # 747 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_algo.h" 3
15942 template<typename _ForwardIterator, typename _Integer, typename _Tp,
15943 typename _BinaryPredicate>
15945 __search_n(_ForwardIterator __first, _ForwardIterator __last,
15946 _Integer __count, const _Tp& __val,
15947 _BinaryPredicate __binary_pred, std::forward_iterator_tag)
15949 while (__first != __last && !__binary_pred(*__first, __val))
15952 while (__first != __last)
15954 typename iterator_traits<_ForwardIterator>::difference_type
15956 _ForwardIterator __i = __first;
15958 while (__i != __last && __n != 1 && __binary_pred(*__i, __val))
15968 while (__first != __last && !__binary_pred(*__first, __val))
15973 # 787 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_algo.h" 3
15974 template<typename _RandomAccessIter, typename _Integer, typename _Tp,
15975 typename _BinaryPredicate>
15977 __search_n(_RandomAccessIter __first, _RandomAccessIter __last,
15978 _Integer __count, const _Tp& __val,
15979 _BinaryPredicate __binary_pred, std::random_access_iterator_tag)
15982 typedef typename std::iterator_traits<_RandomAccessIter>::difference_type
15985 _DistanceType __tailSize = __last - __first;
15986 const _DistanceType __pattSize = __count;
15988 if (__tailSize < __pattSize)
15991 const _DistanceType __skipOffset = __pattSize - 1;
15992 _RandomAccessIter __lookAhead = __first + __skipOffset;
15993 __tailSize -= __pattSize;
15999 while (!__binary_pred(*__lookAhead, __val))
16001 if (__tailSize < __pattSize)
16003 __lookAhead += __pattSize;
16004 __tailSize -= __pattSize;
16006 _DistanceType __remainder = __skipOffset;
16007 for (_RandomAccessIter __backTrack = __lookAhead - 1;
16008 __binary_pred(*__backTrack, __val); --__backTrack)
16010 if (--__remainder == 0)
16011 return (__lookAhead - __skipOffset);
16013 if (__remainder > __tailSize)
16015 __lookAhead += __remainder;
16016 __tailSize -= __remainder;
16019 # 848 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_algo.h" 3
16020 template<typename _ForwardIterator, typename _Integer, typename _Tp,
16021 typename _BinaryPredicate>
16023 search_n(_ForwardIterator __first, _ForwardIterator __last,
16024 _Integer __count, const _Tp& __val,
16025 _BinaryPredicate __binary_pred)
16037 while (__first != __last && !__binary_pred(*__first, __val))
16041 return std::__search_n(__first, __last, __count, __val, __binary_pred,
16042 std::__iterator_category(__first));
16044 # 884 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_algo.h" 3
16045 template<typename _ForwardIterator1, typename _ForwardIterator2>
16047 swap_ranges(_ForwardIterator1 __first1, _ForwardIterator1 __last1,
16048 _ForwardIterator2 __first2)
16063 for ( ; __first1 != __last1; ++__first1, ++__first2)
16064 std::iter_swap(__first1, __first2);
16067 # 922 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_algo.h" 3
16068 template<typename _InputIterator, typename _OutputIterator,
16069 typename _UnaryOperation>
16071 transform(_InputIterator __first, _InputIterator __last,
16072 _OutputIterator __result, _UnaryOperation __unary_op)
16081 for ( ; __first != __last; ++__first, ++__result)
16082 *__result = __unary_op(*__first);
16085 # 957 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_algo.h" 3
16086 template<typename _InputIterator1, typename _InputIterator2,
16087 typename _OutputIterator, typename _BinaryOperation>
16089 transform(_InputIterator1 __first1, _InputIterator1 __last1,
16090 _InputIterator2 __first2, _OutputIterator __result,
16091 _BinaryOperation __binary_op)
16101 for ( ; __first1 != __last1; ++__first1, ++__first2, ++__result)
16102 *__result = __binary_op(*__first1, *__first2);
16105 # 989 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_algo.h" 3
16106 template<typename _ForwardIterator, typename _Tp>
16108 replace(_ForwardIterator __first, _ForwardIterator __last,
16109 const _Tp& __old_value, const _Tp& __new_value)
16120 for ( ; __first != __last; ++__first)
16121 if (*__first == __old_value)
16122 *__first = __new_value;
16124 # 1020 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_algo.h" 3
16125 template<typename _ForwardIterator, typename _Predicate, typename _Tp>
16127 replace_if(_ForwardIterator __first, _ForwardIterator __last,
16128 _Predicate __pred, const _Tp& __new_value)
16139 for ( ; __first != __last; ++__first)
16140 if (__pred(*__first))
16141 *__first = __new_value;
16143 # 1053 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_algo.h" 3
16144 template<typename _InputIterator, typename _OutputIterator, typename _Tp>
16146 replace_copy(_InputIterator __first, _InputIterator __last,
16147 _OutputIterator __result,
16148 const _Tp& __old_value, const _Tp& __new_value)
16158 for ( ; __first != __last; ++__first, ++__result)
16159 if (*__first == __old_value)
16160 *__result = __new_value;
16162 *__result = *__first;
16165 # 1089 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_algo.h" 3
16166 template<typename _InputIterator, typename _OutputIterator,
16167 typename _Predicate, typename _Tp>
16169 replace_copy_if(_InputIterator __first, _InputIterator __last,
16170 _OutputIterator __result,
16171 _Predicate __pred, const _Tp& __new_value)
16181 for ( ; __first != __last; ++__first, ++__result)
16182 if (__pred(*__first))
16183 *__result = __new_value;
16185 *__result = *__first;
16188 # 1123 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_algo.h" 3
16189 template<typename _ForwardIterator, typename _Generator>
16191 generate(_ForwardIterator __first, _ForwardIterator __last,
16200 for ( ; __first != __last; ++__first)
16201 *__first = __gen();
16203 # 1149 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_algo.h" 3
16204 template<typename _OutputIterator, typename _Size, typename _Generator>
16206 generate_n(_OutputIterator __first, _Size __n, _Generator __gen)
16213 for ( ; __n > 0; --__n, ++__first)
16214 *__first = __gen();
16217 # 1176 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_algo.h" 3
16218 template<typename _InputIterator, typename _OutputIterator, typename _Tp>
16220 remove_copy(_InputIterator __first, _InputIterator __last,
16221 _OutputIterator __result, const _Tp& __value)
16231 for ( ; __first != __last; ++__first)
16232 if (!(*__first == __value))
16234 *__result = *__first;
16239 # 1212 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_algo.h" 3
16240 template<typename _InputIterator, typename _OutputIterator,
16241 typename _Predicate>
16243 remove_copy_if(_InputIterator __first, _InputIterator __last,
16244 _OutputIterator __result, _Predicate __pred)
16254 for ( ; __first != __last; ++__first)
16255 if (!__pred(*__first))
16257 *__result = *__first;
16262 # 1251 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_algo.h" 3
16263 template<typename _ForwardIterator, typename _Tp>
16265 remove(_ForwardIterator __first, _ForwardIterator __last,
16266 const _Tp& __value)
16275 __first = std::find(__first, __last, __value);
16276 _ForwardIterator __i = __first;
16277 return __first == __last ? __first
16278 : std::remove_copy(++__i, __last,
16281 # 1286 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_algo.h" 3
16282 template<typename _ForwardIterator, typename _Predicate>
16284 remove_if(_ForwardIterator __first, _ForwardIterator __last,
16294 __first = std::find_if(__first, __last, __pred);
16295 _ForwardIterator __i = __first;
16296 return __first == __last ? __first
16297 : std::remove_copy_if(++__i, __last,
16300 # 1312 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_algo.h" 3
16301 template<typename _ForwardIterator, typename _OutputIterator>
16303 __unique_copy(_ForwardIterator __first, _ForwardIterator __last,
16304 _OutputIterator __result,
16305 forward_iterator_tag, output_iterator_tag)
16308 _ForwardIterator __next = __first;
16309 *__result = *__first;
16310 while (++__next != __last)
16311 if (!(*__first == *__next))
16314 *++__result = *__first;
16318 # 1337 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_algo.h" 3
16319 template<typename _InputIterator, typename _OutputIterator>
16321 __unique_copy(_InputIterator __first, _InputIterator __last,
16322 _OutputIterator __result,
16323 input_iterator_tag, output_iterator_tag)
16326 typename iterator_traits<_InputIterator>::value_type __value = *__first;
16327 *__result = __value;
16328 while (++__first != __last)
16329 if (!(__value == *__first))
16331 __value = *__first;
16332 *++__result = __value;
16336 # 1362 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_algo.h" 3
16337 template<typename _InputIterator, typename _ForwardIterator>
16339 __unique_copy(_InputIterator __first, _InputIterator __last,
16340 _ForwardIterator __result,
16341 input_iterator_tag, forward_iterator_tag)
16344 *__result = *__first;
16345 while (++__first != __last)
16346 if (!(*__result == *__first))
16347 *++__result = *__first;
16350 # 1384 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_algo.h" 3
16351 template<typename _ForwardIterator, typename _OutputIterator,
16352 typename _BinaryPredicate>
16354 __unique_copy(_ForwardIterator __first, _ForwardIterator __last,
16355 _OutputIterator __result, _BinaryPredicate __binary_pred,
16356 forward_iterator_tag, output_iterator_tag)
16363 _ForwardIterator __next = __first;
16364 *__result = *__first;
16365 while (++__next != __last)
16366 if (!__binary_pred(*__first, *__next))
16369 *++__result = *__first;
16373 # 1415 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_algo.h" 3
16374 template<typename _InputIterator, typename _OutputIterator,
16375 typename _BinaryPredicate>
16377 __unique_copy(_InputIterator __first, _InputIterator __last,
16378 _OutputIterator __result, _BinaryPredicate __binary_pred,
16379 input_iterator_tag, output_iterator_tag)
16386 typename iterator_traits<_InputIterator>::value_type __value = *__first;
16387 *__result = __value;
16388 while (++__first != __last)
16389 if (!__binary_pred(__value, *__first))
16391 __value = *__first;
16392 *++__result = __value;
16396 # 1446 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_algo.h" 3
16397 template<typename _InputIterator, typename _ForwardIterator,
16398 typename _BinaryPredicate>
16400 __unique_copy(_InputIterator __first, _InputIterator __last,
16401 _ForwardIterator __result, _BinaryPredicate __binary_pred,
16402 input_iterator_tag, forward_iterator_tag)
16409 *__result = *__first;
16410 while (++__first != __last)
16411 if (!__binary_pred(*__result, *__first))
16412 *++__result = *__first;
16415 # 1487 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_algo.h" 3
16416 template<typename _InputIterator, typename _OutputIterator>
16417 inline _OutputIterator
16418 unique_copy(_InputIterator __first, _InputIterator __last,
16419 _OutputIterator __result)
16429 if (__first == __last)
16431 return std::__unique_copy(__first, __last, __result,
16432 std::__iterator_category(__first),
16433 std::__iterator_category(__result));
16435 # 1527 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_algo.h" 3
16436 template<typename _InputIterator, typename _OutputIterator,
16437 typename _BinaryPredicate>
16438 inline _OutputIterator
16439 unique_copy(_InputIterator __first, _InputIterator __last,
16440 _OutputIterator __result,
16441 _BinaryPredicate __binary_pred)
16449 if (__first == __last)
16451 return std::__unique_copy(__first, __last, __result, __binary_pred,
16452 std::__iterator_category(__first),
16453 std::__iterator_category(__result));
16455 # 1560 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_algo.h" 3
16456 template<typename _ForwardIterator>
16458 unique(_ForwardIterator __first, _ForwardIterator __last)
16468 __first = std::adjacent_find(__first, __last);
16469 if (__first == __last)
16473 _ForwardIterator __dest = __first;
16475 while (++__first != __last)
16476 if (!(*__dest == *__first))
16477 *++__dest = *__first;
16480 # 1599 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_algo.h" 3
16481 template<typename _ForwardIterator, typename _BinaryPredicate>
16483 unique(_ForwardIterator __first, _ForwardIterator __last,
16484 _BinaryPredicate __binary_pred)
16495 __first = std::adjacent_find(__first, __last, __binary_pred);
16496 if (__first == __last)
16500 _ForwardIterator __dest = __first;
16502 while (++__first != __last)
16503 if (!__binary_pred(*__dest, *__first))
16504 *++__dest = *__first;
16507 # 1633 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_algo.h" 3
16508 template<typename _BidirectionalIterator>
16510 __reverse(_BidirectionalIterator __first, _BidirectionalIterator __last,
16511 bidirectional_iterator_tag)
16514 if (__first == __last || __first == --__last)
16518 std::iter_swap(__first, __last);
16522 # 1655 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_algo.h" 3
16523 template<typename _RandomAccessIterator>
16525 __reverse(_RandomAccessIterator __first, _RandomAccessIterator __last,
16526 random_access_iterator_tag)
16528 if (__first == __last)
16531 while (__first < __last)
16533 std::iter_swap(__first, __last);
16538 # 1682 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_algo.h" 3
16539 template<typename _BidirectionalIterator>
16541 reverse(_BidirectionalIterator __first, _BidirectionalIterator __last)
16547 std::__reverse(__first, __last, std::__iterator_category(__first));
16549 # 1708 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_algo.h" 3
16550 template<typename _BidirectionalIterator, typename _OutputIterator>
16552 reverse_copy(_BidirectionalIterator __first, _BidirectionalIterator __last,
16553 _OutputIterator __result)
16562 while (__first != __last)
16565 *__result = *__last;
16570 # 1736 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_algo.h" 3
16571 template<typename _EuclideanRingElement>
16572 _EuclideanRingElement
16573 __gcd(_EuclideanRingElement __m, _EuclideanRingElement __n)
16577 _EuclideanRingElement __t = __m % __n;
16589 template<typename _ForwardIterator>
16591 __rotate(_ForwardIterator __first,
16592 _ForwardIterator __middle,
16593 _ForwardIterator __last,
16594 forward_iterator_tag)
16596 if (__first == __middle || __last == __middle)
16599 _ForwardIterator __first2 = __middle;
16602 swap(*__first, *__first2);
16605 if (__first == __middle)
16606 __middle = __first2;
16608 while (__first2 != __last);
16610 __first2 = __middle;
16612 while (__first2 != __last)
16614 swap(*__first, *__first2);
16617 if (__first == __middle)
16618 __middle = __first2;
16619 else if (__first2 == __last)
16620 __first2 = __middle;
16629 template<typename _BidirectionalIterator>
16631 __rotate(_BidirectionalIterator __first,
16632 _BidirectionalIterator __middle,
16633 _BidirectionalIterator __last,
16634 bidirectional_iterator_tag)
16640 if (__first == __middle || __last == __middle)
16643 std::__reverse(__first, __middle, bidirectional_iterator_tag());
16644 std::__reverse(__middle, __last, bidirectional_iterator_tag());
16646 while (__first != __middle && __middle != __last)
16648 swap(*__first, *--__last);
16652 if (__first == __middle)
16653 std::__reverse(__middle, __last, bidirectional_iterator_tag());
16655 std::__reverse(__first, __middle, bidirectional_iterator_tag());
16663 template<typename _RandomAccessIterator>
16665 __rotate(_RandomAccessIterator __first,
16666 _RandomAccessIterator __middle,
16667 _RandomAccessIterator __last,
16668 random_access_iterator_tag)
16674 if (__first == __middle || __last == __middle)
16677 typedef typename iterator_traits<_RandomAccessIterator>::difference_type
16679 typedef typename iterator_traits<_RandomAccessIterator>::value_type
16682 const _Distance __n = __last - __first;
16683 const _Distance __k = __middle - __first;
16684 const _Distance __l = __n - __k;
16688 std::swap_ranges(__first, __middle, __middle);
16692 const _Distance __d = __gcd(__n, __k);
16694 for (_Distance __i = 0; __i < __d; __i++)
16696 _ValueType __tmp = *__first;
16697 _RandomAccessIterator __p = __first;
16701 for (_Distance __j = 0; __j < __l / __d; __j++)
16703 if (__p > __first + __l)
16705 *__p = *(__p - __l);
16709 *__p = *(__p + __k);
16715 for (_Distance __j = 0; __j < __k / __d - 1; __j ++)
16717 if (__p < __last - __k)
16719 *__p = *(__p + __k);
16722 *__p = * (__p - __l);
16731 # 1915 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_algo.h" 3
16732 template<typename _ForwardIterator>
16734 rotate(_ForwardIterator __first, _ForwardIterator __middle,
16735 _ForwardIterator __last)
16743 typedef typename iterator_traits<_ForwardIterator>::iterator_category
16745 std::__rotate(__first, __middle, __last, _IterType());
16747 # 1948 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_algo.h" 3
16748 template<typename _ForwardIterator, typename _OutputIterator>
16750 rotate_copy(_ForwardIterator __first, _ForwardIterator __middle,
16751 _ForwardIterator __last, _OutputIterator __result)
16760 return std::copy(__first, __middle,
16761 std::copy(__middle, __last, __result));
16763 # 1974 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_algo.h" 3
16764 template<typename _RandomAccessIterator>
16766 random_shuffle(_RandomAccessIterator __first, _RandomAccessIterator __last)
16773 if (__first != __last)
16774 for (_RandomAccessIterator __i = __first + 1; __i != __last; ++__i)
16775 std::iter_swap(__i, __first + (std::rand() % ((__i - __first) + 1)));
16777 # 2001 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_algo.h" 3
16778 template<typename _RandomAccessIterator, typename _RandomNumberGenerator>
16780 random_shuffle(_RandomAccessIterator __first, _RandomAccessIterator __last,
16781 _RandomNumberGenerator& __rand)
16788 if (__first == __last)
16790 for (_RandomAccessIterator __i = __first + 1; __i != __last; ++__i)
16791 std::iter_swap(__i, __first + __rand((__i - __first) + 1));
16800 template<typename _ForwardIterator, typename _Predicate>
16802 __partition(_ForwardIterator __first, _ForwardIterator __last,
16804 forward_iterator_tag)
16806 if (__first == __last)
16809 while (__pred(*__first))
16810 if (++__first == __last)
16813 _ForwardIterator __next = __first;
16815 while (++__next != __last)
16816 if (__pred(*__next))
16818 swap(*__first, *__next);
16830 template<typename _BidirectionalIterator, typename _Predicate>
16831 _BidirectionalIterator
16832 __partition(_BidirectionalIterator __first, _BidirectionalIterator __last,
16834 bidirectional_iterator_tag)
16839 if (__first == __last)
16841 else if (__pred(*__first))
16847 if (__first == __last)
16849 else if (!__pred(*__last))
16853 std::iter_swap(__first, __last);
16857 # 2095 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_algo.h" 3
16858 template<typename _ForwardIterator, typename _Predicate>
16859 inline _ForwardIterator
16860 partition(_ForwardIterator __first, _ForwardIterator __last,
16870 return std::__partition(__first, __last, __pred,
16871 std::__iterator_category(__first));
16880 template<typename _ForwardIterator, typename _Predicate, typename _Distance>
16882 __inplace_stable_partition(_ForwardIterator __first,
16883 _ForwardIterator __last,
16884 _Predicate __pred, _Distance __len)
16887 return __pred(*__first) ? __last : __first;
16888 _ForwardIterator __middle = __first;
16889 std::advance(__middle, __len / 2);
16890 _ForwardIterator __begin = std::__inplace_stable_partition(__first,
16894 _ForwardIterator __end = std::__inplace_stable_partition(__middle, __last,
16898 std::rotate(__begin, __middle, __end);
16899 std::advance(__begin, std::distance(__middle, __end));
16908 template<typename _ForwardIterator, typename _Pointer, typename _Predicate,
16909 typename _Distance>
16911 __stable_partition_adaptive(_ForwardIterator __first,
16912 _ForwardIterator __last,
16913 _Predicate __pred, _Distance __len,
16915 _Distance __buffer_size)
16917 if (__len <= __buffer_size)
16919 _ForwardIterator __result1 = __first;
16920 _Pointer __result2 = __buffer;
16921 for ( ; __first != __last ; ++__first)
16922 if (__pred(*__first))
16924 *__result1 = *__first;
16929 *__result2 = *__first;
16932 std::copy(__buffer, __result2, __result1);
16937 _ForwardIterator __middle = __first;
16938 std::advance(__middle, __len / 2);
16939 _ForwardIterator __begin =
16940 std::__stable_partition_adaptive(__first, __middle, __pred,
16941 __len / 2, __buffer,
16943 _ForwardIterator __end =
16944 std::__stable_partition_adaptive(__middle, __last, __pred,
16946 __buffer, __buffer_size);
16947 std::rotate(__begin, __middle, __end);
16948 std::advance(__begin, std::distance(__middle, __end));
16952 # 2206 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_algo.h" 3
16953 template<typename _ForwardIterator, typename _Predicate>
16955 stable_partition(_ForwardIterator __first, _ForwardIterator __last,
16965 if (__first == __last)
16969 typedef typename iterator_traits<_ForwardIterator>::value_type
16971 typedef typename iterator_traits<_ForwardIterator>::difference_type
16974 _Temporary_buffer<_ForwardIterator, _ValueType> __buf(__first,
16976 if (__buf.size() > 0)
16978 std::__stable_partition_adaptive(__first, __last, __pred,
16979 _DistanceType(__buf.requested_size()),
16980 __buf.begin(), __buf.size());
16983 std::__inplace_stable_partition(__first, __last, __pred,
16984 _DistanceType(__buf.requested_size()));
16993 template<typename _RandomAccessIterator, typename _Tp>
16994 _RandomAccessIterator
16995 __unguarded_partition(_RandomAccessIterator __first,
16996 _RandomAccessIterator __last, _Tp __pivot)
17000 while (*__first < __pivot)
17003 while (__pivot < *__last)
17005 if (!(__first < __last))
17007 std::iter_swap(__first, __last);
17017 template<typename _RandomAccessIterator, typename _Tp, typename _Compare>
17018 _RandomAccessIterator
17019 __unguarded_partition(_RandomAccessIterator __first,
17020 _RandomAccessIterator __last,
17021 _Tp __pivot, _Compare __comp)
17025 while (__comp(*__first, __pivot))
17028 while (__comp(__pivot, *__last))
17030 if (!(__first < __last))
17032 std::iter_swap(__first, __last);
17043 enum { _S_threshold = 16 };
17050 template<typename _RandomAccessIterator, typename _Tp>
17052 __unguarded_linear_insert(_RandomAccessIterator __last, _Tp __val)
17054 _RandomAccessIterator __next = __last;
17056 while (__val < *__next)
17070 template<typename _RandomAccessIterator, typename _Tp, typename _Compare>
17072 __unguarded_linear_insert(_RandomAccessIterator __last, _Tp __val,
17075 _RandomAccessIterator __next = __last;
17077 while (__comp(__val, *__next))
17091 template<typename _RandomAccessIterator>
17093 __insertion_sort(_RandomAccessIterator __first,
17094 _RandomAccessIterator __last)
17096 if (__first == __last)
17099 for (_RandomAccessIterator __i = __first + 1; __i != __last; ++__i)
17101 typename iterator_traits<_RandomAccessIterator>::value_type
17103 if (__val < *__first)
17105 std::copy_backward(__first, __i, __i + 1);
17109 std::__unguarded_linear_insert(__i, __val);
17118 template<typename _RandomAccessIterator, typename _Compare>
17120 __insertion_sort(_RandomAccessIterator __first,
17121 _RandomAccessIterator __last, _Compare __comp)
17123 if (__first == __last) return;
17125 for (_RandomAccessIterator __i = __first + 1; __i != __last; ++__i)
17127 typename iterator_traits<_RandomAccessIterator>::value_type
17129 if (__comp(__val, *__first))
17131 std::copy_backward(__first, __i, __i + 1);
17135 std::__unguarded_linear_insert(__i, __val, __comp);
17144 template<typename _RandomAccessIterator>
17146 __unguarded_insertion_sort(_RandomAccessIterator __first,
17147 _RandomAccessIterator __last)
17149 typedef typename iterator_traits<_RandomAccessIterator>::value_type
17152 for (_RandomAccessIterator __i = __first; __i != __last; ++__i)
17153 std::__unguarded_linear_insert(__i, _ValueType(*__i));
17161 template<typename _RandomAccessIterator, typename _Compare>
17163 __unguarded_insertion_sort(_RandomAccessIterator __first,
17164 _RandomAccessIterator __last, _Compare __comp)
17166 typedef typename iterator_traits<_RandomAccessIterator>::value_type
17169 for (_RandomAccessIterator __i = __first; __i != __last; ++__i)
17170 std::__unguarded_linear_insert(__i, _ValueType(*__i), __comp);
17178 template<typename _RandomAccessIterator>
17180 __final_insertion_sort(_RandomAccessIterator __first,
17181 _RandomAccessIterator __last)
17183 if (__last - __first > int(_S_threshold))
17185 std::__insertion_sort(__first, __first + int(_S_threshold));
17186 std::__unguarded_insertion_sort(__first + int(_S_threshold), __last);
17189 std::__insertion_sort(__first, __last);
17197 template<typename _RandomAccessIterator, typename _Compare>
17199 __final_insertion_sort(_RandomAccessIterator __first,
17200 _RandomAccessIterator __last, _Compare __comp)
17202 if (__last - __first > int(_S_threshold))
17204 std::__insertion_sort(__first, __first + int(_S_threshold), __comp);
17205 std::__unguarded_insertion_sort(__first + int(_S_threshold), __last,
17209 std::__insertion_sort(__first, __last, __comp);
17217 template<typename _RandomAccessIterator>
17219 __heap_select(_RandomAccessIterator __first,
17220 _RandomAccessIterator __middle,
17221 _RandomAccessIterator __last)
17223 typedef typename iterator_traits<_RandomAccessIterator>::value_type
17226 std::make_heap(__first, __middle);
17227 for (_RandomAccessIterator __i = __middle; __i < __last; ++__i)
17228 if (*__i < *__first)
17229 std::__pop_heap(__first, __middle, __i, _ValueType(*__i));
17237 template<typename _RandomAccessIterator, typename _Compare>
17239 __heap_select(_RandomAccessIterator __first,
17240 _RandomAccessIterator __middle,
17241 _RandomAccessIterator __last, _Compare __comp)
17243 typedef typename iterator_traits<_RandomAccessIterator>::value_type
17246 std::make_heap(__first, __middle, __comp);
17247 for (_RandomAccessIterator __i = __middle; __i < __last; ++__i)
17248 if (__comp(*__i, *__first))
17249 std::__pop_heap(__first, __middle, __i, _ValueType(*__i), __comp);
17257 template<typename _Size>
17262 for (__k = 0; __n != 1; __n >>= 1)
17266 # 2535 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_algo.h" 3
17267 template<typename _RandomAccessIterator>
17269 partial_sort(_RandomAccessIterator __first,
17270 _RandomAccessIterator __middle,
17271 _RandomAccessIterator __last)
17273 typedef typename iterator_traits<_RandomAccessIterator>::value_type
17283 std::__heap_select(__first, __middle, __last);
17284 std::sort_heap(__first, __middle);
17286 # 2573 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_algo.h" 3
17287 template<typename _RandomAccessIterator, typename _Compare>
17289 partial_sort(_RandomAccessIterator __first,
17290 _RandomAccessIterator __middle,
17291 _RandomAccessIterator __last,
17294 typedef typename iterator_traits<_RandomAccessIterator>::value_type
17305 std::__heap_select(__first, __middle, __last, __comp);
17306 std::sort_heap(__first, __middle, __comp);
17308 # 2612 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_algo.h" 3
17309 template<typename _InputIterator, typename _RandomAccessIterator>
17310 _RandomAccessIterator
17311 partial_sort_copy(_InputIterator __first, _InputIterator __last,
17312 _RandomAccessIterator __result_first,
17313 _RandomAccessIterator __result_last)
17315 typedef typename iterator_traits<_InputIterator>::value_type
17317 typedef typename iterator_traits<_RandomAccessIterator>::value_type
17319 typedef typename iterator_traits<_RandomAccessIterator>::difference_type
17332 if (__result_first == __result_last)
17333 return __result_last;
17334 _RandomAccessIterator __result_real_last = __result_first;
17335 while(__first != __last && __result_real_last != __result_last)
17337 *__result_real_last = *__first;
17338 ++__result_real_last;
17341 std::make_heap(__result_first, __result_real_last);
17342 while (__first != __last)
17344 if (*__first < *__result_first)
17345 std::__adjust_heap(__result_first, _DistanceType(0),
17346 _DistanceType(__result_real_last
17348 _InputValueType(*__first));
17351 std::sort_heap(__result_first, __result_real_last);
17352 return __result_real_last;
17354 # 2677 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_algo.h" 3
17355 template<typename _InputIterator, typename _RandomAccessIterator, typename _Compare>
17356 _RandomAccessIterator
17357 partial_sort_copy(_InputIterator __first, _InputIterator __last,
17358 _RandomAccessIterator __result_first,
17359 _RandomAccessIterator __result_last,
17362 typedef typename iterator_traits<_InputIterator>::value_type
17364 typedef typename iterator_traits<_RandomAccessIterator>::value_type
17366 typedef typename iterator_traits<_RandomAccessIterator>::difference_type
17382 if (__result_first == __result_last)
17383 return __result_last;
17384 _RandomAccessIterator __result_real_last = __result_first;
17385 while(__first != __last && __result_real_last != __result_last)
17387 *__result_real_last = *__first;
17388 ++__result_real_last;
17391 std::make_heap(__result_first, __result_real_last, __comp);
17392 while (__first != __last)
17394 if (__comp(*__first, *__result_first))
17395 std::__adjust_heap(__result_first, _DistanceType(0),
17396 _DistanceType(__result_real_last
17398 _InputValueType(*__first),
17402 std::sort_heap(__result_first, __result_real_last, __comp);
17403 return __result_real_last;
17411 template<typename _RandomAccessIterator, typename _Size>
17413 __introsort_loop(_RandomAccessIterator __first,
17414 _RandomAccessIterator __last,
17415 _Size __depth_limit)
17417 typedef typename iterator_traits<_RandomAccessIterator>::value_type
17420 while (__last - __first > int(_S_threshold))
17422 if (__depth_limit == 0)
17424 std::partial_sort(__first, __last, __last);
17428 _RandomAccessIterator __cut =
17429 std::__unguarded_partition(__first, __last,
17430 _ValueType(std::__median(*__first,
17437 std::__introsort_loop(__cut, __last, __depth_limit);
17447 template<typename _RandomAccessIterator, typename _Size, typename _Compare>
17449 __introsort_loop(_RandomAccessIterator __first,
17450 _RandomAccessIterator __last,
17451 _Size __depth_limit, _Compare __comp)
17453 typedef typename iterator_traits<_RandomAccessIterator>::value_type
17456 while (__last - __first > int(_S_threshold))
17458 if (__depth_limit == 0)
17460 std::partial_sort(__first, __last, __last, __comp);
17464 _RandomAccessIterator __cut =
17465 std::__unguarded_partition(__first, __last,
17466 _ValueType(std::__median(*__first,
17474 std::__introsort_loop(__cut, __last, __depth_limit, __comp);
17478 # 2814 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_algo.h" 3
17479 template<typename _RandomAccessIterator>
17481 sort(_RandomAccessIterator __first, _RandomAccessIterator __last)
17483 typedef typename iterator_traits<_RandomAccessIterator>::value_type
17492 if (__first != __last)
17494 std::__introsort_loop(__first, __last,
17495 std::__lg(__last - __first) * 2);
17496 std::__final_insertion_sort(__first, __last);
17499 # 2849 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_algo.h" 3
17500 template<typename _RandomAccessIterator, typename _Compare>
17502 sort(_RandomAccessIterator __first, _RandomAccessIterator __last,
17505 typedef typename iterator_traits<_RandomAccessIterator>::value_type
17515 if (__first != __last)
17517 std::__introsort_loop(__first, __last,
17518 std::__lg(__last - __first) * 2, __comp);
17519 std::__final_insertion_sort(__first, __last, __comp);
17522 # 2882 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_algo.h" 3
17523 template<typename _ForwardIterator, typename _Tp>
17525 lower_bound(_ForwardIterator __first, _ForwardIterator __last,
17528 typedef typename iterator_traits<_ForwardIterator>::value_type
17530 typedef typename iterator_traits<_ForwardIterator>::difference_type
17538 _DistanceType __len = std::distance(__first, __last);
17539 _DistanceType __half;
17540 _ForwardIterator __middle;
17544 __half = __len >> 1;
17545 __middle = __first;
17546 std::advance(__middle, __half);
17547 if (*__middle < __val)
17549 __first = __middle;
17551 __len = __len - __half - 1;
17558 # 2932 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_algo.h" 3
17559 template<typename _ForwardIterator, typename _Tp, typename _Compare>
17561 lower_bound(_ForwardIterator __first, _ForwardIterator __last,
17562 const _Tp& __val, _Compare __comp)
17564 typedef typename iterator_traits<_ForwardIterator>::value_type
17566 typedef typename iterator_traits<_ForwardIterator>::difference_type
17575 _DistanceType __len = std::distance(__first, __last);
17576 _DistanceType __half;
17577 _ForwardIterator __middle;
17581 __half = __len >> 1;
17582 __middle = __first;
17583 std::advance(__middle, __half);
17584 if (__comp(*__middle, __val))
17586 __first = __middle;
17588 __len = __len - __half - 1;
17595 # 2979 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_algo.h" 3
17596 template<typename _ForwardIterator, typename _Tp>
17598 upper_bound(_ForwardIterator __first, _ForwardIterator __last,
17601 typedef typename iterator_traits<_ForwardIterator>::value_type
17603 typedef typename iterator_traits<_ForwardIterator>::difference_type
17611 _DistanceType __len = std::distance(__first, __last);
17612 _DistanceType __half;
17613 _ForwardIterator __middle;
17617 __half = __len >> 1;
17618 __middle = __first;
17619 std::advance(__middle, __half);
17620 if (__val < *__middle)
17624 __first = __middle;
17626 __len = __len - __half - 1;
17631 # 3029 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_algo.h" 3
17632 template<typename _ForwardIterator, typename _Tp, typename _Compare>
17634 upper_bound(_ForwardIterator __first, _ForwardIterator __last,
17635 const _Tp& __val, _Compare __comp)
17637 typedef typename iterator_traits<_ForwardIterator>::value_type
17639 typedef typename iterator_traits<_ForwardIterator>::difference_type
17648 _DistanceType __len = std::distance(__first, __last);
17649 _DistanceType __half;
17650 _ForwardIterator __middle;
17654 __half = __len >> 1;
17655 __middle = __first;
17656 std::advance(__middle, __half);
17657 if (__comp(__val, *__middle))
17661 __first = __middle;
17663 __len = __len - __half - 1;
17674 template<typename _BidirectionalIterator, typename _Distance>
17676 __merge_without_buffer(_BidirectionalIterator __first,
17677 _BidirectionalIterator __middle,
17678 _BidirectionalIterator __last,
17679 _Distance __len1, _Distance __len2)
17681 if (__len1 == 0 || __len2 == 0)
17683 if (__len1 + __len2 == 2)
17685 if (*__middle < *__first)
17686 std::iter_swap(__first, __middle);
17689 _BidirectionalIterator __first_cut = __first;
17690 _BidirectionalIterator __second_cut = __middle;
17691 _Distance __len11 = 0;
17692 _Distance __len22 = 0;
17693 if (__len1 > __len2)
17695 __len11 = __len1 / 2;
17696 std::advance(__first_cut, __len11);
17697 __second_cut = std::lower_bound(__middle, __last, *__first_cut);
17698 __len22 = std::distance(__middle, __second_cut);
17702 __len22 = __len2 / 2;
17703 std::advance(__second_cut, __len22);
17704 __first_cut = std::upper_bound(__first, __middle, *__second_cut);
17705 __len11 = std::distance(__first, __first_cut);
17707 std::rotate(__first_cut, __middle, __second_cut);
17708 _BidirectionalIterator __new_middle = __first_cut;
17709 std::advance(__new_middle, std::distance(__middle, __second_cut));
17710 std::__merge_without_buffer(__first, __first_cut, __new_middle,
17712 std::__merge_without_buffer(__new_middle, __second_cut, __last,
17713 __len1 - __len11, __len2 - __len22);
17721 template<typename _BidirectionalIterator, typename _Distance,
17724 __merge_without_buffer(_BidirectionalIterator __first,
17725 _BidirectionalIterator __middle,
17726 _BidirectionalIterator __last,
17727 _Distance __len1, _Distance __len2,
17730 if (__len1 == 0 || __len2 == 0)
17732 if (__len1 + __len2 == 2)
17734 if (__comp(*__middle, *__first))
17735 std::iter_swap(__first, __middle);
17738 _BidirectionalIterator __first_cut = __first;
17739 _BidirectionalIterator __second_cut = __middle;
17740 _Distance __len11 = 0;
17741 _Distance __len22 = 0;
17742 if (__len1 > __len2)
17744 __len11 = __len1 / 2;
17745 std::advance(__first_cut, __len11);
17746 __second_cut = std::lower_bound(__middle, __last, *__first_cut,
17748 __len22 = std::distance(__middle, __second_cut);
17752 __len22 = __len2 / 2;
17753 std::advance(__second_cut, __len22);
17754 __first_cut = std::upper_bound(__first, __middle, *__second_cut,
17756 __len11 = std::distance(__first, __first_cut);
17758 std::rotate(__first_cut, __middle, __second_cut);
17759 _BidirectionalIterator __new_middle = __first_cut;
17760 std::advance(__new_middle, std::distance(__middle, __second_cut));
17761 std::__merge_without_buffer(__first, __first_cut, __new_middle,
17762 __len11, __len22, __comp);
17763 std::__merge_without_buffer(__new_middle, __second_cut, __last,
17764 __len1 - __len11, __len2 - __len22, __comp);
17772 template<typename _RandomAccessIterator>
17774 __inplace_stable_sort(_RandomAccessIterator __first,
17775 _RandomAccessIterator __last)
17777 if (__last - __first < 15)
17779 std::__insertion_sort(__first, __last);
17782 _RandomAccessIterator __middle = __first + (__last - __first) / 2;
17783 std::__inplace_stable_sort(__first, __middle);
17784 std::__inplace_stable_sort(__middle, __last);
17785 std::__merge_without_buffer(__first, __middle, __last,
17786 __middle - __first,
17787 __last - __middle);
17795 template<typename _RandomAccessIterator, typename _Compare>
17797 __inplace_stable_sort(_RandomAccessIterator __first,
17798 _RandomAccessIterator __last, _Compare __comp)
17800 if (__last - __first < 15)
17802 std::__insertion_sort(__first, __last, __comp);
17805 _RandomAccessIterator __middle = __first + (__last - __first) / 2;
17806 std::__inplace_stable_sort(__first, __middle, __comp);
17807 std::__inplace_stable_sort(__middle, __last, __comp);
17808 std::__merge_without_buffer(__first, __middle, __last,
17809 __middle - __first,
17813 # 3227 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_algo.h" 3
17814 template<typename _InputIterator1, typename _InputIterator2,
17815 typename _OutputIterator>
17817 merge(_InputIterator1 __first1, _InputIterator1 __last1,
17818 _InputIterator2 __first2, _InputIterator2 __last2,
17819 _OutputIterator __result)
17821 typedef typename iterator_traits<_InputIterator1>::value_type
17823 typedef typename iterator_traits<_InputIterator2>::value_type
17837 while (__first1 != __last1 && __first2 != __last2)
17839 if (*__first2 < *__first1)
17841 *__result = *__first2;
17846 *__result = *__first1;
17851 return std::copy(__first2, __last2, std::copy(__first1, __last1,
17854 # 3288 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_algo.h" 3
17855 template<typename _InputIterator1, typename _InputIterator2,
17856 typename _OutputIterator, typename _Compare>
17858 merge(_InputIterator1 __first1, _InputIterator1 __last1,
17859 _InputIterator2 __first2, _InputIterator2 __last2,
17860 _OutputIterator __result, _Compare __comp)
17862 typedef typename iterator_traits<_InputIterator1>::value_type
17864 typedef typename iterator_traits<_InputIterator2>::value_type
17879 while (__first1 != __last1 && __first2 != __last2)
17881 if (__comp(*__first2, *__first1))
17883 *__result = *__first2;
17888 *__result = *__first1;
17893 return std::copy(__first2, __last2, std::copy(__first1, __last1,
17897 template<typename _RandomAccessIterator1, typename _RandomAccessIterator2,
17898 typename _Distance>
17900 __merge_sort_loop(_RandomAccessIterator1 __first,
17901 _RandomAccessIterator1 __last,
17902 _RandomAccessIterator2 __result,
17903 _Distance __step_size)
17905 const _Distance __two_step = 2 * __step_size;
17907 while (__last - __first >= __two_step)
17909 __result = std::merge(__first, __first + __step_size,
17910 __first + __step_size, __first + __two_step,
17912 __first += __two_step;
17915 __step_size = std::min(_Distance(__last - __first), __step_size);
17916 std::merge(__first, __first + __step_size, __first + __step_size, __last,
17920 template<typename _RandomAccessIterator1, typename _RandomAccessIterator2,
17921 typename _Distance, typename _Compare>
17923 __merge_sort_loop(_RandomAccessIterator1 __first,
17924 _RandomAccessIterator1 __last,
17925 _RandomAccessIterator2 __result, _Distance __step_size,
17928 const _Distance __two_step = 2 * __step_size;
17930 while (__last - __first >= __two_step)
17932 __result = std::merge(__first, __first + __step_size,
17933 __first + __step_size, __first + __two_step,
17936 __first += __two_step;
17938 __step_size = std::min(_Distance(__last - __first), __step_size);
17940 std::merge(__first, __first + __step_size,
17941 __first + __step_size, __last,
17946 enum { _S_chunk_size = 7 };
17948 template<typename _RandomAccessIterator, typename _Distance>
17950 __chunk_insertion_sort(_RandomAccessIterator __first,
17951 _RandomAccessIterator __last,
17952 _Distance __chunk_size)
17954 while (__last - __first >= __chunk_size)
17956 std::__insertion_sort(__first, __first + __chunk_size);
17957 __first += __chunk_size;
17959 std::__insertion_sort(__first, __last);
17962 template<typename _RandomAccessIterator, typename _Distance, typename _Compare>
17964 __chunk_insertion_sort(_RandomAccessIterator __first,
17965 _RandomAccessIterator __last,
17966 _Distance __chunk_size, _Compare __comp)
17968 while (__last - __first >= __chunk_size)
17970 std::__insertion_sort(__first, __first + __chunk_size, __comp);
17971 __first += __chunk_size;
17973 std::__insertion_sort(__first, __last, __comp);
17976 template<typename _RandomAccessIterator, typename _Pointer>
17978 __merge_sort_with_buffer(_RandomAccessIterator __first,
17979 _RandomAccessIterator __last,
17982 typedef typename iterator_traits<_RandomAccessIterator>::difference_type
17985 const _Distance __len = __last - __first;
17986 const _Pointer __buffer_last = __buffer + __len;
17988 _Distance __step_size = _S_chunk_size;
17989 std::__chunk_insertion_sort(__first, __last, __step_size);
17991 while (__step_size < __len)
17993 std::__merge_sort_loop(__first, __last, __buffer, __step_size);
17995 std::__merge_sort_loop(__buffer, __buffer_last, __first, __step_size);
18000 template<typename _RandomAccessIterator, typename _Pointer, typename _Compare>
18002 __merge_sort_with_buffer(_RandomAccessIterator __first,
18003 _RandomAccessIterator __last,
18004 _Pointer __buffer, _Compare __comp)
18006 typedef typename iterator_traits<_RandomAccessIterator>::difference_type
18009 const _Distance __len = __last - __first;
18010 const _Pointer __buffer_last = __buffer + __len;
18012 _Distance __step_size = _S_chunk_size;
18013 std::__chunk_insertion_sort(__first, __last, __step_size, __comp);
18015 while (__step_size < __len)
18017 std::__merge_sort_loop(__first, __last, __buffer,
18018 __step_size, __comp);
18020 std::__merge_sort_loop(__buffer, __buffer_last, __first,
18021 __step_size, __comp);
18031 template<typename _BidirectionalIterator1, typename _BidirectionalIterator2,
18032 typename _BidirectionalIterator3>
18033 _BidirectionalIterator3
18034 __merge_backward(_BidirectionalIterator1 __first1,
18035 _BidirectionalIterator1 __last1,
18036 _BidirectionalIterator2 __first2,
18037 _BidirectionalIterator2 __last2,
18038 _BidirectionalIterator3 __result)
18040 if (__first1 == __last1)
18041 return std::copy_backward(__first2, __last2, __result);
18042 if (__first2 == __last2)
18043 return std::copy_backward(__first1, __last1, __result);
18048 if (*__last2 < *__last1)
18050 *--__result = *__last1;
18051 if (__first1 == __last1)
18052 return std::copy_backward(__first2, ++__last2, __result);
18057 *--__result = *__last2;
18058 if (__first2 == __last2)
18059 return std::copy_backward(__first1, ++__last1, __result);
18070 template<typename _BidirectionalIterator1, typename _BidirectionalIterator2,
18071 typename _BidirectionalIterator3, typename _Compare>
18072 _BidirectionalIterator3
18073 __merge_backward(_BidirectionalIterator1 __first1,
18074 _BidirectionalIterator1 __last1,
18075 _BidirectionalIterator2 __first2,
18076 _BidirectionalIterator2 __last2,
18077 _BidirectionalIterator3 __result,
18080 if (__first1 == __last1)
18081 return std::copy_backward(__first2, __last2, __result);
18082 if (__first2 == __last2)
18083 return std::copy_backward(__first1, __last1, __result);
18088 if (__comp(*__last2, *__last1))
18090 *--__result = *__last1;
18091 if (__first1 == __last1)
18092 return std::copy_backward(__first2, ++__last2, __result);
18097 *--__result = *__last2;
18098 if (__first2 == __last2)
18099 return std::copy_backward(__first1, ++__last1, __result);
18110 template<typename _BidirectionalIterator1, typename _BidirectionalIterator2,
18111 typename _Distance>
18112 _BidirectionalIterator1
18113 __rotate_adaptive(_BidirectionalIterator1 __first,
18114 _BidirectionalIterator1 __middle,
18115 _BidirectionalIterator1 __last,
18116 _Distance __len1, _Distance __len2,
18117 _BidirectionalIterator2 __buffer,
18118 _Distance __buffer_size)
18120 _BidirectionalIterator2 __buffer_end;
18121 if (__len1 > __len2 && __len2 <= __buffer_size)
18123 __buffer_end = std::copy(__middle, __last, __buffer);
18124 std::copy_backward(__first, __middle, __last);
18125 return std::copy(__buffer, __buffer_end, __first);
18127 else if (__len1 <= __buffer_size)
18129 __buffer_end = std::copy(__first, __middle, __buffer);
18130 std::copy(__middle, __last, __first);
18131 return std::copy_backward(__buffer, __buffer_end, __last);
18135 std::rotate(__first, __middle, __last);
18136 std::advance(__first, std::distance(__middle, __last));
18146 template<typename _BidirectionalIterator, typename _Distance,
18149 __merge_adaptive(_BidirectionalIterator __first,
18150 _BidirectionalIterator __middle,
18151 _BidirectionalIterator __last,
18152 _Distance __len1, _Distance __len2,
18153 _Pointer __buffer, _Distance __buffer_size)
18155 if (__len1 <= __len2 && __len1 <= __buffer_size)
18157 _Pointer __buffer_end = std::copy(__first, __middle, __buffer);
18158 std::merge(__buffer, __buffer_end, __middle, __last, __first);
18160 else if (__len2 <= __buffer_size)
18162 _Pointer __buffer_end = std::copy(__middle, __last, __buffer);
18163 std::__merge_backward(__first, __middle, __buffer,
18164 __buffer_end, __last);
18168 _BidirectionalIterator __first_cut = __first;
18169 _BidirectionalIterator __second_cut = __middle;
18170 _Distance __len11 = 0;
18171 _Distance __len22 = 0;
18172 if (__len1 > __len2)
18174 __len11 = __len1 / 2;
18175 std::advance(__first_cut, __len11);
18176 __second_cut = std::lower_bound(__middle, __last,
18178 __len22 = std::distance(__middle, __second_cut);
18182 __len22 = __len2 / 2;
18183 std::advance(__second_cut, __len22);
18184 __first_cut = std::upper_bound(__first, __middle,
18186 __len11 = std::distance(__first, __first_cut);
18188 _BidirectionalIterator __new_middle =
18189 std::__rotate_adaptive(__first_cut, __middle, __second_cut,
18190 __len1 - __len11, __len22, __buffer,
18192 std::__merge_adaptive(__first, __first_cut, __new_middle, __len11,
18193 __len22, __buffer, __buffer_size);
18194 std::__merge_adaptive(__new_middle, __second_cut, __last,
18196 __len2 - __len22, __buffer, __buffer_size);
18205 template<typename _BidirectionalIterator, typename _Distance, typename _Pointer,
18208 __merge_adaptive(_BidirectionalIterator __first,
18209 _BidirectionalIterator __middle,
18210 _BidirectionalIterator __last,
18211 _Distance __len1, _Distance __len2,
18212 _Pointer __buffer, _Distance __buffer_size,
18215 if (__len1 <= __len2 && __len1 <= __buffer_size)
18217 _Pointer __buffer_end = std::copy(__first, __middle, __buffer);
18218 std::merge(__buffer, __buffer_end, __middle, __last, __first, __comp);
18220 else if (__len2 <= __buffer_size)
18222 _Pointer __buffer_end = std::copy(__middle, __last, __buffer);
18223 std::__merge_backward(__first, __middle, __buffer, __buffer_end,
18228 _BidirectionalIterator __first_cut = __first;
18229 _BidirectionalIterator __second_cut = __middle;
18230 _Distance __len11 = 0;
18231 _Distance __len22 = 0;
18232 if (__len1 > __len2)
18234 __len11 = __len1 / 2;
18235 std::advance(__first_cut, __len11);
18236 __second_cut = std::lower_bound(__middle, __last, *__first_cut,
18238 __len22 = std::distance(__middle, __second_cut);
18242 __len22 = __len2 / 2;
18243 std::advance(__second_cut, __len22);
18244 __first_cut = std::upper_bound(__first, __middle, *__second_cut,
18246 __len11 = std::distance(__first, __first_cut);
18248 _BidirectionalIterator __new_middle =
18249 std::__rotate_adaptive(__first_cut, __middle, __second_cut,
18250 __len1 - __len11, __len22, __buffer,
18252 std::__merge_adaptive(__first, __first_cut, __new_middle, __len11,
18253 __len22, __buffer, __buffer_size, __comp);
18254 std::__merge_adaptive(__new_middle, __second_cut, __last,
18256 __len2 - __len22, __buffer,
18257 __buffer_size, __comp);
18260 # 3711 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_algo.h" 3
18261 template<typename _BidirectionalIterator>
18263 inplace_merge(_BidirectionalIterator __first,
18264 _BidirectionalIterator __middle,
18265 _BidirectionalIterator __last)
18267 typedef typename iterator_traits<_BidirectionalIterator>::value_type
18269 typedef typename iterator_traits<_BidirectionalIterator>::difference_type
18279 if (__first == __middle || __middle == __last)
18282 _DistanceType __len1 = std::distance(__first, __middle);
18283 _DistanceType __len2 = std::distance(__middle, __last);
18285 _Temporary_buffer<_BidirectionalIterator, _ValueType> __buf(__first,
18287 if (__buf.begin() == 0)
18288 std::__merge_without_buffer(__first, __middle, __last, __len1, __len2);
18290 std::__merge_adaptive(__first, __middle, __last, __len1, __len2,
18291 __buf.begin(), _DistanceType(__buf.size()));
18293 # 3765 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_algo.h" 3
18294 template<typename _BidirectionalIterator, typename _Compare>
18296 inplace_merge(_BidirectionalIterator __first,
18297 _BidirectionalIterator __middle,
18298 _BidirectionalIterator __last,
18301 typedef typename iterator_traits<_BidirectionalIterator>::value_type
18303 typedef typename iterator_traits<_BidirectionalIterator>::difference_type
18314 if (__first == __middle || __middle == __last)
18317 const _DistanceType __len1 = std::distance(__first, __middle);
18318 const _DistanceType __len2 = std::distance(__middle, __last);
18320 _Temporary_buffer<_BidirectionalIterator, _ValueType> __buf(__first,
18322 if (__buf.begin() == 0)
18323 std::__merge_without_buffer(__first, __middle, __last, __len1,
18326 std::__merge_adaptive(__first, __middle, __last, __len1, __len2,
18327 __buf.begin(), _DistanceType(__buf.size()),
18331 template<typename _RandomAccessIterator, typename _Pointer,
18332 typename _Distance>
18334 __stable_sort_adaptive(_RandomAccessIterator __first,
18335 _RandomAccessIterator __last,
18336 _Pointer __buffer, _Distance __buffer_size)
18338 const _Distance __len = (__last - __first + 1) / 2;
18339 const _RandomAccessIterator __middle = __first + __len;
18340 if (__len > __buffer_size)
18342 std::__stable_sort_adaptive(__first, __middle,
18343 __buffer, __buffer_size);
18344 std::__stable_sort_adaptive(__middle, __last,
18345 __buffer, __buffer_size);
18349 std::__merge_sort_with_buffer(__first, __middle, __buffer);
18350 std::__merge_sort_with_buffer(__middle, __last, __buffer);
18352 std::__merge_adaptive(__first, __middle, __last,
18353 _Distance(__middle - __first),
18354 _Distance(__last - __middle),
18355 __buffer, __buffer_size);
18358 template<typename _RandomAccessIterator, typename _Pointer,
18359 typename _Distance, typename _Compare>
18361 __stable_sort_adaptive(_RandomAccessIterator __first,
18362 _RandomAccessIterator __last,
18363 _Pointer __buffer, _Distance __buffer_size,
18366 const _Distance __len = (__last - __first + 1) / 2;
18367 const _RandomAccessIterator __middle = __first + __len;
18368 if (__len > __buffer_size)
18370 std::__stable_sort_adaptive(__first, __middle, __buffer,
18371 __buffer_size, __comp);
18372 std::__stable_sort_adaptive(__middle, __last, __buffer,
18373 __buffer_size, __comp);
18377 std::__merge_sort_with_buffer(__first, __middle, __buffer, __comp);
18378 std::__merge_sort_with_buffer(__middle, __last, __buffer, __comp);
18380 std::__merge_adaptive(__first, __middle, __last,
18381 _Distance(__middle - __first),
18382 _Distance(__last - __middle),
18383 __buffer, __buffer_size,
18386 # 3874 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_algo.h" 3
18387 template<typename _RandomAccessIterator>
18389 stable_sort(_RandomAccessIterator __first, _RandomAccessIterator __last)
18391 typedef typename iterator_traits<_RandomAccessIterator>::value_type
18393 typedef typename iterator_traits<_RandomAccessIterator>::difference_type
18402 _Temporary_buffer<_RandomAccessIterator, _ValueType> __buf(__first,
18404 if (__buf.begin() == 0)
18405 std::__inplace_stable_sort(__first, __last);
18407 std::__stable_sort_adaptive(__first, __last, __buf.begin(),
18408 _DistanceType(__buf.size()));
18410 # 3915 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_algo.h" 3
18411 template<typename _RandomAccessIterator, typename _Compare>
18413 stable_sort(_RandomAccessIterator __first, _RandomAccessIterator __last,
18416 typedef typename iterator_traits<_RandomAccessIterator>::value_type
18418 typedef typename iterator_traits<_RandomAccessIterator>::difference_type
18429 _Temporary_buffer<_RandomAccessIterator, _ValueType> __buf(__first,
18431 if (__buf.begin() == 0)
18432 std::__inplace_stable_sort(__first, __last, __comp);
18434 std::__stable_sort_adaptive(__first, __last, __buf.begin(),
18435 _DistanceType(__buf.size()), __comp);
18439 template<typename _RandomAccessIterator, typename _Size>
18441 __introselect(_RandomAccessIterator __first, _RandomAccessIterator __nth,
18442 _RandomAccessIterator __last, _Size __depth_limit)
18444 typedef typename iterator_traits<_RandomAccessIterator>::value_type
18447 while (__last - __first > 3)
18449 if (__depth_limit == 0)
18451 std::__heap_select(__first, __nth + 1, __last);
18453 std::iter_swap(__first, __nth);
18457 _RandomAccessIterator __cut =
18458 std::__unguarded_partition(__first, __last,
18459 _ValueType(std::__median(*__first,
18466 if (__cut <= __nth)
18471 std::__insertion_sort(__first, __last);
18474 template<typename _RandomAccessIterator, typename _Size, typename _Compare>
18476 __introselect(_RandomAccessIterator __first, _RandomAccessIterator __nth,
18477 _RandomAccessIterator __last, _Size __depth_limit,
18480 typedef typename iterator_traits<_RandomAccessIterator>::value_type
18483 while (__last - __first > 3)
18485 if (__depth_limit == 0)
18487 std::__heap_select(__first, __nth + 1, __last, __comp);
18489 std::iter_swap(__first, __nth);
18493 _RandomAccessIterator __cut =
18494 std::__unguarded_partition(__first, __last,
18495 _ValueType(std::__median(*__first,
18503 if (__cut <= __nth)
18508 std::__insertion_sort(__first, __last, __comp);
18510 # 4030 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_algo.h" 3
18511 template<typename _RandomAccessIterator>
18513 nth_element(_RandomAccessIterator __first, _RandomAccessIterator __nth,
18514 _RandomAccessIterator __last)
18516 typedef typename iterator_traits<_RandomAccessIterator>::value_type
18526 if (__first == __last || __nth == __last)
18529 std::__introselect(__first, __nth, __last,
18530 std::__lg(__last - __first) * 2);
18532 # 4068 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_algo.h" 3
18533 template<typename _RandomAccessIterator, typename _Compare>
18535 nth_element(_RandomAccessIterator __first, _RandomAccessIterator __nth,
18536 _RandomAccessIterator __last, _Compare __comp)
18538 typedef typename iterator_traits<_RandomAccessIterator>::value_type
18549 if (__first == __last || __nth == __last)
18552 std::__introselect(__first, __nth, __last,
18553 std::__lg(__last - __first) * 2, __comp);
18555 # 4107 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_algo.h" 3
18556 template<typename _ForwardIterator, typename _Tp>
18557 pair<_ForwardIterator, _ForwardIterator>
18558 equal_range(_ForwardIterator __first, _ForwardIterator __last,
18561 typedef typename iterator_traits<_ForwardIterator>::value_type
18563 typedef typename iterator_traits<_ForwardIterator>::difference_type
18572 _DistanceType __len = std::distance(__first, __last);
18573 _DistanceType __half;
18574 _ForwardIterator __middle, __left, __right;
18578 __half = __len >> 1;
18579 __middle = __first;
18580 std::advance(__middle, __half);
18581 if (*__middle < __val)
18583 __first = __middle;
18585 __len = __len - __half - 1;
18587 else if (__val < *__middle)
18591 __left = std::lower_bound(__first, __middle, __val);
18592 std::advance(__first, __len);
18593 __right = std::upper_bound(++__middle, __first, __val);
18594 return pair<_ForwardIterator, _ForwardIterator>(__left, __right);
18597 return pair<_ForwardIterator, _ForwardIterator>(__first, __first);
18599 # 4168 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_algo.h" 3
18600 template<typename _ForwardIterator, typename _Tp, typename _Compare>
18601 pair<_ForwardIterator, _ForwardIterator>
18602 equal_range(_ForwardIterator __first, _ForwardIterator __last,
18606 typedef typename iterator_traits<_ForwardIterator>::value_type
18608 typedef typename iterator_traits<_ForwardIterator>::difference_type
18619 _DistanceType __len = std::distance(__first, __last);
18620 _DistanceType __half;
18621 _ForwardIterator __middle, __left, __right;
18625 __half = __len >> 1;
18626 __middle = __first;
18627 std::advance(__middle, __half);
18628 if (__comp(*__middle, __val))
18630 __first = __middle;
18632 __len = __len - __half - 1;
18634 else if (__comp(__val, *__middle))
18638 __left = std::lower_bound(__first, __middle, __val, __comp);
18639 std::advance(__first, __len);
18640 __right = std::upper_bound(++__middle, __first, __val, __comp);
18641 return pair<_ForwardIterator, _ForwardIterator>(__left, __right);
18644 return pair<_ForwardIterator, _ForwardIterator>(__first, __first);
18646 # 4226 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_algo.h" 3
18647 template<typename _ForwardIterator, typename _Tp>
18649 binary_search(_ForwardIterator __first, _ForwardIterator __last,
18652 typedef typename iterator_traits<_ForwardIterator>::value_type
18660 _ForwardIterator __i = std::lower_bound(__first, __last, __val);
18661 return __i != __last && !(__val < *__i);
18663 # 4258 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_algo.h" 3
18664 template<typename _ForwardIterator, typename _Tp, typename _Compare>
18666 binary_search(_ForwardIterator __first, _ForwardIterator __last,
18667 const _Tp& __val, _Compare __comp)
18669 typedef typename iterator_traits<_ForwardIterator>::value_type
18678 _ForwardIterator __i = std::lower_bound(__first, __last, __val, __comp);
18679 return __i != __last && !__comp(__val, *__i);
18681 # 4297 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_algo.h" 3
18682 template<typename _InputIterator1, typename _InputIterator2>
18684 includes(_InputIterator1 __first1, _InputIterator1 __last1,
18685 _InputIterator2 __first2, _InputIterator2 __last2)
18687 typedef typename iterator_traits<_InputIterator1>::value_type
18689 typedef typename iterator_traits<_InputIterator2>::value_type
18700 while (__first1 != __last1 && __first2 != __last2)
18701 if (*__first2 < *__first1)
18703 else if(*__first1 < *__first2)
18706 ++__first1, ++__first2;
18708 return __first2 == __last2;
18710 # 4345 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_algo.h" 3
18711 template<typename _InputIterator1, typename _InputIterator2,
18714 includes(_InputIterator1 __first1, _InputIterator1 __last1,
18715 _InputIterator2 __first2, _InputIterator2 __last2, _Compare __comp)
18717 typedef typename iterator_traits<_InputIterator1>::value_type
18719 typedef typename iterator_traits<_InputIterator2>::value_type
18732 while (__first1 != __last1 && __first2 != __last2)
18733 if (__comp(*__first2, *__first1))
18735 else if(__comp(*__first1, *__first2))
18738 ++__first1, ++__first2;
18740 return __first2 == __last2;
18742 # 4394 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_algo.h" 3
18743 template<typename _InputIterator1, typename _InputIterator2,
18744 typename _OutputIterator>
18746 set_union(_InputIterator1 __first1, _InputIterator1 __last1,
18747 _InputIterator2 __first2, _InputIterator2 __last2,
18748 _OutputIterator __result)
18750 typedef typename iterator_traits<_InputIterator1>::value_type
18752 typedef typename iterator_traits<_InputIterator2>::value_type
18767 while (__first1 != __last1 && __first2 != __last2)
18769 if (*__first1 < *__first2)
18771 *__result = *__first1;
18774 else if (*__first2 < *__first1)
18776 *__result = *__first2;
18781 *__result = *__first1;
18787 return std::copy(__first2, __last2, std::copy(__first1, __last1,
18790 # 4460 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_algo.h" 3
18791 template<typename _InputIterator1, typename _InputIterator2,
18792 typename _OutputIterator, typename _Compare>
18794 set_union(_InputIterator1 __first1, _InputIterator1 __last1,
18795 _InputIterator2 __first2, _InputIterator2 __last2,
18796 _OutputIterator __result, _Compare __comp)
18798 typedef typename iterator_traits<_InputIterator1>::value_type
18800 typedef typename iterator_traits<_InputIterator2>::value_type
18817 while (__first1 != __last1 && __first2 != __last2)
18819 if (__comp(*__first1, *__first2))
18821 *__result = *__first1;
18824 else if (__comp(*__first2, *__first1))
18826 *__result = *__first2;
18831 *__result = *__first1;
18837 return std::copy(__first2, __last2, std::copy(__first1, __last1,
18840 # 4526 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_algo.h" 3
18841 template<typename _InputIterator1, typename _InputIterator2,
18842 typename _OutputIterator>
18844 set_intersection(_InputIterator1 __first1, _InputIterator1 __last1,
18845 _InputIterator2 __first2, _InputIterator2 __last2,
18846 _OutputIterator __result)
18848 typedef typename iterator_traits<_InputIterator1>::value_type
18850 typedef typename iterator_traits<_InputIterator2>::value_type
18863 while (__first1 != __last1 && __first2 != __last2)
18864 if (*__first1 < *__first2)
18866 else if (*__first2 < *__first1)
18870 *__result = *__first1;
18877 # 4582 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_algo.h" 3
18878 template<typename _InputIterator1, typename _InputIterator2,
18879 typename _OutputIterator, typename _Compare>
18881 set_intersection(_InputIterator1 __first1, _InputIterator1 __last1,
18882 _InputIterator2 __first2, _InputIterator2 __last2,
18883 _OutputIterator __result, _Compare __comp)
18885 typedef typename iterator_traits<_InputIterator1>::value_type
18887 typedef typename iterator_traits<_InputIterator2>::value_type
18902 while (__first1 != __last1 && __first2 != __last2)
18903 if (__comp(*__first1, *__first2))
18905 else if (__comp(*__first2, *__first1))
18909 *__result = *__first1;
18916 # 4639 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_algo.h" 3
18917 template<typename _InputIterator1, typename _InputIterator2,
18918 typename _OutputIterator>
18920 set_difference(_InputIterator1 __first1, _InputIterator1 __last1,
18921 _InputIterator2 __first2, _InputIterator2 __last2,
18922 _OutputIterator __result)
18924 typedef typename iterator_traits<_InputIterator1>::value_type
18926 typedef typename iterator_traits<_InputIterator2>::value_type
18939 while (__first1 != __last1 && __first2 != __last2)
18940 if (*__first1 < *__first2)
18942 *__result = *__first1;
18946 else if (*__first2 < *__first1)
18953 return std::copy(__first1, __last1, __result);
18955 # 4699 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_algo.h" 3
18956 template<typename _InputIterator1, typename _InputIterator2,
18957 typename _OutputIterator, typename _Compare>
18959 set_difference(_InputIterator1 __first1, _InputIterator1 __last1,
18960 _InputIterator2 __first2, _InputIterator2 __last2,
18961 _OutputIterator __result, _Compare __comp)
18963 typedef typename iterator_traits<_InputIterator1>::value_type
18965 typedef typename iterator_traits<_InputIterator2>::value_type
18980 while (__first1 != __last1 && __first2 != __last2)
18981 if (__comp(*__first1, *__first2))
18983 *__result = *__first1;
18987 else if (__comp(*__first2, *__first1))
18994 return std::copy(__first1, __last1, __result);
18996 # 4756 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_algo.h" 3
18997 template<typename _InputIterator1, typename _InputIterator2,
18998 typename _OutputIterator>
19000 set_symmetric_difference(_InputIterator1 __first1, _InputIterator1 __last1,
19001 _InputIterator2 __first2, _InputIterator2 __last2,
19002 _OutputIterator __result)
19004 typedef typename iterator_traits<_InputIterator1>::value_type
19006 typedef typename iterator_traits<_InputIterator2>::value_type
19021 while (__first1 != __last1 && __first2 != __last2)
19022 if (*__first1 < *__first2)
19024 *__result = *__first1;
19028 else if (*__first2 < *__first1)
19030 *__result = *__first2;
19039 return std::copy(__first2, __last2, std::copy(__first1,
19040 __last1, __result));
19042 # 4821 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_algo.h" 3
19043 template<typename _InputIterator1, typename _InputIterator2,
19044 typename _OutputIterator, typename _Compare>
19046 set_symmetric_difference(_InputIterator1 __first1, _InputIterator1 __last1,
19047 _InputIterator2 __first2, _InputIterator2 __last2,
19048 _OutputIterator __result,
19051 typedef typename iterator_traits<_InputIterator1>::value_type
19053 typedef typename iterator_traits<_InputIterator2>::value_type
19070 while (__first1 != __last1 && __first2 != __last2)
19071 if (__comp(*__first1, *__first2))
19073 *__result = *__first1;
19077 else if (__comp(*__first2, *__first1))
19079 *__result = *__first2;
19088 return std::copy(__first2, __last2, std::copy(__first1,
19089 __last1, __result));
19091 # 4879 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_algo.h" 3
19092 template<typename _ForwardIterator>
19094 max_element(_ForwardIterator __first, _ForwardIterator __last)
19102 if (__first == __last)
19104 _ForwardIterator __result = __first;
19105 while (++__first != __last)
19106 if (*__result < *__first)
19107 __result = __first;
19110 # 4906 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_algo.h" 3
19111 template<typename _ForwardIterator, typename _Compare>
19113 max_element(_ForwardIterator __first, _ForwardIterator __last,
19123 if (__first == __last) return __first;
19124 _ForwardIterator __result = __first;
19125 while (++__first != __last)
19126 if (__comp(*__result, *__first)) __result = __first;
19136 template<typename _ForwardIterator>
19138 min_element(_ForwardIterator __first, _ForwardIterator __last)
19146 if (__first == __last)
19148 _ForwardIterator __result = __first;
19149 while (++__first != __last)
19150 if (*__first < *__result)
19151 __result = __first;
19154 # 4958 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_algo.h" 3
19155 template<typename _ForwardIterator, typename _Compare>
19157 min_element(_ForwardIterator __first, _ForwardIterator __last,
19167 if (__first == __last)
19169 _ForwardIterator __result = __first;
19170 while (++__first != __last)
19171 if (__comp(*__first, *__result))
19172 __result = __first;
19175 # 4993 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_algo.h" 3
19176 template<typename _BidirectionalIterator>
19178 next_permutation(_BidirectionalIterator __first,
19179 _BidirectionalIterator __last)
19188 if (__first == __last)
19190 _BidirectionalIterator __i = __first;
19199 _BidirectionalIterator __ii = __i;
19203 _BidirectionalIterator __j = __last;
19204 while (!(*__i < *--__j))
19206 std::iter_swap(__i, __j);
19207 std::reverse(__ii, __last);
19210 if (__i == __first)
19212 std::reverse(__first, __last);
19217 # 5049 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_algo.h" 3
19218 template<typename _BidirectionalIterator, typename _Compare>
19220 next_permutation(_BidirectionalIterator __first,
19221 _BidirectionalIterator __last, _Compare __comp)
19231 if (__first == __last)
19233 _BidirectionalIterator __i = __first;
19242 _BidirectionalIterator __ii = __i;
19244 if (__comp(*__i, *__ii))
19246 _BidirectionalIterator __j = __last;
19247 while (!__comp(*__i, *--__j))
19249 std::iter_swap(__i, __j);
19250 std::reverse(__ii, __last);
19253 if (__i == __first)
19255 std::reverse(__first, __last);
19260 # 5104 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_algo.h" 3
19261 template<typename _BidirectionalIterator>
19263 prev_permutation(_BidirectionalIterator __first,
19264 _BidirectionalIterator __last)
19273 if (__first == __last)
19275 _BidirectionalIterator __i = __first;
19284 _BidirectionalIterator __ii = __i;
19288 _BidirectionalIterator __j = __last;
19289 while (!(*--__j < *__i))
19291 std::iter_swap(__i, __j);
19292 std::reverse(__ii, __last);
19295 if (__i == __first)
19297 std::reverse(__first, __last);
19302 # 5160 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_algo.h" 3
19303 template<typename _BidirectionalIterator, typename _Compare>
19305 prev_permutation(_BidirectionalIterator __first,
19306 _BidirectionalIterator __last, _Compare __comp)
19316 if (__first == __last)
19318 _BidirectionalIterator __i = __first;
19327 _BidirectionalIterator __ii = __i;
19329 if (__comp(*__ii, *__i))
19331 _BidirectionalIterator __j = __last;
19332 while (!__comp(*--__j, *__i))
19334 std::iter_swap(__i, __j);
19335 std::reverse(__ii, __last);
19338 if (__i == __first)
19340 std::reverse(__first, __last);
19345 # 5219 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_algo.h" 3
19346 template<typename _InputIterator, typename _ForwardIterator>
19348 find_first_of(_InputIterator __first1, _InputIterator __last1,
19349 _ForwardIterator __first2, _ForwardIterator __last2)
19360 for ( ; __first1 != __last1; ++__first1)
19361 for (_ForwardIterator __iter = __first2; __iter != __last2; ++__iter)
19362 if (*__first1 == *__iter)
19366 # 5255 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_algo.h" 3
19367 template<typename _InputIterator, typename _ForwardIterator,
19368 typename _BinaryPredicate>
19370 find_first_of(_InputIterator __first1, _InputIterator __last1,
19371 _ForwardIterator __first2, _ForwardIterator __last2,
19372 _BinaryPredicate __comp)
19383 for ( ; __first1 != __last1; ++__first1)
19384 for (_ForwardIterator __iter = __first2; __iter != __last2; ++__iter)
19385 if (__comp(*__first1, *__iter))
19389 # 5285 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_algo.h" 3
19390 template<typename _ForwardIterator1, typename _ForwardIterator2>
19392 __find_end(_ForwardIterator1 __first1, _ForwardIterator1 __last1,
19393 _ForwardIterator2 __first2, _ForwardIterator2 __last2,
19394 forward_iterator_tag, forward_iterator_tag)
19396 if (__first2 == __last2)
19400 _ForwardIterator1 __result = __last1;
19403 _ForwardIterator1 __new_result
19404 = std::search(__first1, __last1, __first2, __last2);
19405 if (__new_result == __last1)
19409 __result = __new_result;
19410 __first1 = __new_result;
19417 template<typename _ForwardIterator1, typename _ForwardIterator2,
19418 typename _BinaryPredicate>
19420 __find_end(_ForwardIterator1 __first1, _ForwardIterator1 __last1,
19421 _ForwardIterator2 __first2, _ForwardIterator2 __last2,
19422 forward_iterator_tag, forward_iterator_tag,
19423 _BinaryPredicate __comp)
19425 if (__first2 == __last2)
19429 _ForwardIterator1 __result = __last1;
19432 _ForwardIterator1 __new_result
19433 = std::search(__first1, __last1, __first2, __last2, __comp);
19434 if (__new_result == __last1)
19438 __result = __new_result;
19439 __first1 = __new_result;
19447 template<typename _BidirectionalIterator1, typename _BidirectionalIterator2>
19448 _BidirectionalIterator1
19449 __find_end(_BidirectionalIterator1 __first1,
19450 _BidirectionalIterator1 __last1,
19451 _BidirectionalIterator2 __first2,
19452 _BidirectionalIterator2 __last2,
19453 bidirectional_iterator_tag, bidirectional_iterator_tag)
19461 typedef reverse_iterator<_BidirectionalIterator1> _RevIterator1;
19462 typedef reverse_iterator<_BidirectionalIterator2> _RevIterator2;
19464 _RevIterator1 __rlast1(__first1);
19465 _RevIterator2 __rlast2(__first2);
19466 _RevIterator1 __rresult = std::search(_RevIterator1(__last1), __rlast1,
19467 _RevIterator2(__last2), __rlast2);
19469 if (__rresult == __rlast1)
19473 _BidirectionalIterator1 __result = __rresult.base();
19474 std::advance(__result, -std::distance(__first2, __last2));
19479 template<typename _BidirectionalIterator1, typename _BidirectionalIterator2,
19480 typename _BinaryPredicate>
19481 _BidirectionalIterator1
19482 __find_end(_BidirectionalIterator1 __first1,
19483 _BidirectionalIterator1 __last1,
19484 _BidirectionalIterator2 __first2,
19485 _BidirectionalIterator2 __last2,
19486 bidirectional_iterator_tag, bidirectional_iterator_tag,
19487 _BinaryPredicate __comp)
19495 typedef reverse_iterator<_BidirectionalIterator1> _RevIterator1;
19496 typedef reverse_iterator<_BidirectionalIterator2> _RevIterator2;
19498 _RevIterator1 __rlast1(__first1);
19499 _RevIterator2 __rlast2(__first2);
19500 _RevIterator1 __rresult = std::search(_RevIterator1(__last1), __rlast1,
19501 _RevIterator2(__last2), __rlast2,
19504 if (__rresult == __rlast1)
19508 _BidirectionalIterator1 __result = __rresult.base();
19509 std::advance(__result, -std::distance(__first2, __last2));
19513 # 5435 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_algo.h" 3
19514 template<typename _ForwardIterator1, typename _ForwardIterator2>
19515 inline _ForwardIterator1
19516 find_end(_ForwardIterator1 __first1, _ForwardIterator1 __last1,
19517 _ForwardIterator2 __first2, _ForwardIterator2 __last2)
19528 return std::__find_end(__first1, __last1, __first2, __last2,
19529 std::__iterator_category(__first1),
19530 std::__iterator_category(__first2));
19532 # 5480 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_algo.h" 3
19533 template<typename _ForwardIterator1, typename _ForwardIterator2,
19534 typename _BinaryPredicate>
19535 inline _ForwardIterator1
19536 find_end(_ForwardIterator1 __first1, _ForwardIterator1 __last1,
19537 _ForwardIterator2 __first2, _ForwardIterator2 __last2,
19538 _BinaryPredicate __comp)
19549 return std::__find_end(__first1, __last1, __first2, __last2,
19550 std::__iterator_category(__first1),
19551 std::__iterator_category(__first2),
19556 # 69 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/algorithm" 2 3
19557 # 58 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/string" 2 3
19558 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/basic_string.tcc" 1 3
19559 # 47 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/basic_string.tcc" 3
19561 # 48 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/basic_string.tcc" 3
19563 namespace std __attribute__ ((__visibility__ ("default"))) {
19565 template<typename _Type>
19567 __is_null_pointer(_Type* __ptr)
19568 { return __ptr == 0; }
19570 template<typename _Type>
19572 __is_null_pointer(_Type)
19575 template<typename _CharT, typename _Traits, typename _Alloc>
19576 const typename basic_string<_CharT, _Traits, _Alloc>::size_type
19577 basic_string<_CharT, _Traits, _Alloc>::
19578 _Rep::_S_max_size = (((npos - sizeof(_Rep_base))/sizeof(_CharT)) - 1) / 4;
19580 template<typename _CharT, typename _Traits, typename _Alloc>
19582 basic_string<_CharT, _Traits, _Alloc>::
19583 _Rep::_S_terminal = _CharT();
19585 template<typename _CharT, typename _Traits, typename _Alloc>
19586 const typename basic_string<_CharT, _Traits, _Alloc>::size_type
19587 basic_string<_CharT, _Traits, _Alloc>::npos;
19591 template<typename _CharT, typename _Traits, typename _Alloc>
19592 typename basic_string<_CharT, _Traits, _Alloc>::size_type
19593 basic_string<_CharT, _Traits, _Alloc>::_Rep::_S_empty_rep_storage[
19594 (sizeof(_Rep_base) + sizeof(_CharT) + sizeof(size_type) - 1) /
19595 sizeof(size_type)];
19601 template<typename _CharT, typename _Traits, typename _Alloc>
19602 template<typename _InIterator>
19604 basic_string<_CharT, _Traits, _Alloc>::
19605 _S_construct(_InIterator __beg, _InIterator __end, const _Alloc& __a,
19606 input_iterator_tag)
19609 if (__beg == __end && __a == _Alloc())
19610 return _S_empty_rep()._M_refdata();
19614 size_type __len = 0;
19615 while (__beg != __end && __len < sizeof(__buf) / sizeof(_CharT))
19617 __buf[__len++] = *__beg;
19620 _Rep* __r = _Rep::_S_create(__len, size_type(0), __a);
19621 _M_copy(__r->_M_refdata(), __buf, __len);
19624 while (__beg != __end)
19626 if (__len == __r->_M_capacity)
19629 _Rep* __another = _Rep::_S_create(__len + 1, __len, __a);
19630 _M_copy(__another->_M_refdata(), __r->_M_refdata(), __len);
19631 __r->_M_destroy(__a);
19634 __r->_M_refdata()[__len++] = *__beg;
19640 __r->_M_destroy(__a);
19643 __r->_M_set_length_and_sharable(__len);
19644 return __r->_M_refdata();
19647 template<typename _CharT, typename _Traits, typename _Alloc>
19648 template <typename _InIterator>
19650 basic_string<_CharT, _Traits, _Alloc>::
19651 _S_construct(_InIterator __beg, _InIterator __end, const _Alloc& __a,
19652 forward_iterator_tag)
19655 if (__beg == __end && __a == _Alloc())
19656 return _S_empty_rep()._M_refdata();
19659 if (__builtin_expect(__is_null_pointer(__beg) && __beg != __end, 0))
19660 __throw_logic_error(("basic_string::_S_construct NULL not valid"));
19662 const size_type __dnew = static_cast<size_type>(std::distance(__beg,
19665 _Rep* __r = _Rep::_S_create(__dnew, size_type(0), __a);
19667 { _S_copy_chars(__r->_M_refdata(), __beg, __end); }
19670 __r->_M_destroy(__a);
19673 __r->_M_set_length_and_sharable(__dnew);
19674 return __r->_M_refdata();
19677 template<typename _CharT, typename _Traits, typename _Alloc>
19679 basic_string<_CharT, _Traits, _Alloc>::
19680 _S_construct(size_type __n, _CharT __c, const _Alloc& __a)
19683 if (__n == 0 && __a == _Alloc())
19684 return _S_empty_rep()._M_refdata();
19687 _Rep* __r = _Rep::_S_create(__n, size_type(0), __a);
19689 _M_assign(__r->_M_refdata(), __n, __c);
19691 __r->_M_set_length_and_sharable(__n);
19692 return __r->_M_refdata();
19695 template<typename _CharT, typename _Traits, typename _Alloc>
19696 basic_string<_CharT, _Traits, _Alloc>::
19697 basic_string(const basic_string& __str)
19698 : _M_dataplus(__str._M_rep()->_M_grab(_Alloc(__str.get_allocator()),
19699 __str.get_allocator()),
19700 __str.get_allocator())
19703 template<typename _CharT, typename _Traits, typename _Alloc>
19704 basic_string<_CharT, _Traits, _Alloc>::
19705 basic_string(const _Alloc& __a)
19706 : _M_dataplus(_S_construct(size_type(), _CharT(), __a), __a)
19709 template<typename _CharT, typename _Traits, typename _Alloc>
19710 basic_string<_CharT, _Traits, _Alloc>::
19711 basic_string(const basic_string& __str, size_type __pos, size_type __n)
19712 : _M_dataplus(_S_construct(__str._M_data()
19713 + __str._M_check(__pos,
19714 "basic_string::basic_string"),
19715 __str._M_data() + __str._M_limit(__pos, __n)
19716 + __pos, _Alloc()), _Alloc())
19719 template<typename _CharT, typename _Traits, typename _Alloc>
19720 basic_string<_CharT, _Traits, _Alloc>::
19721 basic_string(const basic_string& __str, size_type __pos,
19722 size_type __n, const _Alloc& __a)
19723 : _M_dataplus(_S_construct(__str._M_data()
19724 + __str._M_check(__pos,
19725 "basic_string::basic_string"),
19726 __str._M_data() + __str._M_limit(__pos, __n)
19727 + __pos, __a), __a)
19731 template<typename _CharT, typename _Traits, typename _Alloc>
19732 basic_string<_CharT, _Traits, _Alloc>::
19733 basic_string(const _CharT* __s, size_type __n, const _Alloc& __a)
19734 : _M_dataplus(_S_construct(__s, __s + __n, __a), __a)
19738 template<typename _CharT, typename _Traits, typename _Alloc>
19739 basic_string<_CharT, _Traits, _Alloc>::
19740 basic_string(const _CharT* __s, const _Alloc& __a)
19741 : _M_dataplus(_S_construct(__s, __s ? __s + traits_type::length(__s) :
19742 __s + npos, __a), __a)
19745 template<typename _CharT, typename _Traits, typename _Alloc>
19746 basic_string<_CharT, _Traits, _Alloc>::
19747 basic_string(size_type __n, _CharT __c, const _Alloc& __a)
19748 : _M_dataplus(_S_construct(__n, __c, __a), __a)
19752 template<typename _CharT, typename _Traits, typename _Alloc>
19753 template<typename _InputIterator>
19754 basic_string<_CharT, _Traits, _Alloc>::
19755 basic_string(_InputIterator __beg, _InputIterator __end, const _Alloc& __a)
19756 : _M_dataplus(_S_construct(__beg, __end, __a), __a)
19759 template<typename _CharT, typename _Traits, typename _Alloc>
19760 basic_string<_CharT, _Traits, _Alloc>&
19761 basic_string<_CharT, _Traits, _Alloc>::
19762 assign(const basic_string& __str)
19764 if (_M_rep() != __str._M_rep())
19767 const allocator_type __a = this->get_allocator();
19768 _CharT* __tmp = __str._M_rep()->_M_grab(__a, __str.get_allocator());
19769 _M_rep()->_M_dispose(__a);
19775 template<typename _CharT, typename _Traits, typename _Alloc>
19776 basic_string<_CharT, _Traits, _Alloc>&
19777 basic_string<_CharT, _Traits, _Alloc>::
19778 assign(const _CharT* __s, size_type __n)
19781 _M_check_length(this->size(), __n, "basic_string::assign");
19782 if (_M_disjunct(__s) || _M_rep()->_M_is_shared())
19783 return _M_replace_safe(size_type(0), this->size(), __s, __n);
19787 const size_type __pos = __s - _M_data();
19789 _M_copy(_M_data(), __s, __n);
19791 _M_move(_M_data(), __s, __n);
19792 _M_rep()->_M_set_length_and_sharable(__n);
19797 template<typename _CharT, typename _Traits, typename _Alloc>
19798 basic_string<_CharT, _Traits, _Alloc>&
19799 basic_string<_CharT, _Traits, _Alloc>::
19800 append(size_type __n, _CharT __c)
19804 _M_check_length(size_type(0), __n, "basic_string::append");
19805 const size_type __len = __n + this->size();
19806 if (__len > this->capacity() || _M_rep()->_M_is_shared())
19807 this->reserve(__len);
19808 _M_assign(_M_data() + this->size(), __n, __c);
19809 _M_rep()->_M_set_length_and_sharable(__len);
19814 template<typename _CharT, typename _Traits, typename _Alloc>
19815 basic_string<_CharT, _Traits, _Alloc>&
19816 basic_string<_CharT, _Traits, _Alloc>::
19817 append(const _CharT* __s, size_type __n)
19822 _M_check_length(size_type(0), __n, "basic_string::append");
19823 const size_type __len = __n + this->size();
19824 if (__len > this->capacity() || _M_rep()->_M_is_shared())
19826 if (_M_disjunct(__s))
19827 this->reserve(__len);
19830 const size_type __off = __s - _M_data();
19831 this->reserve(__len);
19832 __s = _M_data() + __off;
19835 _M_copy(_M_data() + this->size(), __s, __n);
19836 _M_rep()->_M_set_length_and_sharable(__len);
19841 template<typename _CharT, typename _Traits, typename _Alloc>
19842 basic_string<_CharT, _Traits, _Alloc>&
19843 basic_string<_CharT, _Traits, _Alloc>::
19844 append(const basic_string& __str)
19846 const size_type __size = __str.size();
19849 const size_type __len = __size + this->size();
19850 if (__len > this->capacity() || _M_rep()->_M_is_shared())
19851 this->reserve(__len);
19852 _M_copy(_M_data() + this->size(), __str._M_data(), __size);
19853 _M_rep()->_M_set_length_and_sharable(__len);
19858 template<typename _CharT, typename _Traits, typename _Alloc>
19859 basic_string<_CharT, _Traits, _Alloc>&
19860 basic_string<_CharT, _Traits, _Alloc>::
19861 append(const basic_string& __str, size_type __pos, size_type __n)
19863 __str._M_check(__pos, "basic_string::append");
19864 __n = __str._M_limit(__pos, __n);
19867 const size_type __len = __n + this->size();
19868 if (__len > this->capacity() || _M_rep()->_M_is_shared())
19869 this->reserve(__len);
19870 _M_copy(_M_data() + this->size(), __str._M_data() + __pos, __n);
19871 _M_rep()->_M_set_length_and_sharable(__len);
19876 template<typename _CharT, typename _Traits, typename _Alloc>
19877 basic_string<_CharT, _Traits, _Alloc>&
19878 basic_string<_CharT, _Traits, _Alloc>::
19879 insert(size_type __pos, const _CharT* __s, size_type __n)
19882 _M_check(__pos, "basic_string::insert");
19883 _M_check_length(size_type(0), __n, "basic_string::insert");
19884 if (_M_disjunct(__s) || _M_rep()->_M_is_shared())
19885 return _M_replace_safe(__pos, size_type(0), __s, __n);
19889 const size_type __off = __s - _M_data();
19890 _M_mutate(__pos, 0, __n);
19891 __s = _M_data() + __off;
19892 _CharT* __p = _M_data() + __pos;
19893 if (__s + __n <= __p)
19894 _M_copy(__p, __s, __n);
19895 else if (__s >= __p)
19896 _M_copy(__p, __s + __n, __n);
19899 const size_type __nleft = __p - __s;
19900 _M_copy(__p, __s, __nleft);
19901 _M_copy(__p + __nleft, __p + __n, __n - __nleft);
19907 template<typename _CharT, typename _Traits, typename _Alloc>
19908 basic_string<_CharT, _Traits, _Alloc>&
19909 basic_string<_CharT, _Traits, _Alloc>::
19910 replace(size_type __pos, size_type __n1, const _CharT* __s,
19914 _M_check(__pos, "basic_string::replace");
19915 __n1 = _M_limit(__pos, __n1);
19916 _M_check_length(__n1, __n2, "basic_string::replace");
19918 if (_M_disjunct(__s) || _M_rep()->_M_is_shared())
19919 return _M_replace_safe(__pos, __n1, __s, __n2);
19920 else if ((__left = __s + __n2 <= _M_data() + __pos)
19921 || _M_data() + __pos + __n1 <= __s)
19924 size_type __off = __s - _M_data();
19925 __left ? __off : (__off += __n2 - __n1);
19926 _M_mutate(__pos, __n1, __n2);
19927 _M_copy(_M_data() + __pos, _M_data() + __off, __n2);
19933 const basic_string __tmp(__s, __n2);
19934 return _M_replace_safe(__pos, __n1, __tmp._M_data(), __n2);
19938 template<typename _CharT, typename _Traits, typename _Alloc>
19940 basic_string<_CharT, _Traits, _Alloc>::_Rep::
19941 _M_destroy(const _Alloc& __a) throw ()
19943 const size_type __size = sizeof(_Rep_base) +
19944 (this->_M_capacity + 1) * sizeof(_CharT);
19945 _Raw_bytes_alloc(__a).deallocate(reinterpret_cast<char*>(this), __size);
19948 template<typename _CharT, typename _Traits, typename _Alloc>
19950 basic_string<_CharT, _Traits, _Alloc>::
19954 if (_M_rep() == &_S_empty_rep())
19957 if (_M_rep()->_M_is_shared())
19958 _M_mutate(0, 0, 0);
19959 _M_rep()->_M_set_leaked();
19962 template<typename _CharT, typename _Traits, typename _Alloc>
19964 basic_string<_CharT, _Traits, _Alloc>::
19965 _M_mutate(size_type __pos, size_type __len1, size_type __len2)
19967 const size_type __old_size = this->size();
19968 const size_type __new_size = __old_size + __len2 - __len1;
19969 const size_type __how_much = __old_size - __pos - __len1;
19971 if (__new_size > this->capacity() || _M_rep()->_M_is_shared())
19974 const allocator_type __a = get_allocator();
19975 _Rep* __r = _Rep::_S_create(__new_size, this->capacity(), __a);
19978 _M_copy(__r->_M_refdata(), _M_data(), __pos);
19980 _M_copy(__r->_M_refdata() + __pos + __len2,
19981 _M_data() + __pos + __len1, __how_much);
19983 _M_rep()->_M_dispose(__a);
19984 _M_data(__r->_M_refdata());
19986 else if (__how_much && __len1 != __len2)
19989 _M_move(_M_data() + __pos + __len2,
19990 _M_data() + __pos + __len1, __how_much);
19992 _M_rep()->_M_set_length_and_sharable(__new_size);
19995 template<typename _CharT, typename _Traits, typename _Alloc>
19997 basic_string<_CharT, _Traits, _Alloc>::
19998 reserve(size_type __res)
20000 if (__res != this->capacity() || _M_rep()->_M_is_shared())
20003 if (__res < this->size())
20004 __res = this->size();
20005 const allocator_type __a = get_allocator();
20006 _CharT* __tmp = _M_rep()->_M_clone(__a, __res - this->size());
20007 _M_rep()->_M_dispose(__a);
20012 template<typename _CharT, typename _Traits, typename _Alloc>
20014 basic_string<_CharT, _Traits, _Alloc>::
20015 swap(basic_string& __s)
20017 if (_M_rep()->_M_is_leaked())
20018 _M_rep()->_M_set_sharable();
20019 if (__s._M_rep()->_M_is_leaked())
20020 __s._M_rep()->_M_set_sharable();
20021 if (this->get_allocator() == __s.get_allocator())
20023 _CharT* __tmp = _M_data();
20024 _M_data(__s._M_data());
20025 __s._M_data(__tmp);
20030 const basic_string __tmp1(_M_ibegin(), _M_iend(),
20031 __s.get_allocator());
20032 const basic_string __tmp2(__s._M_ibegin(), __s._M_iend(),
20033 this->get_allocator());
20039 template<typename _CharT, typename _Traits, typename _Alloc>
20040 typename basic_string<_CharT, _Traits, _Alloc>::_Rep*
20041 basic_string<_CharT, _Traits, _Alloc>::_Rep::
20042 _S_create(size_type __capacity, size_type __old_capacity,
20043 const _Alloc& __alloc)
20047 if (__capacity > _S_max_size)
20048 __throw_length_error(("basic_string::_S_create"));
20049 # 559 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/basic_string.tcc" 3
20050 const size_type __pagesize = 4096;
20051 const size_type __malloc_header_size = 4 * sizeof(void*);
20059 if (__capacity > __old_capacity && __capacity < 2 * __old_capacity)
20060 __capacity = 2 * __old_capacity;
20065 size_type __size = (__capacity + 1) * sizeof(_CharT) + sizeof(_Rep);
20067 const size_type __adj_size = __size + __malloc_header_size;
20068 if (__adj_size > __pagesize && __capacity > __old_capacity)
20070 const size_type __extra = __pagesize - __adj_size % __pagesize;
20071 __capacity += __extra / sizeof(_CharT);
20073 if (__capacity > _S_max_size)
20074 __capacity = _S_max_size;
20075 __size = (__capacity + 1) * sizeof(_CharT) + sizeof(_Rep);
20080 void* __place = _Raw_bytes_alloc(__alloc).allocate(__size);
20081 _Rep *__p = new (__place) _Rep;
20082 __p->_M_capacity = __capacity;
20090 __p->_M_set_sharable();
20094 template<typename _CharT, typename _Traits, typename _Alloc>
20096 basic_string<_CharT, _Traits, _Alloc>::_Rep::
20097 _M_clone(const _Alloc& __alloc, size_type __res)
20100 const size_type __requested_cap = this->_M_length + __res;
20101 _Rep* __r = _Rep::_S_create(__requested_cap, this->_M_capacity,
20103 if (this->_M_length)
20104 _M_copy(__r->_M_refdata(), _M_refdata(), this->_M_length);
20106 __r->_M_set_length_and_sharable(this->_M_length);
20107 return __r->_M_refdata();
20110 template<typename _CharT, typename _Traits, typename _Alloc>
20112 basic_string<_CharT, _Traits, _Alloc>::
20113 resize(size_type __n, _CharT __c)
20115 const size_type __size = this->size();
20116 _M_check_length(__size, __n, "basic_string::resize");
20118 this->append(__n - __size, __c);
20119 else if (__n < __size)
20124 template<typename _CharT, typename _Traits, typename _Alloc>
20125 template<typename _InputIterator>
20126 basic_string<_CharT, _Traits, _Alloc>&
20127 basic_string<_CharT, _Traits, _Alloc>::
20128 _M_replace_dispatch(iterator __i1, iterator __i2, _InputIterator __k1,
20129 _InputIterator __k2, __false_type)
20131 const basic_string __s(__k1, __k2);
20132 const size_type __n1 = __i2 - __i1;
20133 _M_check_length(__n1, __s.size(), "basic_string::_M_replace_dispatch");
20134 return _M_replace_safe(__i1 - _M_ibegin(), __n1, __s._M_data(),
20138 template<typename _CharT, typename _Traits, typename _Alloc>
20139 basic_string<_CharT, _Traits, _Alloc>&
20140 basic_string<_CharT, _Traits, _Alloc>::
20141 _M_replace_aux(size_type __pos1, size_type __n1, size_type __n2,
20144 _M_check_length(__n1, __n2, "basic_string::_M_replace_aux");
20145 _M_mutate(__pos1, __n1, __n2);
20147 _M_assign(_M_data() + __pos1, __n2, __c);
20151 template<typename _CharT, typename _Traits, typename _Alloc>
20152 basic_string<_CharT, _Traits, _Alloc>&
20153 basic_string<_CharT, _Traits, _Alloc>::
20154 _M_replace_safe(size_type __pos1, size_type __n1, const _CharT* __s,
20157 _M_mutate(__pos1, __n1, __n2);
20159 _M_copy(_M_data() + __pos1, __s, __n2);
20163 template<typename _CharT, typename _Traits, typename _Alloc>
20164 basic_string<_CharT, _Traits, _Alloc>
20165 operator+(const _CharT* __lhs,
20166 const basic_string<_CharT, _Traits, _Alloc>& __rhs)
20169 typedef basic_string<_CharT, _Traits, _Alloc> __string_type;
20170 typedef typename __string_type::size_type __size_type;
20171 const __size_type __len = _Traits::length(__lhs);
20172 __string_type __str;
20173 __str.reserve(__len + __rhs.size());
20174 __str.append(__lhs, __len);
20175 __str.append(__rhs);
20179 template<typename _CharT, typename _Traits, typename _Alloc>
20180 basic_string<_CharT, _Traits, _Alloc>
20181 operator+(_CharT __lhs, const basic_string<_CharT, _Traits, _Alloc>& __rhs)
20183 typedef basic_string<_CharT, _Traits, _Alloc> __string_type;
20184 typedef typename __string_type::size_type __size_type;
20185 __string_type __str;
20186 const __size_type __len = __rhs.size();
20187 __str.reserve(__len + 1);
20188 __str.append(__size_type(1), __lhs);
20189 __str.append(__rhs);
20193 template<typename _CharT, typename _Traits, typename _Alloc>
20194 typename basic_string<_CharT, _Traits, _Alloc>::size_type
20195 basic_string<_CharT, _Traits, _Alloc>::
20196 copy(_CharT* __s, size_type __n, size_type __pos) const
20198 _M_check(__pos, "basic_string::copy");
20199 __n = _M_limit(__pos, __n);
20202 _M_copy(__s, _M_data() + __pos, __n);
20207 template<typename _CharT, typename _Traits, typename _Alloc>
20208 typename basic_string<_CharT, _Traits, _Alloc>::size_type
20209 basic_string<_CharT, _Traits, _Alloc>::
20210 find(const _CharT* __s, size_type __pos, size_type __n) const
20213 const size_type __size = this->size();
20214 const _CharT* __data = _M_data();
20217 return __pos <= __size ? __pos : npos;
20221 for (; __pos <= __size - __n; ++__pos)
20222 if (traits_type::eq(__data[__pos], __s[0])
20223 && traits_type::compare(__data + __pos + 1,
20224 __s + 1, __n - 1) == 0)
20230 template<typename _CharT, typename _Traits, typename _Alloc>
20231 typename basic_string<_CharT, _Traits, _Alloc>::size_type
20232 basic_string<_CharT, _Traits, _Alloc>::
20233 find(_CharT __c, size_type __pos) const
20235 size_type __ret = npos;
20236 const size_type __size = this->size();
20237 if (__pos < __size)
20239 const _CharT* __data = _M_data();
20240 const size_type __n = __size - __pos;
20241 const _CharT* __p = traits_type::find(__data + __pos, __n, __c);
20243 __ret = __p - __data;
20248 template<typename _CharT, typename _Traits, typename _Alloc>
20249 typename basic_string<_CharT, _Traits, _Alloc>::size_type
20250 basic_string<_CharT, _Traits, _Alloc>::
20251 rfind(const _CharT* __s, size_type __pos, size_type __n) const
20254 const size_type __size = this->size();
20257 __pos = std::min(size_type(__size - __n), __pos);
20258 const _CharT* __data = _M_data();
20261 if (traits_type::compare(__data + __pos, __s, __n) == 0)
20264 while (__pos-- > 0);
20269 template<typename _CharT, typename _Traits, typename _Alloc>
20270 typename basic_string<_CharT, _Traits, _Alloc>::size_type
20271 basic_string<_CharT, _Traits, _Alloc>::
20272 rfind(_CharT __c, size_type __pos) const
20274 size_type __size = this->size();
20277 if (--__size > __pos)
20279 for (++__size; __size-- > 0; )
20280 if (traits_type::eq(_M_data()[__size], __c))
20286 template<typename _CharT, typename _Traits, typename _Alloc>
20287 typename basic_string<_CharT, _Traits, _Alloc>::size_type
20288 basic_string<_CharT, _Traits, _Alloc>::
20289 find_first_of(const _CharT* __s, size_type __pos, size_type __n) const
20292 for (; __n && __pos < this->size(); ++__pos)
20294 const _CharT* __p = traits_type::find(__s, __n, _M_data()[__pos]);
20301 template<typename _CharT, typename _Traits, typename _Alloc>
20302 typename basic_string<_CharT, _Traits, _Alloc>::size_type
20303 basic_string<_CharT, _Traits, _Alloc>::
20304 find_last_of(const _CharT* __s, size_type __pos, size_type __n) const
20307 size_type __size = this->size();
20310 if (--__size > __pos)
20314 if (traits_type::find(__s, __n, _M_data()[__size]))
20317 while (__size-- != 0);
20322 template<typename _CharT, typename _Traits, typename _Alloc>
20323 typename basic_string<_CharT, _Traits, _Alloc>::size_type
20324 basic_string<_CharT, _Traits, _Alloc>::
20325 find_first_not_of(const _CharT* __s, size_type __pos, size_type __n) const
20328 for (; __pos < this->size(); ++__pos)
20329 if (!traits_type::find(__s, __n, _M_data()[__pos]))
20334 template<typename _CharT, typename _Traits, typename _Alloc>
20335 typename basic_string<_CharT, _Traits, _Alloc>::size_type
20336 basic_string<_CharT, _Traits, _Alloc>::
20337 find_first_not_of(_CharT __c, size_type __pos) const
20339 for (; __pos < this->size(); ++__pos)
20340 if (!traits_type::eq(_M_data()[__pos], __c))
20345 template<typename _CharT, typename _Traits, typename _Alloc>
20346 typename basic_string<_CharT, _Traits, _Alloc>::size_type
20347 basic_string<_CharT, _Traits, _Alloc>::
20348 find_last_not_of(const _CharT* __s, size_type __pos, size_type __n) const
20351 size_type __size = this->size();
20354 if (--__size > __pos)
20358 if (!traits_type::find(__s, __n, _M_data()[__size]))
20366 template<typename _CharT, typename _Traits, typename _Alloc>
20367 typename basic_string<_CharT, _Traits, _Alloc>::size_type
20368 basic_string<_CharT, _Traits, _Alloc>::
20369 find_last_not_of(_CharT __c, size_type __pos) const
20371 size_type __size = this->size();
20374 if (--__size > __pos)
20378 if (!traits_type::eq(_M_data()[__size], __c))
20386 template<typename _CharT, typename _Traits, typename _Alloc>
20388 basic_string<_CharT, _Traits, _Alloc>::
20389 compare(size_type __pos, size_type __n, const basic_string& __str) const
20391 _M_check(__pos, "basic_string::compare");
20392 __n = _M_limit(__pos, __n);
20393 const size_type __osize = __str.size();
20394 const size_type __len = std::min(__n, __osize);
20395 int __r = traits_type::compare(_M_data() + __pos, __str.data(), __len);
20397 __r = __n - __osize;
20401 template<typename _CharT, typename _Traits, typename _Alloc>
20403 basic_string<_CharT, _Traits, _Alloc>::
20404 compare(size_type __pos1, size_type __n1, const basic_string& __str,
20405 size_type __pos2, size_type __n2) const
20407 _M_check(__pos1, "basic_string::compare");
20408 __str._M_check(__pos2, "basic_string::compare");
20409 __n1 = _M_limit(__pos1, __n1);
20410 __n2 = __str._M_limit(__pos2, __n2);
20411 const size_type __len = std::min(__n1, __n2);
20412 int __r = traits_type::compare(_M_data() + __pos1,
20413 __str.data() + __pos2, __len);
20419 template<typename _CharT, typename _Traits, typename _Alloc>
20421 basic_string<_CharT, _Traits, _Alloc>::
20422 compare(const _CharT* __s) const
20425 const size_type __size = this->size();
20426 const size_type __osize = traits_type::length(__s);
20427 const size_type __len = std::min(__size, __osize);
20428 int __r = traits_type::compare(_M_data(), __s, __len);
20430 __r = __size - __osize;
20434 template<typename _CharT, typename _Traits, typename _Alloc>
20436 basic_string <_CharT, _Traits, _Alloc>::
20437 compare(size_type __pos, size_type __n1, const _CharT* __s) const
20440 _M_check(__pos, "basic_string::compare");
20441 __n1 = _M_limit(__pos, __n1);
20442 const size_type __osize = traits_type::length(__s);
20443 const size_type __len = std::min(__n1, __osize);
20444 int __r = traits_type::compare(_M_data() + __pos, __s, __len);
20446 __r = __n1 - __osize;
20450 template<typename _CharT, typename _Traits, typename _Alloc>
20452 basic_string <_CharT, _Traits, _Alloc>::
20453 compare(size_type __pos, size_type __n1, const _CharT* __s,
20454 size_type __n2) const
20457 _M_check(__pos, "basic_string::compare");
20458 __n1 = _M_limit(__pos, __n1);
20459 const size_type __len = std::min(__n1, __n2);
20460 int __r = traits_type::compare(_M_data() + __pos, __s, __len);
20470 extern template class basic_string<char>;
20472 basic_istream<char>&
20473 operator>>(basic_istream<char>&, string&);
20475 basic_ostream<char>&
20476 operator<<(basic_ostream<char>&, const string&);
20478 basic_istream<char>&
20479 getline(basic_istream<char>&, string&, char);
20481 basic_istream<char>&
20482 getline(basic_istream<char>&, string&);
20485 extern template class basic_string<wchar_t>;
20487 basic_istream<wchar_t>&
20488 operator>>(basic_istream<wchar_t>&, wstring&);
20490 basic_ostream<wchar_t>&
20491 operator<<(basic_ostream<wchar_t>&, const wstring&);
20493 basic_istream<wchar_t>&
20494 getline(basic_istream<wchar_t>&, wstring&, wchar_t);
20496 basic_istream<wchar_t>&
20497 getline(basic_istream<wchar_t>&, wstring&);
20502 # 59 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/string" 2 3
20503 # 45 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/stdexcept" 2 3
20505 namespace std __attribute__ ((__visibility__ ("default"))) {
20512 class logic_error : public exception
20519 logic_error(const string& __arg);
20522 ~logic_error() throw();
20526 virtual const char*
20527 what() const throw();
20532 class domain_error : public logic_error
20535 explicit domain_error(const string& __arg);
20539 class invalid_argument : public logic_error
20542 explicit invalid_argument(const string& __arg);
20547 class length_error : public logic_error
20550 explicit length_error(const string& __arg);
20555 class out_of_range : public logic_error
20558 explicit out_of_range(const string& __arg);
20566 class runtime_error : public exception
20573 runtime_error(const string& __arg);
20576 ~runtime_error() throw();
20580 virtual const char*
20581 what() const throw();
20585 class range_error : public runtime_error
20588 explicit range_error(const string& __arg);
20592 class overflow_error : public runtime_error
20595 explicit overflow_error(const string& __arg);
20599 class underflow_error : public runtime_error
20602 explicit underflow_error(const string& __arg);
20606 # 29 "/usr/include/boost/array.hpp" 2 3 4
20607 # 1 "/usr/include/boost/assert.hpp" 1 3 4
20608 # 35 "/usr/include/boost/assert.hpp" 3 4
20609 # 1 "/usr/include/assert.h" 1 3 4
20617 # 1 "/usr/include/gentoo-multilib/amd64/assert.h" 1 3 4
20618 # 37 "/usr/include/gentoo-multilib/amd64/assert.h" 3 4
20619 # 1 "/usr/include/features.h" 1 3 4
20620 # 38 "/usr/include/gentoo-multilib/amd64/assert.h" 2 3 4
20621 # 66 "/usr/include/gentoo-multilib/amd64/assert.h" 3 4
20625 extern void __assert_fail (__const char *__assertion, __const char *__file,
20626 unsigned int __line, __const char *__function)
20627 throw () __attribute__ ((__noreturn__));
20630 extern void __assert_perror_fail (int __errnum, __const char *__file,
20631 unsigned int __line,
20632 __const char *__function)
20633 throw () __attribute__ ((__noreturn__));
20638 extern void __assert (const char *__assertion, const char *__file, int __line)
20639 throw () __attribute__ ((__noreturn__));
20643 # 9 "/usr/include/assert.h" 2 3 4
20644 # 36 "/usr/include/boost/assert.hpp" 2 3 4
20645 # 30 "/usr/include/boost/array.hpp" 2 3 4
20648 # 1 "/usr/include/boost/detail/iterator.hpp" 1 3 4
20649 # 53 "/usr/include/boost/detail/iterator.hpp" 3 4
20650 # 1 "/usr/include/boost/config.hpp" 1 3 4
20651 # 26 "/usr/include/boost/config.hpp" 3 4
20652 # 1 "/usr/include/boost/config/user.hpp" 1 3 4
20653 # 27 "/usr/include/boost/config.hpp" 2 3 4
20658 # 1 "/usr/include/boost/config/select_compiler_config.hpp" 1 3 4
20659 # 32 "/usr/include/boost/config.hpp" 2 3 4
20663 # 1 "/usr/include/boost/config/compiler/gcc.hpp" 1 3 4
20664 # 36 "/usr/include/boost/config.hpp" 2 3 4
20669 # 1 "/usr/include/boost/config/select_stdlib_config.hpp" 1 3 4
20670 # 20 "/usr/include/boost/config/select_stdlib_config.hpp" 3 4
20671 # 1 "/usr/include/boost/config/no_tr1/utility.hpp" 1 3 4
20672 # 21 "/usr/include/boost/config/select_stdlib_config.hpp" 2 3 4
20673 # 41 "/usr/include/boost/config.hpp" 2 3 4
20677 # 1 "/usr/include/boost/config/stdlib/libstdcpp3.hpp" 1 3 4
20678 # 45 "/usr/include/boost/config.hpp" 2 3 4
20683 # 1 "/usr/include/boost/config/select_platform_config.hpp" 1 3 4
20684 # 50 "/usr/include/boost/config.hpp" 2 3 4
20688 # 1 "/usr/include/boost/config/platform/linux.hpp" 1 3 4
20689 # 70 "/usr/include/boost/config/platform/linux.hpp" 3 4
20690 # 1 "/usr/include/boost/config/posix_features.hpp" 1 3 4
20691 # 18 "/usr/include/boost/config/posix_features.hpp" 3 4
20692 # 1 "/usr/include/unistd.h" 1 3 4
20693 # 19 "/usr/include/boost/config/posix_features.hpp" 2 3 4
20694 # 71 "/usr/include/boost/config/platform/linux.hpp" 2 3 4
20695 # 54 "/usr/include/boost/config.hpp" 2 3 4
20699 # 1 "/usr/include/boost/config/suffix.hpp" 1 3 4
20700 # 433 "/usr/include/boost/config/suffix.hpp" 3 4
20703 __extension__ typedef long long long_long_type;
20704 __extension__ typedef unsigned long long ulong_long_type;
20710 # 58 "/usr/include/boost/config.hpp" 2 3 4
20711 # 54 "/usr/include/boost/detail/iterator.hpp" 2 3 4
20712 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/iterator" 1 3 4
20713 # 63 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/iterator" 3 4
20715 # 64 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/iterator" 3
20722 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/ostream" 1 3
20723 # 43 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/ostream" 3
20725 # 44 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/ostream" 3
20727 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/ios" 1 3
20728 # 41 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/ios" 3
20730 # 42 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/ios" 3
20736 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/localefwd.h" 1 3
20737 # 43 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/localefwd.h" 3
20739 # 44 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/localefwd.h" 3
20746 namespace std __attribute__ ((__visibility__ ("default"))) {
20752 template<typename _CharT>
20754 isspace(_CharT, const locale&);
20756 template<typename _CharT>
20758 isprint(_CharT, const locale&);
20760 template<typename _CharT>
20762 iscntrl(_CharT, const locale&);
20764 template<typename _CharT>
20766 isupper(_CharT, const locale&);
20768 template<typename _CharT>
20770 islower(_CharT, const locale&);
20772 template<typename _CharT>
20774 isalpha(_CharT, const locale&);
20776 template<typename _CharT>
20778 isdigit(_CharT, const locale&);
20780 template<typename _CharT>
20782 ispunct(_CharT, const locale&);
20784 template<typename _CharT>
20786 isxdigit(_CharT, const locale&);
20788 template<typename _CharT>
20790 isalnum(_CharT, const locale&);
20792 template<typename _CharT>
20794 isgraph(_CharT, const locale&);
20796 template<typename _CharT>
20798 toupper(_CharT, const locale&);
20800 template<typename _CharT>
20802 tolower(_CharT, const locale&);
20806 template<typename _CharT>
20808 template<> class ctype<char>;
20810 template<> class ctype<wchar_t>;
20812 template<typename _CharT>
20813 class ctype_byname;
20816 class codecvt_base;
20817 class __enc_traits;
20818 template<typename _InternT, typename _ExternT, typename _StateT>
20820 template<> class codecvt<char, char, mbstate_t>;
20822 template<> class codecvt<wchar_t, char, mbstate_t>;
20824 template<typename _InternT, typename _ExternT, typename _StateT>
20825 class codecvt_byname;
20829 template<typename _CharT, typename _InIter = istreambuf_iterator<_CharT> >
20831 template<typename _CharT, typename _OutIter = ostreambuf_iterator<_CharT> >
20834 template<typename _CharT> class numpunct;
20835 template<typename _CharT> class numpunct_byname;
20838 template<typename _CharT>
20840 template<typename _CharT> class
20845 template<typename _CharT, typename _InIter = istreambuf_iterator<_CharT> >
20847 template<typename _CharT, typename _InIter = istreambuf_iterator<_CharT> >
20848 class time_get_byname;
20849 template<typename _CharT, typename _OutIter = ostreambuf_iterator<_CharT> >
20851 template<typename _CharT, typename _OutIter = ostreambuf_iterator<_CharT> >
20852 class time_put_byname;
20857 template<typename _CharT, typename _InIter = istreambuf_iterator<_CharT> >
20859 template<typename _CharT, typename _OutIter = ostreambuf_iterator<_CharT> >
20862 template<typename _CharT, bool _Intl = false>
20864 template<typename _CharT, bool _Intl = false>
20865 class moneypunct_byname;
20868 class messages_base;
20869 template<typename _CharT>
20871 template<typename _CharT>
20872 class messages_byname;
20874 template<typename _Facet>
20876 has_facet(const locale& __loc) throw();
20878 template<typename _Facet>
20880 use_facet(const locale& __loc);
20882 template<typename _Facet>
20883 inline const _Facet&
20884 __check_facet(const _Facet* __f)
20887 __throw_bad_cast();
20892 # 48 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/ios" 2 3
20893 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/ios_base.h" 1 3
20894 # 43 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/ios_base.h" 3
20896 # 44 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/ios_base.h" 3
20900 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_classes.h" 1 3
20901 # 43 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_classes.h" 3
20903 # 44 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_classes.h" 3
20910 namespace std __attribute__ ((__visibility__ ("default"))) {
20911 # 66 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_classes.h" 3
20917 typedef int category;
20924 friend class facet;
20925 friend class _Impl;
20927 template<typename _Facet>
20929 has_facet(const locale&) throw();
20931 template<typename _Facet>
20932 friend const _Facet&
20933 use_facet(const locale&);
20935 template<typename _Cache>
20936 friend struct __use_cache;
20937 # 104 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_classes.h" 3
20938 static const category none = 0;
20939 static const category ctype = 1L << 0;
20940 static const category numeric = 1L << 1;
20941 static const category collate = 1L << 2;
20942 static const category time = 1L << 3;
20943 static const category monetary = 1L << 4;
20944 static const category messages = 1L << 5;
20945 static const category all = (ctype | numeric | collate |
20946 time | monetary | messages);
20947 # 123 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_classes.h" 3
20949 # 132 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_classes.h" 3
20950 locale(const locale& __other) throw();
20951 # 142 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_classes.h" 3
20953 locale(const char* __s);
20954 # 157 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_classes.h" 3
20955 locale(const locale& __base, const char* __s, category __cat);
20956 # 170 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_classes.h" 3
20957 locale(const locale& __base, const locale& __add, category __cat);
20958 # 182 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_classes.h" 3
20959 template<typename _Facet>
20960 locale(const locale& __other, _Facet* __f);
20964 # 196 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_classes.h" 3
20966 operator=(const locale& __other) throw();
20967 # 211 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_classes.h" 3
20968 template<typename _Facet>
20970 combine(const locale& __other) const;
20979 # 230 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_classes.h" 3
20981 operator==(const locale& __other) const throw ();
20990 operator!=(const locale& __other) const throw ()
20991 { return !(this->operator==(__other)); }
20992 # 258 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_classes.h" 3
20993 template<typename _Char, typename _Traits, typename _Alloc>
20995 operator()(const basic_string<_Char, _Traits, _Alloc>& __s1,
20996 const basic_string<_Char, _Traits, _Alloc>& __s2) const;
20997 # 274 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_classes.h" 3
20999 global(const locale&);
21004 static const locale&
21012 static _Impl* _S_classic;
21015 static _Impl* _S_global;
21021 static const char* const* const _S_categories;
21022 # 309 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_classes.h" 3
21023 enum { _S_categories_size = 6 + 6 };
21026 static __gthread_once_t _S_once;
21030 locale(_Impl*) throw();
21036 _S_initialize_once();
21039 _S_normalize_category(category);
21042 _M_coalesce(const locale& __base, const locale& __add, category __cat);
21044 # 342 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_classes.h" 3
21045 class locale::facet
21048 friend class locale;
21049 friend class locale::_Impl;
21051 mutable _Atomic_word _M_refcount;
21054 static __c_locale _S_c_locale;
21057 static const char _S_c_name[2];
21060 static __gthread_once_t _S_once;
21064 _S_initialize_once();
21067 # 373 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_classes.h" 3
21069 facet(size_t __refs = 0) throw() : _M_refcount(__refs ? 1 : 0)
21077 _S_create_c_locale(__c_locale& __cloc, const char* __s,
21078 __c_locale __old = 0);
21081 _S_clone_c_locale(__c_locale& __cloc);
21084 _S_destroy_c_locale(__c_locale& __cloc);
21096 _M_add_reference() const throw()
21097 { __gnu_cxx::__atomic_add_dispatch(&_M_refcount, 1); }
21100 _M_remove_reference() const throw()
21102 if (__gnu_cxx::__exchange_and_add_dispatch(&_M_refcount, -1) == 1)
21111 facet(const facet&);
21114 operator=(const facet&);
21116 # 433 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_classes.h" 3
21120 friend class locale;
21121 friend class locale::_Impl;
21123 template<typename _Facet>
21124 friend const _Facet&
21125 use_facet(const locale&);
21127 template<typename _Facet>
21129 has_facet(const locale&) throw ();
21134 mutable size_t _M_index;
21137 static _Atomic_word _S_refcount;
21140 operator=(const id&);
21156 class locale::_Impl
21160 friend class locale;
21161 friend class locale::facet;
21163 template<typename _Facet>
21165 has_facet(const locale&) throw();
21167 template<typename _Facet>
21168 friend const _Facet&
21169 use_facet(const locale&);
21171 template<typename _Cache>
21172 friend struct __use_cache;
21176 _Atomic_word _M_refcount;
21177 const facet** _M_facets;
21178 size_t _M_facets_size;
21179 const facet** _M_caches;
21181 static const locale::id* const _S_id_ctype[];
21182 static const locale::id* const _S_id_numeric[];
21183 static const locale::id* const _S_id_collate[];
21184 static const locale::id* const _S_id_time[];
21185 static const locale::id* const _S_id_monetary[];
21186 static const locale::id* const _S_id_messages[];
21187 static const locale::id* const* const _S_facet_categories[];
21190 _M_add_reference() throw()
21191 { __gnu_cxx::__atomic_add_dispatch(&_M_refcount, 1); }
21194 _M_remove_reference() throw()
21196 if (__gnu_cxx::__exchange_and_add_dispatch(&_M_refcount, -1) == 1)
21205 _Impl(const _Impl&, size_t);
21206 _Impl(const char*, size_t);
21207 _Impl(size_t) throw();
21211 _Impl(const _Impl&);
21214 operator=(const _Impl&);
21217 _M_check_same_name()
21222 for (size_t __i = 0; __ret && __i < _S_categories_size - 1; ++__i)
21223 __ret = std::strcmp(_M_names[__i], _M_names[__i + 1]) == 0;
21228 _M_replace_categories(const _Impl*, category);
21231 _M_replace_category(const _Impl*, const locale::id* const*);
21234 _M_replace_facet(const _Impl*, const locale::id*);
21237 _M_install_facet(const locale::id*, const facet*);
21239 template<typename _Facet>
21241 _M_init_facet(_Facet* __facet)
21242 { _M_install_facet(&_Facet::id, __facet); }
21245 _M_install_cache(const facet*, size_t);
21248 template<typename _Facet>
21249 locale::locale(const locale& __other, _Facet* __f)
21251 _M_impl = new _Impl(*__other._M_impl, 1);
21254 { _M_impl->_M_install_facet(&_Facet::id, __f); }
21257 _M_impl->_M_remove_reference();
21260 delete [] _M_impl->_M_names[0];
21261 _M_impl->_M_names[0] = 0;
21265 # 48 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/ios_base.h" 2 3
21267 namespace std __attribute__ ((__visibility__ ("default"))) {
21275 _S_boolalpha = 1L << 0,
21277 _S_fixed = 1L << 2,
21279 _S_internal = 1L << 4,
21282 _S_right = 1L << 7,
21283 _S_scientific = 1L << 8,
21284 _S_showbase = 1L << 9,
21285 _S_showpoint = 1L << 10,
21286 _S_showpos = 1L << 11,
21287 _S_skipws = 1L << 12,
21288 _S_unitbuf = 1L << 13,
21289 _S_uppercase = 1L << 14,
21290 _S_adjustfield = _S_left | _S_right | _S_internal,
21291 _S_basefield = _S_dec | _S_oct | _S_hex,
21292 _S_floatfield = _S_scientific | _S_fixed,
21293 _S_ios_fmtflags_end = 1L << 16
21296 inline _Ios_Fmtflags
21297 operator&(_Ios_Fmtflags __a, _Ios_Fmtflags __b)
21298 { return _Ios_Fmtflags(static_cast<int>(__a) & static_cast<int>(__b)); }
21300 inline _Ios_Fmtflags
21301 operator|(_Ios_Fmtflags __a, _Ios_Fmtflags __b)
21302 { return _Ios_Fmtflags(static_cast<int>(__a) | static_cast<int>(__b)); }
21304 inline _Ios_Fmtflags
21305 operator^(_Ios_Fmtflags __a, _Ios_Fmtflags __b)
21306 { return _Ios_Fmtflags(static_cast<int>(__a) ^ static_cast<int>(__b)); }
21308 inline _Ios_Fmtflags&
21309 operator|=(_Ios_Fmtflags& __a, _Ios_Fmtflags __b)
21310 { return __a = __a | __b; }
21312 inline _Ios_Fmtflags&
21313 operator&=(_Ios_Fmtflags& __a, _Ios_Fmtflags __b)
21314 { return __a = __a & __b; }
21316 inline _Ios_Fmtflags&
21317 operator^=(_Ios_Fmtflags& __a, _Ios_Fmtflags __b)
21318 { return __a = __a ^ __b; }
21320 inline _Ios_Fmtflags
21321 operator~(_Ios_Fmtflags __a)
21322 { return _Ios_Fmtflags(~static_cast<int>(__a)); }
21332 _S_trunc = 1L << 5,
21333 _S_ios_openmode_end = 1L << 16
21336 inline _Ios_Openmode
21337 operator&(_Ios_Openmode __a, _Ios_Openmode __b)
21338 { return _Ios_Openmode(static_cast<int>(__a) & static_cast<int>(__b)); }
21340 inline _Ios_Openmode
21341 operator|(_Ios_Openmode __a, _Ios_Openmode __b)
21342 { return _Ios_Openmode(static_cast<int>(__a) | static_cast<int>(__b)); }
21344 inline _Ios_Openmode
21345 operator^(_Ios_Openmode __a, _Ios_Openmode __b)
21346 { return _Ios_Openmode(static_cast<int>(__a) ^ static_cast<int>(__b)); }
21348 inline _Ios_Openmode&
21349 operator|=(_Ios_Openmode& __a, _Ios_Openmode __b)
21350 { return __a = __a | __b; }
21352 inline _Ios_Openmode&
21353 operator&=(_Ios_Openmode& __a, _Ios_Openmode __b)
21354 { return __a = __a & __b; }
21356 inline _Ios_Openmode&
21357 operator^=(_Ios_Openmode& __a, _Ios_Openmode __b)
21358 { return __a = __a ^ __b; }
21360 inline _Ios_Openmode
21361 operator~(_Ios_Openmode __a)
21362 { return _Ios_Openmode(~static_cast<int>(__a)); }
21368 _S_badbit = 1L << 0,
21369 _S_eofbit = 1L << 1,
21370 _S_failbit = 1L << 2,
21371 _S_ios_iostate_end = 1L << 16
21374 inline _Ios_Iostate
21375 operator&(_Ios_Iostate __a, _Ios_Iostate __b)
21376 { return _Ios_Iostate(static_cast<int>(__a) & static_cast<int>(__b)); }
21378 inline _Ios_Iostate
21379 operator|(_Ios_Iostate __a, _Ios_Iostate __b)
21380 { return _Ios_Iostate(static_cast<int>(__a) | static_cast<int>(__b)); }
21382 inline _Ios_Iostate
21383 operator^(_Ios_Iostate __a, _Ios_Iostate __b)
21384 { return _Ios_Iostate(static_cast<int>(__a) ^ static_cast<int>(__b)); }
21386 inline _Ios_Iostate&
21387 operator|=(_Ios_Iostate& __a, _Ios_Iostate __b)
21388 { return __a = __a | __b; }
21390 inline _Ios_Iostate&
21391 operator&=(_Ios_Iostate& __a, _Ios_Iostate __b)
21392 { return __a = __a & __b; }
21394 inline _Ios_Iostate&
21395 operator^=(_Ios_Iostate& __a, _Ios_Iostate __b)
21396 { return __a = __a ^ __b; }
21398 inline _Ios_Iostate
21399 operator~(_Ios_Iostate __a)
21400 { return _Ios_Iostate(~static_cast<int>(__a)); }
21407 _S_ios_seekdir_end = 1L << 16
21409 # 201 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/ios_base.h" 3
21416 class failure : public exception
21422 failure(const string& __str) throw();
21427 ~failure() throw();
21429 virtual const char*
21430 what() const throw();
21435 # 253 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/ios_base.h" 3
21436 typedef _Ios_Fmtflags fmtflags;
21439 static const fmtflags boolalpha = _S_boolalpha;
21442 static const fmtflags dec = _S_dec;
21445 static const fmtflags fixed = _S_fixed;
21448 static const fmtflags hex = _S_hex;
21453 static const fmtflags internal = _S_internal;
21457 static const fmtflags left = _S_left;
21460 static const fmtflags oct = _S_oct;
21464 static const fmtflags right = _S_right;
21467 static const fmtflags scientific = _S_scientific;
21471 static const fmtflags showbase = _S_showbase;
21475 static const fmtflags showpoint = _S_showpoint;
21478 static const fmtflags showpos = _S_showpos;
21481 static const fmtflags skipws = _S_skipws;
21484 static const fmtflags unitbuf = _S_unitbuf;
21488 static const fmtflags uppercase = _S_uppercase;
21491 static const fmtflags adjustfield = _S_adjustfield;
21494 static const fmtflags basefield = _S_basefield;
21497 static const fmtflags floatfield = _S_floatfield;
21498 # 328 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/ios_base.h" 3
21499 typedef _Ios_Iostate iostate;
21503 static const iostate badbit = _S_badbit;
21506 static const iostate eofbit = _S_eofbit;
21511 static const iostate failbit = _S_failbit;
21514 static const iostate goodbit = _S_goodbit;
21515 # 359 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/ios_base.h" 3
21516 typedef _Ios_Openmode openmode;
21519 static const openmode app = _S_app;
21522 static const openmode ate = _S_ate;
21528 static const openmode binary = _S_bin;
21531 static const openmode in = _S_in;
21534 static const openmode out = _S_out;
21537 static const openmode trunc = _S_trunc;
21538 # 392 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/ios_base.h" 3
21539 typedef _Ios_Seekdir seekdir;
21542 static const seekdir beg = _S_beg;
21545 static const seekdir cur = _S_cur;
21548 static const seekdir end = _S_end;
21551 typedef int io_state;
21552 typedef int open_mode;
21553 typedef int seek_dir;
21555 typedef std::streampos streampos;
21556 typedef std::streamoff streamoff;
21557 # 418 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/ios_base.h" 3
21564 # 435 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/ios_base.h" 3
21565 typedef void (*event_callback) (event, ios_base&, int);
21566 # 447 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/ios_base.h" 3
21568 register_callback(event_callback __fn, int __index);
21577 streamsize _M_precision;
21578 streamsize _M_width;
21580 iostate _M_exception;
21581 iostate _M_streambuf_state;
21586 struct _Callback_list
21589 _Callback_list* _M_next;
21590 ios_base::event_callback _M_fn;
21592 _Atomic_word _M_refcount;
21594 _Callback_list(ios_base::event_callback __fn, int __index,
21595 _Callback_list* __cb)
21596 : _M_next(__cb), _M_fn(__fn), _M_index(__index), _M_refcount(0) { }
21599 _M_add_reference() { __gnu_cxx::__atomic_add_dispatch(&_M_refcount, 1); }
21603 _M_remove_reference()
21604 { return __gnu_cxx::__exchange_and_add_dispatch(&_M_refcount, -1); }
21607 _Callback_list* _M_callbacks;
21610 _M_call_callbacks(event __ev) throw();
21613 _M_dispose_callbacks(void);
21620 _Words() : _M_pword(0), _M_iword(0) { }
21624 _Words _M_word_zero;
21628 enum { _S_local_word_size = 8 };
21629 _Words _M_local_word[_S_local_word_size];
21636 _M_grow_words(int __index, bool __iword);
21639 locale _M_ios_locale;
21652 friend class ios_base;
21658 static _Atomic_word _S_refcount;
21659 static bool _S_synced_with_stdio;
21668 flags() const { return _M_flags; }
21669 # 557 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/ios_base.h" 3
21671 flags(fmtflags __fmtfl)
21673 fmtflags __old = _M_flags;
21674 _M_flags = __fmtfl;
21677 # 573 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/ios_base.h" 3
21679 setf(fmtflags __fmtfl)
21681 fmtflags __old = _M_flags;
21682 _M_flags |= __fmtfl;
21685 # 590 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/ios_base.h" 3
21687 setf(fmtflags __fmtfl, fmtflags __mask)
21689 fmtflags __old = _M_flags;
21690 _M_flags &= ~__mask;
21691 _M_flags |= (__fmtfl & __mask);
21702 unsetf(fmtflags __mask) { _M_flags &= ~__mask; }
21703 # 617 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/ios_base.h" 3
21705 precision() const { return _M_precision; }
21713 precision(streamsize __prec)
21715 streamsize __old = _M_precision;
21716 _M_precision = __prec;
21727 width() const { return _M_width; }
21735 width(streamsize __wide)
21737 streamsize __old = _M_width;
21741 # 666 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/ios_base.h" 3
21743 sync_with_stdio(bool __sync = true);
21744 # 678 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/ios_base.h" 3
21746 imbue(const locale& __loc);
21747 # 689 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/ios_base.h" 3
21749 getloc() const { return _M_ios_locale; }
21750 # 699 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/ios_base.h" 3
21751 inline const locale&
21752 _M_getloc() const { return _M_ios_locale; }
21753 # 717 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/ios_base.h" 3
21756 # 733 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/ios_base.h" 3
21760 _Words& __word = (__ix < _M_word_size)
21761 ? _M_word[__ix] : _M_grow_words(__ix, true);
21762 return __word._M_iword;
21764 # 754 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/ios_base.h" 3
21768 _Words& __word = (__ix < _M_word_size)
21769 ? _M_word[__ix] : _M_grow_words(__ix, false);
21770 return __word._M_pword;
21772 # 771 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/ios_base.h" 3
21773 virtual ~ios_base();
21781 ios_base(const ios_base&);
21784 operator=(const ios_base&);
21790 boolalpha(ios_base& __base)
21792 __base.setf(ios_base::boolalpha);
21798 noboolalpha(ios_base& __base)
21800 __base.unsetf(ios_base::boolalpha);
21806 showbase(ios_base& __base)
21808 __base.setf(ios_base::showbase);
21814 noshowbase(ios_base& __base)
21816 __base.unsetf(ios_base::showbase);
21822 showpoint(ios_base& __base)
21824 __base.setf(ios_base::showpoint);
21830 noshowpoint(ios_base& __base)
21832 __base.unsetf(ios_base::showpoint);
21838 showpos(ios_base& __base)
21840 __base.setf(ios_base::showpos);
21846 noshowpos(ios_base& __base)
21848 __base.unsetf(ios_base::showpos);
21854 skipws(ios_base& __base)
21856 __base.setf(ios_base::skipws);
21862 noskipws(ios_base& __base)
21864 __base.unsetf(ios_base::skipws);
21870 uppercase(ios_base& __base)
21872 __base.setf(ios_base::uppercase);
21878 nouppercase(ios_base& __base)
21880 __base.unsetf(ios_base::uppercase);
21886 unitbuf(ios_base& __base)
21888 __base.setf(ios_base::unitbuf);
21894 nounitbuf(ios_base& __base)
21896 __base.unsetf(ios_base::unitbuf);
21903 internal(ios_base& __base)
21905 __base.setf(ios_base::internal, ios_base::adjustfield);
21911 left(ios_base& __base)
21913 __base.setf(ios_base::left, ios_base::adjustfield);
21919 right(ios_base& __base)
21921 __base.setf(ios_base::right, ios_base::adjustfield);
21928 dec(ios_base& __base)
21930 __base.setf(ios_base::dec, ios_base::basefield);
21936 hex(ios_base& __base)
21938 __base.setf(ios_base::hex, ios_base::basefield);
21944 oct(ios_base& __base)
21946 __base.setf(ios_base::oct, ios_base::basefield);
21953 fixed(ios_base& __base)
21955 __base.setf(ios_base::fixed, ios_base::floatfield);
21961 scientific(ios_base& __base)
21963 __base.setf(ios_base::scientific, ios_base::floatfield);
21968 # 49 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/ios" 2 3
21969 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/streambuf" 1 3
21970 # 42 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/streambuf" 3
21972 # 43 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/streambuf" 3
21973 # 51 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/streambuf" 3
21974 namespace std __attribute__ ((__visibility__ ("default"))) {
21981 template<typename _CharT, typename _Traits>
21983 __copy_streambufs_eof(basic_streambuf<_CharT, _Traits>*,
21984 basic_streambuf<_CharT, _Traits>*, bool&);
21985 # 123 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/streambuf" 3
21986 template<typename _CharT, typename _Traits>
21987 class basic_streambuf
21996 typedef _CharT char_type;
21997 typedef _Traits traits_type;
21998 typedef typename traits_type::int_type int_type;
21999 typedef typename traits_type::pos_type pos_type;
22000 typedef typename traits_type::off_type off_type;
22001 # 146 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/streambuf" 3
22002 typedef basic_streambuf<char_type, traits_type> __streambuf_type;
22005 friend class basic_ios<char_type, traits_type>;
22006 friend class basic_istream<char_type, traits_type>;
22007 friend class basic_ostream<char_type, traits_type>;
22008 friend class istreambuf_iterator<char_type, traits_type>;
22009 friend class ostreambuf_iterator<char_type, traits_type>;
22012 __copy_streambufs_eof<>(__streambuf_type*, __streambuf_type*, bool&);
22014 template<typename _CharT2>
22015 friend typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value,
22017 __copy_aux(istreambuf_iterator<_CharT2>,
22018 istreambuf_iterator<_CharT2>, _CharT2*);
22020 template<typename _CharT2>
22021 friend typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value,
22022 istreambuf_iterator<_CharT2> >::__type
22023 find(istreambuf_iterator<_CharT2>, istreambuf_iterator<_CharT2>,
22026 template<typename _CharT2, typename _Traits2>
22027 friend basic_istream<_CharT2, _Traits2>&
22028 operator>>(basic_istream<_CharT2, _Traits2>&, _CharT2*);
22030 template<typename _CharT2, typename _Traits2, typename _Alloc>
22031 friend basic_istream<_CharT2, _Traits2>&
22032 operator>>(basic_istream<_CharT2, _Traits2>&,
22033 basic_string<_CharT2, _Traits2, _Alloc>&);
22035 template<typename _CharT2, typename _Traits2, typename _Alloc>
22036 friend basic_istream<_CharT2, _Traits2>&
22037 getline(basic_istream<_CharT2, _Traits2>&,
22038 basic_string<_CharT2, _Traits2, _Alloc>&, _CharT2);
22041 # 195 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/streambuf" 3
22042 char_type* _M_in_beg;
22043 char_type* _M_in_cur;
22044 char_type* _M_in_end;
22045 char_type* _M_out_beg;
22046 char_type* _M_out_cur;
22047 char_type* _M_out_end;
22054 locale _M_buf_locale;
22061 # 223 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/streambuf" 3
22063 pubimbue(const locale &__loc)
22065 locale __tmp(this->getloc());
22066 this->imbue(__loc);
22067 _M_buf_locale = __loc;
22070 # 240 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/streambuf" 3
22073 { return _M_buf_locale; }
22074 # 253 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/streambuf" 3
22076 pubsetbuf(char_type* __s, streamsize __n)
22077 { return this->setbuf(__s, __n); }
22080 pubseekoff(off_type __off, ios_base::seekdir __way,
22081 ios_base::openmode __mode = ios_base::in | ios_base::out)
22082 { return this->seekoff(__off, __way, __mode); }
22085 pubseekpos(pos_type __sp,
22086 ios_base::openmode __mode = ios_base::in | ios_base::out)
22087 { return this->seekpos(__sp, __mode); }
22090 pubsync() { return this->sync(); }
22091 # 280 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/streambuf" 3
22095 const streamsize __ret = this->egptr() - this->gptr();
22096 return __ret ? __ret : this->showmanyc();
22098 # 294 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/streambuf" 3
22102 int_type __ret = traits_type::eof();
22103 if (__builtin_expect(!traits_type::eq_int_type(this->sbumpc(),
22105 __ret = this->sgetc();
22108 # 312 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/streambuf" 3
22113 if (__builtin_expect(this->gptr() < this->egptr(), true))
22115 __ret = traits_type::to_int_type(*this->gptr());
22119 __ret = this->uflow();
22122 # 334 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/streambuf" 3
22127 if (__builtin_expect(this->gptr() < this->egptr(), true))
22128 __ret = traits_type::to_int_type(*this->gptr());
22130 __ret = this->underflow();
22133 # 353 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/streambuf" 3
22135 sgetn(char_type* __s, streamsize __n)
22136 { return this->xsgetn(__s, __n); }
22137 # 367 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/streambuf" 3
22139 sputbackc(char_type __c)
22142 const bool __testpos = this->eback() < this->gptr();
22143 if (__builtin_expect(!__testpos ||
22144 !traits_type::eq(__c, this->gptr()[-1]), false))
22145 __ret = this->pbackfail(traits_type::to_int_type(__c));
22149 __ret = traits_type::to_int_type(*this->gptr());
22153 # 392 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/streambuf" 3
22158 if (__builtin_expect(this->eback() < this->gptr(), true))
22161 __ret = traits_type::to_int_type(*this->gptr());
22164 __ret = this->pbackfail();
22167 # 419 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/streambuf" 3
22169 sputc(char_type __c)
22172 if (__builtin_expect(this->pptr() < this->epptr(), true))
22174 *this->pptr() = __c;
22176 __ret = traits_type::to_int_type(__c);
22179 __ret = this->overflow(traits_type::to_int_type(__c));
22182 # 445 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/streambuf" 3
22184 sputn(const char_type* __s, streamsize __n)
22185 { return this->xsputn(__s, __n); }
22188 # 459 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/streambuf" 3
22190 : _M_in_beg(0), _M_in_cur(0), _M_in_end(0),
22191 _M_out_beg(0), _M_out_cur(0), _M_out_end(0),
22192 _M_buf_locale(locale())
22194 # 477 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/streambuf" 3
22196 eback() const { return _M_in_beg; }
22199 gptr() const { return _M_in_cur; }
22202 egptr() const { return _M_in_end; }
22203 # 493 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/streambuf" 3
22205 gbump(int __n) { _M_in_cur += __n; }
22206 # 504 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/streambuf" 3
22208 setg(char_type* __gbeg, char_type* __gnext, char_type* __gend)
22210 _M_in_beg = __gbeg;
22211 _M_in_cur = __gnext;
22212 _M_in_end = __gend;
22214 # 524 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/streambuf" 3
22216 pbase() const { return _M_out_beg; }
22219 pptr() const { return _M_out_cur; }
22222 epptr() const { return _M_out_end; }
22223 # 540 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/streambuf" 3
22225 pbump(int __n) { _M_out_cur += __n; }
22226 # 550 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/streambuf" 3
22228 setp(char_type* __pbeg, char_type* __pend)
22230 _M_out_beg = _M_out_cur = __pbeg;
22231 _M_out_end = __pend;
22233 # 571 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/streambuf" 3
22235 imbue(const locale&)
22237 # 586 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/streambuf" 3
22238 virtual basic_streambuf<char_type,_Traits>*
22239 setbuf(char_type*, streamsize)
22241 # 597 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/streambuf" 3
22243 seekoff(off_type, ios_base::seekdir,
22244 ios_base::openmode = ios_base::in | ios_base::out)
22245 { return pos_type(off_type(-1)); }
22246 # 609 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/streambuf" 3
22249 ios_base::openmode = ios_base::in | ios_base::out)
22250 { return pos_type(off_type(-1)); }
22251 # 622 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/streambuf" 3
22253 sync() { return 0; }
22254 # 644 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/streambuf" 3
22256 showmanyc() { return 0; }
22257 # 660 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/streambuf" 3
22259 xsgetn(char_type* __s, streamsize __n);
22260 # 682 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/streambuf" 3
22263 { return traits_type::eof(); }
22264 # 695 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/streambuf" 3
22268 int_type __ret = traits_type::eof();
22269 const bool __testeof = traits_type::eq_int_type(this->underflow(),
22273 __ret = traits_type::to_int_type(*this->gptr());
22278 # 719 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/streambuf" 3
22280 pbackfail(int_type = traits_type::eof())
22281 { return traits_type::eof(); }
22282 # 737 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/streambuf" 3
22284 xsputn(const char_type* __s, streamsize __n);
22285 # 762 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/streambuf" 3
22287 overflow(int_type = traits_type::eof())
22288 { return traits_type::eof(); }
22289 # 791 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/streambuf" 3
22293 basic_streambuf(const __streambuf_type& __sb)
22294 : _M_in_beg(__sb._M_in_beg), _M_in_cur(__sb._M_in_cur),
22295 _M_in_end(__sb._M_in_end), _M_out_beg(__sb._M_out_beg),
22296 _M_out_cur(__sb._M_out_cur), _M_out_end(__sb._M_out_cur),
22297 _M_buf_locale(__sb._M_buf_locale)
22301 operator=(const __streambuf_type&) { return *this; };
22307 __copy_streambufs_eof(basic_streambuf<char>* __sbin,
22308 basic_streambuf<char>* __sbout, bool& __ineof);
22312 __copy_streambufs_eof(basic_streambuf<wchar_t>* __sbin,
22313 basic_streambuf<wchar_t>* __sbout, bool& __ineof);
22319 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/streambuf.tcc" 1 3
22320 # 43 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/streambuf.tcc" 3
22322 # 44 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/streambuf.tcc" 3
22324 namespace std __attribute__ ((__visibility__ ("default"))) {
22326 template<typename _CharT, typename _Traits>
22328 basic_streambuf<_CharT, _Traits>::
22329 xsgetn(char_type* __s, streamsize __n)
22331 streamsize __ret = 0;
22332 while (__ret < __n)
22334 const streamsize __buf_len = this->egptr() - this->gptr();
22337 const streamsize __remaining = __n - __ret;
22338 const streamsize __len = std::min(__buf_len, __remaining);
22339 traits_type::copy(__s, this->gptr(), __len);
22342 this->gbump(__len);
22347 const int_type __c = this->uflow();
22348 if (!traits_type::eq_int_type(__c, traits_type::eof()))
22350 traits_type::assign(*__s++, traits_type::to_char_type(__c));
22360 template<typename _CharT, typename _Traits>
22362 basic_streambuf<_CharT, _Traits>::
22363 xsputn(const char_type* __s, streamsize __n)
22365 streamsize __ret = 0;
22366 while (__ret < __n)
22368 const streamsize __buf_len = this->epptr() - this->pptr();
22371 const streamsize __remaining = __n - __ret;
22372 const streamsize __len = std::min(__buf_len, __remaining);
22373 traits_type::copy(this->pptr(), __s, __len);
22376 this->pbump(__len);
22381 int_type __c = this->overflow(traits_type::to_int_type(*__s));
22382 if (!traits_type::eq_int_type(__c, traits_type::eof()))
22397 template<typename _CharT, typename _Traits>
22399 __copy_streambufs_eof(basic_streambuf<_CharT, _Traits>* __sbin,
22400 basic_streambuf<_CharT, _Traits>* __sbout,
22403 streamsize __ret = 0;
22405 typename _Traits::int_type __c = __sbin->sgetc();
22406 while (!_Traits::eq_int_type(__c, _Traits::eof()))
22408 __c = __sbout->sputc(_Traits::to_char_type(__c));
22409 if (_Traits::eq_int_type(__c, _Traits::eof()))
22415 __c = __sbin->snextc();
22420 template<typename _CharT, typename _Traits>
22422 __copy_streambufs(basic_streambuf<_CharT, _Traits>* __sbin,
22423 basic_streambuf<_CharT, _Traits>* __sbout)
22426 return __copy_streambufs_eof(__sbin, __sbout, __ineof);
22433 extern template class basic_streambuf<char>;
22436 __copy_streambufs(basic_streambuf<char>*,
22437 basic_streambuf<char>*);
22440 __copy_streambufs_eof(basic_streambuf<char>*,
22441 basic_streambuf<char>*, bool&);
22444 extern template class basic_streambuf<wchar_t>;
22447 __copy_streambufs(basic_streambuf<wchar_t>*,
22448 basic_streambuf<wchar_t>*);
22451 __copy_streambufs_eof(basic_streambuf<wchar_t>*,
22452 basic_streambuf<wchar_t>*, bool&);
22457 # 821 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/streambuf" 2 3
22458 # 50 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/ios" 2 3
22459 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/basic_ios.h" 1 3
22460 # 39 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/basic_ios.h" 3
22462 # 40 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/basic_ios.h" 3
22464 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/streambuf_iterator.h" 1 3
22465 # 39 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/streambuf_iterator.h" 3
22467 # 40 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/streambuf_iterator.h" 3
22472 namespace std __attribute__ ((__visibility__ ("default"))) {
22476 template<typename _CharT, typename _Traits>
22477 class istreambuf_iterator
22478 : public iterator<input_iterator_tag, _CharT, typename _Traits::off_type,
22485 typedef _CharT char_type;
22486 typedef _Traits traits_type;
22487 typedef typename _Traits::int_type int_type;
22488 typedef basic_streambuf<_CharT, _Traits> streambuf_type;
22489 typedef basic_istream<_CharT, _Traits> istream_type;
22492 template<typename _CharT2>
22493 friend typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value,
22494 ostreambuf_iterator<_CharT2> >::__type
22495 copy(istreambuf_iterator<_CharT2>, istreambuf_iterator<_CharT2>,
22496 ostreambuf_iterator<_CharT2>);
22498 template<typename _CharT2>
22499 friend typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value,
22501 __copy_aux(istreambuf_iterator<_CharT2>, istreambuf_iterator<_CharT2>,
22504 template<typename _CharT2>
22505 friend typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value,
22506 istreambuf_iterator<_CharT2> >::__type
22507 find(istreambuf_iterator<_CharT2>, istreambuf_iterator<_CharT2>,
22518 mutable streambuf_type* _M_sbuf;
22519 mutable int_type _M_c;
22523 istreambuf_iterator() throw()
22524 : _M_sbuf(0), _M_c(traits_type::eof()) { }
22527 istreambuf_iterator(istream_type& __s) throw()
22528 : _M_sbuf(__s.rdbuf()), _M_c(traits_type::eof()) { }
22531 istreambuf_iterator(streambuf_type* __s) throw()
22532 : _M_sbuf(__s), _M_c(traits_type::eof()) { }
22547 return traits_type::to_char_type(_M_get());
22551 istreambuf_iterator&
22560 _M_c = traits_type::eof();
22566 istreambuf_iterator
22573 istreambuf_iterator __old = *this;
22576 __old._M_c = _M_sbuf->sbumpc();
22577 _M_c = traits_type::eof();
22587 equal(const istreambuf_iterator& __b) const
22589 const bool __thiseof = _M_at_eof();
22590 const bool __beof = __b._M_at_eof();
22591 return (__thiseof && __beof || (!__thiseof && !__beof));
22598 const int_type __eof = traits_type::eof();
22599 int_type __ret = __eof;
22602 if (!traits_type::eq_int_type(_M_c, __eof))
22604 else if (!traits_type::eq_int_type((__ret = _M_sbuf->sgetc()),
22616 const int_type __eof = traits_type::eof();
22617 return traits_type::eq_int_type(_M_get(), __eof);
22621 template<typename _CharT, typename _Traits>
22623 operator==(const istreambuf_iterator<_CharT, _Traits>& __a,
22624 const istreambuf_iterator<_CharT, _Traits>& __b)
22625 { return __a.equal(__b); }
22627 template<typename _CharT, typename _Traits>
22629 operator!=(const istreambuf_iterator<_CharT, _Traits>& __a,
22630 const istreambuf_iterator<_CharT, _Traits>& __b)
22631 { return !__a.equal(__b); }
22634 template<typename _CharT, typename _Traits>
22635 class ostreambuf_iterator
22636 : public iterator<output_iterator_tag, void, void, void, void>
22642 typedef _CharT char_type;
22643 typedef _Traits traits_type;
22644 typedef basic_streambuf<_CharT, _Traits> streambuf_type;
22645 typedef basic_ostream<_CharT, _Traits> ostream_type;
22648 template<typename _CharT2>
22649 friend typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value,
22650 ostreambuf_iterator<_CharT2> >::__type
22651 copy(istreambuf_iterator<_CharT2>, istreambuf_iterator<_CharT2>,
22652 ostreambuf_iterator<_CharT2>);
22655 streambuf_type* _M_sbuf;
22660 ostreambuf_iterator(ostream_type& __s) throw ()
22661 : _M_sbuf(__s.rdbuf()), _M_failed(!_M_sbuf) { }
22664 ostreambuf_iterator(streambuf_type* __s) throw ()
22665 : _M_sbuf(__s), _M_failed(!_M_sbuf) { }
22668 ostreambuf_iterator&
22669 operator=(_CharT __c)
22672 _Traits::eq_int_type(_M_sbuf->sputc(__c), _Traits::eof()))
22678 ostreambuf_iterator&
22683 ostreambuf_iterator&
22688 ostreambuf_iterator&
22694 failed() const throw()
22695 { return _M_failed; }
22697 ostreambuf_iterator&
22698 _M_put(const _CharT* __ws, streamsize __len)
22700 if (__builtin_expect(!_M_failed, true)
22701 && __builtin_expect(this->_M_sbuf->sputn(__ws, __len) != __len,
22709 template<typename _CharT>
22710 typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value,
22711 ostreambuf_iterator<_CharT> >::__type
22712 copy(istreambuf_iterator<_CharT> __first,
22713 istreambuf_iterator<_CharT> __last,
22714 ostreambuf_iterator<_CharT> __result)
22716 if (__first._M_sbuf && !__last._M_sbuf && !__result._M_failed)
22719 __copy_streambufs_eof(__first._M_sbuf, __result._M_sbuf, __ineof);
22721 __result._M_failed = true;
22726 template<typename _CharT>
22727 typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value,
22728 ostreambuf_iterator<_CharT> >::__type
22729 __copy_aux(_CharT* __first, _CharT* __last,
22730 ostreambuf_iterator<_CharT> __result)
22732 const streamsize __num = __last - __first;
22734 __result._M_put(__first, __num);
22738 template<typename _CharT>
22739 typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value,
22740 ostreambuf_iterator<_CharT> >::__type
22741 __copy_aux(const _CharT* __first, const _CharT* __last,
22742 ostreambuf_iterator<_CharT> __result)
22744 const streamsize __num = __last - __first;
22746 __result._M_put(__first, __num);
22750 template<typename _CharT>
22751 typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value,
22753 __copy_aux(istreambuf_iterator<_CharT> __first,
22754 istreambuf_iterator<_CharT> __last, _CharT* __result)
22756 typedef istreambuf_iterator<_CharT> __is_iterator_type;
22757 typedef typename __is_iterator_type::traits_type traits_type;
22758 typedef typename __is_iterator_type::streambuf_type streambuf_type;
22759 typedef typename traits_type::int_type int_type;
22761 if (__first._M_sbuf && !__last._M_sbuf)
22763 streambuf_type* __sb = __first._M_sbuf;
22764 int_type __c = __sb->sgetc();
22765 while (!traits_type::eq_int_type(__c, traits_type::eof()))
22767 const streamsize __n = __sb->egptr() - __sb->gptr();
22770 traits_type::copy(__result, __sb->gptr(), __n);
22773 __c = __sb->underflow();
22777 *__result++ = traits_type::to_char_type(__c);
22778 __c = __sb->snextc();
22785 template<typename _CharT>
22786 typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value,
22787 istreambuf_iterator<_CharT> >::__type
22788 find(istreambuf_iterator<_CharT> __first,
22789 istreambuf_iterator<_CharT> __last, const _CharT& __val)
22791 typedef istreambuf_iterator<_CharT> __is_iterator_type;
22792 typedef typename __is_iterator_type::traits_type traits_type;
22793 typedef typename __is_iterator_type::streambuf_type streambuf_type;
22794 typedef typename traits_type::int_type int_type;
22796 if (__first._M_sbuf && !__last._M_sbuf)
22798 const int_type __ival = traits_type::to_int_type(__val);
22799 streambuf_type* __sb = __first._M_sbuf;
22800 int_type __c = __sb->sgetc();
22801 while (!traits_type::eq_int_type(__c, traits_type::eof())
22802 && !traits_type::eq_int_type(__c, __ival))
22804 streamsize __n = __sb->egptr() - __sb->gptr();
22807 const _CharT* __p = traits_type::find(__sb->gptr(),
22810 __n = __p - __sb->gptr();
22812 __c = __sb->sgetc();
22815 __c = __sb->snextc();
22818 if (!traits_type::eq_int_type(__c, traits_type::eof()))
22819 __first._M_c = __c;
22821 __first._M_sbuf = 0;
22827 # 42 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/basic_ios.h" 2 3
22830 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 1 3
22831 # 43 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
22833 # 44 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
22836 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/cwctype" 1 3
22837 # 48 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/cwctype" 3
22839 # 49 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/cwctype" 3
22844 # 1 "/usr/include/wctype.h" 1 3 4
22852 # 1 "/usr/include/gentoo-multilib/amd64/wctype.h" 1 3 4
22853 # 26 "/usr/include/gentoo-multilib/amd64/wctype.h" 3 4
22854 # 1 "/usr/include/features.h" 1 3 4
22855 # 27 "/usr/include/gentoo-multilib/amd64/wctype.h" 2 3 4
22856 # 1 "/usr/include/bits/types.h" 1 3 4
22857 # 28 "/usr/include/gentoo-multilib/amd64/wctype.h" 2 3 4
22865 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/stddef.h" 1 3 4
22866 # 36 "/usr/include/gentoo-multilib/amd64/wctype.h" 2 3 4
22867 # 45 "/usr/include/gentoo-multilib/amd64/wctype.h" 3 4
22869 # 63 "/usr/include/gentoo-multilib/amd64/wctype.h" 3 4
22873 typedef unsigned long int wctype_t;
22881 # 1 "/usr/include/endian.h" 1 3 4
22882 # 75 "/usr/include/gentoo-multilib/amd64/wctype.h" 2 3 4
22883 # 85 "/usr/include/gentoo-multilib/amd64/wctype.h" 3 4
22899 _ISwupper = ((__ISwupper) < 8 ? (int) ((1UL << (__ISwupper)) << 24) : ((__ISwupper) < 16 ? (int) ((1UL << (__ISwupper)) << 8) : ((__ISwupper) < 24 ? (int) ((1UL << (__ISwupper)) >> 8) : (int) ((1UL << (__ISwupper)) >> 24)))),
22900 _ISwlower = ((__ISwlower) < 8 ? (int) ((1UL << (__ISwlower)) << 24) : ((__ISwlower) < 16 ? (int) ((1UL << (__ISwlower)) << 8) : ((__ISwlower) < 24 ? (int) ((1UL << (__ISwlower)) >> 8) : (int) ((1UL << (__ISwlower)) >> 24)))),
22901 _ISwalpha = ((__ISwalpha) < 8 ? (int) ((1UL << (__ISwalpha)) << 24) : ((__ISwalpha) < 16 ? (int) ((1UL << (__ISwalpha)) << 8) : ((__ISwalpha) < 24 ? (int) ((1UL << (__ISwalpha)) >> 8) : (int) ((1UL << (__ISwalpha)) >> 24)))),
22902 _ISwdigit = ((__ISwdigit) < 8 ? (int) ((1UL << (__ISwdigit)) << 24) : ((__ISwdigit) < 16 ? (int) ((1UL << (__ISwdigit)) << 8) : ((__ISwdigit) < 24 ? (int) ((1UL << (__ISwdigit)) >> 8) : (int) ((1UL << (__ISwdigit)) >> 24)))),
22903 _ISwxdigit = ((__ISwxdigit) < 8 ? (int) ((1UL << (__ISwxdigit)) << 24) : ((__ISwxdigit) < 16 ? (int) ((1UL << (__ISwxdigit)) << 8) : ((__ISwxdigit) < 24 ? (int) ((1UL << (__ISwxdigit)) >> 8) : (int) ((1UL << (__ISwxdigit)) >> 24)))),
22904 _ISwspace = ((__ISwspace) < 8 ? (int) ((1UL << (__ISwspace)) << 24) : ((__ISwspace) < 16 ? (int) ((1UL << (__ISwspace)) << 8) : ((__ISwspace) < 24 ? (int) ((1UL << (__ISwspace)) >> 8) : (int) ((1UL << (__ISwspace)) >> 24)))),
22905 _ISwprint = ((__ISwprint) < 8 ? (int) ((1UL << (__ISwprint)) << 24) : ((__ISwprint) < 16 ? (int) ((1UL << (__ISwprint)) << 8) : ((__ISwprint) < 24 ? (int) ((1UL << (__ISwprint)) >> 8) : (int) ((1UL << (__ISwprint)) >> 24)))),
22906 _ISwgraph = ((__ISwgraph) < 8 ? (int) ((1UL << (__ISwgraph)) << 24) : ((__ISwgraph) < 16 ? (int) ((1UL << (__ISwgraph)) << 8) : ((__ISwgraph) < 24 ? (int) ((1UL << (__ISwgraph)) >> 8) : (int) ((1UL << (__ISwgraph)) >> 24)))),
22907 _ISwblank = ((__ISwblank) < 8 ? (int) ((1UL << (__ISwblank)) << 24) : ((__ISwblank) < 16 ? (int) ((1UL << (__ISwblank)) << 8) : ((__ISwblank) < 24 ? (int) ((1UL << (__ISwblank)) >> 8) : (int) ((1UL << (__ISwblank)) >> 24)))),
22908 _ISwcntrl = ((__ISwcntrl) < 8 ? (int) ((1UL << (__ISwcntrl)) << 24) : ((__ISwcntrl) < 16 ? (int) ((1UL << (__ISwcntrl)) << 8) : ((__ISwcntrl) < 24 ? (int) ((1UL << (__ISwcntrl)) >> 8) : (int) ((1UL << (__ISwcntrl)) >> 24)))),
22909 _ISwpunct = ((__ISwpunct) < 8 ? (int) ((1UL << (__ISwpunct)) << 24) : ((__ISwpunct) < 16 ? (int) ((1UL << (__ISwpunct)) << 8) : ((__ISwpunct) < 24 ? (int) ((1UL << (__ISwpunct)) >> 8) : (int) ((1UL << (__ISwpunct)) >> 24)))),
22910 _ISwalnum = ((__ISwalnum) < 8 ? (int) ((1UL << (__ISwalnum)) << 24) : ((__ISwalnum) < 16 ? (int) ((1UL << (__ISwalnum)) << 8) : ((__ISwalnum) < 24 ? (int) ((1UL << (__ISwalnum)) >> 8) : (int) ((1UL << (__ISwalnum)) >> 24))))
22924 extern int iswalnum (wint_t __wc) throw ();
22930 extern int iswalpha (wint_t __wc) throw ();
22933 extern int iswcntrl (wint_t __wc) throw ();
22937 extern int iswdigit (wint_t __wc) throw ();
22941 extern int iswgraph (wint_t __wc) throw ();
22946 extern int iswlower (wint_t __wc) throw ();
22949 extern int iswprint (wint_t __wc) throw ();
22954 extern int iswpunct (wint_t __wc) throw ();
22959 extern int iswspace (wint_t __wc) throw ();
22964 extern int iswupper (wint_t __wc) throw ();
22969 extern int iswxdigit (wint_t __wc) throw ();
22975 extern int iswblank (wint_t __wc) throw ();
22976 # 185 "/usr/include/gentoo-multilib/amd64/wctype.h" 3 4
22977 extern wctype_t wctype (__const char *__property) throw ();
22981 extern int iswctype (wint_t __wc, wctype_t __desc) throw ();
22992 typedef __const __int32_t *wctrans_t;
23000 extern wint_t towlower (wint_t __wc) throw ();
23003 extern wint_t towupper (wint_t __wc) throw ();
23007 # 227 "/usr/include/gentoo-multilib/amd64/wctype.h" 3 4
23013 extern wctrans_t wctrans (__const char *__property) throw ();
23016 extern wint_t towctrans (wint_t __wc, wctrans_t __desc) throw ();
23021 # 1 "/usr/include/xlocale.h" 1 3 4
23022 # 241 "/usr/include/gentoo-multilib/amd64/wctype.h" 2 3 4
23026 extern int iswalnum_l (wint_t __wc, __locale_t __locale) throw ();
23032 extern int iswalpha_l (wint_t __wc, __locale_t __locale) throw ();
23035 extern int iswcntrl_l (wint_t __wc, __locale_t __locale) throw ();
23039 extern int iswdigit_l (wint_t __wc, __locale_t __locale) throw ();
23043 extern int iswgraph_l (wint_t __wc, __locale_t __locale) throw ();
23048 extern int iswlower_l (wint_t __wc, __locale_t __locale) throw ();
23051 extern int iswprint_l (wint_t __wc, __locale_t __locale) throw ();
23056 extern int iswpunct_l (wint_t __wc, __locale_t __locale) throw ();
23061 extern int iswspace_l (wint_t __wc, __locale_t __locale) throw ();
23066 extern int iswupper_l (wint_t __wc, __locale_t __locale) throw ();
23071 extern int iswxdigit_l (wint_t __wc, __locale_t __locale) throw ();
23076 extern int iswblank_l (wint_t __wc, __locale_t __locale) throw ();
23080 extern wctype_t wctype_l (__const char *__property, __locale_t __locale)
23085 extern int iswctype_l (wint_t __wc, wctype_t __desc, __locale_t __locale)
23094 extern wint_t towlower_l (wint_t __wc, __locale_t __locale) throw ();
23097 extern wint_t towupper_l (wint_t __wc, __locale_t __locale) throw ();
23101 extern wctrans_t wctrans_l (__const char *__property, __locale_t __locale)
23105 extern wint_t towctrans_l (wint_t __wc, wctrans_t __desc,
23106 __locale_t __locale) throw ();
23111 # 9 "/usr/include/wctype.h" 2 3 4
23112 # 54 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/cwctype" 2 3
23113 # 80 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/cwctype" 3
23114 namespace std __attribute__ ((__visibility__ ("default"))) {
23143 # 47 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 2 3
23144 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/x86_64-pc-linux-gnu/bits/ctype_base.h" 1 3
23145 # 42 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/x86_64-pc-linux-gnu/bits/ctype_base.h" 3
23146 namespace std __attribute__ ((__visibility__ ("default"))) {
23152 typedef const int* __to_type;
23156 typedef unsigned short mask;
23157 static const mask upper = _ISupper;
23158 static const mask lower = _ISlower;
23159 static const mask alpha = _ISalpha;
23160 static const mask digit = _ISdigit;
23161 static const mask xdigit = _ISxdigit;
23162 static const mask space = _ISspace;
23163 static const mask print = _ISprint;
23164 static const mask graph = _ISalpha | _ISdigit | _ISpunct;
23165 static const mask cntrl = _IScntrl;
23166 static const mask punct = _ISpunct;
23167 static const mask alnum = _ISalpha | _ISdigit;
23171 # 48 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 2 3
23177 namespace std __attribute__ ((__visibility__ ("default"))) {
23178 # 65 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
23179 template<typename _Tv>
23181 __convert_to_v(const char* __in, _Tv& __out, ios_base::iostate& __err,
23182 const __c_locale& __cloc);
23187 __convert_to_v(const char*, float&, ios_base::iostate&,
23188 const __c_locale&);
23192 __convert_to_v(const char*, double&, ios_base::iostate&,
23193 const __c_locale&);
23197 __convert_to_v(const char*, long double&, ios_base::iostate&,
23198 const __c_locale&);
23202 template<typename _CharT, typename _Traits>
23206 _S_pad(ios_base& __io, _CharT __fill, _CharT* __news,
23207 const _CharT* __olds, const streamsize __newlen,
23208 const streamsize __oldlen, const bool __num);
23216 template<typename _CharT>
23218 __add_grouping(_CharT* __s, _CharT __sep,
23219 const char* __gbeg, size_t __gsize,
23220 const _CharT* __first, const _CharT* __last);
23225 template<typename _CharT>
23227 ostreambuf_iterator<_CharT>
23228 __write(ostreambuf_iterator<_CharT> __s, const _CharT* __ws, int __len)
23230 __s._M_put(__ws, __len);
23235 template<typename _CharT, typename _OutIter>
23238 __write(_OutIter __s, const _CharT* __ws, int __len)
23240 for (int __j = 0; __j < __len; __j++, ++__s)
23244 # 145 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
23245 template<typename _CharT>
23246 class __ctype_abstract_base : public locale::facet, public ctype_base
23251 typedef _CharT char_type;
23252 # 163 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
23254 is(mask __m, char_type __c) const
23255 { return this->do_is(__m, __c); }
23256 # 180 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
23258 is(const char_type *__lo, const char_type *__hi, mask *__vec) const
23259 { return this->do_is(__lo, __hi, __vec); }
23260 # 196 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
23262 scan_is(mask __m, const char_type* __lo, const char_type* __hi) const
23263 { return this->do_scan_is(__m, __lo, __hi); }
23264 # 212 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
23266 scan_not(mask __m, const char_type* __lo, const char_type* __hi) const
23267 { return this->do_scan_not(__m, __lo, __hi); }
23268 # 226 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
23270 toupper(char_type __c) const
23271 { return this->do_toupper(__c); }
23272 # 241 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
23274 toupper(char_type *__lo, const char_type* __hi) const
23275 { return this->do_toupper(__lo, __hi); }
23276 # 255 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
23278 tolower(char_type __c) const
23279 { return this->do_tolower(__c); }
23280 # 270 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
23282 tolower(char_type* __lo, const char_type* __hi) const
23283 { return this->do_tolower(__lo, __hi); }
23284 # 287 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
23286 widen(char __c) const
23287 { return this->do_widen(__c); }
23288 # 306 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
23290 widen(const char* __lo, const char* __hi, char_type* __to) const
23291 { return this->do_widen(__lo, __hi, __to); }
23292 # 325 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
23294 narrow(char_type __c, char __dfault) const
23295 { return this->do_narrow(__c, __dfault); }
23296 # 347 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
23298 narrow(const char_type* __lo, const char_type* __hi,
23299 char __dfault, char *__to) const
23300 { return this->do_narrow(__lo, __hi, __dfault, __to); }
23304 __ctype_abstract_base(size_t __refs = 0): facet(__refs) { }
23307 ~__ctype_abstract_base() { }
23308 # 372 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
23310 do_is(mask __m, char_type __c) const = 0;
23311 # 391 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
23312 virtual const char_type*
23313 do_is(const char_type* __lo, const char_type* __hi,
23314 mask* __vec) const = 0;
23315 # 410 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
23316 virtual const char_type*
23317 do_scan_is(mask __m, const char_type* __lo,
23318 const char_type* __hi) const = 0;
23319 # 429 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
23320 virtual const char_type*
23321 do_scan_not(mask __m, const char_type* __lo,
23322 const char_type* __hi) const = 0;
23323 # 447 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
23325 do_toupper(char_type) const = 0;
23326 # 464 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
23327 virtual const char_type*
23328 do_toupper(char_type* __lo, const char_type* __hi) const = 0;
23329 # 480 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
23331 do_tolower(char_type) const = 0;
23332 # 497 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
23333 virtual const char_type*
23334 do_tolower(char_type* __lo, const char_type* __hi) const = 0;
23335 # 516 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
23337 do_widen(char) const = 0;
23338 # 537 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
23339 virtual const char*
23340 do_widen(const char* __lo, const char* __hi,
23341 char_type* __dest) const = 0;
23342 # 559 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
23344 do_narrow(char_type, char __dfault) const = 0;
23345 # 583 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
23346 virtual const char_type*
23347 do_narrow(const char_type* __lo, const char_type* __hi,
23348 char __dfault, char* __dest) const = 0;
23350 # 606 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
23351 template<typename _CharT>
23352 class ctype : public __ctype_abstract_base<_CharT>
23356 typedef _CharT char_type;
23357 typedef typename __ctype_abstract_base<_CharT>::mask mask;
23360 static locale::id id;
23363 ctype(size_t __refs = 0) : __ctype_abstract_base<_CharT>(__refs) { }
23370 do_is(mask __m, char_type __c) const;
23372 virtual const char_type*
23373 do_is(const char_type* __lo, const char_type* __hi, mask* __vec) const;
23375 virtual const char_type*
23376 do_scan_is(mask __m, const char_type* __lo, const char_type* __hi) const;
23378 virtual const char_type*
23379 do_scan_not(mask __m, const char_type* __lo,
23380 const char_type* __hi) const;
23383 do_toupper(char_type __c) const;
23385 virtual const char_type*
23386 do_toupper(char_type* __lo, const char_type* __hi) const;
23389 do_tolower(char_type __c) const;
23391 virtual const char_type*
23392 do_tolower(char_type* __lo, const char_type* __hi) const;
23395 do_widen(char __c) const;
23397 virtual const char*
23398 do_widen(const char* __lo, const char* __hi, char_type* __dest) const;
23401 do_narrow(char_type, char __dfault) const;
23403 virtual const char_type*
23404 do_narrow(const char_type* __lo, const char_type* __hi,
23405 char __dfault, char* __dest) const;
23408 template<typename _CharT>
23409 locale::id ctype<_CharT>::id;
23410 # 675 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
23412 class ctype<char> : public locale::facet, public ctype_base
23417 typedef char char_type;
23421 __c_locale _M_c_locale_ctype;
23423 __to_type _M_toupper;
23424 __to_type _M_tolower;
23425 const mask* _M_table;
23426 mutable char _M_widen_ok;
23427 mutable char _M_widen[1 + static_cast<unsigned char>(-1)];
23428 mutable char _M_narrow[1 + static_cast<unsigned char>(-1)];
23429 mutable char _M_narrow_ok;
23434 static locale::id id;
23436 static const size_t table_size = 1 + static_cast<unsigned char>(-1);
23437 # 712 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
23439 ctype(const mask* __table = 0, bool __del = false, size_t __refs = 0);
23440 # 725 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
23442 ctype(__c_locale __cloc, const mask* __table = 0, bool __del = false,
23443 size_t __refs = 0);
23444 # 738 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
23446 is(mask __m, char __c) const;
23447 # 753 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
23449 is(const char* __lo, const char* __hi, mask* __vec) const;
23450 # 767 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
23452 scan_is(mask __m, const char* __lo, const char* __hi) const;
23453 # 781 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
23455 scan_not(mask __m, const char* __lo, const char* __hi) const;
23456 # 796 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
23458 toupper(char_type __c) const
23459 { return this->do_toupper(__c); }
23460 # 813 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
23462 toupper(char_type *__lo, const char_type* __hi) const
23463 { return this->do_toupper(__lo, __hi); }
23464 # 829 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
23466 tolower(char_type __c) const
23467 { return this->do_tolower(__c); }
23468 # 846 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
23470 tolower(char_type* __lo, const char_type* __hi) const
23471 { return this->do_tolower(__lo, __hi); }
23472 # 866 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
23474 widen(char __c) const
23477 return _M_widen[static_cast<unsigned char>(__c)];
23478 this->_M_widen_init();
23479 return this->do_widen(__c);
23481 # 893 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
23483 widen(const char* __lo, const char* __hi, char_type* __to) const
23485 if (_M_widen_ok == 1)
23487 memcpy(__to, __lo, __hi - __lo);
23492 return this->do_widen(__lo, __hi, __to);
23494 # 924 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
23496 narrow(char_type __c, char __dfault) const
23498 if (_M_narrow[static_cast<unsigned char>(__c)])
23499 return _M_narrow[static_cast<unsigned char>(__c)];
23500 const char __t = do_narrow(__c, __dfault);
23501 if (__t != __dfault)
23502 _M_narrow[static_cast<unsigned char>(__c)] = __t;
23505 # 957 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
23507 narrow(const char_type* __lo, const char_type* __hi,
23508 char __dfault, char *__to) const
23510 if (__builtin_expect(_M_narrow_ok == 1, true))
23512 memcpy(__to, __lo, __hi - __lo);
23517 return this->do_narrow(__lo, __hi, __dfault, __to);
23524 table() const throw()
23525 { return _M_table; }
23529 classic_table() throw();
23539 # 1004 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
23541 do_toupper(char_type) const;
23542 # 1021 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
23543 virtual const char_type*
23544 do_toupper(char_type* __lo, const char_type* __hi) const;
23545 # 1037 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
23547 do_tolower(char_type) const;
23548 # 1054 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
23549 virtual const char_type*
23550 do_tolower(char_type* __lo, const char_type* __hi) const;
23551 # 1074 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
23553 do_widen(char __c) const
23555 # 1097 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
23556 virtual const char*
23557 do_widen(const char* __lo, const char* __hi, char_type* __dest) const
23559 memcpy(__dest, __lo, __hi - __lo);
23562 # 1123 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
23564 do_narrow(char_type __c, char) const
23566 # 1149 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
23567 virtual const char_type*
23568 do_narrow(const char_type* __lo, const char_type* __hi,
23569 char, char* __dest) const
23571 memcpy(__dest, __lo, __hi - __lo);
23577 void _M_widen_init() const
23579 char __tmp[sizeof(_M_widen)];
23580 for (size_t __i = 0; __i < sizeof(_M_widen); ++__i)
23582 do_widen(__tmp, __tmp + sizeof(__tmp), _M_widen);
23586 if (memcmp(__tmp, _M_widen, sizeof(_M_widen)))
23593 void _M_narrow_init() const
23595 char __tmp[sizeof(_M_narrow)];
23596 for (size_t __i = 0; __i < sizeof(_M_narrow); ++__i)
23598 do_narrow(__tmp, __tmp + sizeof(__tmp), 0, _M_narrow);
23601 if (memcmp(__tmp, _M_narrow, sizeof(_M_narrow)))
23608 do_narrow(__tmp, __tmp + 1, 1, &__c);
23617 use_facet<ctype<char> >(const locale& __loc);
23618 # 1213 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
23620 class ctype<wchar_t> : public __ctype_abstract_base<wchar_t>
23625 typedef wchar_t char_type;
23626 typedef wctype_t __wmask_type;
23629 __c_locale _M_c_locale_ctype;
23633 char _M_narrow[128];
23634 wint_t _M_widen[1 + static_cast<unsigned char>(-1)];
23638 __wmask_type _M_wmask[16];
23643 static locale::id id;
23644 # 1246 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
23646 ctype(size_t __refs = 0);
23647 # 1257 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
23649 ctype(__c_locale __cloc, size_t __refs = 0);
23653 _M_convert_to_wmask(const mask __m) const;
23658 # 1281 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
23660 do_is(mask __m, char_type __c) const;
23661 # 1300 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
23662 virtual const char_type*
23663 do_is(const char_type* __lo, const char_type* __hi, mask* __vec) const;
23664 # 1318 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
23665 virtual const char_type*
23666 do_scan_is(mask __m, const char_type* __lo, const char_type* __hi) const;
23667 # 1336 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
23668 virtual const char_type*
23669 do_scan_not(mask __m, const char_type* __lo,
23670 const char_type* __hi) const;
23671 # 1353 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
23673 do_toupper(char_type) const;
23674 # 1370 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
23675 virtual const char_type*
23676 do_toupper(char_type* __lo, const char_type* __hi) const;
23677 # 1386 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
23679 do_tolower(char_type) const;
23680 # 1403 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
23681 virtual const char_type*
23682 do_tolower(char_type* __lo, const char_type* __hi) const;
23683 # 1423 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
23685 do_widen(char) const;
23686 # 1445 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
23687 virtual const char*
23688 do_widen(const char* __lo, const char* __hi, char_type* __dest) const;
23689 # 1468 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
23691 do_narrow(char_type, char __dfault) const;
23692 # 1494 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
23693 virtual const char_type*
23694 do_narrow(const char_type* __lo, const char_type* __hi,
23695 char __dfault, char* __dest) const;
23699 _M_initialize_ctype();
23703 const ctype<wchar_t>&
23704 use_facet<ctype<wchar_t> >(const locale& __loc);
23708 template<typename _CharT>
23709 class ctype_byname : public ctype<_CharT>
23712 typedef _CharT char_type;
23715 ctype_byname(const char* __s, size_t __refs = 0);
23719 ~ctype_byname() { };
23724 ctype_byname<char>::ctype_byname(const char*, size_t refs);
23727 ctype_byname<wchar_t>::ctype_byname(const char*, size_t refs);
23732 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/x86_64-pc-linux-gnu/bits/ctype_inline.h" 1 3
23733 # 42 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/x86_64-pc-linux-gnu/bits/ctype_inline.h" 3
23734 namespace std __attribute__ ((__visibility__ ("default"))) {
23738 is(mask __m, char __c) const
23739 { return _M_table[static_cast<unsigned char>(__c)] & __m; }
23743 is(const char* __low, const char* __high, mask* __vec) const
23745 while (__low < __high)
23746 *__vec++ = _M_table[static_cast<unsigned char>(*__low++)];
23752 scan_is(mask __m, const char* __low, const char* __high) const
23754 while (__low < __high
23755 && !(_M_table[static_cast<unsigned char>(*__low)] & __m))
23762 scan_not(mask __m, const char* __low, const char* __high) const
23764 while (__low < __high
23765 && (_M_table[static_cast<unsigned char>(*__low)] & __m) != 0)
23771 # 1534 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 2 3
23774 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/codecvt.h" 1 3
23775 # 45 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/codecvt.h" 3
23777 # 46 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/codecvt.h" 3
23779 namespace std __attribute__ ((__visibility__ ("default"))) {
23793 # 71 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/codecvt.h" 3
23794 template<typename _InternT, typename _ExternT, typename _StateT>
23795 class __codecvt_abstract_base
23796 : public locale::facet, public codecvt_base
23800 typedef codecvt_base::result result;
23801 typedef _InternT intern_type;
23802 typedef _ExternT extern_type;
23803 typedef _StateT state_type;
23804 # 119 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/codecvt.h" 3
23806 out(state_type& __state, const intern_type* __from,
23807 const intern_type* __from_end, const intern_type*& __from_next,
23808 extern_type* __to, extern_type* __to_end,
23809 extern_type*& __to_next) const
23811 return this->do_out(__state, __from, __from_end, __from_next,
23812 __to, __to_end, __to_next);
23814 # 158 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/codecvt.h" 3
23816 unshift(state_type& __state, extern_type* __to, extern_type* __to_end,
23817 extern_type*& __to_next) const
23818 { return this->do_unshift(__state, __to,__to_end,__to_next); }
23819 # 199 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/codecvt.h" 3
23821 in(state_type& __state, const extern_type* __from,
23822 const extern_type* __from_end, const extern_type*& __from_next,
23823 intern_type* __to, intern_type* __to_end,
23824 intern_type*& __to_next) const
23826 return this->do_in(__state, __from, __from_end, __from_next,
23827 __to, __to_end, __to_next);
23831 encoding() const throw()
23832 { return this->do_encoding(); }
23835 always_noconv() const throw()
23836 { return this->do_always_noconv(); }
23839 length(state_type& __state, const extern_type* __from,
23840 const extern_type* __end, size_t __max) const
23841 { return this->do_length(__state, __from, __end, __max); }
23844 max_length() const throw()
23845 { return this->do_max_length(); }
23849 __codecvt_abstract_base(size_t __refs = 0) : locale::facet(__refs) { }
23852 ~__codecvt_abstract_base() { }
23853 # 240 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/codecvt.h" 3
23855 do_out(state_type& __state, const intern_type* __from,
23856 const intern_type* __from_end, const intern_type*& __from_next,
23857 extern_type* __to, extern_type* __to_end,
23858 extern_type*& __to_next) const = 0;
23861 do_unshift(state_type& __state, extern_type* __to,
23862 extern_type* __to_end, extern_type*& __to_next) const = 0;
23865 do_in(state_type& __state, const extern_type* __from,
23866 const extern_type* __from_end, const extern_type*& __from_next,
23867 intern_type* __to, intern_type* __to_end,
23868 intern_type*& __to_next) const = 0;
23871 do_encoding() const throw() = 0;
23874 do_always_noconv() const throw() = 0;
23877 do_length(state_type&, const extern_type* __from,
23878 const extern_type* __end, size_t __max) const = 0;
23881 do_max_length() const throw() = 0;
23886 template<typename _InternT, typename _ExternT, typename _StateT>
23888 : public __codecvt_abstract_base<_InternT, _ExternT, _StateT>
23892 typedef codecvt_base::result result;
23893 typedef _InternT intern_type;
23894 typedef _ExternT extern_type;
23895 typedef _StateT state_type;
23898 __c_locale _M_c_locale_codecvt;
23901 static locale::id id;
23904 codecvt(size_t __refs = 0)
23905 : __codecvt_abstract_base<_InternT, _ExternT, _StateT> (__refs) { }
23908 codecvt(__c_locale __cloc, size_t __refs = 0);
23915 do_out(state_type& __state, const intern_type* __from,
23916 const intern_type* __from_end, const intern_type*& __from_next,
23917 extern_type* __to, extern_type* __to_end,
23918 extern_type*& __to_next) const;
23921 do_unshift(state_type& __state, extern_type* __to,
23922 extern_type* __to_end, extern_type*& __to_next) const;
23925 do_in(state_type& __state, const extern_type* __from,
23926 const extern_type* __from_end, const extern_type*& __from_next,
23927 intern_type* __to, intern_type* __to_end,
23928 intern_type*& __to_next) const;
23931 do_encoding() const throw();
23934 do_always_noconv() const throw();
23937 do_length(state_type&, const extern_type* __from,
23938 const extern_type* __end, size_t __max) const;
23941 do_max_length() const throw();
23944 template<typename _InternT, typename _ExternT, typename _StateT>
23945 locale::id codecvt<_InternT, _ExternT, _StateT>::id;
23949 class codecvt<char, char, mbstate_t>
23950 : public __codecvt_abstract_base<char, char, mbstate_t>
23954 typedef char intern_type;
23955 typedef char extern_type;
23956 typedef mbstate_t state_type;
23959 __c_locale _M_c_locale_codecvt;
23962 static locale::id id;
23965 codecvt(size_t __refs = 0);
23968 codecvt(__c_locale __cloc, size_t __refs = 0);
23975 do_out(state_type& __state, const intern_type* __from,
23976 const intern_type* __from_end, const intern_type*& __from_next,
23977 extern_type* __to, extern_type* __to_end,
23978 extern_type*& __to_next) const;
23981 do_unshift(state_type& __state, extern_type* __to,
23982 extern_type* __to_end, extern_type*& __to_next) const;
23985 do_in(state_type& __state, const extern_type* __from,
23986 const extern_type* __from_end, const extern_type*& __from_next,
23987 intern_type* __to, intern_type* __to_end,
23988 intern_type*& __to_next) const;
23991 do_encoding() const throw();
23994 do_always_noconv() const throw();
23997 do_length(state_type&, const extern_type* __from,
23998 const extern_type* __end, size_t __max) const;
24001 do_max_length() const throw();
24007 class codecvt<wchar_t, char, mbstate_t>
24008 : public __codecvt_abstract_base<wchar_t, char, mbstate_t>
24012 typedef wchar_t intern_type;
24013 typedef char extern_type;
24014 typedef mbstate_t state_type;
24017 __c_locale _M_c_locale_codecvt;
24020 static locale::id id;
24023 codecvt(size_t __refs = 0);
24026 codecvt(__c_locale __cloc, size_t __refs = 0);
24033 do_out(state_type& __state, const intern_type* __from,
24034 const intern_type* __from_end, const intern_type*& __from_next,
24035 extern_type* __to, extern_type* __to_end,
24036 extern_type*& __to_next) const;
24039 do_unshift(state_type& __state,
24040 extern_type* __to, extern_type* __to_end,
24041 extern_type*& __to_next) const;
24044 do_in(state_type& __state,
24045 const extern_type* __from, const extern_type* __from_end,
24046 const extern_type*& __from_next,
24047 intern_type* __to, intern_type* __to_end,
24048 intern_type*& __to_next) const;
24051 int do_encoding() const throw();
24054 bool do_always_noconv() const throw();
24057 int do_length(state_type&, const extern_type* __from,
24058 const extern_type* __end, size_t __max) const;
24061 do_max_length() const throw();
24066 template<typename _InternT, typename _ExternT, typename _StateT>
24067 class codecvt_byname : public codecvt<_InternT, _ExternT, _StateT>
24071 codecvt_byname(const char* __s, size_t __refs = 0)
24072 : codecvt<_InternT, _ExternT, _StateT>(__refs)
24074 if (std::strcmp(__s, "C") != 0 && std::strcmp(__s, "POSIX") != 0)
24076 this->_S_destroy_c_locale(this->_M_c_locale_codecvt);
24077 this->_S_create_c_locale(this->_M_c_locale_codecvt, __s);
24083 ~codecvt_byname() { }
24087 # 1537 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 2 3
24089 namespace std __attribute__ ((__visibility__ ("default"))) {
24104 _S_odigits_end = _S_odigits + 16,
24105 _S_oudigits = _S_odigits_end,
24106 _S_oudigits_end = _S_oudigits + 16,
24107 _S_oe = _S_odigits + 14,
24108 _S_oE = _S_oudigits + 14,
24109 _S_oend = _S_oudigits_end
24117 static const char* _S_atoms_out;
24121 static const char* _S_atoms_in;
24130 _S_ie = _S_izero + 14,
24131 _S_iE = _S_izero + 20,
24138 _S_format_float(const ios_base& __io, char* __fptr, char __mod);
24141 template<typename _CharT>
24142 struct __numpunct_cache : public locale::facet
24144 const char* _M_grouping;
24145 size_t _M_grouping_size;
24146 bool _M_use_grouping;
24147 const _CharT* _M_truename;
24148 size_t _M_truename_size;
24149 const _CharT* _M_falsename;
24150 size_t _M_falsename_size;
24151 _CharT _M_decimal_point;
24152 _CharT _M_thousands_sep;
24158 _CharT _M_atoms_out[__num_base::_S_oend];
24164 _CharT _M_atoms_in[__num_base::_S_iend];
24168 __numpunct_cache(size_t __refs = 0) : facet(__refs),
24169 _M_grouping(__null), _M_grouping_size(0), _M_use_grouping(false),
24170 _M_truename(__null), _M_truename_size(0), _M_falsename(__null),
24171 _M_falsename_size(0), _M_decimal_point(_CharT()),
24172 _M_thousands_sep(_CharT()), _M_allocated(false)
24175 ~__numpunct_cache();
24178 _M_cache(const locale& __loc);
24182 operator=(const __numpunct_cache&);
24185 __numpunct_cache(const __numpunct_cache&);
24188 template<typename _CharT>
24189 __numpunct_cache<_CharT>::~__numpunct_cache()
24193 delete [] _M_grouping;
24194 delete [] _M_truename;
24195 delete [] _M_falsename;
24198 # 1661 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
24199 template<typename _CharT>
24200 class numpunct : public locale::facet
24206 typedef _CharT char_type;
24207 typedef basic_string<_CharT> string_type;
24209 typedef __numpunct_cache<_CharT> __cache_type;
24212 __cache_type* _M_data;
24216 static locale::id id;
24224 numpunct(size_t __refs = 0) : facet(__refs), _M_data(__null)
24225 { _M_initialize_numpunct(); }
24226 # 1698 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
24228 numpunct(__cache_type* __cache, size_t __refs = 0)
24229 : facet(__refs), _M_data(__cache)
24230 { _M_initialize_numpunct(); }
24231 # 1712 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
24233 numpunct(__c_locale __cloc, size_t __refs = 0)
24234 : facet(__refs), _M_data(__null)
24235 { _M_initialize_numpunct(__cloc); }
24236 # 1726 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
24238 decimal_point() const
24239 { return this->do_decimal_point(); }
24240 # 1739 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
24242 thousands_sep() const
24243 { return this->do_thousands_sep(); }
24244 # 1770 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
24247 { return this->do_grouping(); }
24248 # 1783 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
24251 { return this->do_truename(); }
24252 # 1796 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
24255 { return this->do_falsename(); }
24261 # 1813 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
24263 do_decimal_point() const
24264 { return _M_data->_M_decimal_point; }
24265 # 1825 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
24267 do_thousands_sep() const
24268 { return _M_data->_M_thousands_sep; }
24269 # 1838 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
24271 do_grouping() const
24272 { return _M_data->_M_grouping; }
24273 # 1851 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
24274 virtual string_type
24275 do_truename() const
24276 { return _M_data->_M_truename; }
24277 # 1864 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
24278 virtual string_type
24279 do_falsename() const
24280 { return _M_data->_M_falsename; }
24284 _M_initialize_numpunct(__c_locale __cloc = __null);
24287 template<typename _CharT>
24288 locale::id numpunct<_CharT>::id;
24291 numpunct<char>::~numpunct();
24295 numpunct<char>::_M_initialize_numpunct(__c_locale __cloc);
24299 numpunct<wchar_t>::~numpunct();
24303 numpunct<wchar_t>::_M_initialize_numpunct(__c_locale __cloc);
24307 template<typename _CharT>
24308 class numpunct_byname : public numpunct<_CharT>
24311 typedef _CharT char_type;
24312 typedef basic_string<_CharT> string_type;
24315 numpunct_byname(const char* __s, size_t __refs = 0)
24316 : numpunct<_CharT>(__refs)
24318 if (std::strcmp(__s, "C") != 0 && std::strcmp(__s, "POSIX") != 0)
24321 this->_S_create_c_locale(__tmp, __s);
24322 this->_M_initialize_numpunct(__tmp);
24323 this->_S_destroy_c_locale(__tmp);
24329 ~numpunct_byname() { }
24333 # 1931 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
24334 template<typename _CharT, typename _InIter>
24335 class num_get : public locale::facet
24341 typedef _CharT char_type;
24342 typedef _InIter iter_type;
24346 static locale::id id;
24347 # 1952 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
24349 num_get(size_t __refs = 0) : facet(__refs) { }
24350 # 1978 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
24352 get(iter_type __in, iter_type __end, ios_base& __io,
24353 ios_base::iostate& __err, bool& __v) const
24354 { return this->do_get(__in, __end, __io, __err, __v); }
24355 # 2014 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
24357 get(iter_type __in, iter_type __end, ios_base& __io,
24358 ios_base::iostate& __err, long& __v) const
24359 { return this->do_get(__in, __end, __io, __err, __v); }
24362 get(iter_type __in, iter_type __end, ios_base& __io,
24363 ios_base::iostate& __err, unsigned short& __v) const
24364 { return this->do_get(__in, __end, __io, __err, __v); }
24367 get(iter_type __in, iter_type __end, ios_base& __io,
24368 ios_base::iostate& __err, unsigned int& __v) const
24369 { return this->do_get(__in, __end, __io, __err, __v); }
24372 get(iter_type __in, iter_type __end, ios_base& __io,
24373 ios_base::iostate& __err, unsigned long& __v) const
24374 { return this->do_get(__in, __end, __io, __err, __v); }
24378 get(iter_type __in, iter_type __end, ios_base& __io,
24379 ios_base::iostate& __err, long long& __v) const
24380 { return this->do_get(__in, __end, __io, __err, __v); }
24383 get(iter_type __in, iter_type __end, ios_base& __io,
24384 ios_base::iostate& __err, unsigned long long& __v) const
24385 { return this->do_get(__in, __end, __io, __err, __v); }
24386 # 2073 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
24388 get(iter_type __in, iter_type __end, ios_base& __io,
24389 ios_base::iostate& __err, float& __v) const
24390 { return this->do_get(__in, __end, __io, __err, __v); }
24393 get(iter_type __in, iter_type __end, ios_base& __io,
24394 ios_base::iostate& __err, double& __v) const
24395 { return this->do_get(__in, __end, __io, __err, __v); }
24398 get(iter_type __in, iter_type __end, ios_base& __io,
24399 ios_base::iostate& __err, long double& __v) const
24400 { return this->do_get(__in, __end, __io, __err, __v); }
24401 # 2115 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
24403 get(iter_type __in, iter_type __end, ios_base& __io,
24404 ios_base::iostate& __err, void*& __v) const
24405 { return this->do_get(__in, __end, __io, __err, __v); }
24409 virtual ~num_get() { }
24412 _M_extract_float(iter_type, iter_type, ios_base&, ios_base::iostate&,
24413 string& __xtrc) const;
24415 template<typename _ValueT>
24417 _M_extract_int(iter_type, iter_type, ios_base&, ios_base::iostate&,
24418 _ValueT& __v) const;
24420 template<typename _CharT2>
24421 typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value, int>::__type
24422 _M_find(const _CharT2*, size_t __len, _CharT2 __c) const
24427 if (__c >= _CharT2('0') && __c < _CharT2(_CharT2('0') + __len))
24428 __ret = __c - _CharT2('0');
24432 if (__c >= _CharT2('0') && __c <= _CharT2('9'))
24433 __ret = __c - _CharT2('0');
24434 else if (__c >= _CharT2('a') && __c <= _CharT2('f'))
24435 __ret = 10 + (__c - _CharT2('a'));
24436 else if (__c >= _CharT2('A') && __c <= _CharT2('F'))
24437 __ret = 10 + (__c - _CharT2('A'));
24442 template<typename _CharT2>
24443 typename __gnu_cxx::__enable_if<!__is_char<_CharT2>::__value,
24445 _M_find(const _CharT2* __zero, size_t __len, _CharT2 __c) const
24448 const char_type* __q = char_traits<_CharT2>::find(__zero, __len, __c);
24451 __ret = __q - __zero;
24457 # 2186 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
24459 do_get(iter_type, iter_type, ios_base&, ios_base::iostate&, bool&) const;
24463 do_get(iter_type, iter_type, ios_base&, ios_base::iostate&, long&) const;
24466 do_get(iter_type, iter_type, ios_base&, ios_base::iostate& __err,
24467 unsigned short&) const;
24470 do_get(iter_type, iter_type, ios_base&, ios_base::iostate& __err,
24471 unsigned int&) const;
24474 do_get(iter_type, iter_type, ios_base&, ios_base::iostate& __err,
24475 unsigned long&) const;
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 unsigned long long&) const;
24488 do_get(iter_type, iter_type, ios_base&, ios_base::iostate& __err,
24492 do_get(iter_type, iter_type, ios_base&, ios_base::iostate& __err,
24502 do_get(iter_type, iter_type, ios_base&, ios_base::iostate& __err,
24503 long double&) const;
24507 do_get(iter_type, iter_type, ios_base&, ios_base::iostate& __err,
24509 # 2245 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
24512 template<typename _CharT, typename _InIter>
24513 locale::id num_get<_CharT, _InIter>::id;
24514 # 2262 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
24515 template<typename _CharT, typename _OutIter>
24516 class num_put : public locale::facet
24522 typedef _CharT char_type;
24523 typedef _OutIter iter_type;
24527 static locale::id id;
24528 # 2283 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
24530 num_put(size_t __refs = 0) : facet(__refs) { }
24531 # 2301 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
24533 put(iter_type __s, ios_base& __f, char_type __fill, bool __v) const
24534 { return this->do_put(__s, __f, __fill, __v); }
24535 # 2343 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
24537 put(iter_type __s, ios_base& __f, char_type __fill, long __v) const
24538 { return this->do_put(__s, __f, __fill, __v); }
24541 put(iter_type __s, ios_base& __f, char_type __fill,
24542 unsigned long __v) const
24543 { return this->do_put(__s, __f, __fill, __v); }
24547 put(iter_type __s, ios_base& __f, char_type __fill, long long __v) const
24548 { return this->do_put(__s, __f, __fill, __v); }
24551 put(iter_type __s, ios_base& __f, char_type __fill,
24552 unsigned long long __v) const
24553 { return this->do_put(__s, __f, __fill, __v); }
24554 # 2406 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
24556 put(iter_type __s, ios_base& __f, char_type __fill, double __v) const
24557 { return this->do_put(__s, __f, __fill, __v); }
24560 put(iter_type __s, ios_base& __f, char_type __fill,
24561 long double __v) const
24562 { return this->do_put(__s, __f, __fill, __v); }
24563 # 2431 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
24565 put(iter_type __s, ios_base& __f, char_type __fill,
24566 const void* __v) const
24567 { return this->do_put(__s, __f, __fill, __v); }
24570 template<typename _ValueT>
24572 _M_insert_float(iter_type, ios_base& __io, char_type __fill,
24573 char __mod, _ValueT __v) const;
24576 _M_group_float(const char* __grouping, size_t __grouping_size,
24577 char_type __sep, const char_type* __p, char_type* __new,
24578 char_type* __cs, int& __len) const;
24580 template<typename _ValueT>
24582 _M_insert_int(iter_type, ios_base& __io, char_type __fill,
24583 _ValueT __v) const;
24586 _M_group_int(const char* __grouping, size_t __grouping_size,
24587 char_type __sep, ios_base& __io, char_type* __new,
24588 char_type* __cs, int& __len) const;
24591 _M_pad(char_type __fill, streamsize __w, ios_base& __io,
24592 char_type* __new, const char_type* __cs, int& __len) const;
24597 # 2479 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
24599 do_put(iter_type, ios_base&, char_type __fill, bool __v) const;
24602 do_put(iter_type, ios_base&, char_type __fill, long __v) const;
24605 do_put(iter_type, ios_base&, char_type __fill, unsigned long) const;
24609 do_put(iter_type, ios_base&, char_type __fill, long long __v) const;
24612 do_put(iter_type, ios_base&, char_type __fill, unsigned long long) const;
24616 do_put(iter_type, ios_base&, char_type __fill, double __v) const;
24624 do_put(iter_type, ios_base&, char_type __fill, long double __v) const;
24628 do_put(iter_type, ios_base&, char_type __fill, const void* __v) const;
24638 template <typename _CharT, typename _OutIter>
24639 locale::id num_put<_CharT, _OutIter>::id;
24642 # 2536 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
24643 template<typename _CharT>
24644 class collate : public locale::facet
24650 typedef _CharT char_type;
24651 typedef basic_string<_CharT> string_type;
24657 __c_locale _M_c_locale_collate;
24661 static locale::id id;
24662 # 2563 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
24664 collate(size_t __refs = 0)
24665 : facet(__refs), _M_c_locale_collate(_S_get_c_locale())
24667 # 2577 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
24669 collate(__c_locale __cloc, size_t __refs = 0)
24670 : facet(__refs), _M_c_locale_collate(_S_clone_c_locale(__cloc))
24672 # 2594 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
24674 compare(const _CharT* __lo1, const _CharT* __hi1,
24675 const _CharT* __lo2, const _CharT* __hi2) const
24676 { return this->do_compare(__lo1, __hi1, __lo2, __hi2); }
24677 # 2613 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
24679 transform(const _CharT* __lo, const _CharT* __hi) const
24680 { return this->do_transform(__lo, __hi); }
24681 # 2627 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
24683 hash(const _CharT* __lo, const _CharT* __hi) const
24684 { return this->do_hash(__lo, __hi); }
24688 _M_compare(const _CharT*, const _CharT*) const;
24691 _M_transform(_CharT*, const _CharT*, size_t) const;
24697 { _S_destroy_c_locale(_M_c_locale_collate); }
24698 # 2656 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
24700 do_compare(const _CharT* __lo1, const _CharT* __hi1,
24701 const _CharT* __lo2, const _CharT* __hi2) const;
24702 # 2672 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
24703 virtual string_type
24704 do_transform(const _CharT* __lo, const _CharT* __hi) const;
24705 # 2685 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
24707 do_hash(const _CharT* __lo, const _CharT* __hi) const;
24710 template<typename _CharT>
24711 locale::id collate<_CharT>::id;
24716 collate<char>::_M_compare(const char*, const char*) const;
24720 collate<char>::_M_transform(char*, const char*, size_t) const;
24725 collate<wchar_t>::_M_compare(const wchar_t*, const wchar_t*) const;
24729 collate<wchar_t>::_M_transform(wchar_t*, const wchar_t*, size_t) const;
24733 template<typename _CharT>
24734 class collate_byname : public collate<_CharT>
24739 typedef _CharT char_type;
24740 typedef basic_string<_CharT> string_type;
24744 collate_byname(const char* __s, size_t __refs = 0)
24745 : collate<_CharT>(__refs)
24747 if (std::strcmp(__s, "C") != 0 && std::strcmp(__s, "POSIX") != 0)
24749 this->_S_destroy_c_locale(this->_M_c_locale_collate);
24750 this->_S_create_c_locale(this->_M_c_locale_collate, __s);
24756 ~collate_byname() { }
24758 # 2745 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
24762 enum dateorder { no_order, dmy, mdy, ymd, ydm };
24765 template<typename _CharT>
24766 struct __timepunct_cache : public locale::facet
24769 static const _CharT* _S_timezones[14];
24771 const _CharT* _M_date_format;
24772 const _CharT* _M_date_era_format;
24773 const _CharT* _M_time_format;
24774 const _CharT* _M_time_era_format;
24775 const _CharT* _M_date_time_format;
24776 const _CharT* _M_date_time_era_format;
24777 const _CharT* _M_am;
24778 const _CharT* _M_pm;
24779 const _CharT* _M_am_pm_format;
24782 const _CharT* _M_day1;
24783 const _CharT* _M_day2;
24784 const _CharT* _M_day3;
24785 const _CharT* _M_day4;
24786 const _CharT* _M_day5;
24787 const _CharT* _M_day6;
24788 const _CharT* _M_day7;
24791 const _CharT* _M_aday1;
24792 const _CharT* _M_aday2;
24793 const _CharT* _M_aday3;
24794 const _CharT* _M_aday4;
24795 const _CharT* _M_aday5;
24796 const _CharT* _M_aday6;
24797 const _CharT* _M_aday7;
24800 const _CharT* _M_month01;
24801 const _CharT* _M_month02;
24802 const _CharT* _M_month03;
24803 const _CharT* _M_month04;
24804 const _CharT* _M_month05;
24805 const _CharT* _M_month06;
24806 const _CharT* _M_month07;
24807 const _CharT* _M_month08;
24808 const _CharT* _M_month09;
24809 const _CharT* _M_month10;
24810 const _CharT* _M_month11;
24811 const _CharT* _M_month12;
24814 const _CharT* _M_amonth01;
24815 const _CharT* _M_amonth02;
24816 const _CharT* _M_amonth03;
24817 const _CharT* _M_amonth04;
24818 const _CharT* _M_amonth05;
24819 const _CharT* _M_amonth06;
24820 const _CharT* _M_amonth07;
24821 const _CharT* _M_amonth08;
24822 const _CharT* _M_amonth09;
24823 const _CharT* _M_amonth10;
24824 const _CharT* _M_amonth11;
24825 const _CharT* _M_amonth12;
24829 __timepunct_cache(size_t __refs = 0) : facet(__refs),
24830 _M_date_format(__null), _M_date_era_format(__null), _M_time_format(__null),
24831 _M_time_era_format(__null), _M_date_time_format(__null),
24832 _M_date_time_era_format(__null), _M_am(__null), _M_pm(__null),
24833 _M_am_pm_format(__null), _M_day1(__null), _M_day2(__null), _M_day3(__null),
24834 _M_day4(__null), _M_day5(__null), _M_day6(__null), _M_day7(__null),
24835 _M_aday1(__null), _M_aday2(__null), _M_aday3(__null), _M_aday4(__null),
24836 _M_aday5(__null), _M_aday6(__null), _M_aday7(__null), _M_month01(__null),
24837 _M_month02(__null), _M_month03(__null), _M_month04(__null), _M_month05(__null),
24838 _M_month06(__null), _M_month07(__null), _M_month08(__null), _M_month09(__null),
24839 _M_month10(__null), _M_month11(__null), _M_month12(__null), _M_amonth01(__null),
24840 _M_amonth02(__null), _M_amonth03(__null), _M_amonth04(__null),
24841 _M_amonth05(__null), _M_amonth06(__null), _M_amonth07(__null),
24842 _M_amonth08(__null), _M_amonth09(__null), _M_amonth10(__null),
24843 _M_amonth11(__null), _M_amonth12(__null), _M_allocated(false)
24846 ~__timepunct_cache();
24849 _M_cache(const locale& __loc);
24853 operator=(const __timepunct_cache&);
24856 __timepunct_cache(const __timepunct_cache&);
24859 template<typename _CharT>
24860 __timepunct_cache<_CharT>::~__timepunct_cache()
24871 __timepunct_cache<char>::_S_timezones[14];
24876 __timepunct_cache<wchar_t>::_S_timezones[14];
24880 template<typename _CharT>
24881 const _CharT* __timepunct_cache<_CharT>::_S_timezones[14];
24883 template<typename _CharT>
24884 class __timepunct : public locale::facet
24888 typedef _CharT __char_type;
24889 typedef basic_string<_CharT> __string_type;
24890 typedef __timepunct_cache<_CharT> __cache_type;
24893 __cache_type* _M_data;
24894 __c_locale _M_c_locale_timepunct;
24895 const char* _M_name_timepunct;
24899 static locale::id id;
24902 __timepunct(size_t __refs = 0);
24905 __timepunct(__cache_type* __cache, size_t __refs = 0);
24906 # 2903 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
24908 __timepunct(__c_locale __cloc, const char* __s, size_t __refs = 0);
24913 _M_put(_CharT* __s, size_t __maxlen, const _CharT* __format,
24914 const tm* __tm) const;
24917 _M_date_formats(const _CharT** __date) const
24920 __date[0] = _M_data->_M_date_format;
24921 __date[1] = _M_data->_M_date_era_format;
24925 _M_time_formats(const _CharT** __time) const
24928 __time[0] = _M_data->_M_time_format;
24929 __time[1] = _M_data->_M_time_era_format;
24933 _M_date_time_formats(const _CharT** __dt) const
24936 __dt[0] = _M_data->_M_date_time_format;
24937 __dt[1] = _M_data->_M_date_time_era_format;
24941 _M_am_pm_format(const _CharT* __ampm) const
24942 { __ampm = _M_data->_M_am_pm_format; }
24945 _M_am_pm(const _CharT** __ampm) const
24947 __ampm[0] = _M_data->_M_am;
24948 __ampm[1] = _M_data->_M_pm;
24952 _M_days(const _CharT** __days) const
24954 __days[0] = _M_data->_M_day1;
24955 __days[1] = _M_data->_M_day2;
24956 __days[2] = _M_data->_M_day3;
24957 __days[3] = _M_data->_M_day4;
24958 __days[4] = _M_data->_M_day5;
24959 __days[5] = _M_data->_M_day6;
24960 __days[6] = _M_data->_M_day7;
24964 _M_days_abbreviated(const _CharT** __days) const
24966 __days[0] = _M_data->_M_aday1;
24967 __days[1] = _M_data->_M_aday2;
24968 __days[2] = _M_data->_M_aday3;
24969 __days[3] = _M_data->_M_aday4;
24970 __days[4] = _M_data->_M_aday5;
24971 __days[5] = _M_data->_M_aday6;
24972 __days[6] = _M_data->_M_aday7;
24976 _M_months(const _CharT** __months) const
24978 __months[0] = _M_data->_M_month01;
24979 __months[1] = _M_data->_M_month02;
24980 __months[2] = _M_data->_M_month03;
24981 __months[3] = _M_data->_M_month04;
24982 __months[4] = _M_data->_M_month05;
24983 __months[5] = _M_data->_M_month06;
24984 __months[6] = _M_data->_M_month07;
24985 __months[7] = _M_data->_M_month08;
24986 __months[8] = _M_data->_M_month09;
24987 __months[9] = _M_data->_M_month10;
24988 __months[10] = _M_data->_M_month11;
24989 __months[11] = _M_data->_M_month12;
24993 _M_months_abbreviated(const _CharT** __months) const
24995 __months[0] = _M_data->_M_amonth01;
24996 __months[1] = _M_data->_M_amonth02;
24997 __months[2] = _M_data->_M_amonth03;
24998 __months[3] = _M_data->_M_amonth04;
24999 __months[4] = _M_data->_M_amonth05;
25000 __months[5] = _M_data->_M_amonth06;
25001 __months[6] = _M_data->_M_amonth07;
25002 __months[7] = _M_data->_M_amonth08;
25003 __months[8] = _M_data->_M_amonth09;
25004 __months[9] = _M_data->_M_amonth10;
25005 __months[10] = _M_data->_M_amonth11;
25006 __months[11] = _M_data->_M_amonth12;
25015 _M_initialize_timepunct(__c_locale __cloc = __null);
25018 template<typename _CharT>
25019 locale::id __timepunct<_CharT>::id;
25024 __timepunct<char>::_M_initialize_timepunct(__c_locale __cloc);
25028 __timepunct<char>::_M_put(char*, size_t, const char*, const tm*) const;
25033 __timepunct<wchar_t>::_M_initialize_timepunct(__c_locale __cloc);
25037 __timepunct<wchar_t>::_M_put(wchar_t*, size_t, const wchar_t*,
25044 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/x86_64-pc-linux-gnu/bits/time_members.h" 1 3
25045 # 42 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/x86_64-pc-linux-gnu/bits/time_members.h" 3
25046 namespace std __attribute__ ((__visibility__ ("default"))) {
25048 template<typename _CharT>
25049 __timepunct<_CharT>::__timepunct(size_t __refs)
25050 : facet(__refs), _M_data(__null), _M_c_locale_timepunct(__null),
25051 _M_name_timepunct(_S_get_c_name())
25052 { _M_initialize_timepunct(); }
25054 template<typename _CharT>
25055 __timepunct<_CharT>::__timepunct(__cache_type* __cache, size_t __refs)
25056 : facet(__refs), _M_data(__cache), _M_c_locale_timepunct(__null),
25057 _M_name_timepunct(_S_get_c_name())
25058 { _M_initialize_timepunct(); }
25060 template<typename _CharT>
25061 __timepunct<_CharT>::__timepunct(__c_locale __cloc, const char* __s,
25063 : facet(__refs), _M_data(__null), _M_c_locale_timepunct(__null),
25064 _M_name_timepunct(__null)
25066 const size_t __len = std::strlen(__s) + 1;
25067 char* __tmp = new char[__len];
25068 std::memcpy(__tmp, __s, __len);
25069 _M_name_timepunct = __tmp;
25072 { _M_initialize_timepunct(__cloc); }
25075 delete [] _M_name_timepunct;
25080 template<typename _CharT>
25081 __timepunct<_CharT>::~__timepunct()
25083 if (_M_name_timepunct != _S_get_c_name())
25084 delete [] _M_name_timepunct;
25086 _S_destroy_c_locale(_M_c_locale_timepunct);
25090 # 3041 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 2 3
25092 namespace std __attribute__ ((__visibility__ ("default"))) {
25093 # 3056 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
25094 template<typename _CharT, typename _InIter>
25095 class time_get : public locale::facet, public time_base
25101 typedef _CharT char_type;
25102 typedef _InIter iter_type;
25104 typedef basic_string<_CharT> __string_type;
25107 static locale::id id;
25108 # 3078 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
25110 time_get(size_t __refs = 0)
25111 : facet (__refs) { }
25112 # 3095 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
25115 { return this->do_date_order(); }
25116 # 3119 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
25118 get_time(iter_type __beg, iter_type __end, ios_base& __io,
25119 ios_base::iostate& __err, tm* __tm) const
25120 { return this->do_get_time(__beg, __end, __io, __err, __tm); }
25121 # 3144 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
25123 get_date(iter_type __beg, iter_type __end, ios_base& __io,
25124 ios_base::iostate& __err, tm* __tm) const
25125 { return this->do_get_date(__beg, __end, __io, __err, __tm); }
25126 # 3172 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
25128 get_weekday(iter_type __beg, iter_type __end, ios_base& __io,
25129 ios_base::iostate& __err, tm* __tm) const
25130 { return this->do_get_weekday(__beg, __end, __io, __err, __tm); }
25131 # 3201 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
25133 get_monthname(iter_type __beg, iter_type __end, ios_base& __io,
25134 ios_base::iostate& __err, tm* __tm) const
25135 { return this->do_get_monthname(__beg, __end, __io, __err, __tm); }
25136 # 3227 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
25138 get_year(iter_type __beg, iter_type __end, ios_base& __io,
25139 ios_base::iostate& __err, tm* __tm) const
25140 { return this->do_get_year(__beg, __end, __io, __err, __tm); }
25146 # 3247 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
25148 do_date_order() const;
25149 # 3265 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
25151 do_get_time(iter_type __beg, iter_type __end, ios_base& __io,
25152 ios_base::iostate& __err, tm* __tm) const;
25153 # 3284 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
25155 do_get_date(iter_type __beg, iter_type __end, ios_base& __io,
25156 ios_base::iostate& __err, tm* __tm) const;
25157 # 3303 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
25159 do_get_weekday(iter_type __beg, iter_type __end, ios_base&,
25160 ios_base::iostate& __err, tm* __tm) const;
25161 # 3322 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
25163 do_get_monthname(iter_type __beg, iter_type __end, ios_base&,
25164 ios_base::iostate& __err, tm* __tm) const;
25165 # 3341 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
25167 do_get_year(iter_type __beg, iter_type __end, ios_base& __io,
25168 ios_base::iostate& __err, tm* __tm) const;
25172 _M_extract_num(iter_type __beg, iter_type __end, int& __member,
25173 int __min, int __max, size_t __len,
25174 ios_base& __io, ios_base::iostate& __err) const;
25179 _M_extract_name(iter_type __beg, iter_type __end, int& __member,
25180 const _CharT** __names, size_t __indexlen,
25181 ios_base& __io, ios_base::iostate& __err) const;
25185 _M_extract_via_format(iter_type __beg, iter_type __end, ios_base& __io,
25186 ios_base::iostate& __err, tm* __tm,
25187 const _CharT* __format) const;
25190 template<typename _CharT, typename _InIter>
25191 locale::id time_get<_CharT, _InIter>::id;
25194 template<typename _CharT, typename _InIter>
25195 class time_get_byname : public time_get<_CharT, _InIter>
25199 typedef _CharT char_type;
25200 typedef _InIter iter_type;
25203 time_get_byname(const char*, size_t __refs = 0)
25204 : time_get<_CharT, _InIter>(__refs) { }
25208 ~time_get_byname() { }
25210 # 3397 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
25211 template<typename _CharT, typename _OutIter>
25212 class time_put : public locale::facet
25218 typedef _CharT char_type;
25219 typedef _OutIter iter_type;
25223 static locale::id id;
25224 # 3418 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
25226 time_put(size_t __refs = 0)
25227 : facet(__refs) { }
25228 # 3437 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
25230 put(iter_type __s, ios_base& __io, char_type __fill, const tm* __tm,
25231 const _CharT* __beg, const _CharT* __end) const;
25232 # 3457 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
25234 put(iter_type __s, ios_base& __io, char_type __fill,
25235 const tm* __tm, char __format, char __mod = 0) const
25236 { return this->do_put(__s, __io, __fill, __tm, __format, __mod); }
25243 # 3484 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
25245 do_put(iter_type __s, ios_base& __io, char_type __fill, const tm* __tm,
25246 char __format, char __mod) const;
25249 template<typename _CharT, typename _OutIter>
25250 locale::id time_put<_CharT, _OutIter>::id;
25253 template<typename _CharT, typename _OutIter>
25254 class time_put_byname : public time_put<_CharT, _OutIter>
25258 typedef _CharT char_type;
25259 typedef _OutIter iter_type;
25262 time_put_byname(const char*, size_t __refs = 0)
25263 : time_put<_CharT, _OutIter>(__refs)
25268 ~time_put_byname() { }
25270 # 3522 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
25274 enum part { none, space, symbol, sign, value };
25275 struct pattern { char field[4]; };
25277 static const pattern _S_default_pattern;
25288 static const char* _S_atoms;
25293 _S_construct_pattern(char __precedes, char __space, char __posn);
25296 template<typename _CharT, bool _Intl>
25297 struct __moneypunct_cache : public locale::facet
25299 const char* _M_grouping;
25300 size_t _M_grouping_size;
25301 bool _M_use_grouping;
25302 _CharT _M_decimal_point;
25303 _CharT _M_thousands_sep;
25304 const _CharT* _M_curr_symbol;
25305 size_t _M_curr_symbol_size;
25306 const _CharT* _M_positive_sign;
25307 size_t _M_positive_sign_size;
25308 const _CharT* _M_negative_sign;
25309 size_t _M_negative_sign_size;
25310 int _M_frac_digits;
25311 money_base::pattern _M_pos_format;
25312 money_base::pattern _M_neg_format;
25317 _CharT _M_atoms[money_base::_S_end];
25321 __moneypunct_cache(size_t __refs = 0) : facet(__refs),
25322 _M_grouping(__null), _M_grouping_size(0), _M_use_grouping(false),
25323 _M_decimal_point(_CharT()), _M_thousands_sep(_CharT()),
25324 _M_curr_symbol(__null), _M_curr_symbol_size(0),
25325 _M_positive_sign(__null), _M_positive_sign_size(0),
25326 _M_negative_sign(__null), _M_negative_sign_size(0),
25328 _M_pos_format(money_base::pattern()),
25329 _M_neg_format(money_base::pattern()), _M_allocated(false)
25332 ~__moneypunct_cache();
25335 _M_cache(const locale& __loc);
25338 __moneypunct_cache&
25339 operator=(const __moneypunct_cache&);
25342 __moneypunct_cache(const __moneypunct_cache&);
25345 template<typename _CharT, bool _Intl>
25346 __moneypunct_cache<_CharT, _Intl>::~__moneypunct_cache()
25350 delete [] _M_grouping;
25351 delete [] _M_curr_symbol;
25352 delete [] _M_positive_sign;
25353 delete [] _M_negative_sign;
25363 template<typename _CharT, bool _Intl>
25364 class moneypunct : public locale::facet, public money_base
25370 typedef _CharT char_type;
25371 typedef basic_string<_CharT> string_type;
25373 typedef __moneypunct_cache<_CharT, _Intl> __cache_type;
25376 __cache_type* _M_data;
25381 static const bool intl = _Intl;
25383 static locale::id id;
25384 # 3643 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
25386 moneypunct(size_t __refs = 0) : facet(__refs), _M_data(__null)
25387 { _M_initialize_moneypunct(); }
25388 # 3655 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
25390 moneypunct(__cache_type* __cache, size_t __refs = 0)
25391 : facet(__refs), _M_data(__cache)
25392 { _M_initialize_moneypunct(); }
25393 # 3670 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
25395 moneypunct(__c_locale __cloc, const char* __s, size_t __refs = 0)
25396 : facet(__refs), _M_data(__null)
25397 { _M_initialize_moneypunct(__cloc, __s); }
25398 # 3684 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
25400 decimal_point() const
25401 { return this->do_decimal_point(); }
25402 # 3697 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
25404 thousands_sep() const
25405 { return this->do_thousands_sep(); }
25406 # 3726 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
25409 { return this->do_grouping(); }
25410 # 3739 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
25412 curr_symbol() const
25413 { return this->do_curr_symbol(); }
25414 # 3756 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
25416 positive_sign() const
25417 { return this->do_positive_sign(); }
25418 # 3773 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
25420 negative_sign() const
25421 { return this->do_negative_sign(); }
25422 # 3789 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
25424 frac_digits() const
25425 { return this->do_frac_digits(); }
25426 # 3824 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
25429 { return this->do_pos_format(); }
25433 { return this->do_neg_format(); }
25440 # 3846 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
25442 do_decimal_point() const
25443 { return _M_data->_M_decimal_point; }
25444 # 3858 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
25446 do_thousands_sep() const
25447 { return _M_data->_M_thousands_sep; }
25448 # 3871 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
25450 do_grouping() const
25451 { return _M_data->_M_grouping; }
25452 # 3884 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
25453 virtual string_type
25454 do_curr_symbol() const
25455 { return _M_data->_M_curr_symbol; }
25456 # 3897 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
25457 virtual string_type
25458 do_positive_sign() const
25459 { return _M_data->_M_positive_sign; }
25460 # 3910 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
25461 virtual string_type
25462 do_negative_sign() const
25463 { return _M_data->_M_negative_sign; }
25464 # 3924 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
25466 do_frac_digits() const
25467 { return _M_data->_M_frac_digits; }
25468 # 3938 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
25470 do_pos_format() const
25471 { return _M_data->_M_pos_format; }
25472 # 3952 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
25474 do_neg_format() const
25475 { return _M_data->_M_neg_format; }
25479 _M_initialize_moneypunct(__c_locale __cloc = __null,
25480 const char* __name = __null);
25483 template<typename _CharT, bool _Intl>
25484 locale::id moneypunct<_CharT, _Intl>::id;
25486 template<typename _CharT, bool _Intl>
25487 const bool moneypunct<_CharT, _Intl>::intl;
25490 moneypunct<char, true>::~moneypunct();
25493 moneypunct<char, false>::~moneypunct();
25497 moneypunct<char, true>::_M_initialize_moneypunct(__c_locale, const char*);
25501 moneypunct<char, false>::_M_initialize_moneypunct(__c_locale, const char*);
25505 moneypunct<wchar_t, true>::~moneypunct();
25508 moneypunct<wchar_t, false>::~moneypunct();
25512 moneypunct<wchar_t, true>::_M_initialize_moneypunct(__c_locale,
25517 moneypunct<wchar_t, false>::_M_initialize_moneypunct(__c_locale,
25522 template<typename _CharT, bool _Intl>
25523 class moneypunct_byname : public moneypunct<_CharT, _Intl>
25526 typedef _CharT char_type;
25527 typedef basic_string<_CharT> string_type;
25529 static const bool intl = _Intl;
25532 moneypunct_byname(const char* __s, size_t __refs = 0)
25533 : moneypunct<_CharT, _Intl>(__refs)
25535 if (std::strcmp(__s, "C") != 0 && std::strcmp(__s, "POSIX") != 0)
25538 this->_S_create_c_locale(__tmp, __s);
25539 this->_M_initialize_moneypunct(__tmp);
25540 this->_S_destroy_c_locale(__tmp);
25546 ~moneypunct_byname() { }
25549 template<typename _CharT, bool _Intl>
25550 const bool moneypunct_byname<_CharT, _Intl>::intl;
25553 # 4044 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
25554 template<typename _CharT, typename _InIter>
25555 class money_get : public locale::facet
25561 typedef _CharT char_type;
25562 typedef _InIter iter_type;
25563 typedef basic_string<_CharT> string_type;
25567 static locale::id id;
25568 # 4066 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
25570 money_get(size_t __refs = 0) : facet(__refs) { }
25571 # 4096 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
25573 get(iter_type __s, iter_type __end, bool __intl, ios_base& __io,
25574 ios_base::iostate& __err, long double& __units) const
25575 { return this->do_get(__s, __end, __intl, __io, __err, __units); }
25576 # 4126 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
25578 get(iter_type __s, iter_type __end, bool __intl, ios_base& __io,
25579 ios_base::iostate& __err, string_type& __digits) const
25580 { return this->do_get(__s, __end, __intl, __io, __err, __digits); }
25586 # 4149 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
25588 do_get(iter_type __s, iter_type __end, bool __intl, ios_base& __io,
25589 ios_base::iostate& __err, long double& __units) const;
25590 # 4161 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
25592 do_get(iter_type __s, iter_type __end, bool __intl, ios_base& __io,
25593 ios_base::iostate& __err, string_type& __digits) const;
25594 # 4172 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
25595 template<bool _Intl>
25597 _M_extract(iter_type __s, iter_type __end, ios_base& __io,
25598 ios_base::iostate& __err, string& __digits) const;
25601 template<typename _CharT, typename _InIter>
25602 locale::id money_get<_CharT, _InIter>::id;
25603 # 4193 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
25604 template<typename _CharT, typename _OutIter>
25605 class money_put : public locale::facet
25610 typedef _CharT char_type;
25611 typedef _OutIter iter_type;
25612 typedef basic_string<_CharT> string_type;
25616 static locale::id id;
25617 # 4214 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
25619 money_put(size_t __refs = 0) : facet(__refs) { }
25620 # 4234 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
25622 put(iter_type __s, bool __intl, ios_base& __io,
25623 char_type __fill, long double __units) const
25624 { return this->do_put(__s, __intl, __io, __fill, __units); }
25625 # 4256 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
25627 put(iter_type __s, bool __intl, ios_base& __io,
25628 char_type __fill, const string_type& __digits) const
25629 { return this->do_put(__s, __intl, __io, __fill, __digits); }
25635 # 4290 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
25637 do_put(iter_type __s, bool __intl, ios_base& __io, char_type __fill,
25638 long double __units) const;
25639 # 4313 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
25641 do_put(iter_type __s, bool __intl, ios_base& __io, char_type __fill,
25642 const string_type& __digits) const;
25643 # 4324 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
25644 template<bool _Intl>
25646 _M_insert(iter_type __s, ios_base& __io, char_type __fill,
25647 const string_type& __digits) const;
25650 template<typename _CharT, typename _OutIter>
25651 locale::id money_put<_CharT, _OutIter>::id;
25658 struct messages_base
25660 typedef int catalog;
25662 # 4363 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
25663 template<typename _CharT>
25664 class messages : public locale::facet, public messages_base
25670 typedef _CharT char_type;
25671 typedef basic_string<_CharT> string_type;
25677 __c_locale _M_c_locale_messages;
25678 const char* _M_name_messages;
25682 static locale::id id;
25683 # 4391 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
25685 messages(size_t __refs = 0);
25686 # 4405 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
25688 messages(__c_locale __cloc, const char* __s, size_t __refs = 0);
25689 # 4418 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
25691 open(const basic_string<char>& __s, const locale& __loc) const
25692 { return this->do_open(__s, __loc); }
25693 # 4436 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
25695 open(const basic_string<char>&, const locale&, const char*) const;
25696 # 4454 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
25698 get(catalog __c, int __set, int __msgid, const string_type& __s) const
25699 { return this->do_get(__c, __set, __msgid, __s); }
25700 # 4465 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
25702 close(catalog __c) const
25703 { return this->do_close(__c); }
25709 # 4485 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
25711 do_open(const basic_string<char>&, const locale&) const;
25712 # 4504 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
25713 virtual string_type
25714 do_get(catalog, int, int, const string_type& __dfault) const;
25722 do_close(catalog) const;
25726 _M_convert_to_char(const string_type& __msg) const
25729 return reinterpret_cast<char*>(const_cast<_CharT*>(__msg.c_str()));
25734 _M_convert_from_char(char*) const
25736 # 4561 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 3
25737 return string_type();
25741 template<typename _CharT>
25742 locale::id messages<_CharT>::id;
25747 messages<char>::do_get(catalog, int, int, const string&) const;
25752 messages<wchar_t>::do_get(catalog, int, int, const wstring&) const;
25756 template<typename _CharT>
25757 class messages_byname : public messages<_CharT>
25760 typedef _CharT char_type;
25761 typedef basic_string<_CharT> string_type;
25764 messages_byname(const char* __s, size_t __refs = 0);
25775 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/x86_64-pc-linux-gnu/bits/messages_members.h" 1 3
25776 # 41 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/x86_64-pc-linux-gnu/bits/messages_members.h" 3
25777 namespace std __attribute__ ((__visibility__ ("default"))) {
25780 template<typename _CharT>
25781 messages<_CharT>::messages(size_t __refs)
25782 : facet(__refs), _M_c_locale_messages(_S_get_c_locale()),
25783 _M_name_messages(_S_get_c_name())
25786 template<typename _CharT>
25787 messages<_CharT>::messages(__c_locale __cloc, const char* __s,
25789 : facet(__refs), _M_c_locale_messages(__null), _M_name_messages(__null)
25791 const size_t __len = std::strlen(__s) + 1;
25792 char* __tmp = new char[__len];
25793 std::memcpy(__tmp, __s, __len);
25794 _M_name_messages = __tmp;
25797 _M_c_locale_messages = _S_clone_c_locale(__cloc);
25800 template<typename _CharT>
25801 typename messages<_CharT>::catalog
25802 messages<_CharT>::open(const basic_string<char>& __s, const locale& __loc,
25803 const char* __dir) const
25805 bindtextdomain(__s.c_str(), __dir);
25806 return this->do_open(__s, __loc);
25810 template<typename _CharT>
25811 messages<_CharT>::~messages()
25813 if (_M_name_messages != _S_get_c_name())
25814 delete [] _M_name_messages;
25815 _S_destroy_c_locale(_M_c_locale_messages);
25818 template<typename _CharT>
25819 typename messages<_CharT>::catalog
25820 messages<_CharT>::do_open(const basic_string<char>& __s,
25821 const locale&) const
25825 textdomain(__s.c_str());
25829 template<typename _CharT>
25831 messages<_CharT>::do_close(catalog) const
25835 template<typename _CharT>
25836 messages_byname<_CharT>::messages_byname(const char* __s, size_t __refs)
25837 : messages<_CharT>(__refs)
25839 if (this->_M_name_messages != locale::facet::_S_get_c_name())
25840 delete [] this->_M_name_messages;
25841 char* __tmp = new char[std::strlen(__s) + 1];
25842 std::strcpy(__tmp, __s);
25843 this->_M_name_messages = __tmp;
25845 if (std::strcmp(__s, "C") != 0 && std::strcmp(__s, "POSIX") != 0)
25847 this->_S_destroy_c_locale(this->_M_c_locale_messages);
25848 this->_S_create_c_locale(this->_M_c_locale_messages, __s);
25853 # 4600 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.h" 2 3
25855 namespace std __attribute__ ((__visibility__ ("default"))) {
25863 template<typename _CharT>
25865 isspace(_CharT __c, const locale& __loc)
25866 { return use_facet<ctype<_CharT> >(__loc).is(ctype_base::space, __c); }
25869 template<typename _CharT>
25871 isprint(_CharT __c, const locale& __loc)
25872 { return use_facet<ctype<_CharT> >(__loc).is(ctype_base::print, __c); }
25875 template<typename _CharT>
25877 iscntrl(_CharT __c, const locale& __loc)
25878 { return use_facet<ctype<_CharT> >(__loc).is(ctype_base::cntrl, __c); }
25881 template<typename _CharT>
25883 isupper(_CharT __c, const locale& __loc)
25884 { return use_facet<ctype<_CharT> >(__loc).is(ctype_base::upper, __c); }
25887 template<typename _CharT>
25889 islower(_CharT __c, const locale& __loc)
25890 { return use_facet<ctype<_CharT> >(__loc).is(ctype_base::lower, __c); }
25893 template<typename _CharT>
25895 isalpha(_CharT __c, const locale& __loc)
25896 { return use_facet<ctype<_CharT> >(__loc).is(ctype_base::alpha, __c); }
25899 template<typename _CharT>
25901 isdigit(_CharT __c, const locale& __loc)
25902 { return use_facet<ctype<_CharT> >(__loc).is(ctype_base::digit, __c); }
25905 template<typename _CharT>
25907 ispunct(_CharT __c, const locale& __loc)
25908 { return use_facet<ctype<_CharT> >(__loc).is(ctype_base::punct, __c); }
25911 template<typename _CharT>
25913 isxdigit(_CharT __c, const locale& __loc)
25914 { return use_facet<ctype<_CharT> >(__loc).is(ctype_base::xdigit, __c); }
25917 template<typename _CharT>
25919 isalnum(_CharT __c, const locale& __loc)
25920 { return use_facet<ctype<_CharT> >(__loc).is(ctype_base::alnum, __c); }
25923 template<typename _CharT>
25925 isgraph(_CharT __c, const locale& __loc)
25926 { return use_facet<ctype<_CharT> >(__loc).is(ctype_base::graph, __c); }
25929 template<typename _CharT>
25931 toupper(_CharT __c, const locale& __loc)
25932 { return use_facet<ctype<_CharT> >(__loc).toupper(__c); }
25935 template<typename _CharT>
25937 tolower(_CharT __c, const locale& __loc)
25938 { return use_facet<ctype<_CharT> >(__loc).tolower(__c); }
25941 # 45 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/basic_ios.h" 2 3
25943 namespace std __attribute__ ((__visibility__ ("default"))) {
25944 # 55 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/basic_ios.h" 3
25945 template<typename _CharT, typename _Traits>
25946 class basic_ios : public ios_base
25955 typedef _CharT char_type;
25956 typedef typename _Traits::int_type int_type;
25957 typedef typename _Traits::pos_type pos_type;
25958 typedef typename _Traits::off_type off_type;
25959 typedef _Traits traits_type;
25960 # 78 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/basic_ios.h" 3
25961 typedef ctype<_CharT> __ctype_type;
25962 typedef num_put<_CharT, ostreambuf_iterator<_CharT, _Traits> >
25964 typedef num_get<_CharT, istreambuf_iterator<_CharT, _Traits> >
25970 basic_ostream<_CharT, _Traits>* _M_tie;
25971 mutable char_type _M_fill;
25972 mutable bool _M_fill_init;
25973 basic_streambuf<_CharT, _Traits>* _M_streambuf;
25976 const __ctype_type* _M_ctype;
25978 const __num_put_type* _M_num_put;
25980 const __num_get_type* _M_num_get;
25990 operator void*() const
25991 { return this->fail() ? 0 : const_cast<basic_ios*>(this); }
25995 { return this->fail(); }
25996 # 122 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/basic_ios.h" 3
25999 { return _M_streambuf_state; }
26000 # 133 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/basic_ios.h" 3
26002 clear(iostate __state = goodbit);
26011 setstate(iostate __state)
26012 { this->clear(this->rdstate() | __state); }
26018 _M_setstate(iostate __state)
26022 _M_streambuf_state |= __state;
26023 if (this->exceptions() & __state)
26035 { return this->rdstate() == 0; }
26045 { return (this->rdstate() & eofbit) != 0; }
26046 # 186 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/basic_ios.h" 3
26049 { return (this->rdstate() & (badbit | failbit)) != 0; }
26059 { return (this->rdstate() & badbit) != 0; }
26060 # 207 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/basic_ios.h" 3
26063 { return _M_exception; }
26064 # 242 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/basic_ios.h" 3
26066 exceptions(iostate __except)
26068 _M_exception = __except;
26069 this->clear(_M_streambuf_state);
26079 basic_ios(basic_streambuf<_CharT, _Traits>* __sb)
26080 : ios_base(), _M_tie(0), _M_fill(), _M_fill_init(false), _M_streambuf(0),
26081 _M_ctype(0), _M_num_put(0), _M_num_get(0)
26082 { this->init(__sb); }
26092 # 280 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/basic_ios.h" 3
26093 basic_ostream<_CharT, _Traits>*
26096 # 292 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/basic_ios.h" 3
26097 basic_ostream<_CharT, _Traits>*
26098 tie(basic_ostream<_CharT, _Traits>* __tiestr)
26100 basic_ostream<_CharT, _Traits>* __old = _M_tie;
26111 basic_streambuf<_CharT, _Traits>*
26113 { return _M_streambuf; }
26114 # 332 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/basic_ios.h" 3
26115 basic_streambuf<_CharT, _Traits>*
26116 rdbuf(basic_streambuf<_CharT, _Traits>* __sb);
26117 # 346 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/basic_ios.h" 3
26119 copyfmt(const basic_ios& __rhs);
26132 _M_fill = this->widen(' ');
26133 _M_fill_init = true;
26137 # 375 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/basic_ios.h" 3
26139 fill(char_type __ch)
26141 char_type __old = this->fill();
26145 # 395 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/basic_ios.h" 3
26147 imbue(const locale& __loc);
26148 # 415 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/basic_ios.h" 3
26150 narrow(char_type __c, char __dfault) const;
26151 # 433 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/basic_ios.h" 3
26153 widen(char __c) const;
26164 : ios_base(), _M_tie(0), _M_fill(char_type()), _M_fill_init(false),
26165 _M_streambuf(0), _M_ctype(0), _M_num_put(0), _M_num_get(0)
26175 init(basic_streambuf<_CharT, _Traits>* __sb);
26178 _M_cache_locale(const locale& __loc);
26184 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/basic_ios.tcc" 1 3
26185 # 39 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/basic_ios.tcc" 3
26187 # 40 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/basic_ios.tcc" 3
26189 namespace std __attribute__ ((__visibility__ ("default"))) {
26191 template<typename _CharT, typename _Traits>
26193 basic_ios<_CharT, _Traits>::clear(iostate __state)
26196 _M_streambuf_state = __state;
26198 _M_streambuf_state = __state | badbit;
26199 if (this->exceptions() & this->rdstate())
26200 __throw_ios_failure(("basic_ios::clear"));
26203 template<typename _CharT, typename _Traits>
26204 basic_streambuf<_CharT, _Traits>*
26205 basic_ios<_CharT, _Traits>::rdbuf(basic_streambuf<_CharT, _Traits>* __sb)
26207 basic_streambuf<_CharT, _Traits>* __old = _M_streambuf;
26208 _M_streambuf = __sb;
26213 template<typename _CharT, typename _Traits>
26214 basic_ios<_CharT, _Traits>&
26215 basic_ios<_CharT, _Traits>::copyfmt(const basic_ios& __rhs)
26219 if (this != &__rhs)
26225 _Words* __words = (__rhs._M_word_size <= _S_local_word_size) ?
26226 _M_local_word : new _Words[__rhs._M_word_size];
26229 _Callback_list* __cb = __rhs._M_callbacks;
26231 __cb->_M_add_reference();
26232 _M_call_callbacks(erase_event);
26233 if (_M_word != _M_local_word)
26238 _M_dispose_callbacks();
26241 _M_callbacks = __cb;
26242 for (int __i = 0; __i < __rhs._M_word_size; ++__i)
26243 __words[__i] = __rhs._M_word[__i];
26245 _M_word_size = __rhs._M_word_size;
26247 this->flags(__rhs.flags());
26248 this->width(__rhs.width());
26249 this->precision(__rhs.precision());
26250 this->tie(__rhs.tie());
26251 this->fill(__rhs.fill());
26252 _M_ios_locale = __rhs.getloc();
26253 _M_cache_locale(_M_ios_locale);
26255 _M_call_callbacks(copyfmt_event);
26258 this->exceptions(__rhs.exceptions());
26263 template<typename _CharT, typename _Traits>
26265 basic_ios<_CharT, _Traits>::narrow(char_type __c, char __dfault) const
26266 { return __check_facet(_M_ctype).narrow(__c, __dfault); }
26268 template<typename _CharT, typename _Traits>
26270 basic_ios<_CharT, _Traits>::widen(char __c) const
26271 { return __check_facet(_M_ctype).widen(__c); }
26274 template<typename _CharT, typename _Traits>
26276 basic_ios<_CharT, _Traits>::imbue(const locale& __loc)
26278 locale __old(this->getloc());
26279 ios_base::imbue(__loc);
26280 _M_cache_locale(__loc);
26281 if (this->rdbuf() != 0)
26282 this->rdbuf()->pubimbue(__loc);
26286 template<typename _CharT, typename _Traits>
26288 basic_ios<_CharT, _Traits>::init(basic_streambuf<_CharT, _Traits>* __sb)
26291 ios_base::_M_init();
26294 _M_cache_locale(_M_ios_locale);
26295 # 160 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/basic_ios.tcc" 3
26296 _M_fill = _CharT();
26297 _M_fill_init = false;
26300 _M_exception = goodbit;
26301 _M_streambuf = __sb;
26302 _M_streambuf_state = __sb ? goodbit : badbit;
26305 template<typename _CharT, typename _Traits>
26307 basic_ios<_CharT, _Traits>::_M_cache_locale(const locale& __loc)
26309 if (__builtin_expect(has_facet<__ctype_type>(__loc), true))
26310 _M_ctype = &use_facet<__ctype_type>(__loc);
26314 if (__builtin_expect(has_facet<__num_put_type>(__loc), true))
26315 _M_num_put = &use_facet<__num_put_type>(__loc);
26319 if (__builtin_expect(has_facet<__num_get_type>(__loc), true))
26320 _M_num_get = &use_facet<__num_get_type>(__loc);
26329 extern template class basic_ios<char>;
26332 extern template class basic_ios<wchar_t>;
26337 # 466 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/basic_ios.h" 2 3
26338 # 51 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/ios" 2 3
26339 # 46 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/ostream" 2 3
26342 namespace std __attribute__ ((__visibility__ ("default"))) {
26343 # 58 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/ostream" 3
26344 template<typename _CharT, typename _Traits>
26345 class basic_ostream : virtual public basic_ios<_CharT, _Traits>
26349 typedef _CharT char_type;
26350 typedef typename _Traits::int_type int_type;
26351 typedef typename _Traits::pos_type pos_type;
26352 typedef typename _Traits::off_type off_type;
26353 typedef _Traits traits_type;
26356 typedef basic_streambuf<_CharT, _Traits> __streambuf_type;
26357 typedef basic_ios<_CharT, _Traits> __ios_type;
26358 typedef basic_ostream<_CharT, _Traits> __ostream_type;
26359 typedef num_put<_CharT, ostreambuf_iterator<_CharT, _Traits> >
26361 typedef ctype<_CharT> __ctype_type;
26362 # 85 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/ostream" 3
26364 basic_ostream(__streambuf_type* __sb)
26365 { this->init(__sb); }
26373 ~basic_ostream() { }
26377 friend class sentry;
26378 # 111 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/ostream" 3
26380 operator<<(__ostream_type& (*__pf)(__ostream_type&))
26385 return __pf(*this);
26389 operator<<(__ios_type& (*__pf)(__ios_type&))
26399 operator<<(ios_base& (*__pf) (ios_base&))
26407 # 168 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/ostream" 3
26409 operator<<(long __n)
26410 { return _M_insert(__n); }
26413 operator<<(unsigned long __n)
26414 { return _M_insert(__n); }
26417 operator<<(bool __n)
26418 { return _M_insert(__n); }
26421 operator<<(short __n);
26424 operator<<(unsigned short __n)
26428 return _M_insert(static_cast<unsigned long>(__n));
26432 operator<<(int __n);
26435 operator<<(unsigned int __n)
26439 return _M_insert(static_cast<unsigned long>(__n));
26444 operator<<(long long __n)
26445 { return _M_insert(__n); }
26448 operator<<(unsigned long long __n)
26449 { return _M_insert(__n); }
26453 operator<<(double __f)
26454 { return _M_insert(__f); }
26457 operator<<(float __f)
26461 return _M_insert(static_cast<double>(__f));
26465 operator<<(long double __f)
26466 { return _M_insert(__f); }
26469 operator<<(const void* __p)
26470 { return _M_insert(__p); }
26471 # 253 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/ostream" 3
26473 operator<<(__streambuf_type* __sb);
26474 # 286 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/ostream" 3
26476 put(char_type __c);
26480 _M_write(const char_type* __s, streamsize __n)
26482 const streamsize __put = this->rdbuf()->sputn(__s, __n);
26484 this->setstate(ios_base::badbit);
26486 # 314 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/ostream" 3
26488 write(const char_type* __s, streamsize __n);
26489 # 327 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/ostream" 3
26492 # 338 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/ostream" 3
26495 # 349 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/ostream" 3
26498 # 361 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/ostream" 3
26500 seekp(off_type, ios_base::seekdir);
26504 basic_ostream() { }
26506 template<typename _ValueT>
26508 _M_insert(_ValueT __v);
26510 # 383 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/ostream" 3
26511 template <typename _CharT, typename _Traits>
26512 class basic_ostream<_CharT, _Traits>::sentry
26516 basic_ostream<_CharT, _Traits>& _M_os;
26519 # 402 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/ostream" 3
26521 sentry(basic_ostream<_CharT, _Traits>& __os);
26522 # 412 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/ostream" 3
26526 if (_M_os.flags() & ios_base::unitbuf && !uncaught_exception())
26529 if (_M_os.rdbuf() && _M_os.rdbuf()->pubsync() == -1)
26530 _M_os.setstate(ios_base::badbit);
26533 # 430 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/ostream" 3
26534 operator bool() const
26537 # 451 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/ostream" 3
26538 template<typename _CharT, typename _Traits>
26539 inline basic_ostream<_CharT, _Traits>&
26540 operator<<(basic_ostream<_CharT, _Traits>& __out, _CharT __c)
26541 { return __ostream_insert(__out, &__c, 1); }
26543 template<typename _CharT, typename _Traits>
26544 inline basic_ostream<_CharT, _Traits>&
26545 operator<<(basic_ostream<_CharT, _Traits>& __out, char __c)
26546 { return (__out << __out.widen(__c)); }
26549 template <class _Traits>
26550 inline basic_ostream<char, _Traits>&
26551 operator<<(basic_ostream<char, _Traits>& __out, char __c)
26552 { return __ostream_insert(__out, &__c, 1); }
26555 template<class _Traits>
26556 inline basic_ostream<char, _Traits>&
26557 operator<<(basic_ostream<char, _Traits>& __out, signed char __c)
26558 { return (__out << static_cast<char>(__c)); }
26560 template<class _Traits>
26561 inline basic_ostream<char, _Traits>&
26562 operator<<(basic_ostream<char, _Traits>& __out, unsigned char __c)
26563 { return (__out << static_cast<char>(__c)); }
26564 # 493 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/ostream" 3
26565 template<typename _CharT, typename _Traits>
26566 inline basic_ostream<_CharT, _Traits>&
26567 operator<<(basic_ostream<_CharT, _Traits>& __out, const _CharT* __s)
26570 __out.setstate(ios_base::badbit);
26572 __ostream_insert(__out, __s,
26573 static_cast<streamsize>(_Traits::length(__s)));
26577 template<typename _CharT, typename _Traits>
26578 basic_ostream<_CharT, _Traits> &
26579 operator<<(basic_ostream<_CharT, _Traits>& __out, const char* __s);
26582 template<class _Traits>
26583 inline basic_ostream<char, _Traits>&
26584 operator<<(basic_ostream<char, _Traits>& __out, const char* __s)
26587 __out.setstate(ios_base::badbit);
26589 __ostream_insert(__out, __s,
26590 static_cast<streamsize>(_Traits::length(__s)));
26595 template<class _Traits>
26596 inline basic_ostream<char, _Traits>&
26597 operator<<(basic_ostream<char, _Traits>& __out, const signed char* __s)
26598 { return (__out << reinterpret_cast<const char*>(__s)); }
26600 template<class _Traits>
26601 inline basic_ostream<char, _Traits> &
26602 operator<<(basic_ostream<char, _Traits>& __out, const unsigned char* __s)
26603 { return (__out << reinterpret_cast<const char*>(__s)); }
26604 # 543 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/ostream" 3
26605 template<typename _CharT, typename _Traits>
26606 inline basic_ostream<_CharT, _Traits>&
26607 endl(basic_ostream<_CharT, _Traits>& __os)
26608 { return flush(__os.put(__os.widen('\n'))); }
26616 template<typename _CharT, typename _Traits>
26617 inline basic_ostream<_CharT, _Traits>&
26618 ends(basic_ostream<_CharT, _Traits>& __os)
26619 { return __os.put(_CharT()); }
26626 template<typename _CharT, typename _Traits>
26627 inline basic_ostream<_CharT, _Traits>&
26628 flush(basic_ostream<_CharT, _Traits>& __os)
26629 { return __os.flush(); }
26634 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/ostream.tcc" 1 3
26635 # 44 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/ostream.tcc" 3
26637 # 45 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/ostream.tcc" 3
26639 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/locale" 1 3
26640 # 41 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/locale" 3
26642 # 42 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/locale" 3
26647 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.tcc" 1 3
26648 # 39 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.tcc" 3
26650 # 40 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.tcc" 3
26653 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/typeinfo" 1 3
26654 # 41 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/typeinfo" 3
26655 #pragma GCC visibility push(default)
26659 namespace __cxxabiv1
26661 class __class_type_info;
26663 # 60 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/typeinfo" 3
26679 virtual ~type_info();
26683 const char* name() const
26685 # 94 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/typeinfo" 3
26686 bool before(const type_info& __arg) const
26687 { return __name < __arg.__name; }
26689 bool operator==(const type_info& __arg) const
26690 { return __name == __arg.__name; }
26692 bool operator!=(const type_info& __arg) const
26693 { return !operator==(__arg); }
26696 virtual bool __is_pointer_p() const;
26699 virtual bool __is_function_p() const;
26707 virtual bool __do_catch(const type_info *__thr_type, void **__thr_obj,
26708 unsigned __outer) const;
26711 virtual bool __do_upcast(const __cxxabiv1::__class_type_info *__target,
26712 void **__obj_ptr) const;
26715 const char *__name;
26717 explicit type_info(const char *__n): __name(__n) { }
26721 type_info& operator=(const type_info&);
26722 type_info(const type_info&);
26730 class bad_cast : public exception
26733 bad_cast() throw() { }
26737 virtual ~bad_cast() throw();
26740 virtual const char* what() const throw();
26744 class bad_typeid : public exception
26747 bad_typeid () throw() { }
26751 virtual ~bad_typeid() throw();
26754 virtual const char* what() const throw();
26758 #pragma GCC visibility pop
26761 # 43 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.tcc" 2 3
26765 namespace std __attribute__ ((__visibility__ ("default"))) {
26767 template<typename _Facet>
26769 locale::combine(const locale& __other) const
26771 _Impl* __tmp = new _Impl(*_M_impl, 1);
26774 __tmp->_M_replace_facet(__other._M_impl, &_Facet::id);
26778 __tmp->_M_remove_reference();
26781 return locale(__tmp);
26784 template<typename _CharT, typename _Traits, typename _Alloc>
26786 locale::operator()(const basic_string<_CharT, _Traits, _Alloc>& __s1,
26787 const basic_string<_CharT, _Traits, _Alloc>& __s2) const
26789 typedef std::collate<_CharT> __collate_type;
26790 const __collate_type& __collate = use_facet<__collate_type>(*this);
26791 return (__collate.compare(__s1.data(), __s1.data() + __s1.length(),
26792 __s2.data(), __s2.data() + __s2.length()) < 0);
26794 # 87 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.tcc" 3
26795 template<typename _Facet>
26797 has_facet(const locale& __loc) throw()
26799 const size_t __i = _Facet::id._M_id();
26800 const locale::facet** __facets = __loc._M_impl->_M_facets;
26801 return (__i < __loc._M_impl->_M_facets_size && __facets[__i]);
26803 # 109 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.tcc" 3
26804 template<typename _Facet>
26805 inline const _Facet&
26806 use_facet(const locale& __loc)
26808 const size_t __i = _Facet::id._M_id();
26809 const locale::facet** __facets = __loc._M_impl->_M_facets;
26810 if (!(__i < __loc._M_impl->_M_facets_size && __facets[__i]))
26811 __throw_bad_cast();
26812 return static_cast<const _Facet&>(*__facets[__i]);
26817 template<typename _Facet>
26821 operator() (const locale& __loc) const;
26825 template<typename _CharT>
26826 struct __use_cache<__numpunct_cache<_CharT> >
26828 const __numpunct_cache<_CharT>*
26829 operator() (const locale& __loc) const
26831 const size_t __i = numpunct<_CharT>::id._M_id();
26832 const locale::facet** __caches = __loc._M_impl->_M_caches;
26833 if (!__caches[__i])
26835 __numpunct_cache<_CharT>* __tmp = __null;
26838 __tmp = new __numpunct_cache<_CharT>;
26839 __tmp->_M_cache(__loc);
26846 __loc._M_impl->_M_install_cache(__tmp, __i);
26848 return static_cast<const __numpunct_cache<_CharT>*>(__caches[__i]);
26852 template<typename _CharT, bool _Intl>
26853 struct __use_cache<__moneypunct_cache<_CharT, _Intl> >
26855 const __moneypunct_cache<_CharT, _Intl>*
26856 operator() (const locale& __loc) const
26858 const size_t __i = moneypunct<_CharT, _Intl>::id._M_id();
26859 const locale::facet** __caches = __loc._M_impl->_M_caches;
26860 if (!__caches[__i])
26862 __moneypunct_cache<_CharT, _Intl>* __tmp = __null;
26865 __tmp = new __moneypunct_cache<_CharT, _Intl>;
26866 __tmp->_M_cache(__loc);
26873 __loc._M_impl->_M_install_cache(__tmp, __i);
26875 return static_cast<
26876 const __moneypunct_cache<_CharT, _Intl>*>(__caches[__i]);
26880 template<typename _CharT>
26882 __numpunct_cache<_CharT>::_M_cache(const locale& __loc)
26884 _M_allocated = true;
26886 const numpunct<_CharT>& __np = use_facet<numpunct<_CharT> >(__loc);
26888 _M_grouping_size = __np.grouping().size();
26889 char* __grouping = new char[_M_grouping_size];
26890 __np.grouping().copy(__grouping, _M_grouping_size);
26891 _M_grouping = __grouping;
26892 _M_use_grouping = (_M_grouping_size
26893 && static_cast<signed char>(__np.grouping()[0]) > 0);
26895 _M_truename_size = __np.truename().size();
26896 _CharT* __truename = new _CharT[_M_truename_size];
26897 __np.truename().copy(__truename, _M_truename_size);
26898 _M_truename = __truename;
26900 _M_falsename_size = __np.falsename().size();
26901 _CharT* __falsename = new _CharT[_M_falsename_size];
26902 __np.falsename().copy(__falsename, _M_falsename_size);
26903 _M_falsename = __falsename;
26905 _M_decimal_point = __np.decimal_point();
26906 _M_thousands_sep = __np.thousands_sep();
26908 const ctype<_CharT>& __ct = use_facet<ctype<_CharT> >(__loc);
26909 __ct.widen(__num_base::_S_atoms_out,
26910 __num_base::_S_atoms_out + __num_base::_S_oend, _M_atoms_out);
26911 __ct.widen(__num_base::_S_atoms_in,
26912 __num_base::_S_atoms_in + __num_base::_S_iend, _M_atoms_in);
26915 template<typename _CharT, bool _Intl>
26917 __moneypunct_cache<_CharT, _Intl>::_M_cache(const locale& __loc)
26919 _M_allocated = true;
26921 const moneypunct<_CharT, _Intl>& __mp =
26922 use_facet<moneypunct<_CharT, _Intl> >(__loc);
26924 _M_grouping_size = __mp.grouping().size();
26925 char* __grouping = new char[_M_grouping_size];
26926 __mp.grouping().copy(__grouping, _M_grouping_size);
26927 _M_grouping = __grouping;
26928 _M_use_grouping = (_M_grouping_size
26929 && static_cast<signed char>(__mp.grouping()[0]) > 0);
26931 _M_decimal_point = __mp.decimal_point();
26932 _M_thousands_sep = __mp.thousands_sep();
26933 _M_frac_digits = __mp.frac_digits();
26935 _M_curr_symbol_size = __mp.curr_symbol().size();
26936 _CharT* __curr_symbol = new _CharT[_M_curr_symbol_size];
26937 __mp.curr_symbol().copy(__curr_symbol, _M_curr_symbol_size);
26938 _M_curr_symbol = __curr_symbol;
26940 _M_positive_sign_size = __mp.positive_sign().size();
26941 _CharT* __positive_sign = new _CharT[_M_positive_sign_size];
26942 __mp.positive_sign().copy(__positive_sign, _M_positive_sign_size);
26943 _M_positive_sign = __positive_sign;
26945 _M_negative_sign_size = __mp.negative_sign().size();
26946 _CharT* __negative_sign = new _CharT[_M_negative_sign_size];
26947 __mp.negative_sign().copy(__negative_sign, _M_negative_sign_size);
26948 _M_negative_sign = __negative_sign;
26950 _M_pos_format = __mp.pos_format();
26951 _M_neg_format = __mp.neg_format();
26953 const ctype<_CharT>& __ct = use_facet<ctype<_CharT> >(__loc);
26954 __ct.widen(money_base::_S_atoms,
26955 money_base::_S_atoms + money_base::_S_end, _M_atoms);
26957 # 272 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.tcc" 3
26959 __verify_grouping(const char* __grouping, size_t __grouping_size,
26960 const string& __grouping_tmp);
26964 template<typename _CharT, typename _InIter>
26966 num_get<_CharT, _InIter>::
26967 _M_extract_float(_InIter __beg, _InIter __end, ios_base& __io,
26968 ios_base::iostate& __err, string& __xtrc) const
26970 typedef char_traits<_CharT> __traits_type;
26971 typedef __numpunct_cache<_CharT> __cache_type;
26972 __use_cache<__cache_type> __uc;
26973 const locale& __loc = __io._M_getloc();
26974 const __cache_type* __lc = __uc(__loc);
26975 const _CharT* __lit = __lc->_M_atoms_in;
26976 char_type __c = char_type();
26979 bool __testeof = __beg == __end;
26985 const bool __plus = __c == __lit[__num_base::_S_iplus];
26986 if ((__plus || __c == __lit[__num_base::_S_iminus])
26987 && !(__lc->_M_use_grouping && __c == __lc->_M_thousands_sep)
26988 && !(__c == __lc->_M_decimal_point))
26990 __xtrc += __plus ? '+' : '-';
26991 if (++__beg != __end)
26999 bool __found_mantissa = false;
27003 if (__lc->_M_use_grouping && __c == __lc->_M_thousands_sep
27004 || __c == __lc->_M_decimal_point)
27006 else if (__c == __lit[__num_base::_S_izero])
27008 if (!__found_mantissa)
27011 __found_mantissa = true;
27015 if (++__beg != __end)
27025 bool __found_dec = false;
27026 bool __found_sci = false;
27027 string __found_grouping;
27028 if (__lc->_M_use_grouping)
27029 __found_grouping.reserve(32);
27030 const char_type* __lit_zero = __lit + __num_base::_S_izero;
27032 if (!__lc->_M_allocated)
27036 const int __digit = _M_find(__lit_zero, 10, __c);
27039 __xtrc += '0' + __digit;
27040 __found_mantissa = true;
27042 else if (__c == __lc->_M_decimal_point
27043 && !__found_dec && !__found_sci)
27046 __found_dec = true;
27048 else if ((__c == __lit[__num_base::_S_ie]
27049 || __c == __lit[__num_base::_S_iE])
27050 && !__found_sci && __found_mantissa)
27054 __found_sci = true;
27057 if (++__beg != __end)
27060 const bool __plus = __c == __lit[__num_base::_S_iplus];
27061 if (__plus || __c == __lit[__num_base::_S_iminus])
27062 __xtrc += __plus ? '+' : '-';
27075 if (++__beg != __end)
27085 if (__lc->_M_use_grouping && __c == __lc->_M_thousands_sep)
27087 if (!__found_dec && !__found_sci)
27093 __found_grouping += static_cast<char>(__sep_pos);
27107 else if (__c == __lc->_M_decimal_point)
27109 if (!__found_dec && !__found_sci)
27114 if (__found_grouping.size())
27115 __found_grouping += static_cast<char>(__sep_pos);
27117 __found_dec = true;
27124 const char_type* __q =
27125 __traits_type::find(__lit_zero, 10, __c);
27128 __xtrc += '0' + (__q - __lit_zero);
27129 __found_mantissa = true;
27132 else if ((__c == __lit[__num_base::_S_ie]
27133 || __c == __lit[__num_base::_S_iE])
27134 && !__found_sci && __found_mantissa)
27137 if (__found_grouping.size() && !__found_dec)
27138 __found_grouping += static_cast<char>(__sep_pos);
27140 __found_sci = true;
27143 if (++__beg != __end)
27146 const bool __plus = __c == __lit[__num_base::_S_iplus];
27147 if ((__plus || __c == __lit[__num_base::_S_iminus])
27148 && !(__lc->_M_use_grouping
27149 && __c == __lc->_M_thousands_sep)
27150 && !(__c == __lc->_M_decimal_point))
27151 __xtrc += __plus ? '+' : '-';
27165 if (++__beg != __end)
27173 if (__found_grouping.size())
27176 if (!__found_dec && !__found_sci)
27177 __found_grouping += static_cast<char>(__sep_pos);
27179 if (!std::__verify_grouping(__lc->_M_grouping,
27180 __lc->_M_grouping_size,
27182 __err |= ios_base::failbit;
27187 __err |= ios_base::eofbit;
27195 template<typename _CharT, typename _InIter>
27196 template<typename _ValueT>
27198 num_get<_CharT, _InIter>::
27199 _M_extract_int(_InIter __beg, _InIter __end, ios_base& __io,
27200 ios_base::iostate& __err, _ValueT& __v) const
27202 typedef char_traits<_CharT> __traits_type;
27203 using __gnu_cxx::__add_unsigned;
27204 typedef typename __add_unsigned<_ValueT>::__type __unsigned_type;
27205 typedef __numpunct_cache<_CharT> __cache_type;
27206 __use_cache<__cache_type> __uc;
27207 const locale& __loc = __io._M_getloc();
27208 const __cache_type* __lc = __uc(__loc);
27209 const _CharT* __lit = __lc->_M_atoms_in;
27210 char_type __c = char_type();
27213 const ios_base::fmtflags __basefield = __io.flags()
27214 & ios_base::basefield;
27215 const bool __oct = __basefield == ios_base::oct;
27216 int __base = __oct ? 8 : (__basefield == ios_base::hex ? 16 : 10);
27219 bool __testeof = __beg == __end;
27222 bool __negative = false;
27226 if (numeric_limits<_ValueT>::is_signed)
27227 __negative = __c == __lit[__num_base::_S_iminus];
27228 if ((__negative || __c == __lit[__num_base::_S_iplus])
27229 && !(__lc->_M_use_grouping && __c == __lc->_M_thousands_sep)
27230 && !(__c == __lc->_M_decimal_point))
27232 if (++__beg != __end)
27241 bool __found_zero = false;
27245 if (__lc->_M_use_grouping && __c == __lc->_M_thousands_sep
27246 || __c == __lc->_M_decimal_point)
27248 else if (__c == __lit[__num_base::_S_izero]
27249 && (!__found_zero || __base == 10))
27251 __found_zero = true;
27253 if (__basefield == 0)
27258 else if (__found_zero
27259 && (__c == __lit[__num_base::_S_ix]
27260 || __c == __lit[__num_base::_S_iX]))
27262 if (__basefield == 0)
27266 __found_zero = false;
27275 if (++__beg != __end)
27287 const size_t __len = (__base == 16 ? __num_base::_S_iend
27288 - __num_base::_S_izero : __base);
27291 string __found_grouping;
27292 if (__lc->_M_use_grouping)
27293 __found_grouping.reserve(32);
27294 bool __testfail = false;
27295 const __unsigned_type __max = __negative ?
27296 -numeric_limits<_ValueT>::min() : numeric_limits<_ValueT>::max();
27297 const __unsigned_type __smax = __max / __base;
27298 __unsigned_type __result = 0;
27300 const char_type* __lit_zero = __lit + __num_base::_S_izero;
27302 if (!__lc->_M_allocated)
27306 __digit = _M_find(__lit_zero, __len, __c);
27310 if (__result > __smax)
27314 __result *= __base;
27315 __testfail |= __result > __max - __digit;
27316 __result += __digit;
27320 if (++__beg != __end)
27330 if (__lc->_M_use_grouping && __c == __lc->_M_thousands_sep)
27336 __found_grouping += static_cast<char>(__sep_pos);
27345 else if (__c == __lc->_M_decimal_point)
27349 const char_type* __q =
27350 __traits_type::find(__lit_zero, __len, __c);
27354 __digit = __q - __lit_zero;
27357 if (__result > __smax)
27361 __result *= __base;
27362 __testfail |= __result > __max - __digit;
27363 __result += __digit;
27368 if (++__beg != __end)
27376 if (__found_grouping.size())
27379 __found_grouping += static_cast<char>(__sep_pos);
27381 if (!std::__verify_grouping(__lc->_M_grouping,
27382 __lc->_M_grouping_size,
27384 __err |= ios_base::failbit;
27387 if (!__testfail && (__sep_pos || __found_zero
27388 || __found_grouping.size()))
27389 __v = __negative ? -__result : __result;
27391 __err |= ios_base::failbit;
27394 __err |= ios_base::eofbit;
27400 template<typename _CharT, typename _InIter>
27402 num_get<_CharT, _InIter>::
27403 do_get(iter_type __beg, iter_type __end, ios_base& __io,
27404 ios_base::iostate& __err, bool& __v) const
27406 if (!(__io.flags() & ios_base::boolalpha))
27412 __beg = _M_extract_int(__beg, __end, __io, __err, __l);
27413 if (__l == 0 || __l == 1)
27416 __err |= ios_base::failbit;
27421 typedef __numpunct_cache<_CharT> __cache_type;
27422 __use_cache<__cache_type> __uc;
27423 const locale& __loc = __io._M_getloc();
27424 const __cache_type* __lc = __uc(__loc);
27426 bool __testf = true;
27427 bool __testt = true;
27429 bool __testeof = __beg == __end;
27430 for (__n = 0; !__testeof; ++__n)
27432 const char_type __c = *__beg;
27435 if (__n < __lc->_M_falsename_size)
27436 __testf = __c == __lc->_M_falsename[__n];
27441 if (__n < __lc->_M_truename_size)
27442 __testt = __c == __lc->_M_truename[__n];
27446 if (!__testf && !__testt)
27449 if (++__beg == __end)
27452 if (__testf && __n == __lc->_M_falsename_size)
27454 else if (__testt && __n == __lc->_M_truename_size)
27457 __err |= ios_base::failbit;
27460 __err |= ios_base::eofbit;
27465 template<typename _CharT, typename _InIter>
27467 num_get<_CharT, _InIter>::
27468 do_get(iter_type __beg, iter_type __end, ios_base& __io,
27469 ios_base::iostate& __err, long& __v) const
27470 { return _M_extract_int(__beg, __end, __io, __err, __v); }
27472 template<typename _CharT, typename _InIter>
27474 num_get<_CharT, _InIter>::
27475 do_get(iter_type __beg, iter_type __end, ios_base& __io,
27476 ios_base::iostate& __err, unsigned short& __v) const
27477 { return _M_extract_int(__beg, __end, __io, __err, __v); }
27479 template<typename _CharT, typename _InIter>
27481 num_get<_CharT, _InIter>::
27482 do_get(iter_type __beg, iter_type __end, ios_base& __io,
27483 ios_base::iostate& __err, unsigned int& __v) const
27484 { return _M_extract_int(__beg, __end, __io, __err, __v); }
27486 template<typename _CharT, typename _InIter>
27488 num_get<_CharT, _InIter>::
27489 do_get(iter_type __beg, iter_type __end, ios_base& __io,
27490 ios_base::iostate& __err, unsigned long& __v) const
27491 { return _M_extract_int(__beg, __end, __io, __err, __v); }
27494 template<typename _CharT, typename _InIter>
27496 num_get<_CharT, _InIter>::
27497 do_get(iter_type __beg, iter_type __end, ios_base& __io,
27498 ios_base::iostate& __err, long long& __v) const
27499 { return _M_extract_int(__beg, __end, __io, __err, __v); }
27501 template<typename _CharT, typename _InIter>
27503 num_get<_CharT, _InIter>::
27504 do_get(iter_type __beg, iter_type __end, ios_base& __io,
27505 ios_base::iostate& __err, unsigned long long& __v) const
27506 { return _M_extract_int(__beg, __end, __io, __err, __v); }
27509 template<typename _CharT, typename _InIter>
27511 num_get<_CharT, _InIter>::
27512 do_get(iter_type __beg, iter_type __end, ios_base& __io,
27513 ios_base::iostate& __err, float& __v) const
27516 __xtrc.reserve(32);
27517 __beg = _M_extract_float(__beg, __end, __io, __err, __xtrc);
27518 std::__convert_to_v(__xtrc.c_str(), __v, __err, _S_get_c_locale());
27522 template<typename _CharT, typename _InIter>
27524 num_get<_CharT, _InIter>::
27525 do_get(iter_type __beg, iter_type __end, ios_base& __io,
27526 ios_base::iostate& __err, double& __v) const
27529 __xtrc.reserve(32);
27530 __beg = _M_extract_float(__beg, __end, __io, __err, __xtrc);
27531 std::__convert_to_v(__xtrc.c_str(), __v, __err, _S_get_c_locale());
27534 # 864 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.tcc" 3
27535 template<typename _CharT, typename _InIter>
27537 num_get<_CharT, _InIter>::
27538 do_get(iter_type __beg, iter_type __end, ios_base& __io,
27539 ios_base::iostate& __err, long double& __v) const
27542 __xtrc.reserve(32);
27543 __beg = _M_extract_float(__beg, __end, __io, __err, __xtrc);
27544 std::__convert_to_v(__xtrc.c_str(), __v, __err, _S_get_c_locale());
27548 template<typename _CharT, typename _InIter>
27550 num_get<_CharT, _InIter>::
27551 do_get(iter_type __beg, iter_type __end, ios_base& __io,
27552 ios_base::iostate& __err, void*& __v) const
27555 typedef ios_base::fmtflags fmtflags;
27556 const fmtflags __fmt = __io.flags();
27557 __io.flags(__fmt & ~ios_base::basefield | ios_base::hex);
27559 unsigned long __ul;
27560 __beg = _M_extract_int(__beg, __end, __io, __err, __ul);
27565 if (!(__err & ios_base::failbit))
27566 __v = reinterpret_cast<void*>(__ul);
27572 template<typename _CharT, typename _OutIter>
27574 num_put<_CharT, _OutIter>::
27575 _M_pad(_CharT __fill, streamsize __w, ios_base& __io,
27576 _CharT* __new, const _CharT* __cs, int& __len) const
27580 __pad<_CharT, char_traits<_CharT> >::_S_pad(__io, __fill, __new, __cs,
27582 __len = static_cast<int>(__w);
27587 template<typename _CharT, typename _ValueT>
27589 __int_to_char(_CharT* __bufend, _ValueT __v, const _CharT* __lit,
27590 ios_base::fmtflags __flags, bool __dec)
27592 _CharT* __buf = __bufend;
27593 if (__builtin_expect(__dec, true))
27598 *--__buf = __lit[(__v % 10) + __num_base::_S_odigits];
27603 else if ((__flags & ios_base::basefield) == ios_base::oct)
27608 *--__buf = __lit[(__v & 0x7) + __num_base::_S_odigits];
27616 const bool __uppercase = __flags & ios_base::uppercase;
27617 const int __case_offset = __uppercase ? __num_base::_S_oudigits
27618 : __num_base::_S_odigits;
27621 *--__buf = __lit[(__v & 0xf) + __case_offset];
27626 return __bufend - __buf;
27631 template<typename _CharT, typename _OutIter>
27633 num_put<_CharT, _OutIter>::
27634 _M_group_int(const char* __grouping, size_t __grouping_size, _CharT __sep,
27635 ios_base&, _CharT* __new, _CharT* __cs, int& __len) const
27637 _CharT* __p = std::__add_grouping(__new, __sep, __grouping,
27638 __grouping_size, __cs, __cs + __len);
27639 __len = __p - __new;
27642 template<typename _CharT, typename _OutIter>
27643 template<typename _ValueT>
27645 num_put<_CharT, _OutIter>::
27646 _M_insert_int(_OutIter __s, ios_base& __io, _CharT __fill,
27649 using __gnu_cxx::__add_unsigned;
27650 typedef typename __add_unsigned<_ValueT>::__type __unsigned_type;
27651 typedef __numpunct_cache<_CharT> __cache_type;
27652 __use_cache<__cache_type> __uc;
27653 const locale& __loc = __io._M_getloc();
27654 const __cache_type* __lc = __uc(__loc);
27655 const _CharT* __lit = __lc->_M_atoms_out;
27656 const ios_base::fmtflags __flags = __io.flags();
27659 const int __ilen = 5 * sizeof(_ValueT);
27660 _CharT* __cs = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT)
27665 const ios_base::fmtflags __basefield = __flags & ios_base::basefield;
27666 const bool __dec = (__basefield != ios_base::oct
27667 && __basefield != ios_base::hex);
27668 const __unsigned_type __u = (__v > 0 || !__dec) ? __v : -__v;
27669 int __len = __int_to_char(__cs + __ilen, __u, __lit, __flags, __dec);
27670 __cs += __ilen - __len;
27673 if (__lc->_M_use_grouping)
27677 _CharT* __cs2 = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT)
27680 _M_group_int(__lc->_M_grouping, __lc->_M_grouping_size,
27681 __lc->_M_thousands_sep, __io, __cs2 + 2, __cs, __len);
27686 if (__builtin_expect(__dec, true))
27691 if (__flags & ios_base::showpos
27692 && numeric_limits<_ValueT>::is_signed)
27693 *--__cs = __lit[__num_base::_S_oplus], ++__len;
27696 *--__cs = __lit[__num_base::_S_ominus], ++__len;
27698 else if (__flags & ios_base::showbase && __v)
27700 if (__basefield == ios_base::oct)
27701 *--__cs = __lit[__num_base::_S_odigits], ++__len;
27705 const bool __uppercase = __flags & ios_base::uppercase;
27706 *--__cs = __lit[__num_base::_S_ox + __uppercase];
27708 *--__cs = __lit[__num_base::_S_odigits];
27714 const streamsize __w = __io.width();
27715 if (__w > static_cast<streamsize>(__len))
27717 _CharT* __cs3 = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT)
27719 _M_pad(__fill, __w, __io, __cs3, __cs, __len);
27726 return std::__write(__s, __cs, __len);
27729 template<typename _CharT, typename _OutIter>
27731 num_put<_CharT, _OutIter>::
27732 _M_group_float(const char* __grouping, size_t __grouping_size,
27733 _CharT __sep, const _CharT* __p, _CharT* __new,
27734 _CharT* __cs, int& __len) const
27739 const int __declen = __p ? __p - __cs : __len;
27740 _CharT* __p2 = std::__add_grouping(__new, __sep, __grouping,
27742 __cs, __cs + __declen);
27745 int __newlen = __p2 - __new;
27748 char_traits<_CharT>::copy(__p2, __p, __len - __declen);
27749 __newlen += __len - __declen;
27753 # 1093 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.tcc" 3
27754 template<typename _CharT, typename _OutIter>
27755 template<typename _ValueT>
27757 num_put<_CharT, _OutIter>::
27758 _M_insert_float(_OutIter __s, ios_base& __io, _CharT __fill, char __mod,
27761 typedef __numpunct_cache<_CharT> __cache_type;
27762 __use_cache<__cache_type> __uc;
27763 const locale& __loc = __io._M_getloc();
27764 const __cache_type* __lc = __uc(__loc);
27767 const streamsize __prec = __io.precision() < 0 ? 6 : __io.precision();
27769 const int __max_digits = numeric_limits<_ValueT>::digits10;
27775 __num_base::_S_format_float(__io, __fbuf, __mod);
27780 int __cs_size = __max_digits * 3;
27781 char* __cs = static_cast<char*>(__builtin_alloca(__cs_size));
27782 __len = std::__convert_from_v(_S_get_c_locale(), __cs, __cs_size,
27783 __fbuf, __prec, __v);
27786 if (__len >= __cs_size)
27788 __cs_size = __len + 1;
27789 __cs = static_cast<char*>(__builtin_alloca(__cs_size));
27790 __len = std::__convert_from_v(_S_get_c_locale(), __cs, __cs_size,
27791 __fbuf, __prec, __v);
27793 # 1152 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.tcc" 3
27794 const ctype<_CharT>& __ctype = use_facet<ctype<_CharT> >(__loc);
27796 _CharT* __ws = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT)
27798 __ctype.widen(__cs, __cs + __len, __ws);
27802 const char* __p = char_traits<char>::find(__cs, __len, '.');
27805 __wp = __ws + (__p - __cs);
27806 *__wp = __lc->_M_decimal_point;
27812 if (__lc->_M_use_grouping
27813 && (__wp || __len < 3 || (__cs[1] <= '9' && __cs[2] <= '9'
27814 && __cs[1] >= '0' && __cs[2] >= '0')))
27818 _CharT* __ws2 = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT)
27821 streamsize __off = 0;
27822 if (__cs[0] == '-' || __cs[0] == '+')
27825 __ws2[0] = __ws[0];
27829 _M_group_float(__lc->_M_grouping, __lc->_M_grouping_size,
27830 __lc->_M_thousands_sep, __wp, __ws2 + __off,
27831 __ws + __off, __len);
27838 const streamsize __w = __io.width();
27839 if (__w > static_cast<streamsize>(__len))
27841 _CharT* __ws3 = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT)
27843 _M_pad(__fill, __w, __io, __ws3, __ws, __len);
27850 return std::__write(__s, __ws, __len);
27853 template<typename _CharT, typename _OutIter>
27855 num_put<_CharT, _OutIter>::
27856 do_put(iter_type __s, ios_base& __io, char_type __fill, bool __v) const
27858 const ios_base::fmtflags __flags = __io.flags();
27859 if ((__flags & ios_base::boolalpha) == 0)
27861 const long __l = __v;
27862 __s = _M_insert_int(__s, __io, __fill, __l);
27866 typedef __numpunct_cache<_CharT> __cache_type;
27867 __use_cache<__cache_type> __uc;
27868 const locale& __loc = __io._M_getloc();
27869 const __cache_type* __lc = __uc(__loc);
27871 const _CharT* __name = __v ? __lc->_M_truename
27872 : __lc->_M_falsename;
27873 int __len = __v ? __lc->_M_truename_size
27874 : __lc->_M_falsename_size;
27876 const streamsize __w = __io.width();
27877 if (__w > static_cast<streamsize>(__len))
27880 = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT)
27882 _M_pad(__fill, __w, __io, __cs, __name, __len);
27886 __s = std::__write(__s, __name, __len);
27891 template<typename _CharT, typename _OutIter>
27893 num_put<_CharT, _OutIter>::
27894 do_put(iter_type __s, ios_base& __io, char_type __fill, long __v) const
27895 { return _M_insert_int(__s, __io, __fill, __v); }
27897 template<typename _CharT, typename _OutIter>
27899 num_put<_CharT, _OutIter>::
27900 do_put(iter_type __s, ios_base& __io, char_type __fill,
27901 unsigned long __v) const
27902 { return _M_insert_int(__s, __io, __fill, __v); }
27905 template<typename _CharT, typename _OutIter>
27907 num_put<_CharT, _OutIter>::
27908 do_put(iter_type __s, ios_base& __io, char_type __fill, long long __v) const
27909 { return _M_insert_int(__s, __io, __fill, __v); }
27911 template<typename _CharT, typename _OutIter>
27913 num_put<_CharT, _OutIter>::
27914 do_put(iter_type __s, ios_base& __io, char_type __fill,
27915 unsigned long long __v) const
27916 { return _M_insert_int(__s, __io, __fill, __v); }
27919 template<typename _CharT, typename _OutIter>
27921 num_put<_CharT, _OutIter>::
27922 do_put(iter_type __s, ios_base& __io, char_type __fill, double __v) const
27923 { return _M_insert_float(__s, __io, __fill, char(), __v); }
27924 # 1291 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.tcc" 3
27925 template<typename _CharT, typename _OutIter>
27927 num_put<_CharT, _OutIter>::
27928 do_put(iter_type __s, ios_base& __io, char_type __fill,
27929 long double __v) const
27930 { return _M_insert_float(__s, __io, __fill, 'L', __v); }
27932 template<typename _CharT, typename _OutIter>
27934 num_put<_CharT, _OutIter>::
27935 do_put(iter_type __s, ios_base& __io, char_type __fill,
27936 const void* __v) const
27938 const ios_base::fmtflags __flags = __io.flags();
27939 const ios_base::fmtflags __fmt = ~(ios_base::basefield
27940 | ios_base::uppercase
27941 | ios_base::internal);
27942 __io.flags(__flags & __fmt | (ios_base::hex | ios_base::showbase));
27944 __s = _M_insert_int(__s, __io, __fill,
27945 reinterpret_cast<unsigned long>(__v));
27946 __io.flags(__flags);
27950 template<typename _CharT, typename _InIter>
27951 template<bool _Intl>
27953 money_get<_CharT, _InIter>::
27954 _M_extract(iter_type __beg, iter_type __end, ios_base& __io,
27955 ios_base::iostate& __err, string& __units) const
27957 typedef char_traits<_CharT> __traits_type;
27958 typedef typename string_type::size_type size_type;
27959 typedef money_base::part part;
27960 typedef __moneypunct_cache<_CharT, _Intl> __cache_type;
27962 const locale& __loc = __io._M_getloc();
27963 const ctype<_CharT>& __ctype = use_facet<ctype<_CharT> >(__loc);
27965 __use_cache<__cache_type> __uc;
27966 const __cache_type* __lc = __uc(__loc);
27967 const char_type* __lit = __lc->_M_atoms;
27970 bool __negative = false;
27972 size_type __sign_size = 0;
27974 const bool __mandatory_sign = (__lc->_M_positive_sign_size
27975 && __lc->_M_negative_sign_size);
27977 string __grouping_tmp;
27978 if (__lc->_M_use_grouping)
27979 __grouping_tmp.reserve(32);
27981 int __last_pos = 0;
27985 bool __testvalid = true;
27987 bool __testdecfound = false;
27993 const char_type* __lit_zero = __lit + money_base::_S_zero;
27994 const money_base::pattern __p = __lc->_M_neg_format;
27995 for (int __i = 0; __i < 4 && __testvalid; ++__i)
27997 const part __which = static_cast<part>(__p.field[__i]);
28000 case money_base::symbol:
28005 if (__io.flags() & ios_base::showbase || __sign_size > 1
28007 || (__i == 1 && (__mandatory_sign
28008 || (static_cast<part>(__p.field[0])
28009 == money_base::sign)
28010 || (static_cast<part>(__p.field[2])
28011 == money_base::space)))
28012 || (__i == 2 && ((static_cast<part>(__p.field[3])
28013 == money_base::value)
28014 || __mandatory_sign
28015 && (static_cast<part>(__p.field[3])
28016 == money_base::sign))))
28018 const size_type __len = __lc->_M_curr_symbol_size;
28020 for (; __beg != __end && __j < __len
28021 && *__beg == __lc->_M_curr_symbol[__j];
28024 && (__j || __io.flags() & ios_base::showbase))
28025 __testvalid = false;
28028 case money_base::sign:
28030 if (__lc->_M_positive_sign_size && __beg != __end
28031 && *__beg == __lc->_M_positive_sign[0])
28033 __sign_size = __lc->_M_positive_sign_size;
28036 else if (__lc->_M_negative_sign_size && __beg != __end
28037 && *__beg == __lc->_M_negative_sign[0])
28040 __sign_size = __lc->_M_negative_sign_size;
28043 else if (__lc->_M_positive_sign_size
28044 && !__lc->_M_negative_sign_size)
28048 else if (__mandatory_sign)
28049 __testvalid = false;
28051 case money_base::value:
28054 for (; __beg != __end; ++__beg)
28056 const char_type __c = *__beg;
28057 const char_type* __q = __traits_type::find(__lit_zero,
28061 __res += money_base::_S_atoms[__q - __lit];
28064 else if (__c == __lc->_M_decimal_point
28065 && !__testdecfound)
28069 __testdecfound = true;
28071 else if (__lc->_M_use_grouping
28072 && __c == __lc->_M_thousands_sep
28073 && !__testdecfound)
28078 __grouping_tmp += static_cast<char>(__n);
28083 __testvalid = false;
28091 __testvalid = false;
28093 case money_base::space:
28095 if (__beg != __end && __ctype.is(ctype_base::space, *__beg))
28098 __testvalid = false;
28099 case money_base::none:
28102 for (; __beg != __end
28103 && __ctype.is(ctype_base::space, *__beg); ++__beg);
28109 if (__sign_size > 1 && __testvalid)
28111 const char_type* __sign = __negative ? __lc->_M_negative_sign
28112 : __lc->_M_positive_sign;
28114 for (; __beg != __end && __i < __sign_size
28115 && *__beg == __sign[__i]; ++__beg, ++__i);
28117 if (__i != __sign_size)
28118 __testvalid = false;
28124 if (__res.size() > 1)
28126 const size_type __first = __res.find_first_not_of('0');
28127 const bool __only_zeros = __first == string::npos;
28129 __res.erase(0, __only_zeros ? __res.size() - 1 : __first);
28133 if (__negative && __res[0] != '0')
28134 __res.insert(__res.begin(), '-');
28137 if (__grouping_tmp.size())
28140 __grouping_tmp += static_cast<char>(__testdecfound ? __last_pos
28142 if (!std::__verify_grouping(__lc->_M_grouping,
28143 __lc->_M_grouping_size,
28145 __err |= ios_base::failbit;
28149 if (__testdecfound && __lc->_M_frac_digits > 0
28150 && __n != __lc->_M_frac_digits)
28151 __testvalid = false;
28156 __err |= ios_base::failbit;
28158 __units.swap(__res);
28161 if (__beg == __end)
28162 __err |= ios_base::eofbit;
28165 # 1547 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.tcc" 3
28166 template<typename _CharT, typename _InIter>
28168 money_get<_CharT, _InIter>::
28169 do_get(iter_type __beg, iter_type __end, bool __intl, ios_base& __io,
28170 ios_base::iostate& __err, long double& __units) const
28173 __beg = __intl ? _M_extract<true>(__beg, __end, __io, __err, __str)
28174 : _M_extract<false>(__beg, __end, __io, __err, __str);
28175 std::__convert_to_v(__str.c_str(), __units, __err, _S_get_c_locale());
28179 template<typename _CharT, typename _InIter>
28181 money_get<_CharT, _InIter>::
28182 do_get(iter_type __beg, iter_type __end, bool __intl, ios_base& __io,
28183 ios_base::iostate& __err, string_type& __digits) const
28185 typedef typename string::size_type size_type;
28187 const locale& __loc = __io._M_getloc();
28188 const ctype<_CharT>& __ctype = use_facet<ctype<_CharT> >(__loc);
28191 __beg = __intl ? _M_extract<true>(__beg, __end, __io, __err, __str)
28192 : _M_extract<false>(__beg, __end, __io, __err, __str);
28193 const size_type __len = __str.size();
28196 __digits.resize(__len);
28197 __ctype.widen(__str.data(), __str.data() + __len, &__digits[0]);
28202 template<typename _CharT, typename _OutIter>
28203 template<bool _Intl>
28205 money_put<_CharT, _OutIter>::
28206 _M_insert(iter_type __s, ios_base& __io, char_type __fill,
28207 const string_type& __digits) const
28209 typedef typename string_type::size_type size_type;
28210 typedef money_base::part part;
28211 typedef __moneypunct_cache<_CharT, _Intl> __cache_type;
28213 const locale& __loc = __io._M_getloc();
28214 const ctype<_CharT>& __ctype = use_facet<ctype<_CharT> >(__loc);
28216 __use_cache<__cache_type> __uc;
28217 const __cache_type* __lc = __uc(__loc);
28218 const char_type* __lit = __lc->_M_atoms;
28222 const char_type* __beg = __digits.data();
28224 money_base::pattern __p;
28225 const char_type* __sign;
28226 size_type __sign_size;
28227 if (!(*__beg == __lit[money_base::_S_minus]))
28229 __p = __lc->_M_pos_format;
28230 __sign = __lc->_M_positive_sign;
28231 __sign_size = __lc->_M_positive_sign_size;
28235 __p = __lc->_M_neg_format;
28236 __sign = __lc->_M_negative_sign;
28237 __sign_size = __lc->_M_negative_sign_size;
28238 if (__digits.size())
28243 size_type __len = __ctype.scan_not(ctype_base::digit, __beg,
28244 __beg + __digits.size()) - __beg;
28250 string_type __value;
28251 __value.reserve(2 * __len);
28255 long __paddec = __len - __lc->_M_frac_digits;
28258 if (__lc->_M_frac_digits < 0)
28260 if (__lc->_M_grouping_size)
28262 __value.assign(2 * __paddec, char_type());
28264 std::__add_grouping(&__value[0], __lc->_M_thousands_sep,
28266 __lc->_M_grouping_size,
28267 __beg, __beg + __paddec);
28268 __value.erase(__vend - &__value[0]);
28271 __value.assign(__beg, __paddec);
28275 if (__lc->_M_frac_digits > 0)
28277 __value += __lc->_M_decimal_point;
28279 __value.append(__beg + __paddec, __lc->_M_frac_digits);
28283 __value.append(-__paddec, __lit[money_base::_S_zero]);
28284 __value.append(__beg, __len);
28289 const ios_base::fmtflags __f = __io.flags()
28290 & ios_base::adjustfield;
28291 __len = __value.size() + __sign_size;
28292 __len += ((__io.flags() & ios_base::showbase)
28293 ? __lc->_M_curr_symbol_size : 0);
28296 __res.reserve(2 * __len);
28298 const size_type __width = static_cast<size_type>(__io.width());
28299 const bool __testipad = (__f == ios_base::internal
28300 && __len < __width);
28302 for (int __i = 0; __i < 4; ++__i)
28304 const part __which = static_cast<part>(__p.field[__i]);
28307 case money_base::symbol:
28308 if (__io.flags() & ios_base::showbase)
28309 __res.append(__lc->_M_curr_symbol,
28310 __lc->_M_curr_symbol_size);
28312 case money_base::sign:
28317 __res += __sign[0];
28319 case money_base::value:
28322 case money_base::space:
28327 __res.append(__width - __len, __fill);
28331 case money_base::none:
28333 __res.append(__width - __len, __fill);
28339 if (__sign_size > 1)
28340 __res.append(__sign + 1, __sign_size - 1);
28343 __len = __res.size();
28344 if (__width > __len)
28346 if (__f == ios_base::left)
28348 __res.append(__width - __len, __fill);
28351 __res.insert(0, __width - __len, __fill);
28356 __s = std::__write(__s, __res.data(), __len);
28361 # 1752 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.tcc" 3
28362 template<typename _CharT, typename _OutIter>
28364 money_put<_CharT, _OutIter>::
28365 do_put(iter_type __s, bool __intl, ios_base& __io, char_type __fill,
28366 long double __units) const
28368 const locale __loc = __io.getloc();
28369 const ctype<_CharT>& __ctype = use_facet<ctype<_CharT> >(__loc);
28372 int __cs_size = 64;
28373 char* __cs = static_cast<char*>(__builtin_alloca(__cs_size));
28376 int __len = std::__convert_from_v(_S_get_c_locale(), __cs, __cs_size,
28377 "%.*Lf", 0, __units);
28379 if (__len >= __cs_size)
28381 __cs_size = __len + 1;
28382 __cs = static_cast<char*>(__builtin_alloca(__cs_size));
28383 __len = std::__convert_from_v(_S_get_c_locale(), __cs, __cs_size,
28384 "%.*Lf", 0, __units);
28393 string_type __digits(__len, char_type());
28394 __ctype.widen(__cs, __cs + __len, &__digits[0]);
28395 return __intl ? _M_insert<true>(__s, __io, __fill, __digits)
28396 : _M_insert<false>(__s, __io, __fill, __digits);
28399 template<typename _CharT, typename _OutIter>
28401 money_put<_CharT, _OutIter>::
28402 do_put(iter_type __s, bool __intl, ios_base& __io, char_type __fill,
28403 const string_type& __digits) const
28404 { return __intl ? _M_insert<true>(__s, __io, __fill, __digits)
28405 : _M_insert<false>(__s, __io, __fill, __digits); }
28412 template<typename _CharT, typename _InIter>
28413 time_base::dateorder
28414 time_get<_CharT, _InIter>::do_date_order() const
28415 { return time_base::no_order; }
28419 template<typename _CharT, typename _InIter>
28421 time_get<_CharT, _InIter>::
28422 _M_extract_via_format(iter_type __beg, iter_type __end, ios_base& __io,
28423 ios_base::iostate& __err, tm* __tm,
28424 const _CharT* __format) const
28426 const locale& __loc = __io._M_getloc();
28427 const __timepunct<_CharT>& __tp = use_facet<__timepunct<_CharT> >(__loc);
28428 const ctype<_CharT>& __ctype = use_facet<ctype<_CharT> >(__loc);
28429 const size_t __len = char_traits<_CharT>::length(__format);
28431 ios_base::iostate __tmperr = ios_base::goodbit;
28432 for (size_t __i = 0; __beg != __end && __i < __len && !__tmperr; ++__i)
28434 if (__ctype.narrow(__format[__i], 0) == '%')
28437 char __c = __ctype.narrow(__format[++__i], 0);
28439 if (__c == 'E' || __c == 'O')
28440 __c = __ctype.narrow(__format[++__i], 0);
28447 const char_type* __days1[7];
28448 __tp._M_days_abbreviated(__days1);
28449 __beg = _M_extract_name(__beg, __end, __tm->tm_wday, __days1,
28450 7, __io, __tmperr);
28454 const char_type* __days2[7];
28455 __tp._M_days(__days2);
28456 __beg = _M_extract_name(__beg, __end, __tm->tm_wday, __days2,
28457 7, __io, __tmperr);
28462 const char_type* __months1[12];
28463 __tp._M_months_abbreviated(__months1);
28464 __beg = _M_extract_name(__beg, __end, __tm->tm_mon,
28465 __months1, 12, __io, __tmperr);
28469 const char_type* __months2[12];
28470 __tp._M_months(__months2);
28471 __beg = _M_extract_name(__beg, __end, __tm->tm_mon,
28472 __months2, 12, __io, __tmperr);
28476 const char_type* __dt[2];
28477 __tp._M_date_time_formats(__dt);
28478 __beg = _M_extract_via_format(__beg, __end, __io, __tmperr,
28483 __beg = _M_extract_num(__beg, __end, __tm->tm_mday, 1, 31, 2,
28489 if (__ctype.is(ctype_base::space, *__beg))
28490 __beg = _M_extract_num(++__beg, __end, __tm->tm_mday, 1, 9,
28491 1, __io, __tmperr);
28493 __beg = _M_extract_num(__beg, __end, __tm->tm_mday, 10, 31,
28494 2, __io, __tmperr);
28499 __ctype.widen(__cs, __cs + 9, __wcs);
28500 __beg = _M_extract_via_format(__beg, __end, __io, __tmperr,
28505 __beg = _M_extract_num(__beg, __end, __tm->tm_hour, 0, 23, 2,
28510 __beg = _M_extract_num(__beg, __end, __tm->tm_hour, 1, 12, 2,
28515 __beg = _M_extract_num(__beg, __end, __mem, 1, 12, 2,
28518 __tm->tm_mon = __mem - 1;
28522 __beg = _M_extract_num(__beg, __end, __tm->tm_min, 0, 59, 2,
28526 if (__ctype.narrow(*__beg, 0) == '\n')
28529 __tmperr |= ios_base::failbit;
28534 __ctype.widen(__cs, __cs + 6, __wcs);
28535 __beg = _M_extract_via_format(__beg, __end, __io, __tmperr,
28542 __beg = _M_extract_num(__beg, __end, __tm->tm_sec, 0, 60, 2,
28549 if (__ctype.narrow(*__beg, 0) == '\t')
28552 __tmperr |= ios_base::failbit;
28557 __ctype.widen(__cs, __cs + 9, __wcs);
28558 __beg = _M_extract_via_format(__beg, __end, __io, __tmperr,
28563 const char_type* __dates[2];
28564 __tp._M_date_formats(__dates);
28565 __beg = _M_extract_via_format(__beg, __end, __io, __tmperr,
28570 const char_type* __times[2];
28571 __tp._M_time_formats(__times);
28572 __beg = _M_extract_via_format(__beg, __end, __io, __tmperr,
28578 __beg = _M_extract_num(__beg, __end, __tm->tm_year, 0, 99, 2,
28583 __beg = _M_extract_num(__beg, __end, __mem, 0, 9999, 4,
28586 __tm->tm_year = __mem - 1900;
28590 if (__ctype.is(ctype_base::upper, *__beg))
28593 __beg = _M_extract_name(__beg, __end, __tmp,
28594 __timepunct_cache<_CharT>::_S_timezones,
28595 14, __io, __tmperr);
28598 if (__beg != __end && !__tmperr && __tmp == 0
28599 && (*__beg == __ctype.widen('-')
28600 || *__beg == __ctype.widen('+')))
28602 __beg = _M_extract_num(__beg, __end, __tmp, 0, 23, 2,
28604 __beg = _M_extract_num(__beg, __end, __tmp, 0, 59, 2,
28609 __tmperr |= ios_base::failbit;
28613 __tmperr |= ios_base::failbit;
28619 if (__format[__i] == *__beg)
28622 __tmperr |= ios_base::failbit;
28627 __err |= ios_base::failbit;
28632 template<typename _CharT, typename _InIter>
28634 time_get<_CharT, _InIter>::
28635 _M_extract_num(iter_type __beg, iter_type __end, int& __member,
28636 int __min, int __max, size_t __len,
28637 ios_base& __io, ios_base::iostate& __err) const
28639 const locale& __loc = __io._M_getloc();
28640 const ctype<_CharT>& __ctype = use_facet<ctype<_CharT> >(__loc);
28643 int __mult = __len == 2 ? 10 : (__len == 4 ? 1000 : 1);
28648 for (; __beg != __end && __i < __len; ++__beg, ++__i)
28650 const char __c = __ctype.narrow(*__beg, '*');
28651 if (__c >= '0' && __c <= '9')
28653 __value = __value * 10 + (__c - '0');
28654 const int __valuec = __value * __mult;
28655 if (__valuec > __max || __valuec + __mult < __min)
28663 __member = __value;
28665 __err |= ios_base::failbit;
28672 template<typename _CharT, typename _InIter>
28674 time_get<_CharT, _InIter>::
28675 _M_extract_name(iter_type __beg, iter_type __end, int& __member,
28676 const _CharT** __names, size_t __indexlen,
28677 ios_base& __io, ios_base::iostate& __err) const
28679 typedef char_traits<_CharT> __traits_type;
28680 const locale& __loc = __io._M_getloc();
28681 const ctype<_CharT>& __ctype = use_facet<ctype<_CharT> >(__loc);
28683 int* __matches = static_cast<int*>(__builtin_alloca(sizeof(int)
28685 size_t __nmatches = 0;
28687 bool __testvalid = true;
28688 const char_type* __name;
28694 if (__beg != __end)
28696 const char_type __c = *__beg;
28697 for (size_t __i1 = 0; __i1 < __indexlen; ++__i1)
28698 if (__c == __names[__i1][0]
28699 || __c == __ctype.toupper(__names[__i1][0]))
28700 __matches[__nmatches++] = __i1;
28703 while (__nmatches > 1)
28706 size_t __minlen = __traits_type::length(__names[__matches[0]]);
28707 for (size_t __i2 = 1; __i2 < __nmatches; ++__i2)
28708 __minlen = std::min(__minlen,
28709 __traits_type::length(__names[__matches[__i2]]));
28711 if (__pos < __minlen && __beg != __end)
28712 for (size_t __i3 = 0; __i3 < __nmatches;)
28714 __name = __names[__matches[__i3]];
28715 if (!(__name[__pos] == *__beg))
28716 __matches[__i3] = __matches[--__nmatches];
28724 if (__nmatches == 1)
28728 __name = __names[__matches[0]];
28729 const size_t __len = __traits_type::length(__name);
28730 while (__pos < __len && __beg != __end && __name[__pos] == *__beg)
28733 if (__len == __pos)
28734 __member = __matches[0];
28736 __testvalid = false;
28739 __testvalid = false;
28741 __err |= ios_base::failbit;
28746 template<typename _CharT, typename _InIter>
28748 time_get<_CharT, _InIter>::
28749 do_get_time(iter_type __beg, iter_type __end, ios_base& __io,
28750 ios_base::iostate& __err, tm* __tm) const
28752 const locale& __loc = __io._M_getloc();
28753 const __timepunct<_CharT>& __tp = use_facet<__timepunct<_CharT> >(__loc);
28754 const char_type* __times[2];
28755 __tp._M_time_formats(__times);
28756 __beg = _M_extract_via_format(__beg, __end, __io, __err,
28758 if (__beg == __end)
28759 __err |= ios_base::eofbit;
28763 template<typename _CharT, typename _InIter>
28765 time_get<_CharT, _InIter>::
28766 do_get_date(iter_type __beg, iter_type __end, ios_base& __io,
28767 ios_base::iostate& __err, tm* __tm) const
28769 const locale& __loc = __io._M_getloc();
28770 const __timepunct<_CharT>& __tp = use_facet<__timepunct<_CharT> >(__loc);
28771 const char_type* __dates[2];
28772 __tp._M_date_formats(__dates);
28773 __beg = _M_extract_via_format(__beg, __end, __io, __err,
28775 if (__beg == __end)
28776 __err |= ios_base::eofbit;
28780 template<typename _CharT, typename _InIter>
28782 time_get<_CharT, _InIter>::
28783 do_get_weekday(iter_type __beg, iter_type __end, ios_base& __io,
28784 ios_base::iostate& __err, tm* __tm) const
28786 typedef char_traits<_CharT> __traits_type;
28787 const locale& __loc = __io._M_getloc();
28788 const __timepunct<_CharT>& __tp = use_facet<__timepunct<_CharT> >(__loc);
28789 const ctype<_CharT>& __ctype = use_facet<ctype<_CharT> >(__loc);
28790 const char_type* __days[7];
28791 __tp._M_days_abbreviated(__days);
28793 ios_base::iostate __tmperr = ios_base::goodbit;
28794 __beg = _M_extract_name(__beg, __end, __tmpwday, __days, 7,
28803 if (!__tmperr && __beg != __end)
28805 size_t __pos = __traits_type::length(__days[__tmpwday]);
28806 __tp._M_days(__days);
28807 const char_type* __name = __days[__tmpwday];
28808 if (__name[__pos] == *__beg)
28811 const size_t __len = __traits_type::length(__name);
28812 while (__pos < __len && __beg != __end
28813 && __name[__pos] == *__beg)
28815 if (__len != __pos)
28816 __tmperr |= ios_base::failbit;
28820 __tm->tm_wday = __tmpwday;
28822 __err |= ios_base::failbit;
28824 if (__beg == __end)
28825 __err |= ios_base::eofbit;
28829 template<typename _CharT, typename _InIter>
28831 time_get<_CharT, _InIter>::
28832 do_get_monthname(iter_type __beg, iter_type __end,
28833 ios_base& __io, ios_base::iostate& __err, tm* __tm) const
28835 typedef char_traits<_CharT> __traits_type;
28836 const locale& __loc = __io._M_getloc();
28837 const __timepunct<_CharT>& __tp = use_facet<__timepunct<_CharT> >(__loc);
28838 const ctype<_CharT>& __ctype = use_facet<ctype<_CharT> >(__loc);
28839 const char_type* __months[12];
28840 __tp._M_months_abbreviated(__months);
28842 ios_base::iostate __tmperr = ios_base::goodbit;
28843 __beg = _M_extract_name(__beg, __end, __tmpmon, __months, 12,
28852 if (!__tmperr && __beg != __end)
28854 size_t __pos = __traits_type::length(__months[__tmpmon]);
28855 __tp._M_months(__months);
28856 const char_type* __name = __months[__tmpmon];
28857 if (__name[__pos] == *__beg)
28860 const size_t __len = __traits_type::length(__name);
28861 while (__pos < __len && __beg != __end
28862 && __name[__pos] == *__beg)
28864 if (__len != __pos)
28865 __tmperr |= ios_base::failbit;
28869 __tm->tm_mon = __tmpmon;
28871 __err |= ios_base::failbit;
28873 if (__beg == __end)
28874 __err |= ios_base::eofbit;
28878 template<typename _CharT, typename _InIter>
28880 time_get<_CharT, _InIter>::
28881 do_get_year(iter_type __beg, iter_type __end, ios_base& __io,
28882 ios_base::iostate& __err, tm* __tm) const
28884 const locale& __loc = __io._M_getloc();
28885 const ctype<_CharT>& __ctype = use_facet<ctype<_CharT> >(__loc);
28889 for (; __beg != __end && __i < 4; ++__beg, ++__i)
28891 const char __c = __ctype.narrow(*__beg, '*');
28892 if (__c >= '0' && __c <= '9')
28893 __value = __value * 10 + (__c - '0');
28897 if (__i == 2 || __i == 4)
28898 __tm->tm_year = __i == 2 ? __value : __value - 1900;
28900 __err |= ios_base::failbit;
28902 if (__beg == __end)
28903 __err |= ios_base::eofbit;
28907 template<typename _CharT, typename _OutIter>
28909 time_put<_CharT, _OutIter>::
28910 put(iter_type __s, ios_base& __io, char_type __fill, const tm* __tm,
28911 const _CharT* __beg, const _CharT* __end) const
28913 const locale& __loc = __io._M_getloc();
28914 ctype<_CharT> const& __ctype = use_facet<ctype<_CharT> >(__loc);
28915 for (; __beg != __end; ++__beg)
28916 if (__ctype.narrow(*__beg, 0) != '%')
28921 else if (++__beg != __end)
28925 const char __c = __ctype.narrow(*__beg, 0);
28926 if (__c != 'E' && __c != 'O')
28928 else if (++__beg != __end)
28931 __format = __ctype.narrow(*__beg, 0);
28935 __s = this->do_put(__s, __io, __fill, __tm, __format, __mod);
28942 template<typename _CharT, typename _OutIter>
28944 time_put<_CharT, _OutIter>::
28945 do_put(iter_type __s, ios_base& __io, char_type, const tm* __tm,
28946 char __format, char __mod) const
28948 const locale& __loc = __io._M_getloc();
28949 ctype<_CharT> const& __ctype = use_facet<ctype<_CharT> >(__loc);
28950 __timepunct<_CharT> const& __tp = use_facet<__timepunct<_CharT> >(__loc);
28954 const size_t __maxlen = 128;
28956 static_cast<char_type*>(__builtin_alloca(sizeof(char_type) * __maxlen));
28963 char_type __fmt[4];
28964 __fmt[0] = __ctype.widen('%');
28967 __fmt[1] = __format;
28968 __fmt[2] = char_type();
28973 __fmt[2] = __format;
28974 __fmt[3] = char_type();
28977 __tp._M_put(__res, __maxlen, __fmt, __tm);
28980 return std::__write(__s, __res, char_traits<char_type>::length(__res));
28984 template<typename _CharT>
28986 collate<_CharT>::_M_compare(const _CharT*, const _CharT*) const
28990 template<typename _CharT>
28992 collate<_CharT>::_M_transform(_CharT*, const _CharT*, size_t) const
28995 template<typename _CharT>
28998 do_compare(const _CharT* __lo1, const _CharT* __hi1,
28999 const _CharT* __lo2, const _CharT* __hi2) const
29003 const string_type __one(__lo1, __hi1);
29004 const string_type __two(__lo2, __hi2);
29006 const _CharT* __p = __one.c_str();
29007 const _CharT* __pend = __one.data() + __one.length();
29008 const _CharT* __q = __two.c_str();
29009 const _CharT* __qend = __two.data() + __two.length();
29016 const int __res = _M_compare(__p, __q);
29020 __p += char_traits<_CharT>::length(__p);
29021 __q += char_traits<_CharT>::length(__q);
29022 if (__p == __pend && __q == __qend)
29024 else if (__p == __pend)
29026 else if (__q == __qend)
29034 template<typename _CharT>
29035 typename collate<_CharT>::string_type
29037 do_transform(const _CharT* __lo, const _CharT* __hi) const
29042 const string_type __str(__lo, __hi);
29044 const _CharT* __p = __str.c_str();
29045 const _CharT* __pend = __str.data() + __str.length();
29047 size_t __len = (__hi - __lo) * 2;
29049 _CharT* __c = new _CharT[__len];
29059 size_t __res = _M_transform(__c, __p, __len);
29062 if (__res >= __len)
29065 delete [] __c, __c = 0;
29066 __c = new _CharT[__len];
29067 __res = _M_transform(__c, __p, __len);
29070 __ret.append(__c, __res);
29071 __p += char_traits<_CharT>::length(__p);
29076 __ret.push_back(_CharT());
29090 template<typename _CharT>
29093 do_hash(const _CharT* __lo, const _CharT* __hi) const
29095 unsigned long __val = 0;
29096 for (; __lo < __hi; ++__lo)
29097 __val = *__lo + ((__val << 7) |
29098 (__val >> (numeric_limits<unsigned long>::digits - 7)));
29099 return static_cast<long>(__val);
29101 # 2503 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/locale_facets.tcc" 3
29102 template<typename _CharT, typename _Traits>
29104 __pad<_CharT, _Traits>::_S_pad(ios_base& __io, _CharT __fill,
29105 _CharT* __news, const _CharT* __olds,
29106 const streamsize __newlen,
29107 const streamsize __oldlen, const bool __num)
29109 const size_t __plen = static_cast<size_t>(__newlen - __oldlen);
29110 const ios_base::fmtflags __adjust = __io.flags() & ios_base::adjustfield;
29113 if (__adjust == ios_base::left)
29115 _Traits::copy(__news, const_cast<_CharT*>(__olds), __oldlen);
29116 _Traits::assign(__news + __oldlen, __plen, __fill);
29121 if (__adjust == ios_base::internal && __num)
29126 const locale& __loc = __io._M_getloc();
29127 const ctype<_CharT>& __ctype = use_facet<ctype<_CharT> >(__loc);
29129 const bool __testsign = (__ctype.widen('-') == __olds[0]
29130 || __ctype.widen('+') == __olds[0]);
29131 const bool __testhex = (__ctype.widen('0') == __olds[0]
29133 && (__ctype.widen('x') == __olds[1]
29134 || __ctype.widen('X') == __olds[1]));
29137 __news[0] = __olds[0];
29138 __news[1] = __olds[1];
29142 else if (__testsign)
29144 __news[0] = __olds[0];
29150 _Traits::assign(__news, __plen, __fill);
29151 _Traits::copy(__news + __plen, const_cast<_CharT*>(__olds + __mod),
29156 __verify_grouping(const char* __grouping, size_t __grouping_size,
29157 const string& __grouping_tmp)
29159 const size_t __n = __grouping_tmp.size() - 1;
29160 const size_t __min = std::min(__n, size_t(__grouping_size - 1));
29162 bool __test = true;
29167 for (size_t __j = 0; __j < __min && __test; --__i, ++__j)
29168 __test = __grouping_tmp[__i] == __grouping[__j];
29169 for (; __i && __test; --__i)
29170 __test = __grouping_tmp[__i] == __grouping[__min];
29174 if (static_cast<signed char>(__grouping[__min]) > 0)
29175 __test &= __grouping_tmp[0] <= __grouping[__min];
29179 template<typename _CharT>
29181 __add_grouping(_CharT* __s, _CharT __sep,
29182 const char* __gbeg, size_t __gsize,
29183 const _CharT* __first, const _CharT* __last)
29188 while (__last - __first > __gbeg[__idx]
29189 && static_cast<signed char>(__gbeg[__idx]) > 0)
29191 __last -= __gbeg[__idx];
29192 __idx < __gsize - 1 ? ++__idx : ++__ctr;
29195 while (__first != __last)
29196 *__s++ = *__first++;
29201 for (char __i = __gbeg[__idx]; __i > 0; --__i)
29202 *__s++ = *__first++;
29208 for (char __i = __gbeg[__idx]; __i > 0; --__i)
29209 *__s++ = *__first++;
29219 extern template class moneypunct<char, false>;
29220 extern template class moneypunct<char, true>;
29221 extern template class moneypunct_byname<char, false>;
29222 extern template class moneypunct_byname<char, true>;
29223 extern template class money_get<char>;
29224 extern template class money_put<char>;
29225 extern template class numpunct<char>;
29226 extern template class numpunct_byname<char>;
29227 extern template class num_get<char>;
29228 extern template class num_put<char>;
29229 extern template class __timepunct<char>;
29230 extern template class time_put<char>;
29231 extern template class time_put_byname<char>;
29232 extern template class time_get<char>;
29233 extern template class time_get_byname<char>;
29234 extern template class messages<char>;
29235 extern template class messages_byname<char>;
29236 extern template class ctype_byname<char>;
29237 extern template class codecvt_byname<char, char, mbstate_t>;
29238 extern template class collate<char>;
29239 extern template class collate_byname<char>;
29242 const codecvt<char, char, mbstate_t>&
29243 use_facet<codecvt<char, char, mbstate_t> >(const locale&);
29246 const collate<char>&
29247 use_facet<collate<char> >(const locale&);
29250 const numpunct<char>&
29251 use_facet<numpunct<char> >(const locale&);
29254 const num_put<char>&
29255 use_facet<num_put<char> >(const locale&);
29258 const num_get<char>&
29259 use_facet<num_get<char> >(const locale&);
29262 const moneypunct<char, true>&
29263 use_facet<moneypunct<char, true> >(const locale&);
29266 const moneypunct<char, false>&
29267 use_facet<moneypunct<char, false> >(const locale&);
29270 const money_put<char>&
29271 use_facet<money_put<char> >(const locale&);
29274 const money_get<char>&
29275 use_facet<money_get<char> >(const locale&);
29278 const __timepunct<char>&
29279 use_facet<__timepunct<char> >(const locale&);
29282 const time_put<char>&
29283 use_facet<time_put<char> >(const locale&);
29286 const time_get<char>&
29287 use_facet<time_get<char> >(const locale&);
29290 const messages<char>&
29291 use_facet<messages<char> >(const locale&);
29295 has_facet<ctype<char> >(const locale&);
29299 has_facet<codecvt<char, char, mbstate_t> >(const locale&);
29303 has_facet<collate<char> >(const locale&);
29307 has_facet<numpunct<char> >(const locale&);
29311 has_facet<num_put<char> >(const locale&);
29315 has_facet<num_get<char> >(const locale&);
29319 has_facet<moneypunct<char> >(const locale&);
29323 has_facet<money_put<char> >(const locale&);
29327 has_facet<money_get<char> >(const locale&);
29331 has_facet<__timepunct<char> >(const locale&);
29335 has_facet<time_put<char> >(const locale&);
29339 has_facet<time_get<char> >(const locale&);
29343 has_facet<messages<char> >(const locale&);
29346 extern template class moneypunct<wchar_t, false>;
29347 extern template class moneypunct<wchar_t, true>;
29348 extern template class moneypunct_byname<wchar_t, false>;
29349 extern template class moneypunct_byname<wchar_t, true>;
29350 extern template class money_get<wchar_t>;
29351 extern template class money_put<wchar_t>;
29352 extern template class numpunct<wchar_t>;
29353 extern template class numpunct_byname<wchar_t>;
29354 extern template class num_get<wchar_t>;
29355 extern template class num_put<wchar_t>;
29356 extern template class __timepunct<wchar_t>;
29357 extern template class time_put<wchar_t>;
29358 extern template class time_put_byname<wchar_t>;
29359 extern template class time_get<wchar_t>;
29360 extern template class time_get_byname<wchar_t>;
29361 extern template class messages<wchar_t>;
29362 extern template class messages_byname<wchar_t>;
29363 extern template class ctype_byname<wchar_t>;
29364 extern template class codecvt_byname<wchar_t, char, mbstate_t>;
29365 extern template class collate<wchar_t>;
29366 extern template class collate_byname<wchar_t>;
29369 const codecvt<wchar_t, char, mbstate_t>&
29370 use_facet<codecvt<wchar_t, char, mbstate_t> >(locale const&);
29373 const collate<wchar_t>&
29374 use_facet<collate<wchar_t> >(const locale&);
29377 const numpunct<wchar_t>&
29378 use_facet<numpunct<wchar_t> >(const locale&);
29381 const num_put<wchar_t>&
29382 use_facet<num_put<wchar_t> >(const locale&);
29385 const num_get<wchar_t>&
29386 use_facet<num_get<wchar_t> >(const locale&);
29389 const moneypunct<wchar_t, true>&
29390 use_facet<moneypunct<wchar_t, true> >(const locale&);
29393 const moneypunct<wchar_t, false>&
29394 use_facet<moneypunct<wchar_t, false> >(const locale&);
29397 const money_put<wchar_t>&
29398 use_facet<money_put<wchar_t> >(const locale&);
29401 const money_get<wchar_t>&
29402 use_facet<money_get<wchar_t> >(const locale&);
29405 const __timepunct<wchar_t>&
29406 use_facet<__timepunct<wchar_t> >(const locale&);
29409 const time_put<wchar_t>&
29410 use_facet<time_put<wchar_t> >(const locale&);
29413 const time_get<wchar_t>&
29414 use_facet<time_get<wchar_t> >(const locale&);
29417 const messages<wchar_t>&
29418 use_facet<messages<wchar_t> >(const locale&);
29422 has_facet<ctype<wchar_t> >(const locale&);
29426 has_facet<codecvt<wchar_t, char, mbstate_t> >(const locale&);
29430 has_facet<collate<wchar_t> >(const locale&);
29434 has_facet<numpunct<wchar_t> >(const locale&);
29438 has_facet<num_put<wchar_t> >(const locale&);
29442 has_facet<num_get<wchar_t> >(const locale&);
29446 has_facet<moneypunct<wchar_t> >(const locale&);
29450 has_facet<money_put<wchar_t> >(const locale&);
29454 has_facet<money_get<wchar_t> >(const locale&);
29458 has_facet<__timepunct<wchar_t> >(const locale&);
29462 has_facet<time_put<wchar_t> >(const locale&);
29466 has_facet<time_get<wchar_t> >(const locale&);
29470 has_facet<messages<wchar_t> >(const locale&);
29475 # 47 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/locale" 2 3
29476 # 47 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/ostream.tcc" 2 3
29478 namespace std __attribute__ ((__visibility__ ("default"))) {
29480 template<typename _CharT, typename _Traits>
29481 basic_ostream<_CharT, _Traits>::sentry::
29482 sentry(basic_ostream<_CharT, _Traits>& __os)
29483 : _M_ok(false), _M_os(__os)
29486 if (__os.tie() && __os.good())
29487 __os.tie()->flush();
29492 __os.setstate(ios_base::failbit);
29495 template<typename _CharT, typename _Traits>
29496 template<typename _ValueT>
29497 basic_ostream<_CharT, _Traits>&
29498 basic_ostream<_CharT, _Traits>::
29499 _M_insert(_ValueT __v)
29501 sentry __cerb(*this);
29504 ios_base::iostate __err = ios_base::iostate(ios_base::goodbit);
29507 const __num_put_type& __np = __check_facet(this->_M_num_put);
29508 if (__np.put(*this, *this, this->fill(), __v).failed())
29509 __err |= ios_base::badbit;
29512 { this->_M_setstate(ios_base::badbit); }
29514 this->setstate(__err);
29519 template<typename _CharT, typename _Traits>
29520 basic_ostream<_CharT, _Traits>&
29521 basic_ostream<_CharT, _Traits>::
29522 operator<<(short __n)
29526 const ios_base::fmtflags __fmt = this->flags() & ios_base::basefield;
29527 if (__fmt == ios_base::oct || __fmt == ios_base::hex)
29528 return _M_insert(static_cast<long>(static_cast<unsigned short>(__n)));
29530 return _M_insert(static_cast<long>(__n));
29533 template<typename _CharT, typename _Traits>
29534 basic_ostream<_CharT, _Traits>&
29535 basic_ostream<_CharT, _Traits>::
29536 operator<<(int __n)
29540 const ios_base::fmtflags __fmt = this->flags() & ios_base::basefield;
29541 if (__fmt == ios_base::oct || __fmt == ios_base::hex)
29542 return _M_insert(static_cast<long>(static_cast<unsigned int>(__n)));
29544 return _M_insert(static_cast<long>(__n));
29547 template<typename _CharT, typename _Traits>
29548 basic_ostream<_CharT, _Traits>&
29549 basic_ostream<_CharT, _Traits>::
29550 operator<<(__streambuf_type* __sbin)
29552 ios_base::iostate __err = ios_base::iostate(ios_base::goodbit);
29553 sentry __cerb(*this);
29554 if (__cerb && __sbin)
29558 if (!__copy_streambufs(__sbin, this->rdbuf()))
29559 __err |= ios_base::failbit;
29562 { this->_M_setstate(ios_base::failbit); }
29565 __err |= ios_base::badbit;
29567 this->setstate(__err);
29571 template<typename _CharT, typename _Traits>
29572 basic_ostream<_CharT, _Traits>&
29573 basic_ostream<_CharT, _Traits>::
29582 sentry __cerb(*this);
29585 ios_base::iostate __err = ios_base::iostate(ios_base::goodbit);
29588 const int_type __put = this->rdbuf()->sputc(__c);
29589 if (traits_type::eq_int_type(__put, traits_type::eof()))
29590 __err |= ios_base::badbit;
29593 { this->_M_setstate(ios_base::badbit); }
29595 this->setstate(__err);
29600 template<typename _CharT, typename _Traits>
29601 basic_ostream<_CharT, _Traits>&
29602 basic_ostream<_CharT, _Traits>::
29603 write(const _CharT* __s, streamsize __n)
29612 sentry __cerb(*this);
29616 { _M_write(__s, __n); }
29618 { this->_M_setstate(ios_base::badbit); }
29623 template<typename _CharT, typename _Traits>
29624 basic_ostream<_CharT, _Traits>&
29625 basic_ostream<_CharT, _Traits>::
29631 ios_base::iostate __err = ios_base::iostate(ios_base::goodbit);
29634 if (this->rdbuf() && this->rdbuf()->pubsync() == -1)
29635 __err |= ios_base::badbit;
29638 { this->_M_setstate(ios_base::badbit); }
29640 this->setstate(__err);
29644 template<typename _CharT, typename _Traits>
29645 typename basic_ostream<_CharT, _Traits>::pos_type
29646 basic_ostream<_CharT, _Traits>::
29649 pos_type __ret = pos_type(-1);
29653 __ret = this->rdbuf()->pubseekoff(0, ios_base::cur, ios_base::out);
29656 { this->_M_setstate(ios_base::badbit); }
29660 template<typename _CharT, typename _Traits>
29661 basic_ostream<_CharT, _Traits>&
29662 basic_ostream<_CharT, _Traits>::
29663 seekp(pos_type __pos)
29665 ios_base::iostate __err = ios_base::iostate(ios_base::goodbit);
29672 const pos_type __p = this->rdbuf()->pubseekpos(__pos,
29676 if (__p == pos_type(off_type(-1)))
29677 __err |= ios_base::failbit;
29681 { this->_M_setstate(ios_base::badbit); }
29683 this->setstate(__err);
29687 template<typename _CharT, typename _Traits>
29688 basic_ostream<_CharT, _Traits>&
29689 basic_ostream<_CharT, _Traits>::
29690 seekp(off_type __off, ios_base::seekdir __dir)
29692 ios_base::iostate __err = ios_base::iostate(ios_base::goodbit);
29699 const pos_type __p = this->rdbuf()->pubseekoff(__off, __dir,
29703 if (__p == pos_type(off_type(-1)))
29704 __err |= ios_base::failbit;
29708 { this->_M_setstate(ios_base::badbit); }
29710 this->setstate(__err);
29714 template<typename _CharT, typename _Traits>
29715 basic_ostream<_CharT, _Traits>&
29716 operator<<(basic_ostream<_CharT, _Traits>& __out, const char* __s)
29719 __out.setstate(ios_base::badbit);
29724 const size_t __clen = char_traits<char>::length(__s);
29728 __ws = new _CharT[__clen];
29729 for (size_t __i = 0; __i < __clen; ++__i)
29730 __ws[__i] = __out.widen(__s[__i]);
29735 __out._M_setstate(ios_base::badbit);
29741 __ostream_insert(__out, __ws, __clen);
29757 extern template class basic_ostream<char>;
29758 extern template ostream& endl(ostream&);
29759 extern template ostream& ends(ostream&);
29760 extern template ostream& flush(ostream&);
29761 extern template ostream& operator<<(ostream&, char);
29762 extern template ostream& operator<<(ostream&, unsigned char);
29763 extern template ostream& operator<<(ostream&, signed char);
29764 extern template ostream& operator<<(ostream&, const char*);
29765 extern template ostream& operator<<(ostream&, const unsigned char*);
29766 extern template ostream& operator<<(ostream&, const signed char*);
29768 extern template ostream& ostream::_M_insert(long);
29769 extern template ostream& ostream::_M_insert(unsigned long);
29770 extern template ostream& ostream::_M_insert(bool);
29772 extern template ostream& ostream::_M_insert(long long);
29773 extern template ostream& ostream::_M_insert(unsigned long long);
29775 extern template ostream& ostream::_M_insert(double);
29776 extern template ostream& ostream::_M_insert(long double);
29777 extern template ostream& ostream::_M_insert(const void*);
29780 extern template class basic_ostream<wchar_t>;
29781 extern template wostream& endl(wostream&);
29782 extern template wostream& ends(wostream&);
29783 extern template wostream& flush(wostream&);
29784 extern template wostream& operator<<(wostream&, wchar_t);
29785 extern template wostream& operator<<(wostream&, char);
29786 extern template wostream& operator<<(wostream&, const wchar_t*);
29787 extern template wostream& operator<<(wostream&, const char*);
29789 extern template wostream& wostream::_M_insert(long);
29790 extern template wostream& wostream::_M_insert(unsigned long);
29791 extern template wostream& wostream::_M_insert(bool);
29793 extern template wostream& wostream::_M_insert(long long);
29794 extern template wostream& wostream::_M_insert(unsigned long long);
29796 extern template wostream& wostream::_M_insert(double);
29797 extern template wostream& wostream::_M_insert(long double);
29798 extern template wostream& wostream::_M_insert(const void*);
29803 # 573 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/ostream" 2 3
29804 # 71 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/iterator" 2 3
29805 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/istream" 1 3
29806 # 42 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/istream" 3
29808 # 43 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/istream" 3
29813 namespace std __attribute__ ((__visibility__ ("default"))) {
29814 # 57 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/istream" 3
29815 template<typename _CharT, typename _Traits>
29816 class basic_istream : virtual public basic_ios<_CharT, _Traits>
29820 typedef _CharT char_type;
29821 typedef typename _Traits::int_type int_type;
29822 typedef typename _Traits::pos_type pos_type;
29823 typedef typename _Traits::off_type off_type;
29824 typedef _Traits traits_type;
29827 typedef basic_streambuf<_CharT, _Traits> __streambuf_type;
29828 typedef basic_ios<_CharT, _Traits> __ios_type;
29829 typedef basic_istream<_CharT, _Traits> __istream_type;
29830 typedef num_get<_CharT, istreambuf_iterator<_CharT, _Traits> >
29832 typedef ctype<_CharT> __ctype_type;
29834 template<typename _CharT2, typename _Traits2>
29835 friend basic_istream<_CharT2, _Traits2>&
29836 operator>>(basic_istream<_CharT2, _Traits2>&, _CharT2&);
29838 template<typename _CharT2, typename _Traits2>
29839 friend basic_istream<_CharT2, _Traits2>&
29840 operator>>(basic_istream<_CharT2, _Traits2>&, _CharT2*);
29850 streamsize _M_gcount;
29853 # 103 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/istream" 3
29855 basic_istream(__streambuf_type* __sb): _M_gcount(streamsize(0))
29856 { this->init(__sb); }
29865 { _M_gcount = streamsize(0); }
29869 friend class sentry;
29870 # 130 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/istream" 3
29872 operator>>(__istream_type& (*__pf)(__istream_type&))
29873 { return __pf(*this); }
29876 operator>>(__ios_type& (*__pf)(__ios_type&))
29883 operator>>(ios_base& (*__pf)(ios_base&))
29888 # 177 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/istream" 3
29890 operator>>(bool& __n)
29891 { return _M_extract(__n); }
29894 operator>>(short& __n);
29897 operator>>(unsigned short& __n)
29898 { return _M_extract(__n); }
29901 operator>>(int& __n);
29904 operator>>(unsigned int& __n)
29905 { return _M_extract(__n); }
29908 operator>>(long& __n)
29909 { return _M_extract(__n); }
29912 operator>>(unsigned long& __n)
29913 { return _M_extract(__n); }
29917 operator>>(long long& __n)
29918 { return _M_extract(__n); }
29921 operator>>(unsigned long long& __n)
29922 { return _M_extract(__n); }
29926 operator>>(float& __f)
29927 { return _M_extract(__f); }
29930 operator>>(double& __f)
29931 { return _M_extract(__f); }
29934 operator>>(long double& __f)
29935 { return _M_extract(__f); }
29938 operator>>(void*& __p)
29939 { return _M_extract(__p); }
29940 # 249 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/istream" 3
29942 operator>>(__streambuf_type* __sb);
29943 # 259 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/istream" 3
29946 { return _M_gcount; }
29947 # 291 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/istream" 3
29950 # 305 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/istream" 3
29952 get(char_type& __c);
29953 # 332 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/istream" 3
29955 get(char_type* __s, streamsize __n, char_type __delim);
29956 # 343 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/istream" 3
29958 get(char_type* __s, streamsize __n)
29959 { return this->get(__s, __n, this->widen('\n')); }
29960 # 366 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/istream" 3
29962 get(__streambuf_type& __sb, char_type __delim);
29963 # 376 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/istream" 3
29965 get(__streambuf_type& __sb)
29966 { return this->get(__sb, this->widen('\n')); }
29967 # 405 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/istream" 3
29969 getline(char_type* __s, streamsize __n, char_type __delim);
29970 # 416 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/istream" 3
29972 getline(char_type* __s, streamsize __n)
29973 { return this->getline(__s, __n, this->widen('\n')); }
29974 # 440 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/istream" 3
29979 ignore(streamsize __n);
29982 ignore(streamsize __n, int_type __delim);
29983 # 457 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/istream" 3
29986 # 475 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/istream" 3
29988 read(char_type* __s, streamsize __n);
29989 # 494 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/istream" 3
29991 readsome(char_type* __s, streamsize __n);
29992 # 510 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/istream" 3
29994 putback(char_type __c);
29995 # 525 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/istream" 3
29998 # 543 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/istream" 3
30001 # 557 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/istream" 3
30004 # 572 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/istream" 3
30007 # 588 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/istream" 3
30009 seekg(off_type, ios_base::seekdir);
30014 basic_istream(): _M_gcount(streamsize(0)) { }
30016 template<typename _ValueT>
30018 _M_extract(_ValueT& __v);
30023 basic_istream<char>&
30024 basic_istream<char>::
30025 getline(char_type* __s, streamsize __n, char_type __delim);
30028 basic_istream<char>&
30029 basic_istream<char>::
30030 ignore(streamsize __n);
30033 basic_istream<char>&
30034 basic_istream<char>::
30035 ignore(streamsize __n, int_type __delim);
30039 basic_istream<wchar_t>&
30040 basic_istream<wchar_t>::
30041 getline(char_type* __s, streamsize __n, char_type __delim);
30044 basic_istream<wchar_t>&
30045 basic_istream<wchar_t>::
30046 ignore(streamsize __n);
30049 basic_istream<wchar_t>&
30050 basic_istream<wchar_t>::
30051 ignore(streamsize __n, int_type __delim);
30052 # 645 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/istream" 3
30053 template<typename _CharT, typename _Traits>
30054 class basic_istream<_CharT, _Traits>::sentry
30058 typedef _Traits traits_type;
30059 typedef basic_streambuf<_CharT, _Traits> __streambuf_type;
30060 typedef basic_istream<_CharT, _Traits> __istream_type;
30061 typedef typename __istream_type::__ctype_type __ctype_type;
30062 typedef typename _Traits::int_type __int_type;
30063 # 677 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/istream" 3
30065 sentry(basic_istream<_CharT, _Traits>& __is, bool __noskipws = false);
30066 # 687 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/istream" 3
30067 operator bool() const
30073 # 707 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/istream" 3
30074 template<typename _CharT, typename _Traits>
30075 basic_istream<_CharT, _Traits>&
30076 operator>>(basic_istream<_CharT, _Traits>& __in, _CharT& __c);
30078 template<class _Traits>
30079 inline basic_istream<char, _Traits>&
30080 operator>>(basic_istream<char, _Traits>& __in, unsigned char& __c)
30081 { return (__in >> reinterpret_cast<char&>(__c)); }
30083 template<class _Traits>
30084 inline basic_istream<char, _Traits>&
30085 operator>>(basic_istream<char, _Traits>& __in, signed char& __c)
30086 { return (__in >> reinterpret_cast<char&>(__c)); }
30087 # 748 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/istream" 3
30088 template<typename _CharT, typename _Traits>
30089 basic_istream<_CharT, _Traits>&
30090 operator>>(basic_istream<_CharT, _Traits>& __in, _CharT* __s);
30094 basic_istream<char>&
30095 operator>>(basic_istream<char>& __in, char* __s);
30097 template<class _Traits>
30098 inline basic_istream<char, _Traits>&
30099 operator>>(basic_istream<char, _Traits>& __in, unsigned char* __s)
30100 { return (__in >> reinterpret_cast<char*>(__s)); }
30102 template<class _Traits>
30103 inline basic_istream<char, _Traits>&
30104 operator>>(basic_istream<char, _Traits>& __in, signed char* __s)
30105 { return (__in >> reinterpret_cast<char*>(__s)); }
30106 # 775 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/istream" 3
30107 template<typename _CharT, typename _Traits>
30108 class basic_iostream
30109 : public basic_istream<_CharT, _Traits>,
30110 public basic_ostream<_CharT, _Traits>
30116 typedef _CharT char_type;
30117 typedef typename _Traits::int_type int_type;
30118 typedef typename _Traits::pos_type pos_type;
30119 typedef typename _Traits::off_type off_type;
30120 typedef _Traits traits_type;
30123 typedef basic_istream<_CharT, _Traits> __istream_type;
30124 typedef basic_ostream<_CharT, _Traits> __ostream_type;
30133 basic_iostream(basic_streambuf<_CharT, _Traits>* __sb)
30134 : __istream_type(), __ostream_type()
30135 { this->init(__sb); }
30141 ~basic_iostream() { }
30145 basic_iostream() : __istream_type(), __ostream_type()
30148 # 838 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/istream" 3
30149 template<typename _CharT, typename _Traits>
30150 basic_istream<_CharT, _Traits>&
30151 ws(basic_istream<_CharT, _Traits>& __is);
30156 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/istream.tcc" 1 3
30157 # 44 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/istream.tcc" 3
30159 # 45 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/istream.tcc" 3
30164 namespace std __attribute__ ((__visibility__ ("default"))) {
30166 template<typename _CharT, typename _Traits>
30167 basic_istream<_CharT, _Traits>::sentry::
30168 sentry(basic_istream<_CharT, _Traits>& __in, bool __noskip) : _M_ok(false)
30170 ios_base::iostate __err = ios_base::iostate(ios_base::goodbit);
30174 __in.tie()->flush();
30175 if (!__noskip && (__in.flags() & ios_base::skipws))
30177 const __int_type __eof = traits_type::eof();
30178 __streambuf_type* __sb = __in.rdbuf();
30179 __int_type __c = __sb->sgetc();
30181 const __ctype_type& __ct = __check_facet(__in._M_ctype);
30182 while (!traits_type::eq_int_type(__c, __eof)
30183 && __ct.is(ctype_base::space,
30184 traits_type::to_char_type(__c)))
30185 __c = __sb->snextc();
30190 if (traits_type::eq_int_type(__c, __eof))
30191 __err |= ios_base::eofbit;
30195 if (__in.good() && __err == ios_base::goodbit)
30199 __err |= ios_base::failbit;
30200 __in.setstate(__err);
30204 template<typename _CharT, typename _Traits>
30205 template<typename _ValueT>
30206 basic_istream<_CharT, _Traits>&
30207 basic_istream<_CharT, _Traits>::
30208 _M_extract(_ValueT& __v)
30210 sentry __cerb(*this, false);
30213 ios_base::iostate __err = ios_base::iostate(ios_base::goodbit);
30216 const __num_get_type& __ng = __check_facet(this->_M_num_get);
30217 __ng.get(*this, 0, *this, __err, __v);
30220 { this->_M_setstate(ios_base::badbit); }
30222 this->setstate(__err);
30227 template<typename _CharT, typename _Traits>
30228 basic_istream<_CharT, _Traits>&
30229 basic_istream<_CharT, _Traits>::
30230 operator>>(short& __n)
30238 if (numeric_limits<short>::min() <= __l
30239 && __l <= numeric_limits<short>::max())
30242 this->setstate(ios_base::failbit);
30247 template<typename _CharT, typename _Traits>
30248 basic_istream<_CharT, _Traits>&
30249 basic_istream<_CharT, _Traits>::
30250 operator>>(int& __n)
30258 if (numeric_limits<int>::min() <= __l
30259 && __l <= numeric_limits<int>::max())
30262 this->setstate(ios_base::failbit);
30267 template<typename _CharT, typename _Traits>
30268 basic_istream<_CharT, _Traits>&
30269 basic_istream<_CharT, _Traits>::
30270 operator>>(__streambuf_type* __sbout)
30272 ios_base::iostate __err = ios_base::iostate(ios_base::goodbit);
30273 sentry __cerb(*this, false);
30274 if (__cerb && __sbout)
30279 if (!__copy_streambufs_eof(this->rdbuf(), __sbout, __ineof))
30280 __err |= ios_base::failbit;
30282 __err |= ios_base::eofbit;
30285 { this->_M_setstate(ios_base::failbit); }
30288 __err |= ios_base::failbit;
30290 this->setstate(__err);
30294 template<typename _CharT, typename _Traits>
30295 typename basic_istream<_CharT, _Traits>::int_type
30296 basic_istream<_CharT, _Traits>::
30299 const int_type __eof = traits_type::eof();
30300 int_type __c = __eof;
30302 ios_base::iostate __err = ios_base::iostate(ios_base::goodbit);
30303 sentry __cerb(*this, true);
30308 __c = this->rdbuf()->sbumpc();
30310 if (!traits_type::eq_int_type(__c, __eof))
30313 __err |= ios_base::eofbit;
30316 { this->_M_setstate(ios_base::badbit); }
30319 __err |= ios_base::failbit;
30321 this->setstate(__err);
30325 template<typename _CharT, typename _Traits>
30326 basic_istream<_CharT, _Traits>&
30327 basic_istream<_CharT, _Traits>::
30328 get(char_type& __c)
30331 ios_base::iostate __err = ios_base::iostate(ios_base::goodbit);
30332 sentry __cerb(*this, true);
30337 const int_type __cb = this->rdbuf()->sbumpc();
30339 if (!traits_type::eq_int_type(__cb, traits_type::eof()))
30342 __c = traits_type::to_char_type(__cb);
30345 __err |= ios_base::eofbit;
30348 { this->_M_setstate(ios_base::badbit); }
30351 __err |= ios_base::failbit;
30353 this->setstate(__err);
30357 template<typename _CharT, typename _Traits>
30358 basic_istream<_CharT, _Traits>&
30359 basic_istream<_CharT, _Traits>::
30360 get(char_type* __s, streamsize __n, char_type __delim)
30363 ios_base::iostate __err = ios_base::iostate(ios_base::goodbit);
30364 sentry __cerb(*this, true);
30369 const int_type __idelim = traits_type::to_int_type(__delim);
30370 const int_type __eof = traits_type::eof();
30371 __streambuf_type* __sb = this->rdbuf();
30372 int_type __c = __sb->sgetc();
30374 while (_M_gcount + 1 < __n
30375 && !traits_type::eq_int_type(__c, __eof)
30376 && !traits_type::eq_int_type(__c, __idelim))
30378 *__s++ = traits_type::to_char_type(__c);
30380 __c = __sb->snextc();
30382 if (traits_type::eq_int_type(__c, __eof))
30383 __err |= ios_base::eofbit;
30386 { this->_M_setstate(ios_base::badbit); }
30391 *__s = char_type();
30393 __err |= ios_base::failbit;
30395 this->setstate(__err);
30399 template<typename _CharT, typename _Traits>
30400 basic_istream<_CharT, _Traits>&
30401 basic_istream<_CharT, _Traits>::
30402 get(__streambuf_type& __sb, char_type __delim)
30405 ios_base::iostate __err = ios_base::iostate(ios_base::goodbit);
30406 sentry __cerb(*this, true);
30411 const int_type __idelim = traits_type::to_int_type(__delim);
30412 const int_type __eof = traits_type::eof();
30413 __streambuf_type* __this_sb = this->rdbuf();
30414 int_type __c = __this_sb->sgetc();
30415 char_type __c2 = traits_type::to_char_type(__c);
30417 while (!traits_type::eq_int_type(__c, __eof)
30418 && !traits_type::eq_int_type(__c, __idelim)
30419 && !traits_type::eq_int_type(__sb.sputc(__c2), __eof))
30422 __c = __this_sb->snextc();
30423 __c2 = traits_type::to_char_type(__c);
30425 if (traits_type::eq_int_type(__c, __eof))
30426 __err |= ios_base::eofbit;
30429 { this->_M_setstate(ios_base::badbit); }
30432 __err |= ios_base::failbit;
30434 this->setstate(__err);
30438 template<typename _CharT, typename _Traits>
30439 basic_istream<_CharT, _Traits>&
30440 basic_istream<_CharT, _Traits>::
30441 getline(char_type* __s, streamsize __n, char_type __delim)
30444 ios_base::iostate __err = ios_base::iostate(ios_base::goodbit);
30445 sentry __cerb(*this, true);
30450 const int_type __idelim = traits_type::to_int_type(__delim);
30451 const int_type __eof = traits_type::eof();
30452 __streambuf_type* __sb = this->rdbuf();
30453 int_type __c = __sb->sgetc();
30455 while (_M_gcount + 1 < __n
30456 && !traits_type::eq_int_type(__c, __eof)
30457 && !traits_type::eq_int_type(__c, __idelim))
30459 *__s++ = traits_type::to_char_type(__c);
30460 __c = __sb->snextc();
30463 if (traits_type::eq_int_type(__c, __eof))
30464 __err |= ios_base::eofbit;
30467 if (traits_type::eq_int_type(__c, __idelim))
30473 __err |= ios_base::failbit;
30477 { this->_M_setstate(ios_base::badbit); }
30482 *__s = char_type();
30484 __err |= ios_base::failbit;
30486 this->setstate(__err);
30493 template<typename _CharT, typename _Traits>
30494 basic_istream<_CharT, _Traits>&
30495 basic_istream<_CharT, _Traits>::
30499 sentry __cerb(*this, true);
30502 ios_base::iostate __err = ios_base::iostate(ios_base::goodbit);
30505 const int_type __eof = traits_type::eof();
30506 __streambuf_type* __sb = this->rdbuf();
30508 if (traits_type::eq_int_type(__sb->sbumpc(), __eof))
30509 __err |= ios_base::eofbit;
30514 { this->_M_setstate(ios_base::badbit); }
30516 this->setstate(__err);
30521 template<typename _CharT, typename _Traits>
30522 basic_istream<_CharT, _Traits>&
30523 basic_istream<_CharT, _Traits>::
30524 ignore(streamsize __n)
30527 sentry __cerb(*this, true);
30528 if (__cerb && __n > 0)
30530 ios_base::iostate __err = ios_base::iostate(ios_base::goodbit);
30533 const int_type __eof = traits_type::eof();
30534 __streambuf_type* __sb = this->rdbuf();
30535 int_type __c = __sb->sgetc();
30536 # 429 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/istream.tcc" 3
30537 bool __large_ignore = false;
30540 while (_M_gcount < __n
30541 && !traits_type::eq_int_type(__c, __eof))
30544 __c = __sb->snextc();
30546 if (__n == numeric_limits<streamsize>::max()
30547 && !traits_type::eq_int_type(__c, __eof))
30549 _M_gcount = numeric_limits<streamsize>::min();
30550 __large_ignore = true;
30556 if (__large_ignore)
30557 _M_gcount = numeric_limits<streamsize>::max();
30559 if (traits_type::eq_int_type(__c, __eof))
30560 __err |= ios_base::eofbit;
30563 { this->_M_setstate(ios_base::badbit); }
30565 this->setstate(__err);
30570 template<typename _CharT, typename _Traits>
30571 basic_istream<_CharT, _Traits>&
30572 basic_istream<_CharT, _Traits>::
30573 ignore(streamsize __n, int_type __delim)
30576 sentry __cerb(*this, true);
30577 if (__cerb && __n > 0)
30579 ios_base::iostate __err = ios_base::iostate(ios_base::goodbit);
30582 const int_type __eof = traits_type::eof();
30583 __streambuf_type* __sb = this->rdbuf();
30584 int_type __c = __sb->sgetc();
30587 bool __large_ignore = false;
30590 while (_M_gcount < __n
30591 && !traits_type::eq_int_type(__c, __eof)
30592 && !traits_type::eq_int_type(__c, __delim))
30595 __c = __sb->snextc();
30597 if (__n == numeric_limits<streamsize>::max()
30598 && !traits_type::eq_int_type(__c, __eof)
30599 && !traits_type::eq_int_type(__c, __delim))
30601 _M_gcount = numeric_limits<streamsize>::min();
30602 __large_ignore = true;
30608 if (__large_ignore)
30609 _M_gcount = numeric_limits<streamsize>::max();
30611 if (traits_type::eq_int_type(__c, __eof))
30612 __err |= ios_base::eofbit;
30613 else if (traits_type::eq_int_type(__c, __delim))
30615 if (_M_gcount < numeric_limits<streamsize>::max())
30621 { this->_M_setstate(ios_base::badbit); }
30623 this->setstate(__err);
30628 template<typename _CharT, typename _Traits>
30629 typename basic_istream<_CharT, _Traits>::int_type
30630 basic_istream<_CharT, _Traits>::
30633 int_type __c = traits_type::eof();
30635 sentry __cerb(*this, true);
30638 ios_base::iostate __err = ios_base::iostate(ios_base::goodbit);
30641 __c = this->rdbuf()->sgetc();
30642 if (traits_type::eq_int_type(__c, traits_type::eof()))
30643 __err |= ios_base::eofbit;
30646 { this->_M_setstate(ios_base::badbit); }
30648 this->setstate(__err);
30653 template<typename _CharT, typename _Traits>
30654 basic_istream<_CharT, _Traits>&
30655 basic_istream<_CharT, _Traits>::
30656 read(char_type* __s, streamsize __n)
30659 sentry __cerb(*this, true);
30662 ios_base::iostate __err = ios_base::iostate(ios_base::goodbit);
30665 _M_gcount = this->rdbuf()->sgetn(__s, __n);
30666 if (_M_gcount != __n)
30667 __err |= (ios_base::eofbit | ios_base::failbit);
30670 { this->_M_setstate(ios_base::badbit); }
30672 this->setstate(__err);
30677 template<typename _CharT, typename _Traits>
30679 basic_istream<_CharT, _Traits>::
30680 readsome(char_type* __s, streamsize __n)
30683 sentry __cerb(*this, true);
30686 ios_base::iostate __err = ios_base::iostate(ios_base::goodbit);
30690 const streamsize __num = this->rdbuf()->in_avail();
30692 _M_gcount = this->rdbuf()->sgetn(__s, std::min(__num, __n));
30693 else if (__num == -1)
30694 __err |= ios_base::eofbit;
30697 { this->_M_setstate(ios_base::badbit); }
30699 this->setstate(__err);
30704 template<typename _CharT, typename _Traits>
30705 basic_istream<_CharT, _Traits>&
30706 basic_istream<_CharT, _Traits>::
30707 putback(char_type __c)
30712 sentry __cerb(*this, true);
30715 ios_base::iostate __err = ios_base::iostate(ios_base::goodbit);
30718 const int_type __eof = traits_type::eof();
30719 __streambuf_type* __sb = this->rdbuf();
30721 || traits_type::eq_int_type(__sb->sputbackc(__c), __eof))
30722 __err |= ios_base::badbit;
30725 { this->_M_setstate(ios_base::badbit); }
30727 this->setstate(__err);
30732 template<typename _CharT, typename _Traits>
30733 basic_istream<_CharT, _Traits>&
30734 basic_istream<_CharT, _Traits>::
30740 sentry __cerb(*this, true);
30743 ios_base::iostate __err = ios_base::iostate(ios_base::goodbit);
30746 const int_type __eof = traits_type::eof();
30747 __streambuf_type* __sb = this->rdbuf();
30749 || traits_type::eq_int_type(__sb->sungetc(), __eof))
30750 __err |= ios_base::badbit;
30753 { this->_M_setstate(ios_base::badbit); }
30755 this->setstate(__err);
30760 template<typename _CharT, typename _Traits>
30762 basic_istream<_CharT, _Traits>::
30768 sentry __cerb(*this, true);
30771 ios_base::iostate __err = ios_base::iostate(ios_base::goodbit);
30774 __streambuf_type* __sb = this->rdbuf();
30777 if (__sb->pubsync() == -1)
30778 __err |= ios_base::badbit;
30784 { this->_M_setstate(ios_base::badbit); }
30786 this->setstate(__err);
30791 template<typename _CharT, typename _Traits>
30792 typename basic_istream<_CharT, _Traits>::pos_type
30793 basic_istream<_CharT, _Traits>::
30798 pos_type __ret = pos_type(-1);
30802 __ret = this->rdbuf()->pubseekoff(0, ios_base::cur,
30806 { this->_M_setstate(ios_base::badbit); }
30810 template<typename _CharT, typename _Traits>
30811 basic_istream<_CharT, _Traits>&
30812 basic_istream<_CharT, _Traits>::
30813 seekg(pos_type __pos)
30817 ios_base::iostate __err = ios_base::iostate(ios_base::goodbit);
30823 const pos_type __p = this->rdbuf()->pubseekpos(__pos,
30827 if (__p == pos_type(off_type(-1)))
30828 __err |= ios_base::failbit;
30832 { this->_M_setstate(ios_base::badbit); }
30834 this->setstate(__err);
30838 template<typename _CharT, typename _Traits>
30839 basic_istream<_CharT, _Traits>&
30840 basic_istream<_CharT, _Traits>::
30841 seekg(off_type __off, ios_base::seekdir __dir)
30845 ios_base::iostate __err = ios_base::iostate(ios_base::goodbit);
30851 const pos_type __p = this->rdbuf()->pubseekoff(__off, __dir,
30855 if (__p == pos_type(off_type(-1)))
30856 __err |= ios_base::failbit;
30860 { this->_M_setstate(ios_base::badbit); }
30862 this->setstate(__err);
30867 template<typename _CharT, typename _Traits>
30868 basic_istream<_CharT, _Traits>&
30869 operator>>(basic_istream<_CharT, _Traits>& __in, _CharT& __c)
30871 typedef basic_istream<_CharT, _Traits> __istream_type;
30872 typedef typename __istream_type::int_type __int_type;
30874 typename __istream_type::sentry __cerb(__in, false);
30877 ios_base::iostate __err = ios_base::iostate(ios_base::goodbit);
30880 const __int_type __cb = __in.rdbuf()->sbumpc();
30881 if (!_Traits::eq_int_type(__cb, _Traits::eof()))
30882 __c = _Traits::to_char_type(__cb);
30884 __err |= (ios_base::eofbit | ios_base::failbit);
30887 { __in._M_setstate(ios_base::badbit); }
30889 __in.setstate(__err);
30894 template<typename _CharT, typename _Traits>
30895 basic_istream<_CharT, _Traits>&
30896 operator>>(basic_istream<_CharT, _Traits>& __in, _CharT* __s)
30898 typedef basic_istream<_CharT, _Traits> __istream_type;
30899 typedef typename __istream_type::__streambuf_type __streambuf_type;
30900 typedef typename _Traits::int_type int_type;
30901 typedef _CharT char_type;
30902 typedef ctype<_CharT> __ctype_type;
30904 streamsize __extracted = 0;
30905 ios_base::iostate __err = ios_base::iostate(ios_base::goodbit);
30906 typename __istream_type::sentry __cerb(__in, false);
30912 streamsize __num = __in.width();
30914 __num = numeric_limits<streamsize>::max();
30916 const __ctype_type& __ct = use_facet<__ctype_type>(__in.getloc());
30918 const int_type __eof = _Traits::eof();
30919 __streambuf_type* __sb = __in.rdbuf();
30920 int_type __c = __sb->sgetc();
30922 while (__extracted < __num - 1
30923 && !_Traits::eq_int_type(__c, __eof)
30924 && !__ct.is(ctype_base::space,
30925 _Traits::to_char_type(__c)))
30927 *__s++ = _Traits::to_char_type(__c);
30929 __c = __sb->snextc();
30931 if (_Traits::eq_int_type(__c, __eof))
30932 __err |= ios_base::eofbit;
30936 *__s = char_type();
30940 { __in._M_setstate(ios_base::badbit); }
30943 __err |= ios_base::failbit;
30945 __in.setstate(__err);
30950 template<typename _CharT, typename _Traits>
30951 basic_istream<_CharT,_Traits>&
30952 ws(basic_istream<_CharT,_Traits>& __in)
30954 typedef basic_istream<_CharT, _Traits> __istream_type;
30955 typedef typename __istream_type::__streambuf_type __streambuf_type;
30956 typedef typename __istream_type::__ctype_type __ctype_type;
30957 typedef typename __istream_type::int_type __int_type;
30959 const __ctype_type& __ct = use_facet<__ctype_type>(__in.getloc());
30960 const __int_type __eof = _Traits::eof();
30961 __streambuf_type* __sb = __in.rdbuf();
30962 __int_type __c = __sb->sgetc();
30964 while (!_Traits::eq_int_type(__c, __eof)
30965 && __ct.is(ctype_base::space, _Traits::to_char_type(__c)))
30966 __c = __sb->snextc();
30968 if (_Traits::eq_int_type(__c, __eof))
30969 __in.setstate(ios_base::eofbit);
30974 template<typename _CharT, typename _Traits, typename _Alloc>
30975 basic_istream<_CharT, _Traits>&
30976 operator>>(basic_istream<_CharT, _Traits>& __in,
30977 basic_string<_CharT, _Traits, _Alloc>& __str)
30979 typedef basic_istream<_CharT, _Traits> __istream_type;
30980 typedef typename __istream_type::int_type __int_type;
30981 typedef typename __istream_type::__streambuf_type __streambuf_type;
30982 typedef typename __istream_type::__ctype_type __ctype_type;
30983 typedef basic_string<_CharT, _Traits, _Alloc> __string_type;
30984 typedef typename __string_type::size_type __size_type;
30986 __size_type __extracted = 0;
30987 ios_base::iostate __err = ios_base::iostate(ios_base::goodbit);
30988 typename __istream_type::sentry __cerb(__in, false);
30996 __size_type __len = 0;
30997 const streamsize __w = __in.width();
30998 const __size_type __n = __w > 0 ? static_cast<__size_type>(__w)
30999 : __str.max_size();
31000 const __ctype_type& __ct = use_facet<__ctype_type>(__in.getloc());
31001 const __int_type __eof = _Traits::eof();
31002 __streambuf_type* __sb = __in.rdbuf();
31003 __int_type __c = __sb->sgetc();
31005 while (__extracted < __n
31006 && !_Traits::eq_int_type(__c, __eof)
31007 && !__ct.is(ctype_base::space, _Traits::to_char_type(__c)))
31009 if (__len == sizeof(__buf) / sizeof(_CharT))
31011 __str.append(__buf, sizeof(__buf) / sizeof(_CharT));
31014 __buf[__len++] = _Traits::to_char_type(__c);
31016 __c = __sb->snextc();
31018 __str.append(__buf, __len);
31020 if (_Traits::eq_int_type(__c, __eof))
31021 __err |= ios_base::eofbit;
31029 __in._M_setstate(ios_base::badbit);
31034 __err |= ios_base::failbit;
31036 __in.setstate(__err);
31040 template<typename _CharT, typename _Traits, typename _Alloc>
31041 basic_istream<_CharT, _Traits>&
31042 getline(basic_istream<_CharT, _Traits>& __in,
31043 basic_string<_CharT, _Traits, _Alloc>& __str, _CharT __delim)
31045 typedef basic_istream<_CharT, _Traits> __istream_type;
31046 typedef typename __istream_type::int_type __int_type;
31047 typedef typename __istream_type::__streambuf_type __streambuf_type;
31048 typedef typename __istream_type::__ctype_type __ctype_type;
31049 typedef basic_string<_CharT, _Traits, _Alloc> __string_type;
31050 typedef typename __string_type::size_type __size_type;
31052 __size_type __extracted = 0;
31053 const __size_type __n = __str.max_size();
31054 ios_base::iostate __err = ios_base::iostate(ios_base::goodbit);
31055 typename __istream_type::sentry __cerb(__in, true);
31061 const __int_type __idelim = _Traits::to_int_type(__delim);
31062 const __int_type __eof = _Traits::eof();
31063 __streambuf_type* __sb = __in.rdbuf();
31064 __int_type __c = __sb->sgetc();
31066 while (__extracted < __n
31067 && !_Traits::eq_int_type(__c, __eof)
31068 && !_Traits::eq_int_type(__c, __idelim))
31070 __str += _Traits::to_char_type(__c);
31072 __c = __sb->snextc();
31075 if (_Traits::eq_int_type(__c, __eof))
31076 __err |= ios_base::eofbit;
31077 else if (_Traits::eq_int_type(__c, __idelim))
31083 __err |= ios_base::failbit;
31090 __in._M_setstate(ios_base::badbit);
31094 __err |= ios_base::failbit;
31096 __in.setstate(__err);
31104 extern template class basic_istream<char>;
31105 extern template istream& ws(istream&);
31106 extern template istream& operator>>(istream&, char&);
31107 extern template istream& operator>>(istream&, char*);
31108 extern template istream& operator>>(istream&, unsigned char&);
31109 extern template istream& operator>>(istream&, signed char&);
31110 extern template istream& operator>>(istream&, unsigned char*);
31111 extern template istream& operator>>(istream&, signed char*);
31113 extern template istream& istream::_M_extract(unsigned short&);
31114 extern template istream& istream::_M_extract(unsigned int&);
31115 extern template istream& istream::_M_extract(long&);
31116 extern template istream& istream::_M_extract(unsigned long&);
31117 extern template istream& istream::_M_extract(bool&);
31119 extern template istream& istream::_M_extract(long long&);
31120 extern template istream& istream::_M_extract(unsigned long long&);
31122 extern template istream& istream::_M_extract(float&);
31123 extern template istream& istream::_M_extract(double&);
31124 extern template istream& istream::_M_extract(long double&);
31125 extern template istream& istream::_M_extract(void*&);
31127 extern template class basic_iostream<char>;
31130 extern template class basic_istream<wchar_t>;
31131 extern template wistream& ws(wistream&);
31132 extern template wistream& operator>>(wistream&, wchar_t&);
31133 extern template wistream& operator>>(wistream&, wchar_t*);
31135 extern template wistream& wistream::_M_extract(unsigned short&);
31136 extern template wistream& wistream::_M_extract(unsigned int&);
31137 extern template wistream& wistream::_M_extract(long&);
31138 extern template wistream& wistream::_M_extract(unsigned long&);
31139 extern template wistream& wistream::_M_extract(bool&);
31141 extern template wistream& wistream::_M_extract(long long&);
31142 extern template wistream& wistream::_M_extract(unsigned long long&);
31144 extern template wistream& wistream::_M_extract(float&);
31145 extern template wistream& wistream::_M_extract(double&);
31146 extern template wistream& wistream::_M_extract(long double&);
31147 extern template wistream& wistream::_M_extract(void*&);
31149 extern template class basic_iostream<wchar_t>;
31154 # 846 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/istream" 2 3
31155 # 72 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/iterator" 2 3
31156 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stream_iterator.h" 1 3
31157 # 38 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stream_iterator.h" 3
31159 # 39 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stream_iterator.h" 3
31163 namespace std __attribute__ ((__visibility__ ("default"))) {
31166 template<typename _Tp, typename _CharT = char,
31167 typename _Traits = char_traits<_CharT>, typename _Dist = ptrdiff_t>
31168 class istream_iterator
31169 : public iterator<input_iterator_tag, _Tp, _Dist, const _Tp*, const _Tp&>
31172 typedef _CharT char_type;
31173 typedef _Traits traits_type;
31174 typedef basic_istream<_CharT, _Traits> istream_type;
31177 istream_type* _M_stream;
31184 : _M_stream(0), _M_value(), _M_ok(false) {}
31187 istream_iterator(istream_type& __s)
31191 istream_iterator(const istream_iterator& __obj)
31192 : _M_stream(__obj._M_stream), _M_value(__obj._M_value),
31206 operator->() const { return &(operator*()); }
31224 istream_iterator __tmp = *this;
31230 _M_equal(const istream_iterator& __x) const
31231 { return (_M_ok == __x._M_ok) && (!_M_ok || _M_stream == __x._M_stream); }
31237 _M_ok = (_M_stream && *_M_stream) ? true : false;
31240 *_M_stream >> _M_value;
31241 _M_ok = *_M_stream ? true : false;
31247 template<typename _Tp, typename _CharT, typename _Traits, typename _Dist>
31249 operator==(const istream_iterator<_Tp, _CharT, _Traits, _Dist>& __x,
31250 const istream_iterator<_Tp, _CharT, _Traits, _Dist>& __y)
31251 { return __x._M_equal(__y); }
31254 template <class _Tp, class _CharT, class _Traits, class _Dist>
31256 operator!=(const istream_iterator<_Tp, _CharT, _Traits, _Dist>& __x,
31257 const istream_iterator<_Tp, _CharT, _Traits, _Dist>& __y)
31258 { return !__x._M_equal(__y); }
31259 # 150 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stream_iterator.h" 3
31260 template<typename _Tp, typename _CharT = char,
31261 typename _Traits = char_traits<_CharT> >
31262 class ostream_iterator
31263 : public iterator<output_iterator_tag, void, void, void, void>
31268 typedef _CharT char_type;
31269 typedef _Traits traits_type;
31270 typedef basic_ostream<_CharT, _Traits> ostream_type;
31274 ostream_type* _M_stream;
31275 const _CharT* _M_string;
31279 ostream_iterator(ostream_type& __s) : _M_stream(&__s), _M_string(0) {}
31280 # 181 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stream_iterator.h" 3
31281 ostream_iterator(ostream_type& __s, const _CharT* __c)
31282 : _M_stream(&__s), _M_string(__c) { }
31285 ostream_iterator(const ostream_iterator& __obj)
31286 : _M_stream(__obj._M_stream), _M_string(__obj._M_string) { }
31291 operator=(const _Tp& __value)
31296 *_M_stream << __value;
31297 if (_M_string) *_M_stream << _M_string;
31315 # 73 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/iterator" 2 3
31316 # 55 "/usr/include/boost/detail/iterator.hpp" 2 3 4
31317 # 77 "/usr/include/boost/detail/iterator.hpp" 3 4
31318 namespace boost { namespace detail {
31321 template <class Iterator>
31322 struct iterator_traits
31323 : std::iterator_traits<Iterator>
31325 using std::distance;
31328 # 33 "/usr/include/boost/array.hpp" 2 3 4
31329 # 1 "/usr/include/boost/throw_exception.hpp" 1 3 4
31330 # 28 "/usr/include/boost/throw_exception.hpp" 3 4
31340 template<class E> inline void throw_exception(E const & e)
31348 # 34 "/usr/include/boost/array.hpp" 2 3 4
31357 template<class T, std::size_t N>
31364 typedef T value_type;
31365 typedef T* iterator;
31366 typedef const T* const_iterator;
31367 typedef T& reference;
31368 typedef const T& const_reference;
31369 typedef std::size_t size_type;
31370 typedef std::ptrdiff_t difference_type;
31373 iterator begin() { return elems; }
31374 const_iterator begin() const { return elems; }
31375 iterator end() { return elems+N; }
31376 const_iterator end() const { return elems+N; }
31380 typedef std::reverse_iterator<iterator> reverse_iterator;
31381 typedef std::reverse_iterator<const_iterator> const_reverse_iterator;
31382 # 79 "/usr/include/boost/array.hpp" 3 4
31383 reverse_iterator rbegin() { return reverse_iterator(end()); }
31384 const_reverse_iterator rbegin() const {
31385 return const_reverse_iterator(end());
31387 reverse_iterator rend() { return reverse_iterator(begin()); }
31388 const_reverse_iterator rend() const {
31389 return const_reverse_iterator(begin());
31393 reference operator[](size_type i)
31395 ((i < N && "out of range") ? static_cast<void> (0) : __assert_fail ("i < N && \"out of range\"", "/usr/include/boost/array.hpp", 91, __PRETTY_FUNCTION__));
31399 const_reference operator[](size_type i) const
31401 ((i < N && "out of range") ? static_cast<void> (0) : __assert_fail ("i < N && \"out of range\"", "/usr/include/boost/array.hpp", 97, __PRETTY_FUNCTION__));
31406 reference at(size_type i) { rangecheck(i); return elems[i]; }
31407 const_reference at(size_type i) const { rangecheck(i); return elems[i]; }
31415 const_reference front() const
31425 const_reference back() const
31431 static size_type size() { return N; }
31432 static bool empty() { return false; }
31433 static size_type max_size() { return N; }
31434 enum { static_size = N };
31437 void swap (array<T,N>& y) {
31438 std::swap_ranges(begin(),end(),y.begin());
31442 const T* data() const { return elems; }
31443 T* data() { return elems; }
31446 T* c_array() { return elems; }
31449 template <typename T2>
31450 array<T,N>& operator= (const array<T2,N>& rhs) {
31451 std::copy(rhs.begin(),rhs.end(), begin());
31456 void assign (const T& value)
31458 std::fill_n(begin(),size(),value);
31462 static void rangecheck (size_type i) {
31464 throw std::range_error("array<>: index out of range");
31471 template< class T >
31472 class array< T, 0 > {
31476 typedef T value_type;
31477 typedef T* iterator;
31478 typedef const T* const_iterator;
31479 typedef T& reference;
31480 typedef const T& const_reference;
31481 typedef std::size_t size_type;
31482 typedef std::ptrdiff_t difference_type;
31485 iterator begin() { return iterator( reinterpret_cast< T * >( this ) ); }
31486 const_iterator begin() const { return const_iterator( reinterpret_cast< const T * >( this ) ); }
31487 iterator end() { return begin(); }
31488 const_iterator end() const { return begin(); }
31492 typedef std::reverse_iterator<iterator> reverse_iterator;
31493 typedef std::reverse_iterator<const_iterator> const_reverse_iterator;
31494 # 202 "/usr/include/boost/array.hpp" 3 4
31495 reverse_iterator rbegin() { return reverse_iterator(end()); }
31496 const_reverse_iterator rbegin() const {
31497 return const_reverse_iterator(end());
31499 reverse_iterator rend() { return reverse_iterator(begin()); }
31500 const_reverse_iterator rend() const {
31501 return const_reverse_iterator(begin());
31505 reference operator[](size_type i)
31507 return failed_rangecheck();
31510 const_reference operator[](size_type i) const
31512 return failed_rangecheck();
31516 reference at(size_type i) { return failed_rangecheck(); }
31517 const_reference at(size_type i) const { return failed_rangecheck(); }
31522 return failed_rangecheck();
31525 const_reference front() const
31527 return failed_rangecheck();
31532 return failed_rangecheck();
31535 const_reference back() const
31537 return failed_rangecheck();
31541 static size_type size() { return 0; }
31542 static bool empty() { return true; }
31543 static size_type max_size() { return 0; }
31544 enum { static_size = 0 };
31546 void swap (array<T,0>& y) {
31550 const T* data() const { return 0; }
31551 T* data() { return 0; }
31554 T* c_array() { return 0; }
31557 template <typename T2>
31558 array<T,0>& operator= (const array<T2,0>& ) {
31563 void assign (const T& ) { }
31566 static reference failed_rangecheck () {
31567 std::range_error e("attempt to access element of an empty array");
31568 boost::throw_exception(e);
31574 static T placeholder;
31575 return placeholder;
31581 template<class T, std::size_t N>
31582 bool operator== (const array<T,N>& x, const array<T,N>& y) {
31583 return std::equal(x.begin(), x.end(), y.begin());
31585 template<class T, std::size_t N>
31586 bool operator< (const array<T,N>& x, const array<T,N>& y) {
31587 return std::lexicographical_compare(x.begin(),x.end(),y.begin(),y.end());
31589 template<class T, std::size_t N>
31590 bool operator!= (const array<T,N>& x, const array<T,N>& y) {
31593 template<class T, std::size_t N>
31594 bool operator> (const array<T,N>& x, const array<T,N>& y) {
31597 template<class T, std::size_t N>
31598 bool operator<= (const array<T,N>& x, const array<T,N>& y) {
31601 template<class T, std::size_t N>
31602 bool operator>= (const array<T,N>& x, const array<T,N>& y) {
31607 template<class T, std::size_t N>
31608 inline void swap (array<T,N>& x, array<T,N>& y) {
31613 # 3 "genfield.cxx" 2
31614 # 1 "/usr/include/boost/lexical_cast.hpp" 1 3 4
31615 # 21 "/usr/include/boost/lexical_cast.hpp" 3 4
31616 # 1 "/usr/include/boost/limits.hpp" 1 3 4
31617 # 22 "/usr/include/boost/lexical_cast.hpp" 2 3 4
31619 # 1 "/usr/include/boost/type_traits/is_pointer.hpp" 1 3 4
31620 # 24 "/usr/include/boost/type_traits/is_pointer.hpp" 3 4
31621 # 1 "/usr/include/boost/type_traits/is_member_pointer.hpp" 1 3 4
31622 # 24 "/usr/include/boost/type_traits/is_member_pointer.hpp" 3 4
31623 # 1 "/usr/include/boost/type_traits/config.hpp" 1 3 4
31624 # 16 "/usr/include/boost/type_traits/config.hpp" 3 4
31625 # 1 "/usr/include/boost/detail/workaround.hpp" 1 3 4
31626 # 17 "/usr/include/boost/type_traits/config.hpp" 2 3 4
31627 # 25 "/usr/include/boost/type_traits/is_member_pointer.hpp" 2 3 4
31631 # 1 "/usr/include/boost/type_traits/is_member_function_pointer.hpp" 1 3 4
31632 # 24 "/usr/include/boost/type_traits/is_member_function_pointer.hpp" 3 4
31633 # 1 "/usr/include/boost/type_traits/detail/is_mem_fun_pointer_impl.hpp" 1 3 4
31634 # 25 "/usr/include/boost/type_traits/detail/is_mem_fun_pointer_impl.hpp" 3 4
31636 namespace type_traits {
31638 template <typename T>
31639 struct is_mem_fun_pointer_impl
31641 static const bool value = false;
31648 template <class R, class T >
31649 struct is_mem_fun_pointer_impl<R (T::*)() > { static const bool value = true; };
31651 template <class R, class T >
31652 struct is_mem_fun_pointer_impl<R (T::*)( ...) > { static const bool value = true; };
31656 template <class R, class T >
31657 struct is_mem_fun_pointer_impl<R (T::*)() const > { static const bool value = true; };
31659 template <class R, class T >
31660 struct is_mem_fun_pointer_impl<R (T::*)() volatile > { static const bool value = true; };
31662 template <class R, class T >
31663 struct is_mem_fun_pointer_impl<R (T::*)() const volatile > { static const bool value = true; };
31666 template <class R, class T >
31667 struct is_mem_fun_pointer_impl<R (T::*)( ...) const > { static const bool value = true; };
31669 template <class R, class T >
31670 struct is_mem_fun_pointer_impl<R (T::*)( ...) volatile > { static const bool value = true; };
31672 template <class R, class T >
31673 struct is_mem_fun_pointer_impl<R (T::*)( ...) const volatile > { static const bool value = true; };
31676 template <class R, class T , class T0>
31677 struct is_mem_fun_pointer_impl<R (T::*)( T0) > { static const bool value = true; };
31679 template <class R, class T , class T0>
31680 struct is_mem_fun_pointer_impl<R (T::*)( T0 ...) > { static const bool value = true; };
31684 template <class R, class T , class T0>
31685 struct is_mem_fun_pointer_impl<R (T::*)( T0) const > { static const bool value = true; };
31687 template <class R, class T , class T0>
31688 struct is_mem_fun_pointer_impl<R (T::*)( T0) volatile > { static const bool value = true; };
31690 template <class R, class T , class T0>
31691 struct is_mem_fun_pointer_impl<R (T::*)( T0) const volatile > { static const bool value = true; };
31694 template <class R, class T , class T0>
31695 struct is_mem_fun_pointer_impl<R (T::*)( T0 ...) const > { static const bool value = true; };
31697 template <class R, class T , class T0>
31698 struct is_mem_fun_pointer_impl<R (T::*)( T0 ...) volatile > { static const bool value = true; };
31700 template <class R, class T , class T0>
31701 struct is_mem_fun_pointer_impl<R (T::*)( T0 ...) const volatile > { static const bool value = true; };
31704 template <class R, class T , class T0 , class T1>
31705 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1) > { static const bool value = true; };
31707 template <class R, class T , class T0 , class T1>
31708 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 ...) > { static const bool value = true; };
31712 template <class R, class T , class T0 , class T1>
31713 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1) const > { static const bool value = true; };
31715 template <class R, class T , class T0 , class T1>
31716 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1) volatile > { static const bool value = true; };
31718 template <class R, class T , class T0 , class T1>
31719 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1) const volatile > { static const bool value = true; };
31722 template <class R, class T , class T0 , class T1>
31723 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 ...) const > { static const bool value = true; };
31725 template <class R, class T , class T0 , class T1>
31726 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 ...) volatile > { static const bool value = true; };
31728 template <class R, class T , class T0 , class T1>
31729 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 ...) const volatile > { static const bool value = true; };
31732 template <class R, class T , class T0 , class T1 , class T2>
31733 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2) > { static const bool value = true; };
31735 template <class R, class T , class T0 , class T1 , class T2>
31736 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 ...) > { static const bool value = true; };
31740 template <class R, class T , class T0 , class T1 , class T2>
31741 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2) const > { static const bool value = true; };
31743 template <class R, class T , class T0 , class T1 , class T2>
31744 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2) volatile > { static const bool value = true; };
31746 template <class R, class T , class T0 , class T1 , class T2>
31747 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2) const volatile > { static const bool value = true; };
31750 template <class R, class T , class T0 , class T1 , class T2>
31751 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 ...) const > { static const bool value = true; };
31753 template <class R, class T , class T0 , class T1 , class T2>
31754 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 ...) volatile > { static const bool value = true; };
31756 template <class R, class T , class T0 , class T1 , class T2>
31757 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 ...) const volatile > { static const bool value = true; };
31760 template <class R, class T , class T0 , class T1 , class T2 , class T3>
31761 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3) > { static const bool value = true; };
31763 template <class R, class T , class T0 , class T1 , class T2 , class T3>
31764 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 ...) > { static const bool value = true; };
31768 template <class R, class T , class T0 , class T1 , class T2 , class T3>
31769 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3) const > { static const bool value = true; };
31771 template <class R, class T , class T0 , class T1 , class T2 , class T3>
31772 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3) volatile > { static const bool value = true; };
31774 template <class R, class T , class T0 , class T1 , class T2 , class T3>
31775 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3) const volatile > { static const bool value = true; };
31778 template <class R, class T , class T0 , class T1 , class T2 , class T3>
31779 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 ...) const > { static const bool value = true; };
31781 template <class R, class T , class T0 , class T1 , class T2 , class T3>
31782 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 ...) volatile > { static const bool value = true; };
31784 template <class R, class T , class T0 , class T1 , class T2 , class T3>
31785 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 ...) const volatile > { static const bool value = true; };
31788 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4>
31789 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4) > { static const bool value = true; };
31791 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4>
31792 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 ...) > { static const bool value = true; };
31796 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4>
31797 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4) const > { static const bool value = true; };
31799 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4>
31800 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4) volatile > { static const bool value = true; };
31802 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4>
31803 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4) const volatile > { static const bool value = true; };
31806 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4>
31807 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 ...) const > { static const bool value = true; };
31809 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4>
31810 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 ...) volatile > { static const bool value = true; };
31812 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4>
31813 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 ...) const volatile > { static const bool value = true; };
31816 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
31817 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5) > { static const bool value = true; };
31819 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
31820 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 ...) > { static const bool value = true; };
31824 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
31825 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5) const > { static const bool value = true; };
31827 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
31828 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5) volatile > { static const bool value = true; };
31830 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
31831 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5) const volatile > { static const bool value = true; };
31834 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
31835 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 ...) const > { static const bool value = true; };
31837 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
31838 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 ...) volatile > { static const bool value = true; };
31840 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
31841 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 ...) const volatile > { static const bool value = true; };
31844 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
31845 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6) > { static const bool value = true; };
31847 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
31848 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...) > { static const bool value = true; };
31852 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
31853 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6) const > { static const bool value = true; };
31855 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
31856 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6) volatile > { static const bool value = true; };
31858 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
31859 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6) const volatile > { static const bool value = true; };
31862 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
31863 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...) const > { static const bool value = true; };
31865 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
31866 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...) volatile > { static const bool value = true; };
31868 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
31869 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...) const volatile > { static const bool value = true; };
31872 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
31873 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7) > { static const bool value = true; };
31875 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
31876 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...) > { static const bool value = true; };
31880 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
31881 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7) const > { static const bool value = true; };
31883 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
31884 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7) volatile > { static const bool value = true; };
31886 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
31887 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7) const volatile > { static const bool value = true; };
31890 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
31891 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...) const > { static const bool value = true; };
31893 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
31894 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...) volatile > { static const bool value = true; };
31896 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
31897 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...) const volatile > { static const bool value = true; };
31900 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
31901 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8) > { static const bool value = true; };
31903 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
31904 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...) > { static const bool value = true; };
31908 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
31909 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8) const > { static const bool value = true; };
31911 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
31912 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8) volatile > { static const bool value = true; };
31914 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
31915 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8) const volatile > { static const bool value = true; };
31918 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
31919 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...) const > { static const bool value = true; };
31921 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
31922 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...) volatile > { static const bool value = true; };
31924 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
31925 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...) const volatile > { static const bool value = true; };
31928 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
31929 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9) > { static const bool value = true; };
31931 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
31932 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...) > { static const bool value = true; };
31936 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
31937 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9) const > { static const bool value = true; };
31939 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
31940 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9) volatile > { static const bool value = true; };
31942 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
31943 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9) const volatile > { static const bool value = true; };
31946 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
31947 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...) const > { static const bool value = true; };
31949 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
31950 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...) volatile > { static const bool value = true; };
31952 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
31953 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...) const volatile > { static const bool value = true; };
31956 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
31957 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10) > { static const bool value = true; };
31959 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
31960 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...) > { static const bool value = true; };
31964 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
31965 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10) const > { static const bool value = true; };
31967 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
31968 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10) volatile > { static const bool value = true; };
31970 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
31971 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10) const volatile > { static const bool value = true; };
31974 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
31975 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...) const > { static const bool value = true; };
31977 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
31978 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...) volatile > { static const bool value = true; };
31980 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
31981 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...) const volatile > { static const bool value = true; };
31984 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
31985 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11) > { static const bool value = true; };
31987 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
31988 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...) > { static const bool value = true; };
31992 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
31993 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11) const > { static const bool value = true; };
31995 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
31996 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11) volatile > { static const bool value = true; };
31998 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
31999 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11) const volatile > { static const bool value = true; };
32002 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
32003 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...) const > { static const bool value = true; };
32005 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
32006 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...) volatile > { static const bool value = true; };
32008 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
32009 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...) const volatile > { static const bool value = true; };
32012 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12>
32013 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12) > { static const bool value = true; };
32015 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12>
32016 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...) > { static const bool value = true; };
32020 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12>
32021 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12) const > { static const bool value = true; };
32023 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12>
32024 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12) volatile > { static const bool value = true; };
32026 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12>
32027 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12) const volatile > { static const bool value = true; };
32030 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12>
32031 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...) const > { static const bool value = true; };
32033 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12>
32034 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...) volatile > { static const bool value = true; };
32036 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12>
32037 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...) const volatile > { static const bool value = true; };
32040 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13>
32041 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13) > { static const bool value = true; };
32043 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13>
32044 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...) > { static const bool value = true; };
32048 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13>
32049 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13) const > { static const bool value = true; };
32051 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13>
32052 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13) volatile > { static const bool value = true; };
32054 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13>
32055 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13) const volatile > { static const bool value = true; };
32058 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13>
32059 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...) const > { static const bool value = true; };
32061 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13>
32062 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...) volatile > { static const bool value = true; };
32064 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13>
32065 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...) const volatile > { static const bool value = true; };
32068 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14>
32069 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14) > { static const bool value = true; };
32071 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14>
32072 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...) > { static const bool value = true; };
32076 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14>
32077 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14) const > { static const bool value = true; };
32079 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14>
32080 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14) volatile > { static const bool value = true; };
32082 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14>
32083 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14) const volatile > { static const bool value = true; };
32086 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14>
32087 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...) const > { static const bool value = true; };
32089 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14>
32090 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...) volatile > { static const bool value = true; };
32092 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14>
32093 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...) const volatile > { static const bool value = true; };
32096 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15>
32097 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15) > { static const bool value = true; };
32099 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15>
32100 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...) > { static const bool value = true; };
32104 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15>
32105 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15) const > { static const bool value = true; };
32107 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15>
32108 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15) volatile > { static const bool value = true; };
32110 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15>
32111 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15) const volatile > { static const bool value = true; };
32114 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15>
32115 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...) const > { static const bool value = true; };
32117 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15>
32118 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...) volatile > { static const bool value = true; };
32120 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15>
32121 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...) const volatile > { static const bool value = true; };
32124 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16>
32125 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16) > { static const bool value = true; };
32127 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16>
32128 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...) > { static const bool value = true; };
32132 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16>
32133 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16) const > { static const bool value = true; };
32135 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16>
32136 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16) volatile > { static const bool value = true; };
32138 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16>
32139 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16) const volatile > { static const bool value = true; };
32142 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16>
32143 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...) const > { static const bool value = true; };
32145 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16>
32146 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...) volatile > { static const bool value = true; };
32148 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16>
32149 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...) const volatile > { static const bool value = true; };
32152 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17>
32153 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17) > { static const bool value = true; };
32155 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17>
32156 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...) > { static const bool value = true; };
32160 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17>
32161 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17) const > { static const bool value = true; };
32163 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17>
32164 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17) volatile > { static const bool value = true; };
32166 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17>
32167 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17) const volatile > { static const bool value = true; };
32170 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17>
32171 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...) const > { static const bool value = true; };
32173 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17>
32174 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...) volatile > { static const bool value = true; };
32176 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17>
32177 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...) const volatile > { static const bool value = true; };
32180 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18>
32181 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18) > { static const bool value = true; };
32183 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18>
32184 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...) > { static const bool value = true; };
32188 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18>
32189 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18) const > { static const bool value = true; };
32191 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18>
32192 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18) volatile > { static const bool value = true; };
32194 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18>
32195 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18) const volatile > { static const bool value = true; };
32198 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18>
32199 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...) const > { static const bool value = true; };
32201 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18>
32202 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...) volatile > { static const bool value = true; };
32204 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18>
32205 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...) const volatile > { static const bool value = true; };
32208 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19>
32209 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19) > { static const bool value = true; };
32211 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19>
32212 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...) > { static const bool value = true; };
32216 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19>
32217 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19) const > { static const bool value = true; };
32219 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19>
32220 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19) volatile > { static const bool value = true; };
32222 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19>
32223 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19) const volatile > { static const bool value = true; };
32226 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19>
32227 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...) const > { static const bool value = true; };
32229 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19>
32230 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...) volatile > { static const bool value = true; };
32232 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19>
32233 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...) const volatile > { static const bool value = true; };
32236 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20>
32237 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20) > { static const bool value = true; };
32239 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20>
32240 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...) > { static const bool value = true; };
32244 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20>
32245 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20) const > { static const bool value = true; };
32247 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20>
32248 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20) volatile > { static const bool value = true; };
32250 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20>
32251 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20) const volatile > { static const bool value = true; };
32254 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20>
32255 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...) const > { static const bool value = true; };
32257 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20>
32258 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...) volatile > { static const bool value = true; };
32260 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20>
32261 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...) const volatile > { static const bool value = true; };
32264 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21>
32265 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21) > { static const bool value = true; };
32267 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21>
32268 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...) > { static const bool value = true; };
32272 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21>
32273 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21) const > { static const bool value = true; };
32275 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21>
32276 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21) volatile > { static const bool value = true; };
32278 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21>
32279 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21) const volatile > { static const bool value = true; };
32282 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21>
32283 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...) const > { static const bool value = true; };
32285 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21>
32286 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...) volatile > { static const bool value = true; };
32288 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21>
32289 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...) const volatile > { static const bool value = true; };
32292 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22>
32293 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22) > { static const bool value = true; };
32295 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22>
32296 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...) > { static const bool value = true; };
32300 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22>
32301 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22) const > { static const bool value = true; };
32303 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22>
32304 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22) volatile > { static const bool value = true; };
32306 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22>
32307 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22) const volatile > { static const bool value = true; };
32310 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22>
32311 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...) const > { static const bool value = true; };
32313 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22>
32314 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...) volatile > { static const bool value = true; };
32316 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22>
32317 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...) const volatile > { static const bool value = true; };
32320 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23>
32321 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23) > { static const bool value = true; };
32323 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23>
32324 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...) > { static const bool value = true; };
32328 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23>
32329 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23) const > { static const bool value = true; };
32331 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23>
32332 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23) volatile > { static const bool value = true; };
32334 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23>
32335 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23) const volatile > { static const bool value = true; };
32338 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23>
32339 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...) const > { static const bool value = true; };
32341 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23>
32342 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...) volatile > { static const bool value = true; };
32344 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23>
32345 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...) const volatile > { static const bool value = true; };
32348 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24>
32349 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24) > { static const bool value = true; };
32351 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24>
32352 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...) > { static const bool value = true; };
32356 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24>
32357 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24) const > { static const bool value = true; };
32359 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24>
32360 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24) volatile > { static const bool value = true; };
32362 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24>
32363 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24) const volatile > { static const bool value = true; };
32366 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24>
32367 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...) const > { static const bool value = true; };
32369 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24>
32370 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...) volatile > { static const bool value = true; };
32372 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24>
32373 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...) const volatile > { static const bool value = true; };
32374 # 776 "/usr/include/boost/type_traits/detail/is_mem_fun_pointer_impl.hpp" 3 4
32377 # 25 "/usr/include/boost/type_traits/is_member_function_pointer.hpp" 2 3 4
32378 # 35 "/usr/include/boost/type_traits/is_member_function_pointer.hpp" 3 4
32379 # 1 "/usr/include/boost/type_traits/detail/bool_trait_def.hpp" 1 3 4
32380 # 14 "/usr/include/boost/type_traits/detail/bool_trait_def.hpp" 3 4
32381 # 1 "/usr/include/boost/type_traits/detail/template_arity_spec.hpp" 1 3 4
32382 # 10 "/usr/include/boost/type_traits/detail/template_arity_spec.hpp" 3 4
32383 # 1 "/usr/include/boost/mpl/int.hpp" 1 3 4
32384 # 17 "/usr/include/boost/mpl/int.hpp" 3 4
32385 # 1 "/usr/include/boost/mpl/int_fwd.hpp" 1 3 4
32386 # 17 "/usr/include/boost/mpl/int_fwd.hpp" 3 4
32387 # 1 "/usr/include/boost/mpl/aux_/adl_barrier.hpp" 1 3 4
32388 # 17 "/usr/include/boost/mpl/aux_/adl_barrier.hpp" 3 4
32389 # 1 "/usr/include/boost/mpl/aux_/config/adl.hpp" 1 3 4
32390 # 17 "/usr/include/boost/mpl/aux_/config/adl.hpp" 3 4
32391 # 1 "/usr/include/boost/mpl/aux_/config/msvc.hpp" 1 3 4
32392 # 18 "/usr/include/boost/mpl/aux_/config/adl.hpp" 2 3 4
32393 # 1 "/usr/include/boost/mpl/aux_/config/intel.hpp" 1 3 4
32394 # 19 "/usr/include/boost/mpl/aux_/config/adl.hpp" 2 3 4
32395 # 1 "/usr/include/boost/mpl/aux_/config/gcc.hpp" 1 3 4
32396 # 20 "/usr/include/boost/mpl/aux_/config/adl.hpp" 2 3 4
32397 # 1 "/usr/include/boost/mpl/aux_/config/workaround.hpp" 1 3 4
32398 # 21 "/usr/include/boost/mpl/aux_/config/adl.hpp" 2 3 4
32399 # 18 "/usr/include/boost/mpl/aux_/adl_barrier.hpp" 2 3 4
32400 # 33 "/usr/include/boost/mpl/aux_/adl_barrier.hpp" 3 4
32401 namespace mpl_ { namespace aux {} }
32402 namespace boost { namespace mpl { using namespace mpl_;
32403 namespace aux { using namespace mpl_::aux; }
32405 # 18 "/usr/include/boost/mpl/int_fwd.hpp" 2 3 4
32406 # 1 "/usr/include/boost/mpl/aux_/nttp_decl.hpp" 1 3 4
32407 # 17 "/usr/include/boost/mpl/aux_/nttp_decl.hpp" 3 4
32408 # 1 "/usr/include/boost/mpl/aux_/config/nttp.hpp" 1 3 4
32409 # 18 "/usr/include/boost/mpl/aux_/nttp_decl.hpp" 2 3 4
32410 # 19 "/usr/include/boost/mpl/int_fwd.hpp" 2 3 4
32414 template< int N > struct int_;
32417 namespace boost { namespace mpl { using ::mpl_::int_; } }
32418 # 18 "/usr/include/boost/mpl/int.hpp" 2 3 4
32421 # 1 "/usr/include/boost/mpl/aux_/integral_wrapper.hpp" 1 3 4
32422 # 16 "/usr/include/boost/mpl/aux_/integral_wrapper.hpp" 3 4
32423 # 1 "/usr/include/boost/mpl/integral_c_tag.hpp" 1 3 4
32424 # 19 "/usr/include/boost/mpl/integral_c_tag.hpp" 3 4
32425 # 1 "/usr/include/boost/mpl/aux_/config/static_constant.hpp" 1 3 4
32426 # 20 "/usr/include/boost/mpl/integral_c_tag.hpp" 2 3 4
32429 struct integral_c_tag { static const int value = 0; };
32431 namespace boost { namespace mpl { using ::mpl_::integral_c_tag; } }
32432 # 17 "/usr/include/boost/mpl/aux_/integral_wrapper.hpp" 2 3 4
32433 # 1 "/usr/include/boost/mpl/aux_/static_cast.hpp" 1 3 4
32434 # 18 "/usr/include/boost/mpl/aux_/integral_wrapper.hpp" 2 3 4
32439 # 1 "/usr/include/boost/preprocessor/cat.hpp" 1 3 4
32440 # 17 "/usr/include/boost/preprocessor/cat.hpp" 3 4
32441 # 1 "/usr/include/boost/preprocessor/config/config.hpp" 1 3 4
32442 # 18 "/usr/include/boost/preprocessor/cat.hpp" 2 3 4
32443 # 23 "/usr/include/boost/mpl/aux_/integral_wrapper.hpp" 2 3 4
32444 # 40 "/usr/include/boost/mpl/aux_/integral_wrapper.hpp" 3 4
32450 static const int value = N;
32458 typedef int value_type;
32459 typedef integral_c_tag tag;
32460 # 72 "/usr/include/boost/mpl/aux_/integral_wrapper.hpp" 3 4
32461 typedef mpl_::int_< static_cast<int>((value + 1)) > next;
32462 typedef mpl_::int_< static_cast<int>((value - 1)) > prior;
32469 operator int() const { return static_cast<int>(this->value); }
32474 int const mpl_::int_< N >::value;
32478 # 21 "/usr/include/boost/mpl/int.hpp" 2 3 4
32479 # 11 "/usr/include/boost/type_traits/detail/template_arity_spec.hpp" 2 3 4
32480 # 1 "/usr/include/boost/mpl/aux_/template_arity_fwd.hpp" 1 3 4
32481 # 17 "/usr/include/boost/mpl/aux_/template_arity_fwd.hpp" 3 4
32482 namespace boost { namespace mpl { namespace aux {
32484 template< typename F > struct template_arity;
32487 # 12 "/usr/include/boost/type_traits/detail/template_arity_spec.hpp" 2 3 4
32488 # 1 "/usr/include/boost/mpl/aux_/preprocessor/params.hpp" 1 3 4
32489 # 17 "/usr/include/boost/mpl/aux_/preprocessor/params.hpp" 3 4
32490 # 1 "/usr/include/boost/mpl/aux_/config/preprocessor.hpp" 1 3 4
32491 # 18 "/usr/include/boost/mpl/aux_/preprocessor/params.hpp" 2 3 4
32492 # 45 "/usr/include/boost/mpl/aux_/preprocessor/params.hpp" 3 4
32493 # 1 "/usr/include/boost/preprocessor/comma_if.hpp" 1 3 4
32494 # 15 "/usr/include/boost/preprocessor/comma_if.hpp" 3 4
32495 # 1 "/usr/include/boost/preprocessor/punctuation/comma_if.hpp" 1 3 4
32496 # 18 "/usr/include/boost/preprocessor/punctuation/comma_if.hpp" 3 4
32497 # 1 "/usr/include/boost/preprocessor/control/if.hpp" 1 3 4
32498 # 18 "/usr/include/boost/preprocessor/control/if.hpp" 3 4
32499 # 1 "/usr/include/boost/preprocessor/control/iif.hpp" 1 3 4
32500 # 19 "/usr/include/boost/preprocessor/control/if.hpp" 2 3 4
32501 # 1 "/usr/include/boost/preprocessor/logical/bool.hpp" 1 3 4
32502 # 20 "/usr/include/boost/preprocessor/control/if.hpp" 2 3 4
32503 # 19 "/usr/include/boost/preprocessor/punctuation/comma_if.hpp" 2 3 4
32504 # 1 "/usr/include/boost/preprocessor/facilities/empty.hpp" 1 3 4
32505 # 20 "/usr/include/boost/preprocessor/punctuation/comma_if.hpp" 2 3 4
32506 # 1 "/usr/include/boost/preprocessor/punctuation/comma.hpp" 1 3 4
32507 # 21 "/usr/include/boost/preprocessor/punctuation/comma_if.hpp" 2 3 4
32508 # 16 "/usr/include/boost/preprocessor/comma_if.hpp" 2 3 4
32509 # 46 "/usr/include/boost/mpl/aux_/preprocessor/params.hpp" 2 3 4
32510 # 1 "/usr/include/boost/preprocessor/repeat.hpp" 1 3 4
32511 # 15 "/usr/include/boost/preprocessor/repeat.hpp" 3 4
32512 # 1 "/usr/include/boost/preprocessor/repetition/repeat.hpp" 1 3 4
32513 # 19 "/usr/include/boost/preprocessor/repetition/repeat.hpp" 3 4
32514 # 1 "/usr/include/boost/preprocessor/debug/error.hpp" 1 3 4
32515 # 20 "/usr/include/boost/preprocessor/repetition/repeat.hpp" 2 3 4
32516 # 1 "/usr/include/boost/preprocessor/detail/auto_rec.hpp" 1 3 4
32517 # 21 "/usr/include/boost/preprocessor/repetition/repeat.hpp" 2 3 4
32518 # 1 "/usr/include/boost/preprocessor/tuple/eat.hpp" 1 3 4
32519 # 22 "/usr/include/boost/preprocessor/repetition/repeat.hpp" 2 3 4
32520 # 16 "/usr/include/boost/preprocessor/repeat.hpp" 2 3 4
32521 # 47 "/usr/include/boost/mpl/aux_/preprocessor/params.hpp" 2 3 4
32522 # 1 "/usr/include/boost/preprocessor/inc.hpp" 1 3 4
32523 # 15 "/usr/include/boost/preprocessor/inc.hpp" 3 4
32524 # 1 "/usr/include/boost/preprocessor/arithmetic/inc.hpp" 1 3 4
32525 # 16 "/usr/include/boost/preprocessor/inc.hpp" 2 3 4
32526 # 48 "/usr/include/boost/mpl/aux_/preprocessor/params.hpp" 2 3 4
32527 # 13 "/usr/include/boost/type_traits/detail/template_arity_spec.hpp" 2 3 4
32528 # 1 "/usr/include/boost/mpl/aux_/config/lambda.hpp" 1 3 4
32529 # 17 "/usr/include/boost/mpl/aux_/config/lambda.hpp" 3 4
32530 # 1 "/usr/include/boost/mpl/aux_/config/ttp.hpp" 1 3 4
32531 # 18 "/usr/include/boost/mpl/aux_/config/lambda.hpp" 2 3 4
32532 # 1 "/usr/include/boost/mpl/aux_/config/ctps.hpp" 1 3 4
32533 # 19 "/usr/include/boost/mpl/aux_/config/lambda.hpp" 2 3 4
32534 # 14 "/usr/include/boost/type_traits/detail/template_arity_spec.hpp" 2 3 4
32535 # 1 "/usr/include/boost/mpl/aux_/config/overload_resolution.hpp" 1 3 4
32536 # 15 "/usr/include/boost/type_traits/detail/template_arity_spec.hpp" 2 3 4
32537 # 15 "/usr/include/boost/type_traits/detail/bool_trait_def.hpp" 2 3 4
32538 # 1 "/usr/include/boost/type_traits/integral_constant.hpp" 1 3 4
32539 # 10 "/usr/include/boost/type_traits/integral_constant.hpp" 3 4
32540 # 1 "/usr/include/boost/mpl/bool.hpp" 1 3 4
32541 # 17 "/usr/include/boost/mpl/bool.hpp" 3 4
32542 # 1 "/usr/include/boost/mpl/bool_fwd.hpp" 1 3 4
32543 # 19 "/usr/include/boost/mpl/bool_fwd.hpp" 3 4
32546 template< bool C_ > struct bool_;
32549 typedef bool_<true> true_;
32550 typedef bool_<false> false_;
32554 namespace boost { namespace mpl { using ::mpl_::bool_; } }
32555 namespace boost { namespace mpl { using ::mpl_::true_; } }
32556 namespace boost { namespace mpl { using ::mpl_::false_; } }
32557 # 18 "/usr/include/boost/mpl/bool.hpp" 2 3 4
32563 template< bool C_ > struct bool_
32565 static const bool value = C_;
32566 typedef integral_c_tag tag;
32567 typedef bool_ type;
32568 typedef bool value_type;
32569 operator bool() const { return this->value; }
32573 template< bool C_ >
32574 bool const bool_<C_>::value;
32578 # 11 "/usr/include/boost/type_traits/integral_constant.hpp" 2 3 4
32579 # 1 "/usr/include/boost/mpl/integral_c.hpp" 1 3 4
32580 # 17 "/usr/include/boost/mpl/integral_c.hpp" 3 4
32581 # 1 "/usr/include/boost/mpl/integral_c_fwd.hpp" 1 3 4
32582 # 20 "/usr/include/boost/mpl/integral_c_fwd.hpp" 3 4
32589 template< typename T, T N > struct integral_c;
32593 namespace boost { namespace mpl { using ::mpl_::integral_c; } }
32594 # 18 "/usr/include/boost/mpl/integral_c.hpp" 2 3 4
32595 # 32 "/usr/include/boost/mpl/integral_c.hpp" 3 4
32596 # 1 "/usr/include/boost/mpl/aux_/integral_wrapper.hpp" 1 3 4
32597 # 40 "/usr/include/boost/mpl/aux_/integral_wrapper.hpp" 3 4
32600 template< typename T, T N >
32603 static const T value = N;
32609 typedef integral_c type;
32611 typedef T value_type;
32612 typedef integral_c_tag tag;
32613 # 72 "/usr/include/boost/mpl/aux_/integral_wrapper.hpp" 3 4
32614 typedef integral_c< T, static_cast<T>((value + 1)) > next;
32615 typedef integral_c< T, static_cast<T>((value - 1)) > prior;
32622 operator T() const { return static_cast<T>(this->value); }
32626 template< typename T, T N >
32627 T const integral_c< T, N >::value;
32631 # 33 "/usr/include/boost/mpl/integral_c.hpp" 2 3 4
32639 struct integral_c<bool, C>
32641 static const bool value = C;
32642 typedef integral_c_tag tag;
32643 typedef integral_c type;
32644 typedef bool value_type;
32645 operator bool() const { return this->value; }
32648 # 12 "/usr/include/boost/type_traits/integral_constant.hpp" 2 3 4
32655 template <class T, T val>
32657 struct integral_constant : public mpl::integral_c<T, val>
32659 typedef integral_constant<T,val> type;
32662 template<> struct integral_constant<bool,true> : public mpl::true_
32671 typedef integral_constant<bool,true> type;
32673 template<> struct integral_constant<bool,false> : public mpl::false_
32682 typedef integral_constant<bool,false> type;
32685 typedef integral_constant<bool,true> true_type;
32686 typedef integral_constant<bool,false> false_type;
32689 # 16 "/usr/include/boost/type_traits/detail/bool_trait_def.hpp" 2 3 4
32691 # 1 "/usr/include/boost/mpl/aux_/lambda_support.hpp" 1 3 4
32692 # 18 "/usr/include/boost/type_traits/detail/bool_trait_def.hpp" 2 3 4
32693 # 36 "/usr/include/boost/type_traits/is_member_function_pointer.hpp" 2 3 4
32699 template< typename T > struct is_member_function_pointer : ::boost::integral_constant<bool,::boost::type_traits::is_mem_fun_pointer_impl<T>::value> { };
32700 # 122 "/usr/include/boost/type_traits/is_member_function_pointer.hpp" 3 4
32703 # 1 "/usr/include/boost/type_traits/detail/bool_trait_undef.hpp" 1 3 4
32704 # 125 "/usr/include/boost/type_traits/is_member_function_pointer.hpp" 2 3 4
32705 # 29 "/usr/include/boost/type_traits/is_member_pointer.hpp" 2 3 4
32706 # 39 "/usr/include/boost/type_traits/is_member_pointer.hpp" 3 4
32707 # 1 "/usr/include/boost/type_traits/detail/bool_trait_def.hpp" 1 3 4
32708 # 14 "/usr/include/boost/type_traits/detail/bool_trait_def.hpp" 3 4
32709 # 1 "/usr/include/boost/type_traits/detail/template_arity_spec.hpp" 1 3 4
32710 # 15 "/usr/include/boost/type_traits/detail/bool_trait_def.hpp" 2 3 4
32711 # 40 "/usr/include/boost/type_traits/is_member_pointer.hpp" 2 3 4
32720 template< typename T > struct is_member_pointer : ::boost::integral_constant<bool,::boost::is_member_function_pointer<T>::value> { };
32721 template< typename T, typename U > struct is_member_pointer< U T::* > : ::boost::integral_constant<bool,true> { };
32722 # 104 "/usr/include/boost/type_traits/is_member_pointer.hpp" 3 4
32725 # 1 "/usr/include/boost/type_traits/detail/bool_trait_undef.hpp" 1 3 4
32726 # 107 "/usr/include/boost/type_traits/is_member_pointer.hpp" 2 3 4
32727 # 25 "/usr/include/boost/type_traits/is_pointer.hpp" 2 3 4
32728 # 1 "/usr/include/boost/type_traits/detail/ice_and.hpp" 1 3 4
32729 # 14 "/usr/include/boost/type_traits/detail/ice_and.hpp" 3 4
32731 namespace type_traits {
32733 template <bool b1, bool b2, bool b3 = true, bool b4 = true, bool b5 = true, bool b6 = true, bool b7 = true>
32736 template <bool b1, bool b2, bool b3, bool b4, bool b5, bool b6, bool b7>
32739 static const bool value = false;
32743 struct ice_and<true, true, true, true, true, true, true>
32745 static const bool value = true;
32750 # 26 "/usr/include/boost/type_traits/is_pointer.hpp" 2 3 4
32751 # 1 "/usr/include/boost/type_traits/detail/ice_not.hpp" 1 3 4
32752 # 13 "/usr/include/boost/type_traits/detail/ice_not.hpp" 3 4
32754 namespace type_traits {
32759 static const bool value = true;
32763 struct ice_not<true>
32765 static const bool value = false;
32770 # 27 "/usr/include/boost/type_traits/is_pointer.hpp" 2 3 4
32771 # 38 "/usr/include/boost/type_traits/is_pointer.hpp" 3 4
32772 # 1 "/usr/include/boost/type_traits/detail/bool_trait_def.hpp" 1 3 4
32773 # 14 "/usr/include/boost/type_traits/detail/bool_trait_def.hpp" 3 4
32774 # 1 "/usr/include/boost/type_traits/detail/template_arity_spec.hpp" 1 3 4
32775 # 15 "/usr/include/boost/type_traits/detail/bool_trait_def.hpp" 2 3 4
32776 # 39 "/usr/include/boost/type_traits/is_pointer.hpp" 2 3 4
32784 template< typename T > struct is_pointer_helper
32786 static const bool value = false;
32788 # 58 "/usr/include/boost/type_traits/is_pointer.hpp" 3 4
32789 template< typename T > struct is_pointer_helper<T*> { static const bool value = true; };
32790 template< typename T > struct is_pointer_helper<T* const> { static const bool value = true; };
32791 template< typename T > struct is_pointer_helper<T* volatile> { static const bool value = true; };
32792 template< typename T > struct is_pointer_helper<T* const volatile> { static const bool value = true; };
32796 template< typename T >
32797 struct is_pointer_impl
32799 static const bool value = (::boost::type_traits::ice_and< ::boost::detail::is_pointer_helper<T>::value , ::boost::type_traits::ice_not< ::boost::is_member_pointer<T>::value >::value >::value);
32811 template< typename T > struct is_pointer : ::boost::integral_constant<bool,::boost::detail::is_pointer_impl<T>::value> { };
32812 # 145 "/usr/include/boost/type_traits/is_pointer.hpp" 3 4
32815 # 1 "/usr/include/boost/type_traits/detail/bool_trait_undef.hpp" 1 3 4
32816 # 148 "/usr/include/boost/type_traits/is_pointer.hpp" 2 3 4
32817 # 24 "/usr/include/boost/lexical_cast.hpp" 2 3 4
32822 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/sstream" 1 3 4
32823 # 42 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/sstream" 3 4
32825 # 43 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/sstream" 3
32830 namespace std __attribute__ ((__visibility__ ("default"))) {
32831 # 61 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/sstream" 3
32832 template<typename _CharT, typename _Traits, typename _Alloc>
32833 class basic_stringbuf : public basic_streambuf<_CharT, _Traits>
32837 typedef _CharT char_type;
32838 typedef _Traits traits_type;
32841 typedef _Alloc allocator_type;
32842 typedef typename traits_type::int_type int_type;
32843 typedef typename traits_type::pos_type pos_type;
32844 typedef typename traits_type::off_type off_type;
32846 typedef basic_streambuf<char_type, traits_type> __streambuf_type;
32847 typedef basic_string<char_type, _Traits, _Alloc> __string_type;
32848 typedef typename __string_type::size_type __size_type;
32856 ios_base::openmode _M_mode;
32859 __string_type _M_string;
32862 # 99 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/sstream" 3
32864 basic_stringbuf(ios_base::openmode __mode = ios_base::in | ios_base::out)
32865 : __streambuf_type(), _M_mode(__mode), _M_string()
32867 # 112 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/sstream" 3
32869 basic_stringbuf(const __string_type& __str,
32870 ios_base::openmode __mode = ios_base::in | ios_base::out)
32871 : __streambuf_type(), _M_mode(), _M_string(__str.data(), __str.size())
32872 { _M_stringbuf_init(__mode); }
32873 # 127 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/sstream" 3
32877 __string_type __ret;
32881 if (this->pptr() > this->egptr())
32882 __ret = __string_type(this->pbase(), this->pptr());
32884 __ret = __string_type(this->pbase(), this->egptr());
32890 # 151 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/sstream" 3
32892 str(const __string_type& __s)
32895 _M_string.assign(__s.data(), __s.size());
32896 _M_stringbuf_init(_M_mode);
32902 _M_stringbuf_init(ios_base::openmode __mode)
32905 __size_type __len = 0;
32906 if (_M_mode & (ios_base::ate | ios_base::app))
32907 __len = _M_string.size();
32908 _M_sync(const_cast<char_type*>(_M_string.data()), 0, __len);
32914 streamsize __ret = -1;
32915 if (_M_mode & ios_base::in)
32918 __ret = this->egptr() - this->gptr();
32927 pbackfail(int_type __c = traits_type::eof());
32930 overflow(int_type __c = traits_type::eof());
32931 # 203 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/sstream" 3
32932 virtual __streambuf_type*
32933 setbuf(char_type* __s, streamsize __n)
32935 if (__s && __n >= 0)
32946 _M_sync(__s, __n, 0);
32952 seekoff(off_type __off, ios_base::seekdir __way,
32953 ios_base::openmode __mode = ios_base::in | ios_base::out);
32956 seekpos(pos_type __sp,
32957 ios_base::openmode __mode = ios_base::in | ios_base::out);
32963 _M_sync(char_type* __base, __size_type __i, __size_type __o);
32970 const bool __testin = _M_mode & ios_base::in;
32971 if (this->pptr() && this->pptr() > this->egptr())
32973 this->setg(this->eback(), this->gptr(), this->pptr());
32975 this->setg(this->pptr(), this->pptr(), this->pptr());
32978 # 260 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/sstream" 3
32979 template<typename _CharT, typename _Traits, typename _Alloc>
32980 class basic_istringstream : public basic_istream<_CharT, _Traits>
32984 typedef _CharT char_type;
32985 typedef _Traits traits_type;
32988 typedef _Alloc allocator_type;
32989 typedef typename traits_type::int_type int_type;
32990 typedef typename traits_type::pos_type pos_type;
32991 typedef typename traits_type::off_type off_type;
32994 typedef basic_string<_CharT, _Traits, _Alloc> __string_type;
32995 typedef basic_stringbuf<_CharT, _Traits, _Alloc> __stringbuf_type;
32996 typedef basic_istream<char_type, traits_type> __istream_type;
32999 __stringbuf_type _M_stringbuf;
33002 # 298 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/sstream" 3
33004 basic_istringstream(ios_base::openmode __mode = ios_base::in)
33005 : __istream_type(), _M_stringbuf(__mode | ios_base::in)
33006 { this->init(&_M_stringbuf); }
33007 # 318 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/sstream" 3
33009 basic_istringstream(const __string_type& __str,
33010 ios_base::openmode __mode = ios_base::in)
33011 : __istream_type(), _M_stringbuf(__str, __mode | ios_base::in)
33012 { this->init(&_M_stringbuf); }
33020 ~basic_istringstream()
33022 # 340 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/sstream" 3
33025 { return const_cast<__stringbuf_type*>(&_M_stringbuf); }
33033 { return _M_stringbuf.str(); }
33042 str(const __string_type& __s)
33043 { _M_stringbuf.str(__s); }
33045 # 373 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/sstream" 3
33046 template <typename _CharT, typename _Traits, typename _Alloc>
33047 class basic_ostringstream : public basic_ostream<_CharT, _Traits>
33051 typedef _CharT char_type;
33052 typedef _Traits traits_type;
33055 typedef _Alloc allocator_type;
33056 typedef typename traits_type::int_type int_type;
33057 typedef typename traits_type::pos_type pos_type;
33058 typedef typename traits_type::off_type off_type;
33061 typedef basic_string<_CharT, _Traits, _Alloc> __string_type;
33062 typedef basic_stringbuf<_CharT, _Traits, _Alloc> __stringbuf_type;
33063 typedef basic_ostream<char_type, traits_type> __ostream_type;
33066 __stringbuf_type _M_stringbuf;
33069 # 411 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/sstream" 3
33071 basic_ostringstream(ios_base::openmode __mode = ios_base::out)
33072 : __ostream_type(), _M_stringbuf(__mode | ios_base::out)
33073 { this->init(&_M_stringbuf); }
33074 # 431 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/sstream" 3
33076 basic_ostringstream(const __string_type& __str,
33077 ios_base::openmode __mode = ios_base::out)
33078 : __ostream_type(), _M_stringbuf(__str, __mode | ios_base::out)
33079 { this->init(&_M_stringbuf); }
33087 ~basic_ostringstream()
33089 # 453 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/sstream" 3
33092 { return const_cast<__stringbuf_type*>(&_M_stringbuf); }
33100 { return _M_stringbuf.str(); }
33109 str(const __string_type& __s)
33110 { _M_stringbuf.str(__s); }
33112 # 486 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/sstream" 3
33113 template <typename _CharT, typename _Traits, typename _Alloc>
33114 class basic_stringstream : public basic_iostream<_CharT, _Traits>
33118 typedef _CharT char_type;
33119 typedef _Traits traits_type;
33122 typedef _Alloc allocator_type;
33123 typedef typename traits_type::int_type int_type;
33124 typedef typename traits_type::pos_type pos_type;
33125 typedef typename traits_type::off_type off_type;
33128 typedef basic_string<_CharT, _Traits, _Alloc> __string_type;
33129 typedef basic_stringbuf<_CharT, _Traits, _Alloc> __stringbuf_type;
33130 typedef basic_iostream<char_type, traits_type> __iostream_type;
33133 __stringbuf_type _M_stringbuf;
33136 # 522 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/sstream" 3
33138 basic_stringstream(ios_base::openmode __m = ios_base::out | ios_base::in)
33139 : __iostream_type(), _M_stringbuf(__m)
33140 { this->init(&_M_stringbuf); }
33141 # 540 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/sstream" 3
33143 basic_stringstream(const __string_type& __str,
33144 ios_base::openmode __m = ios_base::out | ios_base::in)
33145 : __iostream_type(), _M_stringbuf(__str, __m)
33146 { this->init(&_M_stringbuf); }
33154 ~basic_stringstream()
33156 # 562 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/sstream" 3
33159 { return const_cast<__stringbuf_type*>(&_M_stringbuf); }
33167 { return _M_stringbuf.str(); }
33176 str(const __string_type& __s)
33177 { _M_stringbuf.str(__s); }
33183 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/sstream.tcc" 1 3
33184 # 43 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/sstream.tcc" 3
33186 # 44 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/sstream.tcc" 3
33188 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/sstream" 1 3
33189 # 46 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/sstream.tcc" 2 3
33191 namespace std __attribute__ ((__visibility__ ("default"))) {
33193 template <class _CharT, class _Traits, class _Alloc>
33194 typename basic_stringbuf<_CharT, _Traits, _Alloc>::int_type
33195 basic_stringbuf<_CharT, _Traits, _Alloc>::
33196 pbackfail(int_type __c)
33198 int_type __ret = traits_type::eof();
33199 if (this->eback() < this->gptr())
33203 const bool __testeof = traits_type::eq_int_type(__c, __ret);
33206 const bool __testeq = traits_type::eq(traits_type::
33209 const bool __testout = this->_M_mode & ios_base::out;
33210 if (__testeq || __testout)
33214 *this->gptr() = traits_type::to_char_type(__c);
33221 __ret = traits_type::not_eof(__c);
33227 template <class _CharT, class _Traits, class _Alloc>
33228 typename basic_stringbuf<_CharT, _Traits, _Alloc>::int_type
33229 basic_stringbuf<_CharT, _Traits, _Alloc>::
33230 overflow(int_type __c)
33232 const bool __testout = this->_M_mode & ios_base::out;
33233 if (__builtin_expect(!__testout, false))
33234 return traits_type::eof();
33236 const bool __testeof = traits_type::eq_int_type(__c, traits_type::eof());
33237 if (__builtin_expect(__testeof, false))
33238 return traits_type::not_eof(__c);
33240 const __size_type __capacity = _M_string.capacity();
33241 const __size_type __max_size = _M_string.max_size();
33242 const bool __testput = this->pptr() < this->epptr();
33243 if (__builtin_expect(!__testput && __capacity == __max_size, false))
33244 return traits_type::eof();
33248 const char_type __conv = traits_type::to_char_type(__c);
33251 # 116 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/sstream.tcc" 3
33252 const __size_type __opt_len = std::max(__size_type(2 * __capacity),
33254 const __size_type __len = std::min(__opt_len, __max_size);
33255 __string_type __tmp;
33256 __tmp.reserve(__len);
33258 __tmp.assign(this->pbase(), this->epptr() - this->pbase());
33259 __tmp.push_back(__conv);
33260 _M_string.swap(__tmp);
33261 _M_sync(const_cast<char_type*>(_M_string.data()),
33262 this->gptr() - this->eback(), this->pptr() - this->pbase());
33265 *this->pptr() = __conv;
33270 template <class _CharT, class _Traits, class _Alloc>
33271 typename basic_stringbuf<_CharT, _Traits, _Alloc>::int_type
33272 basic_stringbuf<_CharT, _Traits, _Alloc>::
33275 int_type __ret = traits_type::eof();
33276 const bool __testin = this->_M_mode & ios_base::in;
33282 if (this->gptr() < this->egptr())
33283 __ret = traits_type::to_int_type(*this->gptr());
33288 template <class _CharT, class _Traits, class _Alloc>
33289 typename basic_stringbuf<_CharT, _Traits, _Alloc>::pos_type
33290 basic_stringbuf<_CharT, _Traits, _Alloc>::
33291 seekoff(off_type __off, ios_base::seekdir __way, ios_base::openmode __mode)
33293 pos_type __ret = pos_type(off_type(-1));
33294 bool __testin = (ios_base::in & this->_M_mode & __mode) != 0;
33295 bool __testout = (ios_base::out & this->_M_mode & __mode) != 0;
33296 const bool __testboth = __testin && __testout && __way != ios_base::cur;
33297 __testin &= !(__mode & ios_base::out);
33298 __testout &= !(__mode & ios_base::in);
33302 const char_type* __beg = __testin ? this->eback() : this->pbase();
33303 if ((__beg || !__off) && (__testin || __testout || __testboth))
33307 off_type __newoffi = __off;
33308 off_type __newoffo = __newoffi;
33309 if (__way == ios_base::cur)
33311 __newoffi += this->gptr() - __beg;
33312 __newoffo += this->pptr() - __beg;
33314 else if (__way == ios_base::end)
33315 __newoffo = __newoffi += this->egptr() - __beg;
33317 if ((__testin || __testboth)
33319 && this->egptr() - __beg >= __newoffi)
33321 this->gbump((__beg + __newoffi) - this->gptr());
33322 __ret = pos_type(__newoffi);
33324 if ((__testout || __testboth)
33326 && this->egptr() - __beg >= __newoffo)
33328 this->pbump((__beg + __newoffo) - this->pptr());
33329 __ret = pos_type(__newoffo);
33335 template <class _CharT, class _Traits, class _Alloc>
33336 typename basic_stringbuf<_CharT, _Traits, _Alloc>::pos_type
33337 basic_stringbuf<_CharT, _Traits, _Alloc>::
33338 seekpos(pos_type __sp, ios_base::openmode __mode)
33340 pos_type __ret = pos_type(off_type(-1));
33341 const bool __testin = (ios_base::in & this->_M_mode & __mode) != 0;
33342 const bool __testout = (ios_base::out & this->_M_mode & __mode) != 0;
33344 const char_type* __beg = __testin ? this->eback() : this->pbase();
33345 if ((__beg || !off_type(__sp)) && (__testin || __testout))
33349 const off_type __pos(__sp);
33350 const bool __testpos = (0 <= __pos
33351 && __pos <= this->egptr() - __beg);
33355 this->gbump((__beg + __pos) - this->gptr());
33357 this->pbump((__beg + __pos) - this->pptr());
33364 template <class _CharT, class _Traits, class _Alloc>
33366 basic_stringbuf<_CharT, _Traits, _Alloc>::
33367 _M_sync(char_type* __base, __size_type __i, __size_type __o)
33369 const bool __testin = _M_mode & ios_base::in;
33370 const bool __testout = _M_mode & ios_base::out;
33371 char_type* __endg = __base + _M_string.size();
33372 char_type* __endp = __base + _M_string.capacity();
33374 if (__base != _M_string.data())
33383 this->setg(__base, __base + __i, __endg);
33386 this->setp(__base, __endp);
33392 this->setg(__endg, __endg, __endg);
33400 extern template class basic_stringbuf<char>;
33401 extern template class basic_istringstream<char>;
33402 extern template class basic_ostringstream<char>;
33403 extern template class basic_stringstream<char>;
33406 extern template class basic_stringbuf<wchar_t>;
33407 extern template class basic_istringstream<wchar_t>;
33408 extern template class basic_ostringstream<wchar_t>;
33409 extern template class basic_stringstream<wchar_t>;
33414 # 589 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/sstream" 2 3
33415 # 29 "/usr/include/boost/lexical_cast.hpp" 2 3 4
33416 # 37 "/usr/include/boost/lexical_cast.hpp" 3 4
33420 class bad_lexical_cast : public std::bad_cast
33423 bad_lexical_cast() :
33424 source(&typeid(void)), target(&typeid(void))
33428 const std::type_info &source_type,
33429 const std::type_info &target_type) :
33430 source(&source_type), target(&target_type)
33433 const std::type_info &source_type() const
33437 const std::type_info &target_type() const
33441 virtual const char *what() const throw()
33443 return "bad lexical cast: "
33444 "source type value could not be interpreted as target";
33446 virtual ~bad_lexical_cast() throw()
33450 const std::type_info *source;
33451 const std::type_info *target;
33456 template<typename Type>
33465 struct stream_char<wchar_t>
33467 typedef wchar_t type;
33472 struct stream_char<wchar_t *>
33474 typedef wchar_t type;
33478 struct stream_char<const wchar_t *>
33480 typedef wchar_t type;
33484 struct stream_char<std::wstring>
33486 typedef wchar_t type;
33490 template<typename TargetChar, typename SourceChar>
33493 typedef TargetChar type;
33497 struct widest_char<char, wchar_t>
33499 typedef wchar_t type;
33505 template<typename Target, typename Source>
33506 class lexical_stream
33509 typedef typename widest_char<
33510 typename stream_char<Target>::type,
33511 typename stream_char<Source>::type>::type char_type;
33516 stream.unsetf(std::ios::skipws);
33518 if(std::numeric_limits<Target>::is_specialized)
33519 stream.precision(std::numeric_limits<Target>::digits10 + 1);
33520 else if(std::numeric_limits<Source>::is_specialized)
33521 stream.precision(std::numeric_limits<Source>::digits10 + 1);
33529 bool operator<<(const Source &input)
33531 return !(stream << input).fail();
33533 template<typename InputStreamable>
33534 bool operator>>(InputStreamable &output)
33536 return !is_pointer<InputStreamable>::value &&
33537 stream >> output &&
33546 std::char_traits<char_type>::eof();
33549 bool operator>>(std::string &output)
33554 output = stream.str();
33558 bool operator>>(std::wstring &output)
33560 output = stream.str();
33570 std::basic_stringstream<char_type> stream;
33582 struct array_to_pointer_decay
33587 template<class T, std::size_t N>
33588 struct array_to_pointer_decay<T[N]>
33590 typedef const T * type;
33594 template<typename Target, typename Source>
33595 Target lexical_cast(const Source &arg)
33597 typedef typename detail::array_to_pointer_decay<Source>::type NewSource;
33599 detail::lexical_stream<Target, NewSource> interpreter;
33602 if(!(interpreter << arg && interpreter >> result))
33603 throw_exception(bad_lexical_cast(typeid(NewSource), typeid(Target)));
33606 # 243 "/usr/include/boost/lexical_cast.hpp" 3 4
33608 # 4 "genfield.cxx" 2
33609 # 1 "/usr/include/boost/program_options.hpp" 1 3 4
33610 # 13 "/usr/include/boost/program_options.hpp" 3 4
33611 # 1 "/usr/include/boost/program_options/options_description.hpp" 1 3 4
33612 # 11 "/usr/include/boost/program_options/options_description.hpp" 3 4
33613 # 1 "/usr/include/boost/program_options/config.hpp" 1 3 4
33614 # 11 "/usr/include/boost/program_options/config.hpp" 3 4
33615 # 1 "/usr/include/boost/version.hpp" 1 3 4
33616 # 12 "/usr/include/boost/program_options/config.hpp" 2 3 4
33617 # 30 "/usr/include/boost/program_options/config.hpp" 3 4
33618 # 1 "/usr/include/boost/config/auto_link.hpp" 1 3 4
33619 # 31 "/usr/include/boost/program_options/config.hpp" 2 3 4
33620 # 12 "/usr/include/boost/program_options/options_description.hpp" 2 3 4
33621 # 1 "/usr/include/boost/program_options/errors.hpp" 1 3 4
33622 # 14 "/usr/include/boost/program_options/errors.hpp" 3 4
33623 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/vector" 1 3 4
33624 # 63 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/vector" 3 4
33626 # 64 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/vector" 3
33633 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_vector.h" 1 3
33634 # 69 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_vector.h" 3
33635 namespace std __attribute__ ((__visibility__ ("default"))) {
33642 template<typename _Tp, typename _Alloc>
33643 struct _Vector_base
33645 typedef typename _Alloc::template rebind<_Tp>::other _Tp_alloc_type;
33647 struct _Vector_impl
33648 : public _Tp_alloc_type
33652 _Tp* _M_end_of_storage;
33653 _Vector_impl(_Tp_alloc_type const& __a)
33654 : _Tp_alloc_type(__a), _M_start(0), _M_finish(0), _M_end_of_storage(0)
33659 typedef _Alloc allocator_type;
33662 _M_get_Tp_allocator()
33663 { return *static_cast<_Tp_alloc_type*>(&this->_M_impl); }
33665 const _Tp_alloc_type&
33666 _M_get_Tp_allocator() const
33667 { return *static_cast<const _Tp_alloc_type*>(&this->_M_impl); }
33670 get_allocator() const
33671 { return allocator_type(_M_get_Tp_allocator()); }
33673 _Vector_base(const allocator_type& __a)
33677 _Vector_base(size_t __n, const allocator_type& __a)
33680 this->_M_impl._M_start = this->_M_allocate(__n);
33681 this->_M_impl._M_finish = this->_M_impl._M_start;
33682 this->_M_impl._M_end_of_storage = this->_M_impl._M_start + __n;
33686 { _M_deallocate(this->_M_impl._M_start, this->_M_impl._M_end_of_storage
33687 - this->_M_impl._M_start); }
33690 _Vector_impl _M_impl;
33693 _M_allocate(size_t __n)
33694 { return _M_impl.allocate(__n); }
33697 _M_deallocate(_Tp* __p, size_t __n)
33700 _M_impl.deallocate(__p, __n);
33703 # 158 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_vector.h" 3
33704 template<typename _Tp, typename _Alloc = std::allocator<_Tp> >
33705 class vector : protected _Vector_base<_Tp, _Alloc>
33708 typedef typename _Alloc::value_type _Alloc_value_type;
33712 typedef _Vector_base<_Tp, _Alloc> _Base;
33713 typedef vector<_Tp, _Alloc> vector_type;
33714 typedef typename _Base::_Tp_alloc_type _Tp_alloc_type;
33717 typedef _Tp value_type;
33718 typedef typename _Tp_alloc_type::pointer pointer;
33719 typedef typename _Tp_alloc_type::const_pointer const_pointer;
33720 typedef typename _Tp_alloc_type::reference reference;
33721 typedef typename _Tp_alloc_type::const_reference const_reference;
33722 typedef __gnu_cxx::__normal_iterator<pointer, vector_type> iterator;
33723 typedef __gnu_cxx::__normal_iterator<const_pointer, vector_type>
33725 typedef std::reverse_iterator<const_iterator> const_reverse_iterator;
33726 typedef std::reverse_iterator<iterator> reverse_iterator;
33727 typedef size_t size_type;
33728 typedef ptrdiff_t difference_type;
33729 typedef _Alloc allocator_type;
33732 using _Base::_M_allocate;
33733 using _Base::_M_deallocate;
33734 using _Base::_M_impl;
33735 using _Base::_M_get_Tp_allocator;
33744 vector(const allocator_type& __a = allocator_type())
33747 # 209 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_vector.h" 3
33749 vector(size_type __n, const value_type& __value = value_type(),
33750 const allocator_type& __a = allocator_type())
33753 std::__uninitialized_fill_n_a(this->_M_impl._M_start, __n, __value,
33754 _M_get_Tp_allocator());
33755 this->_M_impl._M_finish = this->_M_impl._M_start + __n;
33757 # 228 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_vector.h" 3
33758 vector(const vector& __x)
33759 : _Base(__x.size(), __x._M_get_Tp_allocator())
33760 { this->_M_impl._M_finish =
33761 std::__uninitialized_copy_a(__x.begin(), __x.end(),
33762 this->_M_impl._M_start,
33763 _M_get_Tp_allocator());
33765 # 251 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_vector.h" 3
33766 template<typename _InputIterator>
33767 vector(_InputIterator __first, _InputIterator __last,
33768 const allocator_type& __a = allocator_type())
33772 typedef typename std::__is_integer<_InputIterator>::__type _Integral;
33773 _M_initialize_dispatch(__first, __last, _Integral());
33783 { std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish,
33784 _M_get_Tp_allocator()); }
33785 # 279 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_vector.h" 3
33787 operator=(const vector& __x);
33788 # 292 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_vector.h" 3
33790 assign(size_type __n, const value_type& __val)
33791 { _M_fill_assign(__n, __val); }
33792 # 308 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_vector.h" 3
33793 template<typename _InputIterator>
33795 assign(_InputIterator __first, _InputIterator __last)
33798 typedef typename std::__is_integer<_InputIterator>::__type _Integral;
33799 _M_assign_dispatch(__first, __last, _Integral());
33803 using _Base::get_allocator;
33813 { return iterator(this->_M_impl._M_start); }
33822 { return const_iterator(this->_M_impl._M_start); }
33831 { return iterator(this->_M_impl._M_finish); }
33840 { return const_iterator(this->_M_impl._M_finish); }
33849 { return reverse_iterator(end()); }
33856 const_reverse_iterator
33858 { return const_reverse_iterator(end()); }
33867 { return reverse_iterator(begin()); }
33874 const_reverse_iterator
33876 { return const_reverse_iterator(begin()); }
33882 { return size_type(this->_M_impl._M_finish - this->_M_impl._M_start); }
33887 { return _M_get_Tp_allocator().max_size(); }
33888 # 415 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_vector.h" 3
33890 resize(size_type __new_size, value_type __x = value_type())
33892 if (__new_size < size())
33893 _M_erase_at_end(this->_M_impl._M_start + __new_size);
33895 insert(end(), __new_size - size(), __x);
33904 { return size_type(this->_M_impl._M_end_of_storage
33905 - this->_M_impl._M_start); }
33913 { return begin() == end(); }
33914 # 458 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_vector.h" 3
33916 reserve(size_type __n);
33917 # 473 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_vector.h" 3
33919 operator[](size_type __n)
33920 { return *(this->_M_impl._M_start + __n); }
33921 # 488 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_vector.h" 3
33923 operator[](size_type __n) const
33924 { return *(this->_M_impl._M_start + __n); }
33929 _M_range_check(size_type __n) const
33931 if (__n >= this->size())
33932 __throw_out_of_range(("vector::_M_range_check"));
33936 # 513 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_vector.h" 3
33940 _M_range_check(__n);
33941 return (*this)[__n];
33943 # 531 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_vector.h" 3
33945 at(size_type __n) const
33947 _M_range_check(__n);
33948 return (*this)[__n];
33957 { return *begin(); }
33965 { return *begin(); }
33973 { return *(end() - 1); }
33981 { return *(end() - 1); }
33982 # 577 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_vector.h" 3
33985 { return pointer(this->_M_impl._M_start); }
33989 { return const_pointer(this->_M_impl._M_start); }
33990 # 596 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_vector.h" 3
33992 push_back(const value_type& __x)
33994 if (this->_M_impl._M_finish != this->_M_impl._M_end_of_storage)
33996 this->_M_impl.construct(this->_M_impl._M_finish, __x);
33997 ++this->_M_impl._M_finish;
34000 _M_insert_aux(end(), __x);
34002 # 617 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_vector.h" 3
34006 --this->_M_impl._M_finish;
34007 this->_M_impl.destroy(this->_M_impl._M_finish);
34009 # 635 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_vector.h" 3
34011 insert(iterator __position, const value_type& __x);
34012 # 651 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_vector.h" 3
34014 insert(iterator __position, size_type __n, const value_type& __x)
34015 { _M_fill_insert(__position, __n, __x); }
34016 # 669 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_vector.h" 3
34017 template<typename _InputIterator>
34019 insert(iterator __position, _InputIterator __first,
34020 _InputIterator __last)
34023 typedef typename std::__is_integer<_InputIterator>::__type _Integral;
34024 _M_insert_dispatch(__position, __first, __last, _Integral());
34026 # 694 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_vector.h" 3
34028 erase(iterator __position);
34029 # 715 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_vector.h" 3
34031 erase(iterator __first, iterator __last);
34032 # 727 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_vector.h" 3
34036 std::swap(this->_M_impl._M_start, __x._M_impl._M_start);
34037 std::swap(this->_M_impl._M_finish, __x._M_impl._M_finish);
34038 std::swap(this->_M_impl._M_end_of_storage,
34039 __x._M_impl._M_end_of_storage);
34043 std::__alloc_swap<_Tp_alloc_type>::_S_do_it(_M_get_Tp_allocator(),
34044 __x._M_get_Tp_allocator());
34055 { _M_erase_at_end(this->_M_impl._M_start); }
34064 template<typename _ForwardIterator>
34066 _M_allocate_and_copy(size_type __n,
34067 _ForwardIterator __first, _ForwardIterator __last)
34069 pointer __result = this->_M_allocate(__n);
34072 std::__uninitialized_copy_a(__first, __last, __result,
34073 _M_get_Tp_allocator());
34078 _M_deallocate(__result, __n);
34087 template<typename _Integer>
34089 _M_initialize_dispatch(_Integer __n, _Integer __value, __true_type)
34091 this->_M_impl._M_start = _M_allocate(__n);
34092 this->_M_impl._M_end_of_storage = this->_M_impl._M_start + __n;
34093 std::__uninitialized_fill_n_a(this->_M_impl._M_start, __n, __value,
34094 _M_get_Tp_allocator());
34095 this->_M_impl._M_finish = this->_M_impl._M_end_of_storage;
34099 template<typename _InputIterator>
34101 _M_initialize_dispatch(_InputIterator __first, _InputIterator __last,
34104 typedef typename std::iterator_traits<_InputIterator>::
34105 iterator_category _IterCategory;
34106 _M_range_initialize(__first, __last, _IterCategory());
34110 template<typename _InputIterator>
34112 _M_range_initialize(_InputIterator __first,
34113 _InputIterator __last, std::input_iterator_tag)
34115 for (; __first != __last; ++__first)
34116 push_back(*__first);
34120 template<typename _ForwardIterator>
34122 _M_range_initialize(_ForwardIterator __first,
34123 _ForwardIterator __last, std::forward_iterator_tag)
34125 const size_type __n = std::distance(__first, __last);
34126 this->_M_impl._M_start = this->_M_allocate(__n);
34127 this->_M_impl._M_end_of_storage = this->_M_impl._M_start + __n;
34128 this->_M_impl._M_finish =
34129 std::__uninitialized_copy_a(__first, __last,
34130 this->_M_impl._M_start,
34131 _M_get_Tp_allocator());
34139 template<typename _Integer>
34141 _M_assign_dispatch(_Integer __n, _Integer __val, __true_type)
34143 _M_fill_assign(static_cast<size_type>(__n),
34144 static_cast<value_type>(__val));
34148 template<typename _InputIterator>
34150 _M_assign_dispatch(_InputIterator __first, _InputIterator __last,
34153 typedef typename std::iterator_traits<_InputIterator>::
34154 iterator_category _IterCategory;
34155 _M_assign_aux(__first, __last, _IterCategory());
34159 template<typename _InputIterator>
34161 _M_assign_aux(_InputIterator __first, _InputIterator __last,
34162 std::input_iterator_tag);
34165 template<typename _ForwardIterator>
34167 _M_assign_aux(_ForwardIterator __first, _ForwardIterator __last,
34168 std::forward_iterator_tag);
34173 _M_fill_assign(size_type __n, const value_type& __val);
34179 template<typename _Integer>
34181 _M_insert_dispatch(iterator __pos, _Integer __n, _Integer __val,
34184 _M_fill_insert(__pos, static_cast<size_type>(__n),
34185 static_cast<value_type>(__val));
34189 template<typename _InputIterator>
34191 _M_insert_dispatch(iterator __pos, _InputIterator __first,
34192 _InputIterator __last, __false_type)
34194 typedef typename std::iterator_traits<_InputIterator>::
34195 iterator_category _IterCategory;
34196 _M_range_insert(__pos, __first, __last, _IterCategory());
34200 template<typename _InputIterator>
34202 _M_range_insert(iterator __pos, _InputIterator __first,
34203 _InputIterator __last, std::input_iterator_tag);
34206 template<typename _ForwardIterator>
34208 _M_range_insert(iterator __pos, _ForwardIterator __first,
34209 _ForwardIterator __last, std::forward_iterator_tag);
34214 _M_fill_insert(iterator __pos, size_type __n, const value_type& __x);
34218 _M_insert_aux(iterator __position, const value_type& __x);
34225 _M_erase_at_end(pointer __pos)
34227 std::_Destroy(__pos, this->_M_impl._M_finish, _M_get_Tp_allocator());
34228 this->_M_impl._M_finish = __pos;
34231 # 937 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_vector.h" 3
34232 template<typename _Tp, typename _Alloc>
34234 operator==(const vector<_Tp, _Alloc>& __x, const vector<_Tp, _Alloc>& __y)
34235 { return (__x.size() == __y.size()
34236 && std::equal(__x.begin(), __x.end(), __y.begin())); }
34237 # 954 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_vector.h" 3
34238 template<typename _Tp, typename _Alloc>
34240 operator<(const vector<_Tp, _Alloc>& __x, const vector<_Tp, _Alloc>& __y)
34241 { return std::lexicographical_compare(__x.begin(), __x.end(),
34242 __y.begin(), __y.end()); }
34245 template<typename _Tp, typename _Alloc>
34247 operator!=(const vector<_Tp, _Alloc>& __x, const vector<_Tp, _Alloc>& __y)
34248 { return !(__x == __y); }
34251 template<typename _Tp, typename _Alloc>
34253 operator>(const vector<_Tp, _Alloc>& __x, const vector<_Tp, _Alloc>& __y)
34254 { return __y < __x; }
34257 template<typename _Tp, typename _Alloc>
34259 operator<=(const vector<_Tp, _Alloc>& __x, const vector<_Tp, _Alloc>& __y)
34260 { return !(__y < __x); }
34263 template<typename _Tp, typename _Alloc>
34265 operator>=(const vector<_Tp, _Alloc>& __x, const vector<_Tp, _Alloc>& __y)
34266 { return !(__x < __y); }
34269 template<typename _Tp, typename _Alloc>
34271 swap(vector<_Tp, _Alloc>& __x, vector<_Tp, _Alloc>& __y)
34275 # 71 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/vector" 2 3
34276 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_bvector.h" 1 3
34277 # 65 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_bvector.h" 3
34278 namespace std __attribute__ ((__visibility__ ("default"))) {
34280 typedef unsigned long _Bit_type;
34281 enum { _S_word_bit = int(8 * sizeof(_Bit_type)) };
34283 struct _Bit_reference
34288 _Bit_reference(_Bit_type * __x, _Bit_type __y)
34289 : _M_p(__x), _M_mask(__y) { }
34291 _Bit_reference() : _M_p(0), _M_mask(0) { }
34293 operator bool() const
34294 { return !!(*_M_p & _M_mask); }
34297 operator=(bool __x)
34307 operator=(const _Bit_reference& __x)
34308 { return *this = bool(__x); }
34311 operator==(const _Bit_reference& __x) const
34312 { return bool(*this) == bool(__x); }
34315 operator<(const _Bit_reference& __x) const
34316 { return !bool(*this) && bool(__x); }
34320 { *_M_p ^= _M_mask; }
34323 struct _Bit_iterator_base
34324 : public std::iterator<std::random_access_iterator_tag, bool>
34327 unsigned int _M_offset;
34329 _Bit_iterator_base(_Bit_type * __x, unsigned int __y)
34330 : _M_p(__x), _M_offset(__y) { }
34335 if (_M_offset++ == int(_S_word_bit) - 1)
34345 if (_M_offset-- == 0)
34347 _M_offset = int(_S_word_bit) - 1;
34353 _M_incr(ptrdiff_t __i)
34355 difference_type __n = __i + _M_offset;
34356 _M_p += __n / int(_S_word_bit);
34357 __n = __n % int(_S_word_bit);
34360 __n += int(_S_word_bit);
34363 _M_offset = static_cast<unsigned int>(__n);
34367 operator==(const _Bit_iterator_base& __i) const
34368 { return _M_p == __i._M_p && _M_offset == __i._M_offset; }
34371 operator<(const _Bit_iterator_base& __i) const
34373 return _M_p < __i._M_p
34374 || (_M_p == __i._M_p && _M_offset < __i._M_offset);
34378 operator!=(const _Bit_iterator_base& __i) const
34379 { return !(*this == __i); }
34382 operator>(const _Bit_iterator_base& __i) const
34383 { return __i < *this; }
34386 operator<=(const _Bit_iterator_base& __i) const
34387 { return !(__i < *this); }
34390 operator>=(const _Bit_iterator_base& __i) const
34391 { return !(*this < __i); }
34395 operator-(const _Bit_iterator_base& __x, const _Bit_iterator_base& __y)
34397 return (int(_S_word_bit) * (__x._M_p - __y._M_p)
34398 + __x._M_offset - __y._M_offset);
34401 struct _Bit_iterator : public _Bit_iterator_base
34403 typedef _Bit_reference reference;
34404 typedef _Bit_reference* pointer;
34405 typedef _Bit_iterator iterator;
34407 _Bit_iterator() : _Bit_iterator_base(0, 0) { }
34409 _Bit_iterator(_Bit_type * __x, unsigned int __y)
34410 : _Bit_iterator_base(__x, __y) { }
34414 { return reference(_M_p, 1UL << _M_offset); }
34426 iterator __tmp = *this;
34441 iterator __tmp = *this;
34447 operator+=(difference_type __i)
34454 operator-=(difference_type __i)
34461 operator+(difference_type __i) const
34463 iterator __tmp = *this;
34464 return __tmp += __i;
34468 operator-(difference_type __i) const
34470 iterator __tmp = *this;
34471 return __tmp -= __i;
34475 operator[](difference_type __i) const
34476 { return *(*this + __i); }
34479 inline _Bit_iterator
34480 operator+(ptrdiff_t __n, const _Bit_iterator& __x)
34481 { return __x + __n; }
34483 struct _Bit_const_iterator : public _Bit_iterator_base
34485 typedef bool reference;
34486 typedef bool const_reference;
34487 typedef const bool* pointer;
34488 typedef _Bit_const_iterator const_iterator;
34490 _Bit_const_iterator() : _Bit_iterator_base(0, 0) { }
34492 _Bit_const_iterator(_Bit_type * __x, unsigned int __y)
34493 : _Bit_iterator_base(__x, __y) { }
34495 _Bit_const_iterator(const _Bit_iterator& __x)
34496 : _Bit_iterator_base(__x._M_p, __x._M_offset) { }
34500 { return _Bit_reference(_M_p, 1UL << _M_offset); }
34512 const_iterator __tmp = *this;
34527 const_iterator __tmp = *this;
34533 operator+=(difference_type __i)
34540 operator-=(difference_type __i)
34547 operator+(difference_type __i) const
34549 const_iterator __tmp = *this;
34550 return __tmp += __i;
34554 operator-(difference_type __i) const
34556 const_iterator __tmp = *this;
34557 return __tmp -= __i;
34561 operator[](difference_type __i) const
34562 { return *(*this + __i); }
34565 inline _Bit_const_iterator
34566 operator+(ptrdiff_t __n, const _Bit_const_iterator& __x)
34567 { return __x + __n; }
34570 __fill_bvector(_Bit_iterator __first, _Bit_iterator __last, bool __x)
34572 for (; __first != __last; ++__first)
34577 fill(_Bit_iterator __first, _Bit_iterator __last, const bool& __x)
34579 if (__first._M_p != __last._M_p)
34581 std::fill(__first._M_p + 1, __last._M_p, __x ? ~0 : 0);
34582 __fill_bvector(__first, _Bit_iterator(__first._M_p + 1, 0), __x);
34583 __fill_bvector(_Bit_iterator(__last._M_p, 0), __last, __x);
34586 __fill_bvector(__first, __last, __x);
34589 template<class _Alloc>
34590 struct _Bvector_base
34592 typedef typename _Alloc::template rebind<_Bit_type>::other
34595 struct _Bvector_impl
34596 : public _Bit_alloc_type
34598 _Bit_iterator _M_start;
34599 _Bit_iterator _M_finish;
34600 _Bit_type* _M_end_of_storage;
34601 _Bvector_impl(const _Bit_alloc_type& __a)
34602 : _Bit_alloc_type(__a), _M_start(), _M_finish(), _M_end_of_storage(0)
34607 typedef _Alloc allocator_type;
34610 _M_get_Bit_allocator()
34611 { return *static_cast<_Bit_alloc_type*>(&this->_M_impl); }
34613 const _Bit_alloc_type&
34614 _M_get_Bit_allocator() const
34615 { return *static_cast<const _Bit_alloc_type*>(&this->_M_impl); }
34618 get_allocator() const
34619 { return allocator_type(_M_get_Bit_allocator()); }
34621 _Bvector_base(const allocator_type& __a) : _M_impl(__a) { }
34624 { this->_M_deallocate(); }
34627 _Bvector_impl _M_impl;
34630 _M_allocate(size_t __n)
34631 { return _M_impl.allocate((__n + int(_S_word_bit) - 1)
34632 / int(_S_word_bit)); }
34637 if (_M_impl._M_start._M_p)
34638 _M_impl.deallocate(_M_impl._M_start._M_p,
34639 _M_impl._M_end_of_storage - _M_impl._M_start._M_p);
34648 namespace std __attribute__ ((__visibility__ ("default"))) {
34649 # 455 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_bvector.h" 3
34650 template<typename _Alloc>
34651 class vector<bool, _Alloc> : protected _Bvector_base<_Alloc>
34653 typedef _Bvector_base<_Alloc> _Base;
34656 typedef bool value_type;
34657 typedef size_t size_type;
34658 typedef ptrdiff_t difference_type;
34659 typedef _Bit_reference reference;
34660 typedef bool const_reference;
34661 typedef _Bit_reference* pointer;
34662 typedef const bool* const_pointer;
34663 typedef _Bit_iterator iterator;
34664 typedef _Bit_const_iterator const_iterator;
34665 typedef std::reverse_iterator<const_iterator> const_reverse_iterator;
34666 typedef std::reverse_iterator<iterator> reverse_iterator;
34667 typedef _Alloc allocator_type;
34669 allocator_type get_allocator() const
34670 { return _Base::get_allocator(); }
34673 using _Base::_M_allocate;
34674 using _Base::_M_deallocate;
34675 using _Base::_M_get_Bit_allocator;
34679 vector(const allocator_type& __a = allocator_type())
34683 vector(size_type __n, const bool& __value = bool(),
34684 const allocator_type& __a = allocator_type())
34687 _M_initialize(__n);
34688 std::fill(this->_M_impl._M_start._M_p, this->_M_impl._M_end_of_storage,
34692 vector(const vector& __x)
34693 : _Base(__x._M_get_Bit_allocator())
34695 _M_initialize(__x.size());
34696 _M_copy_aligned(__x.begin(), __x.end(), this->_M_impl._M_start);
34699 template<class _InputIterator>
34700 vector(_InputIterator __first, _InputIterator __last,
34701 const allocator_type& __a = allocator_type())
34704 typedef typename std::__is_integer<_InputIterator>::__type _Integral;
34705 _M_initialize_dispatch(__first, __last, _Integral());
34711 operator=(const vector& __x)
34715 if (__x.size() > capacity())
34717 this->_M_deallocate();
34718 _M_initialize(__x.size());
34720 this->_M_impl._M_finish = _M_copy_aligned(__x.begin(), __x.end(),
34730 assign(size_type __n, const bool& __x)
34731 { _M_fill_assign(__n, __x); }
34733 template<class _InputIterator>
34735 assign(_InputIterator __first, _InputIterator __last)
34737 typedef typename std::__is_integer<_InputIterator>::__type _Integral;
34738 _M_assign_dispatch(__first, __last, _Integral());
34743 { return this->_M_impl._M_start; }
34747 { return this->_M_impl._M_start; }
34751 { return this->_M_impl._M_finish; }
34755 { return this->_M_impl._M_finish; }
34759 { return reverse_iterator(end()); }
34761 const_reverse_iterator
34763 { return const_reverse_iterator(end()); }
34767 { return reverse_iterator(begin()); }
34769 const_reverse_iterator
34771 { return const_reverse_iterator(begin()); }
34775 { return size_type(end() - begin()); }
34780 const size_type __asize = _M_get_Bit_allocator().max_size();
34781 return (__asize <= size_type(-1) / int(_S_word_bit) ?
34782 __asize * int(_S_word_bit) : size_type(-1));
34787 { return size_type(const_iterator(this->_M_impl._M_end_of_storage, 0)
34792 { return begin() == end(); }
34795 operator[](size_type __n)
34797 return *iterator(this->_M_impl._M_start._M_p
34798 + __n / int(_S_word_bit), __n % int(_S_word_bit));
34802 operator[](size_type __n) const
34804 return *const_iterator(this->_M_impl._M_start._M_p
34805 + __n / int(_S_word_bit), __n % int(_S_word_bit));
34810 _M_range_check(size_type __n) const
34812 if (__n >= this->size())
34813 __throw_out_of_range(("vector<bool>::_M_range_check"));
34819 { _M_range_check(__n); return (*this)[__n]; }
34822 at(size_type __n) const
34823 { _M_range_check(__n); return (*this)[__n]; }
34826 reserve(size_type __n)
34828 if (__n > this->max_size())
34829 __throw_length_error(("vector::reserve"));
34830 if (this->capacity() < __n)
34832 _Bit_type* __q = this->_M_allocate(__n);
34833 this->_M_impl._M_finish = _M_copy_aligned(begin(), end(),
34835 this->_M_deallocate();
34836 this->_M_impl._M_start = iterator(__q, 0);
34837 this->_M_impl._M_end_of_storage = (__q + (__n + int(_S_word_bit) - 1)
34838 / int(_S_word_bit));
34844 { return *begin(); }
34848 { return *begin(); }
34852 { return *(end() - 1); }
34856 { return *(end() - 1); }
34867 push_back(bool __x)
34869 if (this->_M_impl._M_finish._M_p != this->_M_impl._M_end_of_storage)
34870 *this->_M_impl._M_finish++ = __x;
34872 _M_insert_aux(end(), __x);
34876 swap(vector<bool, _Alloc>& __x)
34878 std::swap(this->_M_impl._M_start, __x._M_impl._M_start);
34879 std::swap(this->_M_impl._M_finish, __x._M_impl._M_finish);
34880 std::swap(this->_M_impl._M_end_of_storage,
34881 __x._M_impl._M_end_of_storage);
34885 std::__alloc_swap<typename _Base::_Bit_alloc_type>::
34886 _S_do_it(_M_get_Bit_allocator(), __x._M_get_Bit_allocator());
34891 swap(reference __x, reference __y)
34899 insert(iterator __position, const bool& __x = bool())
34901 const difference_type __n = __position - begin();
34902 if (this->_M_impl._M_finish._M_p != this->_M_impl._M_end_of_storage
34903 && __position == end())
34904 *this->_M_impl._M_finish++ = __x;
34906 _M_insert_aux(__position, __x);
34907 return begin() + __n;
34910 template<class _InputIterator>
34912 insert(iterator __position,
34913 _InputIterator __first, _InputIterator __last)
34915 typedef typename std::__is_integer<_InputIterator>::__type _Integral;
34916 _M_insert_dispatch(__position, __first, __last, _Integral());
34920 insert(iterator __position, size_type __n, const bool& __x)
34921 { _M_fill_insert(__position, __n, __x); }
34925 { --this->_M_impl._M_finish; }
34928 erase(iterator __position)
34930 if (__position + 1 != end())
34931 std::copy(__position + 1, end(), __position);
34932 --this->_M_impl._M_finish;
34937 erase(iterator __first, iterator __last)
34939 _M_erase_at_end(std::copy(__last, end(), __first));
34944 resize(size_type __new_size, bool __x = bool())
34946 if (__new_size < size())
34947 _M_erase_at_end(begin() + difference_type(__new_size));
34949 insert(end(), __new_size - size(), __x);
34955 for (_Bit_type * __p = this->_M_impl._M_start._M_p;
34956 __p != this->_M_impl._M_end_of_storage; ++__p)
34962 { _M_erase_at_end(begin()); }
34968 _M_copy_aligned(const_iterator __first, const_iterator __last,
34971 _Bit_type* __q = std::copy(__first._M_p, __last._M_p, __result._M_p);
34972 return std::copy(const_iterator(__last._M_p, 0), __last,
34977 _M_initialize(size_type __n)
34979 _Bit_type* __q = this->_M_allocate(__n);
34980 this->_M_impl._M_end_of_storage = (__q
34981 + ((__n + int(_S_word_bit) - 1)
34982 / int(_S_word_bit)));
34983 this->_M_impl._M_start = iterator(__q, 0);
34984 this->_M_impl._M_finish = this->_M_impl._M_start + difference_type(__n);
34988 template<class _Integer>
34990 _M_initialize_dispatch(_Integer __n, _Integer __x, __true_type)
34992 _M_initialize(__n);
34993 std::fill(this->_M_impl._M_start._M_p,
34994 this->_M_impl._M_end_of_storage, __x ? ~0 : 0);
34997 template<class _InputIterator>
34999 _M_initialize_dispatch(_InputIterator __first, _InputIterator __last,
35001 { _M_initialize_range(__first, __last,
35002 std::__iterator_category(__first)); }
35004 template<class _InputIterator>
35006 _M_initialize_range(_InputIterator __first, _InputIterator __last,
35007 std::input_iterator_tag)
35009 for (; __first != __last; ++__first)
35010 push_back(*__first);
35013 template<class _ForwardIterator>
35015 _M_initialize_range(_ForwardIterator __first, _ForwardIterator __last,
35016 std::forward_iterator_tag)
35018 const size_type __n = std::distance(__first, __last);
35019 _M_initialize(__n);
35020 std::copy(__first, __last, this->_M_impl._M_start);
35023 template<class _Integer>
35025 _M_assign_dispatch(_Integer __n, _Integer __val, __true_type)
35026 { _M_fill_assign((size_t) __n, (bool) __val); }
35028 template<class _InputIterator>
35030 _M_assign_dispatch(_InputIterator __first, _InputIterator __last,
35032 { _M_assign_aux(__first, __last, std::__iterator_category(__first)); }
35035 _M_fill_assign(size_t __n, bool __x)
35039 std::fill(this->_M_impl._M_start._M_p,
35040 this->_M_impl._M_end_of_storage, __x ? ~0 : 0);
35041 insert(end(), __n - size(), __x);
35045 _M_erase_at_end(begin() + __n);
35046 std::fill(this->_M_impl._M_start._M_p,
35047 this->_M_impl._M_end_of_storage, __x ? ~0 : 0);
35051 template<class _InputIterator>
35053 _M_assign_aux(_InputIterator __first, _InputIterator __last,
35054 std::input_iterator_tag)
35056 iterator __cur = begin();
35057 for (; __first != __last && __cur != end(); ++__cur, ++__first)
35059 if (__first == __last)
35060 _M_erase_at_end(__cur);
35062 insert(end(), __first, __last);
35065 template<class _ForwardIterator>
35067 _M_assign_aux(_ForwardIterator __first, _ForwardIterator __last,
35068 std::forward_iterator_tag)
35070 const size_type __len = std::distance(__first, __last);
35071 if (__len < size())
35072 _M_erase_at_end(std::copy(__first, __last, begin()));
35075 _ForwardIterator __mid = __first;
35076 std::advance(__mid, size());
35077 std::copy(__first, __mid, begin());
35078 insert(end(), __mid, __last);
35083 template<class _Integer>
35085 _M_insert_dispatch(iterator __pos, _Integer __n, _Integer __x,
35087 { _M_fill_insert(__pos, __n, __x); }
35089 template<class _InputIterator>
35091 _M_insert_dispatch(iterator __pos,
35092 _InputIterator __first, _InputIterator __last,
35094 { _M_insert_range(__pos, __first, __last,
35095 std::__iterator_category(__first)); }
35098 _M_fill_insert(iterator __position, size_type __n, bool __x)
35102 if (capacity() - size() >= __n)
35104 std::copy_backward(__position, end(),
35105 this->_M_impl._M_finish + difference_type(__n));
35106 std::fill(__position, __position + difference_type(__n), __x);
35107 this->_M_impl._M_finish += difference_type(__n);
35111 const size_type __len = size() + std::max(size(), __n);
35112 _Bit_type * __q = this->_M_allocate(__len);
35113 iterator __i = _M_copy_aligned(begin(), __position,
35115 std::fill(__i, __i + difference_type(__n), __x);
35116 this->_M_impl._M_finish = std::copy(__position, end(),
35117 __i + difference_type(__n));
35118 this->_M_deallocate();
35119 this->_M_impl._M_end_of_storage = (__q + ((__len
35120 + int(_S_word_bit) - 1)
35121 / int(_S_word_bit)));
35122 this->_M_impl._M_start = iterator(__q, 0);
35126 template<class _InputIterator>
35128 _M_insert_range(iterator __pos, _InputIterator __first,
35129 _InputIterator __last, std::input_iterator_tag)
35131 for (; __first != __last; ++__first)
35133 __pos = insert(__pos, *__first);
35138 template<class _ForwardIterator>
35140 _M_insert_range(iterator __position, _ForwardIterator __first,
35141 _ForwardIterator __last, std::forward_iterator_tag)
35143 if (__first != __last)
35145 size_type __n = std::distance(__first, __last);
35146 if (capacity() - size() >= __n)
35148 std::copy_backward(__position, end(),
35149 this->_M_impl._M_finish
35150 + difference_type(__n));
35151 std::copy(__first, __last, __position);
35152 this->_M_impl._M_finish += difference_type(__n);
35156 const size_type __len = size() + std::max(size(), __n);
35157 _Bit_type * __q = this->_M_allocate(__len);
35158 iterator __i = _M_copy_aligned(begin(), __position,
35160 __i = std::copy(__first, __last, __i);
35161 this->_M_impl._M_finish = std::copy(__position, end(), __i);
35162 this->_M_deallocate();
35163 this->_M_impl._M_end_of_storage = (__q
35165 + int(_S_word_bit) - 1)
35166 / int(_S_word_bit)));
35167 this->_M_impl._M_start = iterator(__q, 0);
35173 _M_insert_aux(iterator __position, bool __x)
35175 if (this->_M_impl._M_finish._M_p != this->_M_impl._M_end_of_storage)
35177 std::copy_backward(__position, this->_M_impl._M_finish,
35178 this->_M_impl._M_finish + 1);
35180 ++this->_M_impl._M_finish;
35184 const size_type __len = size() ? 2 * size()
35185 : static_cast<size_type>(_S_word_bit);
35186 _Bit_type * __q = this->_M_allocate(__len);
35187 iterator __i = _M_copy_aligned(begin(), __position,
35190 this->_M_impl._M_finish = std::copy(__position, end(), __i);
35191 this->_M_deallocate();
35192 this->_M_impl._M_end_of_storage = (__q + ((__len
35193 + int(_S_word_bit) - 1)
35194 / int(_S_word_bit)));
35195 this->_M_impl._M_start = iterator(__q, 0);
35200 _M_erase_at_end(iterator __pos)
35201 { this->_M_impl._M_finish = __pos; }
35205 # 72 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/vector" 2 3
35208 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/vector.tcc" 1 3
35209 # 64 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/vector.tcc" 3
35210 namespace std __attribute__ ((__visibility__ ("default"))) {
35212 template<typename _Tp, typename _Alloc>
35214 vector<_Tp, _Alloc>::
35215 reserve(size_type __n)
35217 if (__n > this->max_size())
35218 __throw_length_error(("vector::reserve"));
35219 if (this->capacity() < __n)
35221 const size_type __old_size = size();
35222 pointer __tmp = _M_allocate_and_copy(__n, this->_M_impl._M_start,
35223 this->_M_impl._M_finish);
35224 std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish,
35225 _M_get_Tp_allocator());
35226 _M_deallocate(this->_M_impl._M_start,
35227 this->_M_impl._M_end_of_storage
35228 - this->_M_impl._M_start);
35229 this->_M_impl._M_start = __tmp;
35230 this->_M_impl._M_finish = __tmp + __old_size;
35231 this->_M_impl._M_end_of_storage = this->_M_impl._M_start + __n;
35235 template<typename _Tp, typename _Alloc>
35236 typename vector<_Tp, _Alloc>::iterator
35237 vector<_Tp, _Alloc>::
35238 insert(iterator __position, const value_type& __x)
35240 const size_type __n = __position - begin();
35241 if (this->_M_impl._M_finish != this->_M_impl._M_end_of_storage
35242 && __position == end())
35244 this->_M_impl.construct(this->_M_impl._M_finish, __x);
35245 ++this->_M_impl._M_finish;
35248 _M_insert_aux(__position, __x);
35249 return iterator(this->_M_impl._M_start + __n);
35252 template<typename _Tp, typename _Alloc>
35253 typename vector<_Tp, _Alloc>::iterator
35254 vector<_Tp, _Alloc>::
35255 erase(iterator __position)
35257 if (__position + 1 != end())
35258 std::copy(__position + 1, end(), __position);
35259 --this->_M_impl._M_finish;
35260 this->_M_impl.destroy(this->_M_impl._M_finish);
35264 template<typename _Tp, typename _Alloc>
35265 typename vector<_Tp, _Alloc>::iterator
35266 vector<_Tp, _Alloc>::
35267 erase(iterator __first, iterator __last)
35269 if (__last != end())
35270 std::copy(__last, end(), __first);
35271 _M_erase_at_end(__first.base() + (end() - __last));
35275 template<typename _Tp, typename _Alloc>
35276 vector<_Tp, _Alloc>&
35277 vector<_Tp, _Alloc>::
35278 operator=(const vector<_Tp, _Alloc>& __x)
35282 const size_type __xlen = __x.size();
35283 if (__xlen > capacity())
35285 pointer __tmp = _M_allocate_and_copy(__xlen, __x.begin(),
35287 std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish,
35288 _M_get_Tp_allocator());
35289 _M_deallocate(this->_M_impl._M_start,
35290 this->_M_impl._M_end_of_storage
35291 - this->_M_impl._M_start);
35292 this->_M_impl._M_start = __tmp;
35293 this->_M_impl._M_end_of_storage = this->_M_impl._M_start + __xlen;
35295 else if (size() >= __xlen)
35297 std::_Destroy(std::copy(__x.begin(), __x.end(), begin()),
35298 end(), _M_get_Tp_allocator());
35302 std::copy(__x._M_impl._M_start, __x._M_impl._M_start + size(),
35303 this->_M_impl._M_start);
35304 std::__uninitialized_copy_a(__x._M_impl._M_start + size(),
35305 __x._M_impl._M_finish,
35306 this->_M_impl._M_finish,
35307 _M_get_Tp_allocator());
35309 this->_M_impl._M_finish = this->_M_impl._M_start + __xlen;
35314 template<typename _Tp, typename _Alloc>
35316 vector<_Tp, _Alloc>::
35317 _M_fill_assign(size_t __n, const value_type& __val)
35319 if (__n > capacity())
35321 vector __tmp(__n, __val, _M_get_Tp_allocator());
35324 else if (__n > size())
35326 std::fill(begin(), end(), __val);
35327 std::__uninitialized_fill_n_a(this->_M_impl._M_finish,
35328 __n - size(), __val,
35329 _M_get_Tp_allocator());
35330 this->_M_impl._M_finish += __n - size();
35333 _M_erase_at_end(std::fill_n(this->_M_impl._M_start, __n, __val));
35336 template<typename _Tp, typename _Alloc>
35337 template<typename _InputIterator>
35339 vector<_Tp, _Alloc>::
35340 _M_assign_aux(_InputIterator __first, _InputIterator __last,
35341 std::input_iterator_tag)
35343 pointer __cur(this->_M_impl._M_start);
35344 for (; __first != __last && __cur != this->_M_impl._M_finish;
35345 ++__cur, ++__first)
35347 if (__first == __last)
35348 _M_erase_at_end(__cur);
35350 insert(end(), __first, __last);
35353 template<typename _Tp, typename _Alloc>
35354 template<typename _ForwardIterator>
35356 vector<_Tp, _Alloc>::
35357 _M_assign_aux(_ForwardIterator __first, _ForwardIterator __last,
35358 std::forward_iterator_tag)
35360 const size_type __len = std::distance(__first, __last);
35362 if (__len > capacity())
35364 pointer __tmp(_M_allocate_and_copy(__len, __first, __last));
35365 std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish,
35366 _M_get_Tp_allocator());
35367 _M_deallocate(this->_M_impl._M_start,
35368 this->_M_impl._M_end_of_storage
35369 - this->_M_impl._M_start);
35370 this->_M_impl._M_start = __tmp;
35371 this->_M_impl._M_finish = this->_M_impl._M_start + __len;
35372 this->_M_impl._M_end_of_storage = this->_M_impl._M_finish;
35374 else if (size() >= __len)
35375 _M_erase_at_end(std::copy(__first, __last, this->_M_impl._M_start));
35378 _ForwardIterator __mid = __first;
35379 std::advance(__mid, size());
35380 std::copy(__first, __mid, this->_M_impl._M_start);
35381 this->_M_impl._M_finish =
35382 std::__uninitialized_copy_a(__mid, __last,
35383 this->_M_impl._M_finish,
35384 _M_get_Tp_allocator());
35388 template<typename _Tp, typename _Alloc>
35390 vector<_Tp, _Alloc>::
35391 _M_insert_aux(iterator __position, const _Tp& __x)
35393 if (this->_M_impl._M_finish != this->_M_impl._M_end_of_storage)
35395 this->_M_impl.construct(this->_M_impl._M_finish,
35396 *(this->_M_impl._M_finish - 1));
35397 ++this->_M_impl._M_finish;
35398 _Tp __x_copy = __x;
35399 std::copy_backward(__position.base(),
35400 this->_M_impl._M_finish - 2,
35401 this->_M_impl._M_finish - 1);
35402 *__position = __x_copy;
35406 const size_type __old_size = size();
35407 if (__old_size == this->max_size())
35408 __throw_length_error(("vector::_M_insert_aux"));
35413 size_type __len = __old_size != 0 ? 2 * __old_size : 1;
35414 if (__len < __old_size)
35415 __len = this->max_size();
35417 pointer __new_start(this->_M_allocate(__len));
35418 pointer __new_finish(__new_start);
35422 std::__uninitialized_copy_a(this->_M_impl._M_start,
35423 __position.base(), __new_start,
35424 _M_get_Tp_allocator());
35425 this->_M_impl.construct(__new_finish, __x);
35428 std::__uninitialized_copy_a(__position.base(),
35429 this->_M_impl._M_finish,
35431 _M_get_Tp_allocator());
35435 std::_Destroy(__new_start, __new_finish, _M_get_Tp_allocator());
35436 _M_deallocate(__new_start, __len);
35439 std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish,
35440 _M_get_Tp_allocator());
35441 _M_deallocate(this->_M_impl._M_start,
35442 this->_M_impl._M_end_of_storage
35443 - this->_M_impl._M_start);
35444 this->_M_impl._M_start = __new_start;
35445 this->_M_impl._M_finish = __new_finish;
35446 this->_M_impl._M_end_of_storage = __new_start + __len;
35450 template<typename _Tp, typename _Alloc>
35452 vector<_Tp, _Alloc>::
35453 _M_fill_insert(iterator __position, size_type __n, const value_type& __x)
35457 if (size_type(this->_M_impl._M_end_of_storage
35458 - this->_M_impl._M_finish) >= __n)
35460 value_type __x_copy = __x;
35461 const size_type __elems_after = end() - __position;
35462 pointer __old_finish(this->_M_impl._M_finish);
35463 if (__elems_after > __n)
35465 std::__uninitialized_copy_a(this->_M_impl._M_finish - __n,
35466 this->_M_impl._M_finish,
35467 this->_M_impl._M_finish,
35468 _M_get_Tp_allocator());
35469 this->_M_impl._M_finish += __n;
35470 std::copy_backward(__position.base(), __old_finish - __n,
35472 std::fill(__position.base(), __position.base() + __n,
35477 std::__uninitialized_fill_n_a(this->_M_impl._M_finish,
35478 __n - __elems_after,
35480 _M_get_Tp_allocator());
35481 this->_M_impl._M_finish += __n - __elems_after;
35482 std::__uninitialized_copy_a(__position.base(), __old_finish,
35483 this->_M_impl._M_finish,
35484 _M_get_Tp_allocator());
35485 this->_M_impl._M_finish += __elems_after;
35486 std::fill(__position.base(), __old_finish, __x_copy);
35491 const size_type __old_size = size();
35492 if (this->max_size() - __old_size < __n)
35493 __throw_length_error(("vector::_M_fill_insert"));
35496 size_type __len = __old_size + std::max(__old_size, __n);
35497 if (__len < __old_size)
35498 __len = this->max_size();
35500 pointer __new_start(this->_M_allocate(__len));
35501 pointer __new_finish(__new_start);
35505 std::__uninitialized_copy_a(this->_M_impl._M_start,
35508 _M_get_Tp_allocator());
35509 std::__uninitialized_fill_n_a(__new_finish, __n, __x,
35510 _M_get_Tp_allocator());
35511 __new_finish += __n;
35513 std::__uninitialized_copy_a(__position.base(),
35514 this->_M_impl._M_finish,
35516 _M_get_Tp_allocator());
35520 std::_Destroy(__new_start, __new_finish,
35521 _M_get_Tp_allocator());
35522 _M_deallocate(__new_start, __len);
35525 std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish,
35526 _M_get_Tp_allocator());
35527 _M_deallocate(this->_M_impl._M_start,
35528 this->_M_impl._M_end_of_storage
35529 - this->_M_impl._M_start);
35530 this->_M_impl._M_start = __new_start;
35531 this->_M_impl._M_finish = __new_finish;
35532 this->_M_impl._M_end_of_storage = __new_start + __len;
35537 template<typename _Tp, typename _Alloc> template<typename _InputIterator>
35539 vector<_Tp, _Alloc>::
35540 _M_range_insert(iterator __pos, _InputIterator __first,
35541 _InputIterator __last, std::input_iterator_tag)
35543 for (; __first != __last; ++__first)
35545 __pos = insert(__pos, *__first);
35550 template<typename _Tp, typename _Alloc>
35551 template<typename _ForwardIterator>
35553 vector<_Tp, _Alloc>::
35554 _M_range_insert(iterator __position, _ForwardIterator __first,
35555 _ForwardIterator __last, std::forward_iterator_tag)
35557 if (__first != __last)
35559 const size_type __n = std::distance(__first, __last);
35560 if (size_type(this->_M_impl._M_end_of_storage
35561 - this->_M_impl._M_finish) >= __n)
35563 const size_type __elems_after = end() - __position;
35564 pointer __old_finish(this->_M_impl._M_finish);
35565 if (__elems_after > __n)
35567 std::__uninitialized_copy_a(this->_M_impl._M_finish - __n,
35568 this->_M_impl._M_finish,
35569 this->_M_impl._M_finish,
35570 _M_get_Tp_allocator());
35571 this->_M_impl._M_finish += __n;
35572 std::copy_backward(__position.base(), __old_finish - __n,
35574 std::copy(__first, __last, __position);
35578 _ForwardIterator __mid = __first;
35579 std::advance(__mid, __elems_after);
35580 std::__uninitialized_copy_a(__mid, __last,
35581 this->_M_impl._M_finish,
35582 _M_get_Tp_allocator());
35583 this->_M_impl._M_finish += __n - __elems_after;
35584 std::__uninitialized_copy_a(__position.base(),
35586 this->_M_impl._M_finish,
35587 _M_get_Tp_allocator());
35588 this->_M_impl._M_finish += __elems_after;
35589 std::copy(__first, __mid, __position);
35594 const size_type __old_size = size();
35595 if (this->max_size() - __old_size < __n)
35596 __throw_length_error(("vector::_M_range_insert"));
35599 size_type __len = __old_size + std::max(__old_size, __n);
35600 if (__len < __old_size)
35601 __len = this->max_size();
35603 pointer __new_start(this->_M_allocate(__len));
35604 pointer __new_finish(__new_start);
35608 std::__uninitialized_copy_a(this->_M_impl._M_start,
35611 _M_get_Tp_allocator());
35613 std::__uninitialized_copy_a(__first, __last, __new_finish,
35614 _M_get_Tp_allocator());
35616 std::__uninitialized_copy_a(__position.base(),
35617 this->_M_impl._M_finish,
35619 _M_get_Tp_allocator());
35623 std::_Destroy(__new_start, __new_finish,
35624 _M_get_Tp_allocator());
35625 _M_deallocate(__new_start, __len);
35628 std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish,
35629 _M_get_Tp_allocator());
35630 _M_deallocate(this->_M_impl._M_start,
35631 this->_M_impl._M_end_of_storage
35632 - this->_M_impl._M_start);
35633 this->_M_impl._M_start = __new_start;
35634 this->_M_impl._M_finish = __new_finish;
35635 this->_M_impl._M_end_of_storage = __new_start + __len;
35641 # 75 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/vector" 2 3
35642 # 15 "/usr/include/boost/program_options/errors.hpp" 2 3 4
35646 namespace boost { namespace program_options {
35649 class error : public std::logic_error {
35651 error(const std::string& what) : std::logic_error(what) {}
35654 class invalid_syntax : public error {
35656 invalid_syntax(const std::string& tokens, const std::string& msg)
35657 : error(std::string(msg).append(" in '").append(tokens).append("'")),
35658 tokens(tokens), msg(msg)
35663 ~invalid_syntax() throw() {}
35666 std::string tokens, msg;
35670 class unknown_option : public error {
35672 unknown_option(const std::string& name)
35673 : error(std::string("unknown option ").append(name))
35678 class ambiguous_option : public error {
35680 ambiguous_option(const std::string& name,
35681 const std::vector<std::string>& alternatives)
35682 : error(std::string("ambiguous option ").append(name)),
35683 alternatives(alternatives)
35686 ~ambiguous_option() throw() {}
35689 std::vector<std::string> alternatives;
35694 class multiple_values : public error {
35696 multiple_values(const std::string& what) : error(what) {}
35702 class multiple_occurrences : public error {
35704 multiple_occurrences(const std::string& what) : error(what) {}
35708 class validation_error : public error {
35710 validation_error(const std::string& what) : error(what) {}
35711 ~validation_error() throw() {}
35712 void set_option_name(const std::string& option);
35714 const char* what() const throw();
35716 mutable std::string m_message;
35717 std::string m_option_name;
35721 class invalid_option_value
35722 : public validation_error
35725 invalid_option_value(const std::string& value);
35727 invalid_option_value(const std::wstring& value);
35732 class too_many_positional_options_error : public error {
35734 too_many_positional_options_error(const std::string& what)
35739 class too_few_positional_options_error : public error {
35741 too_few_positional_options_error(const std::string& what)
35745 class invalid_command_line_syntax : public invalid_syntax {
35748 long_not_allowed = 30,
35749 long_adjacent_not_allowed,
35750 short_adjacent_not_allowed,
35751 empty_adjacent_parameter,
35756 invalid_command_line_syntax(const std::string& tokens, kind_t kind);
35757 kind_t kind() const;
35759 static std::string error_message(kind_t kind);
35764 class invalid_command_line_style : public error {
35766 invalid_command_line_style(const std::string& msg)
35772 # 13 "/usr/include/boost/program_options/options_description.hpp" 2 3 4
35773 # 1 "/usr/include/boost/program_options/value_semantic.hpp" 1 3 4
35774 # 12 "/usr/include/boost/program_options/value_semantic.hpp" 3 4
35775 # 1 "/usr/include/boost/any.hpp" 1 3 4
35776 # 17 "/usr/include/boost/any.hpp" 3 4
35777 # 1 "/usr/include/boost/type_traits/remove_reference.hpp" 1 3 4
35778 # 12 "/usr/include/boost/type_traits/remove_reference.hpp" 3 4
35779 # 1 "/usr/include/boost/type_traits/broken_compiler_spec.hpp" 1 3 4
35780 # 95 "/usr/include/boost/type_traits/broken_compiler_spec.hpp" 3 4
35796 # 13 "/usr/include/boost/type_traits/remove_reference.hpp" 2 3 4
35797 # 21 "/usr/include/boost/type_traits/remove_reference.hpp" 3 4
35798 # 1 "/usr/include/boost/type_traits/detail/type_trait_def.hpp" 1 3 4
35799 # 14 "/usr/include/boost/type_traits/detail/type_trait_def.hpp" 3 4
35800 # 1 "/usr/include/boost/type_traits/detail/template_arity_spec.hpp" 1 3 4
35801 # 15 "/usr/include/boost/type_traits/detail/type_trait_def.hpp" 2 3 4
35802 # 22 "/usr/include/boost/type_traits/remove_reference.hpp" 2 3 4
35808 template< typename T > struct remove_reference { typedef T type; };
35809 template< typename T > struct remove_reference<T&> { typedef T type; };
35810 # 46 "/usr/include/boost/type_traits/remove_reference.hpp" 3 4
35813 # 1 "/usr/include/boost/type_traits/detail/type_trait_undef.hpp" 1 3 4
35814 # 49 "/usr/include/boost/type_traits/remove_reference.hpp" 2 3 4
35815 # 18 "/usr/include/boost/any.hpp" 2 3 4
35816 # 1 "/usr/include/boost/type_traits/is_reference.hpp" 1 3 4
35817 # 32 "/usr/include/boost/type_traits/is_reference.hpp" 3 4
35818 # 1 "/usr/include/boost/type_traits/detail/bool_trait_def.hpp" 1 3 4
35819 # 14 "/usr/include/boost/type_traits/detail/bool_trait_def.hpp" 3 4
35820 # 1 "/usr/include/boost/type_traits/detail/template_arity_spec.hpp" 1 3 4
35821 # 15 "/usr/include/boost/type_traits/detail/bool_trait_def.hpp" 2 3 4
35822 # 33 "/usr/include/boost/type_traits/is_reference.hpp" 2 3 4
35828 template< typename T > struct is_reference : ::boost::integral_constant<bool,false> { };
35829 template< typename T > struct is_reference< T& > : ::boost::integral_constant<bool,true> { };
35830 # 111 "/usr/include/boost/type_traits/is_reference.hpp" 3 4
35833 # 1 "/usr/include/boost/type_traits/detail/bool_trait_undef.hpp" 1 3 4
35834 # 114 "/usr/include/boost/type_traits/is_reference.hpp" 2 3 4
35835 # 19 "/usr/include/boost/any.hpp" 2 3 4
35837 # 1 "/usr/include/boost/static_assert.hpp" 1 3 4
35838 # 31 "/usr/include/boost/static_assert.hpp" 3 4
35842 template <bool x> struct STATIC_ASSERTION_FAILURE;
35844 template <> struct STATIC_ASSERTION_FAILURE<true> { enum { value = 1 }; };
35847 template<int x> struct static_assert_test{};
35850 # 21 "/usr/include/boost/any.hpp" 2 3 4
35863 template<typename ValueType>
35864 any(const ValueType & value)
35865 : content(new holder<ValueType>(value))
35869 any(const any & other)
35870 : content(other.content ? other.content->clone() : 0)
35881 any & swap(any & rhs)
35883 std::swap(content, rhs.content);
35887 template<typename ValueType>
35888 any & operator=(const ValueType & rhs)
35890 any(rhs).swap(*this);
35894 any & operator=(const any & rhs)
35896 any(rhs).swap(*this);
35907 const std::type_info & type() const
35909 return content ? content->type() : typeid(void);
35922 virtual ~placeholder()
35928 virtual const std::type_info & type() const = 0;
35930 virtual placeholder * clone() const = 0;
35934 template<typename ValueType>
35935 class holder : public placeholder
35939 holder(const ValueType & value)
35946 virtual const std::type_info & type() const
35948 return typeid(ValueType);
35951 virtual placeholder * clone() const
35953 return new holder(held);
35966 template<typename ValueType>
35967 friend ValueType * any_cast(any *);
35969 template<typename ValueType>
35970 friend ValueType * unsafe_any_cast(any *);
35978 placeholder * content;
35982 class bad_any_cast : public std::bad_cast
35985 virtual const char * what() const throw()
35987 return "boost::bad_any_cast: "
35988 "failed conversion using boost::any_cast";
35992 template<typename ValueType>
35993 ValueType * any_cast(any * operand)
35995 return operand && operand->type() == typeid(ValueType)
35996 ? &static_cast<any::holder<ValueType> *>(operand->content)->held
36000 template<typename ValueType>
36001 const ValueType * any_cast(const any * operand)
36003 return any_cast<ValueType>(const_cast<any *>(operand));
36006 template<typename ValueType>
36007 ValueType any_cast(const any & operand)
36009 typedef typename remove_reference<ValueType>::type nonref;
36010 # 191 "/usr/include/boost/any.hpp" 3 4
36011 const nonref * result = any_cast<nonref>(&operand);
36013 boost::throw_exception(bad_any_cast());
36017 template<typename ValueType>
36018 ValueType any_cast(any & operand)
36020 typedef typename remove_reference<ValueType>::type nonref;
36028 nonref * result = any_cast<nonref>(&operand);
36030 boost::throw_exception(bad_any_cast());
36039 template<typename ValueType>
36040 inline ValueType * unsafe_any_cast(any * operand)
36042 return &static_cast<any::holder<ValueType> *>(operand->content)->held;
36045 template<typename ValueType>
36046 inline const ValueType * unsafe_any_cast(const any * operand)
36048 return unsafe_any_cast<ValueType>(const_cast<any *>(operand));
36051 # 13 "/usr/include/boost/program_options/value_semantic.hpp" 2 3 4
36052 # 1 "/usr/include/boost/function/function1.hpp" 1 3 4
36053 # 11 "/usr/include/boost/function/function1.hpp" 3 4
36054 # 1 "/usr/include/boost/function/detail/maybe_include.hpp" 1 3 4
36055 # 18 "/usr/include/boost/function/detail/maybe_include.hpp" 3 4
36056 # 1 "/usr/include/boost/function/function_template.hpp" 1 3 4
36057 # 12 "/usr/include/boost/function/function_template.hpp" 3 4
36058 # 1 "/usr/include/boost/function/detail/prologue.hpp" 1 3 4
36059 # 12 "/usr/include/boost/function/detail/prologue.hpp" 3 4
36060 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/cassert" 1 3 4
36061 # 47 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/cassert" 3 4
36063 # 48 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/cassert" 3
36065 # 1 "/usr/include/assert.h" 1 3 4
36073 # 1 "/usr/include/gentoo-multilib/amd64/assert.h" 1 3 4
36074 # 37 "/usr/include/gentoo-multilib/amd64/assert.h" 3 4
36075 # 1 "/usr/include/features.h" 1 3 4
36076 # 38 "/usr/include/gentoo-multilib/amd64/assert.h" 2 3 4
36077 # 66 "/usr/include/gentoo-multilib/amd64/assert.h" 3 4
36081 extern void __assert_fail (__const char *__assertion, __const char *__file,
36082 unsigned int __line, __const char *__function)
36083 throw () __attribute__ ((__noreturn__));
36086 extern void __assert_perror_fail (int __errnum, __const char *__file,
36087 unsigned int __line,
36088 __const char *__function)
36089 throw () __attribute__ ((__noreturn__));
36094 extern void __assert (const char *__assertion, const char *__file, int __line)
36095 throw () __attribute__ ((__noreturn__));
36099 # 9 "/usr/include/assert.h" 2 3 4
36100 # 49 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/cassert" 2 3
36101 # 13 "/usr/include/boost/function/detail/prologue.hpp" 2 3 4
36105 # 1 "/usr/include/boost/function/function_base.hpp" 1 3 4
36106 # 19 "/usr/include/boost/function/function_base.hpp" 3 4
36107 # 1 "/usr/include/boost/assert.hpp" 1 3 4
36108 # 35 "/usr/include/boost/assert.hpp" 3 4
36109 # 1 "/usr/include/assert.h" 1 3 4
36117 # 1 "/usr/include/gentoo-multilib/amd64/assert.h" 1 3 4
36118 # 37 "/usr/include/gentoo-multilib/amd64/assert.h" 3 4
36119 # 1 "/usr/include/features.h" 1 3 4
36120 # 38 "/usr/include/gentoo-multilib/amd64/assert.h" 2 3 4
36121 # 66 "/usr/include/gentoo-multilib/amd64/assert.h" 3 4
36125 extern void __assert_fail (__const char *__assertion, __const char *__file,
36126 unsigned int __line, __const char *__function)
36127 throw () __attribute__ ((__noreturn__));
36130 extern void __assert_perror_fail (int __errnum, __const char *__file,
36131 unsigned int __line,
36132 __const char *__function)
36133 throw () __attribute__ ((__noreturn__));
36138 extern void __assert (const char *__assertion, const char *__file, int __line)
36139 throw () __attribute__ ((__noreturn__));
36143 # 9 "/usr/include/assert.h" 2 3 4
36144 # 36 "/usr/include/boost/assert.hpp" 2 3 4
36145 # 20 "/usr/include/boost/function/function_base.hpp" 2 3 4
36146 # 1 "/usr/include/boost/type_traits/is_integral.hpp" 1 3 4
36147 # 15 "/usr/include/boost/type_traits/is_integral.hpp" 3 4
36148 # 1 "/usr/include/boost/type_traits/detail/bool_trait_def.hpp" 1 3 4
36149 # 14 "/usr/include/boost/type_traits/detail/bool_trait_def.hpp" 3 4
36150 # 1 "/usr/include/boost/type_traits/detail/template_arity_spec.hpp" 1 3 4
36151 # 15 "/usr/include/boost/type_traits/detail/bool_trait_def.hpp" 2 3 4
36152 # 16 "/usr/include/boost/type_traits/is_integral.hpp" 2 3 4
36159 template< typename T > struct is_integral : ::boost::integral_constant<bool,false> { };
36161 template<> struct is_integral< unsigned char > : ::boost::integral_constant<bool,true> { }; template<> struct is_integral< unsigned char const > : ::boost::integral_constant<bool,true> { }; template<> struct is_integral< unsigned char volatile > : ::boost::integral_constant<bool,true> { }; template<> struct is_integral< unsigned char const volatile > : ::boost::integral_constant<bool,true> { };
36162 template<> struct is_integral< unsigned short > : ::boost::integral_constant<bool,true> { }; template<> struct is_integral< unsigned short const > : ::boost::integral_constant<bool,true> { }; template<> struct is_integral< unsigned short volatile > : ::boost::integral_constant<bool,true> { }; template<> struct is_integral< unsigned short const volatile > : ::boost::integral_constant<bool,true> { };
36163 template<> struct is_integral< unsigned int > : ::boost::integral_constant<bool,true> { }; template<> struct is_integral< unsigned int const > : ::boost::integral_constant<bool,true> { }; template<> struct is_integral< unsigned int volatile > : ::boost::integral_constant<bool,true> { }; template<> struct is_integral< unsigned int const volatile > : ::boost::integral_constant<bool,true> { };
36164 template<> struct is_integral< unsigned long > : ::boost::integral_constant<bool,true> { }; template<> struct is_integral< unsigned long const > : ::boost::integral_constant<bool,true> { }; template<> struct is_integral< unsigned long volatile > : ::boost::integral_constant<bool,true> { }; template<> struct is_integral< unsigned long const volatile > : ::boost::integral_constant<bool,true> { };
36166 template<> struct is_integral< signed char > : ::boost::integral_constant<bool,true> { }; template<> struct is_integral< signed char const > : ::boost::integral_constant<bool,true> { }; template<> struct is_integral< signed char volatile > : ::boost::integral_constant<bool,true> { }; template<> struct is_integral< signed char const volatile > : ::boost::integral_constant<bool,true> { };
36167 template<> struct is_integral< signed short > : ::boost::integral_constant<bool,true> { }; template<> struct is_integral< signed short const > : ::boost::integral_constant<bool,true> { }; template<> struct is_integral< signed short volatile > : ::boost::integral_constant<bool,true> { }; template<> struct is_integral< signed short const volatile > : ::boost::integral_constant<bool,true> { };
36168 template<> struct is_integral< signed int > : ::boost::integral_constant<bool,true> { }; template<> struct is_integral< signed int const > : ::boost::integral_constant<bool,true> { }; template<> struct is_integral< signed int volatile > : ::boost::integral_constant<bool,true> { }; template<> struct is_integral< signed int const volatile > : ::boost::integral_constant<bool,true> { };
36169 template<> struct is_integral< signed long > : ::boost::integral_constant<bool,true> { }; template<> struct is_integral< signed long const > : ::boost::integral_constant<bool,true> { }; template<> struct is_integral< signed long volatile > : ::boost::integral_constant<bool,true> { }; template<> struct is_integral< signed long const volatile > : ::boost::integral_constant<bool,true> { };
36171 template<> struct is_integral< bool > : ::boost::integral_constant<bool,true> { }; template<> struct is_integral< bool const > : ::boost::integral_constant<bool,true> { }; template<> struct is_integral< bool volatile > : ::boost::integral_constant<bool,true> { }; template<> struct is_integral< bool const volatile > : ::boost::integral_constant<bool,true> { };
36172 template<> struct is_integral< char > : ::boost::integral_constant<bool,true> { }; template<> struct is_integral< char const > : ::boost::integral_constant<bool,true> { }; template<> struct is_integral< char volatile > : ::boost::integral_constant<bool,true> { }; template<> struct is_integral< char const volatile > : ::boost::integral_constant<bool,true> { };
36178 template<> struct is_integral< wchar_t > : ::boost::integral_constant<bool,true> { }; template<> struct is_integral< wchar_t const > : ::boost::integral_constant<bool,true> { }; template<> struct is_integral< wchar_t volatile > : ::boost::integral_constant<bool,true> { }; template<> struct is_integral< wchar_t const volatile > : ::boost::integral_constant<bool,true> { };
36179 # 60 "/usr/include/boost/type_traits/is_integral.hpp" 3 4
36180 template<> struct is_integral< ::boost::ulong_long_type > : ::boost::integral_constant<bool,true> { }; template<> struct is_integral< ::boost::ulong_long_type const > : ::boost::integral_constant<bool,true> { }; template<> struct is_integral< ::boost::ulong_long_type volatile > : ::boost::integral_constant<bool,true> { }; template<> struct is_integral< ::boost::ulong_long_type const volatile > : ::boost::integral_constant<bool,true> { };
36181 template<> struct is_integral< ::boost::long_long_type > : ::boost::integral_constant<bool,true> { }; template<> struct is_integral< ::boost::long_long_type const > : ::boost::integral_constant<bool,true> { }; template<> struct is_integral< ::boost::long_long_type volatile > : ::boost::integral_constant<bool,true> { }; template<> struct is_integral< ::boost::long_long_type const volatile > : ::boost::integral_constant<bool,true> { };
36189 # 1 "/usr/include/boost/type_traits/detail/bool_trait_undef.hpp" 1 3 4
36190 # 70 "/usr/include/boost/type_traits/is_integral.hpp" 2 3 4
36191 # 21 "/usr/include/boost/function/function_base.hpp" 2 3 4
36192 # 1 "/usr/include/boost/type_traits/composite_traits.hpp" 1 3 4
36193 # 16 "/usr/include/boost/type_traits/composite_traits.hpp" 3 4
36194 # 1 "/usr/include/boost/type_traits/is_array.hpp" 1 3 4
36195 # 27 "/usr/include/boost/type_traits/is_array.hpp" 3 4
36196 # 1 "/usr/include/boost/type_traits/detail/bool_trait_def.hpp" 1 3 4
36197 # 14 "/usr/include/boost/type_traits/detail/bool_trait_def.hpp" 3 4
36198 # 1 "/usr/include/boost/type_traits/detail/template_arity_spec.hpp" 1 3 4
36199 # 15 "/usr/include/boost/type_traits/detail/bool_trait_def.hpp" 2 3 4
36200 # 28 "/usr/include/boost/type_traits/is_array.hpp" 2 3 4
36206 template< typename T > struct is_array : ::boost::integral_constant<bool,false> { };
36208 template< typename T, std::size_t N > struct is_array< T[N] > : ::boost::integral_constant<bool,true> { };
36209 template< typename T, std::size_t N > struct is_array< T const[N] > : ::boost::integral_constant<bool,true> { };
36210 template< typename T, std::size_t N > struct is_array< T volatile[N] > : ::boost::integral_constant<bool,true> { };
36211 template< typename T, std::size_t N > struct is_array< T const volatile[N] > : ::boost::integral_constant<bool,true> { };
36213 template< typename T > struct is_array< T[] > : ::boost::integral_constant<bool,true> { };
36214 template< typename T > struct is_array< T const[] > : ::boost::integral_constant<bool,true> { };
36215 template< typename T > struct is_array< T volatile[] > : ::boost::integral_constant<bool,true> { };
36216 template< typename T > struct is_array< T const volatile[] > : ::boost::integral_constant<bool,true> { };
36217 # 86 "/usr/include/boost/type_traits/is_array.hpp" 3 4
36220 # 1 "/usr/include/boost/type_traits/detail/bool_trait_undef.hpp" 1 3 4
36221 # 89 "/usr/include/boost/type_traits/is_array.hpp" 2 3 4
36222 # 17 "/usr/include/boost/type_traits/composite_traits.hpp" 2 3 4
36223 # 1 "/usr/include/boost/type_traits/is_enum.hpp" 1 3 4
36224 # 14 "/usr/include/boost/type_traits/is_enum.hpp" 3 4
36225 # 1 "/usr/include/boost/type_traits/add_reference.hpp" 1 3 4
36226 # 17 "/usr/include/boost/type_traits/add_reference.hpp" 3 4
36227 # 1 "/usr/include/boost/type_traits/detail/type_trait_def.hpp" 1 3 4
36228 # 14 "/usr/include/boost/type_traits/detail/type_trait_def.hpp" 3 4
36229 # 1 "/usr/include/boost/type_traits/detail/template_arity_spec.hpp" 1 3 4
36230 # 15 "/usr/include/boost/type_traits/detail/type_trait_def.hpp" 2 3 4
36231 # 18 "/usr/include/boost/type_traits/add_reference.hpp" 2 3 4
36236 # 55 "/usr/include/boost/type_traits/add_reference.hpp" 3 4
36237 template <typename T>
36238 struct add_reference_impl
36244 template< typename T > struct add_reference_impl<T&> { typedef T& type; };
36250 template<> struct add_reference_impl<void> { typedef void type; };
36252 template<> struct add_reference_impl<void const> { typedef void const type; };
36253 template<> struct add_reference_impl<void volatile> { typedef void volatile type; };
36254 template<> struct add_reference_impl<void const volatile> { typedef void const volatile type; };
36259 template< typename T > struct add_reference { typedef typename boost::detail::add_reference_impl<T>::type type; };
36269 # 1 "/usr/include/boost/type_traits/detail/type_trait_undef.hpp" 1 3 4
36270 # 88 "/usr/include/boost/type_traits/add_reference.hpp" 2 3 4
36271 # 15 "/usr/include/boost/type_traits/is_enum.hpp" 2 3 4
36272 # 1 "/usr/include/boost/type_traits/is_arithmetic.hpp" 1 3 4
36273 # 13 "/usr/include/boost/type_traits/is_arithmetic.hpp" 3 4
36274 # 1 "/usr/include/boost/type_traits/is_float.hpp" 1 3 4
36275 # 13 "/usr/include/boost/type_traits/is_float.hpp" 3 4
36276 # 1 "/usr/include/boost/type_traits/detail/bool_trait_def.hpp" 1 3 4
36277 # 14 "/usr/include/boost/type_traits/detail/bool_trait_def.hpp" 3 4
36278 # 1 "/usr/include/boost/type_traits/detail/template_arity_spec.hpp" 1 3 4
36279 # 15 "/usr/include/boost/type_traits/detail/bool_trait_def.hpp" 2 3 4
36280 # 14 "/usr/include/boost/type_traits/is_float.hpp" 2 3 4
36285 template< typename T > struct is_float : ::boost::integral_constant<bool,false> { };
36286 template<> struct is_float< float > : ::boost::integral_constant<bool,true> { }; template<> struct is_float< float const > : ::boost::integral_constant<bool,true> { }; template<> struct is_float< float volatile > : ::boost::integral_constant<bool,true> { }; template<> struct is_float< float const volatile > : ::boost::integral_constant<bool,true> { };
36287 template<> struct is_float< double > : ::boost::integral_constant<bool,true> { }; template<> struct is_float< double const > : ::boost::integral_constant<bool,true> { }; template<> struct is_float< double volatile > : ::boost::integral_constant<bool,true> { }; template<> struct is_float< double const volatile > : ::boost::integral_constant<bool,true> { };
36288 template<> struct is_float< long double > : ::boost::integral_constant<bool,true> { }; template<> struct is_float< long double const > : ::boost::integral_constant<bool,true> { }; template<> struct is_float< long double volatile > : ::boost::integral_constant<bool,true> { }; template<> struct is_float< long double const volatile > : ::boost::integral_constant<bool,true> { };
36292 # 1 "/usr/include/boost/type_traits/detail/bool_trait_undef.hpp" 1 3 4
36293 # 26 "/usr/include/boost/type_traits/is_float.hpp" 2 3 4
36294 # 14 "/usr/include/boost/type_traits/is_arithmetic.hpp" 2 3 4
36295 # 1 "/usr/include/boost/type_traits/detail/ice_or.hpp" 1 3 4
36296 # 13 "/usr/include/boost/type_traits/detail/ice_or.hpp" 3 4
36298 namespace type_traits {
36300 template <bool b1, bool b2, bool b3 = false, bool b4 = false, bool b5 = false, bool b6 = false, bool b7 = false>
36303 template <bool b1, bool b2, bool b3, bool b4, bool b5, bool b6, bool b7>
36306 static const bool value = true;
36310 struct ice_or<false, false, false, false, false, false, false>
36312 static const bool value = false;
36317 # 15 "/usr/include/boost/type_traits/is_arithmetic.hpp" 2 3 4
36321 # 1 "/usr/include/boost/type_traits/detail/bool_trait_def.hpp" 1 3 4
36322 # 14 "/usr/include/boost/type_traits/detail/bool_trait_def.hpp" 3 4
36323 # 1 "/usr/include/boost/type_traits/detail/template_arity_spec.hpp" 1 3 4
36324 # 15 "/usr/include/boost/type_traits/detail/bool_trait_def.hpp" 2 3 4
36325 # 19 "/usr/include/boost/type_traits/is_arithmetic.hpp" 2 3 4
36331 template< typename T >
36332 struct is_arithmetic_impl
36334 static const bool value = (::boost::type_traits::ice_or< ::boost::is_integral<T>::value, ::boost::is_float<T>::value >::value);
36344 template< typename T > struct is_arithmetic : ::boost::integral_constant<bool,::boost::detail::is_arithmetic_impl<T>::value> { };
36348 # 1 "/usr/include/boost/type_traits/detail/bool_trait_undef.hpp" 1 3 4
36349 # 42 "/usr/include/boost/type_traits/is_arithmetic.hpp" 2 3 4
36350 # 16 "/usr/include/boost/type_traits/is_enum.hpp" 2 3 4
36352 # 1 "/usr/include/boost/type_traits/is_convertible.hpp" 1 3 4
36353 # 15 "/usr/include/boost/type_traits/is_convertible.hpp" 3 4
36354 # 1 "/usr/include/boost/type_traits/detail/yes_no_type.hpp" 1 3 4
36355 # 14 "/usr/include/boost/type_traits/detail/yes_no_type.hpp" 3 4
36357 namespace type_traits {
36359 typedef char yes_type;
36367 # 16 "/usr/include/boost/type_traits/is_convertible.hpp" 2 3 4
36371 # 1 "/usr/include/boost/type_traits/ice.hpp" 1 3 4
36372 # 18 "/usr/include/boost/type_traits/ice.hpp" 3 4
36373 # 1 "/usr/include/boost/type_traits/detail/ice_eq.hpp" 1 3 4
36374 # 13 "/usr/include/boost/type_traits/detail/ice_eq.hpp" 3 4
36376 namespace type_traits {
36378 template <int b1, int b2>
36381 static const bool value = (b1 == b2);
36384 template <int b1, int b2>
36387 static const bool value = (b1 != b2);
36391 template <int b1, int b2> bool const ice_eq<b1,b2>::value;
36392 template <int b1, int b2> bool const ice_ne<b1,b2>::value;
36397 # 19 "/usr/include/boost/type_traits/ice.hpp" 2 3 4
36398 # 20 "/usr/include/boost/type_traits/is_convertible.hpp" 2 3 4
36400 # 1 "/usr/include/boost/type_traits/is_void.hpp" 1 3 4
36401 # 15 "/usr/include/boost/type_traits/is_void.hpp" 3 4
36402 # 1 "/usr/include/boost/type_traits/detail/bool_trait_def.hpp" 1 3 4
36403 # 14 "/usr/include/boost/type_traits/detail/bool_trait_def.hpp" 3 4
36404 # 1 "/usr/include/boost/type_traits/detail/template_arity_spec.hpp" 1 3 4
36405 # 15 "/usr/include/boost/type_traits/detail/bool_trait_def.hpp" 2 3 4
36406 # 16 "/usr/include/boost/type_traits/is_void.hpp" 2 3 4
36411 template< typename T > struct is_void : ::boost::integral_constant<bool,false> { };
36412 template<> struct is_void< void > : ::boost::integral_constant<bool,true> { };
36415 template<> struct is_void< void const > : ::boost::integral_constant<bool,true> { };
36416 template<> struct is_void< void volatile > : ::boost::integral_constant<bool,true> { };
36417 template<> struct is_void< void const volatile > : ::boost::integral_constant<bool,true> { };
36422 # 1 "/usr/include/boost/type_traits/detail/bool_trait_undef.hpp" 1 3 4
36423 # 32 "/usr/include/boost/type_traits/is_void.hpp" 2 3 4
36424 # 22 "/usr/include/boost/type_traits/is_convertible.hpp" 2 3 4
36426 # 1 "/usr/include/boost/type_traits/is_abstract.hpp" 1 3 4
36427 # 53 "/usr/include/boost/type_traits/is_abstract.hpp" 3 4
36428 # 1 "/usr/include/boost/type_traits/is_class.hpp" 1 3 4
36429 # 14 "/usr/include/boost/type_traits/is_class.hpp" 3 4
36430 # 1 "/usr/include/boost/type_traits/is_union.hpp" 1 3 4
36431 # 14 "/usr/include/boost/type_traits/is_union.hpp" 3 4
36432 # 1 "/usr/include/boost/type_traits/remove_cv.hpp" 1 3 4
36433 # 15 "/usr/include/boost/type_traits/remove_cv.hpp" 3 4
36434 # 1 "/usr/include/boost/type_traits/detail/cv_traits_impl.hpp" 1 3 4
36435 # 23 "/usr/include/boost/type_traits/detail/cv_traits_impl.hpp" 3 4
36445 template <typename T> struct cv_traits_imp {};
36447 template <typename T>
36448 struct cv_traits_imp<T*>
36450 static const bool is_const = false;
36451 static const bool is_volatile = false;
36452 typedef T unqualified_type;
36455 template <typename T>
36456 struct cv_traits_imp<const T*>
36458 static const bool is_const = true;
36459 static const bool is_volatile = false;
36460 typedef T unqualified_type;
36463 template <typename T>
36464 struct cv_traits_imp<volatile T*>
36466 static const bool is_const = false;
36467 static const bool is_volatile = true;
36468 typedef T unqualified_type;
36471 template <typename T>
36472 struct cv_traits_imp<const volatile T*>
36474 static const bool is_const = true;
36475 static const bool is_volatile = true;
36476 typedef T unqualified_type;
36478 # 92 "/usr/include/boost/type_traits/detail/cv_traits_impl.hpp" 3 4
36481 # 16 "/usr/include/boost/type_traits/remove_cv.hpp" 2 3 4
36482 # 26 "/usr/include/boost/type_traits/remove_cv.hpp" 3 4
36483 # 1 "/usr/include/boost/type_traits/detail/type_trait_def.hpp" 1 3 4
36484 # 14 "/usr/include/boost/type_traits/detail/type_trait_def.hpp" 3 4
36485 # 1 "/usr/include/boost/type_traits/detail/template_arity_spec.hpp" 1 3 4
36486 # 15 "/usr/include/boost/type_traits/detail/type_trait_def.hpp" 2 3 4
36487 # 27 "/usr/include/boost/type_traits/remove_cv.hpp" 2 3 4
36494 template< typename T > struct remove_cv { typedef typename boost::detail::cv_traits_imp<T*>::unqualified_type type; };
36495 template< typename T > struct remove_cv<T&> { typedef T& type; };
36497 template< typename T, std::size_t N > struct remove_cv<T const[N]> { typedef T type[N]; };
36498 template< typename T, std::size_t N > struct remove_cv<T volatile[N]> { typedef T type[N]; };
36499 template< typename T, std::size_t N > struct remove_cv<T const volatile[N]> { typedef T type[N]; };
36500 # 57 "/usr/include/boost/type_traits/remove_cv.hpp" 3 4
36503 # 1 "/usr/include/boost/type_traits/detail/type_trait_undef.hpp" 1 3 4
36504 # 60 "/usr/include/boost/type_traits/remove_cv.hpp" 2 3 4
36505 # 15 "/usr/include/boost/type_traits/is_union.hpp" 2 3 4
36507 # 1 "/usr/include/boost/type_traits/intrinsics.hpp" 1 3 4
36508 # 17 "/usr/include/boost/type_traits/is_union.hpp" 2 3 4
36511 # 1 "/usr/include/boost/type_traits/detail/bool_trait_def.hpp" 1 3 4
36512 # 14 "/usr/include/boost/type_traits/detail/bool_trait_def.hpp" 3 4
36513 # 1 "/usr/include/boost/type_traits/detail/template_arity_spec.hpp" 1 3 4
36514 # 15 "/usr/include/boost/type_traits/detail/bool_trait_def.hpp" 2 3 4
36515 # 20 "/usr/include/boost/type_traits/is_union.hpp" 2 3 4
36520 # 36 "/usr/include/boost/type_traits/is_union.hpp" 3 4
36521 template <typename T> struct is_union_impl
36523 static const bool value = false;
36528 template< typename T > struct is_union : ::boost::integral_constant<bool,::boost::detail::is_union_impl<T>::value> { };
36532 # 1 "/usr/include/boost/type_traits/detail/bool_trait_undef.hpp" 1 3 4
36533 # 48 "/usr/include/boost/type_traits/is_union.hpp" 2 3 4
36534 # 15 "/usr/include/boost/type_traits/is_class.hpp" 2 3 4
36535 # 33 "/usr/include/boost/type_traits/is_class.hpp" 3 4
36536 # 1 "/usr/include/boost/type_traits/detail/bool_trait_def.hpp" 1 3 4
36537 # 14 "/usr/include/boost/type_traits/detail/bool_trait_def.hpp" 3 4
36538 # 1 "/usr/include/boost/type_traits/detail/template_arity_spec.hpp" 1 3 4
36539 # 15 "/usr/include/boost/type_traits/detail/bool_trait_def.hpp" 2 3 4
36540 # 34 "/usr/include/boost/type_traits/is_class.hpp" 2 3 4
36545 # 53 "/usr/include/boost/type_traits/is_class.hpp" 3 4
36546 template <class U> ::boost::type_traits::yes_type is_class_tester(void(U::*)(void));
36547 template <class U> ::boost::type_traits::no_type is_class_tester(...);
36549 template <typename T>
36550 struct is_class_impl
36553 static const bool value = (::boost::type_traits::ice_and< sizeof(is_class_tester<T>(0)) == sizeof(::boost::type_traits::yes_type), ::boost::type_traits::ice_not< ::boost::is_union<T>::value >::value >::value);
36560 # 115 "/usr/include/boost/type_traits/is_class.hpp" 3 4
36567 template< typename T > struct is_class : ::boost::integral_constant<bool,::boost::detail::is_class_impl<T>::value> { };
36572 # 1 "/usr/include/boost/type_traits/detail/bool_trait_undef.hpp" 1 3 4
36573 # 127 "/usr/include/boost/type_traits/is_class.hpp" 2 3 4
36574 # 54 "/usr/include/boost/type_traits/is_abstract.hpp" 2 3 4
36580 # 1 "/usr/include/boost/type_traits/detail/bool_trait_def.hpp" 1 3 4
36581 # 14 "/usr/include/boost/type_traits/detail/bool_trait_def.hpp" 3 4
36582 # 1 "/usr/include/boost/type_traits/detail/template_arity_spec.hpp" 1 3 4
36583 # 15 "/usr/include/boost/type_traits/detail/bool_trait_def.hpp" 2 3 4
36584 # 60 "/usr/include/boost/type_traits/is_abstract.hpp" 2 3 4
36592 struct is_abstract_imp2
36599 static type_traits::no_type check_sig(U (*)[1]);
36601 static type_traits::yes_type check_sig(...);
36606 typedef ::boost::static_assert_test< sizeof(::boost::STATIC_ASSERTION_FAILURE< (bool)( sizeof(T) != 0 ) >)> boost_static_assert_typedef_81;
36611 static const unsigned s1 = sizeof(is_abstract_imp2<T>::template check_sig<T>(0));
36616 static const bool value = (s1 == sizeof(type_traits::yes_type));
36621 struct is_abstract_select
36626 typedef is_abstract_imp2<T> type;
36630 struct is_abstract_select<false>
36635 typedef false_type type;
36640 struct is_abstract_imp
36642 typedef is_abstract_select< ::boost::is_class<T>::value> selector;
36643 typedef typename selector::template rebind<T> binder;
36644 typedef typename binder::type type;
36646 static const bool value = type::value;
36653 template< typename T > struct is_abstract : ::boost::integral_constant<bool,::boost::detail::is_abstract_imp<T>::value> { };
36660 # 1 "/usr/include/boost/type_traits/detail/bool_trait_undef.hpp" 1 3 4
36661 # 136 "/usr/include/boost/type_traits/is_abstract.hpp" 2 3 4
36662 # 24 "/usr/include/boost/type_traits/is_convertible.hpp" 2 3 4
36663 # 32 "/usr/include/boost/type_traits/is_convertible.hpp" 3 4
36664 # 1 "/usr/include/boost/type_traits/detail/bool_trait_def.hpp" 1 3 4
36665 # 14 "/usr/include/boost/type_traits/detail/bool_trait_def.hpp" 3 4
36666 # 1 "/usr/include/boost/type_traits/detail/template_arity_spec.hpp" 1 3 4
36667 # 15 "/usr/include/boost/type_traits/detail/bool_trait_def.hpp" 2 3 4
36668 # 33 "/usr/include/boost/type_traits/is_convertible.hpp" 2 3 4
36671 # 46 "/usr/include/boost/type_traits/is_convertible.hpp" 3 4
36673 # 113 "/usr/include/boost/type_traits/is_convertible.hpp" 3 4
36674 struct any_conversion
36676 template <typename T> any_conversion(const volatile T&);
36677 template <typename T> any_conversion(T&);
36680 template <typename T> struct checker
36682 static boost::type_traits::no_type _m_check(any_conversion ...);
36683 static boost::type_traits::yes_type _m_check(T, int);
36686 template <typename From, typename To>
36687 struct is_convertible_basic_impl
36689 static From _m_from;
36690 static bool const value = sizeof( detail::checker<To>::_m_check(_m_from, 0) )
36691 == sizeof(::boost::type_traits::yes_type);
36693 # 282 "/usr/include/boost/type_traits/is_convertible.hpp" 3 4
36694 template <typename From, typename To>
36695 struct is_convertible_impl
36697 typedef typename add_reference<From>::type ref_type;
36698 static const bool value = (::boost::type_traits::ice_and< ::boost::type_traits::ice_or< ::boost::detail::is_convertible_basic_impl<ref_type,To>::value, ::boost::is_void<To>::value >::value, ::boost::type_traits::ice_not< ::boost::is_array<To>::value >::value >::value);
36699 # 297 "/usr/include/boost/type_traits/is_convertible.hpp" 3 4
36703 template <bool trivial1, bool trivial2, bool abstract_target>
36704 struct is_convertible_impl_select
36706 template <class From, class To>
36709 typedef is_convertible_impl<From, To> type;
36714 struct is_convertible_impl_select<true, true, false>
36716 template <class From, class To>
36719 typedef true_type type;
36724 struct is_convertible_impl_select<false, false, true>
36726 template <class From, class To>
36729 typedef false_type type;
36734 struct is_convertible_impl_select<true, false, true>
36736 template <class From, class To>
36739 typedef false_type type;
36743 template <typename From, typename To>
36744 struct is_convertible_impl_dispatch_base
36747 typedef is_convertible_impl_select<
36748 ::boost::is_arithmetic<From>::value,
36749 ::boost::is_arithmetic<To>::value,
36751 ::boost::is_abstract<To>::value
36759 typedef typename selector::template rebind<From, To> isc_binder;
36760 typedef typename isc_binder::type type;
36763 template <typename From, typename To>
36764 struct is_convertible_impl_dispatch
36765 : public is_convertible_impl_dispatch_base<From, To>::type
36767 # 385 "/usr/include/boost/type_traits/is_convertible.hpp" 3 4
36768 template<> struct is_convertible_impl< void,void > { static const bool value = (true); }; template<> struct is_convertible_impl< void,void const > { static const bool value = (true); }; template<> struct is_convertible_impl< void,void volatile > { static const bool value = (true); }; template<> struct is_convertible_impl< void,void const volatile > { static const bool value = (true); }; template<> struct is_convertible_impl< void const,void > { static const bool value = (true); }; template<> struct is_convertible_impl< void const,void const > { static const bool value = (true); }; template<> struct is_convertible_impl< void const,void volatile > { static const bool value = (true); }; template<> struct is_convertible_impl< void const,void const volatile > { static const bool value = (true); }; template<> struct is_convertible_impl< void volatile,void > { static const bool value = (true); }; template<> struct is_convertible_impl< void volatile,void const > { static const bool value = (true); }; template<> struct is_convertible_impl< void volatile,void volatile > { static const bool value = (true); }; template<> struct is_convertible_impl< void volatile,void const volatile > { static const bool value = (true); }; template<> struct is_convertible_impl< void const volatile,void > { static const bool value = (true); }; template<> struct is_convertible_impl< void const volatile,void const > { static const bool value = (true); }; template<> struct is_convertible_impl< void const volatile,void volatile > { static const bool value = (true); }; template<> struct is_convertible_impl< void const volatile,void const volatile > { static const bool value = (true); };
36769 # 395 "/usr/include/boost/type_traits/is_convertible.hpp" 3 4
36770 template< typename To > struct is_convertible_impl< void,To > { static const bool value = (false); };
36771 template< typename From > struct is_convertible_impl< From,void > { static const bool value = (true); };
36773 template< typename To > struct is_convertible_impl< void const,To > { static const bool value = (false); };
36774 template< typename To > struct is_convertible_impl< void volatile,To > { static const bool value = (false); };
36775 template< typename To > struct is_convertible_impl< void const volatile,To > { static const bool value = (false); };
36776 template< typename From > struct is_convertible_impl< From,void const > { static const bool value = (true); };
36777 template< typename From > struct is_convertible_impl< From,void volatile > { static const bool value = (true); };
36778 template< typename From > struct is_convertible_impl< From,void const volatile > { static const bool value = (true); };
36784 template< typename From, typename To > struct is_convertible : ::boost::integral_constant<bool,(::boost::detail::is_convertible_impl_dispatch<From,To>::value)> { };
36788 # 1 "/usr/include/boost/type_traits/detail/bool_trait_undef.hpp" 1 3 4
36789 # 414 "/usr/include/boost/type_traits/is_convertible.hpp" 2 3 4
36790 # 18 "/usr/include/boost/type_traits/is_enum.hpp" 2 3 4
36793 # 1 "/usr/include/boost/type_traits/is_function.hpp" 1 3 4
36794 # 15 "/usr/include/boost/type_traits/is_function.hpp" 3 4
36795 # 1 "/usr/include/boost/type_traits/detail/false_result.hpp" 1 3 4
36796 # 14 "/usr/include/boost/type_traits/detail/false_result.hpp" 3 4
36798 namespace type_traits {
36801 struct false_result
36803 template <typename T> struct result_
36805 static const bool value = false;
36810 # 16 "/usr/include/boost/type_traits/is_function.hpp" 2 3 4
36814 # 1 "/usr/include/boost/type_traits/detail/is_function_ptr_helper.hpp" 1 3 4
36815 # 26 "/usr/include/boost/type_traits/detail/is_function_ptr_helper.hpp" 3 4
36817 namespace type_traits {
36820 struct is_function_ptr_helper
36822 static const bool value = false;
36828 template <class R >
36829 struct is_function_ptr_helper<R (*)()> { static const bool value = true; };
36831 template <class R >
36832 struct is_function_ptr_helper<R (*)( ...)> { static const bool value = true; };
36834 template <class R , class T0>
36835 struct is_function_ptr_helper<R (*)( T0)> { static const bool value = true; };
36837 template <class R , class T0>
36838 struct is_function_ptr_helper<R (*)( T0 ...)> { static const bool value = true; };
36840 template <class R , class T0 , class T1>
36841 struct is_function_ptr_helper<R (*)( T0 , T1)> { static const bool value = true; };
36843 template <class R , class T0 , class T1>
36844 struct is_function_ptr_helper<R (*)( T0 , T1 ...)> { static const bool value = true; };
36846 template <class R , class T0 , class T1 , class T2>
36847 struct is_function_ptr_helper<R (*)( T0 , T1 , T2)> { static const bool value = true; };
36849 template <class R , class T0 , class T1 , class T2>
36850 struct is_function_ptr_helper<R (*)( T0 , T1 , T2 ...)> { static const bool value = true; };
36852 template <class R , class T0 , class T1 , class T2 , class T3>
36853 struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3)> { static const bool value = true; };
36855 template <class R , class T0 , class T1 , class T2 , class T3>
36856 struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 ...)> { static const bool value = true; };
36858 template <class R , class T0 , class T1 , class T2 , class T3 , class T4>
36859 struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4)> { static const bool value = true; };
36861 template <class R , class T0 , class T1 , class T2 , class T3 , class T4>
36862 struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 ...)> { static const bool value = true; };
36864 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
36865 struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5)> { static const bool value = true; };
36867 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
36868 struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 ...)> { static const bool value = true; };
36870 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
36871 struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6)> { static const bool value = true; };
36873 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
36874 struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...)> { static const bool value = true; };
36876 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
36877 struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7)> { static const bool value = true; };
36879 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
36880 struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...)> { static const bool value = true; };
36882 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
36883 struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8)> { static const bool value = true; };
36885 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
36886 struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...)> { static const bool value = true; };
36888 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
36889 struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9)> { static const bool value = true; };
36891 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
36892 struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...)> { static const bool value = true; };
36894 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
36895 struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10)> { static const bool value = true; };
36897 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
36898 struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...)> { static const bool value = true; };
36900 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
36901 struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11)> { static const bool value = true; };
36903 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
36904 struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...)> { static const bool value = true; };
36906 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12>
36907 struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12)> { static const bool value = true; };
36909 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12>
36910 struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...)> { static const bool value = true; };
36912 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13>
36913 struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13)> { static const bool value = true; };
36915 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13>
36916 struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...)> { static const bool value = true; };
36918 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14>
36919 struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14)> { static const bool value = true; };
36921 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14>
36922 struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...)> { static const bool value = true; };
36924 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15>
36925 struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15)> { static const bool value = true; };
36927 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15>
36928 struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...)> { static const bool value = true; };
36930 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16>
36931 struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16)> { static const bool value = true; };
36933 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16>
36934 struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...)> { static const bool value = true; };
36936 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17>
36937 struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17)> { static const bool value = true; };
36939 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17>
36940 struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...)> { static const bool value = true; };
36942 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18>
36943 struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18)> { static const bool value = true; };
36945 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18>
36946 struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...)> { static const bool value = true; };
36948 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19>
36949 struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19)> { static const bool value = true; };
36951 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19>
36952 struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...)> { static const bool value = true; };
36954 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20>
36955 struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20)> { static const bool value = true; };
36957 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20>
36958 struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...)> { static const bool value = true; };
36960 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21>
36961 struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21)> { static const bool value = true; };
36963 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21>
36964 struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...)> { static const bool value = true; };
36966 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22>
36967 struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22)> { static const bool value = true; };
36969 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22>
36970 struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...)> { static const bool value = true; };
36972 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23>
36973 struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23)> { static const bool value = true; };
36975 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23>
36976 struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...)> { static const bool value = true; };
36978 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24>
36979 struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24)> { static const bool value = true; };
36981 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24>
36982 struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...)> { static const bool value = true; };
36983 # 203 "/usr/include/boost/type_traits/detail/is_function_ptr_helper.hpp" 3 4
36986 # 20 "/usr/include/boost/type_traits/is_function.hpp" 2 3 4
36993 # 1 "/usr/include/boost/type_traits/detail/bool_trait_def.hpp" 1 3 4
36994 # 14 "/usr/include/boost/type_traits/detail/bool_trait_def.hpp" 3 4
36995 # 1 "/usr/include/boost/type_traits/detail/template_arity_spec.hpp" 1 3 4
36996 # 15 "/usr/include/boost/type_traits/detail/bool_trait_def.hpp" 2 3 4
36997 # 27 "/usr/include/boost/type_traits/is_function.hpp" 2 3 4
37009 template<bool is_ref = true>
37010 struct is_function_chooser
37011 : ::boost::type_traits::false_result
37016 struct is_function_chooser<false>
37018 template< typename T > struct result_
37019 : ::boost::type_traits::is_function_ptr_helper<T*>
37024 template <typename T>
37025 struct is_function_impl
37026 : is_function_chooser< ::boost::is_reference<T>::value >
37027 ::template result_<T>
37030 # 80 "/usr/include/boost/type_traits/is_function.hpp" 3 4
37033 template< typename T > struct is_function : ::boost::integral_constant<bool,::boost::detail::is_function_impl<T>::value> { };
37037 # 1 "/usr/include/boost/type_traits/detail/bool_trait_undef.hpp" 1 3 4
37038 # 87 "/usr/include/boost/type_traits/is_function.hpp" 2 3 4
37039 # 21 "/usr/include/boost/type_traits/is_enum.hpp" 2 3 4
37040 # 30 "/usr/include/boost/type_traits/is_enum.hpp" 3 4
37041 # 1 "/usr/include/boost/type_traits/detail/bool_trait_def.hpp" 1 3 4
37042 # 14 "/usr/include/boost/type_traits/detail/bool_trait_def.hpp" 3 4
37043 # 1 "/usr/include/boost/type_traits/detail/template_arity_spec.hpp" 1 3 4
37044 # 15 "/usr/include/boost/type_traits/detail/bool_trait_def.hpp" 2 3 4
37045 # 31 "/usr/include/boost/type_traits/is_enum.hpp" 2 3 4
37055 template <typename T>
37056 struct is_class_or_union
37058 static const bool value = (::boost::type_traits::ice_or< ::boost::is_class<T>::value , ::boost::is_union<T>::value >::value);
37064 # 75 "/usr/include/boost/type_traits/is_enum.hpp" 3 4
37065 struct int_convertible
37067 int_convertible(int);
37072 template <bool is_typename_arithmetic_or_reference = true>
37073 struct is_enum_helper
37075 template <typename T> struct type
37077 static const bool value = false;
37082 struct is_enum_helper<false>
37084 template <typename T> struct type
37085 : ::boost::is_convertible<typename boost::add_reference<T>::type,::boost::detail::int_convertible>
37090 template <typename T> struct is_enum_impl
37092 # 112 "/usr/include/boost/type_traits/is_enum.hpp" 3 4
37093 static const bool selector = (::boost::type_traits::ice_or< ::boost::is_arithmetic<T>::value , ::boost::is_reference<T>::value , ::boost::is_function<T>::value , is_class_or_union<T>::value , is_array<T>::value >::value);
37094 # 149 "/usr/include/boost/type_traits/is_enum.hpp" 3 4
37095 typedef ::boost::detail::is_enum_helper<selector> se_t;
37098 typedef typename se_t::template type<T> helper;
37099 static const bool value = helper::value;
37103 template<> struct is_enum_impl< void > { static const bool value = (false); };
37105 template<> struct is_enum_impl< void const > { static const bool value = (false); };
37106 template<> struct is_enum_impl< void volatile > { static const bool value = (false); };
37107 template<> struct is_enum_impl< void const volatile > { static const bool value = (false); };
37112 template< typename T > struct is_enum : ::boost::integral_constant<bool,::boost::detail::is_enum_impl<T>::value> { };
37113 # 176 "/usr/include/boost/type_traits/is_enum.hpp" 3 4
37116 # 1 "/usr/include/boost/type_traits/detail/bool_trait_undef.hpp" 1 3 4
37117 # 179 "/usr/include/boost/type_traits/is_enum.hpp" 2 3 4
37118 # 18 "/usr/include/boost/type_traits/composite_traits.hpp" 2 3 4
37119 # 22 "/usr/include/boost/function/function_base.hpp" 2 3 4
37120 # 1 "/usr/include/boost/ref.hpp" 1 3 4
37121 # 11 "/usr/include/boost/ref.hpp" 3 4
37122 # 1 "/usr/include/boost/utility/addressof.hpp" 1 3 4
37123 # 17 "/usr/include/boost/utility/addressof.hpp" 3 4
37125 # 32 "/usr/include/boost/utility/addressof.hpp" 3 4
37126 template <typename T> T*
37130 return reinterpret_cast<T*>(
37131 &const_cast<char&>(reinterpret_cast<const volatile char &>(v)));
37133 # 56 "/usr/include/boost/utility/addressof.hpp" 3 4
37135 # 12 "/usr/include/boost/ref.hpp" 2 3 4
37136 # 29 "/usr/include/boost/ref.hpp" 3 4
37140 template<class T> class reference_wrapper
37151 explicit reference_wrapper(T& t): t_(boost::addressof(t)) {}
37155 operator T& () const { return *t_; }
37157 T& get() const { return *t_; }
37159 T* get_pointer() const { return t_; }
37172 template<class T> inline reference_wrapper<T> const ref(T & t)
37174 return reference_wrapper<T>(t);
37177 template<class T> inline reference_wrapper<T const> const cref(T const & t)
37179 return reference_wrapper<T const>(t);
37186 template<typename T>
37187 class is_reference_wrapper
37188 : public mpl::false_
37192 template<typename T>
37193 class unwrap_reference
37198 # 106 "/usr/include/boost/ref.hpp" 3 4
37199 template<typename T> class is_reference_wrapper< reference_wrapper<T> > : public mpl::true_ { }; template<typename T> class unwrap_reference< reference_wrapper<T> > { public: typedef T type; };
37201 template<typename T> class is_reference_wrapper< reference_wrapper<T> const > : public mpl::true_ { }; template<typename T> class unwrap_reference< reference_wrapper<T> const > { public: typedef T type; };
37202 template<typename T> class is_reference_wrapper< reference_wrapper<T> volatile > : public mpl::true_ { }; template<typename T> class unwrap_reference< reference_wrapper<T> volatile > { public: typedef T type; };
37203 template<typename T> class is_reference_wrapper< reference_wrapper<T> const volatile > : public mpl::true_ { }; template<typename T> class unwrap_reference< reference_wrapper<T> const volatile > { public: typedef T type; };
37204 # 176 "/usr/include/boost/ref.hpp" 3 4
37206 # 23 "/usr/include/boost/function/function_base.hpp" 2 3 4
37207 # 1 "/usr/include/boost/mpl/if.hpp" 1 3 4
37208 # 17 "/usr/include/boost/mpl/if.hpp" 3 4
37209 # 1 "/usr/include/boost/mpl/aux_/value_wknd.hpp" 1 3 4
37210 # 18 "/usr/include/boost/mpl/aux_/value_wknd.hpp" 3 4
37211 # 1 "/usr/include/boost/mpl/aux_/config/integral.hpp" 1 3 4
37212 # 19 "/usr/include/boost/mpl/aux_/value_wknd.hpp" 2 3 4
37213 # 1 "/usr/include/boost/mpl/aux_/config/eti.hpp" 1 3 4
37214 # 20 "/usr/include/boost/mpl/aux_/value_wknd.hpp" 2 3 4
37215 # 73 "/usr/include/boost/mpl/aux_/value_wknd.hpp" 3 4
37216 namespace boost { namespace mpl { namespace aux {
37218 template< typename T > struct value_type_wknd
37220 typedef typename T::value_type type;
37222 # 87 "/usr/include/boost/mpl/aux_/value_wknd.hpp" 3 4
37224 # 18 "/usr/include/boost/mpl/if.hpp" 2 3 4
37226 # 1 "/usr/include/boost/mpl/aux_/na_spec.hpp" 1 3 4
37227 # 18 "/usr/include/boost/mpl/aux_/na_spec.hpp" 3 4
37228 # 1 "/usr/include/boost/mpl/lambda_fwd.hpp" 1 3 4
37229 # 17 "/usr/include/boost/mpl/lambda_fwd.hpp" 3 4
37230 # 1 "/usr/include/boost/mpl/void_fwd.hpp" 1 3 4
37231 # 19 "/usr/include/boost/mpl/void_fwd.hpp" 3 4
37237 namespace boost { namespace mpl { using ::mpl_::void_; } }
37238 # 18 "/usr/include/boost/mpl/lambda_fwd.hpp" 2 3 4
37239 # 1 "/usr/include/boost/mpl/aux_/na.hpp" 1 3 4
37240 # 18 "/usr/include/boost/mpl/aux_/na.hpp" 3 4
37241 # 1 "/usr/include/boost/mpl/aux_/na_fwd.hpp" 1 3 4
37242 # 19 "/usr/include/boost/mpl/aux_/na_fwd.hpp" 3 4
37249 enum { value = 0 };
37253 namespace boost { namespace mpl { using ::mpl_::na; } }
37254 # 19 "/usr/include/boost/mpl/aux_/na.hpp" 2 3 4
37258 namespace boost { namespace mpl {
37260 template< typename T >
37278 template< typename T >
37288 struct is_not_na<na>
37297 template< typename T, typename U > struct if_na
37302 template< typename U > struct if_na<na,U>
37306 # 93 "/usr/include/boost/mpl/aux_/na.hpp" 3 4
37308 # 19 "/usr/include/boost/mpl/lambda_fwd.hpp" 2 3 4
37314 # 1 "/usr/include/boost/mpl/aux_/lambda_arity_param.hpp" 1 3 4
37315 # 25 "/usr/include/boost/mpl/lambda_fwd.hpp" 2 3 4
37318 namespace boost { namespace mpl {
37322 , typename Tag = void_
37323 , typename Arity = int_< aux::template_arity<T>::value >
37330 # 19 "/usr/include/boost/mpl/aux_/na_spec.hpp" 2 3 4
37334 # 1 "/usr/include/boost/mpl/aux_/arity.hpp" 1 3 4
37335 # 17 "/usr/include/boost/mpl/aux_/arity.hpp" 3 4
37336 # 1 "/usr/include/boost/mpl/aux_/config/dtp.hpp" 1 3 4
37337 # 18 "/usr/include/boost/mpl/aux_/arity.hpp" 2 3 4
37338 # 23 "/usr/include/boost/mpl/aux_/na_spec.hpp" 2 3 4
37343 # 1 "/usr/include/boost/mpl/aux_/preprocessor/enum.hpp" 1 3 4
37344 # 28 "/usr/include/boost/mpl/aux_/na_spec.hpp" 2 3 4
37345 # 1 "/usr/include/boost/mpl/aux_/preprocessor/def_params_tail.hpp" 1 3 4
37346 # 17 "/usr/include/boost/mpl/aux_/preprocessor/def_params_tail.hpp" 3 4
37347 # 1 "/usr/include/boost/mpl/limits/arity.hpp" 1 3 4
37348 # 18 "/usr/include/boost/mpl/aux_/preprocessor/def_params_tail.hpp" 2 3 4
37353 # 1 "/usr/include/boost/preprocessor/logical/and.hpp" 1 3 4
37354 # 19 "/usr/include/boost/preprocessor/logical/and.hpp" 3 4
37355 # 1 "/usr/include/boost/preprocessor/logical/bitand.hpp" 1 3 4
37356 # 20 "/usr/include/boost/preprocessor/logical/and.hpp" 2 3 4
37357 # 23 "/usr/include/boost/mpl/aux_/preprocessor/def_params_tail.hpp" 2 3 4
37358 # 1 "/usr/include/boost/preprocessor/identity.hpp" 1 3 4
37359 # 15 "/usr/include/boost/preprocessor/identity.hpp" 3 4
37360 # 1 "/usr/include/boost/preprocessor/facilities/identity.hpp" 1 3 4
37361 # 16 "/usr/include/boost/preprocessor/identity.hpp" 2 3 4
37362 # 24 "/usr/include/boost/mpl/aux_/preprocessor/def_params_tail.hpp" 2 3 4
37363 # 1 "/usr/include/boost/preprocessor/empty.hpp" 1 3 4
37364 # 25 "/usr/include/boost/mpl/aux_/preprocessor/def_params_tail.hpp" 2 3 4
37365 # 66 "/usr/include/boost/mpl/aux_/preprocessor/def_params_tail.hpp" 3 4
37366 # 1 "/usr/include/boost/preprocessor/arithmetic/add.hpp" 1 3 4
37367 # 17 "/usr/include/boost/preprocessor/arithmetic/add.hpp" 3 4
37368 # 1 "/usr/include/boost/preprocessor/arithmetic/dec.hpp" 1 3 4
37369 # 18 "/usr/include/boost/preprocessor/arithmetic/add.hpp" 2 3 4
37372 # 1 "/usr/include/boost/preprocessor/control/while.hpp" 1 3 4
37373 # 20 "/usr/include/boost/preprocessor/control/while.hpp" 3 4
37374 # 1 "/usr/include/boost/preprocessor/detail/auto_rec.hpp" 1 3 4
37375 # 21 "/usr/include/boost/preprocessor/control/while.hpp" 2 3 4
37376 # 1 "/usr/include/boost/preprocessor/list/fold_left.hpp" 1 3 4
37377 # 18 "/usr/include/boost/preprocessor/list/fold_left.hpp" 3 4
37378 # 1 "/usr/include/boost/preprocessor/control/while.hpp" 1 3 4
37379 # 19 "/usr/include/boost/preprocessor/list/fold_left.hpp" 2 3 4
37381 # 1 "/usr/include/boost/preprocessor/detail/auto_rec.hpp" 1 3 4
37382 # 21 "/usr/include/boost/preprocessor/list/fold_left.hpp" 2 3 4
37383 # 41 "/usr/include/boost/preprocessor/list/fold_left.hpp" 3 4
37384 # 1 "/usr/include/boost/preprocessor/list/detail/fold_left.hpp" 1 3 4
37385 # 17 "/usr/include/boost/preprocessor/list/detail/fold_left.hpp" 3 4
37386 # 1 "/usr/include/boost/preprocessor/control/expr_iif.hpp" 1 3 4
37387 # 18 "/usr/include/boost/preprocessor/list/detail/fold_left.hpp" 2 3 4
37389 # 1 "/usr/include/boost/preprocessor/list/adt.hpp" 1 3 4
37390 # 18 "/usr/include/boost/preprocessor/list/adt.hpp" 3 4
37391 # 1 "/usr/include/boost/preprocessor/detail/is_binary.hpp" 1 3 4
37392 # 16 "/usr/include/boost/preprocessor/detail/is_binary.hpp" 3 4
37393 # 1 "/usr/include/boost/preprocessor/detail/check.hpp" 1 3 4
37394 # 17 "/usr/include/boost/preprocessor/detail/is_binary.hpp" 2 3 4
37395 # 19 "/usr/include/boost/preprocessor/list/adt.hpp" 2 3 4
37396 # 1 "/usr/include/boost/preprocessor/logical/compl.hpp" 1 3 4
37397 # 20 "/usr/include/boost/preprocessor/list/adt.hpp" 2 3 4
37398 # 20 "/usr/include/boost/preprocessor/list/detail/fold_left.hpp" 2 3 4
37399 # 42 "/usr/include/boost/preprocessor/list/fold_left.hpp" 2 3 4
37400 # 22 "/usr/include/boost/preprocessor/control/while.hpp" 2 3 4
37401 # 1 "/usr/include/boost/preprocessor/list/fold_right.hpp" 1 3 4
37402 # 20 "/usr/include/boost/preprocessor/list/fold_right.hpp" 3 4
37403 # 1 "/usr/include/boost/preprocessor/detail/auto_rec.hpp" 1 3 4
37404 # 21 "/usr/include/boost/preprocessor/list/fold_right.hpp" 2 3 4
37405 # 37 "/usr/include/boost/preprocessor/list/fold_right.hpp" 3 4
37406 # 1 "/usr/include/boost/preprocessor/list/detail/fold_right.hpp" 1 3 4
37407 # 18 "/usr/include/boost/preprocessor/list/detail/fold_right.hpp" 3 4
37408 # 1 "/usr/include/boost/preprocessor/list/reverse.hpp" 1 3 4
37409 # 19 "/usr/include/boost/preprocessor/list/detail/fold_right.hpp" 2 3 4
37410 # 38 "/usr/include/boost/preprocessor/list/fold_right.hpp" 2 3 4
37411 # 23 "/usr/include/boost/preprocessor/control/while.hpp" 2 3 4
37412 # 48 "/usr/include/boost/preprocessor/control/while.hpp" 3 4
37413 # 1 "/usr/include/boost/preprocessor/control/detail/while.hpp" 1 3 4
37414 # 49 "/usr/include/boost/preprocessor/control/while.hpp" 2 3 4
37415 # 21 "/usr/include/boost/preprocessor/arithmetic/add.hpp" 2 3 4
37416 # 1 "/usr/include/boost/preprocessor/tuple/elem.hpp" 1 3 4
37417 # 22 "/usr/include/boost/preprocessor/arithmetic/add.hpp" 2 3 4
37418 # 67 "/usr/include/boost/mpl/aux_/preprocessor/def_params_tail.hpp" 2 3 4
37419 # 1 "/usr/include/boost/preprocessor/arithmetic/sub.hpp" 1 3 4
37420 # 68 "/usr/include/boost/mpl/aux_/preprocessor/def_params_tail.hpp" 2 3 4
37421 # 29 "/usr/include/boost/mpl/aux_/na_spec.hpp" 2 3 4
37422 # 20 "/usr/include/boost/mpl/if.hpp" 2 3 4
37428 namespace boost { namespace mpl {
37446 struct if_c<false,T1,T2>
37466 static_cast<bool>(T1::value)
37473 typedef typename almost_type_::type type;
37477 # 131 "/usr/include/boost/mpl/if.hpp" 3 4
37478 template<> struct if_< na , na , na > { template< typename T1 , typename T2 , typename T3 , typename T4 =na , typename T5 =na > struct apply : if_< T1 , T2 , T3 > { }; }; template< typename Tag > struct lambda< if_< na , na , na > , Tag , int_<-1> > { typedef false_ is_le; typedef if_< na , na , na > result_; typedef if_< na , na , na > type; }; namespace aux { template< typename T1 , typename T2 , typename T3 > struct template_arity< if_< T1 , T2 , T3 > > : int_<3> { }; template<> struct template_arity< if_< na , na , na > > : int_<-1> { }; }
37481 # 24 "/usr/include/boost/function/function_base.hpp" 2 3 4
37483 # 1 "/usr/include/boost/type_traits/alignment_of.hpp" 1 3 4
37484 # 16 "/usr/include/boost/type_traits/alignment_of.hpp" 3 4
37485 # 1 "/usr/include/boost/type_traits/detail/size_t_trait_def.hpp" 1 3 4
37486 # 14 "/usr/include/boost/type_traits/detail/size_t_trait_def.hpp" 3 4
37487 # 1 "/usr/include/boost/type_traits/detail/template_arity_spec.hpp" 1 3 4
37488 # 15 "/usr/include/boost/type_traits/detail/size_t_trait_def.hpp" 2 3 4
37491 # 1 "/usr/include/boost/mpl/size_t.hpp" 1 3 4
37492 # 17 "/usr/include/boost/mpl/size_t.hpp" 3 4
37493 # 1 "/usr/include/boost/mpl/size_t_fwd.hpp" 1 3 4
37494 # 21 "/usr/include/boost/mpl/size_t_fwd.hpp" 3 4
37497 template< std::size_t N > struct size_t;
37500 namespace boost { namespace mpl { using ::mpl_::size_t; } }
37501 # 18 "/usr/include/boost/mpl/size_t.hpp" 2 3 4
37507 # 1 "/usr/include/boost/mpl/aux_/integral_wrapper.hpp" 1 3 4
37508 # 40 "/usr/include/boost/mpl/aux_/integral_wrapper.hpp" 3 4
37511 template< std::size_t N >
37514 static const std::size_t value = N;
37520 typedef size_t type;
37522 typedef std::size_t value_type;
37523 typedef integral_c_tag tag;
37524 # 72 "/usr/include/boost/mpl/aux_/integral_wrapper.hpp" 3 4
37525 typedef mpl_::size_t< static_cast<std::size_t>((value + 1)) > next;
37526 typedef mpl_::size_t< static_cast<std::size_t>((value - 1)) > prior;
37533 operator std::size_t() const { return static_cast<std::size_t>(this->value); }
37537 template< std::size_t N >
37538 std::size_t const mpl_::size_t< N >::value;
37542 # 24 "/usr/include/boost/mpl/size_t.hpp" 2 3 4
37543 # 18 "/usr/include/boost/type_traits/detail/size_t_trait_def.hpp" 2 3 4
37544 # 17 "/usr/include/boost/type_traits/alignment_of.hpp" 2 3 4
37545 # 26 "/usr/include/boost/type_traits/alignment_of.hpp" 3 4
37548 template <typename T> struct alignment_of;
37553 template <typename T>
37554 struct alignment_of_hack
37558 alignment_of_hack();
37562 template <unsigned A, unsigned S>
37563 struct alignment_logic
37565 static const std::size_t value = A < S ? A : S;
37569 template< typename T >
37570 struct alignment_of_impl
37572 static const std::size_t value = (::boost::detail::alignment_logic< sizeof(::boost::detail::alignment_of_hack<T>) - sizeof(T), sizeof(T) >::value);
37581 template< typename T > struct alignment_of : ::boost::integral_constant<std::size_t,::boost::detail::alignment_of_impl<T>::value> { };
37586 template <typename T>
37587 struct alignment_of<T&>
37591 # 81 "/usr/include/boost/type_traits/alignment_of.hpp" 3 4
37592 template<> struct alignment_of<void> : ::boost::integral_constant<std::size_t,0> { };
37594 template<> struct alignment_of<void const> : ::boost::integral_constant<std::size_t,0> { };
37595 template<> struct alignment_of<void volatile> : ::boost::integral_constant<std::size_t,0> { };
37596 template<> struct alignment_of<void const volatile> : ::boost::integral_constant<std::size_t,0> { };
37600 # 97 "/usr/include/boost/type_traits/alignment_of.hpp" 3 4
37601 # 1 "/usr/include/boost/type_traits/detail/size_t_trait_undef.hpp" 1 3 4
37602 # 98 "/usr/include/boost/type_traits/alignment_of.hpp" 2 3 4
37603 # 26 "/usr/include/boost/function/function_base.hpp" 2 3 4
37605 # 1 "/usr/include/boost/utility/enable_if.hpp" 1 3 4
37606 # 24 "/usr/include/boost/utility/enable_if.hpp" 3 4
37610 template <bool B, class T = void>
37611 struct enable_if_c {
37616 struct enable_if_c<false, T> {};
37618 template <class Cond, class T = void>
37619 struct enable_if : public enable_if_c<Cond::value, T> {};
37621 template <bool B, class T>
37622 struct lazy_enable_if_c {
37623 typedef typename T::type type;
37627 struct lazy_enable_if_c<false, T> {};
37629 template <class Cond, class T>
37630 struct lazy_enable_if : public lazy_enable_if_c<Cond::value, T> {};
37633 template <bool B, class T = void>
37634 struct disable_if_c {
37639 struct disable_if_c<true, T> {};
37641 template <class Cond, class T = void>
37642 struct disable_if : public disable_if_c<Cond::value, T> {};
37644 template <bool B, class T>
37645 struct lazy_disable_if_c {
37646 typedef typename T::type type;
37650 struct lazy_disable_if_c<true, T> {};
37652 template <class Cond, class T>
37653 struct lazy_disable_if : public lazy_disable_if_c<Cond::value, T> {};
37656 # 28 "/usr/include/boost/function/function_base.hpp" 2 3 4
37660 # 1 "/usr/include/boost/function_equal.hpp" 1 3 4
37661 # 13 "/usr/include/boost/function_equal.hpp" 3 4
37664 template<typename F, typename G>
37665 bool function_equal_impl(const F& f, const G& g, long)
37671 template<typename F, typename G>
37672 bool function_equal(const F& f, const G& g)
37673 { return function_equal_impl(f, g, 0); }
37676 # 32 "/usr/include/boost/function/function_base.hpp" 2 3 4
37677 # 81 "/usr/include/boost/function/function_base.hpp" 3 4
37679 # 91 "/usr/include/boost/function/function_base.hpp" 3 4
37680 template<typename Signature, typename Allocator = std::allocator<void> >
37684 template<typename Signature, typename Allocator>
37685 inline void swap(function<Signature, Allocator>& f1,
37686 function<Signature, Allocator>& f2)
37696 namespace function {
37705 union function_buffer
37712 const void* const_obj_ptr;
37715 mutable void (*func_ptr)();
37718 struct bound_memfunc_ptr_t {
37719 void (X::*memfunc_ptr)(int);
37721 } bound_memfunc_ptr;
37736 template<typename T> unusable(const T&) {}
37743 template<typename T> struct function_return_type { typedef T type; };
37746 struct function_return_type<void>
37748 typedef unusable type;
37752 enum functor_manager_operation_type {
37754 destroy_functor_tag,
37755 check_functor_type_tag,
37756 get_functor_type_tag
37760 struct function_ptr_tag {};
37761 struct function_obj_tag {};
37762 struct member_ptr_tag {};
37763 struct function_obj_ref_tag {};
37765 template<typename F>
37766 class get_function_tag
37768 typedef typename mpl::if_c<(is_pointer<F>::value),
37770 function_obj_tag>::type ptr_or_obj_tag;
37772 typedef typename mpl::if_c<(is_member_pointer<F>::value),
37774 ptr_or_obj_tag>::type ptr_or_obj_or_mem_tag;
37776 typedef typename mpl::if_c<(is_reference_wrapper<F>::value),
37777 function_obj_ref_tag,
37778 ptr_or_obj_or_mem_tag>::type or_ref_tag;
37781 typedef or_ref_tag type;
37786 template<typename F>
37787 struct reference_manager
37790 get(const function_buffer& in_buffer, function_buffer& out_buffer,
37791 functor_manager_operation_type op)
37794 case clone_functor_tag:
37795 out_buffer.obj_ptr = in_buffer.obj_ptr;
37798 case destroy_functor_tag:
37799 out_buffer.obj_ptr = 0;
37802 case check_functor_type_tag:
37807 const std::type_info& check_type =
37808 *static_cast<const std::type_info*>(out_buffer.const_obj_ptr);
37809 if ((std::strcmp((check_type).name(),(typeid(F)).name()) == 0))
37810 out_buffer.obj_ptr = in_buffer.obj_ptr;
37812 out_buffer.obj_ptr = 0;
37816 case get_functor_type_tag:
37817 out_buffer.const_obj_ptr = &typeid(F);
37827 template<typename F>
37828 struct function_allows_small_object_optimization
37830 static const bool value = ((sizeof(F) <= sizeof(function_buffer) && (alignment_of<function_buffer>::value % alignment_of<F>::value == 0)));
37841 template<typename Functor, typename Allocator>
37842 struct functor_manager
37845 typedef Functor functor_type;
37849 manager(const function_buffer& in_buffer, function_buffer& out_buffer,
37850 functor_manager_operation_type op, function_ptr_tag)
37852 if (op == clone_functor_tag)
37853 out_buffer.func_ptr = in_buffer.func_ptr;
37854 else if (op == destroy_functor_tag)
37855 out_buffer.func_ptr = 0;
37857 const std::type_info& check_type =
37858 *static_cast<const std::type_info*>(out_buffer.const_obj_ptr);
37859 if ((std::strcmp((check_type).name(),(typeid(Functor)).name()) == 0))
37860 out_buffer.obj_ptr = &in_buffer.func_ptr;
37862 out_buffer.obj_ptr = 0;
37868 manager(const function_buffer& in_buffer, function_buffer& out_buffer,
37869 functor_manager_operation_type op, mpl::true_)
37871 if (op == clone_functor_tag) {
37872 const functor_type* in_functor =
37873 reinterpret_cast<const functor_type*>(&in_buffer.data);
37874 new ((void*)&out_buffer.data) functor_type(*in_functor);
37875 } else if (op == destroy_functor_tag) {
37877 reinterpret_cast<functor_type*>(&out_buffer.data)->~Functor();
37879 const std::type_info& check_type =
37880 *static_cast<const std::type_info*>(out_buffer.const_obj_ptr);
37881 if ((std::strcmp((check_type).name(),(typeid(Functor)).name()) == 0))
37882 out_buffer.obj_ptr = &in_buffer.data;
37884 out_buffer.obj_ptr = 0;
37890 manager(const function_buffer& in_buffer, function_buffer& out_buffer,
37891 functor_manager_operation_type op, mpl::false_)
37894 typedef typename Allocator::template rebind<functor_type>::other
37896 typedef typename allocator_type::pointer pointer_type;
37902 allocator_type allocator;
37905 if (op == clone_functor_tag) {
37908 const functor_type* f =
37909 (const functor_type*)(in_buffer.obj_ptr);
37913 pointer_type copy = allocator.allocate(1);
37914 allocator.construct(copy, *f);
37917 functor_type* new_f = static_cast<functor_type*>(copy);
37921 out_buffer.obj_ptr = new_f;
37922 } else if (op == destroy_functor_tag) {
37925 static_cast<functor_type*>(out_buffer.obj_ptr);
37930 pointer_type victim = static_cast<pointer_type>(f);
37933 allocator.destroy(victim);
37934 allocator.deallocate(victim, 1);
37938 out_buffer.obj_ptr = 0;
37940 const std::type_info& check_type =
37941 *static_cast<const std::type_info*>(out_buffer.const_obj_ptr);
37942 if ((std::strcmp((check_type).name(),(typeid(Functor)).name()) == 0))
37943 out_buffer.obj_ptr = in_buffer.obj_ptr;
37945 out_buffer.obj_ptr = 0;
37953 manager(const function_buffer& in_buffer, function_buffer& out_buffer,
37954 functor_manager_operation_type op, function_obj_tag)
37956 manager(in_buffer, out_buffer, op,
37957 mpl::bool_<(function_allows_small_object_optimization<functor_type>::value)>());
37964 manage(const function_buffer& in_buffer, function_buffer& out_buffer,
37965 functor_manager_operation_type op)
37967 typedef typename get_function_tag<functor_type>::type tag_type;
37969 case get_functor_type_tag:
37970 out_buffer.const_obj_ptr = &typeid(functor_type);
37974 manager(in_buffer, out_buffer, op, tag_type());
37981 struct useless_clear_type {};
37982 # 457 "/usr/include/boost/function/function_base.hpp" 3 4
37985 vtable_base() : manager(0) { }
37986 void (*manager)(const function_buffer& in_buffer,
37987 function_buffer& out_buffer,
37988 functor_manager_operation_type op);
37999 class function_base
38002 function_base() : vtable(0) { }
38005 bool empty() const { return !vtable; }
38009 const std::type_info& target_type() const
38011 if (!vtable) return typeid(void);
38013 detail::function::function_buffer type;
38014 vtable->manager(functor, type, detail::function::get_functor_type_tag);
38015 return *static_cast<const std::type_info*>(type.const_obj_ptr);
38018 template<typename Functor>
38021 if (!vtable) return 0;
38023 detail::function::function_buffer type_result;
38024 type_result.const_obj_ptr = &typeid(Functor);
38025 vtable->manager(functor, type_result,
38026 detail::function::check_functor_type_tag);
38027 return static_cast<Functor*>(type_result.obj_ptr);
38030 template<typename Functor>
38034 const Functor* target() const
38037 if (!vtable) return 0;
38039 detail::function::function_buffer type_result;
38040 type_result.const_obj_ptr = &typeid(Functor);
38041 vtable->manager(functor, type_result,
38042 detail::function::check_functor_type_tag);
38045 return (const Functor*)(type_result.obj_ptr);
38048 template<typename F>
38049 bool contains(const F& f) const
38054 if (const F* fp = this->template target<F>())
38057 return function_equal(*fp, f);
38062 # 560 "/usr/include/boost/function/function_base.hpp" 3 4
38064 detail::function::vtable_base* vtable;
38065 mutable detail::function::function_buffer functor;
38072 class bad_function_call : public std::runtime_error
38075 bad_function_call() : std::runtime_error("call to empty boost::function") {}
38079 inline bool operator==(const function_base& f,
38080 detail::function::useless_clear_type*)
38085 inline bool operator!=(const function_base& f,
38086 detail::function::useless_clear_type*)
38091 inline bool operator==(detail::function::useless_clear_type*,
38092 const function_base& f)
38097 inline bool operator!=(detail::function::useless_clear_type*,
38098 const function_base& f)
38102 # 636 "/usr/include/boost/function/function_base.hpp" 3 4
38103 template<typename Functor>
38104 typename ::boost::enable_if_c<(::boost::type_traits::ice_not< (::boost::is_integral<Functor>::value)>::value), bool>::type
38105 operator==(const function_base& f, Functor g)
38107 if (const Functor* fp = f.template target<Functor>())
38108 return function_equal(*fp, g);
38112 template<typename Functor>
38113 typename ::boost::enable_if_c<(::boost::type_traits::ice_not< (::boost::is_integral<Functor>::value)>::value), bool>::type
38114 operator==(Functor g, const function_base& f)
38116 if (const Functor* fp = f.template target<Functor>())
38117 return function_equal(g, *fp);
38121 template<typename Functor>
38122 typename ::boost::enable_if_c<(::boost::type_traits::ice_not< (::boost::is_integral<Functor>::value)>::value), bool>::type
38123 operator!=(const function_base& f, Functor g)
38125 if (const Functor* fp = f.template target<Functor>())
38126 return !function_equal(*fp, g);
38130 template<typename Functor>
38131 typename ::boost::enable_if_c<(::boost::type_traits::ice_not< (::boost::is_integral<Functor>::value)>::value), bool>::type
38132 operator!=(Functor g, const function_base& f)
38134 if (const Functor* fp = f.template target<Functor>())
38135 return !function_equal(g, *fp);
38140 template<typename Functor>
38141 typename ::boost::enable_if_c<(::boost::type_traits::ice_not< (::boost::is_integral<Functor>::value)>::value), bool>::type
38142 operator==(const function_base& f, reference_wrapper<Functor> g)
38144 if (const Functor* fp = f.template target<Functor>())
38145 return fp == g.get_pointer();
38149 template<typename Functor>
38150 typename ::boost::enable_if_c<(::boost::type_traits::ice_not< (::boost::is_integral<Functor>::value)>::value), bool>::type
38151 operator==(reference_wrapper<Functor> g, const function_base& f)
38153 if (const Functor* fp = f.template target<Functor>())
38154 return g.get_pointer() == fp;
38158 template<typename Functor>
38159 typename ::boost::enable_if_c<(::boost::type_traits::ice_not< (::boost::is_integral<Functor>::value)>::value), bool>::type
38160 operator!=(const function_base& f, reference_wrapper<Functor> g)
38162 if (const Functor* fp = f.template target<Functor>())
38163 return fp != g.get_pointer();
38167 template<typename Functor>
38168 typename ::boost::enable_if_c<(::boost::type_traits::ice_not< (::boost::is_integral<Functor>::value)>::value), bool>::type
38169 operator!=(reference_wrapper<Functor> g, const function_base& f)
38171 if (const Functor* fp = f.template target<Functor>())
38172 return g.get_pointer() != fp;
38179 namespace function {
38180 inline bool has_empty_target(const function_base* f)
38191 inline bool has_empty_target(...)
38199 # 17 "/usr/include/boost/function/detail/prologue.hpp" 2 3 4
38200 # 1 "/usr/include/boost/mem_fn.hpp" 1 3 4
38201 # 25 "/usr/include/boost/mem_fn.hpp" 3 4
38202 # 1 "/usr/include/boost/get_pointer.hpp" 1 3 4
38203 # 10 "/usr/include/boost/get_pointer.hpp" 3 4
38208 template<class T> T * get_pointer(T * p)
38215 template<class T> T * get_pointer(std::auto_ptr<T> const& p)
38222 # 26 "/usr/include/boost/mem_fn.hpp" 2 3 4
38227 # 207 "/usr/include/boost/mem_fn.hpp" 3 4
38236 # 1 "/usr/include/boost/bind/mem_fn_template.hpp" 1 3 4
38237 # 21 "/usr/include/boost/bind/mem_fn_template.hpp" 3 4
38238 template<class R, class T > class mf0
38242 typedef R result_type;
38243 typedef T * argument_type;
38247 typedef R ( T::*F) ();
38250 template<class U> R call(U & u, T const *) const
38255 template<class U> R call(U & u, void const *) const
38257 return (get_pointer(u)->*f_)();
38262 explicit mf0(F f): f_(f) {}
38264 R operator()(T * p) const
38269 template<class U> R operator()(U & u) const
38271 return call(u, &u);
38276 template<class U> R operator()(U const & u) const
38278 return call(u, &u);
38283 R operator()(T & t) const
38288 bool operator==(mf0 const & rhs) const
38290 return f_ == rhs.f_;
38293 bool operator!=(mf0 const & rhs) const
38295 return f_ != rhs.f_;
38301 template<class R, class T > class cmf0
38305 typedef R result_type;
38306 typedef T const * argument_type;
38310 typedef R ( T::*F) () const;
38313 template<class U> R call(U & u, T const *) const
38318 template<class U> R call(U & u, void const *) const
38320 return (get_pointer(u)->*f_)();
38325 explicit cmf0(F f): f_(f) {}
38327 template<class U> R operator()(U const & u) const
38329 return call(u, &u);
38332 R operator()(T const & t) const
38337 bool operator==(cmf0 const & rhs) const
38339 return f_ == rhs.f_;
38342 bool operator!=(cmf0 const & rhs) const
38344 return f_ != rhs.f_;
38350 template<class R, class T, class A1 > class mf1
38354 typedef R result_type;
38355 typedef T * first_argument_type;
38356 typedef A1 second_argument_type;
38360 typedef R ( T::*F) (A1);
38363 template<class U, class B1> R call(U & u, T const *, B1 & b1) const
38365 return (u.*f_)(b1);
38368 template<class U, class B1> R call(U & u, void const *, B1 & b1) const
38370 return (get_pointer(u)->*f_)(b1);
38375 explicit mf1(F f): f_(f) {}
38377 R operator()(T * p, A1 a1) const
38379 return (p->*f_)(a1);
38382 template<class U> R operator()(U & u, A1 a1) const
38384 return call(u, &u, a1);
38389 template<class U> R operator()(U const & u, A1 a1) const
38391 return call(u, &u, a1);
38396 R operator()(T & t, A1 a1) const
38398 return (t.*f_)(a1);
38401 bool operator==(mf1 const & rhs) const
38403 return f_ == rhs.f_;
38406 bool operator!=(mf1 const & rhs) const
38408 return f_ != rhs.f_;
38414 template<class R, class T, class A1 > class cmf1
38418 typedef R result_type;
38419 typedef T const * first_argument_type;
38420 typedef A1 second_argument_type;
38424 typedef R ( T::*F) (A1) const;
38427 template<class U, class B1> R call(U & u, T const *, B1 & b1) const
38429 return (u.*f_)(b1);
38432 template<class U, class B1> R call(U & u, void const *, B1 & b1) const
38434 return (get_pointer(u)->*f_)(b1);
38439 explicit cmf1(F f): f_(f) {}
38441 template<class U> R operator()(U const & u, A1 a1) const
38443 return call(u, &u, a1);
38446 R operator()(T const & t, A1 a1) const
38448 return (t.*f_)(a1);
38451 bool operator==(cmf1 const & rhs) const
38453 return f_ == rhs.f_;
38456 bool operator!=(cmf1 const & rhs) const
38458 return f_ != rhs.f_;
38464 template<class R, class T, class A1, class A2 > class mf2
38468 typedef R result_type;
38472 typedef R ( T::*F) (A1, A2);
38475 template<class U, class B1, class B2> R call(U & u, T const *, B1 & b1, B2 & b2) const
38477 return (u.*f_)(b1, b2);
38480 template<class U, class B1, class B2> R call(U & u, void const *, B1 & b1, B2 & b2) const
38482 return (get_pointer(u)->*f_)(b1, b2);
38487 explicit mf2(F f): f_(f) {}
38489 R operator()(T * p, A1 a1, A2 a2) const
38491 return (p->*f_)(a1, a2);
38494 template<class U> R operator()(U & u, A1 a1, A2 a2) const
38496 return call(u, &u, a1, a2);
38501 template<class U> R operator()(U const & u, A1 a1, A2 a2) const
38503 return call(u, &u, a1, a2);
38508 R operator()(T & t, A1 a1, A2 a2) const
38510 return (t.*f_)(a1, a2);
38513 bool operator==(mf2 const & rhs) const
38515 return f_ == rhs.f_;
38518 bool operator!=(mf2 const & rhs) const
38520 return f_ != rhs.f_;
38526 template<class R, class T, class A1, class A2 > class cmf2
38530 typedef R result_type;
38534 typedef R ( T::*F) (A1, A2) const;
38537 template<class U, class B1, class B2> R call(U & u, T const *, B1 & b1, B2 & b2) const
38539 return (u.*f_)(b1, b2);
38542 template<class U, class B1, class B2> R call(U & u, void const *, B1 & b1, B2 & b2) const
38544 return (get_pointer(u)->*f_)(b1, b2);
38549 explicit cmf2(F f): f_(f) {}
38551 template<class U> R operator()(U const & u, A1 a1, A2 a2) const
38553 return call(u, &u, a1, a2);
38556 R operator()(T const & t, A1 a1, A2 a2) const
38558 return (t.*f_)(a1, a2);
38561 bool operator==(cmf2 const & rhs) const
38563 return f_ == rhs.f_;
38566 bool operator!=(cmf2 const & rhs) const
38568 return f_ != rhs.f_;
38574 template<class R, class T, class A1, class A2, class A3 > class mf3
38578 typedef R result_type;
38582 typedef R ( T::*F) (A1, A2, A3);
38585 template<class U, class B1, class B2, class B3> R call(U & u, T const *, B1 & b1, B2 & b2, B3 & b3) const
38587 return (u.*f_)(b1, b2, b3);
38590 template<class U, class B1, class B2, class B3> R call(U & u, void const *, B1 & b1, B2 & b2, B3 & b3) const
38592 return (get_pointer(u)->*f_)(b1, b2, b3);
38597 explicit mf3(F f): f_(f) {}
38599 R operator()(T * p, A1 a1, A2 a2, A3 a3) const
38601 return (p->*f_)(a1, a2, a3);
38604 template<class U> R operator()(U & u, A1 a1, A2 a2, A3 a3) const
38606 return call(u, &u, a1, a2, a3);
38611 template<class U> R operator()(U const & u, A1 a1, A2 a2, A3 a3) const
38613 return call(u, &u, a1, a2, a3);
38618 R operator()(T & t, A1 a1, A2 a2, A3 a3) const
38620 return (t.*f_)(a1, a2, a3);
38623 bool operator==(mf3 const & rhs) const
38625 return f_ == rhs.f_;
38628 bool operator!=(mf3 const & rhs) const
38630 return f_ != rhs.f_;
38636 template<class R, class T, class A1, class A2, class A3 > class cmf3
38640 typedef R result_type;
38644 typedef R ( T::*F) (A1, A2, A3) const;
38647 template<class U, class B1, class B2, class B3> R call(U & u, T const *, B1 & b1, B2 & b2, B3 & b3) const
38649 return (u.*f_)(b1, b2, b3);
38652 template<class U, class B1, class B2, class B3> R call(U & u, void const *, B1 & b1, B2 & b2, B3 & b3) const
38654 return (get_pointer(u)->*f_)(b1, b2, b3);
38659 explicit cmf3(F f): f_(f) {}
38661 template<class U> R operator()(U const & u, A1 a1, A2 a2, A3 a3) const
38663 return call(u, &u, a1, a2, a3);
38666 R operator()(T const & t, A1 a1, A2 a2, A3 a3) const
38668 return (t.*f_)(a1, a2, a3);
38671 bool operator==(cmf3 const & rhs) const
38673 return f_ == rhs.f_;
38676 bool operator!=(cmf3 const & rhs) const
38678 return f_ != rhs.f_;
38684 template<class R, class T, class A1, class A2, class A3, class A4 > class mf4
38688 typedef R result_type;
38692 typedef R ( T::*F) (A1, A2, A3, A4);
38695 template<class U, class B1, class B2, class B3, class B4> R call(U & u, T const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4) const
38697 return (u.*f_)(b1, b2, b3, b4);
38700 template<class U, class B1, class B2, class B3, class B4> R call(U & u, void const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4) const
38702 return (get_pointer(u)->*f_)(b1, b2, b3, b4);
38707 explicit mf4(F f): f_(f) {}
38709 R operator()(T * p, A1 a1, A2 a2, A3 a3, A4 a4) const
38711 return (p->*f_)(a1, a2, a3, a4);
38714 template<class U> R operator()(U & u, A1 a1, A2 a2, A3 a3, A4 a4) const
38716 return call(u, &u, a1, a2, a3, a4);
38721 template<class U> R operator()(U const & u, A1 a1, A2 a2, A3 a3, A4 a4) const
38723 return call(u, &u, a1, a2, a3, a4);
38728 R operator()(T & t, A1 a1, A2 a2, A3 a3, A4 a4) const
38730 return (t.*f_)(a1, a2, a3, a4);
38733 bool operator==(mf4 const & rhs) const
38735 return f_ == rhs.f_;
38738 bool operator!=(mf4 const & rhs) const
38740 return f_ != rhs.f_;
38746 template<class R, class T, class A1, class A2, class A3, class A4 > class cmf4
38750 typedef R result_type;
38754 typedef R ( T::*F) (A1, A2, A3, A4) const;
38757 template<class U, class B1, class B2, class B3, class B4> R call(U & u, T const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4) const
38759 return (u.*f_)(b1, b2, b3, b4);
38762 template<class U, class B1, class B2, class B3, class B4> R call(U & u, void const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4) const
38764 return (get_pointer(u)->*f_)(b1, b2, b3, b4);
38769 explicit cmf4(F f): f_(f) {}
38771 template<class U> R operator()(U const & u, A1 a1, A2 a2, A3 a3, A4 a4) const
38773 return call(u, &u, a1, a2, a3, a4);
38776 R operator()(T const & t, A1 a1, A2 a2, A3 a3, A4 a4) const
38778 return (t.*f_)(a1, a2, a3, a4);
38781 bool operator==(cmf4 const & rhs) const
38783 return f_ == rhs.f_;
38786 bool operator!=(cmf4 const & rhs) const
38788 return f_ != rhs.f_;
38794 template<class R, class T, class A1, class A2, class A3, class A4, class A5 > class mf5
38798 typedef R result_type;
38802 typedef R ( T::*F) (A1, A2, A3, A4, A5);
38805 template<class U, class B1, class B2, class B3, class B4, class B5> R call(U & u, T const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4, B5 & b5) const
38807 return (u.*f_)(b1, b2, b3, b4, b5);
38810 template<class U, class B1, class B2, class B3, class B4, class B5> R call(U & u, void const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4, B5 & b5) const
38812 return (get_pointer(u)->*f_)(b1, b2, b3, b4, b5);
38817 explicit mf5(F f): f_(f) {}
38819 R operator()(T * p, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) const
38821 return (p->*f_)(a1, a2, a3, a4, a5);
38824 template<class U> R operator()(U & u, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) const
38826 return call(u, &u, a1, a2, a3, a4, a5);
38831 template<class U> R operator()(U const & u, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) const
38833 return call(u, &u, a1, a2, a3, a4, a5);
38838 R operator()(T & t, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) const
38840 return (t.*f_)(a1, a2, a3, a4, a5);
38843 bool operator==(mf5 const & rhs) const
38845 return f_ == rhs.f_;
38848 bool operator!=(mf5 const & rhs) const
38850 return f_ != rhs.f_;
38856 template<class R, class T, class A1, class A2, class A3, class A4, class A5 > class cmf5
38860 typedef R result_type;
38864 typedef R ( T::*F) (A1, A2, A3, A4, A5) const;
38867 template<class U, class B1, class B2, class B3, class B4, class B5> R call(U & u, T const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4, B5 & b5) const
38869 return (u.*f_)(b1, b2, b3, b4, b5);
38872 template<class U, class B1, class B2, class B3, class B4, class B5> R call(U & u, void const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4, B5 & b5) const
38874 return (get_pointer(u)->*f_)(b1, b2, b3, b4, b5);
38879 explicit cmf5(F f): f_(f) {}
38881 template<class U> R operator()(U const & u, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) const
38883 return call(u, &u, a1, a2, a3, a4, a5);
38886 R operator()(T const & t, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) const
38888 return (t.*f_)(a1, a2, a3, a4, a5);
38891 bool operator==(cmf5 const & rhs) const
38893 return f_ == rhs.f_;
38896 bool operator!=(cmf5 const & rhs) const
38898 return f_ != rhs.f_;
38904 template<class R, class T, class A1, class A2, class A3, class A4, class A5, class A6 > class mf6
38908 typedef R result_type;
38912 typedef R ( T::*F) (A1, A2, A3, A4, A5, A6);
38915 template<class U, class B1, class B2, class B3, class B4, class B5, class B6> R call(U & u, T const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4, B5 & b5, B6 & b6) const
38917 return (u.*f_)(b1, b2, b3, b4, b5, b6);
38920 template<class U, class B1, class B2, class B3, class B4, class B5, class B6> R call(U & u, void const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4, B5 & b5, B6 & b6) const
38922 return (get_pointer(u)->*f_)(b1, b2, b3, b4, b5, b6);
38927 explicit mf6(F f): f_(f) {}
38929 R operator()(T * p, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6) const
38931 return (p->*f_)(a1, a2, a3, a4, a5, a6);
38934 template<class U> R operator()(U & u, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6) const
38936 return call(u, &u, a1, a2, a3, a4, a5, a6);
38941 template<class U> R operator()(U const & u, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6) const
38943 return call(u, &u, a1, a2, a3, a4, a5, a6);
38948 R operator()(T & t, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6) const
38950 return (t.*f_)(a1, a2, a3, a4, a5, a6);
38953 bool operator==(mf6 const & rhs) const
38955 return f_ == rhs.f_;
38958 bool operator!=(mf6 const & rhs) const
38960 return f_ != rhs.f_;
38966 template<class R, class T, class A1, class A2, class A3, class A4, class A5, class A6 > class cmf6
38970 typedef R result_type;
38974 typedef R ( T::*F) (A1, A2, A3, A4, A5, A6) const;
38977 template<class U, class B1, class B2, class B3, class B4, class B5, class B6> R call(U & u, T const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4, B5 & b5, B6 & b6) const
38979 return (u.*f_)(b1, b2, b3, b4, b5, b6);
38982 template<class U, class B1, class B2, class B3, class B4, class B5, class B6> R call(U & u, void const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4, B5 & b5, B6 & b6) const
38984 return (get_pointer(u)->*f_)(b1, b2, b3, b4, b5, b6);
38989 explicit cmf6(F f): f_(f) {}
38991 template<class U> R operator()(U const & u, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6) const
38993 return call(u, &u, a1, a2, a3, a4, a5, a6);
38996 R operator()(T const & t, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6) const
38998 return (t.*f_)(a1, a2, a3, a4, a5, a6);
39001 bool operator==(cmf6 const & rhs) const
39003 return f_ == rhs.f_;
39006 bool operator!=(cmf6 const & rhs) const
39008 return f_ != rhs.f_;
39014 template<class R, class T, class A1, class A2, class A3, class A4, class A5, class A6, class A7 > class mf7
39018 typedef R result_type;
39022 typedef R ( T::*F) (A1, A2, A3, A4, A5, A6, A7);
39025 template<class U, class B1, class B2, class B3, class B4, class B5, class B6, class B7> R call(U & u, T const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4, B5 & b5, B6 & b6, B7 & b7) const
39027 return (u.*f_)(b1, b2, b3, b4, b5, b6, b7);
39030 template<class U, class B1, class B2, class B3, class B4, class B5, class B6, class B7> R call(U & u, void const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4, B5 & b5, B6 & b6, B7 & b7) const
39032 return (get_pointer(u)->*f_)(b1, b2, b3, b4, b5, b6, b7);
39037 explicit mf7(F f): f_(f) {}
39039 R operator()(T * p, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7) const
39041 return (p->*f_)(a1, a2, a3, a4, a5, a6, a7);
39044 template<class U> R operator()(U & u, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7) const
39046 return call(u, &u, a1, a2, a3, a4, a5, a6, a7);
39051 template<class U> R operator()(U const & u, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7) const
39053 return call(u, &u, a1, a2, a3, a4, a5, a6, a7);
39058 R operator()(T & t, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7) const
39060 return (t.*f_)(a1, a2, a3, a4, a5, a6, a7);
39063 bool operator==(mf7 const & rhs) const
39065 return f_ == rhs.f_;
39068 bool operator!=(mf7 const & rhs) const
39070 return f_ != rhs.f_;
39076 template<class R, class T, class A1, class A2, class A3, class A4, class A5, class A6, class A7 > class cmf7
39080 typedef R result_type;
39084 typedef R ( T::*F) (A1, A2, A3, A4, A5, A6, A7) const;
39087 template<class U, class B1, class B2, class B3, class B4, class B5, class B6, class B7> R call(U & u, T const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4, B5 & b5, B6 & b6, B7 & b7) const
39089 return (u.*f_)(b1, b2, b3, b4, b5, b6, b7);
39092 template<class U, class B1, class B2, class B3, class B4, class B5, class B6, class B7> R call(U & u, void const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4, B5 & b5, B6 & b6, B7 & b7) const
39094 return (get_pointer(u)->*f_)(b1, b2, b3, b4, b5, b6, b7);
39099 explicit cmf7(F f): f_(f) {}
39101 template<class U> R operator()(U const & u, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7) const
39103 return call(u, &u, a1, a2, a3, a4, a5, a6, a7);
39106 R operator()(T const & t, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7) const
39108 return (t.*f_)(a1, a2, a3, a4, a5, a6, a7);
39111 bool operator==(cmf7 const & rhs) const
39113 return f_ == rhs.f_;
39116 bool operator!=(cmf7 const & rhs) const
39118 return f_ != rhs.f_;
39124 template<class R, class T, class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8 > class mf8
39128 typedef R result_type;
39132 typedef R ( T::*F) (A1, A2, A3, A4, A5, A6, A7, A8);
39135 template<class U, class B1, class B2, class B3, class B4, class B5, class B6, class B7, class B8> R call(U & u, T const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4, B5 & b5, B6 & b6, B7 & b7, B8 & b8) const
39137 return (u.*f_)(b1, b2, b3, b4, b5, b6, b7, b8);
39140 template<class U, class B1, class B2, class B3, class B4, class B5, class B6, class B7, class B8> R call(U & u, void const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4, B5 & b5, B6 & b6, B7 & b7, B8 & b8) const
39142 return (get_pointer(u)->*f_)(b1, b2, b3, b4, b5, b6, b7, b8);
39147 explicit mf8(F f): f_(f) {}
39149 R operator()(T * p, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8) const
39151 return (p->*f_)(a1, a2, a3, a4, a5, a6, a7, a8);
39154 template<class U> R operator()(U & u, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8) const
39156 return call(u, &u, a1, a2, a3, a4, a5, a6, a7, a8);
39161 template<class U> R operator()(U const & u, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8) const
39163 return call(u, &u, a1, a2, a3, a4, a5, a6, a7, a8);
39168 R operator()(T & t, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8) const
39170 return (t.*f_)(a1, a2, a3, a4, a5, a6, a7, a8);
39173 bool operator==(mf8 const & rhs) const
39175 return f_ == rhs.f_;
39178 bool operator!=(mf8 const & rhs) const
39180 return f_ != rhs.f_;
39186 template<class R, class T, class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8 > class cmf8
39190 typedef R result_type;
39194 typedef R ( T::*F) (A1, A2, A3, A4, A5, A6, A7, A8) const;
39197 template<class U, class B1, class B2, class B3, class B4, class B5, class B6, class B7, class B8> R call(U & u, T const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4, B5 & b5, B6 & b6, B7 & b7, B8 & b8) const
39199 return (u.*f_)(b1, b2, b3, b4, b5, b6, b7, b8);
39202 template<class U, class B1, class B2, class B3, class B4, class B5, class B6, class B7, class B8> R call(U & u, void const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4, B5 & b5, B6 & b6, B7 & b7, B8 & b8) const
39204 return (get_pointer(u)->*f_)(b1, b2, b3, b4, b5, b6, b7, b8);
39209 explicit cmf8(F f): f_(f) {}
39211 R operator()(T const * p, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8) const
39213 return (p->*f_)(a1, a2, a3, a4, a5, a6, a7, a8);
39216 template<class U> R operator()(U const & u, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8) const
39218 return call(u, &u, a1, a2, a3, a4, a5, a6, a7, a8);
39221 R operator()(T const & t, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8) const
39223 return (t.*f_)(a1, a2, a3, a4, a5, a6, a7, a8);
39226 bool operator==(cmf8 const & rhs) const
39228 return f_ == rhs.f_;
39231 bool operator!=(cmf8 const & rhs) const
39233 return f_ != rhs.f_;
39236 # 216 "/usr/include/boost/mem_fn.hpp" 2 3 4
39237 # 258 "/usr/include/boost/mem_fn.hpp" 3 4
39239 # 268 "/usr/include/boost/mem_fn.hpp" 3 4
39240 # 1 "/usr/include/boost/bind/mem_fn_cc.hpp" 1 3 4
39241 # 15 "/usr/include/boost/bind/mem_fn_cc.hpp" 3 4
39242 template<class R, class T> _mfi::mf0<R, T> mem_fn(R ( T::*f) ())
39244 return _mfi::mf0<R, T>(f);
39247 template<class R, class T> _mfi::cmf0<R, T> mem_fn(R ( T::*f) () const)
39249 return _mfi::cmf0<R, T>(f);
39252 template<class R, class T, class A1> _mfi::mf1<R, T, A1> mem_fn(R ( T::*f) (A1))
39254 return _mfi::mf1<R, T, A1>(f);
39257 template<class R, class T, class A1> _mfi::cmf1<R, T, A1> mem_fn(R ( T::*f) (A1) const)
39259 return _mfi::cmf1<R, T, A1>(f);
39262 template<class R, class T, class A1, class A2> _mfi::mf2<R, T, A1, A2> mem_fn(R ( T::*f) (A1, A2))
39264 return _mfi::mf2<R, T, A1, A2>(f);
39267 template<class R, class T, class A1, class A2> _mfi::cmf2<R, T, A1, A2> mem_fn(R ( T::*f) (A1, A2) const)
39269 return _mfi::cmf2<R, T, A1, A2>(f);
39272 template<class R, class T, class A1, class A2, class A3> _mfi::mf3<R, T, A1, A2, A3> mem_fn(R ( T::*f) (A1, A2, A3))
39274 return _mfi::mf3<R, T, A1, A2, A3>(f);
39277 template<class R, class T, class A1, class A2, class A3> _mfi::cmf3<R, T, A1, A2, A3> mem_fn(R ( T::*f) (A1, A2, A3) const)
39279 return _mfi::cmf3<R, T, A1, A2, A3>(f);
39282 template<class R, class T, class A1, class A2, class A3, class A4> _mfi::mf4<R, T, A1, A2, A3, A4> mem_fn(R ( T::*f) (A1, A2, A3, A4))
39284 return _mfi::mf4<R, T, A1, A2, A3, A4>(f);
39287 template<class R, class T, class A1, class A2, class A3, class A4> _mfi::cmf4<R, T, A1, A2, A3, A4> mem_fn(R ( T::*f) (A1, A2, A3, A4) const)
39289 return _mfi::cmf4<R, T, A1, A2, A3, A4>(f);
39292 template<class R, class T, class A1, class A2, class A3, class A4, class A5> _mfi::mf5<R, T, A1, A2, A3, A4, A5> mem_fn(R ( T::*f) (A1, A2, A3, A4, A5))
39294 return _mfi::mf5<R, T, A1, A2, A3, A4, A5>(f);
39297 template<class R, class T, class A1, class A2, class A3, class A4, class A5> _mfi::cmf5<R, T, A1, A2, A3, A4, A5> mem_fn(R ( T::*f) (A1, A2, A3, A4, A5) const)
39299 return _mfi::cmf5<R, T, A1, A2, A3, A4, A5>(f);
39302 template<class R, class T, class A1, class A2, class A3, class A4, class A5, class A6> _mfi::mf6<R, T, A1, A2, A3, A4, A5, A6> mem_fn(R ( T::*f) (A1, A2, A3, A4, A5, A6))
39304 return _mfi::mf6<R, T, A1, A2, A3, A4, A5, A6>(f);
39307 template<class R, class T, class A1, class A2, class A3, class A4, class A5, class A6> _mfi::cmf6<R, T, A1, A2, A3, A4, A5, A6> mem_fn(R ( T::*f) (A1, A2, A3, A4, A5, A6) const)
39309 return _mfi::cmf6<R, T, A1, A2, A3, A4, A5, A6>(f);
39312 template<class R, class T, class A1, class A2, class A3, class A4, class A5, class A6, class A7> _mfi::mf7<R, T, A1, A2, A3, A4, A5, A6, A7> mem_fn(R ( T::*f) (A1, A2, A3, A4, A5, A6, A7))
39314 return _mfi::mf7<R, T, A1, A2, A3, A4, A5, A6, A7>(f);
39317 template<class R, class T, class A1, class A2, class A3, class A4, class A5, class A6, class A7> _mfi::cmf7<R, T, A1, A2, A3, A4, A5, A6, A7> mem_fn(R ( T::*f) (A1, A2, A3, A4, A5, A6, A7) const)
39319 return _mfi::cmf7<R, T, A1, A2, A3, A4, A5, A6, A7>(f);
39322 template<class R, class T, class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8> _mfi::mf8<R, T, A1, A2, A3, A4, A5, A6, A7, A8> mem_fn(R ( T::*f) (A1, A2, A3, A4, A5, A6, A7, A8))
39324 return _mfi::mf8<R, T, A1, A2, A3, A4, A5, A6, A7, A8>(f);
39327 template<class R, class T, class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8> _mfi::cmf8<R, T, A1, A2, A3, A4, A5, A6, A7, A8> mem_fn(R ( T::*f) (A1, A2, A3, A4, A5, A6, A7, A8) const)
39329 return _mfi::cmf8<R, T, A1, A2, A3, A4, A5, A6, A7, A8>(f);
39331 # 269 "/usr/include/boost/mem_fn.hpp" 2 3 4
39332 # 311 "/usr/include/boost/mem_fn.hpp" 3 4
39336 template<class R, class T> class dm
39340 typedef R const & result_type;
39341 typedef T const * argument_type;
39348 template<class U> R const & call(U & u, T const *) const
39353 template<class U> R const & call(U & u, void const *) const
39355 return (get_pointer(u)->*f_);
39360 explicit dm(F f): f_(f) {}
39362 R & operator()(T * p) const
39367 R const & operator()(T const * p) const
39372 template<class U> R const & operator()(U const & u) const
39374 return call(u, &u);
39379 R & operator()(T & t) const
39384 R const & operator()(T const & t) const
39391 bool operator==(dm const & rhs) const
39393 return f_ == rhs.f_;
39396 bool operator!=(dm const & rhs) const
39398 return f_ != rhs.f_;
39404 template<class R, class T> _mfi::dm<R, T> mem_fn(R T::*f)
39406 return _mfi::dm<R, T>(f);
39410 # 18 "/usr/include/boost/function/detail/prologue.hpp" 2 3 4
39412 # 1 "/usr/include/boost/preprocessor/enum.hpp" 1 3 4
39413 # 15 "/usr/include/boost/preprocessor/enum.hpp" 3 4
39414 # 1 "/usr/include/boost/preprocessor/repetition/enum.hpp" 1 3 4
39415 # 20 "/usr/include/boost/preprocessor/repetition/enum.hpp" 3 4
39416 # 1 "/usr/include/boost/preprocessor/detail/auto_rec.hpp" 1 3 4
39417 # 21 "/usr/include/boost/preprocessor/repetition/enum.hpp" 2 3 4
39421 # 1 "/usr/include/boost/preprocessor/tuple/rem.hpp" 1 3 4
39422 # 25 "/usr/include/boost/preprocessor/repetition/enum.hpp" 2 3 4
39423 # 16 "/usr/include/boost/preprocessor/enum.hpp" 2 3 4
39424 # 20 "/usr/include/boost/function/detail/prologue.hpp" 2 3 4
39425 # 1 "/usr/include/boost/preprocessor/enum_params.hpp" 1 3 4
39426 # 15 "/usr/include/boost/preprocessor/enum_params.hpp" 3 4
39427 # 1 "/usr/include/boost/preprocessor/repetition/enum_params.hpp" 1 3 4
39428 # 16 "/usr/include/boost/preprocessor/enum_params.hpp" 2 3 4
39429 # 21 "/usr/include/boost/function/detail/prologue.hpp" 2 3 4
39430 # 13 "/usr/include/boost/function/function_template.hpp" 2 3 4
39431 # 83 "/usr/include/boost/function/function_template.hpp" 3 4
39434 namespace function {
39436 typename FunctionPtr,
39440 struct function_invoker1
39442 static R invoke(function_buffer& function_ptr ,
39445 FunctionPtr f = reinterpret_cast<FunctionPtr>(function_ptr.func_ptr);
39451 typename FunctionPtr,
39455 struct void_function_invoker1
39458 invoke(function_buffer& function_ptr ,
39462 FunctionPtr f = reinterpret_cast<FunctionPtr>(function_ptr.func_ptr);
39468 typename FunctionObj,
39472 struct function_obj_invoker1
39474 static R invoke(function_buffer& function_obj_ptr ,
39479 if (function_allows_small_object_optimization<FunctionObj>::value)
39480 f = reinterpret_cast<FunctionObj*>(&function_obj_ptr.data);
39482 f = reinterpret_cast<FunctionObj*>(function_obj_ptr.obj_ptr);
39488 typename FunctionObj,
39492 struct void_function_obj_invoker1
39495 invoke(function_buffer& function_obj_ptr ,
39500 if (function_allows_small_object_optimization<FunctionObj>::value)
39501 f = reinterpret_cast<FunctionObj*>(&function_obj_ptr.data);
39503 f = reinterpret_cast<FunctionObj*>(function_obj_ptr.obj_ptr);
39509 typename FunctionObj,
39513 struct function_ref_invoker1
39515 static R invoke(function_buffer& function_obj_ptr ,
39520 reinterpret_cast<FunctionObj*>(function_obj_ptr.obj_ptr);
39526 typename FunctionObj,
39530 struct void_function_ref_invoker1
39533 invoke(function_buffer& function_obj_ptr ,
39538 reinterpret_cast<FunctionObj*>(function_obj_ptr.obj_ptr);
39544 typename FunctionPtr,
39548 struct get_function_invoker1
39550 typedef typename mpl::if_c<(is_void<R>::value),
39551 void_function_invoker1<
39565 typename FunctionObj,
39569 struct get_function_obj_invoker1
39571 typedef typename mpl::if_c<(is_void<R>::value),
39572 void_function_obj_invoker1<
39577 function_obj_invoker1<
39586 typename FunctionObj,
39590 struct get_function_ref_invoker1
39592 typedef typename mpl::if_c<(is_void<R>::value),
39593 void_function_ref_invoker1<
39598 function_ref_invoker1<
39609 template<typename R , typename T0,
39610 typename Allocator>
39611 struct basic_vtable1 : vtable_base
39614 typedef R result_type;
39619 typedef result_type (*invoker_type)(function_buffer&
39623 template<typename F>
39624 basic_vtable1(F f) : vtable_base(), invoker(0)
39629 template<typename F>
39630 bool assign_to(F f, function_buffer& functor)
39632 typedef typename get_function_tag<F>::type tag;
39633 return assign_to(f, functor, tag());
39636 void clear(function_buffer& functor)
39639 manager(functor, functor, destroy_functor_tag);
39643 template<typename F>
39646 typedef typename get_function_tag<F>::type tag;
39651 template<typename FunctionPtr>
39652 void init(FunctionPtr , function_ptr_tag)
39654 typedef typename get_function_invoker1<
39659 actual_invoker_type;
39661 invoker = &actual_invoker_type::invoke;
39662 manager = &functor_manager<FunctionPtr, Allocator>::manage;
39665 template<typename FunctionPtr>
39667 assign_to(FunctionPtr f, function_buffer& functor, function_ptr_tag)
39669 this->clear(functor);
39673 functor.func_ptr = (void (*)())(f);
39682 template<typename MemberPtr>
39683 void init(MemberPtr f, member_ptr_tag)
39688 this->init(mem_fn(f));
39691 template<typename MemberPtr>
39692 bool assign_to(MemberPtr f, function_buffer& functor, member_ptr_tag)
39698 this->assign_to(mem_fn(f), functor);
39707 template<typename FunctionObj>
39708 void init(FunctionObj , function_obj_tag)
39710 typedef typename get_function_obj_invoker1<
39715 actual_invoker_type;
39717 invoker = &actual_invoker_type::invoke;
39718 manager = &functor_manager<FunctionObj, Allocator>::manage;
39722 template<typename FunctionObj>
39724 assign_functor(FunctionObj f, function_buffer& functor, mpl::true_)
39726 new ((void*)&functor.data) FunctionObj(f);
39730 template<typename FunctionObj>
39732 assign_functor(FunctionObj f, function_buffer& functor, mpl::false_)
39735 typedef typename Allocator::template rebind<FunctionObj>::other
39737 typedef typename allocator_type::pointer pointer_type;
39739 allocator_type allocator;
39740 pointer_type copy = allocator.allocate(1);
39741 allocator.construct(copy, f);
39744 functor.obj_ptr = static_cast<FunctionObj*>(copy);
39750 template<typename FunctionObj>
39752 assign_to(FunctionObj f, function_buffer& functor, function_obj_tag)
39754 if (!boost::detail::function::has_empty_target(boost::addressof(f))) {
39755 assign_functor(f, functor,
39756 mpl::bool_<(function_allows_small_object_optimization<FunctionObj>::value)>());
39764 template<typename FunctionObj>
39766 init(const reference_wrapper<FunctionObj>& , function_obj_ref_tag)
39768 typedef typename get_function_ref_invoker1<
39773 actual_invoker_type;
39775 invoker = &actual_invoker_type::invoke;
39776 manager = &reference_manager<FunctionObj>::get;
39779 template<typename FunctionObj>
39781 assign_to(const reference_wrapper<FunctionObj>& f,
39782 function_buffer& functor, function_obj_ref_tag)
39784 if (!boost::detail::function::has_empty_target(f.get_pointer())) {
39789 functor.const_obj_ptr = f.get_pointer();
39797 invoker_type invoker;
39805 typename Allocator = std::allocator<function_base>
39807 class function1 : public function_base
39811 typedef R result_type;
39818 typedef boost::detail::function::basic_vtable1<
39822 struct clear_type {};
39825 static const int args = 1;
39828 template<typename Args>
39831 typedef result_type type;
39835 typedef T0 argument_type;
39841 static const int arity = 1;
39842 typedef T0 arg1_type;
39844 typedef Allocator allocator_type;
39845 typedef function1 self_type;
39847 function1() : function_base() { }
39851 template<typename Functor>
39852 function1(Functor f
39854 ,typename enable_if_c<
39855 (boost::type_traits::ice_not<
39856 (is_integral<Functor>::value)>::value),
39862 this->assign_to(f);
39866 function1(clear_type*) : function_base() { }
39874 function1(const function1& f) : function_base()
39876 this->assign_to_own(f);
39879 ~function1() { clear(); }
39880 # 544 "/usr/include/boost/function/function_template.hpp" 3 4
39881 result_type operator()( T0 a0) const;
39889 template<typename Functor>
39891 typename enable_if_c<
39892 (boost::type_traits::ice_not<
39893 (is_integral<Functor>::value)>::value),
39898 operator=(Functor f)
39902 this->assign_to(f);
39911 function1& operator=(clear_type*)
39916 # 589 "/usr/include/boost/function/function_template.hpp" 3 4
39917 function1& operator=(const function1& f)
39924 this->assign_to_own(f);
39932 void swap(function1& other)
39934 if (&other == this)
39937 function1 tmp = *this;
39946 static_cast<vtable_type*>(vtable)->clear(this->functor);
39960 typedef void (dummy::*safe_bool)();
39963 operator safe_bool () const
39964 { return (this->empty())? 0 : &dummy::nonnull; }
39966 bool operator!() const
39967 { return this->empty(); }
39971 void assign_to_own(const function1& f)
39974 this->vtable = f.vtable;
39975 f.vtable->manager(f.functor, this->functor,
39976 boost::detail::function::clone_functor_tag);
39980 template<typename Functor>
39981 void assign_to(Functor f)
39983 static vtable_type stored_vtable(f);
39984 if (stored_vtable.assign_to(f, functor)) vtable = &stored_vtable;
39989 template<typename R , typename T0 ,
39990 typename Allocator>
39991 inline void swap(function1<
40006 template<typename R , typename T0,
40007 typename Allocator>
40008 typename function1<
40010 Allocator>::result_type
40014 ::operator()( T0 a0) const
40017 boost::throw_exception(bad_function_call());
40019 return static_cast<vtable_type*>(vtable)->invoker
40020 (this->functor , a0);
40025 template<typename R , typename T0 ,
40026 typename Allocator>
40027 void operator==(const function1<
40035 template<typename R , typename T0 ,
40036 typename Allocator>
40037 void operator!=(const function1<
40045 # 726 "/usr/include/boost/function/function_template.hpp" 3 4
40046 template<typename R ,
40048 typename Allocator>
40049 class function<R ( T0), Allocator>
40050 : public function1<R, T0
40053 typedef function1<R, T0
40054 , Allocator> base_type;
40055 typedef function self_type;
40057 struct clear_type {};
40060 typedef typename base_type::allocator_type allocator_type;
40062 function() : base_type() {}
40064 template<typename Functor>
40067 ,typename enable_if_c<
40068 (boost::type_traits::ice_not<
40069 (is_integral<Functor>::value)>::value),
40078 function(clear_type*) : base_type() {}
40081 function(const self_type& f) : base_type(static_cast<const base_type&>(f)){}
40083 function(const base_type& f) : base_type(static_cast<const base_type&>(f)){}
40085 self_type& operator=(const self_type& f)
40087 self_type(f).swap(*this);
40091 template<typename Functor>
40093 typename enable_if_c<
40094 (boost::type_traits::ice_not<
40095 (is_integral<Functor>::value)>::value),
40100 operator=(Functor f)
40102 self_type(f).swap(*this);
40107 self_type& operator=(clear_type*)
40114 self_type& operator=(const base_type& f)
40116 self_type(f).swap(*this);
40120 # 808 "/usr/include/boost/function/function_template.hpp" 3 4
40122 # 19 "/usr/include/boost/function/detail/maybe_include.hpp" 2 3 4
40123 # 12 "/usr/include/boost/function/function1.hpp" 2 3 4
40124 # 14 "/usr/include/boost/program_options/value_semantic.hpp" 2 3 4
40132 namespace boost { namespace program_options {
40137 class value_semantic {
40142 virtual std::string name() const = 0;
40146 virtual unsigned min_tokens() const = 0;
40150 virtual unsigned max_tokens() const = 0;
40156 virtual bool is_composing() const = 0;
40163 virtual void parse(boost::any& value_store,
40164 const std::vector<std::string>& new_tokens,
40171 virtual bool apply_default(boost::any& value_store) const = 0;
40175 virtual void notify(const boost::any& value_store) const = 0;
40177 virtual ~value_semantic() {}
40183 template<class charT>
40184 class value_semantic_codecvt_helper {
40187 # 84 "/usr/include/boost/program_options/value_semantic.hpp" 3 4
40190 value_semantic_codecvt_helper<char> : public value_semantic {
40192 void parse(boost::any& value_store,
40193 const std::vector<std::string>& new_tokens,
40196 virtual void xparse(boost::any& value_store,
40197 const std::vector<std::string>& new_tokens)
40200 # 104 "/usr/include/boost/program_options/value_semantic.hpp" 3 4
40203 value_semantic_codecvt_helper<wchar_t> : public value_semantic {
40205 void parse(boost::any& value_store,
40206 const std::vector<std::string>& new_tokens,
40210 virtual void xparse(boost::any& value_store,
40211 const std::vector<std::wstring>& new_tokens)
40219 untyped_value : public value_semantic_codecvt_helper<char> {
40221 untyped_value(bool zero_tokens = false)
40222 : m_zero_tokens(zero_tokens)
40225 std::string name() const;
40227 unsigned min_tokens() const;
40228 unsigned max_tokens() const;
40230 bool is_composing() const { return false; }
40237 void xparse(boost::any& value_store,
40238 const std::vector<std::string>& new_tokens) const;
40241 bool apply_default(boost::any&) const { return false; }
40244 void notify(const boost::any&) const {}
40246 bool m_zero_tokens;
40255 class typed_value_base
40260 virtual const std::type_info& value_type() const = 0;
40263 virtual ~typed_value_base() {}
40268 template<class T, class charT = char>
40269 class typed_value : public value_semantic_codecvt_helper<charT>,
40270 public typed_value_base
40275 typed_value(T* store_to)
40276 : m_store_to(store_to), m_composing(false),
40277 m_multitoken(false), m_zero_tokens(false)
40284 typed_value* default_value(const T& v)
40286 m_default_value = boost::any(v);
40287 m_default_value_as_text = boost::lexical_cast<std::string>(v);
40297 typed_value* default_value(const T& v, const std::string& textual)
40299 m_default_value = boost::any(v);
40300 m_default_value_as_text = textual;
40306 typed_value* notifier(function1<void, const T&> f)
40315 typed_value* composing()
40317 m_composing = true;
40322 typed_value* multitoken()
40324 m_multitoken = true;
40328 typed_value* zero_tokens()
40330 m_zero_tokens = true;
40337 std::string name() const;
40339 bool is_composing() const { return m_composing; }
40341 unsigned min_tokens() const
40343 if (m_zero_tokens) {
40350 unsigned max_tokens() const {
40351 if (m_multitoken) {
40353 } else if (m_zero_tokens) {
40363 void xparse(boost::any& value_store,
40364 const std::vector< std::basic_string<charT> >& new_tokens)
40371 virtual bool apply_default(boost::any& value_store) const
40373 if (m_default_value.empty()) {
40376 value_store = m_default_value;
40384 void notify(const boost::any& value_store) const;
40388 const std::type_info& value_type() const
40399 boost::any m_default_value;
40400 std::string m_default_value_as_text;
40401 bool m_composing, m_implicit, m_multitoken, m_zero_tokens;
40402 boost::function1<void, const T&> m_notifier;
40404 # 315 "/usr/include/boost/program_options/value_semantic.hpp" 3 4
40420 typed_value<T, wchar_t>*
40426 typed_value<T, wchar_t>*
40439 bool_switch(bool* v);
40443 # 1 "/usr/include/boost/program_options/detail/value_semantic.hpp" 1 3 4
40444 # 11 "/usr/include/boost/program_options/detail/value_semantic.hpp" 3 4
40445 namespace boost { namespace program_options {
40447 extern std::string arg;
40449 template<class T, class charT>
40451 typed_value<T, charT>::name() const
40453 if (!m_default_value.empty() && !m_default_value_as_text.empty()) {
40454 return arg + " (=" + m_default_value_as_text + ")";
40460 template<class T, class charT>
40462 typed_value<T, charT>::notify(const boost::any& value_store) const
40464 const T* value = boost::any_cast<const T>(&value_store);
40466 *m_store_to = *value;
40469 m_notifier(*value);
40473 namespace validators {
40479 template<class charT>
40480 const std::basic_string<charT>& get_single_string(
40481 const std::vector<std::basic_string<charT> >& v,
40482 bool allow_empty = false)
40484 static std::basic_string<charT> empty;
40486 throw validation_error("multiple values not allowed");
40489 else if (allow_empty)
40492 throw validation_error("at least one value required");
40497 check_first_occurrence(const boost::any& value);
40500 using namespace validators;
40501 # 75 "/usr/include/boost/program_options/detail/value_semantic.hpp" 3 4
40502 template<class T, class charT>
40503 void validate(boost::any& v,
40504 const std::vector< std::basic_string<charT> >& xs,
40507 validators::check_first_occurrence(v);
40508 std::basic_string<charT> s(validators::get_single_string(xs));
40510 v = any(lexical_cast<T>(s));
40512 catch(const bad_lexical_cast&) {
40513 boost::throw_exception(invalid_option_value(s));
40517 void validate(boost::any& v,
40518 const std::vector<std::string>& xs,
40523 void validate(boost::any& v,
40524 const std::vector<std::wstring>& xs,
40527 # 108 "/usr/include/boost/program_options/detail/value_semantic.hpp" 3 4
40528 void validate(boost::any& v,
40529 const std::vector<std::string>& xs,
40534 void validate(boost::any& v,
40535 const std::vector<std::wstring>& xs,
40543 template<class T, class charT>
40544 void validate(boost::any& v,
40545 const std::vector<std::basic_string<charT> >& s,
40550 v = boost::any(std::vector<T>());
40552 std::vector<T>* tv = boost::any_cast< std::vector<T> >(&v);
40553 ((__null != tv) ? static_cast<void> (0) : __assert_fail ("__null != tv", "/usr/include/boost/program_options/detail/value_semantic.hpp", 133, __PRETTY_FUNCTION__));
40554 for (unsigned i = 0; i < s.size(); ++i)
40557 tv->push_back(boost::lexical_cast<T>(s[i]));
40559 catch(const bad_lexical_cast& ) {
40560 boost::throw_exception(invalid_option_value(s[i]));
40565 template<class T, class charT>
40567 typed_value<T, charT>::
40568 xparse(boost::any& value_store,
40569 const std::vector<std::basic_string<charT> >& new_tokens) const
40571 validate(value_store, new_tokens, (T*)0, 0);
40579 return boost::program_options::value<T>(0);
40586 typed_value<T>* r = new typed_value<T>(v);
40592 typed_value<T, wchar_t>*
40595 return wvalue<T>(0);
40599 typed_value<T, wchar_t>*
40602 typed_value<T, wchar_t>* r = new typed_value<T, wchar_t>(v);
40610 # 354 "/usr/include/boost/program_options/value_semantic.hpp" 2 3 4
40611 # 14 "/usr/include/boost/program_options/options_description.hpp" 2 3 4
40613 # 1 "/usr/include/boost/function.hpp" 1 3 4
40614 # 13 "/usr/include/boost/function.hpp" 3 4
40615 # 1 "/usr/include/boost/preprocessor/iterate.hpp" 1 3 4
40616 # 15 "/usr/include/boost/preprocessor/iterate.hpp" 3 4
40617 # 1 "/usr/include/boost/preprocessor/iteration/iterate.hpp" 1 3 4
40618 # 17 "/usr/include/boost/preprocessor/iteration/iterate.hpp" 3 4
40619 # 1 "/usr/include/boost/preprocessor/array/elem.hpp" 1 3 4
40620 # 15 "/usr/include/boost/preprocessor/array/elem.hpp" 3 4
40621 # 1 "/usr/include/boost/preprocessor/array/data.hpp" 1 3 4
40622 # 16 "/usr/include/boost/preprocessor/array/elem.hpp" 2 3 4
40623 # 1 "/usr/include/boost/preprocessor/array/size.hpp" 1 3 4
40624 # 17 "/usr/include/boost/preprocessor/array/elem.hpp" 2 3 4
40625 # 18 "/usr/include/boost/preprocessor/iteration/iterate.hpp" 2 3 4
40628 # 1 "/usr/include/boost/preprocessor/slot/slot.hpp" 1 3 4
40629 # 16 "/usr/include/boost/preprocessor/slot/slot.hpp" 3 4
40630 # 1 "/usr/include/boost/preprocessor/slot/detail/def.hpp" 1 3 4
40631 # 17 "/usr/include/boost/preprocessor/slot/slot.hpp" 2 3 4
40632 # 21 "/usr/include/boost/preprocessor/iteration/iterate.hpp" 2 3 4
40633 # 16 "/usr/include/boost/preprocessor/iterate.hpp" 2 3 4
40634 # 14 "/usr/include/boost/function.hpp" 2 3 4
40635 # 62 "/usr/include/boost/function.hpp" 3 4
40636 # 1 "/usr/include/boost/preprocessor/iteration/detail/iter/forward1.hpp" 1 3 4
40637 # 24 "/usr/include/boost/preprocessor/iteration/detail/iter/forward1.hpp" 3 4
40638 # 1 "/usr/include/boost/preprocessor/iteration/detail/bounds/lower1.hpp" 1 3 4
40639 # 12 "/usr/include/boost/preprocessor/iteration/detail/bounds/lower1.hpp" 3 4
40640 # 1 "/usr/include/boost/preprocessor/slot/detail/shared.hpp" 1 3 4
40641 # 13 "/usr/include/boost/preprocessor/iteration/detail/bounds/lower1.hpp" 2 3 4
40642 # 25 "/usr/include/boost/preprocessor/iteration/detail/iter/forward1.hpp" 2 3 4
40644 # 1 "/usr/include/boost/preprocessor/iteration/detail/bounds/upper1.hpp" 1 3 4
40645 # 12 "/usr/include/boost/preprocessor/iteration/detail/bounds/upper1.hpp" 3 4
40646 # 1 "/usr/include/boost/preprocessor/slot/detail/shared.hpp" 1 3 4
40647 # 13 "/usr/include/boost/preprocessor/iteration/detail/bounds/upper1.hpp" 2 3 4
40648 # 27 "/usr/include/boost/preprocessor/iteration/detail/iter/forward1.hpp" 2 3 4
40649 # 47 "/usr/include/boost/preprocessor/iteration/detail/iter/forward1.hpp" 3 4
40650 # 1 "/usr/include/boost/function/detail/function_iterate.hpp" 1 3 4
40651 # 14 "/usr/include/boost/function/detail/function_iterate.hpp" 3 4
40652 # 1 "/usr/include/boost/function/detail/maybe_include.hpp" 1 3 4
40653 # 13 "/usr/include/boost/function/detail/maybe_include.hpp" 3 4
40654 # 1 "/usr/include/boost/function/function_template.hpp" 1 3 4
40655 # 83 "/usr/include/boost/function/function_template.hpp" 3 4
40658 namespace function {
40660 typename FunctionPtr,
40664 struct function_invoker0
40666 static R invoke(function_buffer& function_ptr
40669 FunctionPtr f = reinterpret_cast<FunctionPtr>(function_ptr.func_ptr);
40675 typename FunctionPtr,
40679 struct void_function_invoker0
40682 invoke(function_buffer& function_ptr
40686 FunctionPtr f = reinterpret_cast<FunctionPtr>(function_ptr.func_ptr);
40692 typename FunctionObj,
40696 struct function_obj_invoker0
40698 static R invoke(function_buffer& function_obj_ptr
40703 if (function_allows_small_object_optimization<FunctionObj>::value)
40704 f = reinterpret_cast<FunctionObj*>(&function_obj_ptr.data);
40706 f = reinterpret_cast<FunctionObj*>(function_obj_ptr.obj_ptr);
40712 typename FunctionObj,
40716 struct void_function_obj_invoker0
40719 invoke(function_buffer& function_obj_ptr
40724 if (function_allows_small_object_optimization<FunctionObj>::value)
40725 f = reinterpret_cast<FunctionObj*>(&function_obj_ptr.data);
40727 f = reinterpret_cast<FunctionObj*>(function_obj_ptr.obj_ptr);
40733 typename FunctionObj,
40737 struct function_ref_invoker0
40739 static R invoke(function_buffer& function_obj_ptr
40744 reinterpret_cast<FunctionObj*>(function_obj_ptr.obj_ptr);
40750 typename FunctionObj,
40754 struct void_function_ref_invoker0
40757 invoke(function_buffer& function_obj_ptr
40762 reinterpret_cast<FunctionObj*>(function_obj_ptr.obj_ptr);
40768 typename FunctionPtr,
40772 struct get_function_invoker0
40774 typedef typename mpl::if_c<(is_void<R>::value),
40775 void_function_invoker0<
40789 typename FunctionObj,
40793 struct get_function_obj_invoker0
40795 typedef typename mpl::if_c<(is_void<R>::value),
40796 void_function_obj_invoker0<
40801 function_obj_invoker0<
40810 typename FunctionObj,
40814 struct get_function_ref_invoker0
40816 typedef typename mpl::if_c<(is_void<R>::value),
40817 void_function_ref_invoker0<
40822 function_ref_invoker0<
40833 template<typename R ,
40834 typename Allocator>
40835 struct basic_vtable0 : vtable_base
40838 typedef R result_type;
40843 typedef result_type (*invoker_type)(function_buffer&
40847 template<typename F>
40848 basic_vtable0(F f) : vtable_base(), invoker(0)
40853 template<typename F>
40854 bool assign_to(F f, function_buffer& functor)
40856 typedef typename get_function_tag<F>::type tag;
40857 return assign_to(f, functor, tag());
40860 void clear(function_buffer& functor)
40863 manager(functor, functor, destroy_functor_tag);
40867 template<typename F>
40870 typedef typename get_function_tag<F>::type tag;
40875 template<typename FunctionPtr>
40876 void init(FunctionPtr , function_ptr_tag)
40878 typedef typename get_function_invoker0<
40883 actual_invoker_type;
40885 invoker = &actual_invoker_type::invoke;
40886 manager = &functor_manager<FunctionPtr, Allocator>::manage;
40889 template<typename FunctionPtr>
40891 assign_to(FunctionPtr f, function_buffer& functor, function_ptr_tag)
40893 this->clear(functor);
40897 functor.func_ptr = (void (*)())(f);
40903 # 358 "/usr/include/boost/function/function_template.hpp" 3 4
40904 template<typename FunctionObj>
40905 void init(FunctionObj , function_obj_tag)
40907 typedef typename get_function_obj_invoker0<
40912 actual_invoker_type;
40914 invoker = &actual_invoker_type::invoke;
40915 manager = &functor_manager<FunctionObj, Allocator>::manage;
40919 template<typename FunctionObj>
40921 assign_functor(FunctionObj f, function_buffer& functor, mpl::true_)
40923 new ((void*)&functor.data) FunctionObj(f);
40927 template<typename FunctionObj>
40929 assign_functor(FunctionObj f, function_buffer& functor, mpl::false_)
40932 typedef typename Allocator::template rebind<FunctionObj>::other
40934 typedef typename allocator_type::pointer pointer_type;
40936 allocator_type allocator;
40937 pointer_type copy = allocator.allocate(1);
40938 allocator.construct(copy, f);
40941 functor.obj_ptr = static_cast<FunctionObj*>(copy);
40947 template<typename FunctionObj>
40949 assign_to(FunctionObj f, function_buffer& functor, function_obj_tag)
40951 if (!boost::detail::function::has_empty_target(boost::addressof(f))) {
40952 assign_functor(f, functor,
40953 mpl::bool_<(function_allows_small_object_optimization<FunctionObj>::value)>());
40961 template<typename FunctionObj>
40963 init(const reference_wrapper<FunctionObj>& , function_obj_ref_tag)
40965 typedef typename get_function_ref_invoker0<
40970 actual_invoker_type;
40972 invoker = &actual_invoker_type::invoke;
40973 manager = &reference_manager<FunctionObj>::get;
40976 template<typename FunctionObj>
40978 assign_to(const reference_wrapper<FunctionObj>& f,
40979 function_buffer& functor, function_obj_ref_tag)
40981 if (!boost::detail::function::has_empty_target(f.get_pointer())) {
40986 functor.const_obj_ptr = f.get_pointer();
40994 invoker_type invoker;
41002 typename Allocator = std::allocator<function_base>
41004 class function0 : public function_base
41008 typedef R result_type;
41015 typedef boost::detail::function::basic_vtable0<
41019 struct clear_type {};
41022 static const int args = 0;
41025 template<typename Args>
41028 typedef result_type type;
41030 # 492 "/usr/include/boost/function/function_template.hpp" 3 4
41031 static const int arity = 0;
41034 typedef Allocator allocator_type;
41035 typedef function0 self_type;
41037 function0() : function_base() { }
41041 template<typename Functor>
41042 function0(Functor f
41044 ,typename enable_if_c<
41045 (boost::type_traits::ice_not<
41046 (is_integral<Functor>::value)>::value),
41052 this->assign_to(f);
41056 function0(clear_type*) : function_base() { }
41064 function0(const function0& f) : function_base()
41066 this->assign_to_own(f);
41069 ~function0() { clear(); }
41070 # 544 "/usr/include/boost/function/function_template.hpp" 3 4
41071 result_type operator()() const;
41079 template<typename Functor>
41081 typename enable_if_c<
41082 (boost::type_traits::ice_not<
41083 (is_integral<Functor>::value)>::value),
41088 operator=(Functor f)
41092 this->assign_to(f);
41101 function0& operator=(clear_type*)
41106 # 589 "/usr/include/boost/function/function_template.hpp" 3 4
41107 function0& operator=(const function0& f)
41114 this->assign_to_own(f);
41122 void swap(function0& other)
41124 if (&other == this)
41127 function0 tmp = *this;
41136 static_cast<vtable_type*>(vtable)->clear(this->functor);
41150 typedef void (dummy::*safe_bool)();
41153 operator safe_bool () const
41154 { return (this->empty())? 0 : &dummy::nonnull; }
41156 bool operator!() const
41157 { return this->empty(); }
41161 void assign_to_own(const function0& f)
41164 this->vtable = f.vtable;
41165 f.vtable->manager(f.functor, this->functor,
41166 boost::detail::function::clone_functor_tag);
41170 template<typename Functor>
41171 void assign_to(Functor f)
41173 static vtable_type stored_vtable(f);
41174 if (stored_vtable.assign_to(f, functor)) vtable = &stored_vtable;
41179 template<typename R ,
41180 typename Allocator>
41181 inline void swap(function0<
41196 template<typename R ,
41197 typename Allocator>
41198 typename function0<
41200 Allocator>::result_type
41204 ::operator()() const
41207 boost::throw_exception(bad_function_call());
41209 return static_cast<vtable_type*>(vtable)->invoker
41215 template<typename R ,
41216 typename Allocator>
41217 void operator==(const function0<
41225 template<typename R ,
41226 typename Allocator>
41227 void operator!=(const function0<
41235 # 726 "/usr/include/boost/function/function_template.hpp" 3 4
41236 template<typename R
41238 typename Allocator>
41239 class function<R (void), Allocator>
41240 : public function0<R,
41243 typedef function0<R,
41244 Allocator> base_type;
41245 typedef function self_type;
41247 struct clear_type {};
41250 typedef typename base_type::allocator_type allocator_type;
41252 function() : base_type() {}
41254 template<typename Functor>
41257 ,typename enable_if_c<
41258 (boost::type_traits::ice_not<
41259 (is_integral<Functor>::value)>::value),
41268 function(clear_type*) : base_type() {}
41271 function(const self_type& f) : base_type(static_cast<const base_type&>(f)){}
41273 function(const base_type& f) : base_type(static_cast<const base_type&>(f)){}
41275 self_type& operator=(const self_type& f)
41277 self_type(f).swap(*this);
41281 template<typename Functor>
41283 typename enable_if_c<
41284 (boost::type_traits::ice_not<
41285 (is_integral<Functor>::value)>::value),
41290 operator=(Functor f)
41292 self_type(f).swap(*this);
41297 self_type& operator=(clear_type*)
41304 self_type& operator=(const base_type& f)
41306 self_type(f).swap(*this);
41310 # 808 "/usr/include/boost/function/function_template.hpp" 3 4
41312 # 14 "/usr/include/boost/function/detail/maybe_include.hpp" 2 3 4
41313 # 15 "/usr/include/boost/function/detail/function_iterate.hpp" 2 3 4
41314 # 48 "/usr/include/boost/preprocessor/iteration/detail/iter/forward1.hpp" 2 3 4
41319 # 1 "/usr/include/boost/function/detail/function_iterate.hpp" 1 3 4
41320 # 14 "/usr/include/boost/function/detail/function_iterate.hpp" 3 4
41321 # 1 "/usr/include/boost/function/detail/maybe_include.hpp" 1 3 4
41322 # 15 "/usr/include/boost/function/detail/function_iterate.hpp" 2 3 4
41323 # 53 "/usr/include/boost/preprocessor/iteration/detail/iter/forward1.hpp" 2 3 4
41328 # 1 "/usr/include/boost/function/detail/function_iterate.hpp" 1 3 4
41329 # 14 "/usr/include/boost/function/detail/function_iterate.hpp" 3 4
41330 # 1 "/usr/include/boost/function/detail/maybe_include.hpp" 1 3 4
41331 # 23 "/usr/include/boost/function/detail/maybe_include.hpp" 3 4
41332 # 1 "/usr/include/boost/function/function_template.hpp" 1 3 4
41333 # 83 "/usr/include/boost/function/function_template.hpp" 3 4
41336 namespace function {
41338 typename FunctionPtr,
41340 typename T0 , typename T1
41342 struct function_invoker2
41344 static R invoke(function_buffer& function_ptr ,
41347 FunctionPtr f = reinterpret_cast<FunctionPtr>(function_ptr.func_ptr);
41348 return f( a0 , a1);
41353 typename FunctionPtr,
41355 typename T0 , typename T1
41357 struct void_function_invoker2
41360 invoke(function_buffer& function_ptr ,
41364 FunctionPtr f = reinterpret_cast<FunctionPtr>(function_ptr.func_ptr);
41370 typename FunctionObj,
41372 typename T0 , typename T1
41374 struct function_obj_invoker2
41376 static R invoke(function_buffer& function_obj_ptr ,
41381 if (function_allows_small_object_optimization<FunctionObj>::value)
41382 f = reinterpret_cast<FunctionObj*>(&function_obj_ptr.data);
41384 f = reinterpret_cast<FunctionObj*>(function_obj_ptr.obj_ptr);
41385 return (*f)( a0 , a1);
41390 typename FunctionObj,
41392 typename T0 , typename T1
41394 struct void_function_obj_invoker2
41397 invoke(function_buffer& function_obj_ptr ,
41402 if (function_allows_small_object_optimization<FunctionObj>::value)
41403 f = reinterpret_cast<FunctionObj*>(&function_obj_ptr.data);
41405 f = reinterpret_cast<FunctionObj*>(function_obj_ptr.obj_ptr);
41411 typename FunctionObj,
41413 typename T0 , typename T1
41415 struct function_ref_invoker2
41417 static R invoke(function_buffer& function_obj_ptr ,
41422 reinterpret_cast<FunctionObj*>(function_obj_ptr.obj_ptr);
41423 return (*f)( a0 , a1);
41428 typename FunctionObj,
41430 typename T0 , typename T1
41432 struct void_function_ref_invoker2
41435 invoke(function_buffer& function_obj_ptr ,
41440 reinterpret_cast<FunctionObj*>(function_obj_ptr.obj_ptr);
41446 typename FunctionPtr,
41448 typename T0 , typename T1
41450 struct get_function_invoker2
41452 typedef typename mpl::if_c<(is_void<R>::value),
41453 void_function_invoker2<
41467 typename FunctionObj,
41469 typename T0 , typename T1
41471 struct get_function_obj_invoker2
41473 typedef typename mpl::if_c<(is_void<R>::value),
41474 void_function_obj_invoker2<
41479 function_obj_invoker2<
41488 typename FunctionObj,
41490 typename T0 , typename T1
41492 struct get_function_ref_invoker2
41494 typedef typename mpl::if_c<(is_void<R>::value),
41495 void_function_ref_invoker2<
41500 function_ref_invoker2<
41511 template<typename R , typename T0 , typename T1,
41512 typename Allocator>
41513 struct basic_vtable2 : vtable_base
41516 typedef R result_type;
41521 typedef result_type (*invoker_type)(function_buffer&
41525 template<typename F>
41526 basic_vtable2(F f) : vtable_base(), invoker(0)
41531 template<typename F>
41532 bool assign_to(F f, function_buffer& functor)
41534 typedef typename get_function_tag<F>::type tag;
41535 return assign_to(f, functor, tag());
41538 void clear(function_buffer& functor)
41541 manager(functor, functor, destroy_functor_tag);
41545 template<typename F>
41548 typedef typename get_function_tag<F>::type tag;
41553 template<typename FunctionPtr>
41554 void init(FunctionPtr , function_ptr_tag)
41556 typedef typename get_function_invoker2<
41561 actual_invoker_type;
41563 invoker = &actual_invoker_type::invoke;
41564 manager = &functor_manager<FunctionPtr, Allocator>::manage;
41567 template<typename FunctionPtr>
41569 assign_to(FunctionPtr f, function_buffer& functor, function_ptr_tag)
41571 this->clear(functor);
41575 functor.func_ptr = (void (*)())(f);
41584 template<typename MemberPtr>
41585 void init(MemberPtr f, member_ptr_tag)
41590 this->init(mem_fn(f));
41593 template<typename MemberPtr>
41594 bool assign_to(MemberPtr f, function_buffer& functor, member_ptr_tag)
41600 this->assign_to(mem_fn(f), functor);
41609 template<typename FunctionObj>
41610 void init(FunctionObj , function_obj_tag)
41612 typedef typename get_function_obj_invoker2<
41617 actual_invoker_type;
41619 invoker = &actual_invoker_type::invoke;
41620 manager = &functor_manager<FunctionObj, Allocator>::manage;
41624 template<typename FunctionObj>
41626 assign_functor(FunctionObj f, function_buffer& functor, mpl::true_)
41628 new ((void*)&functor.data) FunctionObj(f);
41632 template<typename FunctionObj>
41634 assign_functor(FunctionObj f, function_buffer& functor, mpl::false_)
41637 typedef typename Allocator::template rebind<FunctionObj>::other
41639 typedef typename allocator_type::pointer pointer_type;
41641 allocator_type allocator;
41642 pointer_type copy = allocator.allocate(1);
41643 allocator.construct(copy, f);
41646 functor.obj_ptr = static_cast<FunctionObj*>(copy);
41652 template<typename FunctionObj>
41654 assign_to(FunctionObj f, function_buffer& functor, function_obj_tag)
41656 if (!boost::detail::function::has_empty_target(boost::addressof(f))) {
41657 assign_functor(f, functor,
41658 mpl::bool_<(function_allows_small_object_optimization<FunctionObj>::value)>());
41666 template<typename FunctionObj>
41668 init(const reference_wrapper<FunctionObj>& , function_obj_ref_tag)
41670 typedef typename get_function_ref_invoker2<
41675 actual_invoker_type;
41677 invoker = &actual_invoker_type::invoke;
41678 manager = &reference_manager<FunctionObj>::get;
41681 template<typename FunctionObj>
41683 assign_to(const reference_wrapper<FunctionObj>& f,
41684 function_buffer& functor, function_obj_ref_tag)
41686 if (!boost::detail::function::has_empty_target(f.get_pointer())) {
41691 functor.const_obj_ptr = f.get_pointer();
41699 invoker_type invoker;
41706 typename T0 , typename T1,
41707 typename Allocator = std::allocator<function_base>
41709 class function2 : public function_base
41713 typedef R result_type;
41720 typedef boost::detail::function::basic_vtable2<
41721 R , T0 , T1, Allocator>
41724 struct clear_type {};
41727 static const int args = 2;
41730 template<typename Args>
41733 typedef result_type type;
41739 typedef T0 first_argument_type;
41740 typedef T1 second_argument_type;
41743 static const int arity = 2;
41744 typedef T0 arg1_type; typedef T1 arg2_type;
41746 typedef Allocator allocator_type;
41747 typedef function2 self_type;
41749 function2() : function_base() { }
41753 template<typename Functor>
41754 function2(Functor f
41756 ,typename enable_if_c<
41757 (boost::type_traits::ice_not<
41758 (is_integral<Functor>::value)>::value),
41764 this->assign_to(f);
41768 function2(clear_type*) : function_base() { }
41776 function2(const function2& f) : function_base()
41778 this->assign_to_own(f);
41781 ~function2() { clear(); }
41782 # 544 "/usr/include/boost/function/function_template.hpp" 3 4
41783 result_type operator()( T0 a0 , T1 a1) const;
41791 template<typename Functor>
41793 typename enable_if_c<
41794 (boost::type_traits::ice_not<
41795 (is_integral<Functor>::value)>::value),
41800 operator=(Functor f)
41804 this->assign_to(f);
41813 function2& operator=(clear_type*)
41818 # 589 "/usr/include/boost/function/function_template.hpp" 3 4
41819 function2& operator=(const function2& f)
41826 this->assign_to_own(f);
41834 void swap(function2& other)
41836 if (&other == this)
41839 function2 tmp = *this;
41848 static_cast<vtable_type*>(vtable)->clear(this->functor);
41862 typedef void (dummy::*safe_bool)();
41865 operator safe_bool () const
41866 { return (this->empty())? 0 : &dummy::nonnull; }
41868 bool operator!() const
41869 { return this->empty(); }
41873 void assign_to_own(const function2& f)
41876 this->vtable = f.vtable;
41877 f.vtable->manager(f.functor, this->functor,
41878 boost::detail::function::clone_functor_tag);
41882 template<typename Functor>
41883 void assign_to(Functor f)
41885 static vtable_type stored_vtable(f);
41886 if (stored_vtable.assign_to(f, functor)) vtable = &stored_vtable;
41891 template<typename R , typename T0 , typename T1 ,
41892 typename Allocator>
41893 inline void swap(function2<
41908 template<typename R , typename T0 , typename T1,
41909 typename Allocator>
41910 typename function2<
41912 Allocator>::result_type
41913 function2<R , T0 , T1,
41916 ::operator()( T0 a0 , T1 a1) const
41919 boost::throw_exception(bad_function_call());
41921 return static_cast<vtable_type*>(vtable)->invoker
41922 (this->functor , a0 , a1);
41927 template<typename R , typename T0 , typename T1 ,
41928 typename Allocator>
41929 void operator==(const function2<
41937 template<typename R , typename T0 , typename T1 ,
41938 typename Allocator>
41939 void operator!=(const function2<
41947 # 726 "/usr/include/boost/function/function_template.hpp" 3 4
41948 template<typename R ,
41949 typename T0 , typename T1,
41950 typename Allocator>
41951 class function<R ( T0 , T1), Allocator>
41952 : public function2<R, T0 , T1
41955 typedef function2<R, T0 , T1
41956 , Allocator> base_type;
41957 typedef function self_type;
41959 struct clear_type {};
41962 typedef typename base_type::allocator_type allocator_type;
41964 function() : base_type() {}
41966 template<typename Functor>
41969 ,typename enable_if_c<
41970 (boost::type_traits::ice_not<
41971 (is_integral<Functor>::value)>::value),
41980 function(clear_type*) : base_type() {}
41983 function(const self_type& f) : base_type(static_cast<const base_type&>(f)){}
41985 function(const base_type& f) : base_type(static_cast<const base_type&>(f)){}
41987 self_type& operator=(const self_type& f)
41989 self_type(f).swap(*this);
41993 template<typename Functor>
41995 typename enable_if_c<
41996 (boost::type_traits::ice_not<
41997 (is_integral<Functor>::value)>::value),
42002 operator=(Functor f)
42004 self_type(f).swap(*this);
42009 self_type& operator=(clear_type*)
42016 self_type& operator=(const base_type& f)
42018 self_type(f).swap(*this);
42022 # 808 "/usr/include/boost/function/function_template.hpp" 3 4
42024 # 24 "/usr/include/boost/function/detail/maybe_include.hpp" 2 3 4
42025 # 15 "/usr/include/boost/function/detail/function_iterate.hpp" 2 3 4
42026 # 58 "/usr/include/boost/preprocessor/iteration/detail/iter/forward1.hpp" 2 3 4
42031 # 1 "/usr/include/boost/function/detail/function_iterate.hpp" 1 3 4
42032 # 14 "/usr/include/boost/function/detail/function_iterate.hpp" 3 4
42033 # 1 "/usr/include/boost/function/detail/maybe_include.hpp" 1 3 4
42034 # 28 "/usr/include/boost/function/detail/maybe_include.hpp" 3 4
42035 # 1 "/usr/include/boost/function/function_template.hpp" 1 3 4
42036 # 83 "/usr/include/boost/function/function_template.hpp" 3 4
42039 namespace function {
42041 typename FunctionPtr,
42043 typename T0 , typename T1 , typename T2
42045 struct function_invoker3
42047 static R invoke(function_buffer& function_ptr ,
42048 T0 a0 , T1 a1 , T2 a2)
42050 FunctionPtr f = reinterpret_cast<FunctionPtr>(function_ptr.func_ptr);
42051 return f( a0 , a1 , a2);
42056 typename FunctionPtr,
42058 typename T0 , typename T1 , typename T2
42060 struct void_function_invoker3
42063 invoke(function_buffer& function_ptr ,
42064 T0 a0 , T1 a1 , T2 a2)
42067 FunctionPtr f = reinterpret_cast<FunctionPtr>(function_ptr.func_ptr);
42073 typename FunctionObj,
42075 typename T0 , typename T1 , typename T2
42077 struct function_obj_invoker3
42079 static R invoke(function_buffer& function_obj_ptr ,
42080 T0 a0 , T1 a1 , T2 a2)
42084 if (function_allows_small_object_optimization<FunctionObj>::value)
42085 f = reinterpret_cast<FunctionObj*>(&function_obj_ptr.data);
42087 f = reinterpret_cast<FunctionObj*>(function_obj_ptr.obj_ptr);
42088 return (*f)( a0 , a1 , a2);
42093 typename FunctionObj,
42095 typename T0 , typename T1 , typename T2
42097 struct void_function_obj_invoker3
42100 invoke(function_buffer& function_obj_ptr ,
42101 T0 a0 , T1 a1 , T2 a2)
42105 if (function_allows_small_object_optimization<FunctionObj>::value)
42106 f = reinterpret_cast<FunctionObj*>(&function_obj_ptr.data);
42108 f = reinterpret_cast<FunctionObj*>(function_obj_ptr.obj_ptr);
42109 (*f)( a0 , a1 , a2);
42114 typename FunctionObj,
42116 typename T0 , typename T1 , typename T2
42118 struct function_ref_invoker3
42120 static R invoke(function_buffer& function_obj_ptr ,
42121 T0 a0 , T1 a1 , T2 a2)
42125 reinterpret_cast<FunctionObj*>(function_obj_ptr.obj_ptr);
42126 return (*f)( a0 , a1 , a2);
42131 typename FunctionObj,
42133 typename T0 , typename T1 , typename T2
42135 struct void_function_ref_invoker3
42138 invoke(function_buffer& function_obj_ptr ,
42139 T0 a0 , T1 a1 , T2 a2)
42143 reinterpret_cast<FunctionObj*>(function_obj_ptr.obj_ptr);
42144 (*f)( a0 , a1 , a2);
42149 typename FunctionPtr,
42151 typename T0 , typename T1 , typename T2
42153 struct get_function_invoker3
42155 typedef typename mpl::if_c<(is_void<R>::value),
42156 void_function_invoker3<
42170 typename FunctionObj,
42172 typename T0 , typename T1 , typename T2
42174 struct get_function_obj_invoker3
42176 typedef typename mpl::if_c<(is_void<R>::value),
42177 void_function_obj_invoker3<
42182 function_obj_invoker3<
42191 typename FunctionObj,
42193 typename T0 , typename T1 , typename T2
42195 struct get_function_ref_invoker3
42197 typedef typename mpl::if_c<(is_void<R>::value),
42198 void_function_ref_invoker3<
42203 function_ref_invoker3<
42214 template<typename R , typename T0 , typename T1 , typename T2,
42215 typename Allocator>
42216 struct basic_vtable3 : vtable_base
42219 typedef R result_type;
42224 typedef result_type (*invoker_type)(function_buffer&
42228 template<typename F>
42229 basic_vtable3(F f) : vtable_base(), invoker(0)
42234 template<typename F>
42235 bool assign_to(F f, function_buffer& functor)
42237 typedef typename get_function_tag<F>::type tag;
42238 return assign_to(f, functor, tag());
42241 void clear(function_buffer& functor)
42244 manager(functor, functor, destroy_functor_tag);
42248 template<typename F>
42251 typedef typename get_function_tag<F>::type tag;
42256 template<typename FunctionPtr>
42257 void init(FunctionPtr , function_ptr_tag)
42259 typedef typename get_function_invoker3<
42264 actual_invoker_type;
42266 invoker = &actual_invoker_type::invoke;
42267 manager = &functor_manager<FunctionPtr, Allocator>::manage;
42270 template<typename FunctionPtr>
42272 assign_to(FunctionPtr f, function_buffer& functor, function_ptr_tag)
42274 this->clear(functor);
42278 functor.func_ptr = (void (*)())(f);
42287 template<typename MemberPtr>
42288 void init(MemberPtr f, member_ptr_tag)
42293 this->init(mem_fn(f));
42296 template<typename MemberPtr>
42297 bool assign_to(MemberPtr f, function_buffer& functor, member_ptr_tag)
42303 this->assign_to(mem_fn(f), functor);
42312 template<typename FunctionObj>
42313 void init(FunctionObj , function_obj_tag)
42315 typedef typename get_function_obj_invoker3<
42320 actual_invoker_type;
42322 invoker = &actual_invoker_type::invoke;
42323 manager = &functor_manager<FunctionObj, Allocator>::manage;
42327 template<typename FunctionObj>
42329 assign_functor(FunctionObj f, function_buffer& functor, mpl::true_)
42331 new ((void*)&functor.data) FunctionObj(f);
42335 template<typename FunctionObj>
42337 assign_functor(FunctionObj f, function_buffer& functor, mpl::false_)
42340 typedef typename Allocator::template rebind<FunctionObj>::other
42342 typedef typename allocator_type::pointer pointer_type;
42344 allocator_type allocator;
42345 pointer_type copy = allocator.allocate(1);
42346 allocator.construct(copy, f);
42349 functor.obj_ptr = static_cast<FunctionObj*>(copy);
42355 template<typename FunctionObj>
42357 assign_to(FunctionObj f, function_buffer& functor, function_obj_tag)
42359 if (!boost::detail::function::has_empty_target(boost::addressof(f))) {
42360 assign_functor(f, functor,
42361 mpl::bool_<(function_allows_small_object_optimization<FunctionObj>::value)>());
42369 template<typename FunctionObj>
42371 init(const reference_wrapper<FunctionObj>& , function_obj_ref_tag)
42373 typedef typename get_function_ref_invoker3<
42378 actual_invoker_type;
42380 invoker = &actual_invoker_type::invoke;
42381 manager = &reference_manager<FunctionObj>::get;
42384 template<typename FunctionObj>
42386 assign_to(const reference_wrapper<FunctionObj>& f,
42387 function_buffer& functor, function_obj_ref_tag)
42389 if (!boost::detail::function::has_empty_target(f.get_pointer())) {
42394 functor.const_obj_ptr = f.get_pointer();
42402 invoker_type invoker;
42409 typename T0 , typename T1 , typename T2,
42410 typename Allocator = std::allocator<function_base>
42412 class function3 : public function_base
42416 typedef R result_type;
42423 typedef boost::detail::function::basic_vtable3<
42424 R , T0 , T1 , T2, Allocator>
42427 struct clear_type {};
42430 static const int args = 3;
42433 template<typename Args>
42436 typedef result_type type;
42438 # 492 "/usr/include/boost/function/function_template.hpp" 3 4
42439 static const int arity = 3;
42440 typedef T0 arg1_type; typedef T1 arg2_type; typedef T2 arg3_type;
42442 typedef Allocator allocator_type;
42443 typedef function3 self_type;
42445 function3() : function_base() { }
42449 template<typename Functor>
42450 function3(Functor f
42452 ,typename enable_if_c<
42453 (boost::type_traits::ice_not<
42454 (is_integral<Functor>::value)>::value),
42460 this->assign_to(f);
42464 function3(clear_type*) : function_base() { }
42472 function3(const function3& f) : function_base()
42474 this->assign_to_own(f);
42477 ~function3() { clear(); }
42478 # 544 "/usr/include/boost/function/function_template.hpp" 3 4
42479 result_type operator()( T0 a0 , T1 a1 , T2 a2) const;
42487 template<typename Functor>
42489 typename enable_if_c<
42490 (boost::type_traits::ice_not<
42491 (is_integral<Functor>::value)>::value),
42496 operator=(Functor f)
42500 this->assign_to(f);
42509 function3& operator=(clear_type*)
42514 # 589 "/usr/include/boost/function/function_template.hpp" 3 4
42515 function3& operator=(const function3& f)
42522 this->assign_to_own(f);
42530 void swap(function3& other)
42532 if (&other == this)
42535 function3 tmp = *this;
42544 static_cast<vtable_type*>(vtable)->clear(this->functor);
42558 typedef void (dummy::*safe_bool)();
42561 operator safe_bool () const
42562 { return (this->empty())? 0 : &dummy::nonnull; }
42564 bool operator!() const
42565 { return this->empty(); }
42569 void assign_to_own(const function3& f)
42572 this->vtable = f.vtable;
42573 f.vtable->manager(f.functor, this->functor,
42574 boost::detail::function::clone_functor_tag);
42578 template<typename Functor>
42579 void assign_to(Functor f)
42581 static vtable_type stored_vtable(f);
42582 if (stored_vtable.assign_to(f, functor)) vtable = &stored_vtable;
42587 template<typename R , typename T0 , typename T1 , typename T2 ,
42588 typename Allocator>
42589 inline void swap(function3<
42604 template<typename R , typename T0 , typename T1 , typename T2,
42605 typename Allocator>
42606 typename function3<
42608 Allocator>::result_type
42609 function3<R , T0 , T1 , T2,
42612 ::operator()( T0 a0 , T1 a1 , T2 a2) const
42615 boost::throw_exception(bad_function_call());
42617 return static_cast<vtable_type*>(vtable)->invoker
42618 (this->functor , a0 , a1 , a2);
42623 template<typename R , typename T0 , typename T1 , typename T2 ,
42624 typename Allocator>
42625 void operator==(const function3<
42633 template<typename R , typename T0 , typename T1 , typename T2 ,
42634 typename Allocator>
42635 void operator!=(const function3<
42643 # 726 "/usr/include/boost/function/function_template.hpp" 3 4
42644 template<typename R ,
42645 typename T0 , typename T1 , typename T2,
42646 typename Allocator>
42647 class function<R ( T0 , T1 , T2), Allocator>
42648 : public function3<R, T0 , T1 , T2
42651 typedef function3<R, T0 , T1 , T2
42652 , Allocator> base_type;
42653 typedef function self_type;
42655 struct clear_type {};
42658 typedef typename base_type::allocator_type allocator_type;
42660 function() : base_type() {}
42662 template<typename Functor>
42665 ,typename enable_if_c<
42666 (boost::type_traits::ice_not<
42667 (is_integral<Functor>::value)>::value),
42676 function(clear_type*) : base_type() {}
42679 function(const self_type& f) : base_type(static_cast<const base_type&>(f)){}
42681 function(const base_type& f) : base_type(static_cast<const base_type&>(f)){}
42683 self_type& operator=(const self_type& f)
42685 self_type(f).swap(*this);
42689 template<typename Functor>
42691 typename enable_if_c<
42692 (boost::type_traits::ice_not<
42693 (is_integral<Functor>::value)>::value),
42698 operator=(Functor f)
42700 self_type(f).swap(*this);
42705 self_type& operator=(clear_type*)
42712 self_type& operator=(const base_type& f)
42714 self_type(f).swap(*this);
42718 # 808 "/usr/include/boost/function/function_template.hpp" 3 4
42720 # 29 "/usr/include/boost/function/detail/maybe_include.hpp" 2 3 4
42721 # 15 "/usr/include/boost/function/detail/function_iterate.hpp" 2 3 4
42722 # 63 "/usr/include/boost/preprocessor/iteration/detail/iter/forward1.hpp" 2 3 4
42727 # 1 "/usr/include/boost/function/detail/function_iterate.hpp" 1 3 4
42728 # 14 "/usr/include/boost/function/detail/function_iterate.hpp" 3 4
42729 # 1 "/usr/include/boost/function/detail/maybe_include.hpp" 1 3 4
42730 # 33 "/usr/include/boost/function/detail/maybe_include.hpp" 3 4
42731 # 1 "/usr/include/boost/function/function_template.hpp" 1 3 4
42732 # 83 "/usr/include/boost/function/function_template.hpp" 3 4
42735 namespace function {
42737 typename FunctionPtr,
42739 typename T0 , typename T1 , typename T2 , typename T3
42741 struct function_invoker4
42743 static R invoke(function_buffer& function_ptr ,
42744 T0 a0 , T1 a1 , T2 a2 , T3 a3)
42746 FunctionPtr f = reinterpret_cast<FunctionPtr>(function_ptr.func_ptr);
42747 return f( a0 , a1 , a2 , a3);
42752 typename FunctionPtr,
42754 typename T0 , typename T1 , typename T2 , typename T3
42756 struct void_function_invoker4
42759 invoke(function_buffer& function_ptr ,
42760 T0 a0 , T1 a1 , T2 a2 , T3 a3)
42763 FunctionPtr f = reinterpret_cast<FunctionPtr>(function_ptr.func_ptr);
42764 f( a0 , a1 , a2 , a3);
42769 typename FunctionObj,
42771 typename T0 , typename T1 , typename T2 , typename T3
42773 struct function_obj_invoker4
42775 static R invoke(function_buffer& function_obj_ptr ,
42776 T0 a0 , T1 a1 , T2 a2 , T3 a3)
42780 if (function_allows_small_object_optimization<FunctionObj>::value)
42781 f = reinterpret_cast<FunctionObj*>(&function_obj_ptr.data);
42783 f = reinterpret_cast<FunctionObj*>(function_obj_ptr.obj_ptr);
42784 return (*f)( a0 , a1 , a2 , a3);
42789 typename FunctionObj,
42791 typename T0 , typename T1 , typename T2 , typename T3
42793 struct void_function_obj_invoker4
42796 invoke(function_buffer& function_obj_ptr ,
42797 T0 a0 , T1 a1 , T2 a2 , T3 a3)
42801 if (function_allows_small_object_optimization<FunctionObj>::value)
42802 f = reinterpret_cast<FunctionObj*>(&function_obj_ptr.data);
42804 f = reinterpret_cast<FunctionObj*>(function_obj_ptr.obj_ptr);
42805 (*f)( a0 , a1 , a2 , a3);
42810 typename FunctionObj,
42812 typename T0 , typename T1 , typename T2 , typename T3
42814 struct function_ref_invoker4
42816 static R invoke(function_buffer& function_obj_ptr ,
42817 T0 a0 , T1 a1 , T2 a2 , T3 a3)
42821 reinterpret_cast<FunctionObj*>(function_obj_ptr.obj_ptr);
42822 return (*f)( a0 , a1 , a2 , a3);
42827 typename FunctionObj,
42829 typename T0 , typename T1 , typename T2 , typename T3
42831 struct void_function_ref_invoker4
42834 invoke(function_buffer& function_obj_ptr ,
42835 T0 a0 , T1 a1 , T2 a2 , T3 a3)
42839 reinterpret_cast<FunctionObj*>(function_obj_ptr.obj_ptr);
42840 (*f)( a0 , a1 , a2 , a3);
42845 typename FunctionPtr,
42847 typename T0 , typename T1 , typename T2 , typename T3
42849 struct get_function_invoker4
42851 typedef typename mpl::if_c<(is_void<R>::value),
42852 void_function_invoker4<
42866 typename FunctionObj,
42868 typename T0 , typename T1 , typename T2 , typename T3
42870 struct get_function_obj_invoker4
42872 typedef typename mpl::if_c<(is_void<R>::value),
42873 void_function_obj_invoker4<
42878 function_obj_invoker4<
42887 typename FunctionObj,
42889 typename T0 , typename T1 , typename T2 , typename T3
42891 struct get_function_ref_invoker4
42893 typedef typename mpl::if_c<(is_void<R>::value),
42894 void_function_ref_invoker4<
42899 function_ref_invoker4<
42910 template<typename R , typename T0 , typename T1 , typename T2 , typename T3,
42911 typename Allocator>
42912 struct basic_vtable4 : vtable_base
42915 typedef R result_type;
42920 typedef result_type (*invoker_type)(function_buffer&
42922 T0 , T1 , T2 , T3);
42924 template<typename F>
42925 basic_vtable4(F f) : vtable_base(), invoker(0)
42930 template<typename F>
42931 bool assign_to(F f, function_buffer& functor)
42933 typedef typename get_function_tag<F>::type tag;
42934 return assign_to(f, functor, tag());
42937 void clear(function_buffer& functor)
42940 manager(functor, functor, destroy_functor_tag);
42944 template<typename F>
42947 typedef typename get_function_tag<F>::type tag;
42952 template<typename FunctionPtr>
42953 void init(FunctionPtr , function_ptr_tag)
42955 typedef typename get_function_invoker4<
42960 actual_invoker_type;
42962 invoker = &actual_invoker_type::invoke;
42963 manager = &functor_manager<FunctionPtr, Allocator>::manage;
42966 template<typename FunctionPtr>
42968 assign_to(FunctionPtr f, function_buffer& functor, function_ptr_tag)
42970 this->clear(functor);
42974 functor.func_ptr = (void (*)())(f);
42983 template<typename MemberPtr>
42984 void init(MemberPtr f, member_ptr_tag)
42989 this->init(mem_fn(f));
42992 template<typename MemberPtr>
42993 bool assign_to(MemberPtr f, function_buffer& functor, member_ptr_tag)
42999 this->assign_to(mem_fn(f), functor);
43008 template<typename FunctionObj>
43009 void init(FunctionObj , function_obj_tag)
43011 typedef typename get_function_obj_invoker4<
43016 actual_invoker_type;
43018 invoker = &actual_invoker_type::invoke;
43019 manager = &functor_manager<FunctionObj, Allocator>::manage;
43023 template<typename FunctionObj>
43025 assign_functor(FunctionObj f, function_buffer& functor, mpl::true_)
43027 new ((void*)&functor.data) FunctionObj(f);
43031 template<typename FunctionObj>
43033 assign_functor(FunctionObj f, function_buffer& functor, mpl::false_)
43036 typedef typename Allocator::template rebind<FunctionObj>::other
43038 typedef typename allocator_type::pointer pointer_type;
43040 allocator_type allocator;
43041 pointer_type copy = allocator.allocate(1);
43042 allocator.construct(copy, f);
43045 functor.obj_ptr = static_cast<FunctionObj*>(copy);
43051 template<typename FunctionObj>
43053 assign_to(FunctionObj f, function_buffer& functor, function_obj_tag)
43055 if (!boost::detail::function::has_empty_target(boost::addressof(f))) {
43056 assign_functor(f, functor,
43057 mpl::bool_<(function_allows_small_object_optimization<FunctionObj>::value)>());
43065 template<typename FunctionObj>
43067 init(const reference_wrapper<FunctionObj>& , function_obj_ref_tag)
43069 typedef typename get_function_ref_invoker4<
43074 actual_invoker_type;
43076 invoker = &actual_invoker_type::invoke;
43077 manager = &reference_manager<FunctionObj>::get;
43080 template<typename FunctionObj>
43082 assign_to(const reference_wrapper<FunctionObj>& f,
43083 function_buffer& functor, function_obj_ref_tag)
43085 if (!boost::detail::function::has_empty_target(f.get_pointer())) {
43090 functor.const_obj_ptr = f.get_pointer();
43098 invoker_type invoker;
43105 typename T0 , typename T1 , typename T2 , typename T3,
43106 typename Allocator = std::allocator<function_base>
43108 class function4 : public function_base
43112 typedef R result_type;
43119 typedef boost::detail::function::basic_vtable4<
43120 R , T0 , T1 , T2 , T3, Allocator>
43123 struct clear_type {};
43126 static const int args = 4;
43129 template<typename Args>
43132 typedef result_type type;
43134 # 492 "/usr/include/boost/function/function_template.hpp" 3 4
43135 static const int arity = 4;
43136 typedef T0 arg1_type; typedef T1 arg2_type; typedef T2 arg3_type; typedef T3 arg4_type;
43138 typedef Allocator allocator_type;
43139 typedef function4 self_type;
43141 function4() : function_base() { }
43145 template<typename Functor>
43146 function4(Functor f
43148 ,typename enable_if_c<
43149 (boost::type_traits::ice_not<
43150 (is_integral<Functor>::value)>::value),
43156 this->assign_to(f);
43160 function4(clear_type*) : function_base() { }
43168 function4(const function4& f) : function_base()
43170 this->assign_to_own(f);
43173 ~function4() { clear(); }
43174 # 544 "/usr/include/boost/function/function_template.hpp" 3 4
43175 result_type operator()( T0 a0 , T1 a1 , T2 a2 , T3 a3) const;
43183 template<typename Functor>
43185 typename enable_if_c<
43186 (boost::type_traits::ice_not<
43187 (is_integral<Functor>::value)>::value),
43192 operator=(Functor f)
43196 this->assign_to(f);
43205 function4& operator=(clear_type*)
43210 # 589 "/usr/include/boost/function/function_template.hpp" 3 4
43211 function4& operator=(const function4& f)
43218 this->assign_to_own(f);
43226 void swap(function4& other)
43228 if (&other == this)
43231 function4 tmp = *this;
43240 static_cast<vtable_type*>(vtable)->clear(this->functor);
43254 typedef void (dummy::*safe_bool)();
43257 operator safe_bool () const
43258 { return (this->empty())? 0 : &dummy::nonnull; }
43260 bool operator!() const
43261 { return this->empty(); }
43265 void assign_to_own(const function4& f)
43268 this->vtable = f.vtable;
43269 f.vtable->manager(f.functor, this->functor,
43270 boost::detail::function::clone_functor_tag);
43274 template<typename Functor>
43275 void assign_to(Functor f)
43277 static vtable_type stored_vtable(f);
43278 if (stored_vtable.assign_to(f, functor)) vtable = &stored_vtable;
43283 template<typename R , typename T0 , typename T1 , typename T2 , typename T3 ,
43284 typename Allocator>
43285 inline void swap(function4<
43287 T0 , T1 , T2 , T3 ,
43300 template<typename R , typename T0 , typename T1 , typename T2 , typename T3,
43301 typename Allocator>
43302 typename function4<
43303 R , T0 , T1 , T2 , T3,
43304 Allocator>::result_type
43305 function4<R , T0 , T1 , T2 , T3,
43308 ::operator()( T0 a0 , T1 a1 , T2 a2 , T3 a3) const
43311 boost::throw_exception(bad_function_call());
43313 return static_cast<vtable_type*>(vtable)->invoker
43314 (this->functor , a0 , a1 , a2 , a3);
43319 template<typename R , typename T0 , typename T1 , typename T2 , typename T3 ,
43320 typename Allocator>
43321 void operator==(const function4<
43323 T0 , T1 , T2 , T3 ,
43327 T0 , T1 , T2 , T3 ,
43329 template<typename R , typename T0 , typename T1 , typename T2 , typename T3 ,
43330 typename Allocator>
43331 void operator!=(const function4<
43333 T0 , T1 , T2 , T3 ,
43337 T0 , T1 , T2 , T3 ,
43339 # 726 "/usr/include/boost/function/function_template.hpp" 3 4
43340 template<typename R ,
43341 typename T0 , typename T1 , typename T2 , typename T3,
43342 typename Allocator>
43343 class function<R ( T0 , T1 , T2 , T3), Allocator>
43344 : public function4<R, T0 , T1 , T2 , T3
43347 typedef function4<R, T0 , T1 , T2 , T3
43348 , Allocator> base_type;
43349 typedef function self_type;
43351 struct clear_type {};
43354 typedef typename base_type::allocator_type allocator_type;
43356 function() : base_type() {}
43358 template<typename Functor>
43361 ,typename enable_if_c<
43362 (boost::type_traits::ice_not<
43363 (is_integral<Functor>::value)>::value),
43372 function(clear_type*) : base_type() {}
43375 function(const self_type& f) : base_type(static_cast<const base_type&>(f)){}
43377 function(const base_type& f) : base_type(static_cast<const base_type&>(f)){}
43379 self_type& operator=(const self_type& f)
43381 self_type(f).swap(*this);
43385 template<typename Functor>
43387 typename enable_if_c<
43388 (boost::type_traits::ice_not<
43389 (is_integral<Functor>::value)>::value),
43394 operator=(Functor f)
43396 self_type(f).swap(*this);
43401 self_type& operator=(clear_type*)
43408 self_type& operator=(const base_type& f)
43410 self_type(f).swap(*this);
43414 # 808 "/usr/include/boost/function/function_template.hpp" 3 4
43416 # 34 "/usr/include/boost/function/detail/maybe_include.hpp" 2 3 4
43417 # 15 "/usr/include/boost/function/detail/function_iterate.hpp" 2 3 4
43418 # 68 "/usr/include/boost/preprocessor/iteration/detail/iter/forward1.hpp" 2 3 4
43423 # 1 "/usr/include/boost/function/detail/function_iterate.hpp" 1 3 4
43424 # 14 "/usr/include/boost/function/detail/function_iterate.hpp" 3 4
43425 # 1 "/usr/include/boost/function/detail/maybe_include.hpp" 1 3 4
43426 # 38 "/usr/include/boost/function/detail/maybe_include.hpp" 3 4
43427 # 1 "/usr/include/boost/function/function_template.hpp" 1 3 4
43428 # 83 "/usr/include/boost/function/function_template.hpp" 3 4
43431 namespace function {
43433 typename FunctionPtr,
43435 typename T0 , typename T1 , typename T2 , typename T3 , typename T4
43437 struct function_invoker5
43439 static R invoke(function_buffer& function_ptr ,
43440 T0 a0 , T1 a1 , T2 a2 , T3 a3 , T4 a4)
43442 FunctionPtr f = reinterpret_cast<FunctionPtr>(function_ptr.func_ptr);
43443 return f( a0 , a1 , a2 , a3 , a4);
43448 typename FunctionPtr,
43450 typename T0 , typename T1 , typename T2 , typename T3 , typename T4
43452 struct void_function_invoker5
43455 invoke(function_buffer& function_ptr ,
43456 T0 a0 , T1 a1 , T2 a2 , T3 a3 , T4 a4)
43459 FunctionPtr f = reinterpret_cast<FunctionPtr>(function_ptr.func_ptr);
43460 f( a0 , a1 , a2 , a3 , a4);
43465 typename FunctionObj,
43467 typename T0 , typename T1 , typename T2 , typename T3 , typename T4
43469 struct function_obj_invoker5
43471 static R invoke(function_buffer& function_obj_ptr ,
43472 T0 a0 , T1 a1 , T2 a2 , T3 a3 , T4 a4)
43476 if (function_allows_small_object_optimization<FunctionObj>::value)
43477 f = reinterpret_cast<FunctionObj*>(&function_obj_ptr.data);
43479 f = reinterpret_cast<FunctionObj*>(function_obj_ptr.obj_ptr);
43480 return (*f)( a0 , a1 , a2 , a3 , a4);
43485 typename FunctionObj,
43487 typename T0 , typename T1 , typename T2 , typename T3 , typename T4
43489 struct void_function_obj_invoker5
43492 invoke(function_buffer& function_obj_ptr ,
43493 T0 a0 , T1 a1 , T2 a2 , T3 a3 , T4 a4)
43497 if (function_allows_small_object_optimization<FunctionObj>::value)
43498 f = reinterpret_cast<FunctionObj*>(&function_obj_ptr.data);
43500 f = reinterpret_cast<FunctionObj*>(function_obj_ptr.obj_ptr);
43501 (*f)( a0 , a1 , a2 , a3 , a4);
43506 typename FunctionObj,
43508 typename T0 , typename T1 , typename T2 , typename T3 , typename T4
43510 struct function_ref_invoker5
43512 static R invoke(function_buffer& function_obj_ptr ,
43513 T0 a0 , T1 a1 , T2 a2 , T3 a3 , T4 a4)
43517 reinterpret_cast<FunctionObj*>(function_obj_ptr.obj_ptr);
43518 return (*f)( a0 , a1 , a2 , a3 , a4);
43523 typename FunctionObj,
43525 typename T0 , typename T1 , typename T2 , typename T3 , typename T4
43527 struct void_function_ref_invoker5
43530 invoke(function_buffer& function_obj_ptr ,
43531 T0 a0 , T1 a1 , T2 a2 , T3 a3 , T4 a4)
43535 reinterpret_cast<FunctionObj*>(function_obj_ptr.obj_ptr);
43536 (*f)( a0 , a1 , a2 , a3 , a4);
43541 typename FunctionPtr,
43543 typename T0 , typename T1 , typename T2 , typename T3 , typename T4
43545 struct get_function_invoker5
43547 typedef typename mpl::if_c<(is_void<R>::value),
43548 void_function_invoker5<
43551 T0 , T1 , T2 , T3 , T4
43556 T0 , T1 , T2 , T3 , T4
43562 typename FunctionObj,
43564 typename T0 , typename T1 , typename T2 , typename T3 , typename T4
43566 struct get_function_obj_invoker5
43568 typedef typename mpl::if_c<(is_void<R>::value),
43569 void_function_obj_invoker5<
43572 T0 , T1 , T2 , T3 , T4
43574 function_obj_invoker5<
43577 T0 , T1 , T2 , T3 , T4
43583 typename FunctionObj,
43585 typename T0 , typename T1 , typename T2 , typename T3 , typename T4
43587 struct get_function_ref_invoker5
43589 typedef typename mpl::if_c<(is_void<R>::value),
43590 void_function_ref_invoker5<
43593 T0 , T1 , T2 , T3 , T4
43595 function_ref_invoker5<
43598 T0 , T1 , T2 , T3 , T4
43606 template<typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4,
43607 typename Allocator>
43608 struct basic_vtable5 : vtable_base
43611 typedef R result_type;
43616 typedef result_type (*invoker_type)(function_buffer&
43618 T0 , T1 , T2 , T3 , T4);
43620 template<typename F>
43621 basic_vtable5(F f) : vtable_base(), invoker(0)
43626 template<typename F>
43627 bool assign_to(F f, function_buffer& functor)
43629 typedef typename get_function_tag<F>::type tag;
43630 return assign_to(f, functor, tag());
43633 void clear(function_buffer& functor)
43636 manager(functor, functor, destroy_functor_tag);
43640 template<typename F>
43643 typedef typename get_function_tag<F>::type tag;
43648 template<typename FunctionPtr>
43649 void init(FunctionPtr , function_ptr_tag)
43651 typedef typename get_function_invoker5<
43654 T0 , T1 , T2 , T3 , T4
43656 actual_invoker_type;
43658 invoker = &actual_invoker_type::invoke;
43659 manager = &functor_manager<FunctionPtr, Allocator>::manage;
43662 template<typename FunctionPtr>
43664 assign_to(FunctionPtr f, function_buffer& functor, function_ptr_tag)
43666 this->clear(functor);
43670 functor.func_ptr = (void (*)())(f);
43679 template<typename MemberPtr>
43680 void init(MemberPtr f, member_ptr_tag)
43685 this->init(mem_fn(f));
43688 template<typename MemberPtr>
43689 bool assign_to(MemberPtr f, function_buffer& functor, member_ptr_tag)
43695 this->assign_to(mem_fn(f), functor);
43704 template<typename FunctionObj>
43705 void init(FunctionObj , function_obj_tag)
43707 typedef typename get_function_obj_invoker5<
43710 T0 , T1 , T2 , T3 , T4
43712 actual_invoker_type;
43714 invoker = &actual_invoker_type::invoke;
43715 manager = &functor_manager<FunctionObj, Allocator>::manage;
43719 template<typename FunctionObj>
43721 assign_functor(FunctionObj f, function_buffer& functor, mpl::true_)
43723 new ((void*)&functor.data) FunctionObj(f);
43727 template<typename FunctionObj>
43729 assign_functor(FunctionObj f, function_buffer& functor, mpl::false_)
43732 typedef typename Allocator::template rebind<FunctionObj>::other
43734 typedef typename allocator_type::pointer pointer_type;
43736 allocator_type allocator;
43737 pointer_type copy = allocator.allocate(1);
43738 allocator.construct(copy, f);
43741 functor.obj_ptr = static_cast<FunctionObj*>(copy);
43747 template<typename FunctionObj>
43749 assign_to(FunctionObj f, function_buffer& functor, function_obj_tag)
43751 if (!boost::detail::function::has_empty_target(boost::addressof(f))) {
43752 assign_functor(f, functor,
43753 mpl::bool_<(function_allows_small_object_optimization<FunctionObj>::value)>());
43761 template<typename FunctionObj>
43763 init(const reference_wrapper<FunctionObj>& , function_obj_ref_tag)
43765 typedef typename get_function_ref_invoker5<
43768 T0 , T1 , T2 , T3 , T4
43770 actual_invoker_type;
43772 invoker = &actual_invoker_type::invoke;
43773 manager = &reference_manager<FunctionObj>::get;
43776 template<typename FunctionObj>
43778 assign_to(const reference_wrapper<FunctionObj>& f,
43779 function_buffer& functor, function_obj_ref_tag)
43781 if (!boost::detail::function::has_empty_target(f.get_pointer())) {
43786 functor.const_obj_ptr = f.get_pointer();
43794 invoker_type invoker;
43801 typename T0 , typename T1 , typename T2 , typename T3 , typename T4,
43802 typename Allocator = std::allocator<function_base>
43804 class function5 : public function_base
43808 typedef R result_type;
43815 typedef boost::detail::function::basic_vtable5<
43816 R , T0 , T1 , T2 , T3 , T4, Allocator>
43819 struct clear_type {};
43822 static const int args = 5;
43825 template<typename Args>
43828 typedef result_type type;
43830 # 492 "/usr/include/boost/function/function_template.hpp" 3 4
43831 static const int arity = 5;
43832 typedef T0 arg1_type; typedef T1 arg2_type; typedef T2 arg3_type; typedef T3 arg4_type; typedef T4 arg5_type;
43834 typedef Allocator allocator_type;
43835 typedef function5 self_type;
43837 function5() : function_base() { }
43841 template<typename Functor>
43842 function5(Functor f
43844 ,typename enable_if_c<
43845 (boost::type_traits::ice_not<
43846 (is_integral<Functor>::value)>::value),
43852 this->assign_to(f);
43856 function5(clear_type*) : function_base() { }
43864 function5(const function5& f) : function_base()
43866 this->assign_to_own(f);
43869 ~function5() { clear(); }
43870 # 544 "/usr/include/boost/function/function_template.hpp" 3 4
43871 result_type operator()( T0 a0 , T1 a1 , T2 a2 , T3 a3 , T4 a4) const;
43879 template<typename Functor>
43881 typename enable_if_c<
43882 (boost::type_traits::ice_not<
43883 (is_integral<Functor>::value)>::value),
43888 operator=(Functor f)
43892 this->assign_to(f);
43901 function5& operator=(clear_type*)
43906 # 589 "/usr/include/boost/function/function_template.hpp" 3 4
43907 function5& operator=(const function5& f)
43914 this->assign_to_own(f);
43922 void swap(function5& other)
43924 if (&other == this)
43927 function5 tmp = *this;
43936 static_cast<vtable_type*>(vtable)->clear(this->functor);
43950 typedef void (dummy::*safe_bool)();
43953 operator safe_bool () const
43954 { return (this->empty())? 0 : &dummy::nonnull; }
43956 bool operator!() const
43957 { return this->empty(); }
43961 void assign_to_own(const function5& f)
43964 this->vtable = f.vtable;
43965 f.vtable->manager(f.functor, this->functor,
43966 boost::detail::function::clone_functor_tag);
43970 template<typename Functor>
43971 void assign_to(Functor f)
43973 static vtable_type stored_vtable(f);
43974 if (stored_vtable.assign_to(f, functor)) vtable = &stored_vtable;
43979 template<typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 ,
43980 typename Allocator>
43981 inline void swap(function5<
43983 T0 , T1 , T2 , T3 , T4 ,
43988 T0 , T1 , T2 , T3 , T4,
43996 template<typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4,
43997 typename Allocator>
43998 typename function5<
43999 R , T0 , T1 , T2 , T3 , T4,
44000 Allocator>::result_type
44001 function5<R , T0 , T1 , T2 , T3 , T4,
44004 ::operator()( T0 a0 , T1 a1 , T2 a2 , T3 a3 , T4 a4) const
44007 boost::throw_exception(bad_function_call());
44009 return static_cast<vtable_type*>(vtable)->invoker
44010 (this->functor , a0 , a1 , a2 , a3 , a4);
44015 template<typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 ,
44016 typename Allocator>
44017 void operator==(const function5<
44019 T0 , T1 , T2 , T3 , T4 ,
44023 T0 , T1 , T2 , T3 , T4 ,
44025 template<typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 ,
44026 typename Allocator>
44027 void operator!=(const function5<
44029 T0 , T1 , T2 , T3 , T4 ,
44033 T0 , T1 , T2 , T3 , T4 ,
44035 # 726 "/usr/include/boost/function/function_template.hpp" 3 4
44036 template<typename R ,
44037 typename T0 , typename T1 , typename T2 , typename T3 , typename T4,
44038 typename Allocator>
44039 class function<R ( T0 , T1 , T2 , T3 , T4), Allocator>
44040 : public function5<R, T0 , T1 , T2 , T3 , T4
44043 typedef function5<R, T0 , T1 , T2 , T3 , T4
44044 , Allocator> base_type;
44045 typedef function self_type;
44047 struct clear_type {};
44050 typedef typename base_type::allocator_type allocator_type;
44052 function() : base_type() {}
44054 template<typename Functor>
44057 ,typename enable_if_c<
44058 (boost::type_traits::ice_not<
44059 (is_integral<Functor>::value)>::value),
44068 function(clear_type*) : base_type() {}
44071 function(const self_type& f) : base_type(static_cast<const base_type&>(f)){}
44073 function(const base_type& f) : base_type(static_cast<const base_type&>(f)){}
44075 self_type& operator=(const self_type& f)
44077 self_type(f).swap(*this);
44081 template<typename Functor>
44083 typename enable_if_c<
44084 (boost::type_traits::ice_not<
44085 (is_integral<Functor>::value)>::value),
44090 operator=(Functor f)
44092 self_type(f).swap(*this);
44097 self_type& operator=(clear_type*)
44104 self_type& operator=(const base_type& f)
44106 self_type(f).swap(*this);
44110 # 808 "/usr/include/boost/function/function_template.hpp" 3 4
44112 # 39 "/usr/include/boost/function/detail/maybe_include.hpp" 2 3 4
44113 # 15 "/usr/include/boost/function/detail/function_iterate.hpp" 2 3 4
44114 # 73 "/usr/include/boost/preprocessor/iteration/detail/iter/forward1.hpp" 2 3 4
44119 # 1 "/usr/include/boost/function/detail/function_iterate.hpp" 1 3 4
44120 # 14 "/usr/include/boost/function/detail/function_iterate.hpp" 3 4
44121 # 1 "/usr/include/boost/function/detail/maybe_include.hpp" 1 3 4
44122 # 43 "/usr/include/boost/function/detail/maybe_include.hpp" 3 4
44123 # 1 "/usr/include/boost/function/function_template.hpp" 1 3 4
44124 # 83 "/usr/include/boost/function/function_template.hpp" 3 4
44127 namespace function {
44129 typename FunctionPtr,
44131 typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5
44133 struct function_invoker6
44135 static R invoke(function_buffer& function_ptr ,
44136 T0 a0 , T1 a1 , T2 a2 , T3 a3 , T4 a4 , T5 a5)
44138 FunctionPtr f = reinterpret_cast<FunctionPtr>(function_ptr.func_ptr);
44139 return f( a0 , a1 , a2 , a3 , a4 , a5);
44144 typename FunctionPtr,
44146 typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5
44148 struct void_function_invoker6
44151 invoke(function_buffer& function_ptr ,
44152 T0 a0 , T1 a1 , T2 a2 , T3 a3 , T4 a4 , T5 a5)
44155 FunctionPtr f = reinterpret_cast<FunctionPtr>(function_ptr.func_ptr);
44156 f( a0 , a1 , a2 , a3 , a4 , a5);
44161 typename FunctionObj,
44163 typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5
44165 struct function_obj_invoker6
44167 static R invoke(function_buffer& function_obj_ptr ,
44168 T0 a0 , T1 a1 , T2 a2 , T3 a3 , T4 a4 , T5 a5)
44172 if (function_allows_small_object_optimization<FunctionObj>::value)
44173 f = reinterpret_cast<FunctionObj*>(&function_obj_ptr.data);
44175 f = reinterpret_cast<FunctionObj*>(function_obj_ptr.obj_ptr);
44176 return (*f)( a0 , a1 , a2 , a3 , a4 , a5);
44181 typename FunctionObj,
44183 typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5
44185 struct void_function_obj_invoker6
44188 invoke(function_buffer& function_obj_ptr ,
44189 T0 a0 , T1 a1 , T2 a2 , T3 a3 , T4 a4 , T5 a5)
44193 if (function_allows_small_object_optimization<FunctionObj>::value)
44194 f = reinterpret_cast<FunctionObj*>(&function_obj_ptr.data);
44196 f = reinterpret_cast<FunctionObj*>(function_obj_ptr.obj_ptr);
44197 (*f)( a0 , a1 , a2 , a3 , a4 , a5);
44202 typename FunctionObj,
44204 typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5
44206 struct function_ref_invoker6
44208 static R invoke(function_buffer& function_obj_ptr ,
44209 T0 a0 , T1 a1 , T2 a2 , T3 a3 , T4 a4 , T5 a5)
44213 reinterpret_cast<FunctionObj*>(function_obj_ptr.obj_ptr);
44214 return (*f)( a0 , a1 , a2 , a3 , a4 , a5);
44219 typename FunctionObj,
44221 typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5
44223 struct void_function_ref_invoker6
44226 invoke(function_buffer& function_obj_ptr ,
44227 T0 a0 , T1 a1 , T2 a2 , T3 a3 , T4 a4 , T5 a5)
44231 reinterpret_cast<FunctionObj*>(function_obj_ptr.obj_ptr);
44232 (*f)( a0 , a1 , a2 , a3 , a4 , a5);
44237 typename FunctionPtr,
44239 typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5
44241 struct get_function_invoker6
44243 typedef typename mpl::if_c<(is_void<R>::value),
44244 void_function_invoker6<
44247 T0 , T1 , T2 , T3 , T4 , T5
44252 T0 , T1 , T2 , T3 , T4 , T5
44258 typename FunctionObj,
44260 typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5
44262 struct get_function_obj_invoker6
44264 typedef typename mpl::if_c<(is_void<R>::value),
44265 void_function_obj_invoker6<
44268 T0 , T1 , T2 , T3 , T4 , T5
44270 function_obj_invoker6<
44273 T0 , T1 , T2 , T3 , T4 , T5
44279 typename FunctionObj,
44281 typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5
44283 struct get_function_ref_invoker6
44285 typedef typename mpl::if_c<(is_void<R>::value),
44286 void_function_ref_invoker6<
44289 T0 , T1 , T2 , T3 , T4 , T5
44291 function_ref_invoker6<
44294 T0 , T1 , T2 , T3 , T4 , T5
44302 template<typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5,
44303 typename Allocator>
44304 struct basic_vtable6 : vtable_base
44307 typedef R result_type;
44312 typedef result_type (*invoker_type)(function_buffer&
44314 T0 , T1 , T2 , T3 , T4 , T5);
44316 template<typename F>
44317 basic_vtable6(F f) : vtable_base(), invoker(0)
44322 template<typename F>
44323 bool assign_to(F f, function_buffer& functor)
44325 typedef typename get_function_tag<F>::type tag;
44326 return assign_to(f, functor, tag());
44329 void clear(function_buffer& functor)
44332 manager(functor, functor, destroy_functor_tag);
44336 template<typename F>
44339 typedef typename get_function_tag<F>::type tag;
44344 template<typename FunctionPtr>
44345 void init(FunctionPtr , function_ptr_tag)
44347 typedef typename get_function_invoker6<
44350 T0 , T1 , T2 , T3 , T4 , T5
44352 actual_invoker_type;
44354 invoker = &actual_invoker_type::invoke;
44355 manager = &functor_manager<FunctionPtr, Allocator>::manage;
44358 template<typename FunctionPtr>
44360 assign_to(FunctionPtr f, function_buffer& functor, function_ptr_tag)
44362 this->clear(functor);
44366 functor.func_ptr = (void (*)())(f);
44375 template<typename MemberPtr>
44376 void init(MemberPtr f, member_ptr_tag)
44381 this->init(mem_fn(f));
44384 template<typename MemberPtr>
44385 bool assign_to(MemberPtr f, function_buffer& functor, member_ptr_tag)
44391 this->assign_to(mem_fn(f), functor);
44400 template<typename FunctionObj>
44401 void init(FunctionObj , function_obj_tag)
44403 typedef typename get_function_obj_invoker6<
44406 T0 , T1 , T2 , T3 , T4 , T5
44408 actual_invoker_type;
44410 invoker = &actual_invoker_type::invoke;
44411 manager = &functor_manager<FunctionObj, Allocator>::manage;
44415 template<typename FunctionObj>
44417 assign_functor(FunctionObj f, function_buffer& functor, mpl::true_)
44419 new ((void*)&functor.data) FunctionObj(f);
44423 template<typename FunctionObj>
44425 assign_functor(FunctionObj f, function_buffer& functor, mpl::false_)
44428 typedef typename Allocator::template rebind<FunctionObj>::other
44430 typedef typename allocator_type::pointer pointer_type;
44432 allocator_type allocator;
44433 pointer_type copy = allocator.allocate(1);
44434 allocator.construct(copy, f);
44437 functor.obj_ptr = static_cast<FunctionObj*>(copy);
44443 template<typename FunctionObj>
44445 assign_to(FunctionObj f, function_buffer& functor, function_obj_tag)
44447 if (!boost::detail::function::has_empty_target(boost::addressof(f))) {
44448 assign_functor(f, functor,
44449 mpl::bool_<(function_allows_small_object_optimization<FunctionObj>::value)>());
44457 template<typename FunctionObj>
44459 init(const reference_wrapper<FunctionObj>& , function_obj_ref_tag)
44461 typedef typename get_function_ref_invoker6<
44464 T0 , T1 , T2 , T3 , T4 , T5
44466 actual_invoker_type;
44468 invoker = &actual_invoker_type::invoke;
44469 manager = &reference_manager<FunctionObj>::get;
44472 template<typename FunctionObj>
44474 assign_to(const reference_wrapper<FunctionObj>& f,
44475 function_buffer& functor, function_obj_ref_tag)
44477 if (!boost::detail::function::has_empty_target(f.get_pointer())) {
44482 functor.const_obj_ptr = f.get_pointer();
44490 invoker_type invoker;
44497 typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5,
44498 typename Allocator = std::allocator<function_base>
44500 class function6 : public function_base
44504 typedef R result_type;
44511 typedef boost::detail::function::basic_vtable6<
44512 R , T0 , T1 , T2 , T3 , T4 , T5, Allocator>
44515 struct clear_type {};
44518 static const int args = 6;
44521 template<typename Args>
44524 typedef result_type type;
44526 # 492 "/usr/include/boost/function/function_template.hpp" 3 4
44527 static const int arity = 6;
44528 typedef T0 arg1_type; typedef T1 arg2_type; typedef T2 arg3_type; typedef T3 arg4_type; typedef T4 arg5_type; typedef T5 arg6_type;
44530 typedef Allocator allocator_type;
44531 typedef function6 self_type;
44533 function6() : function_base() { }
44537 template<typename Functor>
44538 function6(Functor f
44540 ,typename enable_if_c<
44541 (boost::type_traits::ice_not<
44542 (is_integral<Functor>::value)>::value),
44548 this->assign_to(f);
44552 function6(clear_type*) : function_base() { }
44560 function6(const function6& f) : function_base()
44562 this->assign_to_own(f);
44565 ~function6() { clear(); }
44566 # 544 "/usr/include/boost/function/function_template.hpp" 3 4
44567 result_type operator()( T0 a0 , T1 a1 , T2 a2 , T3 a3 , T4 a4 , T5 a5) const;
44575 template<typename Functor>
44577 typename enable_if_c<
44578 (boost::type_traits::ice_not<
44579 (is_integral<Functor>::value)>::value),
44584 operator=(Functor f)
44588 this->assign_to(f);
44597 function6& operator=(clear_type*)
44602 # 589 "/usr/include/boost/function/function_template.hpp" 3 4
44603 function6& operator=(const function6& f)
44610 this->assign_to_own(f);
44618 void swap(function6& other)
44620 if (&other == this)
44623 function6 tmp = *this;
44632 static_cast<vtable_type*>(vtable)->clear(this->functor);
44646 typedef void (dummy::*safe_bool)();
44649 operator safe_bool () const
44650 { return (this->empty())? 0 : &dummy::nonnull; }
44652 bool operator!() const
44653 { return this->empty(); }
44657 void assign_to_own(const function6& f)
44660 this->vtable = f.vtable;
44661 f.vtable->manager(f.functor, this->functor,
44662 boost::detail::function::clone_functor_tag);
44666 template<typename Functor>
44667 void assign_to(Functor f)
44669 static vtable_type stored_vtable(f);
44670 if (stored_vtable.assign_to(f, functor)) vtable = &stored_vtable;
44675 template<typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 ,
44676 typename Allocator>
44677 inline void swap(function6<
44679 T0 , T1 , T2 , T3 , T4 , T5 ,
44684 T0 , T1 , T2 , T3 , T4 , T5,
44692 template<typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5,
44693 typename Allocator>
44694 typename function6<
44695 R , T0 , T1 , T2 , T3 , T4 , T5,
44696 Allocator>::result_type
44697 function6<R , T0 , T1 , T2 , T3 , T4 , T5,
44700 ::operator()( T0 a0 , T1 a1 , T2 a2 , T3 a3 , T4 a4 , T5 a5) const
44703 boost::throw_exception(bad_function_call());
44705 return static_cast<vtable_type*>(vtable)->invoker
44706 (this->functor , a0 , a1 , a2 , a3 , a4 , a5);
44711 template<typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 ,
44712 typename Allocator>
44713 void operator==(const function6<
44715 T0 , T1 , T2 , T3 , T4 , T5 ,
44719 T0 , T1 , T2 , T3 , T4 , T5 ,
44721 template<typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 ,
44722 typename Allocator>
44723 void operator!=(const function6<
44725 T0 , T1 , T2 , T3 , T4 , T5 ,
44729 T0 , T1 , T2 , T3 , T4 , T5 ,
44731 # 726 "/usr/include/boost/function/function_template.hpp" 3 4
44732 template<typename R ,
44733 typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5,
44734 typename Allocator>
44735 class function<R ( T0 , T1 , T2 , T3 , T4 , T5), Allocator>
44736 : public function6<R, T0 , T1 , T2 , T3 , T4 , T5
44739 typedef function6<R, T0 , T1 , T2 , T3 , T4 , T5
44740 , Allocator> base_type;
44741 typedef function self_type;
44743 struct clear_type {};
44746 typedef typename base_type::allocator_type allocator_type;
44748 function() : base_type() {}
44750 template<typename Functor>
44753 ,typename enable_if_c<
44754 (boost::type_traits::ice_not<
44755 (is_integral<Functor>::value)>::value),
44764 function(clear_type*) : base_type() {}
44767 function(const self_type& f) : base_type(static_cast<const base_type&>(f)){}
44769 function(const base_type& f) : base_type(static_cast<const base_type&>(f)){}
44771 self_type& operator=(const self_type& f)
44773 self_type(f).swap(*this);
44777 template<typename Functor>
44779 typename enable_if_c<
44780 (boost::type_traits::ice_not<
44781 (is_integral<Functor>::value)>::value),
44786 operator=(Functor f)
44788 self_type(f).swap(*this);
44793 self_type& operator=(clear_type*)
44800 self_type& operator=(const base_type& f)
44802 self_type(f).swap(*this);
44806 # 808 "/usr/include/boost/function/function_template.hpp" 3 4
44808 # 44 "/usr/include/boost/function/detail/maybe_include.hpp" 2 3 4
44809 # 15 "/usr/include/boost/function/detail/function_iterate.hpp" 2 3 4
44810 # 78 "/usr/include/boost/preprocessor/iteration/detail/iter/forward1.hpp" 2 3 4
44815 # 1 "/usr/include/boost/function/detail/function_iterate.hpp" 1 3 4
44816 # 14 "/usr/include/boost/function/detail/function_iterate.hpp" 3 4
44817 # 1 "/usr/include/boost/function/detail/maybe_include.hpp" 1 3 4
44818 # 48 "/usr/include/boost/function/detail/maybe_include.hpp" 3 4
44819 # 1 "/usr/include/boost/function/function_template.hpp" 1 3 4
44820 # 83 "/usr/include/boost/function/function_template.hpp" 3 4
44823 namespace function {
44825 typename FunctionPtr,
44827 typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6
44829 struct function_invoker7
44831 static R invoke(function_buffer& function_ptr ,
44832 T0 a0 , T1 a1 , T2 a2 , T3 a3 , T4 a4 , T5 a5 , T6 a6)
44834 FunctionPtr f = reinterpret_cast<FunctionPtr>(function_ptr.func_ptr);
44835 return f( a0 , a1 , a2 , a3 , a4 , a5 , a6);
44840 typename FunctionPtr,
44842 typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6
44844 struct void_function_invoker7
44847 invoke(function_buffer& function_ptr ,
44848 T0 a0 , T1 a1 , T2 a2 , T3 a3 , T4 a4 , T5 a5 , T6 a6)
44851 FunctionPtr f = reinterpret_cast<FunctionPtr>(function_ptr.func_ptr);
44852 f( a0 , a1 , a2 , a3 , a4 , a5 , a6);
44857 typename FunctionObj,
44859 typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6
44861 struct function_obj_invoker7
44863 static R invoke(function_buffer& function_obj_ptr ,
44864 T0 a0 , T1 a1 , T2 a2 , T3 a3 , T4 a4 , T5 a5 , T6 a6)
44868 if (function_allows_small_object_optimization<FunctionObj>::value)
44869 f = reinterpret_cast<FunctionObj*>(&function_obj_ptr.data);
44871 f = reinterpret_cast<FunctionObj*>(function_obj_ptr.obj_ptr);
44872 return (*f)( a0 , a1 , a2 , a3 , a4 , a5 , a6);
44877 typename FunctionObj,
44879 typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6
44881 struct void_function_obj_invoker7
44884 invoke(function_buffer& function_obj_ptr ,
44885 T0 a0 , T1 a1 , T2 a2 , T3 a3 , T4 a4 , T5 a5 , T6 a6)
44889 if (function_allows_small_object_optimization<FunctionObj>::value)
44890 f = reinterpret_cast<FunctionObj*>(&function_obj_ptr.data);
44892 f = reinterpret_cast<FunctionObj*>(function_obj_ptr.obj_ptr);
44893 (*f)( a0 , a1 , a2 , a3 , a4 , a5 , a6);
44898 typename FunctionObj,
44900 typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6
44902 struct function_ref_invoker7
44904 static R invoke(function_buffer& function_obj_ptr ,
44905 T0 a0 , T1 a1 , T2 a2 , T3 a3 , T4 a4 , T5 a5 , T6 a6)
44909 reinterpret_cast<FunctionObj*>(function_obj_ptr.obj_ptr);
44910 return (*f)( a0 , a1 , a2 , a3 , a4 , a5 , a6);
44915 typename FunctionObj,
44917 typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6
44919 struct void_function_ref_invoker7
44922 invoke(function_buffer& function_obj_ptr ,
44923 T0 a0 , T1 a1 , T2 a2 , T3 a3 , T4 a4 , T5 a5 , T6 a6)
44927 reinterpret_cast<FunctionObj*>(function_obj_ptr.obj_ptr);
44928 (*f)( a0 , a1 , a2 , a3 , a4 , a5 , a6);
44933 typename FunctionPtr,
44935 typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6
44937 struct get_function_invoker7
44939 typedef typename mpl::if_c<(is_void<R>::value),
44940 void_function_invoker7<
44943 T0 , T1 , T2 , T3 , T4 , T5 , T6
44948 T0 , T1 , T2 , T3 , T4 , T5 , T6
44954 typename FunctionObj,
44956 typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6
44958 struct get_function_obj_invoker7
44960 typedef typename mpl::if_c<(is_void<R>::value),
44961 void_function_obj_invoker7<
44964 T0 , T1 , T2 , T3 , T4 , T5 , T6
44966 function_obj_invoker7<
44969 T0 , T1 , T2 , T3 , T4 , T5 , T6
44975 typename FunctionObj,
44977 typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6
44979 struct get_function_ref_invoker7
44981 typedef typename mpl::if_c<(is_void<R>::value),
44982 void_function_ref_invoker7<
44985 T0 , T1 , T2 , T3 , T4 , T5 , T6
44987 function_ref_invoker7<
44990 T0 , T1 , T2 , T3 , T4 , T5 , T6
44998 template<typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6,
44999 typename Allocator>
45000 struct basic_vtable7 : vtable_base
45003 typedef R result_type;
45008 typedef result_type (*invoker_type)(function_buffer&
45010 T0 , T1 , T2 , T3 , T4 , T5 , T6);
45012 template<typename F>
45013 basic_vtable7(F f) : vtable_base(), invoker(0)
45018 template<typename F>
45019 bool assign_to(F f, function_buffer& functor)
45021 typedef typename get_function_tag<F>::type tag;
45022 return assign_to(f, functor, tag());
45025 void clear(function_buffer& functor)
45028 manager(functor, functor, destroy_functor_tag);
45032 template<typename F>
45035 typedef typename get_function_tag<F>::type tag;
45040 template<typename FunctionPtr>
45041 void init(FunctionPtr , function_ptr_tag)
45043 typedef typename get_function_invoker7<
45046 T0 , T1 , T2 , T3 , T4 , T5 , T6
45048 actual_invoker_type;
45050 invoker = &actual_invoker_type::invoke;
45051 manager = &functor_manager<FunctionPtr, Allocator>::manage;
45054 template<typename FunctionPtr>
45056 assign_to(FunctionPtr f, function_buffer& functor, function_ptr_tag)
45058 this->clear(functor);
45062 functor.func_ptr = (void (*)())(f);
45071 template<typename MemberPtr>
45072 void init(MemberPtr f, member_ptr_tag)
45077 this->init(mem_fn(f));
45080 template<typename MemberPtr>
45081 bool assign_to(MemberPtr f, function_buffer& functor, member_ptr_tag)
45087 this->assign_to(mem_fn(f), functor);
45096 template<typename FunctionObj>
45097 void init(FunctionObj , function_obj_tag)
45099 typedef typename get_function_obj_invoker7<
45102 T0 , T1 , T2 , T3 , T4 , T5 , T6
45104 actual_invoker_type;
45106 invoker = &actual_invoker_type::invoke;
45107 manager = &functor_manager<FunctionObj, Allocator>::manage;
45111 template<typename FunctionObj>
45113 assign_functor(FunctionObj f, function_buffer& functor, mpl::true_)
45115 new ((void*)&functor.data) FunctionObj(f);
45119 template<typename FunctionObj>
45121 assign_functor(FunctionObj f, function_buffer& functor, mpl::false_)
45124 typedef typename Allocator::template rebind<FunctionObj>::other
45126 typedef typename allocator_type::pointer pointer_type;
45128 allocator_type allocator;
45129 pointer_type copy = allocator.allocate(1);
45130 allocator.construct(copy, f);
45133 functor.obj_ptr = static_cast<FunctionObj*>(copy);
45139 template<typename FunctionObj>
45141 assign_to(FunctionObj f, function_buffer& functor, function_obj_tag)
45143 if (!boost::detail::function::has_empty_target(boost::addressof(f))) {
45144 assign_functor(f, functor,
45145 mpl::bool_<(function_allows_small_object_optimization<FunctionObj>::value)>());
45153 template<typename FunctionObj>
45155 init(const reference_wrapper<FunctionObj>& , function_obj_ref_tag)
45157 typedef typename get_function_ref_invoker7<
45160 T0 , T1 , T2 , T3 , T4 , T5 , T6
45162 actual_invoker_type;
45164 invoker = &actual_invoker_type::invoke;
45165 manager = &reference_manager<FunctionObj>::get;
45168 template<typename FunctionObj>
45170 assign_to(const reference_wrapper<FunctionObj>& f,
45171 function_buffer& functor, function_obj_ref_tag)
45173 if (!boost::detail::function::has_empty_target(f.get_pointer())) {
45178 functor.const_obj_ptr = f.get_pointer();
45186 invoker_type invoker;
45193 typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6,
45194 typename Allocator = std::allocator<function_base>
45196 class function7 : public function_base
45200 typedef R result_type;
45207 typedef boost::detail::function::basic_vtable7<
45208 R , T0 , T1 , T2 , T3 , T4 , T5 , T6, Allocator>
45211 struct clear_type {};
45214 static const int args = 7;
45217 template<typename Args>
45220 typedef result_type type;
45222 # 492 "/usr/include/boost/function/function_template.hpp" 3 4
45223 static const int arity = 7;
45224 typedef T0 arg1_type; typedef T1 arg2_type; typedef T2 arg3_type; typedef T3 arg4_type; typedef T4 arg5_type; typedef T5 arg6_type; typedef T6 arg7_type;
45226 typedef Allocator allocator_type;
45227 typedef function7 self_type;
45229 function7() : function_base() { }
45233 template<typename Functor>
45234 function7(Functor f
45236 ,typename enable_if_c<
45237 (boost::type_traits::ice_not<
45238 (is_integral<Functor>::value)>::value),
45244 this->assign_to(f);
45248 function7(clear_type*) : function_base() { }
45256 function7(const function7& f) : function_base()
45258 this->assign_to_own(f);
45261 ~function7() { clear(); }
45262 # 544 "/usr/include/boost/function/function_template.hpp" 3 4
45263 result_type operator()( T0 a0 , T1 a1 , T2 a2 , T3 a3 , T4 a4 , T5 a5 , T6 a6) const;
45271 template<typename Functor>
45273 typename enable_if_c<
45274 (boost::type_traits::ice_not<
45275 (is_integral<Functor>::value)>::value),
45280 operator=(Functor f)
45284 this->assign_to(f);
45293 function7& operator=(clear_type*)
45298 # 589 "/usr/include/boost/function/function_template.hpp" 3 4
45299 function7& operator=(const function7& f)
45306 this->assign_to_own(f);
45314 void swap(function7& other)
45316 if (&other == this)
45319 function7 tmp = *this;
45328 static_cast<vtable_type*>(vtable)->clear(this->functor);
45342 typedef void (dummy::*safe_bool)();
45345 operator safe_bool () const
45346 { return (this->empty())? 0 : &dummy::nonnull; }
45348 bool operator!() const
45349 { return this->empty(); }
45353 void assign_to_own(const function7& f)
45356 this->vtable = f.vtable;
45357 f.vtable->manager(f.functor, this->functor,
45358 boost::detail::function::clone_functor_tag);
45362 template<typename Functor>
45363 void assign_to(Functor f)
45365 static vtable_type stored_vtable(f);
45366 if (stored_vtable.assign_to(f, functor)) vtable = &stored_vtable;
45371 template<typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 ,
45372 typename Allocator>
45373 inline void swap(function7<
45375 T0 , T1 , T2 , T3 , T4 , T5 , T6 ,
45380 T0 , T1 , T2 , T3 , T4 , T5 , T6,
45388 template<typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6,
45389 typename Allocator>
45390 typename function7<
45391 R , T0 , T1 , T2 , T3 , T4 , T5 , T6,
45392 Allocator>::result_type
45393 function7<R , T0 , T1 , T2 , T3 , T4 , T5 , T6,
45396 ::operator()( T0 a0 , T1 a1 , T2 a2 , T3 a3 , T4 a4 , T5 a5 , T6 a6) const
45399 boost::throw_exception(bad_function_call());
45401 return static_cast<vtable_type*>(vtable)->invoker
45402 (this->functor , a0 , a1 , a2 , a3 , a4 , a5 , a6);
45407 template<typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 ,
45408 typename Allocator>
45409 void operator==(const function7<
45411 T0 , T1 , T2 , T3 , T4 , T5 , T6 ,
45415 T0 , T1 , T2 , T3 , T4 , T5 , T6 ,
45417 template<typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 ,
45418 typename Allocator>
45419 void operator!=(const function7<
45421 T0 , T1 , T2 , T3 , T4 , T5 , T6 ,
45425 T0 , T1 , T2 , T3 , T4 , T5 , T6 ,
45427 # 726 "/usr/include/boost/function/function_template.hpp" 3 4
45428 template<typename R ,
45429 typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6,
45430 typename Allocator>
45431 class function<R ( T0 , T1 , T2 , T3 , T4 , T5 , T6), Allocator>
45432 : public function7<R, T0 , T1 , T2 , T3 , T4 , T5 , T6
45435 typedef function7<R, T0 , T1 , T2 , T3 , T4 , T5 , T6
45436 , Allocator> base_type;
45437 typedef function self_type;
45439 struct clear_type {};
45442 typedef typename base_type::allocator_type allocator_type;
45444 function() : base_type() {}
45446 template<typename Functor>
45449 ,typename enable_if_c<
45450 (boost::type_traits::ice_not<
45451 (is_integral<Functor>::value)>::value),
45460 function(clear_type*) : base_type() {}
45463 function(const self_type& f) : base_type(static_cast<const base_type&>(f)){}
45465 function(const base_type& f) : base_type(static_cast<const base_type&>(f)){}
45467 self_type& operator=(const self_type& f)
45469 self_type(f).swap(*this);
45473 template<typename Functor>
45475 typename enable_if_c<
45476 (boost::type_traits::ice_not<
45477 (is_integral<Functor>::value)>::value),
45482 operator=(Functor f)
45484 self_type(f).swap(*this);
45489 self_type& operator=(clear_type*)
45496 self_type& operator=(const base_type& f)
45498 self_type(f).swap(*this);
45502 # 808 "/usr/include/boost/function/function_template.hpp" 3 4
45504 # 49 "/usr/include/boost/function/detail/maybe_include.hpp" 2 3 4
45505 # 15 "/usr/include/boost/function/detail/function_iterate.hpp" 2 3 4
45506 # 83 "/usr/include/boost/preprocessor/iteration/detail/iter/forward1.hpp" 2 3 4
45511 # 1 "/usr/include/boost/function/detail/function_iterate.hpp" 1 3 4
45512 # 14 "/usr/include/boost/function/detail/function_iterate.hpp" 3 4
45513 # 1 "/usr/include/boost/function/detail/maybe_include.hpp" 1 3 4
45514 # 53 "/usr/include/boost/function/detail/maybe_include.hpp" 3 4
45515 # 1 "/usr/include/boost/function/function_template.hpp" 1 3 4
45516 # 83 "/usr/include/boost/function/function_template.hpp" 3 4
45519 namespace function {
45521 typename FunctionPtr,
45523 typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7
45525 struct function_invoker8
45527 static R invoke(function_buffer& function_ptr ,
45528 T0 a0 , T1 a1 , T2 a2 , T3 a3 , T4 a4 , T5 a5 , T6 a6 , T7 a7)
45530 FunctionPtr f = reinterpret_cast<FunctionPtr>(function_ptr.func_ptr);
45531 return f( a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7);
45536 typename FunctionPtr,
45538 typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7
45540 struct void_function_invoker8
45543 invoke(function_buffer& function_ptr ,
45544 T0 a0 , T1 a1 , T2 a2 , T3 a3 , T4 a4 , T5 a5 , T6 a6 , T7 a7)
45547 FunctionPtr f = reinterpret_cast<FunctionPtr>(function_ptr.func_ptr);
45548 f( a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7);
45553 typename FunctionObj,
45555 typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7
45557 struct function_obj_invoker8
45559 static R invoke(function_buffer& function_obj_ptr ,
45560 T0 a0 , T1 a1 , T2 a2 , T3 a3 , T4 a4 , T5 a5 , T6 a6 , T7 a7)
45564 if (function_allows_small_object_optimization<FunctionObj>::value)
45565 f = reinterpret_cast<FunctionObj*>(&function_obj_ptr.data);
45567 f = reinterpret_cast<FunctionObj*>(function_obj_ptr.obj_ptr);
45568 return (*f)( a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7);
45573 typename FunctionObj,
45575 typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7
45577 struct void_function_obj_invoker8
45580 invoke(function_buffer& function_obj_ptr ,
45581 T0 a0 , T1 a1 , T2 a2 , T3 a3 , T4 a4 , T5 a5 , T6 a6 , T7 a7)
45585 if (function_allows_small_object_optimization<FunctionObj>::value)
45586 f = reinterpret_cast<FunctionObj*>(&function_obj_ptr.data);
45588 f = reinterpret_cast<FunctionObj*>(function_obj_ptr.obj_ptr);
45589 (*f)( a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7);
45594 typename FunctionObj,
45596 typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7
45598 struct function_ref_invoker8
45600 static R invoke(function_buffer& function_obj_ptr ,
45601 T0 a0 , T1 a1 , T2 a2 , T3 a3 , T4 a4 , T5 a5 , T6 a6 , T7 a7)
45605 reinterpret_cast<FunctionObj*>(function_obj_ptr.obj_ptr);
45606 return (*f)( a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7);
45611 typename FunctionObj,
45613 typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7
45615 struct void_function_ref_invoker8
45618 invoke(function_buffer& function_obj_ptr ,
45619 T0 a0 , T1 a1 , T2 a2 , T3 a3 , T4 a4 , T5 a5 , T6 a6 , T7 a7)
45623 reinterpret_cast<FunctionObj*>(function_obj_ptr.obj_ptr);
45624 (*f)( a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7);
45629 typename FunctionPtr,
45631 typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7
45633 struct get_function_invoker8
45635 typedef typename mpl::if_c<(is_void<R>::value),
45636 void_function_invoker8<
45639 T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7
45644 T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7
45650 typename FunctionObj,
45652 typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7
45654 struct get_function_obj_invoker8
45656 typedef typename mpl::if_c<(is_void<R>::value),
45657 void_function_obj_invoker8<
45660 T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7
45662 function_obj_invoker8<
45665 T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7
45671 typename FunctionObj,
45673 typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7
45675 struct get_function_ref_invoker8
45677 typedef typename mpl::if_c<(is_void<R>::value),
45678 void_function_ref_invoker8<
45681 T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7
45683 function_ref_invoker8<
45686 T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7
45694 template<typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7,
45695 typename Allocator>
45696 struct basic_vtable8 : vtable_base
45699 typedef R result_type;
45704 typedef result_type (*invoker_type)(function_buffer&
45706 T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7);
45708 template<typename F>
45709 basic_vtable8(F f) : vtable_base(), invoker(0)
45714 template<typename F>
45715 bool assign_to(F f, function_buffer& functor)
45717 typedef typename get_function_tag<F>::type tag;
45718 return assign_to(f, functor, tag());
45721 void clear(function_buffer& functor)
45724 manager(functor, functor, destroy_functor_tag);
45728 template<typename F>
45731 typedef typename get_function_tag<F>::type tag;
45736 template<typename FunctionPtr>
45737 void init(FunctionPtr , function_ptr_tag)
45739 typedef typename get_function_invoker8<
45742 T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7
45744 actual_invoker_type;
45746 invoker = &actual_invoker_type::invoke;
45747 manager = &functor_manager<FunctionPtr, Allocator>::manage;
45750 template<typename FunctionPtr>
45752 assign_to(FunctionPtr f, function_buffer& functor, function_ptr_tag)
45754 this->clear(functor);
45758 functor.func_ptr = (void (*)())(f);
45767 template<typename MemberPtr>
45768 void init(MemberPtr f, member_ptr_tag)
45773 this->init(mem_fn(f));
45776 template<typename MemberPtr>
45777 bool assign_to(MemberPtr f, function_buffer& functor, member_ptr_tag)
45783 this->assign_to(mem_fn(f), functor);
45792 template<typename FunctionObj>
45793 void init(FunctionObj , function_obj_tag)
45795 typedef typename get_function_obj_invoker8<
45798 T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7
45800 actual_invoker_type;
45802 invoker = &actual_invoker_type::invoke;
45803 manager = &functor_manager<FunctionObj, Allocator>::manage;
45807 template<typename FunctionObj>
45809 assign_functor(FunctionObj f, function_buffer& functor, mpl::true_)
45811 new ((void*)&functor.data) FunctionObj(f);
45815 template<typename FunctionObj>
45817 assign_functor(FunctionObj f, function_buffer& functor, mpl::false_)
45820 typedef typename Allocator::template rebind<FunctionObj>::other
45822 typedef typename allocator_type::pointer pointer_type;
45824 allocator_type allocator;
45825 pointer_type copy = allocator.allocate(1);
45826 allocator.construct(copy, f);
45829 functor.obj_ptr = static_cast<FunctionObj*>(copy);
45835 template<typename FunctionObj>
45837 assign_to(FunctionObj f, function_buffer& functor, function_obj_tag)
45839 if (!boost::detail::function::has_empty_target(boost::addressof(f))) {
45840 assign_functor(f, functor,
45841 mpl::bool_<(function_allows_small_object_optimization<FunctionObj>::value)>());
45849 template<typename FunctionObj>
45851 init(const reference_wrapper<FunctionObj>& , function_obj_ref_tag)
45853 typedef typename get_function_ref_invoker8<
45856 T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7
45858 actual_invoker_type;
45860 invoker = &actual_invoker_type::invoke;
45861 manager = &reference_manager<FunctionObj>::get;
45864 template<typename FunctionObj>
45866 assign_to(const reference_wrapper<FunctionObj>& f,
45867 function_buffer& functor, function_obj_ref_tag)
45869 if (!boost::detail::function::has_empty_target(f.get_pointer())) {
45874 functor.const_obj_ptr = f.get_pointer();
45882 invoker_type invoker;
45889 typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7,
45890 typename Allocator = std::allocator<function_base>
45892 class function8 : public function_base
45896 typedef R result_type;
45903 typedef boost::detail::function::basic_vtable8<
45904 R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7, Allocator>
45907 struct clear_type {};
45910 static const int args = 8;
45913 template<typename Args>
45916 typedef result_type type;
45918 # 492 "/usr/include/boost/function/function_template.hpp" 3 4
45919 static const int arity = 8;
45920 typedef T0 arg1_type; typedef T1 arg2_type; typedef T2 arg3_type; typedef T3 arg4_type; typedef T4 arg5_type; typedef T5 arg6_type; typedef T6 arg7_type; typedef T7 arg8_type;
45922 typedef Allocator allocator_type;
45923 typedef function8 self_type;
45925 function8() : function_base() { }
45929 template<typename Functor>
45930 function8(Functor f
45932 ,typename enable_if_c<
45933 (boost::type_traits::ice_not<
45934 (is_integral<Functor>::value)>::value),
45940 this->assign_to(f);
45944 function8(clear_type*) : function_base() { }
45952 function8(const function8& f) : function_base()
45954 this->assign_to_own(f);
45957 ~function8() { clear(); }
45958 # 544 "/usr/include/boost/function/function_template.hpp" 3 4
45959 result_type operator()( T0 a0 , T1 a1 , T2 a2 , T3 a3 , T4 a4 , T5 a5 , T6 a6 , T7 a7) const;
45967 template<typename Functor>
45969 typename enable_if_c<
45970 (boost::type_traits::ice_not<
45971 (is_integral<Functor>::value)>::value),
45976 operator=(Functor f)
45980 this->assign_to(f);
45989 function8& operator=(clear_type*)
45994 # 589 "/usr/include/boost/function/function_template.hpp" 3 4
45995 function8& operator=(const function8& f)
46002 this->assign_to_own(f);
46010 void swap(function8& other)
46012 if (&other == this)
46015 function8 tmp = *this;
46024 static_cast<vtable_type*>(vtable)->clear(this->functor);
46038 typedef void (dummy::*safe_bool)();
46041 operator safe_bool () const
46042 { return (this->empty())? 0 : &dummy::nonnull; }
46044 bool operator!() const
46045 { return this->empty(); }
46049 void assign_to_own(const function8& f)
46052 this->vtable = f.vtable;
46053 f.vtable->manager(f.functor, this->functor,
46054 boost::detail::function::clone_functor_tag);
46058 template<typename Functor>
46059 void assign_to(Functor f)
46061 static vtable_type stored_vtable(f);
46062 if (stored_vtable.assign_to(f, functor)) vtable = &stored_vtable;
46067 template<typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 ,
46068 typename Allocator>
46069 inline void swap(function8<
46071 T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ,
46076 T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7,
46084 template<typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7,
46085 typename Allocator>
46086 typename function8<
46087 R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7,
46088 Allocator>::result_type
46089 function8<R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7,
46092 ::operator()( T0 a0 , T1 a1 , T2 a2 , T3 a3 , T4 a4 , T5 a5 , T6 a6 , T7 a7) const
46095 boost::throw_exception(bad_function_call());
46097 return static_cast<vtable_type*>(vtable)->invoker
46098 (this->functor , a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7);
46103 template<typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 ,
46104 typename Allocator>
46105 void operator==(const function8<
46107 T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ,
46111 T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ,
46113 template<typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 ,
46114 typename Allocator>
46115 void operator!=(const function8<
46117 T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ,
46121 T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ,
46123 # 726 "/usr/include/boost/function/function_template.hpp" 3 4
46124 template<typename R ,
46125 typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7,
46126 typename Allocator>
46127 class function<R ( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7), Allocator>
46128 : public function8<R, T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7
46131 typedef function8<R, T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7
46132 , Allocator> base_type;
46133 typedef function self_type;
46135 struct clear_type {};
46138 typedef typename base_type::allocator_type allocator_type;
46140 function() : base_type() {}
46142 template<typename Functor>
46145 ,typename enable_if_c<
46146 (boost::type_traits::ice_not<
46147 (is_integral<Functor>::value)>::value),
46156 function(clear_type*) : base_type() {}
46159 function(const self_type& f) : base_type(static_cast<const base_type&>(f)){}
46161 function(const base_type& f) : base_type(static_cast<const base_type&>(f)){}
46163 self_type& operator=(const self_type& f)
46165 self_type(f).swap(*this);
46169 template<typename Functor>
46171 typename enable_if_c<
46172 (boost::type_traits::ice_not<
46173 (is_integral<Functor>::value)>::value),
46178 operator=(Functor f)
46180 self_type(f).swap(*this);
46185 self_type& operator=(clear_type*)
46192 self_type& operator=(const base_type& f)
46194 self_type(f).swap(*this);
46198 # 808 "/usr/include/boost/function/function_template.hpp" 3 4
46200 # 54 "/usr/include/boost/function/detail/maybe_include.hpp" 2 3 4
46201 # 15 "/usr/include/boost/function/detail/function_iterate.hpp" 2 3 4
46202 # 88 "/usr/include/boost/preprocessor/iteration/detail/iter/forward1.hpp" 2 3 4
46207 # 1 "/usr/include/boost/function/detail/function_iterate.hpp" 1 3 4
46208 # 14 "/usr/include/boost/function/detail/function_iterate.hpp" 3 4
46209 # 1 "/usr/include/boost/function/detail/maybe_include.hpp" 1 3 4
46210 # 58 "/usr/include/boost/function/detail/maybe_include.hpp" 3 4
46211 # 1 "/usr/include/boost/function/function_template.hpp" 1 3 4
46212 # 83 "/usr/include/boost/function/function_template.hpp" 3 4
46215 namespace function {
46217 typename FunctionPtr,
46219 typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8
46221 struct function_invoker9
46223 static R invoke(function_buffer& function_ptr ,
46224 T0 a0 , T1 a1 , T2 a2 , T3 a3 , T4 a4 , T5 a5 , T6 a6 , T7 a7 , T8 a8)
46226 FunctionPtr f = reinterpret_cast<FunctionPtr>(function_ptr.func_ptr);
46227 return f( a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8);
46232 typename FunctionPtr,
46234 typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8
46236 struct void_function_invoker9
46239 invoke(function_buffer& function_ptr ,
46240 T0 a0 , T1 a1 , T2 a2 , T3 a3 , T4 a4 , T5 a5 , T6 a6 , T7 a7 , T8 a8)
46243 FunctionPtr f = reinterpret_cast<FunctionPtr>(function_ptr.func_ptr);
46244 f( a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8);
46249 typename FunctionObj,
46251 typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8
46253 struct function_obj_invoker9
46255 static R invoke(function_buffer& function_obj_ptr ,
46256 T0 a0 , T1 a1 , T2 a2 , T3 a3 , T4 a4 , T5 a5 , T6 a6 , T7 a7 , T8 a8)
46260 if (function_allows_small_object_optimization<FunctionObj>::value)
46261 f = reinterpret_cast<FunctionObj*>(&function_obj_ptr.data);
46263 f = reinterpret_cast<FunctionObj*>(function_obj_ptr.obj_ptr);
46264 return (*f)( a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8);
46269 typename FunctionObj,
46271 typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8
46273 struct void_function_obj_invoker9
46276 invoke(function_buffer& function_obj_ptr ,
46277 T0 a0 , T1 a1 , T2 a2 , T3 a3 , T4 a4 , T5 a5 , T6 a6 , T7 a7 , T8 a8)
46281 if (function_allows_small_object_optimization<FunctionObj>::value)
46282 f = reinterpret_cast<FunctionObj*>(&function_obj_ptr.data);
46284 f = reinterpret_cast<FunctionObj*>(function_obj_ptr.obj_ptr);
46285 (*f)( a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8);
46290 typename FunctionObj,
46292 typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8
46294 struct function_ref_invoker9
46296 static R invoke(function_buffer& function_obj_ptr ,
46297 T0 a0 , T1 a1 , T2 a2 , T3 a3 , T4 a4 , T5 a5 , T6 a6 , T7 a7 , T8 a8)
46301 reinterpret_cast<FunctionObj*>(function_obj_ptr.obj_ptr);
46302 return (*f)( a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8);
46307 typename FunctionObj,
46309 typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8
46311 struct void_function_ref_invoker9
46314 invoke(function_buffer& function_obj_ptr ,
46315 T0 a0 , T1 a1 , T2 a2 , T3 a3 , T4 a4 , T5 a5 , T6 a6 , T7 a7 , T8 a8)
46319 reinterpret_cast<FunctionObj*>(function_obj_ptr.obj_ptr);
46320 (*f)( a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8);
46325 typename FunctionPtr,
46327 typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8
46329 struct get_function_invoker9
46331 typedef typename mpl::if_c<(is_void<R>::value),
46332 void_function_invoker9<
46335 T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8
46340 T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8
46346 typename FunctionObj,
46348 typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8
46350 struct get_function_obj_invoker9
46352 typedef typename mpl::if_c<(is_void<R>::value),
46353 void_function_obj_invoker9<
46356 T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8
46358 function_obj_invoker9<
46361 T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8
46367 typename FunctionObj,
46369 typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8
46371 struct get_function_ref_invoker9
46373 typedef typename mpl::if_c<(is_void<R>::value),
46374 void_function_ref_invoker9<
46377 T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8
46379 function_ref_invoker9<
46382 T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8
46390 template<typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8,
46391 typename Allocator>
46392 struct basic_vtable9 : vtable_base
46395 typedef R result_type;
46400 typedef result_type (*invoker_type)(function_buffer&
46402 T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8);
46404 template<typename F>
46405 basic_vtable9(F f) : vtable_base(), invoker(0)
46410 template<typename F>
46411 bool assign_to(F f, function_buffer& functor)
46413 typedef typename get_function_tag<F>::type tag;
46414 return assign_to(f, functor, tag());
46417 void clear(function_buffer& functor)
46420 manager(functor, functor, destroy_functor_tag);
46424 template<typename F>
46427 typedef typename get_function_tag<F>::type tag;
46432 template<typename FunctionPtr>
46433 void init(FunctionPtr , function_ptr_tag)
46435 typedef typename get_function_invoker9<
46438 T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8
46440 actual_invoker_type;
46442 invoker = &actual_invoker_type::invoke;
46443 manager = &functor_manager<FunctionPtr, Allocator>::manage;
46446 template<typename FunctionPtr>
46448 assign_to(FunctionPtr f, function_buffer& functor, function_ptr_tag)
46450 this->clear(functor);
46454 functor.func_ptr = (void (*)())(f);
46463 template<typename MemberPtr>
46464 void init(MemberPtr f, member_ptr_tag)
46469 this->init(mem_fn(f));
46472 template<typename MemberPtr>
46473 bool assign_to(MemberPtr f, function_buffer& functor, member_ptr_tag)
46479 this->assign_to(mem_fn(f), functor);
46488 template<typename FunctionObj>
46489 void init(FunctionObj , function_obj_tag)
46491 typedef typename get_function_obj_invoker9<
46494 T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8
46496 actual_invoker_type;
46498 invoker = &actual_invoker_type::invoke;
46499 manager = &functor_manager<FunctionObj, Allocator>::manage;
46503 template<typename FunctionObj>
46505 assign_functor(FunctionObj f, function_buffer& functor, mpl::true_)
46507 new ((void*)&functor.data) FunctionObj(f);
46511 template<typename FunctionObj>
46513 assign_functor(FunctionObj f, function_buffer& functor, mpl::false_)
46516 typedef typename Allocator::template rebind<FunctionObj>::other
46518 typedef typename allocator_type::pointer pointer_type;
46520 allocator_type allocator;
46521 pointer_type copy = allocator.allocate(1);
46522 allocator.construct(copy, f);
46525 functor.obj_ptr = static_cast<FunctionObj*>(copy);
46531 template<typename FunctionObj>
46533 assign_to(FunctionObj f, function_buffer& functor, function_obj_tag)
46535 if (!boost::detail::function::has_empty_target(boost::addressof(f))) {
46536 assign_functor(f, functor,
46537 mpl::bool_<(function_allows_small_object_optimization<FunctionObj>::value)>());
46545 template<typename FunctionObj>
46547 init(const reference_wrapper<FunctionObj>& , function_obj_ref_tag)
46549 typedef typename get_function_ref_invoker9<
46552 T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8
46554 actual_invoker_type;
46556 invoker = &actual_invoker_type::invoke;
46557 manager = &reference_manager<FunctionObj>::get;
46560 template<typename FunctionObj>
46562 assign_to(const reference_wrapper<FunctionObj>& f,
46563 function_buffer& functor, function_obj_ref_tag)
46565 if (!boost::detail::function::has_empty_target(f.get_pointer())) {
46570 functor.const_obj_ptr = f.get_pointer();
46578 invoker_type invoker;
46585 typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8,
46586 typename Allocator = std::allocator<function_base>
46588 class function9 : public function_base
46592 typedef R result_type;
46599 typedef boost::detail::function::basic_vtable9<
46600 R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8, Allocator>
46603 struct clear_type {};
46606 static const int args = 9;
46609 template<typename Args>
46612 typedef result_type type;
46614 # 492 "/usr/include/boost/function/function_template.hpp" 3 4
46615 static const int arity = 9;
46616 typedef T0 arg1_type; typedef T1 arg2_type; typedef T2 arg3_type; typedef T3 arg4_type; typedef T4 arg5_type; typedef T5 arg6_type; typedef T6 arg7_type; typedef T7 arg8_type; typedef T8 arg9_type;
46618 typedef Allocator allocator_type;
46619 typedef function9 self_type;
46621 function9() : function_base() { }
46625 template<typename Functor>
46626 function9(Functor f
46628 ,typename enable_if_c<
46629 (boost::type_traits::ice_not<
46630 (is_integral<Functor>::value)>::value),
46636 this->assign_to(f);
46640 function9(clear_type*) : function_base() { }
46648 function9(const function9& f) : function_base()
46650 this->assign_to_own(f);
46653 ~function9() { clear(); }
46654 # 544 "/usr/include/boost/function/function_template.hpp" 3 4
46655 result_type operator()( T0 a0 , T1 a1 , T2 a2 , T3 a3 , T4 a4 , T5 a5 , T6 a6 , T7 a7 , T8 a8) const;
46663 template<typename Functor>
46665 typename enable_if_c<
46666 (boost::type_traits::ice_not<
46667 (is_integral<Functor>::value)>::value),
46672 operator=(Functor f)
46676 this->assign_to(f);
46685 function9& operator=(clear_type*)
46690 # 589 "/usr/include/boost/function/function_template.hpp" 3 4
46691 function9& operator=(const function9& f)
46698 this->assign_to_own(f);
46706 void swap(function9& other)
46708 if (&other == this)
46711 function9 tmp = *this;
46720 static_cast<vtable_type*>(vtable)->clear(this->functor);
46734 typedef void (dummy::*safe_bool)();
46737 operator safe_bool () const
46738 { return (this->empty())? 0 : &dummy::nonnull; }
46740 bool operator!() const
46741 { return this->empty(); }
46745 void assign_to_own(const function9& f)
46748 this->vtable = f.vtable;
46749 f.vtable->manager(f.functor, this->functor,
46750 boost::detail::function::clone_functor_tag);
46754 template<typename Functor>
46755 void assign_to(Functor f)
46757 static vtable_type stored_vtable(f);
46758 if (stored_vtable.assign_to(f, functor)) vtable = &stored_vtable;
46763 template<typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 ,
46764 typename Allocator>
46765 inline void swap(function9<
46767 T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ,
46772 T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8,
46780 template<typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8,
46781 typename Allocator>
46782 typename function9<
46783 R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8,
46784 Allocator>::result_type
46785 function9<R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8,
46788 ::operator()( T0 a0 , T1 a1 , T2 a2 , T3 a3 , T4 a4 , T5 a5 , T6 a6 , T7 a7 , T8 a8) const
46791 boost::throw_exception(bad_function_call());
46793 return static_cast<vtable_type*>(vtable)->invoker
46794 (this->functor , a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8);
46799 template<typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 ,
46800 typename Allocator>
46801 void operator==(const function9<
46803 T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ,
46807 T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ,
46809 template<typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 ,
46810 typename Allocator>
46811 void operator!=(const function9<
46813 T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ,
46817 T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ,
46819 # 726 "/usr/include/boost/function/function_template.hpp" 3 4
46820 template<typename R ,
46821 typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8,
46822 typename Allocator>
46823 class function<R ( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8), Allocator>
46824 : public function9<R, T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8
46827 typedef function9<R, T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8
46828 , Allocator> base_type;
46829 typedef function self_type;
46831 struct clear_type {};
46834 typedef typename base_type::allocator_type allocator_type;
46836 function() : base_type() {}
46838 template<typename Functor>
46841 ,typename enable_if_c<
46842 (boost::type_traits::ice_not<
46843 (is_integral<Functor>::value)>::value),
46852 function(clear_type*) : base_type() {}
46855 function(const self_type& f) : base_type(static_cast<const base_type&>(f)){}
46857 function(const base_type& f) : base_type(static_cast<const base_type&>(f)){}
46859 self_type& operator=(const self_type& f)
46861 self_type(f).swap(*this);
46865 template<typename Functor>
46867 typename enable_if_c<
46868 (boost::type_traits::ice_not<
46869 (is_integral<Functor>::value)>::value),
46874 operator=(Functor f)
46876 self_type(f).swap(*this);
46881 self_type& operator=(clear_type*)
46888 self_type& operator=(const base_type& f)
46890 self_type(f).swap(*this);
46894 # 808 "/usr/include/boost/function/function_template.hpp" 3 4
46896 # 59 "/usr/include/boost/function/detail/maybe_include.hpp" 2 3 4
46897 # 15 "/usr/include/boost/function/detail/function_iterate.hpp" 2 3 4
46898 # 93 "/usr/include/boost/preprocessor/iteration/detail/iter/forward1.hpp" 2 3 4
46903 # 1 "/usr/include/boost/function/detail/function_iterate.hpp" 1 3 4
46904 # 14 "/usr/include/boost/function/detail/function_iterate.hpp" 3 4
46905 # 1 "/usr/include/boost/function/detail/maybe_include.hpp" 1 3 4
46906 # 63 "/usr/include/boost/function/detail/maybe_include.hpp" 3 4
46907 # 1 "/usr/include/boost/function/function_template.hpp" 1 3 4
46908 # 83 "/usr/include/boost/function/function_template.hpp" 3 4
46911 namespace function {
46913 typename FunctionPtr,
46915 typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9
46917 struct function_invoker10
46919 static R invoke(function_buffer& function_ptr ,
46920 T0 a0 , T1 a1 , T2 a2 , T3 a3 , T4 a4 , T5 a5 , T6 a6 , T7 a7 , T8 a8 , T9 a9)
46922 FunctionPtr f = reinterpret_cast<FunctionPtr>(function_ptr.func_ptr);
46923 return f( a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9);
46928 typename FunctionPtr,
46930 typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9
46932 struct void_function_invoker10
46935 invoke(function_buffer& function_ptr ,
46936 T0 a0 , T1 a1 , T2 a2 , T3 a3 , T4 a4 , T5 a5 , T6 a6 , T7 a7 , T8 a8 , T9 a9)
46939 FunctionPtr f = reinterpret_cast<FunctionPtr>(function_ptr.func_ptr);
46940 f( a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9);
46945 typename FunctionObj,
46947 typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9
46949 struct function_obj_invoker10
46951 static R invoke(function_buffer& function_obj_ptr ,
46952 T0 a0 , T1 a1 , T2 a2 , T3 a3 , T4 a4 , T5 a5 , T6 a6 , T7 a7 , T8 a8 , T9 a9)
46956 if (function_allows_small_object_optimization<FunctionObj>::value)
46957 f = reinterpret_cast<FunctionObj*>(&function_obj_ptr.data);
46959 f = reinterpret_cast<FunctionObj*>(function_obj_ptr.obj_ptr);
46960 return (*f)( a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9);
46965 typename FunctionObj,
46967 typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9
46969 struct void_function_obj_invoker10
46972 invoke(function_buffer& function_obj_ptr ,
46973 T0 a0 , T1 a1 , T2 a2 , T3 a3 , T4 a4 , T5 a5 , T6 a6 , T7 a7 , T8 a8 , T9 a9)
46977 if (function_allows_small_object_optimization<FunctionObj>::value)
46978 f = reinterpret_cast<FunctionObj*>(&function_obj_ptr.data);
46980 f = reinterpret_cast<FunctionObj*>(function_obj_ptr.obj_ptr);
46981 (*f)( a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9);
46986 typename FunctionObj,
46988 typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9
46990 struct function_ref_invoker10
46992 static R invoke(function_buffer& function_obj_ptr ,
46993 T0 a0 , T1 a1 , T2 a2 , T3 a3 , T4 a4 , T5 a5 , T6 a6 , T7 a7 , T8 a8 , T9 a9)
46997 reinterpret_cast<FunctionObj*>(function_obj_ptr.obj_ptr);
46998 return (*f)( a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9);
47003 typename FunctionObj,
47005 typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9
47007 struct void_function_ref_invoker10
47010 invoke(function_buffer& function_obj_ptr ,
47011 T0 a0 , T1 a1 , T2 a2 , T3 a3 , T4 a4 , T5 a5 , T6 a6 , T7 a7 , T8 a8 , T9 a9)
47015 reinterpret_cast<FunctionObj*>(function_obj_ptr.obj_ptr);
47016 (*f)( a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9);
47021 typename FunctionPtr,
47023 typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9
47025 struct get_function_invoker10
47027 typedef typename mpl::if_c<(is_void<R>::value),
47028 void_function_invoker10<
47031 T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9
47033 function_invoker10<
47036 T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9
47042 typename FunctionObj,
47044 typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9
47046 struct get_function_obj_invoker10
47048 typedef typename mpl::if_c<(is_void<R>::value),
47049 void_function_obj_invoker10<
47052 T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9
47054 function_obj_invoker10<
47057 T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9
47063 typename FunctionObj,
47065 typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9
47067 struct get_function_ref_invoker10
47069 typedef typename mpl::if_c<(is_void<R>::value),
47070 void_function_ref_invoker10<
47073 T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9
47075 function_ref_invoker10<
47078 T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9
47086 template<typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9,
47087 typename Allocator>
47088 struct basic_vtable10 : vtable_base
47091 typedef R result_type;
47096 typedef result_type (*invoker_type)(function_buffer&
47098 T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9);
47100 template<typename F>
47101 basic_vtable10(F f) : vtable_base(), invoker(0)
47106 template<typename F>
47107 bool assign_to(F f, function_buffer& functor)
47109 typedef typename get_function_tag<F>::type tag;
47110 return assign_to(f, functor, tag());
47113 void clear(function_buffer& functor)
47116 manager(functor, functor, destroy_functor_tag);
47120 template<typename F>
47123 typedef typename get_function_tag<F>::type tag;
47128 template<typename FunctionPtr>
47129 void init(FunctionPtr , function_ptr_tag)
47131 typedef typename get_function_invoker10<
47134 T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9
47136 actual_invoker_type;
47138 invoker = &actual_invoker_type::invoke;
47139 manager = &functor_manager<FunctionPtr, Allocator>::manage;
47142 template<typename FunctionPtr>
47144 assign_to(FunctionPtr f, function_buffer& functor, function_ptr_tag)
47146 this->clear(functor);
47150 functor.func_ptr = (void (*)())(f);
47159 template<typename MemberPtr>
47160 void init(MemberPtr f, member_ptr_tag)
47165 this->init(mem_fn(f));
47168 template<typename MemberPtr>
47169 bool assign_to(MemberPtr f, function_buffer& functor, member_ptr_tag)
47175 this->assign_to(mem_fn(f), functor);
47184 template<typename FunctionObj>
47185 void init(FunctionObj , function_obj_tag)
47187 typedef typename get_function_obj_invoker10<
47190 T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9
47192 actual_invoker_type;
47194 invoker = &actual_invoker_type::invoke;
47195 manager = &functor_manager<FunctionObj, Allocator>::manage;
47199 template<typename FunctionObj>
47201 assign_functor(FunctionObj f, function_buffer& functor, mpl::true_)
47203 new ((void*)&functor.data) FunctionObj(f);
47207 template<typename FunctionObj>
47209 assign_functor(FunctionObj f, function_buffer& functor, mpl::false_)
47212 typedef typename Allocator::template rebind<FunctionObj>::other
47214 typedef typename allocator_type::pointer pointer_type;
47216 allocator_type allocator;
47217 pointer_type copy = allocator.allocate(1);
47218 allocator.construct(copy, f);
47221 functor.obj_ptr = static_cast<FunctionObj*>(copy);
47227 template<typename FunctionObj>
47229 assign_to(FunctionObj f, function_buffer& functor, function_obj_tag)
47231 if (!boost::detail::function::has_empty_target(boost::addressof(f))) {
47232 assign_functor(f, functor,
47233 mpl::bool_<(function_allows_small_object_optimization<FunctionObj>::value)>());
47241 template<typename FunctionObj>
47243 init(const reference_wrapper<FunctionObj>& , function_obj_ref_tag)
47245 typedef typename get_function_ref_invoker10<
47248 T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9
47250 actual_invoker_type;
47252 invoker = &actual_invoker_type::invoke;
47253 manager = &reference_manager<FunctionObj>::get;
47256 template<typename FunctionObj>
47258 assign_to(const reference_wrapper<FunctionObj>& f,
47259 function_buffer& functor, function_obj_ref_tag)
47261 if (!boost::detail::function::has_empty_target(f.get_pointer())) {
47266 functor.const_obj_ptr = f.get_pointer();
47274 invoker_type invoker;
47281 typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9,
47282 typename Allocator = std::allocator<function_base>
47284 class function10 : public function_base
47288 typedef R result_type;
47295 typedef boost::detail::function::basic_vtable10<
47296 R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9, Allocator>
47299 struct clear_type {};
47302 static const int args = 10;
47305 template<typename Args>
47308 typedef result_type type;
47310 # 492 "/usr/include/boost/function/function_template.hpp" 3 4
47311 static const int arity = 10;
47312 typedef T0 arg1_type; typedef T1 arg2_type; typedef T2 arg3_type; typedef T3 arg4_type; typedef T4 arg5_type; typedef T5 arg6_type; typedef T6 arg7_type; typedef T7 arg8_type; typedef T8 arg9_type; typedef T9 arg10_type;
47314 typedef Allocator allocator_type;
47315 typedef function10 self_type;
47317 function10() : function_base() { }
47321 template<typename Functor>
47322 function10(Functor f
47324 ,typename enable_if_c<
47325 (boost::type_traits::ice_not<
47326 (is_integral<Functor>::value)>::value),
47332 this->assign_to(f);
47336 function10(clear_type*) : function_base() { }
47344 function10(const function10& f) : function_base()
47346 this->assign_to_own(f);
47349 ~function10() { clear(); }
47350 # 544 "/usr/include/boost/function/function_template.hpp" 3 4
47351 result_type operator()( T0 a0 , T1 a1 , T2 a2 , T3 a3 , T4 a4 , T5 a5 , T6 a6 , T7 a7 , T8 a8 , T9 a9) const;
47359 template<typename Functor>
47361 typename enable_if_c<
47362 (boost::type_traits::ice_not<
47363 (is_integral<Functor>::value)>::value),
47368 operator=(Functor f)
47372 this->assign_to(f);
47381 function10& operator=(clear_type*)
47386 # 589 "/usr/include/boost/function/function_template.hpp" 3 4
47387 function10& operator=(const function10& f)
47394 this->assign_to_own(f);
47402 void swap(function10& other)
47404 if (&other == this)
47407 function10 tmp = *this;
47416 static_cast<vtable_type*>(vtable)->clear(this->functor);
47430 typedef void (dummy::*safe_bool)();
47433 operator safe_bool () const
47434 { return (this->empty())? 0 : &dummy::nonnull; }
47436 bool operator!() const
47437 { return this->empty(); }
47441 void assign_to_own(const function10& f)
47444 this->vtable = f.vtable;
47445 f.vtable->manager(f.functor, this->functor,
47446 boost::detail::function::clone_functor_tag);
47450 template<typename Functor>
47451 void assign_to(Functor f)
47453 static vtable_type stored_vtable(f);
47454 if (stored_vtable.assign_to(f, functor)) vtable = &stored_vtable;
47459 template<typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 ,
47460 typename Allocator>
47461 inline void swap(function10<
47463 T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ,
47468 T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9,
47476 template<typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9,
47477 typename Allocator>
47478 typename function10<
47479 R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9,
47480 Allocator>::result_type
47481 function10<R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9,
47484 ::operator()( T0 a0 , T1 a1 , T2 a2 , T3 a3 , T4 a4 , T5 a5 , T6 a6 , T7 a7 , T8 a8 , T9 a9) const
47487 boost::throw_exception(bad_function_call());
47489 return static_cast<vtable_type*>(vtable)->invoker
47490 (this->functor , a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9);
47495 template<typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 ,
47496 typename Allocator>
47497 void operator==(const function10<
47499 T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ,
47503 T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ,
47505 template<typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 ,
47506 typename Allocator>
47507 void operator!=(const function10<
47509 T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ,
47513 T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ,
47515 # 726 "/usr/include/boost/function/function_template.hpp" 3 4
47516 template<typename R ,
47517 typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9,
47518 typename Allocator>
47519 class function<R ( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9), Allocator>
47520 : public function10<R, T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9
47523 typedef function10<R, T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9
47524 , Allocator> base_type;
47525 typedef function self_type;
47527 struct clear_type {};
47530 typedef typename base_type::allocator_type allocator_type;
47532 function() : base_type() {}
47534 template<typename Functor>
47537 ,typename enable_if_c<
47538 (boost::type_traits::ice_not<
47539 (is_integral<Functor>::value)>::value),
47548 function(clear_type*) : base_type() {}
47551 function(const self_type& f) : base_type(static_cast<const base_type&>(f)){}
47553 function(const base_type& f) : base_type(static_cast<const base_type&>(f)){}
47555 self_type& operator=(const self_type& f)
47557 self_type(f).swap(*this);
47561 template<typename Functor>
47563 typename enable_if_c<
47564 (boost::type_traits::ice_not<
47565 (is_integral<Functor>::value)>::value),
47570 operator=(Functor f)
47572 self_type(f).swap(*this);
47577 self_type& operator=(clear_type*)
47584 self_type& operator=(const base_type& f)
47586 self_type(f).swap(*this);
47590 # 808 "/usr/include/boost/function/function_template.hpp" 3 4
47592 # 64 "/usr/include/boost/function/detail/maybe_include.hpp" 2 3 4
47593 # 15 "/usr/include/boost/function/detail/function_iterate.hpp" 2 3 4
47594 # 98 "/usr/include/boost/preprocessor/iteration/detail/iter/forward1.hpp" 2 3 4
47595 # 63 "/usr/include/boost/function.hpp" 2 3 4
47596 # 16 "/usr/include/boost/program_options/options_description.hpp" 2 3 4
47597 # 1 "/usr/include/boost/shared_ptr.hpp" 1 3 4
47598 # 25 "/usr/include/boost/shared_ptr.hpp" 3 4
47599 # 1 "/usr/include/boost/assert.hpp" 1 3 4
47600 # 35 "/usr/include/boost/assert.hpp" 3 4
47601 # 1 "/usr/include/assert.h" 1 3 4
47609 # 1 "/usr/include/gentoo-multilib/amd64/assert.h" 1 3 4
47610 # 37 "/usr/include/gentoo-multilib/amd64/assert.h" 3 4
47611 # 1 "/usr/include/features.h" 1 3 4
47612 # 38 "/usr/include/gentoo-multilib/amd64/assert.h" 2 3 4
47613 # 66 "/usr/include/gentoo-multilib/amd64/assert.h" 3 4
47617 extern void __assert_fail (__const char *__assertion, __const char *__file,
47618 unsigned int __line, __const char *__function)
47619 throw () __attribute__ ((__noreturn__));
47622 extern void __assert_perror_fail (int __errnum, __const char *__file,
47623 unsigned int __line,
47624 __const char *__function)
47625 throw () __attribute__ ((__noreturn__));
47630 extern void __assert (const char *__assertion, const char *__file, int __line)
47631 throw () __attribute__ ((__noreturn__));
47635 # 9 "/usr/include/assert.h" 2 3 4
47636 # 36 "/usr/include/boost/assert.hpp" 2 3 4
47637 # 26 "/usr/include/boost/shared_ptr.hpp" 2 3 4
47638 # 1 "/usr/include/boost/checked_delete.hpp" 1 3 4
47639 # 24 "/usr/include/boost/checked_delete.hpp" 3 4
47645 template<class T> inline void checked_delete(T * x)
47648 typedef char type_must_be_complete[ sizeof(T)? 1: -1 ];
47649 (void) sizeof(type_must_be_complete);
47653 template<class T> inline void checked_array_delete(T * x)
47655 typedef char type_must_be_complete[ sizeof(T)? 1: -1 ];
47656 (void) sizeof(type_must_be_complete);
47660 template<class T> struct checked_deleter
47662 typedef void result_type;
47663 typedef T * argument_type;
47665 void operator()(T * x) const
47668 boost::checked_delete(x);
47672 template<class T> struct checked_array_deleter
47674 typedef void result_type;
47675 typedef T * argument_type;
47677 void operator()(T * x) const
47679 boost::checked_array_delete(x);
47684 # 27 "/usr/include/boost/shared_ptr.hpp" 2 3 4
47686 # 1 "/usr/include/boost/detail/shared_count.hpp" 1 3 4
47687 # 28 "/usr/include/boost/detail/shared_count.hpp" 3 4
47688 # 1 "/usr/include/boost/detail/bad_weak_ptr.hpp" 1 3 4
47689 # 26 "/usr/include/boost/detail/bad_weak_ptr.hpp" 3 4
47692 # 39 "/usr/include/boost/detail/bad_weak_ptr.hpp" 3 4
47693 class bad_weak_ptr: public std::exception
47697 virtual char const * what() const throw()
47699 return "tr1::bad_weak_ptr";
47708 # 29 "/usr/include/boost/detail/shared_count.hpp" 2 3 4
47709 # 1 "/usr/include/boost/detail/sp_counted_base.hpp" 1 3 4
47710 # 32 "/usr/include/boost/detail/sp_counted_base.hpp" 3 4
47711 # 1 "/usr/include/boost/detail/sp_counted_base_gcc_x86.hpp" 1 3 4
47712 # 29 "/usr/include/boost/detail/sp_counted_base_gcc_x86.hpp" 3 4
47719 inline int atomic_exchange_and_add( int * pw, int dv )
47727 __asm__ __volatile__
47731 "=m"( *pw ), "=r"( r ):
47732 "m"( *pw ), "1"( dv ):
47739 inline void atomic_increment( int * pw )
47753 inline int atomic_conditional_increment( int * pw )
47763 "movl %0, %%eax\n\t"
47765 "test %%eax, %%eax\n\t"
47767 "movl %%eax, %2\n\t"
47770 "cmpxchgl %2, %0\n\t"
47773 "=m"( *pw ), "=&a"( rv ), "=&r"( tmp ):
47781 class sp_counted_base
47785 sp_counted_base( sp_counted_base const & );
47786 sp_counted_base & operator= ( sp_counted_base const & );
47793 sp_counted_base(): use_count_( 1 ), weak_count_( 1 )
47797 virtual ~sp_counted_base()
47804 virtual void dispose() = 0;
47808 virtual void destroy()
47813 virtual void * get_deleter( std::type_info const & ti ) = 0;
47815 void add_ref_copy()
47817 atomic_increment( &use_count_ );
47820 bool add_ref_lock()
47822 return atomic_conditional_increment( &use_count_ ) != 0;
47827 if( atomic_exchange_and_add( &use_count_, -1 ) == 1 )
47834 void weak_add_ref()
47836 atomic_increment( &weak_count_ );
47839 void weak_release()
47841 if( atomic_exchange_and_add( &weak_count_, -1 ) == 1 )
47847 long use_count() const
47849 return static_cast<int const volatile &>( use_count_ );
47856 # 33 "/usr/include/boost/detail/sp_counted_base.hpp" 2 3 4
47857 # 30 "/usr/include/boost/detail/shared_count.hpp" 2 3 4
47858 # 1 "/usr/include/boost/detail/sp_counted_impl.hpp" 1 3 4
47859 # 41 "/usr/include/boost/detail/sp_counted_impl.hpp" 3 4
47862 # 51 "/usr/include/boost/detail/sp_counted_impl.hpp" 3 4
47866 template<class X> class sp_counted_impl_p: public sp_counted_base
47872 sp_counted_impl_p( sp_counted_impl_p const & );
47873 sp_counted_impl_p & operator= ( sp_counted_impl_p const & );
47875 typedef sp_counted_impl_p<X> this_type;
47879 explicit sp_counted_impl_p( X * px ): px_( px )
47886 virtual void dispose()
47891 boost::checked_delete( px_ );
47894 virtual void * get_deleter( std::type_info const & )
47898 # 114 "/usr/include/boost/detail/sp_counted_impl.hpp" 3 4
47900 # 123 "/usr/include/boost/detail/sp_counted_impl.hpp" 3 4
47901 template<class P, class D> class sp_counted_impl_pd: public sp_counted_base
47908 sp_counted_impl_pd( sp_counted_impl_pd const & );
47909 sp_counted_impl_pd & operator= ( sp_counted_impl_pd const & );
47911 typedef sp_counted_impl_pd<P, D> this_type;
47917 sp_counted_impl_pd( P p, D d ): ptr(p), del(d)
47921 virtual void dispose()
47926 virtual void * get_deleter( std::type_info const & ti )
47928 return ti == typeid(D)? &del: 0;
47930 # 180 "/usr/include/boost/detail/sp_counted_impl.hpp" 3 4
47933 template<class P, class D, class A> class sp_counted_impl_pda: public sp_counted_base
47941 sp_counted_impl_pda( sp_counted_impl_pda const & );
47942 sp_counted_impl_pda & operator= ( sp_counted_impl_pda const & );
47944 typedef sp_counted_impl_pda<P, D, A> this_type;
47950 sp_counted_impl_pda( P p, D d, A a ): p_( p ), d_( d ), a_( a )
47954 virtual void dispose()
47959 virtual void destroy()
47961 typedef typename A::template rebind< this_type >::other A2;
47965 this->~this_type();
47966 a2.deallocate( this, 1 );
47969 virtual void * get_deleter( std::type_info const & ti )
47971 return ti == typeid( D )? &d_: 0;
47982 # 31 "/usr/include/boost/detail/shared_count.hpp" 2 3 4
47985 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/functional" 1 3 4
47986 # 51 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/functional" 3 4
47988 # 52 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/functional" 3
47989 # 34 "/usr/include/boost/detail/shared_count.hpp" 2 3 4
47998 # 50 "/usr/include/boost/detail/shared_count.hpp" 3 4
48005 sp_counted_base * pi_;
48011 friend class weak_count;
48015 shared_count(): pi_(0)
48022 template<class Y> explicit shared_count( Y * p ): pi_( 0 )
48031 pi_ = new sp_counted_impl_p<Y>( p );
48035 boost::checked_delete( p );
48038 # 101 "/usr/include/boost/detail/shared_count.hpp" 3 4
48041 template<class P, class D> shared_count(P p, D d): pi_(0)
48050 pi_ = new sp_counted_impl_pd<P, D>(p, d);
48057 # 131 "/usr/include/boost/detail/shared_count.hpp" 3 4
48060 template<class P, class D, class A> shared_count( P p, D d, A a ): pi_( 0 )
48065 typedef sp_counted_impl_pda<P, D, A> impl_type;
48066 typedef typename A::template rebind< impl_type >::other A2;
48074 pi_ = a2.allocate( 1, static_cast< impl_type* >( 0 ) );
48075 new( static_cast< void* >( pi_ ) ) impl_type( p, d, a );
48083 a2.deallocate( static_cast< impl_type* >( pi_ ), 1 );
48088 # 177 "/usr/include/boost/detail/shared_count.hpp" 3 4
48096 explicit shared_count( std::auto_ptr<Y> & r ): pi_( new sp_counted_impl_p<Y>( r.get() ) )
48101 # 198 "/usr/include/boost/detail/shared_count.hpp" 3 4
48109 if( pi_ != 0 ) pi_->release();
48115 shared_count(shared_count const & r): pi_(r.pi_)
48120 if( pi_ != 0 ) pi_->add_ref_copy();
48123 explicit shared_count(weak_count const & r);
48125 shared_count & operator= (shared_count const & r)
48127 sp_counted_base * tmp = r.pi_;
48131 if( tmp != 0 ) tmp->add_ref_copy();
48132 if( pi_ != 0 ) pi_->release();
48139 void swap(shared_count & r)
48141 sp_counted_base * tmp = r.pi_;
48146 long use_count() const
48148 return pi_ != 0? pi_->use_count(): 0;
48151 bool unique() const
48153 return use_count() == 1;
48156 friend inline bool operator==(shared_count const & a, shared_count const & b)
48158 return a.pi_ == b.pi_;
48161 friend inline bool operator<(shared_count const & a, shared_count const & b)
48163 return std::less<sp_counted_base *>()( a.pi_, b.pi_ );
48166 void * get_deleter(std::type_info const & ti) const
48168 return pi_? pi_->get_deleter( ti ): 0;
48177 sp_counted_base * pi_;
48183 friend class shared_count;
48187 weak_count(): pi_(0)
48194 weak_count(shared_count const & r): pi_(r.pi_)
48199 if(pi_ != 0) pi_->weak_add_ref();
48202 weak_count(weak_count const & r): pi_(r.pi_)
48207 if(pi_ != 0) pi_->weak_add_ref();
48212 if(pi_ != 0) pi_->weak_release();
48218 weak_count & operator= (shared_count const & r)
48220 sp_counted_base * tmp = r.pi_;
48221 if(tmp != 0) tmp->weak_add_ref();
48222 if(pi_ != 0) pi_->weak_release();
48228 weak_count & operator= (weak_count const & r)
48230 sp_counted_base * tmp = r.pi_;
48231 if(tmp != 0) tmp->weak_add_ref();
48232 if(pi_ != 0) pi_->weak_release();
48238 void swap(weak_count & r)
48240 sp_counted_base * tmp = r.pi_;
48245 long use_count() const
48247 return pi_ != 0? pi_->use_count(): 0;
48250 friend inline bool operator==(weak_count const & a, weak_count const & b)
48252 return a.pi_ == b.pi_;
48255 friend inline bool operator<(weak_count const & a, weak_count const & b)
48257 return std::less<sp_counted_base *>()(a.pi_, b.pi_);
48261 inline shared_count::shared_count( weak_count const & r ): pi_( r.pi_ )
48266 if( pi_ == 0 || !pi_->add_ref_lock() )
48268 boost::throw_exception( boost::bad_weak_ptr() );
48275 # 29 "/usr/include/boost/shared_ptr.hpp" 2 3 4
48276 # 41 "/usr/include/boost/shared_ptr.hpp" 3 4
48280 template<class T> class weak_ptr;
48281 template<class T> class enable_shared_from_this;
48286 struct static_cast_tag {};
48287 struct const_cast_tag {};
48288 struct dynamic_cast_tag {};
48289 struct polymorphic_cast_tag {};
48291 template<class T> struct shared_ptr_traits
48293 typedef T & reference;
48296 template<> struct shared_ptr_traits<void>
48298 typedef void reference;
48303 template<> struct shared_ptr_traits<void const>
48305 typedef void reference;
48308 template<> struct shared_ptr_traits<void volatile>
48310 typedef void reference;
48313 template<> struct shared_ptr_traits<void const volatile>
48315 typedef void reference;
48322 template<class T, class Y> void sp_enable_shared_from_this( shared_count const & pn, boost::enable_shared_from_this<T> const * pe, Y const * px )
48324 if(pe != 0) pe->_internal_weak_this._internal_assign(const_cast<Y*>(px), pn);
48332 inline void sp_enable_shared_from_this( shared_count const & , ... )
48335 # 108 "/usr/include/boost/shared_ptr.hpp" 3 4
48336 template< class T, class R > struct sp_enable_if_auto_ptr
48340 template< class T, class R > struct sp_enable_if_auto_ptr< std::auto_ptr< T >, R >
48348 # 130 "/usr/include/boost/shared_ptr.hpp" 3 4
48349 template<class T> class shared_ptr
48354 typedef shared_ptr<T> this_type;
48358 typedef T element_type;
48359 typedef T value_type;
48360 typedef T * pointer;
48361 typedef typename boost::detail::shared_ptr_traits<T>::reference reference;
48363 shared_ptr(): px(0), pn()
48368 explicit shared_ptr( Y * p ): px( p ), pn( p )
48370 boost::detail::sp_enable_shared_from_this( pn, p, p );
48379 template<class Y, class D> shared_ptr(Y * p, D d): px(p), pn(p, d)
48381 boost::detail::sp_enable_shared_from_this( pn, p, p );
48386 template<class Y, class D, class A> shared_ptr( Y * p, D d, A a ): px( p ), pn( p, d, a )
48388 boost::detail::sp_enable_shared_from_this( pn, p, p );
48396 shared_ptr & operator=(shared_ptr const & r)
48406 explicit shared_ptr(weak_ptr<Y> const & r): pn(r.pn)
48413 shared_ptr(shared_ptr<Y> const & r): px(r.px), pn(r.pn)
48418 shared_ptr(shared_ptr<Y> const & r, boost::detail::static_cast_tag): px(static_cast<element_type *>(r.px)), pn(r.pn)
48423 shared_ptr(shared_ptr<Y> const & r, boost::detail::const_cast_tag): px(const_cast<element_type *>(r.px)), pn(r.pn)
48428 shared_ptr(shared_ptr<Y> const & r, boost::detail::dynamic_cast_tag): px(dynamic_cast<element_type *>(r.px)), pn(r.pn)
48432 pn = boost::detail::shared_count();
48437 shared_ptr(shared_ptr<Y> const & r, boost::detail::polymorphic_cast_tag): px(dynamic_cast<element_type *>(r.px)), pn(r.pn)
48441 boost::throw_exception(std::bad_cast());
48448 explicit shared_ptr(std::auto_ptr<Y> & r): px(r.get()), pn()
48451 pn = boost::detail::shared_count(r);
48452 boost::detail::sp_enable_shared_from_this( pn, tmp, tmp );
48458 explicit shared_ptr( Ap r, typename boost::detail::sp_enable_if_auto_ptr<Ap, int>::type = 0 ): px( r.get() ), pn()
48460 typename Ap::element_type * tmp = r.get();
48461 pn = boost::detail::shared_count( r );
48462 boost::detail::sp_enable_shared_from_this( pn, tmp, tmp );
48464 # 253 "/usr/include/boost/shared_ptr.hpp" 3 4
48466 shared_ptr & operator=(shared_ptr<Y> const & r)
48478 shared_ptr & operator=( std::auto_ptr<Y> & r )
48480 this_type(r).swap(*this);
48487 typename boost::detail::sp_enable_if_auto_ptr< Ap, shared_ptr & >::type operator=( Ap r )
48489 this_type( r ).swap( *this );
48500 this_type().swap(*this);
48503 template<class Y> void reset(Y * p)
48505 ((p == 0 || p != px) ? static_cast<void> (0) : __assert_fail ("p == 0 || p != px", "/usr/include/boost/shared_ptr.hpp", 293, __PRETTY_FUNCTION__));
48506 this_type(p).swap(*this);
48509 template<class Y, class D> void reset( Y * p, D d )
48511 this_type( p, d ).swap( *this );
48514 template<class Y, class D, class A> void reset( Y * p, D d, A a )
48516 this_type( p, d, a ).swap( *this );
48519 reference operator* () const
48521 ((px != 0) ? static_cast<void> (0) : __assert_fail ("px != 0", "/usr/include/boost/shared_ptr.hpp", 309, __PRETTY_FUNCTION__));
48525 T * operator-> () const
48527 ((px != 0) ? static_cast<void> (0) : __assert_fail ("px != 0", "/usr/include/boost/shared_ptr.hpp", 315, __PRETTY_FUNCTION__));
48535 # 359 "/usr/include/boost/shared_ptr.hpp" 3 4
48536 typedef T * this_type::*unspecified_bool_type;
48538 operator unspecified_bool_type() const
48540 return px == 0? 0: &this_type::px;
48547 bool operator! () const
48552 bool unique() const
48554 return pn.unique();
48557 long use_count() const
48559 return pn.use_count();
48562 void swap(shared_ptr<T> & other)
48564 std::swap(px, other.px);
48568 template<class Y> bool _internal_less(shared_ptr<Y> const & rhs) const
48570 return pn < rhs.pn;
48573 void * _internal_get_deleter(std::type_info const & ti) const
48575 return pn.get_deleter(ti);
48585 template<class Y> friend class shared_ptr;
48586 template<class Y> friend class weak_ptr;
48592 boost::detail::shared_count pn;
48596 template<class T, class U> inline bool operator==(shared_ptr<T> const & a, shared_ptr<U> const & b)
48598 return a.get() == b.get();
48601 template<class T, class U> inline bool operator!=(shared_ptr<T> const & a, shared_ptr<U> const & b)
48603 return a.get() != b.get();
48605 # 440 "/usr/include/boost/shared_ptr.hpp" 3 4
48606 template<class T, class U> inline bool operator<(shared_ptr<T> const & a, shared_ptr<U> const & b)
48608 return a._internal_less(b);
48611 template<class T> inline void swap(shared_ptr<T> & a, shared_ptr<T> & b)
48616 template<class T, class U> shared_ptr<T> static_pointer_cast(shared_ptr<U> const & r)
48618 return shared_ptr<T>(r, boost::detail::static_cast_tag());
48621 template<class T, class U> shared_ptr<T> const_pointer_cast(shared_ptr<U> const & r)
48623 return shared_ptr<T>(r, boost::detail::const_cast_tag());
48626 template<class T, class U> shared_ptr<T> dynamic_pointer_cast(shared_ptr<U> const & r)
48628 return shared_ptr<T>(r, boost::detail::dynamic_cast_tag());
48633 template<class T, class U> shared_ptr<T> shared_static_cast(shared_ptr<U> const & r)
48635 return shared_ptr<T>(r, boost::detail::static_cast_tag());
48638 template<class T, class U> shared_ptr<T> shared_dynamic_cast(shared_ptr<U> const & r)
48640 return shared_ptr<T>(r, boost::detail::dynamic_cast_tag());
48643 template<class T, class U> shared_ptr<T> shared_polymorphic_cast(shared_ptr<U> const & r)
48645 return shared_ptr<T>(r, boost::detail::polymorphic_cast_tag());
48648 template<class T, class U> shared_ptr<T> shared_polymorphic_downcast(shared_ptr<U> const & r)
48650 ((dynamic_cast<T *>(r.get()) == r.get()) ? static_cast<void> (0) : __assert_fail ("dynamic_cast<T *>(r.get()) == r.get()", "/usr/include/boost/shared_ptr.hpp", 484, __PRETTY_FUNCTION__));
48651 return shared_static_cast<T>(r);
48656 template<class T> inline T * get_pointer(shared_ptr<T> const & p)
48660 # 515 "/usr/include/boost/shared_ptr.hpp" 3 4
48661 template<class E, class T, class Y> std::basic_ostream<E, T> & operator<< (std::basic_ostream<E, T> & os, shared_ptr<Y> const & p)
48667 # 543 "/usr/include/boost/shared_ptr.hpp" 3 4
48668 template<class D, class T> D * get_deleter(shared_ptr<T> const & p)
48670 return static_cast<D *>(p._internal_get_deleter(typeid(D)));
48676 # 17 "/usr/include/boost/program_options/options_description.hpp" 2 3 4
48682 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/set" 1 3 4
48683 # 63 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/set" 3 4
48685 # 64 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/set" 3
48687 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_tree.h" 1 3
48688 # 73 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_tree.h" 3
48689 namespace std __attribute__ ((__visibility__ ("default"))) {
48690 # 91 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_tree.h" 3
48691 enum _Rb_tree_color { _S_red = false, _S_black = true };
48693 struct _Rb_tree_node_base
48695 typedef _Rb_tree_node_base* _Base_ptr;
48696 typedef const _Rb_tree_node_base* _Const_Base_ptr;
48698 _Rb_tree_color _M_color;
48699 _Base_ptr _M_parent;
48701 _Base_ptr _M_right;
48704 _S_minimum(_Base_ptr __x)
48706 while (__x->_M_left != 0) __x = __x->_M_left;
48710 static _Const_Base_ptr
48711 _S_minimum(_Const_Base_ptr __x)
48713 while (__x->_M_left != 0) __x = __x->_M_left;
48718 _S_maximum(_Base_ptr __x)
48720 while (__x->_M_right != 0) __x = __x->_M_right;
48724 static _Const_Base_ptr
48725 _S_maximum(_Const_Base_ptr __x)
48727 while (__x->_M_right != 0) __x = __x->_M_right;
48732 template<typename _Val>
48733 struct _Rb_tree_node : public _Rb_tree_node_base
48735 typedef _Rb_tree_node<_Val>* _Link_type;
48736 _Val _M_value_field;
48739 _Rb_tree_node_base*
48740 _Rb_tree_increment(_Rb_tree_node_base* __x);
48742 const _Rb_tree_node_base*
48743 _Rb_tree_increment(const _Rb_tree_node_base* __x);
48745 _Rb_tree_node_base*
48746 _Rb_tree_decrement(_Rb_tree_node_base* __x);
48748 const _Rb_tree_node_base*
48749 _Rb_tree_decrement(const _Rb_tree_node_base* __x);
48751 template<typename _Tp>
48752 struct _Rb_tree_iterator
48754 typedef _Tp value_type;
48755 typedef _Tp& reference;
48756 typedef _Tp* pointer;
48758 typedef bidirectional_iterator_tag iterator_category;
48759 typedef ptrdiff_t difference_type;
48761 typedef _Rb_tree_iterator<_Tp> _Self;
48762 typedef _Rb_tree_node_base::_Base_ptr _Base_ptr;
48763 typedef _Rb_tree_node<_Tp>* _Link_type;
48765 _Rb_tree_iterator()
48769 _Rb_tree_iterator(_Link_type __x)
48774 { return static_cast<_Link_type>(_M_node)->_M_value_field; }
48778 { return &static_cast<_Link_type>(_M_node)->_M_value_field; }
48783 _M_node = _Rb_tree_increment(_M_node);
48790 _Self __tmp = *this;
48791 _M_node = _Rb_tree_increment(_M_node);
48798 _M_node = _Rb_tree_decrement(_M_node);
48805 _Self __tmp = *this;
48806 _M_node = _Rb_tree_decrement(_M_node);
48811 operator==(const _Self& __x) const
48812 { return _M_node == __x._M_node; }
48815 operator!=(const _Self& __x) const
48816 { return _M_node != __x._M_node; }
48821 template<typename _Tp>
48822 struct _Rb_tree_const_iterator
48824 typedef _Tp value_type;
48825 typedef const _Tp& reference;
48826 typedef const _Tp* pointer;
48828 typedef _Rb_tree_iterator<_Tp> iterator;
48830 typedef bidirectional_iterator_tag iterator_category;
48831 typedef ptrdiff_t difference_type;
48833 typedef _Rb_tree_const_iterator<_Tp> _Self;
48834 typedef _Rb_tree_node_base::_Const_Base_ptr _Base_ptr;
48835 typedef const _Rb_tree_node<_Tp>* _Link_type;
48837 _Rb_tree_const_iterator()
48841 _Rb_tree_const_iterator(_Link_type __x)
48844 _Rb_tree_const_iterator(const iterator& __it)
48845 : _M_node(__it._M_node) { }
48849 { return static_cast<_Link_type>(_M_node)->_M_value_field; }
48853 { return &static_cast<_Link_type>(_M_node)->_M_value_field; }
48858 _M_node = _Rb_tree_increment(_M_node);
48865 _Self __tmp = *this;
48866 _M_node = _Rb_tree_increment(_M_node);
48873 _M_node = _Rb_tree_decrement(_M_node);
48880 _Self __tmp = *this;
48881 _M_node = _Rb_tree_decrement(_M_node);
48886 operator==(const _Self& __x) const
48887 { return _M_node == __x._M_node; }
48890 operator!=(const _Self& __x) const
48891 { return _M_node != __x._M_node; }
48896 template<typename _Val>
48898 operator==(const _Rb_tree_iterator<_Val>& __x,
48899 const _Rb_tree_const_iterator<_Val>& __y)
48900 { return __x._M_node == __y._M_node; }
48902 template<typename _Val>
48904 operator!=(const _Rb_tree_iterator<_Val>& __x,
48905 const _Rb_tree_const_iterator<_Val>& __y)
48906 { return __x._M_node != __y._M_node; }
48909 _Rb_tree_rotate_left(_Rb_tree_node_base* const __x,
48910 _Rb_tree_node_base*& __root);
48913 _Rb_tree_rotate_right(_Rb_tree_node_base* const __x,
48914 _Rb_tree_node_base*& __root);
48917 _Rb_tree_insert_and_rebalance(const bool __insert_left,
48918 _Rb_tree_node_base* __x,
48919 _Rb_tree_node_base* __p,
48920 _Rb_tree_node_base& __header);
48922 _Rb_tree_node_base*
48923 _Rb_tree_rebalance_for_erase(_Rb_tree_node_base* const __z,
48924 _Rb_tree_node_base& __header);
48927 template<typename _Key, typename _Val, typename _KeyOfValue,
48928 typename _Compare, typename _Alloc = allocator<_Val> >
48931 typedef typename _Alloc::template rebind<_Rb_tree_node<_Val> >::other
48935 typedef _Rb_tree_node_base* _Base_ptr;
48936 typedef const _Rb_tree_node_base* _Const_Base_ptr;
48937 typedef _Rb_tree_node<_Val> _Rb_tree_node;
48940 typedef _Key key_type;
48941 typedef _Val value_type;
48942 typedef value_type* pointer;
48943 typedef const value_type* const_pointer;
48944 typedef value_type& reference;
48945 typedef const value_type& const_reference;
48946 typedef _Rb_tree_node* _Link_type;
48947 typedef const _Rb_tree_node* _Const_Link_type;
48948 typedef size_t size_type;
48949 typedef ptrdiff_t difference_type;
48950 typedef _Alloc allocator_type;
48953 _M_get_Node_allocator()
48954 { return *static_cast<_Node_allocator*>(&this->_M_impl); }
48956 const _Node_allocator&
48957 _M_get_Node_allocator() const
48958 { return *static_cast<const _Node_allocator*>(&this->_M_impl); }
48961 get_allocator() const
48962 { return allocator_type(_M_get_Node_allocator()); }
48967 { return _M_impl._Node_allocator::allocate(1); }
48970 _M_put_node(_Rb_tree_node* __p)
48971 { _M_impl._Node_allocator::deallocate(__p, 1); }
48974 _M_create_node(const value_type& __x)
48976 _Link_type __tmp = _M_get_node();
48978 { get_allocator().construct(&__tmp->_M_value_field, __x); }
48981 _M_put_node(__tmp);
48988 _M_clone_node(_Const_Link_type __x)
48990 _Link_type __tmp = _M_create_node(__x->_M_value_field);
48991 __tmp->_M_color = __x->_M_color;
48992 __tmp->_M_left = 0;
48993 __tmp->_M_right = 0;
48998 _M_destroy_node(_Link_type __p)
49000 get_allocator().destroy(&__p->_M_value_field);
49005 template<typename _Key_compare,
49006 bool _Is_pod_comparator = std::__is_pod<_Key_compare>::__value>
49007 struct _Rb_tree_impl : public _Node_allocator
49009 _Key_compare _M_key_compare;
49010 _Rb_tree_node_base _M_header;
49011 size_type _M_node_count;
49013 _Rb_tree_impl(const _Node_allocator& __a = _Node_allocator(),
49014 const _Key_compare& __comp = _Key_compare())
49015 : _Node_allocator(__a), _M_key_compare(__comp), _M_header(),
49018 this->_M_header._M_color = _S_red;
49019 this->_M_header._M_parent = 0;
49020 this->_M_header._M_left = &this->_M_header;
49021 this->_M_header._M_right = &this->_M_header;
49027 template<typename _Key_compare>
49028 struct _Rb_tree_impl<_Key_compare, true> : public _Node_allocator
49030 _Key_compare _M_key_compare;
49031 _Rb_tree_node_base _M_header;
49032 size_type _M_node_count;
49034 _Rb_tree_impl(const _Node_allocator& __a = _Node_allocator(),
49035 const _Key_compare& __comp = _Key_compare())
49036 : _Node_allocator(__a), _M_key_compare(__comp), _M_header(),
49039 this->_M_header._M_color = _S_red;
49040 this->_M_header._M_parent = 0;
49041 this->_M_header._M_left = &this->_M_header;
49042 this->_M_header._M_right = &this->_M_header;
49046 _Rb_tree_impl<_Compare> _M_impl;
49051 { return this->_M_impl._M_header._M_parent; }
49055 { return this->_M_impl._M_header._M_parent; }
49059 { return this->_M_impl._M_header._M_left; }
49062 _M_leftmost() const
49063 { return this->_M_impl._M_header._M_left; }
49067 { return this->_M_impl._M_header._M_right; }
49070 _M_rightmost() const
49071 { return this->_M_impl._M_header._M_right; }
49075 { return static_cast<_Link_type>(this->_M_impl._M_header._M_parent); }
49080 return static_cast<_Const_Link_type>
49081 (this->_M_impl._M_header._M_parent);
49086 { return static_cast<_Link_type>(&this->_M_impl._M_header); }
49090 { return static_cast<_Const_Link_type>(&this->_M_impl._M_header); }
49092 static const_reference
49093 _S_value(_Const_Link_type __x)
49094 { return __x->_M_value_field; }
49097 _S_key(_Const_Link_type __x)
49098 { return _KeyOfValue()(_S_value(__x)); }
49101 _S_left(_Base_ptr __x)
49102 { return static_cast<_Link_type>(__x->_M_left); }
49104 static _Const_Link_type
49105 _S_left(_Const_Base_ptr __x)
49106 { return static_cast<_Const_Link_type>(__x->_M_left); }
49109 _S_right(_Base_ptr __x)
49110 { return static_cast<_Link_type>(__x->_M_right); }
49112 static _Const_Link_type
49113 _S_right(_Const_Base_ptr __x)
49114 { return static_cast<_Const_Link_type>(__x->_M_right); }
49116 static const_reference
49117 _S_value(_Const_Base_ptr __x)
49118 { return static_cast<_Const_Link_type>(__x)->_M_value_field; }
49121 _S_key(_Const_Base_ptr __x)
49122 { return _KeyOfValue()(_S_value(__x)); }
49125 _S_minimum(_Base_ptr __x)
49126 { return _Rb_tree_node_base::_S_minimum(__x); }
49128 static _Const_Base_ptr
49129 _S_minimum(_Const_Base_ptr __x)
49130 { return _Rb_tree_node_base::_S_minimum(__x); }
49133 _S_maximum(_Base_ptr __x)
49134 { return _Rb_tree_node_base::_S_maximum(__x); }
49136 static _Const_Base_ptr
49137 _S_maximum(_Const_Base_ptr __x)
49138 { return _Rb_tree_node_base::_S_maximum(__x); }
49141 typedef _Rb_tree_iterator<value_type> iterator;
49142 typedef _Rb_tree_const_iterator<value_type> const_iterator;
49144 typedef std::reverse_iterator<iterator> reverse_iterator;
49145 typedef std::reverse_iterator<const_iterator> const_reverse_iterator;
49149 _M_insert(_Base_ptr __x, _Base_ptr __y, const value_type& __v);
49154 _M_insert_lower(_Base_ptr __x, _Base_ptr __y, const value_type& __v);
49157 _M_insert(_Const_Base_ptr __x, _Const_Base_ptr __y,
49158 const value_type& __v);
49161 _M_copy(_Const_Link_type __x, _Link_type __p);
49164 _M_erase(_Link_type __x);
49171 _Rb_tree(const _Compare& __comp)
49172 : _M_impl(allocator_type(), __comp)
49175 _Rb_tree(const _Compare& __comp, const allocator_type& __a)
49176 : _M_impl(__a, __comp)
49179 _Rb_tree(const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __x)
49180 : _M_impl(__x._M_get_Node_allocator(), __x._M_impl._M_key_compare)
49182 if (__x._M_root() != 0)
49184 _M_root() = _M_copy(__x._M_begin(), _M_end());
49185 _M_leftmost() = _S_minimum(_M_root());
49186 _M_rightmost() = _S_maximum(_M_root());
49187 _M_impl._M_node_count = __x._M_impl._M_node_count;
49192 { _M_erase(_M_begin()); }
49194 _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>&
49195 operator=(const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __x);
49200 { return _M_impl._M_key_compare; }
49205 return iterator(static_cast<_Link_type>
49206 (this->_M_impl._M_header._M_left));
49212 return const_iterator(static_cast<_Const_Link_type>
49213 (this->_M_impl._M_header._M_left));
49218 { return iterator(static_cast<_Link_type>(&this->_M_impl._M_header)); }
49223 return const_iterator(static_cast<_Const_Link_type>
49224 (&this->_M_impl._M_header));
49229 { return reverse_iterator(end()); }
49231 const_reverse_iterator
49233 { return const_reverse_iterator(end()); }
49237 { return reverse_iterator(begin()); }
49239 const_reverse_iterator
49241 { return const_reverse_iterator(begin()); }
49245 { return _M_impl._M_node_count == 0; }
49249 { return _M_impl._M_node_count; }
49253 { return get_allocator().max_size(); }
49256 swap(_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __t);
49259 pair<iterator, bool>
49260 _M_insert_unique(const value_type& __x);
49263 _M_insert_equal(const value_type& __x);
49268 _M_insert_equal_lower(const value_type& __x);
49271 _M_insert_unique(iterator __position, const value_type& __x);
49274 _M_insert_unique(const_iterator __position, const value_type& __x);
49277 _M_insert_equal(iterator __position, const value_type& __x);
49280 _M_insert_equal(const_iterator __position, const value_type& __x);
49282 template<typename _InputIterator>
49284 _M_insert_unique(_InputIterator __first, _InputIterator __last);
49286 template<typename _InputIterator>
49288 _M_insert_equal(_InputIterator __first, _InputIterator __last);
49291 erase(iterator __position);
49294 erase(const_iterator __position);
49297 erase(const key_type& __x);
49300 erase(iterator __first, iterator __last);
49303 erase(const_iterator __first, const_iterator __last);
49306 erase(const key_type* __first, const key_type* __last);
49311 _M_erase(_M_begin());
49312 _M_leftmost() = _M_end();
49314 _M_rightmost() = _M_end();
49315 _M_impl._M_node_count = 0;
49320 find(const key_type& __x);
49323 find(const key_type& __x) const;
49326 count(const key_type& __x) const;
49329 lower_bound(const key_type& __x);
49332 lower_bound(const key_type& __x) const;
49335 upper_bound(const key_type& __x);
49338 upper_bound(const key_type& __x) const;
49340 pair<iterator,iterator>
49341 equal_range(const key_type& __x);
49343 pair<const_iterator, const_iterator>
49344 equal_range(const key_type& __x) const;
49348 __rb_verify() const;
49351 template<typename _Key, typename _Val, typename _KeyOfValue,
49352 typename _Compare, typename _Alloc>
49354 operator==(const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __x,
49355 const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __y)
49357 return __x.size() == __y.size()
49358 && std::equal(__x.begin(), __x.end(), __y.begin());
49361 template<typename _Key, typename _Val, typename _KeyOfValue,
49362 typename _Compare, typename _Alloc>
49364 operator<(const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __x,
49365 const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __y)
49367 return std::lexicographical_compare(__x.begin(), __x.end(),
49368 __y.begin(), __y.end());
49371 template<typename _Key, typename _Val, typename _KeyOfValue,
49372 typename _Compare, typename _Alloc>
49374 operator!=(const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __x,
49375 const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __y)
49376 { return !(__x == __y); }
49378 template<typename _Key, typename _Val, typename _KeyOfValue,
49379 typename _Compare, typename _Alloc>
49381 operator>(const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __x,
49382 const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __y)
49383 { return __y < __x; }
49385 template<typename _Key, typename _Val, typename _KeyOfValue,
49386 typename _Compare, typename _Alloc>
49388 operator<=(const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __x,
49389 const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __y)
49390 { return !(__y < __x); }
49392 template<typename _Key, typename _Val, typename _KeyOfValue,
49393 typename _Compare, typename _Alloc>
49395 operator>=(const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __x,
49396 const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __y)
49397 { return !(__x < __y); }
49399 template<typename _Key, typename _Val, typename _KeyOfValue,
49400 typename _Compare, typename _Alloc>
49402 swap(_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __x,
49403 _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __y)
49406 template<typename _Key, typename _Val, typename _KeyOfValue,
49407 typename _Compare, typename _Alloc>
49408 _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>&
49409 _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::
49410 operator=(const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __x)
49416 _M_impl._M_key_compare = __x._M_impl._M_key_compare;
49417 if (__x._M_root() != 0)
49419 _M_root() = _M_copy(__x._M_begin(), _M_end());
49420 _M_leftmost() = _S_minimum(_M_root());
49421 _M_rightmost() = _S_maximum(_M_root());
49422 _M_impl._M_node_count = __x._M_impl._M_node_count;
49428 template<typename _Key, typename _Val, typename _KeyOfValue,
49429 typename _Compare, typename _Alloc>
49430 typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator
49431 _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::
49432 _M_insert(_Base_ptr __x, _Base_ptr __p, const _Val& __v)
49434 bool __insert_left = (__x != 0 || __p == _M_end()
49435 || _M_impl._M_key_compare(_KeyOfValue()(__v),
49438 _Link_type __z = _M_create_node(__v);
49440 _Rb_tree_insert_and_rebalance(__insert_left, __z, __p,
49441 this->_M_impl._M_header);
49442 ++_M_impl._M_node_count;
49443 return iterator(__z);
49446 template<typename _Key, typename _Val, typename _KeyOfValue,
49447 typename _Compare, typename _Alloc>
49448 typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator
49449 _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::
49450 _M_insert_lower(_Base_ptr __x, _Base_ptr __p, const _Val& __v)
49452 bool __insert_left = (__x != 0 || __p == _M_end()
49453 || !_M_impl._M_key_compare(_S_key(__p),
49454 _KeyOfValue()(__v)));
49456 _Link_type __z = _M_create_node(__v);
49458 _Rb_tree_insert_and_rebalance(__insert_left, __z, __p,
49459 this->_M_impl._M_header);
49460 ++_M_impl._M_node_count;
49461 return iterator(__z);
49464 template<typename _Key, typename _Val, typename _KeyOfValue,
49465 typename _Compare, typename _Alloc>
49466 typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::const_iterator
49467 _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::
49468 _M_insert(_Const_Base_ptr __x, _Const_Base_ptr __p, const _Val& __v)
49470 bool __insert_left = (__x != 0 || __p == _M_end()
49471 || _M_impl._M_key_compare(_KeyOfValue()(__v),
49474 _Link_type __z = _M_create_node(__v);
49476 _Rb_tree_insert_and_rebalance(__insert_left, __z,
49477 const_cast<_Base_ptr>(__p),
49478 this->_M_impl._M_header);
49479 ++_M_impl._M_node_count;
49480 return const_iterator(__z);
49483 template<typename _Key, typename _Val, typename _KeyOfValue,
49484 typename _Compare, typename _Alloc>
49485 typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator
49486 _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::
49487 _M_insert_equal(const _Val& __v)
49489 _Link_type __x = _M_begin();
49490 _Link_type __y = _M_end();
49494 __x = _M_impl._M_key_compare(_KeyOfValue()(__v), _S_key(__x)) ?
49495 _S_left(__x) : _S_right(__x);
49497 return _M_insert(__x, __y, __v);
49500 template<typename _Key, typename _Val, typename _KeyOfValue,
49501 typename _Compare, typename _Alloc>
49502 typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator
49503 _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::
49504 _M_insert_equal_lower(const _Val& __v)
49506 _Link_type __x = _M_begin();
49507 _Link_type __y = _M_end();
49511 __x = !_M_impl._M_key_compare(_S_key(__x), _KeyOfValue()(__v)) ?
49512 _S_left(__x) : _S_right(__x);
49514 return _M_insert_lower(__x, __y, __v);
49517 template<typename _Key, typename _Val, typename _KeyOfValue,
49518 typename _Compare, typename _Alloc>
49520 _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::
49521 swap(_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __t)
49523 if (_M_root() == 0)
49525 if (__t._M_root() != 0)
49527 _M_root() = __t._M_root();
49528 _M_leftmost() = __t._M_leftmost();
49529 _M_rightmost() = __t._M_rightmost();
49530 _M_root()->_M_parent = _M_end();
49533 __t._M_leftmost() = __t._M_end();
49534 __t._M_rightmost() = __t._M_end();
49537 else if (__t._M_root() == 0)
49539 __t._M_root() = _M_root();
49540 __t._M_leftmost() = _M_leftmost();
49541 __t._M_rightmost() = _M_rightmost();
49542 __t._M_root()->_M_parent = __t._M_end();
49545 _M_leftmost() = _M_end();
49546 _M_rightmost() = _M_end();
49550 std::swap(_M_root(),__t._M_root());
49551 std::swap(_M_leftmost(),__t._M_leftmost());
49552 std::swap(_M_rightmost(),__t._M_rightmost());
49554 _M_root()->_M_parent = _M_end();
49555 __t._M_root()->_M_parent = __t._M_end();
49558 std::swap(this->_M_impl._M_node_count, __t._M_impl._M_node_count);
49559 std::swap(this->_M_impl._M_key_compare, __t._M_impl._M_key_compare);
49563 std::__alloc_swap<_Node_allocator>::
49564 _S_do_it(_M_get_Node_allocator(), __t._M_get_Node_allocator());
49567 template<typename _Key, typename _Val, typename _KeyOfValue,
49568 typename _Compare, typename _Alloc>
49569 pair<typename _Rb_tree<_Key, _Val, _KeyOfValue,
49570 _Compare, _Alloc>::iterator, bool>
49571 _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::
49572 _M_insert_unique(const _Val& __v)
49574 _Link_type __x = _M_begin();
49575 _Link_type __y = _M_end();
49576 bool __comp = true;
49580 __comp = _M_impl._M_key_compare(_KeyOfValue()(__v), _S_key(__x));
49581 __x = __comp ? _S_left(__x) : _S_right(__x);
49583 iterator __j = iterator(__y);
49585 if (__j == begin())
49586 return pair<iterator,bool>(_M_insert(__x, __y, __v), true);
49589 if (_M_impl._M_key_compare(_S_key(__j._M_node), _KeyOfValue()(__v)))
49590 return pair<iterator, bool>(_M_insert(__x, __y, __v), true);
49591 return pair<iterator, bool>(__j, false);
49594 template<typename _Key, typename _Val, typename _KeyOfValue,
49595 typename _Compare, typename _Alloc>
49596 typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator
49597 _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::
49598 _M_insert_unique(iterator __position, const _Val& __v)
49601 if (__position._M_node == _M_end())
49604 && _M_impl._M_key_compare(_S_key(_M_rightmost()),
49605 _KeyOfValue()(__v)))
49606 return _M_insert(0, _M_rightmost(), __v);
49608 return _M_insert_unique(__v).first;
49610 else if (_M_impl._M_key_compare(_KeyOfValue()(__v),
49611 _S_key(__position._M_node)))
49614 iterator __before = __position;
49615 if (__position._M_node == _M_leftmost())
49616 return _M_insert(_M_leftmost(), _M_leftmost(), __v);
49617 else if (_M_impl._M_key_compare(_S_key((--__before)._M_node),
49618 _KeyOfValue()(__v)))
49620 if (_S_right(__before._M_node) == 0)
49621 return _M_insert(0, __before._M_node, __v);
49623 return _M_insert(__position._M_node,
49624 __position._M_node, __v);
49627 return _M_insert_unique(__v).first;
49629 else if (_M_impl._M_key_compare(_S_key(__position._M_node),
49630 _KeyOfValue()(__v)))
49633 iterator __after = __position;
49634 if (__position._M_node == _M_rightmost())
49635 return _M_insert(0, _M_rightmost(), __v);
49636 else if (_M_impl._M_key_compare(_KeyOfValue()(__v),
49637 _S_key((++__after)._M_node)))
49639 if (_S_right(__position._M_node) == 0)
49640 return _M_insert(0, __position._M_node, __v);
49642 return _M_insert(__after._M_node, __after._M_node, __v);
49645 return _M_insert_unique(__v).first;
49651 template<typename _Key, typename _Val, typename _KeyOfValue,
49652 typename _Compare, typename _Alloc>
49653 typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::const_iterator
49654 _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::
49655 _M_insert_unique(const_iterator __position, const _Val& __v)
49658 if (__position._M_node == _M_end())
49661 && _M_impl._M_key_compare(_S_key(_M_rightmost()),
49662 _KeyOfValue()(__v)))
49663 return _M_insert(0, _M_rightmost(), __v);
49665 return const_iterator(_M_insert_unique(__v).first);
49667 else if (_M_impl._M_key_compare(_KeyOfValue()(__v),
49668 _S_key(__position._M_node)))
49671 const_iterator __before = __position;
49672 if (__position._M_node == _M_leftmost())
49673 return _M_insert(_M_leftmost(), _M_leftmost(), __v);
49674 else if (_M_impl._M_key_compare(_S_key((--__before)._M_node),
49675 _KeyOfValue()(__v)))
49677 if (_S_right(__before._M_node) == 0)
49678 return _M_insert(0, __before._M_node, __v);
49680 return _M_insert(__position._M_node,
49681 __position._M_node, __v);
49684 return const_iterator(_M_insert_unique(__v).first);
49686 else if (_M_impl._M_key_compare(_S_key(__position._M_node),
49687 _KeyOfValue()(__v)))
49690 const_iterator __after = __position;
49691 if (__position._M_node == _M_rightmost())
49692 return _M_insert(0, _M_rightmost(), __v);
49693 else if (_M_impl._M_key_compare(_KeyOfValue()(__v),
49694 _S_key((++__after)._M_node)))
49696 if (_S_right(__position._M_node) == 0)
49697 return _M_insert(0, __position._M_node, __v);
49699 return _M_insert(__after._M_node, __after._M_node, __v);
49702 return const_iterator(_M_insert_unique(__v).first);
49708 template<typename _Key, typename _Val, typename _KeyOfValue,
49709 typename _Compare, typename _Alloc>
49710 typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator
49711 _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::
49712 _M_insert_equal(iterator __position, const _Val& __v)
49715 if (__position._M_node == _M_end())
49718 && !_M_impl._M_key_compare(_KeyOfValue()(__v),
49719 _S_key(_M_rightmost())))
49720 return _M_insert(0, _M_rightmost(), __v);
49722 return _M_insert_equal(__v);
49724 else if (!_M_impl._M_key_compare(_S_key(__position._M_node),
49725 _KeyOfValue()(__v)))
49728 iterator __before = __position;
49729 if (__position._M_node == _M_leftmost())
49730 return _M_insert(_M_leftmost(), _M_leftmost(), __v);
49731 else if (!_M_impl._M_key_compare(_KeyOfValue()(__v),
49732 _S_key((--__before)._M_node)))
49734 if (_S_right(__before._M_node) == 0)
49735 return _M_insert(0, __before._M_node, __v);
49737 return _M_insert(__position._M_node,
49738 __position._M_node, __v);
49741 return _M_insert_equal(__v);
49746 iterator __after = __position;
49747 if (__position._M_node == _M_rightmost())
49748 return _M_insert(0, _M_rightmost(), __v);
49749 else if (!_M_impl._M_key_compare(_S_key((++__after)._M_node),
49750 _KeyOfValue()(__v)))
49752 if (_S_right(__position._M_node) == 0)
49753 return _M_insert(0, __position._M_node, __v);
49755 return _M_insert(__after._M_node, __after._M_node, __v);
49758 return _M_insert_equal_lower(__v);
49762 template<typename _Key, typename _Val, typename _KeyOfValue,
49763 typename _Compare, typename _Alloc>
49764 typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::const_iterator
49765 _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::
49766 _M_insert_equal(const_iterator __position, const _Val& __v)
49769 if (__position._M_node == _M_end())
49772 && !_M_impl._M_key_compare(_KeyOfValue()(__v),
49773 _S_key(_M_rightmost())))
49774 return _M_insert(0, _M_rightmost(), __v);
49776 return const_iterator(_M_insert_equal(__v));
49778 else if (!_M_impl._M_key_compare(_S_key(__position._M_node),
49779 _KeyOfValue()(__v)))
49782 const_iterator __before = __position;
49783 if (__position._M_node == _M_leftmost())
49784 return _M_insert(_M_leftmost(), _M_leftmost(), __v);
49785 else if (!_M_impl._M_key_compare(_KeyOfValue()(__v),
49786 _S_key((--__before)._M_node)))
49788 if (_S_right(__before._M_node) == 0)
49789 return _M_insert(0, __before._M_node, __v);
49791 return _M_insert(__position._M_node,
49792 __position._M_node, __v);
49795 return const_iterator(_M_insert_equal(__v));
49800 const_iterator __after = __position;
49801 if (__position._M_node == _M_rightmost())
49802 return _M_insert(0, _M_rightmost(), __v);
49803 else if (!_M_impl._M_key_compare(_S_key((++__after)._M_node),
49804 _KeyOfValue()(__v)))
49806 if (_S_right(__position._M_node) == 0)
49807 return _M_insert(0, __position._M_node, __v);
49809 return _M_insert(__after._M_node, __after._M_node, __v);
49812 return const_iterator(_M_insert_equal_lower(__v));
49816 template<typename _Key, typename _Val, typename _KoV,
49817 typename _Cmp, typename _Alloc>
49818 template<class _II>
49820 _Rb_tree<_Key, _Val, _KoV, _Cmp, _Alloc>::
49821 _M_insert_equal(_II __first, _II __last)
49823 for (; __first != __last; ++__first)
49824 _M_insert_equal(end(), *__first);
49827 template<typename _Key, typename _Val, typename _KoV,
49828 typename _Cmp, typename _Alloc>
49829 template<class _II>
49831 _Rb_tree<_Key, _Val, _KoV, _Cmp, _Alloc>::
49832 _M_insert_unique(_II __first, _II __last)
49834 for (; __first != __last; ++__first)
49835 _M_insert_unique(end(), *__first);
49838 template<typename _Key, typename _Val, typename _KeyOfValue,
49839 typename _Compare, typename _Alloc>
49841 _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::
49842 erase(iterator __position)
49845 static_cast<_Link_type>(_Rb_tree_rebalance_for_erase
49846 (__position._M_node,
49847 this->_M_impl._M_header));
49848 _M_destroy_node(__y);
49849 --_M_impl._M_node_count;
49852 template<typename _Key, typename _Val, typename _KeyOfValue,
49853 typename _Compare, typename _Alloc>
49855 _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::
49856 erase(const_iterator __position)
49859 static_cast<_Link_type>(_Rb_tree_rebalance_for_erase
49860 (const_cast<_Base_ptr>(__position._M_node),
49861 this->_M_impl._M_header));
49862 _M_destroy_node(__y);
49863 --_M_impl._M_node_count;
49866 template<typename _Key, typename _Val, typename _KeyOfValue,
49867 typename _Compare, typename _Alloc>
49868 typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::size_type
49869 _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::
49870 erase(const _Key& __x)
49872 pair<iterator, iterator> __p = equal_range(__x);
49873 const size_type __old_size = size();
49874 erase(__p.first, __p.second);
49875 return __old_size - size();
49878 template<typename _Key, typename _Val, typename _KoV,
49879 typename _Compare, typename _Alloc>
49880 typename _Rb_tree<_Key, _Val, _KoV, _Compare, _Alloc>::_Link_type
49881 _Rb_tree<_Key, _Val, _KoV, _Compare, _Alloc>::
49882 _M_copy(_Const_Link_type __x, _Link_type __p)
49885 _Link_type __top = _M_clone_node(__x);
49886 __top->_M_parent = __p;
49891 __top->_M_right = _M_copy(_S_right(__x), __top);
49893 __x = _S_left(__x);
49897 _Link_type __y = _M_clone_node(__x);
49898 __p->_M_left = __y;
49899 __y->_M_parent = __p;
49901 __y->_M_right = _M_copy(_S_right(__x), __y);
49903 __x = _S_left(__x);
49914 template<typename _Key, typename _Val, typename _KeyOfValue,
49915 typename _Compare, typename _Alloc>
49917 _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::
49918 _M_erase(_Link_type __x)
49923 _M_erase(_S_right(__x));
49924 _Link_type __y = _S_left(__x);
49925 _M_destroy_node(__x);
49930 template<typename _Key, typename _Val, typename _KeyOfValue,
49931 typename _Compare, typename _Alloc>
49933 _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::
49934 erase(iterator __first, iterator __last)
49936 if (__first == begin() && __last == end())
49939 while (__first != __last)
49943 template<typename _Key, typename _Val, typename _KeyOfValue,
49944 typename _Compare, typename _Alloc>
49946 _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::
49947 erase(const_iterator __first, const_iterator __last)
49949 if (__first == begin() && __last == end())
49952 while (__first != __last)
49956 template<typename _Key, typename _Val, typename _KeyOfValue,
49957 typename _Compare, typename _Alloc>
49959 _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::
49960 erase(const _Key* __first, const _Key* __last)
49962 while (__first != __last)
49966 template<typename _Key, typename _Val, typename _KeyOfValue,
49967 typename _Compare, typename _Alloc>
49968 typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator
49969 _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::
49970 find(const _Key& __k)
49972 _Link_type __x = _M_begin();
49973 _Link_type __y = _M_end();
49976 if (!_M_impl._M_key_compare(_S_key(__x), __k))
49977 __y = __x, __x = _S_left(__x);
49979 __x = _S_right(__x);
49981 iterator __j = iterator(__y);
49982 return (__j == end()
49983 || _M_impl._M_key_compare(__k,
49984 _S_key(__j._M_node))) ? end() : __j;
49987 template<typename _Key, typename _Val, typename _KeyOfValue,
49988 typename _Compare, typename _Alloc>
49989 typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::const_iterator
49990 _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::
49991 find(const _Key& __k) const
49993 _Const_Link_type __x = _M_begin();
49994 _Const_Link_type __y = _M_end();
49998 if (!_M_impl._M_key_compare(_S_key(__x), __k))
49999 __y = __x, __x = _S_left(__x);
50001 __x = _S_right(__x);
50003 const_iterator __j = const_iterator(__y);
50004 return (__j == end()
50005 || _M_impl._M_key_compare(__k,
50006 _S_key(__j._M_node))) ? end() : __j;
50009 template<typename _Key, typename _Val, typename _KeyOfValue,
50010 typename _Compare, typename _Alloc>
50011 typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::size_type
50012 _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::
50013 count(const _Key& __k) const
50015 pair<const_iterator, const_iterator> __p = equal_range(__k);
50016 const size_type __n = std::distance(__p.first, __p.second);
50020 template<typename _Key, typename _Val, typename _KeyOfValue,
50021 typename _Compare, typename _Alloc>
50022 typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator
50023 _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::
50024 lower_bound(const _Key& __k)
50026 _Link_type __x = _M_begin();
50027 _Link_type __y = _M_end();
50030 if (!_M_impl._M_key_compare(_S_key(__x), __k))
50031 __y = __x, __x = _S_left(__x);
50033 __x = _S_right(__x);
50035 return iterator(__y);
50038 template<typename _Key, typename _Val, typename _KeyOfValue,
50039 typename _Compare, typename _Alloc>
50040 typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::const_iterator
50041 _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::
50042 lower_bound(const _Key& __k) const
50044 _Const_Link_type __x = _M_begin();
50045 _Const_Link_type __y = _M_end();
50048 if (!_M_impl._M_key_compare(_S_key(__x), __k))
50049 __y = __x, __x = _S_left(__x);
50051 __x = _S_right(__x);
50053 return const_iterator(__y);
50056 template<typename _Key, typename _Val, typename _KeyOfValue,
50057 typename _Compare, typename _Alloc>
50058 typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator
50059 _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::
50060 upper_bound(const _Key& __k)
50062 _Link_type __x = _M_begin();
50063 _Link_type __y = _M_end();
50066 if (_M_impl._M_key_compare(__k, _S_key(__x)))
50067 __y = __x, __x = _S_left(__x);
50069 __x = _S_right(__x);
50071 return iterator(__y);
50074 template<typename _Key, typename _Val, typename _KeyOfValue,
50075 typename _Compare, typename _Alloc>
50076 typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::const_iterator
50077 _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::
50078 upper_bound(const _Key& __k) const
50080 _Const_Link_type __x = _M_begin();
50081 _Const_Link_type __y = _M_end();
50084 if (_M_impl._M_key_compare(__k, _S_key(__x)))
50085 __y = __x, __x = _S_left(__x);
50087 __x = _S_right(__x);
50089 return const_iterator(__y);
50092 template<typename _Key, typename _Val, typename _KeyOfValue,
50093 typename _Compare, typename _Alloc>
50095 pair<typename _Rb_tree<_Key, _Val, _KeyOfValue,
50096 _Compare, _Alloc>::iterator,
50097 typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator>
50098 _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::
50099 equal_range(const _Key& __k)
50100 { return pair<iterator, iterator>(lower_bound(__k), upper_bound(__k)); }
50102 template<typename _Key, typename _Val, typename _KoV,
50103 typename _Compare, typename _Alloc>
50105 pair<typename _Rb_tree<_Key, _Val, _KoV,
50106 _Compare, _Alloc>::const_iterator,
50107 typename _Rb_tree<_Key, _Val, _KoV, _Compare, _Alloc>::const_iterator>
50108 _Rb_tree<_Key, _Val, _KoV, _Compare, _Alloc>::
50109 equal_range(const _Key& __k) const
50110 { return pair<const_iterator, const_iterator>(lower_bound(__k),
50111 upper_bound(__k)); }
50114 _Rb_tree_black_count(const _Rb_tree_node_base* __node,
50115 const _Rb_tree_node_base* __root);
50117 template<typename _Key, typename _Val, typename _KeyOfValue,
50118 typename _Compare, typename _Alloc>
50120 _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>::__rb_verify() const
50122 if (_M_impl._M_node_count == 0 || begin() == end())
50123 return _M_impl._M_node_count == 0 && begin() == end()
50124 && this->_M_impl._M_header._M_left == _M_end()
50125 && this->_M_impl._M_header._M_right == _M_end();
50127 unsigned int __len = _Rb_tree_black_count(_M_leftmost(), _M_root());
50128 for (const_iterator __it = begin(); __it != end(); ++__it)
50130 _Const_Link_type __x = static_cast<_Const_Link_type>(__it._M_node);
50131 _Const_Link_type __L = _S_left(__x);
50132 _Const_Link_type __R = _S_right(__x);
50134 if (__x->_M_color == _S_red)
50135 if ((__L && __L->_M_color == _S_red)
50136 || (__R && __R->_M_color == _S_red))
50139 if (__L && _M_impl._M_key_compare(_S_key(__x), _S_key(__L)))
50141 if (__R && _M_impl._M_key_compare(_S_key(__R), _S_key(__x)))
50144 if (!__L && !__R && _Rb_tree_black_count(__x, _M_root()) != __len)
50148 if (_M_leftmost() != _Rb_tree_node_base::_S_minimum(_M_root()))
50150 if (_M_rightmost() != _Rb_tree_node_base::_S_maximum(_M_root()))
50156 # 66 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/set" 2 3
50157 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_set.h" 1 3
50158 # 66 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_set.h" 3
50159 namespace std __attribute__ ((__visibility__ ("default"))) {
50160 # 91 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_set.h" 3
50161 template<class _Key, class _Compare = std::less<_Key>,
50162 class _Alloc = std::allocator<_Key> >
50166 typedef typename _Alloc::value_type _Alloc_value_type;
50176 typedef _Key key_type;
50177 typedef _Key value_type;
50178 typedef _Compare key_compare;
50179 typedef _Compare value_compare;
50180 typedef _Alloc allocator_type;
50184 typedef typename _Alloc::template rebind<_Key>::other _Key_alloc_type;
50186 typedef _Rb_tree<key_type, value_type, _Identity<value_type>,
50187 key_compare, _Key_alloc_type> _Rep_type;
50193 typedef typename _Key_alloc_type::pointer pointer;
50194 typedef typename _Key_alloc_type::const_pointer const_pointer;
50195 typedef typename _Key_alloc_type::reference reference;
50196 typedef typename _Key_alloc_type::const_reference const_reference;
50200 typedef typename _Rep_type::const_iterator iterator;
50201 typedef typename _Rep_type::const_iterator const_iterator;
50202 typedef typename _Rep_type::const_reverse_iterator reverse_iterator;
50203 typedef typename _Rep_type::const_reverse_iterator const_reverse_iterator;
50204 typedef typename _Rep_type::size_type size_type;
50205 typedef typename _Rep_type::difference_type difference_type;
50211 : _M_t(_Compare(), allocator_type()) {}
50220 set(const _Compare& __comp,
50221 const allocator_type& __a = allocator_type())
50222 : _M_t(__comp, __a) {}
50223 # 163 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_set.h" 3
50224 template<class _InputIterator>
50225 set(_InputIterator __first, _InputIterator __last)
50226 : _M_t(_Compare(), allocator_type())
50227 { _M_t._M_insert_unique(__first, __last); }
50228 # 179 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_set.h" 3
50229 template<class _InputIterator>
50230 set(_InputIterator __first, _InputIterator __last,
50231 const _Compare& __comp,
50232 const allocator_type& __a = allocator_type())
50233 : _M_t(__comp, __a)
50234 { _M_t._M_insert_unique(__first, __last); }
50235 # 193 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_set.h" 3
50236 set(const set<_Key,_Compare,_Alloc>& __x)
50237 : _M_t(__x._M_t) { }
50238 # 203 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_set.h" 3
50239 set<_Key,_Compare,_Alloc>&
50240 operator=(const set<_Key, _Compare, _Alloc>& __x)
50251 { return _M_t.key_comp(); }
50255 { return _M_t.key_comp(); }
50258 get_allocator() const
50259 { return _M_t.get_allocator(); }
50267 { return _M_t.begin(); }
50275 { return _M_t.end(); }
50284 { return _M_t.rbegin(); }
50293 { return _M_t.rend(); }
50298 { return _M_t.empty(); }
50303 { return _M_t.size(); }
50308 { return _M_t.max_size(); }
50309 # 285 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_set.h" 3
50311 swap(set<_Key,_Compare,_Alloc>& __x)
50312 { _M_t.swap(__x._M_t); }
50313 # 303 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_set.h" 3
50314 std::pair<iterator,bool>
50315 insert(const value_type& __x)
50317 std::pair<typename _Rep_type::iterator, bool> __p =
50318 _M_t._M_insert_unique(__x);
50319 return std::pair<iterator, bool>(__p.first, __p.second);
50321 # 330 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_set.h" 3
50323 insert(iterator __position, const value_type& __x)
50324 { return _M_t._M_insert_unique(__position, __x); }
50325 # 342 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_set.h" 3
50326 template<class _InputIterator>
50328 insert(_InputIterator __first, _InputIterator __last)
50329 { _M_t._M_insert_unique(__first, __last); }
50330 # 356 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_set.h" 3
50332 erase(iterator __position)
50333 { _M_t.erase(__position); }
50334 # 371 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_set.h" 3
50336 erase(const key_type& __x)
50337 { return _M_t.erase(__x); }
50338 # 386 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_set.h" 3
50340 erase(iterator __first, iterator __last)
50341 { _M_t.erase(__first, __last); }
50352 # 410 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_set.h" 3
50354 count(const key_type& __x) const
50355 { return _M_t.find(__x) == _M_t.end() ? 0 : 1; }
50356 # 428 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_set.h" 3
50358 find(const key_type& __x)
50359 { return _M_t.find(__x); }
50362 find(const key_type& __x) const
50363 { return _M_t.find(__x); }
50364 # 449 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_set.h" 3
50366 lower_bound(const key_type& __x)
50367 { return _M_t.lower_bound(__x); }
50370 lower_bound(const key_type& __x) const
50371 { return _M_t.lower_bound(__x); }
50372 # 465 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_set.h" 3
50374 upper_bound(const key_type& __x)
50375 { return _M_t.upper_bound(__x); }
50378 upper_bound(const key_type& __x) const
50379 { return _M_t.upper_bound(__x); }
50380 # 490 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_set.h" 3
50381 std::pair<iterator, iterator>
50382 equal_range(const key_type& __x)
50383 { return _M_t.equal_range(__x); }
50385 std::pair<const_iterator, const_iterator>
50386 equal_range(const key_type& __x) const
50387 { return _M_t.equal_range(__x); }
50390 template<class _K1, class _C1, class _A1>
50392 operator== (const set<_K1, _C1, _A1>&, const set<_K1, _C1, _A1>&);
50394 template<class _K1, class _C1, class _A1>
50396 operator< (const set<_K1, _C1, _A1>&, const set<_K1, _C1, _A1>&);
50398 # 519 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_set.h" 3
50399 template<class _Key, class _Compare, class _Alloc>
50401 operator==(const set<_Key, _Compare, _Alloc>& __x,
50402 const set<_Key, _Compare, _Alloc>& __y)
50403 { return __x._M_t == __y._M_t; }
50404 # 536 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_set.h" 3
50405 template<class _Key, class _Compare, class _Alloc>
50407 operator<(const set<_Key, _Compare, _Alloc>& __x,
50408 const set<_Key, _Compare, _Alloc>& __y)
50409 { return __x._M_t < __y._M_t; }
50412 template<class _Key, class _Compare, class _Alloc>
50414 operator!=(const set<_Key, _Compare, _Alloc>& __x,
50415 const set<_Key, _Compare, _Alloc>& __y)
50416 { return !(__x == __y); }
50419 template<class _Key, class _Compare, class _Alloc>
50421 operator>(const set<_Key, _Compare, _Alloc>& __x,
50422 const set<_Key, _Compare, _Alloc>& __y)
50423 { return __y < __x; }
50426 template<class _Key, class _Compare, class _Alloc>
50428 operator<=(const set<_Key, _Compare, _Alloc>& __x,
50429 const set<_Key, _Compare, _Alloc>& __y)
50430 { return !(__y < __x); }
50433 template<class _Key, class _Compare, class _Alloc>
50435 operator>=(const set<_Key, _Compare, _Alloc>& __x,
50436 const set<_Key, _Compare, _Alloc>& __y)
50437 { return !(__x < __y); }
50440 template<class _Key, class _Compare, class _Alloc>
50442 swap(set<_Key, _Compare, _Alloc>& __x, set<_Key, _Compare, _Alloc>& __y)
50446 # 67 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/set" 2 3
50447 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_multiset.h" 1 3
50448 # 66 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_multiset.h" 3
50449 namespace std __attribute__ ((__visibility__ ("default"))) {
50450 # 88 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_multiset.h" 3
50451 template <class _Key, class _Compare = std::less<_Key>,
50452 class _Alloc = std::allocator<_Key> >
50456 typedef typename _Alloc::value_type _Alloc_value_type;
50464 typedef _Key key_type;
50465 typedef _Key value_type;
50466 typedef _Compare key_compare;
50467 typedef _Compare value_compare;
50468 typedef _Alloc allocator_type;
50472 typedef typename _Alloc::template rebind<_Key>::other _Key_alloc_type;
50474 typedef _Rb_tree<key_type, value_type, _Identity<value_type>,
50475 key_compare, _Key_alloc_type> _Rep_type;
50480 typedef typename _Key_alloc_type::pointer pointer;
50481 typedef typename _Key_alloc_type::const_pointer const_pointer;
50482 typedef typename _Key_alloc_type::reference reference;
50483 typedef typename _Key_alloc_type::const_reference const_reference;
50487 typedef typename _Rep_type::const_iterator iterator;
50488 typedef typename _Rep_type::const_iterator const_iterator;
50489 typedef typename _Rep_type::const_reverse_iterator reverse_iterator;
50490 typedef typename _Rep_type::const_reverse_iterator const_reverse_iterator;
50491 typedef typename _Rep_type::size_type size_type;
50492 typedef typename _Rep_type::difference_type difference_type;
50500 : _M_t(_Compare(), allocator_type()) { }
50503 multiset(const _Compare& __comp,
50504 const allocator_type& __a = allocator_type())
50505 : _M_t(__comp, __a) { }
50506 # 153 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_multiset.h" 3
50507 template <class _InputIterator>
50508 multiset(_InputIterator __first, _InputIterator __last)
50509 : _M_t(_Compare(), allocator_type())
50510 { _M_t._M_insert_equal(__first, __last); }
50511 # 169 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_multiset.h" 3
50512 template <class _InputIterator>
50513 multiset(_InputIterator __first, _InputIterator __last,
50514 const _Compare& __comp,
50515 const allocator_type& __a = allocator_type())
50516 : _M_t(__comp, __a)
50517 { _M_t._M_insert_equal(__first, __last); }
50518 # 183 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_multiset.h" 3
50519 multiset(const multiset<_Key,_Compare,_Alloc>& __x)
50520 : _M_t(__x._M_t) { }
50521 # 193 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_multiset.h" 3
50522 multiset<_Key,_Compare,_Alloc>&
50523 operator=(const multiset<_Key,_Compare,_Alloc>& __x)
50534 { return _M_t.key_comp(); }
50538 { return _M_t.key_comp(); }
50541 get_allocator() const
50542 { return _M_t.get_allocator(); }
50551 { return _M_t.begin(); }
50560 { return _M_t.end(); }
50569 { return _M_t.rbegin(); }
50578 { return _M_t.rend(); }
50583 { return _M_t.empty(); }
50588 { return _M_t.size(); }
50593 { return _M_t.max_size(); }
50594 # 277 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_multiset.h" 3
50596 swap(multiset<_Key, _Compare, _Alloc>& __x)
50597 { _M_t.swap(__x._M_t); }
50598 # 293 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_multiset.h" 3
50600 insert(const value_type& __x)
50601 { return _M_t._M_insert_equal(__x); }
50602 # 317 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_multiset.h" 3
50604 insert(iterator __position, const value_type& __x)
50605 { return _M_t._M_insert_equal(__position, __x); }
50606 # 329 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_multiset.h" 3
50607 template <class _InputIterator>
50609 insert(_InputIterator __first, _InputIterator __last)
50610 { _M_t._M_insert_equal(__first, __last); }
50611 # 344 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_multiset.h" 3
50613 erase(iterator __position)
50614 { _M_t.erase(__position); }
50615 # 359 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_multiset.h" 3
50617 erase(const key_type& __x)
50618 { return _M_t.erase(__x); }
50619 # 374 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_multiset.h" 3
50621 erase(iterator __first, iterator __last)
50622 { _M_t.erase(__first, __last); }
50633 # 395 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_multiset.h" 3
50635 count(const key_type& __x) const
50636 { return _M_t.count(__x); }
50637 # 413 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_multiset.h" 3
50639 find(const key_type& __x)
50640 { return _M_t.find(__x); }
50643 find(const key_type& __x) const
50644 { return _M_t.find(__x); }
50645 # 434 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_multiset.h" 3
50647 lower_bound(const key_type& __x)
50648 { return _M_t.lower_bound(__x); }
50651 lower_bound(const key_type& __x) const
50652 { return _M_t.lower_bound(__x); }
50653 # 450 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_multiset.h" 3
50655 upper_bound(const key_type& __x)
50656 { return _M_t.upper_bound(__x); }
50659 upper_bound(const key_type& __x) const
50660 { return _M_t.upper_bound(__x); }
50661 # 475 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_multiset.h" 3
50662 std::pair<iterator, iterator>
50663 equal_range(const key_type& __x)
50664 { return _M_t.equal_range(__x); }
50666 std::pair<const_iterator, const_iterator>
50667 equal_range(const key_type& __x) const
50668 { return _M_t.equal_range(__x); }
50670 template <class _K1, class _C1, class _A1>
50672 operator== (const multiset<_K1, _C1, _A1>&,
50673 const multiset<_K1, _C1, _A1>&);
50675 template <class _K1, class _C1, class _A1>
50677 operator< (const multiset<_K1, _C1, _A1>&,
50678 const multiset<_K1, _C1, _A1>&);
50680 # 505 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_multiset.h" 3
50681 template <class _Key, class _Compare, class _Alloc>
50683 operator==(const multiset<_Key, _Compare, _Alloc>& __x,
50684 const multiset<_Key, _Compare, _Alloc>& __y)
50685 { return __x._M_t == __y._M_t; }
50686 # 522 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_multiset.h" 3
50687 template <class _Key, class _Compare, class _Alloc>
50689 operator<(const multiset<_Key, _Compare, _Alloc>& __x,
50690 const multiset<_Key, _Compare, _Alloc>& __y)
50691 { return __x._M_t < __y._M_t; }
50694 template <class _Key, class _Compare, class _Alloc>
50696 operator!=(const multiset<_Key, _Compare, _Alloc>& __x,
50697 const multiset<_Key, _Compare, _Alloc>& __y)
50698 { return !(__x == __y); }
50701 template <class _Key, class _Compare, class _Alloc>
50703 operator>(const multiset<_Key,_Compare,_Alloc>& __x,
50704 const multiset<_Key,_Compare,_Alloc>& __y)
50705 { return __y < __x; }
50708 template <class _Key, class _Compare, class _Alloc>
50710 operator<=(const multiset<_Key, _Compare, _Alloc>& __x,
50711 const multiset<_Key, _Compare, _Alloc>& __y)
50712 { return !(__y < __x); }
50715 template <class _Key, class _Compare, class _Alloc>
50717 operator>=(const multiset<_Key, _Compare, _Alloc>& __x,
50718 const multiset<_Key, _Compare, _Alloc>& __y)
50719 { return !(__x < __y); }
50722 template <class _Key, class _Compare, class _Alloc>
50724 swap(multiset<_Key, _Compare, _Alloc>& __x,
50725 multiset<_Key, _Compare, _Alloc>& __y)
50729 # 68 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/set" 2 3
50730 # 23 "/usr/include/boost/program_options/options_description.hpp" 2 3 4
50731 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/map" 1 3 4
50732 # 63 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/map" 3 4
50734 # 64 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/map" 3
50737 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_map.h" 1 3
50738 # 68 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_map.h" 3
50739 namespace std __attribute__ ((__visibility__ ("default"))) {
50740 # 91 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_map.h" 3
50741 template <typename _Key, typename _Tp, typename _Compare = std::less<_Key>,
50742 typename _Alloc = std::allocator<std::pair<const _Key, _Tp> > >
50746 typedef _Key key_type;
50747 typedef _Tp mapped_type;
50748 typedef std::pair<const _Key, _Tp> value_type;
50749 typedef _Compare key_compare;
50750 typedef _Alloc allocator_type;
50754 typedef typename _Alloc::value_type _Alloc_value_type;
50761 class value_compare
50762 : public std::binary_function<value_type, value_type, bool>
50764 friend class map<_Key, _Tp, _Compare, _Alloc>;
50768 value_compare(_Compare __c)
50772 bool operator()(const value_type& __x, const value_type& __y) const
50773 { return comp(__x.first, __y.first); }
50778 typedef typename _Alloc::template rebind<value_type>::other
50781 typedef _Rb_tree<key_type, value_type, _Select1st<value_type>,
50782 key_compare, _Pair_alloc_type> _Rep_type;
50790 typedef typename _Pair_alloc_type::pointer pointer;
50791 typedef typename _Pair_alloc_type::const_pointer const_pointer;
50792 typedef typename _Pair_alloc_type::reference reference;
50793 typedef typename _Pair_alloc_type::const_reference const_reference;
50794 typedef typename _Rep_type::iterator iterator;
50795 typedef typename _Rep_type::const_iterator const_iterator;
50796 typedef typename _Rep_type::size_type size_type;
50797 typedef typename _Rep_type::difference_type difference_type;
50798 typedef typename _Rep_type::reverse_iterator reverse_iterator;
50799 typedef typename _Rep_type::const_reverse_iterator const_reverse_iterator;
50808 : _M_t(_Compare(), allocator_type()) { }
50815 map(const _Compare& __comp, const allocator_type& __a = allocator_type())
50816 : _M_t(__comp, __a) { }
50817 # 175 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_map.h" 3
50818 map(const map& __x)
50819 : _M_t(__x._M_t) { }
50820 # 187 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_map.h" 3
50821 template <typename _InputIterator>
50822 map(_InputIterator __first, _InputIterator __last)
50823 : _M_t(_Compare(), allocator_type())
50824 { _M_t._M_insert_unique(__first, __last); }
50825 # 203 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_map.h" 3
50826 template <typename _InputIterator>
50827 map(_InputIterator __first, _InputIterator __last,
50828 const _Compare& __comp, const allocator_type& __a = allocator_type())
50829 : _M_t(__comp, __a)
50830 { _M_t._M_insert_unique(__first, __last); }
50831 # 225 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_map.h" 3
50833 operator=(const map& __x)
50841 get_allocator() const
50842 { return _M_t.get_allocator(); }
50852 { return _M_t.begin(); }
50861 { return _M_t.begin(); }
50870 { return _M_t.end(); }
50879 { return _M_t.end(); }
50888 { return _M_t.rbegin(); }
50895 const_reverse_iterator
50897 { return _M_t.rbegin(); }
50906 { return _M_t.rend(); }
50913 const_reverse_iterator
50915 { return _M_t.rend(); }
50923 { return _M_t.empty(); }
50928 { return _M_t.size(); }
50933 { return _M_t.max_size(); }
50934 # 341 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_map.h" 3
50936 operator[](const key_type& __k)
50941 iterator __i = lower_bound(__k);
50943 if (__i == end() || key_comp()(__k, (*__i).first))
50944 __i = insert(__i, value_type(__k, mapped_type()));
50945 return (*__i).second;
50947 # 363 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_map.h" 3
50949 at(const key_type& __k)
50951 iterator __i = lower_bound(__k);
50952 if (__i == end() || key_comp()(__k, (*__i).first))
50953 __throw_out_of_range(("map::at"));
50954 return (*__i).second;
50958 at(const key_type& __k) const
50960 const_iterator __i = lower_bound(__k);
50961 if (__i == end() || key_comp()(__k, (*__i).first))
50962 __throw_out_of_range(("map::at"));
50963 return (*__i).second;
50965 # 398 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_map.h" 3
50966 std::pair<iterator, bool>
50967 insert(const value_type& __x)
50968 { return _M_t._M_insert_unique(__x); }
50969 # 425 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_map.h" 3
50971 insert(iterator __position, const value_type& __x)
50972 { return _M_t._M_insert_unique(__position, __x); }
50973 # 437 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_map.h" 3
50974 template <typename _InputIterator>
50976 insert(_InputIterator __first, _InputIterator __last)
50977 { _M_t._M_insert_unique(__first, __last); }
50978 # 452 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_map.h" 3
50980 erase(iterator __position)
50981 { _M_t.erase(__position); }
50982 # 467 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_map.h" 3
50984 erase(const key_type& __x)
50985 { return _M_t.erase(__x); }
50986 # 482 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_map.h" 3
50988 erase(iterator __first, iterator __last)
50989 { _M_t.erase(__first, __last); }
50990 # 497 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_map.h" 3
50993 { _M_t.swap(__x._M_t); }
51012 { return _M_t.key_comp(); }
51020 { return value_compare(_M_t.key_comp()); }
51021 # 540 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_map.h" 3
51023 find(const key_type& __x)
51024 { return _M_t.find(__x); }
51025 # 555 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_map.h" 3
51027 find(const key_type& __x) const
51028 { return _M_t.find(__x); }
51029 # 567 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_map.h" 3
51031 count(const key_type& __x) const
51032 { return _M_t.find(__x) == _M_t.end() ? 0 : 1; }
51033 # 582 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_map.h" 3
51035 lower_bound(const key_type& __x)
51036 { return _M_t.lower_bound(__x); }
51037 # 597 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_map.h" 3
51039 lower_bound(const key_type& __x) const
51040 { return _M_t.lower_bound(__x); }
51049 upper_bound(const key_type& __x)
51050 { return _M_t.upper_bound(__x); }
51059 upper_bound(const key_type& __x) const
51060 { return _M_t.upper_bound(__x); }
51061 # 636 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_map.h" 3
51062 std::pair<iterator, iterator>
51063 equal_range(const key_type& __x)
51064 { return _M_t.equal_range(__x); }
51065 # 655 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_map.h" 3
51066 std::pair<const_iterator, const_iterator>
51067 equal_range(const key_type& __x) const
51068 { return _M_t.equal_range(__x); }
51070 template <typename _K1, typename _T1, typename _C1, typename _A1>
51072 operator== (const map<_K1, _T1, _C1, _A1>&,
51073 const map<_K1, _T1, _C1, _A1>&);
51075 template <typename _K1, typename _T1, typename _C1, typename _A1>
51077 operator< (const map<_K1, _T1, _C1, _A1>&,
51078 const map<_K1, _T1, _C1, _A1>&);
51080 # 680 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_map.h" 3
51081 template <typename _Key, typename _Tp, typename _Compare, typename _Alloc>
51083 operator==(const map<_Key, _Tp, _Compare, _Alloc>& __x,
51084 const map<_Key, _Tp, _Compare, _Alloc>& __y)
51085 { return __x._M_t == __y._M_t; }
51086 # 697 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_map.h" 3
51087 template <typename _Key, typename _Tp, typename _Compare, typename _Alloc>
51089 operator<(const map<_Key, _Tp, _Compare, _Alloc>& __x,
51090 const map<_Key, _Tp, _Compare, _Alloc>& __y)
51091 { return __x._M_t < __y._M_t; }
51094 template <typename _Key, typename _Tp, typename _Compare, typename _Alloc>
51096 operator!=(const map<_Key, _Tp, _Compare, _Alloc>& __x,
51097 const map<_Key, _Tp, _Compare, _Alloc>& __y)
51098 { return !(__x == __y); }
51101 template <typename _Key, typename _Tp, typename _Compare, typename _Alloc>
51103 operator>(const map<_Key, _Tp, _Compare, _Alloc>& __x,
51104 const map<_Key, _Tp, _Compare, _Alloc>& __y)
51105 { return __y < __x; }
51108 template <typename _Key, typename _Tp, typename _Compare, typename _Alloc>
51110 operator<=(const map<_Key, _Tp, _Compare, _Alloc>& __x,
51111 const map<_Key, _Tp, _Compare, _Alloc>& __y)
51112 { return !(__y < __x); }
51115 template <typename _Key, typename _Tp, typename _Compare, typename _Alloc>
51117 operator>=(const map<_Key, _Tp, _Compare, _Alloc>& __x,
51118 const map<_Key, _Tp, _Compare, _Alloc>& __y)
51119 { return !(__x < __y); }
51122 template <typename _Key, typename _Tp, typename _Compare, typename _Alloc>
51124 swap(map<_Key, _Tp, _Compare, _Alloc>& __x,
51125 map<_Key, _Tp, _Compare, _Alloc>& __y)
51129 # 67 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/map" 2 3
51130 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_multimap.h" 1 3
51131 # 66 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_multimap.h" 3
51132 namespace std __attribute__ ((__visibility__ ("default"))) {
51133 # 89 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_multimap.h" 3
51134 template <typename _Key, typename _Tp,
51135 typename _Compare = std::less<_Key>,
51136 typename _Alloc = std::allocator<std::pair<const _Key, _Tp> > >
51140 typedef _Key key_type;
51141 typedef _Tp mapped_type;
51142 typedef std::pair<const _Key, _Tp> value_type;
51143 typedef _Compare key_compare;
51144 typedef _Alloc allocator_type;
51148 typedef typename _Alloc::value_type _Alloc_value_type;
51155 class value_compare
51156 : public std::binary_function<value_type, value_type, bool>
51158 friend class multimap<_Key, _Tp, _Compare, _Alloc>;
51162 value_compare(_Compare __c)
51166 bool operator()(const value_type& __x, const value_type& __y) const
51167 { return comp(__x.first, __y.first); }
51172 typedef typename _Alloc::template rebind<value_type>::other
51175 typedef _Rb_tree<key_type, value_type, _Select1st<value_type>,
51176 key_compare, _Pair_alloc_type> _Rep_type;
51183 typedef typename _Pair_alloc_type::pointer pointer;
51184 typedef typename _Pair_alloc_type::const_pointer const_pointer;
51185 typedef typename _Pair_alloc_type::reference reference;
51186 typedef typename _Pair_alloc_type::const_reference const_reference;
51187 typedef typename _Rep_type::iterator iterator;
51188 typedef typename _Rep_type::const_iterator const_iterator;
51189 typedef typename _Rep_type::size_type size_type;
51190 typedef typename _Rep_type::difference_type difference_type;
51191 typedef typename _Rep_type::reverse_iterator reverse_iterator;
51192 typedef typename _Rep_type::const_reverse_iterator const_reverse_iterator;
51200 : _M_t(_Compare(), allocator_type()) { }
51207 multimap(const _Compare& __comp,
51208 const allocator_type& __a = allocator_type())
51209 : _M_t(__comp, __a) { }
51210 # 173 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_multimap.h" 3
51211 multimap(const multimap& __x)
51212 : _M_t(__x._M_t) { }
51213 # 185 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_multimap.h" 3
51214 template <typename _InputIterator>
51215 multimap(_InputIterator __first, _InputIterator __last)
51216 : _M_t(_Compare(), allocator_type())
51217 { _M_t._M_insert_equal(__first, __last); }
51218 # 201 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_multimap.h" 3
51219 template <typename _InputIterator>
51220 multimap(_InputIterator __first, _InputIterator __last,
51221 const _Compare& __comp,
51222 const allocator_type& __a = allocator_type())
51223 : _M_t(__comp, __a)
51224 { _M_t._M_insert_equal(__first, __last); }
51225 # 224 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_multimap.h" 3
51227 operator=(const multimap& __x)
51235 get_allocator() const
51236 { return _M_t.get_allocator(); }
51246 { return _M_t.begin(); }
51255 { return _M_t.begin(); }
51264 { return _M_t.end(); }
51273 { return _M_t.end(); }
51282 { return _M_t.rbegin(); }
51289 const_reverse_iterator
51291 { return _M_t.rbegin(); }
51300 { return _M_t.rend(); }
51307 const_reverse_iterator
51309 { return _M_t.rend(); }
51315 { return _M_t.empty(); }
51320 { return _M_t.size(); }
51325 { return _M_t.max_size(); }
51326 # 338 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_multimap.h" 3
51328 insert(const value_type& __x)
51329 { return _M_t._M_insert_equal(__x); }
51330 # 362 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_multimap.h" 3
51332 insert(iterator __position, const value_type& __x)
51333 { return _M_t._M_insert_equal(__position, __x); }
51334 # 374 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_multimap.h" 3
51335 template <typename _InputIterator>
51337 insert(_InputIterator __first, _InputIterator __last)
51338 { _M_t._M_insert_equal(__first, __last); }
51339 # 389 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_multimap.h" 3
51341 erase(iterator __position)
51342 { _M_t.erase(__position); }
51343 # 404 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_multimap.h" 3
51345 erase(const key_type& __x)
51346 { return _M_t.erase(__x); }
51347 # 419 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_multimap.h" 3
51349 erase(iterator __first, iterator __last)
51350 { _M_t.erase(__first, __last); }
51351 # 434 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_multimap.h" 3
51353 swap(multimap& __x)
51354 { _M_t.swap(__x._M_t); }
51373 { return _M_t.key_comp(); }
51381 { return value_compare(_M_t.key_comp()); }
51382 # 477 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_multimap.h" 3
51384 find(const key_type& __x)
51385 { return _M_t.find(__x); }
51386 # 492 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_multimap.h" 3
51388 find(const key_type& __x) const
51389 { return _M_t.find(__x); }
51397 count(const key_type& __x) const
51398 { return _M_t.count(__x); }
51399 # 516 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_multimap.h" 3
51401 lower_bound(const key_type& __x)
51402 { return _M_t.lower_bound(__x); }
51403 # 531 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_multimap.h" 3
51405 lower_bound(const key_type& __x) const
51406 { return _M_t.lower_bound(__x); }
51415 upper_bound(const key_type& __x)
51416 { return _M_t.upper_bound(__x); }
51425 upper_bound(const key_type& __x) const
51426 { return _M_t.upper_bound(__x); }
51427 # 568 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_multimap.h" 3
51428 std::pair<iterator, iterator>
51429 equal_range(const key_type& __x)
51430 { return _M_t.equal_range(__x); }
51431 # 585 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_multimap.h" 3
51432 std::pair<const_iterator, const_iterator>
51433 equal_range(const key_type& __x) const
51434 { return _M_t.equal_range(__x); }
51436 template <typename _K1, typename _T1, typename _C1, typename _A1>
51438 operator== (const multimap<_K1, _T1, _C1, _A1>&,
51439 const multimap<_K1, _T1, _C1, _A1>&);
51441 template <typename _K1, typename _T1, typename _C1, typename _A1>
51443 operator< (const multimap<_K1, _T1, _C1, _A1>&,
51444 const multimap<_K1, _T1, _C1, _A1>&);
51446 # 610 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_multimap.h" 3
51447 template <typename _Key, typename _Tp, typename _Compare, typename _Alloc>
51449 operator==(const multimap<_Key, _Tp, _Compare, _Alloc>& __x,
51450 const multimap<_Key, _Tp, _Compare, _Alloc>& __y)
51451 { return __x._M_t == __y._M_t; }
51452 # 627 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/stl_multimap.h" 3
51453 template <typename _Key, typename _Tp, typename _Compare, typename _Alloc>
51455 operator<(const multimap<_Key, _Tp, _Compare, _Alloc>& __x,
51456 const multimap<_Key, _Tp, _Compare, _Alloc>& __y)
51457 { return __x._M_t < __y._M_t; }
51460 template <typename _Key, typename _Tp, typename _Compare, typename _Alloc>
51462 operator!=(const multimap<_Key, _Tp, _Compare, _Alloc>& __x,
51463 const multimap<_Key, _Tp, _Compare, _Alloc>& __y)
51464 { return !(__x == __y); }
51467 template <typename _Key, typename _Tp, typename _Compare, typename _Alloc>
51469 operator>(const multimap<_Key, _Tp, _Compare, _Alloc>& __x,
51470 const multimap<_Key, _Tp, _Compare, _Alloc>& __y)
51471 { return __y < __x; }
51474 template <typename _Key, typename _Tp, typename _Compare, typename _Alloc>
51476 operator<=(const multimap<_Key, _Tp, _Compare, _Alloc>& __x,
51477 const multimap<_Key, _Tp, _Compare, _Alloc>& __y)
51478 { return !(__y < __x); }
51481 template <typename _Key, typename _Tp, typename _Compare, typename _Alloc>
51483 operator>=(const multimap<_Key, _Tp, _Compare, _Alloc>& __x,
51484 const multimap<_Key, _Tp, _Compare, _Alloc>& __y)
51485 { return !(__x < __y); }
51488 template <typename _Key, typename _Tp, typename _Compare, typename _Alloc>
51490 swap(multimap<_Key, _Tp, _Compare, _Alloc>& __x,
51491 multimap<_Key, _Tp, _Compare, _Alloc>& __y)
51495 # 68 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/map" 2 3
51496 # 24 "/usr/include/boost/program_options/options_description.hpp" 2 3 4
51504 namespace program_options {
51505 # 41 "/usr/include/boost/program_options/options_description.hpp" 3 4
51506 class option_description {
51509 option_description();
51510 # 70 "/usr/include/boost/program_options/options_description.hpp" 3 4
51511 option_description(const char* name,
51512 const value_semantic* s);
51516 option_description(const char* name,
51517 const value_semantic* s,
51518 const char* description);
51520 virtual ~option_description();
51522 enum match_result { no_match, full_match, approximate_match };
51527 match_result match(const std::string& option, bool approx) const;
51528 # 96 "/usr/include/boost/program_options/options_description.hpp" 3 4
51529 const std::string& key(const std::string& option) const;
51531 const std::string& long_name() const;
51534 const std::string& description() const;
51537 shared_ptr<const value_semantic> semantic() const;
51540 std::string format_name() const;
51544 std::string format_parameter() const;
51548 option_description& set_name(const char* name);
51550 std::string m_short_name, m_long_name, m_description;
51553 shared_ptr<const value_semantic> m_value_semantic;
51556 class options_description;
51560 class options_description_easy_init {
51562 options_description_easy_init(options_description* owner);
51564 options_description_easy_init&
51565 operator()(const char* name,
51566 const char* description);
51568 options_description_easy_init&
51569 operator()(const char* name,
51570 const value_semantic* s);
51572 options_description_easy_init&
51573 operator()(const char* name,
51574 const value_semantic* s,
51575 const char* description);
51578 options_description* owner;
51580 # 156 "/usr/include/boost/program_options/options_description.hpp" 3 4
51581 class options_description {
51583 static const unsigned m_default_line_length = 80;
51586 options_description(unsigned line_length = m_default_line_length);
51590 options_description(const std::string& caption,
51591 unsigned line_length = m_default_line_length);
51595 void add(shared_ptr<option_description> desc);
51602 options_description& add(const options_description& desc);
51611 options_description_easy_init add_options();
51613 const option_description& find(const std::string& name, bool approx)
51616 const option_description* find_nothrow(const std::string& name,
51617 bool approx) const;
51620 const std::vector< shared_ptr<option_description> >& options() const;
51625 friend std::ostream& operator<<(std::ostream& os,
51626 const options_description& desc);
51630 void print(std::ostream& os) const;
51633 typedef std::map<std::string, int>::const_iterator name2index_iterator;
51634 typedef std::pair<name2index_iterator, name2index_iterator>
51635 approximation_range;
51639 std::string m_caption;
51640 const unsigned m_line_length;
51644 std::vector< shared_ptr<option_description> > m_options;
51652 std::vector<bool> belong_to_group;
51655 std::vector< shared_ptr<options_description> > groups;
51660 class duplicate_option_error : public error {
51662 duplicate_option_error(const std::string& what) : error(what) {}
51665 # 14 "/usr/include/boost/program_options.hpp" 2 3 4
51666 # 1 "/usr/include/boost/program_options/positional_options.hpp" 1 3 4
51667 # 14 "/usr/include/boost/program_options/positional_options.hpp" 3 4
51668 namespace boost { namespace program_options {
51669 # 31 "/usr/include/boost/program_options/positional_options.hpp" 3 4
51670 class positional_options_description {
51672 positional_options_description();
51679 positional_options_description&
51680 add(const char* name, int max_count);
51685 unsigned max_total_count() const;
51691 const std::string& name_for_position(unsigned position) const;
51697 std::vector<std::string> m_names;
51698 std::string m_trailing;
51702 # 15 "/usr/include/boost/program_options.hpp" 2 3 4
51703 # 1 "/usr/include/boost/program_options/parsers.hpp" 1 3 4
51704 # 11 "/usr/include/boost/program_options/parsers.hpp" 3 4
51705 # 1 "/usr/include/boost/program_options/option.hpp" 1 3 4
51706 # 14 "/usr/include/boost/program_options/option.hpp" 3 4
51707 namespace boost { namespace program_options {
51708 # 23 "/usr/include/boost/program_options/option.hpp" 3 4
51709 template<class charT>
51710 class basic_option {
51712 basic_option() : position_key(-1), unregistered(false) {}
51713 basic_option(const std::string& string_key,
51714 const std::vector< std::string> &value)
51715 : string_key(string_key), value(value), unregistered(false)
51720 std::string string_key;
51729 std::vector< std::basic_string<charT> > value;
51732 std::vector< std::basic_string<charT> > original_tokens;
51741 typedef basic_option<char> option;
51742 typedef basic_option<wchar_t> woption;
51745 # 12 "/usr/include/boost/program_options/parsers.hpp" 2 3 4
51746 # 1 "/usr/include/boost/program_options/detail/cmdline.hpp" 1 3 4
51747 # 12 "/usr/include/boost/program_options/detail/cmdline.hpp" 3 4
51748 # 1 "/usr/include/boost/program_options/cmdline.hpp" 1 3 4
51749 # 9 "/usr/include/boost/program_options/cmdline.hpp" 3 4
51750 namespace boost { namespace program_options { namespace command_line_style {
51751 # 26 "/usr/include/boost/program_options/cmdline.hpp" 3 4
51756 allow_short = allow_long << 1,
51758 allow_dash_for_short = allow_short << 1,
51760 allow_slash_for_short = allow_dash_for_short << 1,
51767 long_allow_adjacent = allow_slash_for_short << 1,
51770 long_allow_next = long_allow_adjacent << 1,
51773 short_allow_adjacent = long_allow_next << 1,
51776 short_allow_next = short_allow_adjacent << 1,
51784 allow_sticky = short_allow_next << 1,
51790 allow_guessing = allow_sticky << 1,
51794 case_insensitive = allow_guessing << 1,
51798 allow_long_disguise = case_insensitive << 1,
51800 unix_style = (allow_short | short_allow_adjacent | short_allow_next
51801 | allow_long | long_allow_adjacent | long_allow_next
51802 | allow_sticky | allow_guessing
51803 | allow_dash_for_short),
51805 default_style = unix_style
51808 # 13 "/usr/include/boost/program_options/detail/cmdline.hpp" 2 3 4
51816 # 1 "/usr/include/boost/function.hpp" 1 3 4
51817 # 62 "/usr/include/boost/function.hpp" 3 4
51818 # 1 "/usr/include/boost/preprocessor/iteration/detail/iter/forward1.hpp" 1 3 4
51819 # 24 "/usr/include/boost/preprocessor/iteration/detail/iter/forward1.hpp" 3 4
51820 # 1 "/usr/include/boost/preprocessor/iteration/detail/bounds/lower1.hpp" 1 3 4
51821 # 12 "/usr/include/boost/preprocessor/iteration/detail/bounds/lower1.hpp" 3 4
51822 # 1 "/usr/include/boost/preprocessor/slot/detail/shared.hpp" 1 3 4
51823 # 13 "/usr/include/boost/preprocessor/iteration/detail/bounds/lower1.hpp" 2 3 4
51824 # 25 "/usr/include/boost/preprocessor/iteration/detail/iter/forward1.hpp" 2 3 4
51826 # 1 "/usr/include/boost/preprocessor/iteration/detail/bounds/upper1.hpp" 1 3 4
51827 # 12 "/usr/include/boost/preprocessor/iteration/detail/bounds/upper1.hpp" 3 4
51828 # 1 "/usr/include/boost/preprocessor/slot/detail/shared.hpp" 1 3 4
51829 # 13 "/usr/include/boost/preprocessor/iteration/detail/bounds/upper1.hpp" 2 3 4
51830 # 27 "/usr/include/boost/preprocessor/iteration/detail/iter/forward1.hpp" 2 3 4
51831 # 47 "/usr/include/boost/preprocessor/iteration/detail/iter/forward1.hpp" 3 4
51832 # 1 "/usr/include/boost/function/detail/function_iterate.hpp" 1 3 4
51833 # 14 "/usr/include/boost/function/detail/function_iterate.hpp" 3 4
51834 # 1 "/usr/include/boost/function/detail/maybe_include.hpp" 1 3 4
51835 # 15 "/usr/include/boost/function/detail/function_iterate.hpp" 2 3 4
51836 # 48 "/usr/include/boost/preprocessor/iteration/detail/iter/forward1.hpp" 2 3 4
51841 # 1 "/usr/include/boost/function/detail/function_iterate.hpp" 1 3 4
51842 # 14 "/usr/include/boost/function/detail/function_iterate.hpp" 3 4
51843 # 1 "/usr/include/boost/function/detail/maybe_include.hpp" 1 3 4
51844 # 15 "/usr/include/boost/function/detail/function_iterate.hpp" 2 3 4
51845 # 53 "/usr/include/boost/preprocessor/iteration/detail/iter/forward1.hpp" 2 3 4
51850 # 1 "/usr/include/boost/function/detail/function_iterate.hpp" 1 3 4
51851 # 14 "/usr/include/boost/function/detail/function_iterate.hpp" 3 4
51852 # 1 "/usr/include/boost/function/detail/maybe_include.hpp" 1 3 4
51853 # 15 "/usr/include/boost/function/detail/function_iterate.hpp" 2 3 4
51854 # 58 "/usr/include/boost/preprocessor/iteration/detail/iter/forward1.hpp" 2 3 4
51859 # 1 "/usr/include/boost/function/detail/function_iterate.hpp" 1 3 4
51860 # 14 "/usr/include/boost/function/detail/function_iterate.hpp" 3 4
51861 # 1 "/usr/include/boost/function/detail/maybe_include.hpp" 1 3 4
51862 # 15 "/usr/include/boost/function/detail/function_iterate.hpp" 2 3 4
51863 # 63 "/usr/include/boost/preprocessor/iteration/detail/iter/forward1.hpp" 2 3 4
51868 # 1 "/usr/include/boost/function/detail/function_iterate.hpp" 1 3 4
51869 # 14 "/usr/include/boost/function/detail/function_iterate.hpp" 3 4
51870 # 1 "/usr/include/boost/function/detail/maybe_include.hpp" 1 3 4
51871 # 15 "/usr/include/boost/function/detail/function_iterate.hpp" 2 3 4
51872 # 68 "/usr/include/boost/preprocessor/iteration/detail/iter/forward1.hpp" 2 3 4
51877 # 1 "/usr/include/boost/function/detail/function_iterate.hpp" 1 3 4
51878 # 14 "/usr/include/boost/function/detail/function_iterate.hpp" 3 4
51879 # 1 "/usr/include/boost/function/detail/maybe_include.hpp" 1 3 4
51880 # 15 "/usr/include/boost/function/detail/function_iterate.hpp" 2 3 4
51881 # 73 "/usr/include/boost/preprocessor/iteration/detail/iter/forward1.hpp" 2 3 4
51886 # 1 "/usr/include/boost/function/detail/function_iterate.hpp" 1 3 4
51887 # 14 "/usr/include/boost/function/detail/function_iterate.hpp" 3 4
51888 # 1 "/usr/include/boost/function/detail/maybe_include.hpp" 1 3 4
51889 # 15 "/usr/include/boost/function/detail/function_iterate.hpp" 2 3 4
51890 # 78 "/usr/include/boost/preprocessor/iteration/detail/iter/forward1.hpp" 2 3 4
51895 # 1 "/usr/include/boost/function/detail/function_iterate.hpp" 1 3 4
51896 # 14 "/usr/include/boost/function/detail/function_iterate.hpp" 3 4
51897 # 1 "/usr/include/boost/function/detail/maybe_include.hpp" 1 3 4
51898 # 15 "/usr/include/boost/function/detail/function_iterate.hpp" 2 3 4
51899 # 83 "/usr/include/boost/preprocessor/iteration/detail/iter/forward1.hpp" 2 3 4
51904 # 1 "/usr/include/boost/function/detail/function_iterate.hpp" 1 3 4
51905 # 14 "/usr/include/boost/function/detail/function_iterate.hpp" 3 4
51906 # 1 "/usr/include/boost/function/detail/maybe_include.hpp" 1 3 4
51907 # 15 "/usr/include/boost/function/detail/function_iterate.hpp" 2 3 4
51908 # 88 "/usr/include/boost/preprocessor/iteration/detail/iter/forward1.hpp" 2 3 4
51913 # 1 "/usr/include/boost/function/detail/function_iterate.hpp" 1 3 4
51914 # 14 "/usr/include/boost/function/detail/function_iterate.hpp" 3 4
51915 # 1 "/usr/include/boost/function/detail/maybe_include.hpp" 1 3 4
51916 # 15 "/usr/include/boost/function/detail/function_iterate.hpp" 2 3 4
51917 # 93 "/usr/include/boost/preprocessor/iteration/detail/iter/forward1.hpp" 2 3 4
51922 # 1 "/usr/include/boost/function/detail/function_iterate.hpp" 1 3 4
51923 # 14 "/usr/include/boost/function/detail/function_iterate.hpp" 3 4
51924 # 1 "/usr/include/boost/function/detail/maybe_include.hpp" 1 3 4
51925 # 15 "/usr/include/boost/function/detail/function_iterate.hpp" 2 3 4
51926 # 98 "/usr/include/boost/preprocessor/iteration/detail/iter/forward1.hpp" 2 3 4
51927 # 63 "/usr/include/boost/function.hpp" 2 3 4
51928 # 21 "/usr/include/boost/program_options/detail/cmdline.hpp" 2 3 4
51933 namespace boost { namespace program_options { namespace detail {
51934 # 54 "/usr/include/boost/program_options/detail/cmdline.hpp" 3 4
51938 typedef ::boost::program_options::command_line_style::style_t style_t;
51940 typedef function1<std::pair<std::string, std::string>,
51941 const std::string&>
51944 typedef function1<std::vector<option>, std::vector<std::string>&>
51946 # 73 "/usr/include/boost/program_options/detail/cmdline.hpp" 3 4
51947 cmdline(const std::vector<std::string>& args);
51950 cmdline(int argc, const char*const * argv);
51952 void style(int style);
51953 void allow_unregistered();
51955 void set_options_description(const options_description& desc);
51956 void set_positional_options(
51957 const positional_options_description& m_positional);
51959 std::vector<option> run();
51961 std::vector<option> parse_long_option(std::vector<std::string>& args);
51962 std::vector<option> parse_short_option(std::vector<std::string>& args);
51963 std::vector<option> parse_dos_option(std::vector<std::string>& args);
51964 std::vector<option> parse_disguised_long_option(
51965 std::vector<std::string>& args);
51966 std::vector<option> parse_terminator(
51967 std::vector<std::string>& args);
51968 std::vector<option> handle_additional_parser(
51969 std::vector<std::string>& args);
51970 # 106 "/usr/include/boost/program_options/detail/cmdline.hpp" 3 4
51971 void set_additional_parser(additional_parser p);
51973 void extra_style_parser(style_parser s);
51975 void check_style(int style) const;
51978 void init(const std::vector<std::string>& args);
51981 finish_option(option& opt,
51982 std::vector<std::string>& other_tokens);
51985 std::vector<std::string> args;
51987 bool m_allow_unregistered;
51989 const options_description* m_desc;
51990 const positional_options_description* m_positional;
51992 additional_parser m_additional_parser;
51993 style_parser m_style_parser;
51996 void test_cmdline_detail();
51999 # 13 "/usr/include/boost/program_options/parsers.hpp" 2 3 4
52001 # 1 "/usr/include/boost/function/function1.hpp" 1 3 4
52002 # 11 "/usr/include/boost/function/function1.hpp" 3 4
52003 # 1 "/usr/include/boost/function/detail/maybe_include.hpp" 1 3 4
52004 # 12 "/usr/include/boost/function/function1.hpp" 2 3 4
52005 # 15 "/usr/include/boost/program_options/parsers.hpp" 2 3 4
52011 namespace boost { namespace program_options {
52013 class options_description;
52014 class positional_options_description;
52022 template<class charT>
52023 class basic_parsed_options {
52025 explicit basic_parsed_options(const options_description* description)
52026 : description(description) {}
52028 std::vector< basic_option<charT> > options;
52034 const options_description* description;
52042 class basic_parsed_options<wchar_t> {
52045 explicit basic_parsed_options(const basic_parsed_options<char>& po);
52047 std::vector< basic_option<wchar_t> > options;
52048 const options_description* description;
52052 basic_parsed_options<char> utf8_encoded_options;
52055 typedef basic_parsed_options<char> parsed_options;
52056 typedef basic_parsed_options<wchar_t> wparsed_options;
52062 typedef function1<std::pair<std::string, std::string>, const std::string&> ext_parser;
52063 # 87 "/usr/include/boost/program_options/parsers.hpp" 3 4
52064 template<class charT>
52065 class basic_command_line_parser : private detail::cmdline {
52070 basic_command_line_parser(const std::vector<
52071 std::basic_string<charT> >& args);
52075 basic_command_line_parser(int argc, charT* argv[]);
52078 basic_command_line_parser& options(const options_description& desc);
52080 basic_command_line_parser& positional(
52081 const positional_options_description& desc);
52084 basic_command_line_parser& style(int);
52086 basic_command_line_parser& extra_parser(ext_parser);
52091 basic_parsed_options<charT> run();
52092 # 124 "/usr/include/boost/program_options/parsers.hpp" 3 4
52093 basic_command_line_parser& allow_unregistered();
52095 using detail::cmdline::style_parser;
52097 basic_command_line_parser& extra_style_parser(style_parser s);
52100 const options_description* m_desc;
52103 typedef basic_command_line_parser<char> command_line_parser;
52104 typedef basic_command_line_parser<wchar_t> wcommand_line_parser;
52109 template<class charT>
52110 basic_parsed_options<charT>
52111 parse_command_line(int argc, charT* argv[],
52112 const options_description&,
52114 function1<std::pair<std::string, std::string>,
52115 const std::string&> ext
52120 template<class charT>
52124 basic_parsed_options<charT>
52125 parse_config_file(std::basic_istream<charT>&, const options_description&);
52129 enum collect_unrecognized_mode
52130 { include_positional, exclude_positional };
52138 template<class charT>
52139 std::vector< std::basic_string<charT> >
52140 collect_unrecognized(const std::vector< basic_option<charT> >& options,
52141 enum collect_unrecognized_mode mode);
52142 # 183 "/usr/include/boost/program_options/parsers.hpp" 3 4
52144 parse_environment(const options_description&,
52145 const function1<std::string, std::string>& name_mapper);
52154 parse_environment(const options_description&, const std::string& prefix);
52162 parse_environment(const options_description&, const char* prefix);
52163 # 222 "/usr/include/boost/program_options/parsers.hpp" 3 4
52168 # 1 "/usr/include/boost/program_options/detail/parsers.hpp" 1 3 4
52169 # 9 "/usr/include/boost/program_options/detail/parsers.hpp" 3 4
52170 # 1 "/usr/include/boost/program_options/detail/convert.hpp" 1 3 4
52171 # 30 "/usr/include/boost/program_options/detail/convert.hpp" 3 4
52177 from_8_bit(const std::string& s,
52178 const std::codecvt<wchar_t, char, std::mbstate_t>& cvt);
52183 to_8_bit(const std::wstring& s,
52184 const std::codecvt<wchar_t, char, std::mbstate_t>& cvt);
52190 from_utf8(const std::string& s);
52194 to_utf8(const std::wstring& s);
52199 to_local_8_bit(const std::wstring& s);
52204 from_local_8_bit(const std::string& s);
52206 namespace program_options
52212 std::string to_internal(const std::string&);
52214 std::string to_internal(const std::wstring&);
52217 std::vector<std::string> to_internal(const std::vector<T>& s)
52219 std::vector<std::string> result;
52220 for (unsigned i = 0; i < s.size(); ++i)
52221 result.push_back(to_internal(s[i]));
52230 # 10 "/usr/include/boost/program_options/detail/parsers.hpp" 2 3 4
52232 namespace boost { namespace program_options {
52235 template<class charT, class Iterator>
52236 std::vector<std::basic_string<charT> >
52237 make_vector(Iterator i, Iterator e)
52239 std::vector<std::basic_string<charT> > result;
52243 result.push_back(*i);
52248 template<class charT>
52249 basic_command_line_parser<charT>::
52250 basic_command_line_parser(const std::vector<
52251 std::basic_string<charT> >& args)
52252 : detail::cmdline(to_internal(args))
52256 template<class charT>
52257 basic_command_line_parser<charT>::
52258 basic_command_line_parser(int argc, charT* argv[])
52262 to_internal(detail::make_vector<charT, charT**>(argv+1, argv+argc)))
52266 template<class charT>
52267 basic_command_line_parser<charT>&
52268 basic_command_line_parser<charT>::options(const options_description& desc)
52270 detail::cmdline::set_options_description(desc);
52275 template<class charT>
52276 basic_command_line_parser<charT>&
52277 basic_command_line_parser<charT>::positional(
52278 const positional_options_description& desc)
52280 detail::cmdline::set_positional_options(desc);
52284 template<class charT>
52285 basic_command_line_parser<charT>&
52286 basic_command_line_parser<charT>::style(int style)
52288 detail::cmdline::style(style);
52292 template<class charT>
52293 basic_command_line_parser<charT>&
52294 basic_command_line_parser<charT>::extra_parser(ext_parser ext)
52296 detail::cmdline::set_additional_parser(ext);
52300 template<class charT>
52301 basic_command_line_parser<charT>&
52302 basic_command_line_parser<charT>::allow_unregistered()
52304 detail::cmdline::allow_unregistered();
52308 template<class charT>
52309 basic_command_line_parser<charT>&
52310 basic_command_line_parser<charT>::extra_style_parser(style_parser s)
52312 detail::cmdline::extra_style_parser(s);
52318 template<class charT>
52319 basic_parsed_options<charT>
52320 basic_command_line_parser<charT>::run()
52322 parsed_options result(m_desc);
52323 result.options = detail::cmdline::run();
52327 return basic_parsed_options<charT>(result);
52331 template<class charT>
52332 basic_parsed_options<charT>
52333 parse_command_line(int argc, charT* argv[],
52334 const options_description& desc,
52336 function1<std::pair<std::string, std::string>,
52337 const std::string&> ext)
52339 return basic_command_line_parser<charT>(argc, argv).options(desc).
52340 style(style).extra_parser(ext).run();
52343 template<class charT>
52344 std::vector< std::basic_string<charT> >
52345 collect_unrecognized(const std::vector< basic_option<charT> >& options,
52346 enum collect_unrecognized_mode mode)
52348 std::vector< std::basic_string<charT> > result;
52349 for(unsigned i = 0; i < options.size(); ++i)
52351 if (options[i].unregistered ||
52352 (mode == include_positional && options[i].position_key != -1))
52354 copy(options[i].original_tokens.begin(),
52355 options[i].original_tokens.end(),
52356 back_inserter(result));
52364 # 227 "/usr/include/boost/program_options/parsers.hpp" 2 3 4
52365 # 16 "/usr/include/boost/program_options.hpp" 2 3 4
52366 # 1 "/usr/include/boost/program_options/variables_map.hpp" 1 3 4
52367 # 19 "/usr/include/boost/program_options/variables_map.hpp" 3 4
52368 namespace boost { namespace program_options {
52370 template<class charT>
52371 class basic_parsed_options;
52373 class value_semantic;
52374 class variables_map;
52382 void store(const basic_parsed_options<char>& options, variables_map& m,
52383 bool utf8 = false);
52390 void store(const basic_parsed_options<wchar_t>& options,
52395 void notify(variables_map& m);
52400 class variable_value {
52402 variable_value() : m_defaulted(false) {}
52403 variable_value(const boost::any& v, bool defaulted)
52404 : v(v), m_defaulted(defaulted)
52410 const T& as() const {
52411 return boost::any_cast<const T&>(v);
52416 return boost::any_cast<T&>(v);
52420 bool empty() const;
52423 bool defaulted() const;
52425 const boost::any& value() const;
52428 boost::any& value();
52437 shared_ptr<const value_semantic> m_value_semantic;
52439 friend void store(const basic_parsed_options<char>& options,
52440 variables_map& m, bool);
52441 friend void notify(variables_map& m);
52446 class abstract_variables_map {
52448 abstract_variables_map();
52449 abstract_variables_map(const abstract_variables_map* next);
52451 virtual ~abstract_variables_map() {}
52452 # 118 "/usr/include/boost/program_options/variables_map.hpp" 3 4
52453 const variable_value& operator[](const std::string& name) const;
52457 void next(abstract_variables_map* next);
52462 virtual const variable_value& get(const std::string& name) const = 0;
52464 const abstract_variables_map* m_next;
52472 class variables_map : public abstract_variables_map,
52473 public std::map<std::string, variable_value>
52477 variables_map(const abstract_variables_map* next);
52480 const variable_value& operator[](const std::string& name) const
52481 { return abstract_variables_map::operator[](name); }
52486 const variable_value& get(const std::string& name) const;
52490 std::set<std::string> m_final;
52492 friend void store(const basic_parsed_options<char>& options,
52503 variable_value::empty() const
52509 variable_value::defaulted() const
52511 return m_defaulted;
52516 variable_value::value() const
52523 variable_value::value()
52529 # 17 "/usr/include/boost/program_options.hpp" 2 3 4
52534 # 1 "/usr/include/boost/program_options/version.hpp" 1 3 4
52535 # 22 "/usr/include/boost/program_options.hpp" 2 3 4
52536 # 5 "genfield.cxx" 2
52538 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/iostream" 1 3
52539 # 42 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/iostream" 3
52541 # 43 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/iostream" 3
52547 namespace std __attribute__ ((__visibility__ ("default"))) {
52548 # 63 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/iostream" 3
52549 extern istream cin;
52550 extern ostream cout;
52551 extern ostream cerr;
52552 extern ostream clog;
52555 extern wistream wcin;
52556 extern wostream wcout;
52557 extern wostream wcerr;
52558 extern wostream wclog;
52563 static ios_base::Init __ioinit;
52566 # 7 "genfield.cxx" 2
52567 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/fstream" 1 3
52568 # 43 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/fstream" 3
52570 # 44 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/fstream" 3
52576 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/x86_64-pc-linux-gnu/bits/basic_file.h" 1 3
52577 # 43 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/x86_64-pc-linux-gnu/bits/basic_file.h" 3
52579 # 44 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/x86_64-pc-linux-gnu/bits/basic_file.h" 3
52584 namespace std __attribute__ ((__visibility__ ("default"))) {
52587 template<typename _CharT>
52588 class __basic_file;
52592 class __basic_file<char>
52595 __c_file* _M_cfile;
52598 bool _M_cfile_created;
52601 __basic_file(__c_lock* __lock = 0);
52604 open(const char* __name, ios_base::openmode __mode, int __prot = 0664);
52607 sys_open(__c_file* __file, ios_base::openmode);
52610 sys_open(int __fd, ios_base::openmode __mode);
52627 xsputn(const char* __s, streamsize __n);
52630 xsputn_2(const char* __s1, streamsize __n1,
52631 const char* __s2, streamsize __n2);
52634 xsgetn(char* __s, streamsize __n);
52637 seekoff(streamoff __off, ios_base::seekdir __way);
52647 # 50 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/fstream" 2 3
52650 namespace std __attribute__ ((__visibility__ ("default"))) {
52651 # 68 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/fstream" 3
52652 template<typename _CharT, typename _Traits>
52653 class basic_filebuf : public basic_streambuf<_CharT, _Traits>
52657 typedef _CharT char_type;
52658 typedef _Traits traits_type;
52659 typedef typename traits_type::int_type int_type;
52660 typedef typename traits_type::pos_type pos_type;
52661 typedef typename traits_type::off_type off_type;
52663 typedef basic_streambuf<char_type, traits_type> __streambuf_type;
52664 typedef basic_filebuf<char_type, traits_type> __filebuf_type;
52665 typedef __basic_file<char> __file_type;
52666 typedef typename traits_type::state_type __state_type;
52667 typedef codecvt<char_type, char, __state_type> __codecvt_type;
52669 friend class ios_base;
52677 __file_type _M_file;
52684 ios_base::openmode _M_mode;
52687 __state_type _M_state_beg;
52692 __state_type _M_state_cur;
52696 __state_type _M_state_last;
52704 # 128 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/fstream" 3
52705 size_t _M_buf_size;
52708 bool _M_buf_allocated;
52709 # 142 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/fstream" 3
52712 # 153 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/fstream" 3
52713 char_type _M_pback;
52714 char_type* _M_pback_cur_save;
52715 char_type* _M_pback_end_save;
52716 bool _M_pback_init;
52720 const __codecvt_type* _M_codecvt;
52721 # 169 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/fstream" 3
52729 streamsize _M_ext_buf_size;
52730 # 185 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/fstream" 3
52731 const char* _M_ext_next;
52733 # 195 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/fstream" 3
52737 if (!_M_pback_init)
52739 _M_pback_cur_save = this->gptr();
52740 _M_pback_end_save = this->egptr();
52741 this->setg(&_M_pback, &_M_pback, &_M_pback + 1);
52742 _M_pback_init = true;
52745 # 214 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/fstream" 3
52747 _M_destroy_pback() throw()
52752 _M_pback_cur_save += this->gptr() != this->eback();
52753 this->setg(_M_buf, _M_pback_cur_save, _M_pback_end_save);
52754 _M_pback_init = false;
52780 is_open() const throw()
52781 { return _M_file.is_open(); }
52782 # 285 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/fstream" 3
52784 open(const char* __s, ios_base::openmode __mode);
52785 # 299 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/fstream" 3
52791 _M_allocate_internal_buffer();
52794 _M_destroy_internal_buffer() throw();
52809 pbackfail(int_type __c = _Traits::eof());
52810 # 331 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/fstream" 3
52812 overflow(int_type __c = _Traits::eof());
52817 _M_convert_to_external(char_type*, streamsize);
52818 # 351 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/fstream" 3
52819 virtual __streambuf_type*
52820 setbuf(char_type* __s, streamsize __n);
52823 seekoff(off_type __off, ios_base::seekdir __way,
52824 ios_base::openmode __mode = ios_base::in | ios_base::out);
52827 seekpos(pos_type __pos,
52828 ios_base::openmode __mode = ios_base::in | ios_base::out);
52832 _M_seek(off_type __off, ios_base::seekdir __way, __state_type __state);
52838 imbue(const locale& __loc);
52841 xsgetn(char_type* __s, streamsize __n);
52844 xsputn(const char_type* __s, streamsize __n);
52848 _M_terminate_output();
52849 # 396 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/fstream" 3
52851 _M_set_buffer(streamsize __off)
52853 const bool __testin = _M_mode & ios_base::in;
52854 const bool __testout = _M_mode & ios_base::out;
52856 if (__testin && __off > 0)
52857 this->setg(_M_buf, _M_buf, _M_buf + __off);
52859 this->setg(_M_buf, _M_buf, _M_buf);
52861 if (__testout && __off == 0 && _M_buf_size > 1 )
52862 this->setp(_M_buf, _M_buf + _M_buf_size - 1);
52864 this->setp(__null, __null);
52867 # 423 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/fstream" 3
52868 template<typename _CharT, typename _Traits>
52869 class basic_ifstream : public basic_istream<_CharT, _Traits>
52873 typedef _CharT char_type;
52874 typedef _Traits traits_type;
52875 typedef typename traits_type::int_type int_type;
52876 typedef typename traits_type::pos_type pos_type;
52877 typedef typename traits_type::off_type off_type;
52880 typedef basic_filebuf<char_type, traits_type> __filebuf_type;
52881 typedef basic_istream<char_type, traits_type> __istream_type;
52884 __filebuf_type _M_filebuf;
52887 # 450 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/fstream" 3
52888 basic_ifstream() : __istream_type(), _M_filebuf()
52889 { this->init(&_M_filebuf); }
52890 # 463 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/fstream" 3
52892 basic_ifstream(const char* __s, ios_base::openmode __mode = ios_base::in)
52893 : __istream_type(), _M_filebuf()
52895 this->init(&_M_filebuf);
52896 this->open(__s, __mode);
52907 # 487 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/fstream" 3
52910 { return const_cast<__filebuf_type*>(&_M_filebuf); }
52918 { return _M_filebuf.is_open(); }
52924 { return _M_filebuf.is_open(); }
52925 # 516 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/fstream" 3
52927 open(const char* __s, ios_base::openmode __mode = ios_base::in)
52929 if (!_M_filebuf.open(__s, __mode | ios_base::in))
52930 this->setstate(ios_base::failbit);
52946 if (!_M_filebuf.close())
52947 this->setstate(ios_base::failbit);
52950 # 551 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/fstream" 3
52951 template<typename _CharT, typename _Traits>
52952 class basic_ofstream : public basic_ostream<_CharT,_Traits>
52956 typedef _CharT char_type;
52957 typedef _Traits traits_type;
52958 typedef typename traits_type::int_type int_type;
52959 typedef typename traits_type::pos_type pos_type;
52960 typedef typename traits_type::off_type off_type;
52963 typedef basic_filebuf<char_type, traits_type> __filebuf_type;
52964 typedef basic_ostream<char_type, traits_type> __ostream_type;
52967 __filebuf_type _M_filebuf;
52970 # 578 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/fstream" 3
52971 basic_ofstream(): __ostream_type(), _M_filebuf()
52972 { this->init(&_M_filebuf); }
52973 # 592 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/fstream" 3
52975 basic_ofstream(const char* __s,
52976 ios_base::openmode __mode = ios_base::out|ios_base::trunc)
52977 : __ostream_type(), _M_filebuf()
52979 this->init(&_M_filebuf);
52980 this->open(__s, __mode);
52991 # 617 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/fstream" 3
52994 { return const_cast<__filebuf_type*>(&_M_filebuf); }
53002 { return _M_filebuf.is_open(); }
53008 { return _M_filebuf.is_open(); }
53009 # 646 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/fstream" 3
53011 open(const char* __s,
53012 ios_base::openmode __mode = ios_base::out | ios_base::trunc)
53014 if (!_M_filebuf.open(__s, __mode | ios_base::out))
53015 this->setstate(ios_base::failbit);
53031 if (!_M_filebuf.close())
53032 this->setstate(ios_base::failbit);
53035 # 682 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/fstream" 3
53036 template<typename _CharT, typename _Traits>
53037 class basic_fstream : public basic_iostream<_CharT, _Traits>
53041 typedef _CharT char_type;
53042 typedef _Traits traits_type;
53043 typedef typename traits_type::int_type int_type;
53044 typedef typename traits_type::pos_type pos_type;
53045 typedef typename traits_type::off_type off_type;
53048 typedef basic_filebuf<char_type, traits_type> __filebuf_type;
53049 typedef basic_ios<char_type, traits_type> __ios_type;
53050 typedef basic_iostream<char_type, traits_type> __iostream_type;
53053 __filebuf_type _M_filebuf;
53056 # 710 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/fstream" 3
53058 : __iostream_type(), _M_filebuf()
53059 { this->init(&_M_filebuf); }
53060 # 722 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/fstream" 3
53062 basic_fstream(const char* __s,
53063 ios_base::openmode __mode = ios_base::in | ios_base::out)
53064 : __iostream_type(__null), _M_filebuf()
53066 this->init(&_M_filebuf);
53067 this->open(__s, __mode);
53078 # 747 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/fstream" 3
53081 { return const_cast<__filebuf_type*>(&_M_filebuf); }
53089 { return _M_filebuf.is_open(); }
53095 { return _M_filebuf.is_open(); }
53096 # 776 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/fstream" 3
53098 open(const char* __s,
53099 ios_base::openmode __mode = ios_base::in | ios_base::out)
53101 if (!_M_filebuf.open(__s, __mode))
53102 this->setstate(ios_base::failbit);
53118 if (!_M_filebuf.close())
53119 this->setstate(ios_base::failbit);
53126 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/fstream.tcc" 1 3
53127 # 43 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/fstream.tcc" 3
53129 # 44 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/fstream.tcc" 3
53131 namespace std __attribute__ ((__visibility__ ("default"))) {
53133 template<typename _CharT, typename _Traits>
53135 basic_filebuf<_CharT, _Traits>::
53136 _M_allocate_internal_buffer()
53140 if (!_M_buf_allocated && !_M_buf)
53142 _M_buf = new char_type[_M_buf_size];
53143 _M_buf_allocated = true;
53147 template<typename _CharT, typename _Traits>
53149 basic_filebuf<_CharT, _Traits>::
53150 _M_destroy_internal_buffer() throw()
53152 if (_M_buf_allocated)
53156 _M_buf_allocated = false;
53158 delete [] _M_ext_buf;
53159 _M_ext_buf = __null;
53160 _M_ext_buf_size = 0;
53161 _M_ext_next = __null;
53162 _M_ext_end = __null;
53165 template<typename _CharT, typename _Traits>
53166 basic_filebuf<_CharT, _Traits>::
53167 basic_filebuf() : __streambuf_type(), _M_lock(), _M_file(&_M_lock),
53168 _M_mode(ios_base::openmode(0)), _M_state_beg(), _M_state_cur(),
53169 _M_state_last(), _M_buf(__null), _M_buf_size(8192),
53170 _M_buf_allocated(false), _M_reading(false), _M_writing(false), _M_pback(),
53171 _M_pback_cur_save(0), _M_pback_end_save(0), _M_pback_init(false),
53172 _M_codecvt(0), _M_ext_buf(0), _M_ext_buf_size(0), _M_ext_next(0),
53175 if (has_facet<__codecvt_type>(this->_M_buf_locale))
53176 _M_codecvt = &use_facet<__codecvt_type>(this->_M_buf_locale);
53179 template<typename _CharT, typename _Traits>
53180 typename basic_filebuf<_CharT, _Traits>::__filebuf_type*
53181 basic_filebuf<_CharT, _Traits>::
53182 open(const char* __s, ios_base::openmode __mode)
53184 __filebuf_type *__ret = __null;
53185 if (!this->is_open())
53187 _M_file.open(__s, __mode);
53188 if (this->is_open())
53190 _M_allocate_internal_buffer();
53194 _M_reading = false;
53195 _M_writing = false;
53199 _M_state_last = _M_state_cur = _M_state_beg;
53202 if ((__mode & ios_base::ate)
53203 && this->seekoff(0, ios_base::end, __mode)
53204 == pos_type(off_type(-1)))
53213 template<typename _CharT, typename _Traits>
53214 typename basic_filebuf<_CharT, _Traits>::__filebuf_type*
53215 basic_filebuf<_CharT, _Traits>::
53218 __filebuf_type* __ret = __null;
53219 if (this->is_open())
53221 bool __testfail = false;
53224 if (!_M_terminate_output())
53228 { __testfail = true; }
53231 _M_mode = ios_base::openmode(0);
53232 _M_pback_init = false;
53233 _M_destroy_internal_buffer();
53234 _M_reading = false;
53235 _M_writing = false;
53237 _M_state_last = _M_state_cur = _M_state_beg;
53239 if (!_M_file.close())
53248 template<typename _CharT, typename _Traits>
53250 basic_filebuf<_CharT, _Traits>::
53253 streamsize __ret = -1;
53254 const bool __testin = _M_mode & ios_base::in;
53255 if (__testin && this->is_open())
53259 __ret = this->egptr() - this->gptr();
53267 if (__check_facet(_M_codecvt).encoding() >= 0)
53269 __ret += _M_file.showmanyc() / _M_codecvt->max_length();
53274 template<typename _CharT, typename _Traits>
53275 typename basic_filebuf<_CharT, _Traits>::int_type
53276 basic_filebuf<_CharT, _Traits>::
53279 int_type __ret = traits_type::eof();
53280 const bool __testin = _M_mode & ios_base::in;
53281 if (__testin && !_M_writing)
53286 _M_destroy_pback();
53288 if (this->gptr() < this->egptr())
53289 return traits_type::to_int_type(*this->gptr());
53292 const size_t __buflen = _M_buf_size > 1 ? _M_buf_size - 1 : 1;
53295 bool __got_eof = false;
53297 streamsize __ilen = 0;
53298 codecvt_base::result __r = codecvt_base::ok;
53299 if (__check_facet(_M_codecvt).always_noconv())
53301 __ilen = _M_file.xsgetn(reinterpret_cast<char*>(this->eback()),
53310 const int __enc = _M_codecvt->encoding();
53314 __blen = __rlen = __buflen * __enc;
53317 __blen = __buflen + _M_codecvt->max_length() - 1;
53320 const streamsize __remainder = _M_ext_end - _M_ext_next;
53321 __rlen = __rlen > __remainder ? __rlen - __remainder : 0;
53325 if (_M_reading && this->egptr() == this->eback() && __remainder)
53330 if (_M_ext_buf_size < __blen)
53332 char* __buf = new char[__blen];
53334 std::memcpy(__buf, _M_ext_next, __remainder);
53336 delete [] _M_ext_buf;
53337 _M_ext_buf = __buf;
53338 _M_ext_buf_size = __blen;
53340 else if (__remainder)
53341 std::memmove(_M_ext_buf, _M_ext_next, __remainder);
53343 _M_ext_next = _M_ext_buf;
53344 _M_ext_end = _M_ext_buf + __remainder;
53345 _M_state_last = _M_state_cur;
53354 if (_M_ext_end - _M_ext_buf + __rlen > _M_ext_buf_size)
53356 __throw_ios_failure(("basic_filebuf::underflow " "codecvt::max_length() " "is not valid"));
53360 streamsize __elen = _M_file.xsgetn(_M_ext_end, __rlen);
53363 else if (__elen == -1)
53365 _M_ext_end += __elen;
53369 __r = _M_codecvt->in(_M_state_cur, _M_ext_next,
53370 _M_ext_end, _M_ext_next, this->eback(),
53371 this->eback() + __buflen, __iend);
53372 if (__r == codecvt_base::noconv)
53374 size_t __avail = _M_ext_end - _M_ext_buf;
53375 __ilen = std::min(__avail, __buflen);
53376 traits_type::copy(this->eback(),
53377 reinterpret_cast<char_type*>(_M_ext_buf), __ilen);
53378 _M_ext_next = _M_ext_buf + __ilen;
53381 __ilen = __iend - this->eback();
53386 if (__r == codecvt_base::error)
53391 while (__ilen == 0 && !__got_eof);
53396 _M_set_buffer(__ilen);
53398 __ret = traits_type::to_int_type(*this->gptr());
53400 else if (__got_eof)
53406 _M_reading = false;
53409 if (__r == codecvt_base::partial)
53410 __throw_ios_failure(("basic_filebuf::underflow " "incomplete character in file"));
53413 else if (__r == codecvt_base::error)
53414 __throw_ios_failure(("basic_filebuf::underflow " "invalid byte sequence in file"));
53417 __throw_ios_failure(("basic_filebuf::underflow " "error reading the file"));
53423 template<typename _CharT, typename _Traits>
53424 typename basic_filebuf<_CharT, _Traits>::int_type
53425 basic_filebuf<_CharT, _Traits>::
53426 pbackfail(int_type __i)
53428 int_type __ret = traits_type::eof();
53429 const bool __testin = _M_mode & ios_base::in;
53430 if (__testin && !_M_writing)
53434 const bool __testpb = _M_pback_init;
53435 const bool __testeof = traits_type::eq_int_type(__i, __ret);
53437 if (this->eback() < this->gptr())
53440 __tmp = traits_type::to_int_type(*this->gptr());
53442 else if (this->seekoff(-1, ios_base::cur) != pos_type(off_type(-1)))
53444 __tmp = this->underflow();
53445 if (traits_type::eq_int_type(__tmp, __ret))
53460 if (!__testeof && traits_type::eq_int_type(__i, __tmp))
53462 else if (__testeof)
53463 __ret = traits_type::not_eof(__i);
53464 else if (!__testpb)
53468 *this->gptr() = traits_type::to_char_type(__i);
53475 template<typename _CharT, typename _Traits>
53476 typename basic_filebuf<_CharT, _Traits>::int_type
53477 basic_filebuf<_CharT, _Traits>::
53478 overflow(int_type __c)
53480 int_type __ret = traits_type::eof();
53481 const bool __testeof = traits_type::eq_int_type(__c, __ret);
53482 const bool __testout = _M_mode & ios_base::out;
53483 if (__testout && !_M_reading)
53485 if (this->pbase() < this->pptr())
53490 *this->pptr() = traits_type::to_char_type(__c);
53496 if (_M_convert_to_external(this->pbase(),
53497 this->pptr() - this->pbase()))
53500 __ret = traits_type::not_eof(__c);
53503 else if (_M_buf_size > 1)
53512 *this->pptr() = traits_type::to_char_type(__c);
53515 __ret = traits_type::not_eof(__c);
53520 char_type __conv = traits_type::to_char_type(__c);
53521 if (__testeof || _M_convert_to_external(&__conv, 1))
53524 __ret = traits_type::not_eof(__c);
53531 template<typename _CharT, typename _Traits>
53533 basic_filebuf<_CharT, _Traits>::
53534 _M_convert_to_external(_CharT* __ibuf, streamsize __ilen)
53539 if (__check_facet(_M_codecvt).always_noconv())
53541 __elen = _M_file.xsputn(reinterpret_cast<char*>(__ibuf), __ilen);
53548 streamsize __blen = __ilen * _M_codecvt->max_length();
53549 char* __buf = static_cast<char*>(__builtin_alloca(__blen));
53552 const char_type* __iend;
53553 codecvt_base::result __r;
53554 __r = _M_codecvt->out(_M_state_cur, __ibuf, __ibuf + __ilen,
53555 __iend, __buf, __buf + __blen, __bend);
53557 if (__r == codecvt_base::ok || __r == codecvt_base::partial)
53558 __blen = __bend - __buf;
53559 else if (__r == codecvt_base::noconv)
53562 __buf = reinterpret_cast<char*>(__ibuf);
53566 __throw_ios_failure(("basic_filebuf::_M_convert_to_external " "conversion error"));
53569 __elen = _M_file.xsputn(__buf, __blen);
53573 if (__r == codecvt_base::partial && __elen == __plen)
53575 const char_type* __iresume = __iend;
53576 streamsize __rlen = this->pptr() - __iend;
53577 __r = _M_codecvt->out(_M_state_cur, __iresume,
53578 __iresume + __rlen, __iend, __buf,
53579 __buf + __blen, __bend);
53580 if (__r != codecvt_base::error)
53582 __rlen = __bend - __buf;
53583 __elen = _M_file.xsputn(__buf, __rlen);
53587 __throw_ios_failure(("basic_filebuf::_M_convert_to_external " "conversion error"));
53591 return __elen == __plen;
53594 template<typename _CharT, typename _Traits>
53596 basic_filebuf<_CharT, _Traits>::
53597 xsgetn(_CharT* __s, streamsize __n)
53600 streamsize __ret = 0;
53603 if (__n > 0 && this->gptr() == this->eback())
53605 *__s++ = *this->gptr();
53610 _M_destroy_pback();
53616 const bool __testin = _M_mode & ios_base::in;
53617 const streamsize __buflen = _M_buf_size > 1 ? _M_buf_size - 1 : 1;
53619 if (__n > __buflen && __check_facet(_M_codecvt).always_noconv()
53620 && __testin && !_M_writing)
53623 const streamsize __avail = this->egptr() - this->gptr();
53627 *__s = *this->gptr();
53629 traits_type::copy(__s, this->gptr(), __avail);
53631 this->gbump(__avail);
53641 __len = _M_file.xsgetn(reinterpret_cast<char*>(__s),
53644 __throw_ios_failure(("basic_filebuf::xsgetn " "error reading the file"));
53662 else if (__len == 0)
53668 _M_reading = false;
53672 __ret += __streambuf_type::xsgetn(__s, __n);
53677 template<typename _CharT, typename _Traits>
53679 basic_filebuf<_CharT, _Traits>::
53680 xsputn(const _CharT* __s, streamsize __n)
53685 streamsize __ret = 0;
53686 const bool __testout = _M_mode & ios_base::out;
53687 if (__check_facet(_M_codecvt).always_noconv()
53688 && __testout && !_M_reading)
53691 const streamsize __chunk = 1ul << 10;
53692 streamsize __bufavail = this->epptr() - this->pptr();
53695 if (!_M_writing && _M_buf_size > 1)
53696 __bufavail = _M_buf_size - 1;
53698 const streamsize __limit = std::min(__chunk, __bufavail);
53699 if (__n >= __limit)
53701 const streamsize __buffill = this->pptr() - this->pbase();
53702 const char* __buf = reinterpret_cast<const char*>(this->pbase());
53703 __ret = _M_file.xsputn_2(__buf, __buffill,
53704 reinterpret_cast<const char*>(__s),
53706 if (__ret == __buffill + __n)
53711 if (__ret > __buffill)
53712 __ret -= __buffill;
53717 __ret = __streambuf_type::xsputn(__s, __n);
53720 __ret = __streambuf_type::xsputn(__s, __n);
53724 template<typename _CharT, typename _Traits>
53725 typename basic_filebuf<_CharT, _Traits>::__streambuf_type*
53726 basic_filebuf<_CharT, _Traits>::
53727 setbuf(char_type* __s, streamsize __n)
53729 if (!this->is_open())
53730 if (__s == 0 && __n == 0)
53732 else if (__s && __n > 0)
53734 # 656 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/bits/fstream.tcc" 3
53744 template<typename _CharT, typename _Traits>
53745 typename basic_filebuf<_CharT, _Traits>::pos_type
53746 basic_filebuf<_CharT, _Traits>::
53747 seekoff(off_type __off, ios_base::seekdir __way, ios_base::openmode)
53751 __width = _M_codecvt->encoding();
53755 pos_type __ret = pos_type(off_type(-1));
53756 const bool __testfail = __off != 0 && __width <= 0;
53757 if (this->is_open() && !__testfail)
53760 _M_destroy_pback();
53767 __state_type __state = _M_state_beg;
53768 off_type __computed_off = __off * __width;
53769 if (_M_reading && __way == ios_base::cur)
53771 if (_M_codecvt->always_noconv())
53772 __computed_off += this->gptr() - this->egptr();
53778 const int __gptr_off =
53779 _M_codecvt->length(_M_state_last, _M_ext_buf, _M_ext_next,
53780 this->gptr() - this->eback());
53781 __computed_off += _M_ext_buf + __gptr_off - _M_ext_end;
53785 __state = _M_state_last;
53788 __ret = _M_seek(__computed_off, __way, __state);
53797 template<typename _CharT, typename _Traits>
53798 typename basic_filebuf<_CharT, _Traits>::pos_type
53799 basic_filebuf<_CharT, _Traits>::
53800 seekpos(pos_type __pos, ios_base::openmode)
53802 pos_type __ret = pos_type(off_type(-1));
53803 if (this->is_open())
53806 _M_destroy_pback();
53807 __ret = _M_seek(off_type(__pos), ios_base::beg, __pos.state());
53812 template<typename _CharT, typename _Traits>
53813 typename basic_filebuf<_CharT, _Traits>::pos_type
53814 basic_filebuf<_CharT, _Traits>::
53815 _M_seek(off_type __off, ios_base::seekdir __way, __state_type __state)
53817 pos_type __ret = pos_type(off_type(-1));
53818 if (_M_terminate_output())
53821 __ret = pos_type(_M_file.seekoff(__off, __way));
53822 if (__ret != pos_type(off_type(-1)))
53824 _M_reading = false;
53825 _M_writing = false;
53826 _M_ext_next = _M_ext_end = _M_ext_buf;
53828 _M_state_cur = __state;
53829 __ret.state(_M_state_cur);
53835 template<typename _CharT, typename _Traits>
53837 basic_filebuf<_CharT, _Traits>::
53838 _M_terminate_output()
53841 bool __testvalid = true;
53842 if (this->pbase() < this->pptr())
53844 const int_type __tmp = this->overflow();
53845 if (traits_type::eq_int_type(__tmp, traits_type::eof()))
53846 __testvalid = false;
53850 if (_M_writing && !__check_facet(_M_codecvt).always_noconv()
53856 const size_t __blen = 128;
53857 char __buf[__blen];
53858 codecvt_base::result __r;
53859 streamsize __ilen = 0;
53864 __r = _M_codecvt->unshift(_M_state_cur, __buf,
53865 __buf + __blen, __next);
53866 if (__r == codecvt_base::error)
53867 __testvalid = false;
53868 else if (__r == codecvt_base::ok ||
53869 __r == codecvt_base::partial)
53871 __ilen = __next - __buf;
53874 const streamsize __elen = _M_file.xsputn(__buf, __ilen);
53875 if (__elen != __ilen)
53876 __testvalid = false;
53880 while (__r == codecvt_base::partial && __ilen > 0 && __testvalid);
53888 const int_type __tmp = this->overflow();
53889 if (traits_type::eq_int_type(__tmp, traits_type::eof()))
53890 __testvalid = false;
53893 return __testvalid;
53896 template<typename _CharT, typename _Traits>
53898 basic_filebuf<_CharT, _Traits>::
53904 if (this->pbase() < this->pptr())
53906 const int_type __tmp = this->overflow();
53907 if (traits_type::eq_int_type(__tmp, traits_type::eof()))
53913 template<typename _CharT, typename _Traits>
53915 basic_filebuf<_CharT, _Traits>::
53916 imbue(const locale& __loc)
53918 bool __testvalid = true;
53920 const __codecvt_type* _M_codecvt_tmp = 0;
53921 if (__builtin_expect(has_facet<__codecvt_type>(__loc), true))
53922 _M_codecvt_tmp = &use_facet<__codecvt_type>(__loc);
53924 if (this->is_open())
53927 if ((_M_reading || _M_writing)
53928 && __check_facet(_M_codecvt).encoding() == -1)
53929 __testvalid = false;
53934 if (__check_facet(_M_codecvt).always_noconv())
53937 && !__check_facet(_M_codecvt_tmp).always_noconv())
53938 __testvalid = this->seekoff(0, ios_base::cur, _M_mode)
53939 != pos_type(off_type(-1));
53944 _M_ext_next = _M_ext_buf
53945 + _M_codecvt->length(_M_state_last, _M_ext_buf, _M_ext_next,
53946 this->gptr() - this->eback());
53947 const streamsize __remainder = _M_ext_end - _M_ext_next;
53949 std::memmove(_M_ext_buf, _M_ext_next, __remainder);
53951 _M_ext_next = _M_ext_buf;
53952 _M_ext_end = _M_ext_buf + __remainder;
53954 _M_state_last = _M_state_cur = _M_state_beg;
53957 else if (_M_writing && (__testvalid = _M_terminate_output()))
53963 _M_codecvt = _M_codecvt_tmp;
53972 extern template class basic_filebuf<char>;
53973 extern template class basic_ifstream<char>;
53974 extern template class basic_ofstream<char>;
53975 extern template class basic_fstream<char>;
53978 extern template class basic_filebuf<wchar_t>;
53979 extern template class basic_ifstream<wchar_t>;
53980 extern template class basic_ofstream<wchar_t>;
53981 extern template class basic_fstream<wchar_t>;
53986 # 806 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/include/g++-v4/fstream" 2 3
53987 # 8 "genfield.cxx" 2
53989 # 1 "/usr/include/sys/stat.h" 1 3 4
53997 # 1 "/usr/include/gentoo-multilib/amd64/sys/stat.h" 1 3 4
53998 # 27 "/usr/include/gentoo-multilib/amd64/sys/stat.h" 3 4
53999 # 1 "/usr/include/features.h" 1 3 4
54000 # 28 "/usr/include/gentoo-multilib/amd64/sys/stat.h" 2 3 4
54002 # 1 "/usr/include/bits/types.h" 1 3 4
54003 # 30 "/usr/include/gentoo-multilib/amd64/sys/stat.h" 2 3 4
54004 # 39 "/usr/include/gentoo-multilib/amd64/sys/stat.h" 3 4
54005 # 1 "/usr/include/time.h" 1 3 4
54006 # 40 "/usr/include/gentoo-multilib/amd64/sys/stat.h" 2 3 4
54007 # 105 "/usr/include/gentoo-multilib/amd64/sys/stat.h" 3 4
54010 # 1 "/usr/include/bits/stat.h" 1 3 4
54018 # 1 "/usr/include/gentoo-multilib/amd64/bits/stat.h" 1 3 4
54019 # 43 "/usr/include/gentoo-multilib/amd64/bits/stat.h" 3 4
54035 __nlink_t st_nlink;
54052 __blksize_t st_blksize;
54054 __blkcnt_t st_blocks;
54055 # 88 "/usr/include/gentoo-multilib/amd64/bits/stat.h" 3 4
54056 struct timespec st_atim;
54057 struct timespec st_mtim;
54058 struct timespec st_ctim;
54059 # 103 "/usr/include/gentoo-multilib/amd64/bits/stat.h" 3 4
54060 long int __unused[3];
54061 # 112 "/usr/include/gentoo-multilib/amd64/bits/stat.h" 3 4
54071 __nlink_t st_nlink;
54090 __blksize_t st_blksize;
54091 __blkcnt64_t st_blocks;
54099 struct timespec st_atim;
54100 struct timespec st_mtim;
54101 struct timespec st_ctim;
54102 # 164 "/usr/include/gentoo-multilib/amd64/bits/stat.h" 3 4
54103 long int __unused[3];
54108 # 9 "/usr/include/bits/stat.h" 2 3 4
54109 # 108 "/usr/include/gentoo-multilib/amd64/sys/stat.h" 2 3 4
54110 # 209 "/usr/include/gentoo-multilib/amd64/sys/stat.h" 3 4
54111 extern int stat (__const char *__restrict __file,
54112 struct stat *__restrict __buf) throw () __attribute__ ((__nonnull__ (1, 2)));
54116 extern int fstat (int __fd, struct stat *__buf) throw () __attribute__ ((__nonnull__ (2)));
54117 # 228 "/usr/include/gentoo-multilib/amd64/sys/stat.h" 3 4
54118 extern int stat64 (__const char *__restrict __file,
54119 struct stat64 *__restrict __buf) throw () __attribute__ ((__nonnull__ (1, 2)));
54120 extern int fstat64 (int __fd, struct stat64 *__buf) throw () __attribute__ ((__nonnull__ (2)));
54128 extern int fstatat (int __fd, __const char *__restrict __file,
54129 struct stat *__restrict __buf, int __flag)
54130 throw () __attribute__ ((__nonnull__ (2, 3)));
54131 # 252 "/usr/include/gentoo-multilib/amd64/sys/stat.h" 3 4
54132 extern int fstatat64 (int __fd, __const char *__restrict __file,
54133 struct stat64 *__restrict __buf, int __flag)
54134 throw () __attribute__ ((__nonnull__ (2, 3)));
54141 extern int lstat (__const char *__restrict __file,
54142 struct stat *__restrict __buf) throw () __attribute__ ((__nonnull__ (1, 2)));
54143 # 274 "/usr/include/gentoo-multilib/amd64/sys/stat.h" 3 4
54144 extern int lstat64 (__const char *__restrict __file,
54145 struct stat64 *__restrict __buf)
54146 throw () __attribute__ ((__nonnull__ (1, 2)));
54152 extern int chmod (__const char *__file, __mode_t __mode)
54153 throw () __attribute__ ((__nonnull__ (1)));
54159 extern int lchmod (__const char *__file, __mode_t __mode)
54160 throw () __attribute__ ((__nonnull__ (1)));
54165 extern int fchmod (int __fd, __mode_t __mode) throw ();
54171 extern int fchmodat (int __fd, __const char *__file, __mode_t mode, int __flag)
54172 throw () __attribute__ ((__nonnull__ (2))) ;
54179 extern __mode_t umask (__mode_t __mask) throw ();
54184 extern __mode_t getumask (void) throw ();
54188 extern int mkdir (__const char *__path, __mode_t __mode)
54189 throw () __attribute__ ((__nonnull__ (1)));
54195 extern int mkdirat (int __fd, __const char *__path, __mode_t __mode)
54196 throw () __attribute__ ((__nonnull__ (2)));
54203 extern int mknod (__const char *__path, __mode_t __mode, __dev_t __dev)
54204 throw () __attribute__ ((__nonnull__ (1)));
54211 extern int mknodat (int __fd, __const char *__path, __mode_t __mode,
54212 __dev_t __dev) throw () __attribute__ ((__nonnull__ (2)));
54217 extern int mkfifo (__const char *__path, __mode_t __mode)
54218 throw () __attribute__ ((__nonnull__ (1)));
54224 extern int mkfifoat (int __fd, __const char *__path, __mode_t __mode)
54225 throw () __attribute__ ((__nonnull__ (2)));
54231 extern int utimensat (int __fd, __const char *__path,
54232 __const struct timespec __times[2],
54234 throw () __attribute__ ((__nonnull__ (2)));
54240 extern int futimens (int __fd, __const struct timespec __times[2]) throw ();
54241 # 397 "/usr/include/gentoo-multilib/amd64/sys/stat.h" 3 4
54242 extern int __fxstat (int __ver, int __fildes, struct stat *__stat_buf)
54243 throw () __attribute__ ((__nonnull__ (3)));
54244 extern int __xstat (int __ver, __const char *__filename,
54245 struct stat *__stat_buf) throw () __attribute__ ((__nonnull__ (2, 3)));
54246 extern int __lxstat (int __ver, __const char *__filename,
54247 struct stat *__stat_buf) throw () __attribute__ ((__nonnull__ (2, 3)));
54248 extern int __fxstatat (int __ver, int __fildes, __const char *__filename,
54249 struct stat *__stat_buf, int __flag)
54250 throw () __attribute__ ((__nonnull__ (3, 4)));
54251 # 430 "/usr/include/gentoo-multilib/amd64/sys/stat.h" 3 4
54252 extern int __fxstat64 (int __ver, int __fildes, struct stat64 *__stat_buf)
54253 throw () __attribute__ ((__nonnull__ (3)));
54254 extern int __xstat64 (int __ver, __const char *__filename,
54255 struct stat64 *__stat_buf) throw () __attribute__ ((__nonnull__ (2, 3)));
54256 extern int __lxstat64 (int __ver, __const char *__filename,
54257 struct stat64 *__stat_buf) throw () __attribute__ ((__nonnull__ (2, 3)));
54258 extern int __fxstatat64 (int __ver, int __fildes, __const char *__filename,
54259 struct stat64 *__stat_buf, int __flag)
54260 throw () __attribute__ ((__nonnull__ (3, 4)));
54262 extern int __xmknod (int __ver, __const char *__path, __mode_t __mode,
54263 __dev_t *__dev) throw () __attribute__ ((__nonnull__ (2, 4)));
54265 extern int __xmknodat (int __ver, int __fd, __const char *__path,
54266 __mode_t __mode, __dev_t *__dev)
54267 throw () __attribute__ ((__nonnull__ (3, 5)));
54272 extern __inline int
54273 stat (__const char *__path, struct stat *__statbuf) throw ()
54275 return __xstat (1, __path, __statbuf);
54279 extern __inline int
54280 lstat (__const char *__path, struct stat *__statbuf) throw ()
54282 return __lxstat (1, __path, __statbuf);
54286 extern __inline int
54287 fstat (int __fd, struct stat *__statbuf) throw ()
54289 return __fxstat (1, __fd, __statbuf);
54293 extern __inline int
54294 fstatat (int __fd, __const char *__filename, struct stat *__statbuf, int __flag) throw ()
54297 return __fxstatat (1, __fd, __filename, __statbuf, __flag);
54302 extern __inline int
54303 mknod (__const char *__path, __mode_t __mode, __dev_t __dev) throw ()
54305 return __xmknod (0, __path, __mode, &__dev);
54310 extern __inline int
54311 mknodat (int __fd, __const char *__path, __mode_t __mode, __dev_t __dev) throw ()
54314 return __xmknodat (0, __fd, __path, __mode, &__dev);
54321 extern __inline int
54322 stat64 (__const char *__path, struct stat64 *__statbuf) throw ()
54324 return __xstat64 (1, __path, __statbuf);
54328 extern __inline int
54329 lstat64 (__const char *__path, struct stat64 *__statbuf) throw ()
54331 return __lxstat64 (1, __path, __statbuf);
54335 extern __inline int
54336 fstat64 (int __fd, struct stat64 *__statbuf) throw ()
54338 return __fxstat64 (1, __fd, __statbuf);
54342 extern __inline int
54343 fstatat64 (int __fd, __const char *__filename, struct stat64 *__statbuf, int __flag) throw ()
54346 return __fxstatat64 (1, __fd, __filename, __statbuf, __flag);
54355 # 9 "/usr/include/sys/stat.h" 2 3 4
54356 # 10 "genfield.cxx" 2
54357 # 1 "/usr/include/fcntl.h" 1 3 4
54365 # 1 "/usr/include/gentoo-multilib/amd64/fcntl.h" 1 3 4
54366 # 27 "/usr/include/gentoo-multilib/amd64/fcntl.h" 3 4
54367 # 1 "/usr/include/features.h" 1 3 4
54368 # 28 "/usr/include/gentoo-multilib/amd64/fcntl.h" 2 3 4
54375 # 1 "/usr/include/bits/fcntl.h" 1 3 4
54383 # 1 "/usr/include/gentoo-multilib/amd64/bits/fcntl.h" 1 3 4
54384 # 24 "/usr/include/gentoo-multilib/amd64/bits/fcntl.h" 3 4
54385 # 1 "/usr/include/sys/types.h" 1 3 4
54386 # 25 "/usr/include/gentoo-multilib/amd64/bits/fcntl.h" 2 3 4
54387 # 1 "/usr/include/bits/wordsize.h" 1 3 4
54395 # 1 "/usr/include/gentoo-multilib/amd64/bits/wordsize.h" 1 3 4
54396 # 9 "/usr/include/bits/wordsize.h" 2 3 4
54397 # 26 "/usr/include/gentoo-multilib/amd64/bits/fcntl.h" 2 3 4
54399 # 1 "/usr/include/bits/uio.h" 1 3 4
54407 # 1 "/usr/include/gentoo-multilib/amd64/bits/uio.h" 1 3 4
54408 # 26 "/usr/include/gentoo-multilib/amd64/bits/uio.h" 3 4
54409 # 1 "/usr/include/sys/types.h" 1 3 4
54410 # 27 "/usr/include/gentoo-multilib/amd64/bits/uio.h" 2 3 4
54411 # 44 "/usr/include/gentoo-multilib/amd64/bits/uio.h" 3 4
54417 # 9 "/usr/include/bits/uio.h" 2 3 4
54418 # 28 "/usr/include/gentoo-multilib/amd64/bits/fcntl.h" 2 3 4
54419 # 155 "/usr/include/gentoo-multilib/amd64/bits/fcntl.h" 3 4
54423 short int l_whence;
54438 short int l_whence;
54443 # 222 "/usr/include/gentoo-multilib/amd64/bits/fcntl.h" 3 4
54449 extern ssize_t readahead (int __fd, __off64_t __offset, size_t __count)
54454 extern int sync_file_range (int __fd, __off64_t __from, __off64_t __to,
54455 unsigned int __flags);
54459 extern int vmsplice (int __fdout, const struct iovec *__iov, size_t __count,
54460 unsigned int __flags);
54463 extern int splice (int __fdin, __off64_t *__offin, int __fdout,
54464 __off64_t *__offout, size_t __len, unsigned int __flags)
54468 extern int tee (int __fdin, int __fdout, size_t __len, unsigned int __flags)
54474 # 9 "/usr/include/bits/fcntl.h" 2 3 4
54475 # 35 "/usr/include/gentoo-multilib/amd64/fcntl.h" 2 3 4
54479 # 1 "/usr/include/sys/stat.h" 1 3 4
54480 # 39 "/usr/include/gentoo-multilib/amd64/fcntl.h" 2 3 4
54481 # 76 "/usr/include/gentoo-multilib/amd64/fcntl.h" 3 4
54482 extern int fcntl (int __fd, int __cmd, ...);
54483 # 85 "/usr/include/gentoo-multilib/amd64/fcntl.h" 3 4
54484 extern int open (__const char *__file, int __oflag, ...) __attribute__ ((__nonnull__ (1)));
54485 # 95 "/usr/include/gentoo-multilib/amd64/fcntl.h" 3 4
54486 extern int open64 (__const char *__file, int __oflag, ...) __attribute__ ((__nonnull__ (1)));
54487 # 109 "/usr/include/gentoo-multilib/amd64/fcntl.h" 3 4
54488 extern int openat (int __fd, __const char *__file, int __oflag, ...)
54489 __attribute__ ((__nonnull__ (2)));
54490 # 120 "/usr/include/gentoo-multilib/amd64/fcntl.h" 3 4
54491 extern int openat64 (int __fd, __const char *__file, int __oflag, ...)
54492 __attribute__ ((__nonnull__ (2)));
54493 # 130 "/usr/include/gentoo-multilib/amd64/fcntl.h" 3 4
54494 extern int creat (__const char *__file, __mode_t __mode) __attribute__ ((__nonnull__ (1)));
54495 # 140 "/usr/include/gentoo-multilib/amd64/fcntl.h" 3 4
54496 extern int creat64 (__const char *__file, __mode_t __mode) __attribute__ ((__nonnull__ (1)));
54497 # 176 "/usr/include/gentoo-multilib/amd64/fcntl.h" 3 4
54498 extern int posix_fadvise (int __fd, __off_t __offset, __off_t __len,
54499 int __advise) throw ();
54500 # 188 "/usr/include/gentoo-multilib/amd64/fcntl.h" 3 4
54501 extern int posix_fadvise64 (int __fd, __off64_t __offset, __off64_t __len,
54502 int __advise) throw ();
54503 # 198 "/usr/include/gentoo-multilib/amd64/fcntl.h" 3 4
54504 extern int posix_fallocate (int __fd, __off_t __offset, __off_t __len);
54505 # 209 "/usr/include/gentoo-multilib/amd64/fcntl.h" 3 4
54506 extern int posix_fallocate64 (int __fd, __off64_t __offset, __off64_t __len);
54511 # 9 "/usr/include/fcntl.h" 2 3 4
54512 # 11 "genfield.cxx" 2
54513 # 1 "/usr/include/math.h" 1 3 4
54521 # 1 "/usr/include/gentoo-multilib/amd64/math.h" 1 3 4
54522 # 28 "/usr/include/gentoo-multilib/amd64/math.h" 3 4
54523 # 1 "/usr/include/features.h" 1 3 4
54524 # 29 "/usr/include/gentoo-multilib/amd64/math.h" 2 3 4
54530 # 1 "/usr/include/bits/huge_val.h" 1 3 4
54538 # 1 "/usr/include/gentoo-multilib/amd64/bits/huge_val.h" 1 3 4
54539 # 9 "/usr/include/bits/huge_val.h" 2 3 4
54540 # 35 "/usr/include/gentoo-multilib/amd64/math.h" 2 3 4
54542 # 1 "/usr/include/bits/huge_valf.h" 1 3 4
54550 # 1 "/usr/include/gentoo-multilib/amd64/bits/huge_valf.h" 1 3 4
54551 # 9 "/usr/include/bits/huge_valf.h" 2 3 4
54552 # 37 "/usr/include/gentoo-multilib/amd64/math.h" 2 3 4
54553 # 1 "/usr/include/bits/huge_vall.h" 1 3 4
54561 # 1 "/usr/include/gentoo-multilib/amd64/bits/huge_vall.h" 1 3 4
54562 # 9 "/usr/include/bits/huge_vall.h" 2 3 4
54563 # 38 "/usr/include/gentoo-multilib/amd64/math.h" 2 3 4
54566 # 1 "/usr/include/bits/inf.h" 1 3 4
54574 # 1 "/usr/include/gentoo-multilib/amd64/bits/inf.h" 1 3 4
54575 # 9 "/usr/include/bits/inf.h" 2 3 4
54576 # 41 "/usr/include/gentoo-multilib/amd64/math.h" 2 3 4
54579 # 1 "/usr/include/bits/nan.h" 1 3 4
54587 # 1 "/usr/include/gentoo-multilib/amd64/bits/nan.h" 1 3 4
54588 # 9 "/usr/include/bits/nan.h" 2 3 4
54589 # 44 "/usr/include/gentoo-multilib/amd64/math.h" 2 3 4
54593 # 1 "/usr/include/bits/mathdef.h" 1 3 4
54601 # 1 "/usr/include/gentoo-multilib/amd64/bits/mathdef.h" 1 3 4
54602 # 26 "/usr/include/gentoo-multilib/amd64/bits/mathdef.h" 3 4
54603 # 1 "/usr/include/bits/wordsize.h" 1 3 4
54611 # 1 "/usr/include/gentoo-multilib/amd64/bits/wordsize.h" 1 3 4
54612 # 9 "/usr/include/bits/wordsize.h" 2 3 4
54613 # 27 "/usr/include/gentoo-multilib/amd64/bits/mathdef.h" 2 3 4
54618 typedef float float_t;
54619 typedef double double_t;
54620 # 9 "/usr/include/bits/mathdef.h" 2 3 4
54621 # 48 "/usr/include/gentoo-multilib/amd64/math.h" 2 3 4
54622 # 71 "/usr/include/gentoo-multilib/amd64/math.h" 3 4
54623 # 1 "/usr/include/bits/mathcalls.h" 1 3 4
54631 # 1 "/usr/include/gentoo-multilib/amd64/bits/mathcalls.h" 1 3 4
54632 # 53 "/usr/include/gentoo-multilib/amd64/bits/mathcalls.h" 3 4
54635 extern double acos (double __x) throw (); extern double __acos (double __x) throw ();
54637 extern double asin (double __x) throw (); extern double __asin (double __x) throw ();
54639 extern double atan (double __x) throw (); extern double __atan (double __x) throw ();
54641 extern double atan2 (double __y, double __x) throw (); extern double __atan2 (double __y, double __x) throw ();
54644 extern double cos (double __x) throw (); extern double __cos (double __x) throw ();
54646 extern double sin (double __x) throw (); extern double __sin (double __x) throw ();
54648 extern double tan (double __x) throw (); extern double __tan (double __x) throw ();
54653 extern double cosh (double __x) throw (); extern double __cosh (double __x) throw ();
54655 extern double sinh (double __x) throw (); extern double __sinh (double __x) throw ();
54657 extern double tanh (double __x) throw (); extern double __tanh (double __x) throw ();
54662 extern void sincos (double __x, double *__sinx, double *__cosx) throw (); extern void __sincos (double __x, double *__sinx, double *__cosx) throw ();
54669 extern double acosh (double __x) throw (); extern double __acosh (double __x) throw ();
54671 extern double asinh (double __x) throw (); extern double __asinh (double __x) throw ();
54673 extern double atanh (double __x) throw (); extern double __atanh (double __x) throw ();
54681 extern double exp (double __x) throw (); extern double __exp (double __x) throw ();
54684 extern double frexp (double __x, int *__exponent) throw (); extern double __frexp (double __x, int *__exponent) throw ();
54687 extern double ldexp (double __x, int __exponent) throw (); extern double __ldexp (double __x, int __exponent) throw ();
54690 extern double log (double __x) throw (); extern double __log (double __x) throw ();
54693 extern double log10 (double __x) throw (); extern double __log10 (double __x) throw ();
54696 extern double modf (double __x, double *__iptr) throw (); extern double __modf (double __x, double *__iptr) throw ();
54701 extern double exp10 (double __x) throw (); extern double __exp10 (double __x) throw ();
54703 extern double pow10 (double __x) throw (); extern double __pow10 (double __x) throw ();
54709 extern double expm1 (double __x) throw (); extern double __expm1 (double __x) throw ();
54712 extern double log1p (double __x) throw (); extern double __log1p (double __x) throw ();
54715 extern double logb (double __x) throw (); extern double __logb (double __x) throw ();
54722 extern double exp2 (double __x) throw (); extern double __exp2 (double __x) throw ();
54725 extern double log2 (double __x) throw (); extern double __log2 (double __x) throw ();
54734 extern double pow (double __x, double __y) throw (); extern double __pow (double __x, double __y) throw ();
54737 extern double sqrt (double __x) throw (); extern double __sqrt (double __x) throw ();
54743 extern double hypot (double __x, double __y) throw (); extern double __hypot (double __x, double __y) throw ();
54750 extern double cbrt (double __x) throw (); extern double __cbrt (double __x) throw ();
54759 extern double ceil (double __x) throw () __attribute__ ((__const__)); extern double __ceil (double __x) throw () __attribute__ ((__const__));
54762 extern double fabs (double __x) throw () __attribute__ ((__const__)); extern double __fabs (double __x) throw () __attribute__ ((__const__));
54765 extern double floor (double __x) throw () __attribute__ ((__const__)); extern double __floor (double __x) throw () __attribute__ ((__const__));
54768 extern double fmod (double __x, double __y) throw (); extern double __fmod (double __x, double __y) throw ();
54773 extern int __isinf (double __value) throw () __attribute__ ((__const__));
54776 extern int __finite (double __value) throw () __attribute__ ((__const__));
54782 extern int isinf (double __value) throw () __attribute__ ((__const__));
54785 extern int finite (double __value) throw () __attribute__ ((__const__));
54788 extern double drem (double __x, double __y) throw (); extern double __drem (double __x, double __y) throw ();
54792 extern double significand (double __x) throw (); extern double __significand (double __x) throw ();
54798 extern double copysign (double __x, double __y) throw () __attribute__ ((__const__)); extern double __copysign (double __x, double __y) throw () __attribute__ ((__const__));
54805 extern double nan (__const char *__tagb) throw () __attribute__ ((__const__)); extern double __nan (__const char *__tagb) throw () __attribute__ ((__const__));
54811 extern int __isnan (double __value) throw () __attribute__ ((__const__));
54815 extern int isnan (double __value) throw () __attribute__ ((__const__));
54818 extern double j0 (double) throw (); extern double __j0 (double) throw ();
54819 extern double j1 (double) throw (); extern double __j1 (double) throw ();
54820 extern double jn (int, double) throw (); extern double __jn (int, double) throw ();
54821 extern double y0 (double) throw (); extern double __y0 (double) throw ();
54822 extern double y1 (double) throw (); extern double __y1 (double) throw ();
54823 extern double yn (int, double) throw (); extern double __yn (int, double) throw ();
54830 extern double erf (double) throw (); extern double __erf (double) throw ();
54831 extern double erfc (double) throw (); extern double __erfc (double) throw ();
54832 extern double lgamma (double) throw (); extern double __lgamma (double) throw ();
54839 extern double tgamma (double) throw (); extern double __tgamma (double) throw ();
54845 extern double gamma (double) throw (); extern double __gamma (double) throw ();
54852 extern double lgamma_r (double, int *__signgamp) throw (); extern double __lgamma_r (double, int *__signgamp) throw ();
54860 extern double rint (double __x) throw (); extern double __rint (double __x) throw ();
54863 extern double nextafter (double __x, double __y) throw () __attribute__ ((__const__)); extern double __nextafter (double __x, double __y) throw () __attribute__ ((__const__));
54865 extern double nexttoward (double __x, long double __y) throw () __attribute__ ((__const__)); extern double __nexttoward (double __x, long double __y) throw () __attribute__ ((__const__));
54869 extern double remainder (double __x, double __y) throw (); extern double __remainder (double __x, double __y) throw ();
54873 extern double scalbn (double __x, int __n) throw (); extern double __scalbn (double __x, int __n) throw ();
54877 extern int ilogb (double __x) throw (); extern int __ilogb (double __x) throw ();
54882 extern double scalbln (double __x, long int __n) throw (); extern double __scalbln (double __x, long int __n) throw ();
54886 extern double nearbyint (double __x) throw (); extern double __nearbyint (double __x) throw ();
54890 extern double round (double __x) throw () __attribute__ ((__const__)); extern double __round (double __x) throw () __attribute__ ((__const__));
54894 extern double trunc (double __x) throw () __attribute__ ((__const__)); extern double __trunc (double __x) throw () __attribute__ ((__const__));
54899 extern double remquo (double __x, double __y, int *__quo) throw (); extern double __remquo (double __x, double __y, int *__quo) throw ();
54906 extern long int lrint (double __x) throw (); extern long int __lrint (double __x) throw ();
54907 extern long long int llrint (double __x) throw (); extern long long int __llrint (double __x) throw ();
54911 extern long int lround (double __x) throw (); extern long int __lround (double __x) throw ();
54912 extern long long int llround (double __x) throw (); extern long long int __llround (double __x) throw ();
54916 extern double fdim (double __x, double __y) throw (); extern double __fdim (double __x, double __y) throw ();
54919 extern double fmax (double __x, double __y) throw (); extern double __fmax (double __x, double __y) throw ();
54922 extern double fmin (double __x, double __y) throw (); extern double __fmin (double __x, double __y) throw ();
54926 extern int __fpclassify (double __value) throw ()
54927 __attribute__ ((__const__));
54930 extern int __signbit (double __value) throw ()
54931 __attribute__ ((__const__));
54935 extern double fma (double __x, double __y, double __z) throw (); extern double __fma (double __x, double __y, double __z) throw ();
54944 extern double scalb (double __x, double __n) throw (); extern double __scalb (double __x, double __n) throw ();
54945 # 9 "/usr/include/bits/mathcalls.h" 2 3 4
54946 # 72 "/usr/include/gentoo-multilib/amd64/math.h" 2 3 4
54947 # 94 "/usr/include/gentoo-multilib/amd64/math.h" 3 4
54948 # 1 "/usr/include/bits/mathcalls.h" 1 3 4
54956 # 1 "/usr/include/gentoo-multilib/amd64/bits/mathcalls.h" 1 3 4
54957 # 53 "/usr/include/gentoo-multilib/amd64/bits/mathcalls.h" 3 4
54960 extern float acosf (float __x) throw (); extern float __acosf (float __x) throw ();
54962 extern float asinf (float __x) throw (); extern float __asinf (float __x) throw ();
54964 extern float atanf (float __x) throw (); extern float __atanf (float __x) throw ();
54966 extern float atan2f (float __y, float __x) throw (); extern float __atan2f (float __y, float __x) throw ();
54969 extern float cosf (float __x) throw (); extern float __cosf (float __x) throw ();
54971 extern float sinf (float __x) throw (); extern float __sinf (float __x) throw ();
54973 extern float tanf (float __x) throw (); extern float __tanf (float __x) throw ();
54978 extern float coshf (float __x) throw (); extern float __coshf (float __x) throw ();
54980 extern float sinhf (float __x) throw (); extern float __sinhf (float __x) throw ();
54982 extern float tanhf (float __x) throw (); extern float __tanhf (float __x) throw ();
54987 extern void sincosf (float __x, float *__sinx, float *__cosx) throw (); extern void __sincosf (float __x, float *__sinx, float *__cosx) throw ();
54994 extern float acoshf (float __x) throw (); extern float __acoshf (float __x) throw ();
54996 extern float asinhf (float __x) throw (); extern float __asinhf (float __x) throw ();
54998 extern float atanhf (float __x) throw (); extern float __atanhf (float __x) throw ();
55006 extern float expf (float __x) throw (); extern float __expf (float __x) throw ();
55009 extern float frexpf (float __x, int *__exponent) throw (); extern float __frexpf (float __x, int *__exponent) throw ();
55012 extern float ldexpf (float __x, int __exponent) throw (); extern float __ldexpf (float __x, int __exponent) throw ();
55015 extern float logf (float __x) throw (); extern float __logf (float __x) throw ();
55018 extern float log10f (float __x) throw (); extern float __log10f (float __x) throw ();
55021 extern float modff (float __x, float *__iptr) throw (); extern float __modff (float __x, float *__iptr) throw ();
55026 extern float exp10f (float __x) throw (); extern float __exp10f (float __x) throw ();
55028 extern float pow10f (float __x) throw (); extern float __pow10f (float __x) throw ();
55034 extern float expm1f (float __x) throw (); extern float __expm1f (float __x) throw ();
55037 extern float log1pf (float __x) throw (); extern float __log1pf (float __x) throw ();
55040 extern float logbf (float __x) throw (); extern float __logbf (float __x) throw ();
55047 extern float exp2f (float __x) throw (); extern float __exp2f (float __x) throw ();
55050 extern float log2f (float __x) throw (); extern float __log2f (float __x) throw ();
55059 extern float powf (float __x, float __y) throw (); extern float __powf (float __x, float __y) throw ();
55062 extern float sqrtf (float __x) throw (); extern float __sqrtf (float __x) throw ();
55068 extern float hypotf (float __x, float __y) throw (); extern float __hypotf (float __x, float __y) throw ();
55075 extern float cbrtf (float __x) throw (); extern float __cbrtf (float __x) throw ();
55084 extern float ceilf (float __x) throw () __attribute__ ((__const__)); extern float __ceilf (float __x) throw () __attribute__ ((__const__));
55087 extern float fabsf (float __x) throw () __attribute__ ((__const__)); extern float __fabsf (float __x) throw () __attribute__ ((__const__));
55090 extern float floorf (float __x) throw () __attribute__ ((__const__)); extern float __floorf (float __x) throw () __attribute__ ((__const__));
55093 extern float fmodf (float __x, float __y) throw (); extern float __fmodf (float __x, float __y) throw ();
55098 extern int __isinff (float __value) throw () __attribute__ ((__const__));
55101 extern int __finitef (float __value) throw () __attribute__ ((__const__));
55107 extern int isinff (float __value) throw () __attribute__ ((__const__));
55110 extern int finitef (float __value) throw () __attribute__ ((__const__));
55113 extern float dremf (float __x, float __y) throw (); extern float __dremf (float __x, float __y) throw ();
55117 extern float significandf (float __x) throw (); extern float __significandf (float __x) throw ();
55123 extern float copysignf (float __x, float __y) throw () __attribute__ ((__const__)); extern float __copysignf (float __x, float __y) throw () __attribute__ ((__const__));
55130 extern float nanf (__const char *__tagb) throw () __attribute__ ((__const__)); extern float __nanf (__const char *__tagb) throw () __attribute__ ((__const__));
55136 extern int __isnanf (float __value) throw () __attribute__ ((__const__));
55140 extern int isnanf (float __value) throw () __attribute__ ((__const__));
55143 extern float j0f (float) throw (); extern float __j0f (float) throw ();
55144 extern float j1f (float) throw (); extern float __j1f (float) throw ();
55145 extern float jnf (int, float) throw (); extern float __jnf (int, float) throw ();
55146 extern float y0f (float) throw (); extern float __y0f (float) throw ();
55147 extern float y1f (float) throw (); extern float __y1f (float) throw ();
55148 extern float ynf (int, float) throw (); extern float __ynf (int, float) throw ();
55155 extern float erff (float) throw (); extern float __erff (float) throw ();
55156 extern float erfcf (float) throw (); extern float __erfcf (float) throw ();
55157 extern float lgammaf (float) throw (); extern float __lgammaf (float) throw ();
55164 extern float tgammaf (float) throw (); extern float __tgammaf (float) throw ();
55170 extern float gammaf (float) throw (); extern float __gammaf (float) throw ();
55177 extern float lgammaf_r (float, int *__signgamp) throw (); extern float __lgammaf_r (float, int *__signgamp) throw ();
55185 extern float rintf (float __x) throw (); extern float __rintf (float __x) throw ();
55188 extern float nextafterf (float __x, float __y) throw () __attribute__ ((__const__)); extern float __nextafterf (float __x, float __y) throw () __attribute__ ((__const__));
55190 extern float nexttowardf (float __x, long double __y) throw () __attribute__ ((__const__)); extern float __nexttowardf (float __x, long double __y) throw () __attribute__ ((__const__));
55194 extern float remainderf (float __x, float __y) throw (); extern float __remainderf (float __x, float __y) throw ();
55198 extern float scalbnf (float __x, int __n) throw (); extern float __scalbnf (float __x, int __n) throw ();
55202 extern int ilogbf (float __x) throw (); extern int __ilogbf (float __x) throw ();
55207 extern float scalblnf (float __x, long int __n) throw (); extern float __scalblnf (float __x, long int __n) throw ();
55211 extern float nearbyintf (float __x) throw (); extern float __nearbyintf (float __x) throw ();
55215 extern float roundf (float __x) throw () __attribute__ ((__const__)); extern float __roundf (float __x) throw () __attribute__ ((__const__));
55219 extern float truncf (float __x) throw () __attribute__ ((__const__)); extern float __truncf (float __x) throw () __attribute__ ((__const__));
55224 extern float remquof (float __x, float __y, int *__quo) throw (); extern float __remquof (float __x, float __y, int *__quo) throw ();
55231 extern long int lrintf (float __x) throw (); extern long int __lrintf (float __x) throw ();
55232 extern long long int llrintf (float __x) throw (); extern long long int __llrintf (float __x) throw ();
55236 extern long int lroundf (float __x) throw (); extern long int __lroundf (float __x) throw ();
55237 extern long long int llroundf (float __x) throw (); extern long long int __llroundf (float __x) throw ();
55241 extern float fdimf (float __x, float __y) throw (); extern float __fdimf (float __x, float __y) throw ();
55244 extern float fmaxf (float __x, float __y) throw (); extern float __fmaxf (float __x, float __y) throw ();
55247 extern float fminf (float __x, float __y) throw (); extern float __fminf (float __x, float __y) throw ();
55251 extern int __fpclassifyf (float __value) throw ()
55252 __attribute__ ((__const__));
55255 extern int __signbitf (float __value) throw ()
55256 __attribute__ ((__const__));
55260 extern float fmaf (float __x, float __y, float __z) throw (); extern float __fmaf (float __x, float __y, float __z) throw ();
55269 extern float scalbf (float __x, float __n) throw (); extern float __scalbf (float __x, float __n) throw ();
55270 # 9 "/usr/include/bits/mathcalls.h" 2 3 4
55271 # 95 "/usr/include/gentoo-multilib/amd64/math.h" 2 3 4
55272 # 141 "/usr/include/gentoo-multilib/amd64/math.h" 3 4
55273 # 1 "/usr/include/bits/mathcalls.h" 1 3 4
55281 # 1 "/usr/include/gentoo-multilib/amd64/bits/mathcalls.h" 1 3 4
55282 # 53 "/usr/include/gentoo-multilib/amd64/bits/mathcalls.h" 3 4
55285 extern long double acosl (long double __x) throw (); extern long double __acosl (long double __x) throw ();
55287 extern long double asinl (long double __x) throw (); extern long double __asinl (long double __x) throw ();
55289 extern long double atanl (long double __x) throw (); extern long double __atanl (long double __x) throw ();
55291 extern long double atan2l (long double __y, long double __x) throw (); extern long double __atan2l (long double __y, long double __x) throw ();
55294 extern long double cosl (long double __x) throw (); extern long double __cosl (long double __x) throw ();
55296 extern long double sinl (long double __x) throw (); extern long double __sinl (long double __x) throw ();
55298 extern long double tanl (long double __x) throw (); extern long double __tanl (long double __x) throw ();
55303 extern long double coshl (long double __x) throw (); extern long double __coshl (long double __x) throw ();
55305 extern long double sinhl (long double __x) throw (); extern long double __sinhl (long double __x) throw ();
55307 extern long double tanhl (long double __x) throw (); extern long double __tanhl (long double __x) throw ();
55312 extern void sincosl (long double __x, long double *__sinx, long double *__cosx) throw (); extern void __sincosl (long double __x, long double *__sinx, long double *__cosx) throw ();
55319 extern long double acoshl (long double __x) throw (); extern long double __acoshl (long double __x) throw ();
55321 extern long double asinhl (long double __x) throw (); extern long double __asinhl (long double __x) throw ();
55323 extern long double atanhl (long double __x) throw (); extern long double __atanhl (long double __x) throw ();
55331 extern long double expl (long double __x) throw (); extern long double __expl (long double __x) throw ();
55334 extern long double frexpl (long double __x, int *__exponent) throw (); extern long double __frexpl (long double __x, int *__exponent) throw ();
55337 extern long double ldexpl (long double __x, int __exponent) throw (); extern long double __ldexpl (long double __x, int __exponent) throw ();
55340 extern long double logl (long double __x) throw (); extern long double __logl (long double __x) throw ();
55343 extern long double log10l (long double __x) throw (); extern long double __log10l (long double __x) throw ();
55346 extern long double modfl (long double __x, long double *__iptr) throw (); extern long double __modfl (long double __x, long double *__iptr) throw ();
55351 extern long double exp10l (long double __x) throw (); extern long double __exp10l (long double __x) throw ();
55353 extern long double pow10l (long double __x) throw (); extern long double __pow10l (long double __x) throw ();
55359 extern long double expm1l (long double __x) throw (); extern long double __expm1l (long double __x) throw ();
55362 extern long double log1pl (long double __x) throw (); extern long double __log1pl (long double __x) throw ();
55365 extern long double logbl (long double __x) throw (); extern long double __logbl (long double __x) throw ();
55372 extern long double exp2l (long double __x) throw (); extern long double __exp2l (long double __x) throw ();
55375 extern long double log2l (long double __x) throw (); extern long double __log2l (long double __x) throw ();
55384 extern long double powl (long double __x, long double __y) throw (); extern long double __powl (long double __x, long double __y) throw ();
55387 extern long double sqrtl (long double __x) throw (); extern long double __sqrtl (long double __x) throw ();
55393 extern long double hypotl (long double __x, long double __y) throw (); extern long double __hypotl (long double __x, long double __y) throw ();
55400 extern long double cbrtl (long double __x) throw (); extern long double __cbrtl (long double __x) throw ();
55409 extern long double ceill (long double __x) throw () __attribute__ ((__const__)); extern long double __ceill (long double __x) throw () __attribute__ ((__const__));
55412 extern long double fabsl (long double __x) throw () __attribute__ ((__const__)); extern long double __fabsl (long double __x) throw () __attribute__ ((__const__));
55415 extern long double floorl (long double __x) throw () __attribute__ ((__const__)); extern long double __floorl (long double __x) throw () __attribute__ ((__const__));
55418 extern long double fmodl (long double __x, long double __y) throw (); extern long double __fmodl (long double __x, long double __y) throw ();
55423 extern int __isinfl (long double __value) throw () __attribute__ ((__const__));
55426 extern int __finitel (long double __value) throw () __attribute__ ((__const__));
55432 extern int isinfl (long double __value) throw () __attribute__ ((__const__));
55435 extern int finitel (long double __value) throw () __attribute__ ((__const__));
55438 extern long double dreml (long double __x, long double __y) throw (); extern long double __dreml (long double __x, long double __y) throw ();
55442 extern long double significandl (long double __x) throw (); extern long double __significandl (long double __x) throw ();
55448 extern long double copysignl (long double __x, long double __y) throw () __attribute__ ((__const__)); extern long double __copysignl (long double __x, long double __y) throw () __attribute__ ((__const__));
55455 extern long double nanl (__const char *__tagb) throw () __attribute__ ((__const__)); extern long double __nanl (__const char *__tagb) throw () __attribute__ ((__const__));
55461 extern int __isnanl (long double __value) throw () __attribute__ ((__const__));
55465 extern int isnanl (long double __value) throw () __attribute__ ((__const__));
55468 extern long double j0l (long double) throw (); extern long double __j0l (long double) throw ();
55469 extern long double j1l (long double) throw (); extern long double __j1l (long double) throw ();
55470 extern long double jnl (int, long double) throw (); extern long double __jnl (int, long double) throw ();
55471 extern long double y0l (long double) throw (); extern long double __y0l (long double) throw ();
55472 extern long double y1l (long double) throw (); extern long double __y1l (long double) throw ();
55473 extern long double ynl (int, long double) throw (); extern long double __ynl (int, long double) throw ();
55480 extern long double erfl (long double) throw (); extern long double __erfl (long double) throw ();
55481 extern long double erfcl (long double) throw (); extern long double __erfcl (long double) throw ();
55482 extern long double lgammal (long double) throw (); extern long double __lgammal (long double) throw ();
55489 extern long double tgammal (long double) throw (); extern long double __tgammal (long double) throw ();
55495 extern long double gammal (long double) throw (); extern long double __gammal (long double) throw ();
55502 extern long double lgammal_r (long double, int *__signgamp) throw (); extern long double __lgammal_r (long double, int *__signgamp) throw ();
55510 extern long double rintl (long double __x) throw (); extern long double __rintl (long double __x) throw ();
55513 extern long double nextafterl (long double __x, long double __y) throw () __attribute__ ((__const__)); extern long double __nextafterl (long double __x, long double __y) throw () __attribute__ ((__const__));
55515 extern long double nexttowardl (long double __x, long double __y) throw () __attribute__ ((__const__)); extern long double __nexttowardl (long double __x, long double __y) throw () __attribute__ ((__const__));
55519 extern long double remainderl (long double __x, long double __y) throw (); extern long double __remainderl (long double __x, long double __y) throw ();
55523 extern long double scalbnl (long double __x, int __n) throw (); extern long double __scalbnl (long double __x, int __n) throw ();
55527 extern int ilogbl (long double __x) throw (); extern int __ilogbl (long double __x) throw ();
55532 extern long double scalblnl (long double __x, long int __n) throw (); extern long double __scalblnl (long double __x, long int __n) throw ();
55536 extern long double nearbyintl (long double __x) throw (); extern long double __nearbyintl (long double __x) throw ();
55540 extern long double roundl (long double __x) throw () __attribute__ ((__const__)); extern long double __roundl (long double __x) throw () __attribute__ ((__const__));
55544 extern long double truncl (long double __x) throw () __attribute__ ((__const__)); extern long double __truncl (long double __x) throw () __attribute__ ((__const__));
55549 extern long double remquol (long double __x, long double __y, int *__quo) throw (); extern long double __remquol (long double __x, long double __y, int *__quo) throw ();
55556 extern long int lrintl (long double __x) throw (); extern long int __lrintl (long double __x) throw ();
55557 extern long long int llrintl (long double __x) throw (); extern long long int __llrintl (long double __x) throw ();
55561 extern long int lroundl (long double __x) throw (); extern long int __lroundl (long double __x) throw ();
55562 extern long long int llroundl (long double __x) throw (); extern long long int __llroundl (long double __x) throw ();
55566 extern long double fdiml (long double __x, long double __y) throw (); extern long double __fdiml (long double __x, long double __y) throw ();
55569 extern long double fmaxl (long double __x, long double __y) throw (); extern long double __fmaxl (long double __x, long double __y) throw ();
55572 extern long double fminl (long double __x, long double __y) throw (); extern long double __fminl (long double __x, long double __y) throw ();
55576 extern int __fpclassifyl (long double __value) throw ()
55577 __attribute__ ((__const__));
55580 extern int __signbitl (long double __value) throw ()
55581 __attribute__ ((__const__));
55585 extern long double fmal (long double __x, long double __y, long double __z) throw (); extern long double __fmal (long double __x, long double __y, long double __z) throw ();
55594 extern long double scalbl (long double __x, long double __n) throw (); extern long double __scalbl (long double __x, long double __n) throw ();
55595 # 9 "/usr/include/bits/mathcalls.h" 2 3 4
55596 # 142 "/usr/include/gentoo-multilib/amd64/math.h" 2 3 4
55597 # 157 "/usr/include/gentoo-multilib/amd64/math.h" 3 4
55598 extern int signgam;
55599 # 198 "/usr/include/gentoo-multilib/amd64/math.h" 3 4
55613 # 284 "/usr/include/gentoo-multilib/amd64/math.h" 3 4
55621 } _LIB_VERSION_TYPE;
55626 extern _LIB_VERSION_TYPE _LIB_VERSION;
55627 # 307 "/usr/include/gentoo-multilib/amd64/math.h" 3 4
55641 extern int matherr (struct __exception *__exc) throw ();
55642 # 409 "/usr/include/gentoo-multilib/amd64/math.h" 3 4
55643 # 1 "/usr/include/bits/mathinline.h" 1 3 4
55651 # 1 "/usr/include/gentoo-multilib/amd64/bits/mathinline.h" 1 3 4
55652 # 35 "/usr/include/gentoo-multilib/amd64/bits/mathinline.h" 3 4
55654 __signbitf (float __x) throw ()
55656 __extension__ union { float __f; int __i; } __u = { __f: __x };
55657 return __u.__i < 0;
55660 __signbit (double __x) throw ()
55662 __extension__ union { double __d; int __i[2]; } __u = { __d: __x };
55663 return __u.__i[1] < 0;
55666 __signbitl (long double __x) throw ()
55668 __extension__ union { long double __l; int __i[3]; } __u = { __l: __x };
55669 return (__u.__i[2] & 0x8000) != 0;
55671 # 9 "/usr/include/bits/mathinline.h" 2 3 4
55672 # 410 "/usr/include/gentoo-multilib/amd64/math.h" 2 3 4
55673 # 465 "/usr/include/gentoo-multilib/amd64/math.h" 3 4
55675 # 9 "/usr/include/math.h" 2 3 4
55676 # 12 "genfield.cxx" 2
55681 using namespace boost;
55682 using namespace std;
55683 namespace po = boost::program_options;
55686 const float physical_extent = 3.14159265358979323846 * 2.;
55687 const float comp_radius = 5.0;
55688 const float h = comp_radius * 0.5;
55690 typedef array<int,3> node;
55691 typedef array<float,3> particle;
55692 typedef vector<particle> particle_array;
55694 const int computational_extent = 512;
55696 const float norm = 1.;
55702 void read_particles(const string &infile,particle_array &particles)
55704 ssize_t res, readsize;
55706 printf("reading %s...\n", infile.c_str());
55707 FILE *pfd = fopen(infile.c_str(), "r");
55708 ((pfd) ? static_cast<void> (0) : __assert_fail ("pfd", "genfield.cxx", 43, __PRETTY_FUNCTION__));
55710 bool binary_format = true;
55716 res = fread(inbuf,80,1,pfd);
55718 if (sscanf(inbuf,"%f %f %f\n", &p[0], &p[1], &p[1]) == 3) {
55719 binary_format = false;
55727 while (!feof(pfd)) {
55728 if (binary_format) {
55729 res = fread(p.data(),sizeof(p),1,pfd);
55734 res = fscanf(pfd,"%f %f %f\n", &p[0], &p[1], &p[2]);
55736 if (res != readsize) {
55740 printf("read error: res = %ld\n", res);
55744 particles.push_back(p);
55750 inline float calc_level(const particle &comp_part,const node &n)
55753 for (int i=0; i<3; ++i)
55754 dist[i] = (float)n[i] - comp_part[i];
55755 float veclen = sqrt(dist[0]*dist[0]+dist[1]*dist[1]+dist[2]*dist[2]);
55756 ((veclen < comp_radius*1.8) ? static_cast<void> (0) : __assert_fail ("veclen < comp_radius*1.8", "genfield.cxx", 91, __PRETTY_FUNCTION__));
55758 float q = veclen / h;
55762 val = 1. - 1.5*q2 + 0.75*q3;
55777 void get_local_nodes(const particle &comp_part,
55778 vector<node> &nv,vector<node> &pnv)
55781 for (int i=0; i<3; ++i) {
55782 bounds[0][i] = (int)ceilf(comp_part[i] - comp_radius);
55783 bounds[1][i] = (int)floorf(comp_part[i] + comp_radius);
55786 size_t ncnt = (bounds[1][0] - bounds[0][0] + 1) *
55787 (bounds[1][1] - bounds[0][1] + 1) *
55788 (bounds[1][2] - bounds[0][2] + 1);
55793 for (int i=bounds[0][0]; i<=bounds[1][0]; ++i) {
55795 if (ii < 0) ii = 512 + ii;
55796 for (int j=bounds[0][1]; j<=bounds[1][1]; ++j) {
55798 if (jj < 0) jj = 512 + jj;
55799 for (int k=bounds[0][2]; k<=bounds[1][2]; ++k) {
55801 if (kk < 0) kk = 512 + kk;
55802 node n = {{ i, j, k }};
55804 n[0] = ii, n[1] = jj, n[2] = kk;
55812 void process_particle(const particle &part,
55813 vector<node> &nodes,vector<node> &pnodes,
55814 float field[][512][512])
55816 particle comp_part;
55817 for (int i=0; i<3; ++i)
55818 comp_part[i] = part[i] / physical_extent * computational_extent;
55820 get_local_nodes(comp_part,nodes,pnodes);
55821 ((nodes.size() == pnodes.size()) ? static_cast<void> (0) : __assert_fail ("nodes.size() == pnodes.size()", "genfield.cxx", 156, __PRETTY_FUNCTION__));
55822 vector<node>::const_iterator nit = nodes.begin();
55823 vector<node>::const_iterator pit = pnodes.begin();
55824 while (nit!=nodes.end()) {
55825 const node &n = *nit++;
55826 const node &pn = *pit++;
55827 float fieldval = calc_level(comp_part,n);
55828 field[pn[2]][pn[1]][pn[0]] += fieldval;
55833 void write_field(unsigned ts,float field[][512][512])
55835 char filename[256];
55836 sprintf(filename, "r80.density.%04u.q", ts);
55837 printf("writing %s...\n", filename);
55838 int fd = open(filename, 01|0100|01000, 0666);
55839 ((fd>0) ? static_cast<void> (0) : __assert_fail ("fd>0", "genfield.cxx", 174, __PRETTY_FUNCTION__));
55841 int nbx = 512, nby = 512, nbz = 512, snum = 1;
55842 res = write(fd,&nbx,4);
55843 ((res == 4) ? static_cast<void> (0) : __assert_fail ("res == 4", "genfield.cxx", 178, __PRETTY_FUNCTION__));
55844 res = write(fd,&nby,4);
55845 ((res == 4) ? static_cast<void> (0) : __assert_fail ("res == 4", "genfield.cxx", 180, __PRETTY_FUNCTION__));
55846 res = write(fd,&nbz,4);
55847 ((res == 4) ? static_cast<void> (0) : __assert_fail ("res == 4", "genfield.cxx", 182, __PRETTY_FUNCTION__));
55848 res = write(fd,&snum,4);
55849 ((res == 4) ? static_cast<void> (0) : __assert_fail ("res == 4", "genfield.cxx", 184, __PRETTY_FUNCTION__));
55850 long field_size = nbx * nby * nbz * 4;
55851 long bytesleft = field_size;
55852 while (bytesleft) {
55853 res = write(fd,field,bytesleft);
55854 if (res == -1) { perror("write"); break; }
55860 void gen_field(particle_array &particles,float field[][512][512])
55862 int pn = (int)particles.size();
55864 printf("generating density field - %d particles\n", pn);
55865 memset(field,0,512*512*512);
55867 vector<node> nodes, pnodes;
55870 for (p=0; p<pn; ++p) {
55873 printf("%%%.2f completed\r", (float)p / particles.size()*100.);
55877 process_particle(particles[p],nodes,pnodes,field);
55884 int main(int argc,char *argv[])
55886 vector<string> infiles;
55889 po::options_description desc("options");
55891 ("help,h", "print usage")
55892 ("particles", po::value<vector<string> >(&infiles), "particle file")
55893 ("listfile", po::value<string>(), "listfile of particle files")
55894 ("timestep_origin,o", po::value<unsigned>(&start_ts)->default_value(0),
55898 po::positional_options_description p;
55899 p.add("particles", -1);
55901 po::variables_map vm;
55903 po::store(po::command_line_parser(argc,argv)
55904 .options(desc).positional(p).run(),
55907 } catch (exception &e) {
55908 cout << e.what() << endl;
55912 if (vm.count("help")) {
55913 cout << desc << endl;
55917 if (vm.count("listfile")) {
55918 ifstream f(vm["listfile"].as<string>().c_str());
55921 infiles.push_back(fname);
55926 float field[512][512][512];
55927 particle_array particles;
55929 #pragma omp parallel private(field, particles)
55936 unsigned myidx = fidx++;
55938 if (myidx >= infiles.size())
55941 const string &file = infiles[myidx];
55942 string::size_type dotpos = file.find_last_of('.');
55944 if (dotpos != string::npos)
55945 ts = lexical_cast<unsigned>(file.substr(dotpos+1));
55947 ts = myidx + start_ts;
55948 read_particles(file,particles);
55949 gen_field(particles,field);
55950 write_field(ts,field);