From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 23857 invoked by alias); 28 Apr 2003 16:46:05 -0000 Mailing-List: contact gcc-prs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-prs-owner@gcc.gnu.org Received: (qmail 23748 invoked by uid 71); 28 Apr 2003 16:46:03 -0000 Date: Mon, 28 Apr 2003 16:46:00 -0000 Message-ID: <20030428164603.23747.qmail@sources.redhat.com> To: nobody@gcc.gnu.org Cc: gcc-prs@gcc.gnu.org, From: tom Subject: Re: c++/10505: [sparc only] g++ 3.2.1 on sun won't compile obj with list ofobj as member data Reply-To: tom X-SW-Source: 2003-04/txt/msg01263.txt.bz2 List-Id: The following reply was made to PR c++/10505; it has been noted by GNATS. From: tom To: ehrhardt@mathematik.uni-ulm.de, gcc-bugs@gcc.gnu.org, gcc-prs@gcc.gnu.org, nobody@gcc.gnu.org, tjj@aol.net, gcc-gnats@gcc.gnu.org Cc: Subject: Re: c++/10505: [sparc only] g++ 3.2.1 on sun won't compile obj with list ofobj as member data Date: Mon, 28 Apr 2003 12:33:18 -0400 (EDT) --ELM745743854-1256-0_ Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit ehrhardt@mathematik.uni-ulm.de writes... > Subject: Re: c++/10505: [sparc only] g++ 3.2.1 on sun won't compile obj with list ofobj as member data > Synopsis: [sparc only] g++ 3.2.1 on sun won't compile obj with list ofobj as member data > > State-Changed-From-To: open->feedback > State-Changed-By: cae > State-Changed-When: Mon Apr 28 16:09:52 2003 > State-Changed-Why: > I can't reproduce this. Do you use gcc's header? In any case Yes. > please submit preprocessed source code, i.e. run ``g++ foo.c -save-temps'' > and send the foo.i file. > > regards Christian Seems to be foo.ii. I thought I included it in the bug report, but here it is again. Thanks. > > > http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&database=gcc&pr=10505 -- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Tom Jarmolowski _/_ tjj@aol.net America Online / __ _____ tjarmolow@aol.com 8002080660@airmessage.net (__ (_) ( ) ) Voice: (508) 875-1582 --ELM745743854-1256-0_ Content-Type: text/plain; charset=US-ASCII Content-Disposition: attachment; filename=foo.ii Content-Description: foo.ii Content-Transfer-Encoding: 7bit # 1 "foo.cc" # 1 "" # 1 "" # 1 "foo.cc" # 1 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/list" 1 3 # 65 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/list" 3 # 1 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/functexcept.h" 1 3 # 34 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/functexcept.h" 3 # 1 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/exception_defines.h" 1 3 # 35 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/functexcept.h" 2 3 namespace std { void __throw_bad_exception(void); void __throw_bad_alloc(void); void __throw_bad_cast(void); void __throw_bad_typeid(void); void __throw_logic_error(const char* __s); void __throw_domain_error(const char* __s); void __throw_invalid_argument(const char* __s); void __throw_length_error(const char* __s); void __throw_out_of_range(const char* __s); void __throw_runtime_error(const char* __s); void __throw_range_error(const char* __s); void __throw_overflow_error(const char* __s); void __throw_underflow_error(const char* __s); void __throw_ios_failure(const char* __s); } # 67 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/list" 2 3 # 1 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_algobase.h" 1 3 # 64 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_algobase.h" 3 # 1 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/sparc-sun-solaris2.7/bits/c++config.h" 1 3 # 34 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/sparc-sun-solaris2.7/bits/c++config.h" 3 # 1 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/sparc-sun-solaris2.7/bits/os_defines.h" 1 3 # 35 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/sparc-sun-solaris2.7/bits/c++config.h" 2 3 # 65 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_algobase.h" 2 3 # 1 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/cstring" 1 3 # 48 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/cstring" 3 # 1 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/cstddef" 1 3 # 47 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/cstddef" 3 # 1 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/stddef.h" 1 3 4 # 147 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/stddef.h" 3 4 typedef int ptrdiff_t; # 201 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/stddef.h" 3 4 typedef unsigned int size_t; # 49 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/cstddef" 2 3 namespace std { using ::ptrdiff_t; using ::size_t; } # 50 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/cstring" 2 3 # 1 "/usr/include/string.h" 1 3 4 # 16 "/usr/include/string.h" 3 4 #pragma ident "@(#)string.h 1.22 97/12/22 SMI" # 1 "/usr/include/sys/feature_tests.h" 1 3 4 # 13 "/usr/include/sys/feature_tests.h" 3 4 #pragma ident "@(#)feature_tests.h 1.17 97/12/04 SMI" # 1 "/usr/include/sys/isa_defs.h" 1 3 4 # 9 "/usr/include/sys/isa_defs.h" 3 4 #pragma ident "@(#)isa_defs.h 1.16 99/05/25 SMI" # 148 "/usr/include/sys/isa_defs.h" 3 4 extern "C" { # 330 "/usr/include/sys/isa_defs.h" 3 4 } # 16 "/usr/include/sys/feature_tests.h" 2 3 4 extern "C" { # 175 "/usr/include/sys/feature_tests.h" 3 4 } # 19 "/usr/include/string.h" 2 3 4 extern "C" { # 43 "/usr/include/string.h" 3 4 extern void *memcpy(void *, const void *, size_t); extern void *memmove(void *, const void *, size_t); extern char *strcpy(char *, const char *); extern char *strncpy(char *, const char *, size_t); extern char *strcat(char *, const char *); extern char *strncat(char *, const char *, size_t); extern int memcmp(const void *, const void *, size_t); extern int strcmp(const char *, const char *); extern int strcoll(const char *, const char *); extern int strncmp(const char *, const char *, size_t); extern size_t strxfrm(char *, const char *, size_t); extern void *memchr(const void *, int, size_t); extern char *strchr(const char *, int); extern size_t strcspn(const char *, const char *); extern char *strpbrk(const char *, const char *); extern char *strrchr(const char *, int); extern size_t strspn(const char *, const char *); extern char *strstr(const char *, const char *); extern char *strtok(char *, const char *); extern char *strtok_r(char *, const char *, char **); extern void *memset(void *, int, size_t); extern char *strerror(int); extern size_t strlen(const char *); extern void *memccpy(void *, const void *, int, size_t); extern char *strsignal(int); extern int ffs(int); extern int strcasecmp(const char *, const char *); extern int strncasecmp(const char *, const char *, size_t); extern char *strdup(const char *); # 146 "/usr/include/string.h" 3 4 } # 52 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/cstring" 2 3 # 77 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/cstring" 3 namespace std { using ::memcpy; using ::memmove; using ::strcpy; using ::strncpy; using ::strcat; using ::strncat; using ::memcmp; using ::strcmp; using ::strcoll; using ::strncmp; using ::strxfrm; using ::strcspn; using ::strspn; using ::strtok; using ::memset; using ::strerror; using ::strlen; using ::memchr; inline void* memchr(void* __p, int __c, size_t __n) { return memchr(const_cast(__p), __c, __n); } using ::strchr; inline char* strchr(char* __s1, int __n) { return __builtin_strchr(const_cast(__s1), __n); } using ::strpbrk; inline char* strpbrk(char* __s1, const char* __s2) { return __builtin_strpbrk(const_cast(__s1), __s2); } using ::strrchr; inline char* strrchr(char* __s1, int __n) { return __builtin_strrchr(const_cast(__s1), __n); } using ::strstr; inline char* strstr(char* __s1, const char* __s2) { return __builtin_strstr(const_cast(__s1), __s2); } } # 66 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_algobase.h" 2 3 # 1 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/climits" 1 3 # 48 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/climits" 3 # 1 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/limits.h" 1 3 4 # 11 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/limits.h" 3 4 # 1 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/syslimits.h" 1 3 4 # 25 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/syslimits.h" 3 4 #pragma ident "@(#)limits.h 1.48 98/07/20 SMI" # 40 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/syslimits.h" 3 4 # 1 "/usr/include/sys/int_limits.h" 1 3 4 # 9 "/usr/include/sys/int_limits.h" 3 4 #pragma ident "@(#)int_limits.h 1.5 98/01/06 SMI" # 47 "/usr/include/sys/int_limits.h" 3 4 extern "C" { # 162 "/usr/include/sys/int_limits.h" 3 4 } # 41 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/syslimits.h" 2 3 4 extern "C" { # 282 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/syslimits.h" 3 4 typedef long clock_t; extern long _sysconf(int); # 307 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/syslimits.h" 3 4 # 1 "/usr/include/sys/unistd.h" 1 3 4 # 25 "/usr/include/sys/unistd.h" 3 4 #pragma ident "@(#)unistd.h 1.36 98/07/16 SMI" extern "C" { # 264 "/usr/include/sys/unistd.h" 3 4 } # 308 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/syslimits.h" 2 3 4 # 318 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/syslimits.h" 3 4 extern long _sysconf(int); # 328 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/syslimits.h" 3 4 } # 12 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/limits.h" 2 3 4 # 50 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/climits" 2 3 # 67 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_algobase.h" 2 3 # 1 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/cstdlib" 1 3 # 48 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/cstdlib" 3 # 1 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/stdlib.h" 1 3 4 # 25 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/stdlib.h" 3 4 #pragma ident "@(#)stdlib.h 1.44 98/01/22 SMI" # 1 "/usr/include/sys/wait.h" 1 3 4 # 16 "/usr/include/sys/wait.h" 3 4 #pragma ident "@(#)wait.h 1.21 97/04/08 SMI" # 1 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/sys/types.h" 1 3 4 # 25 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/sys/types.h" 3 4 #pragma ident "@(#)types.h 1.63 98/04/28 SMI" # 1 "/usr/include/sys/machtypes.h" 1 3 4 # 16 "/usr/include/sys/machtypes.h" 3 4 #pragma ident "@(#)machtypes.h 1.12 96/08/01 SMI" extern "C" { # 33 "/usr/include/sys/machtypes.h" 3 4 typedef struct _physadr_t { int r[1]; } *physadr_t; typedef struct _label_t { long val[2]; } label_t; typedef unsigned char lock_t; } # 34 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/sys/types.h" 2 3 4 # 45 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/sys/types.h" 3 4 # 1 "/usr/include/sys/int_types.h" 1 3 4 # 9 "/usr/include/sys/int_types.h" 3 4 #pragma ident "@(#)int_types.h 1.6 97/08/20 SMI" # 45 "/usr/include/sys/int_types.h" 3 4 extern "C" { # 62 "/usr/include/sys/int_types.h" 3 4 typedef char int8_t; typedef short int16_t; typedef int int32_t; typedef long long int64_t; typedef unsigned char uint8_t; typedef unsigned short uint16_t; typedef unsigned int uint32_t; typedef unsigned long long uint64_t; # 94 "/usr/include/sys/int_types.h" 3 4 typedef int64_t intmax_t; typedef uint64_t uintmax_t; # 110 "/usr/include/sys/int_types.h" 3 4 typedef int intptr_t; typedef unsigned int uintptr_t; typedef char int_least8_t; typedef short int_least16_t; typedef int int_least32_t; typedef long long int_least64_t; typedef unsigned char uint_least8_t; typedef unsigned short uint_least16_t; typedef unsigned int uint_least32_t; typedef unsigned long long uint_least64_t; } # 46 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/sys/types.h" 2 3 4 extern "C" { # 62 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/sys/types.h" 3 4 typedef long long longlong_t; typedef unsigned long long u_longlong_t; # 85 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/sys/types.h" 3 4 typedef long t_scalar_t; typedef unsigned long t_uscalar_t; typedef unsigned char uchar_t; typedef unsigned short ushort_t; typedef unsigned int uint_t; typedef unsigned long ulong_t; typedef char *caddr_t; typedef long daddr_t; typedef short cnt_t; typedef ulong_t paddr_t; # 125 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/sys/types.h" 3 4 typedef ulong_t pfn_t; typedef ulong_t pgcnt_t; typedef long spgcnt_t; typedef uchar_t use_t; typedef short sysid_t; typedef short index_t; typedef void *timeout_id_t; typedef void *bufcall_id_t; # 147 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/sys/types.h" 3 4 typedef long off_t; # 156 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/sys/types.h" 3 4 typedef longlong_t off64_t; typedef ulong_t ino_t; typedef long blkcnt_t; typedef ulong_t fsblkcnt_t; typedef ulong_t fsfilcnt_t; # 181 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/sys/types.h" 3 4 typedef u_longlong_t ino64_t; typedef longlong_t blkcnt64_t; typedef u_longlong_t fsblkcnt64_t; typedef u_longlong_t fsfilcnt64_t; typedef long blksize_t; typedef enum { _B_FALSE, _B_TRUE } boolean_t; # 208 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/sys/types.h" 3 4 typedef int64_t pad64_t; typedef uint64_t upad64_t; # 221 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/sys/types.h" 3 4 typedef longlong_t offset_t; typedef u_longlong_t u_offset_t; typedef u_longlong_t len_t; typedef longlong_t diskaddr_t; # 242 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/sys/types.h" 3 4 typedef union { offset_t _f; struct { int32_t _u; int32_t _l; } _p; } lloff_t; # 262 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/sys/types.h" 3 4 typedef union { diskaddr_t _f; struct { int32_t _u; int32_t _l; } _p; } lldaddr_t; typedef uint_t k_fltset_t; # 287 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/sys/types.h" 3 4 typedef long id_t; typedef uint_t useconds_t; typedef long suseconds_t; # 308 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/sys/types.h" 3 4 typedef ulong_t major_t; typedef ulong_t minor_t; typedef short pri_t; # 328 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/sys/types.h" 3 4 typedef ushort_t o_mode_t; typedef short o_dev_t; typedef ushort_t o_uid_t; typedef o_uid_t o_gid_t; typedef short o_nlink_t; typedef short o_pid_t; typedef ushort_t o_ino_t; typedef int key_t; typedef ulong_t mode_t; typedef long uid_t; typedef uid_t gid_t; typedef unsigned int pthread_t; typedef unsigned int pthread_key_t; typedef struct _pthread_mutex { struct { uint8_t __pthread_mutex_flag[4]; uint32_t __pthread_mutex_type; } __pthread_mutex_flags; union { struct { uint8_t __pthread_mutex_pad[8]; } __pthread_mutex_lock64; upad64_t __pthread_mutex_owner64; } __pthread_mutex_lock; upad64_t __pthread_mutex_data; } pthread_mutex_t; typedef struct _pthread_cond { struct { uint8_t __pthread_cond_flag[4]; uint32_t __pthread_cond_type; } __pthread_cond_flags; upad64_t __pthread_cond_data; } pthread_cond_t; typedef struct _pthread_rwlock { int32_t __pthread_rwlock_readers; uint16_t __pthread_rwlock_type; uint16_t __pthread_rwlock_magic; upad64_t __pthread_rwlock_pad1[3]; upad64_t __pthread_rwlock_pad2[2]; upad64_t __pthread_rwlock_pad3[2]; } pthread_rwlock_t; typedef struct _pthread_attr { void *__pthread_attrp; } pthread_attr_t; typedef struct _pthread_mutexattr { void *__pthread_mutexattrp; } pthread_mutexattr_t; typedef struct _pthread_condattr { void *__pthread_condattrp; } pthread_condattr_t; typedef struct _once { upad64_t __pthread_once_pad[4]; } pthread_once_t; typedef struct _pthread_rwlockattr { void *__pthread_rwlockattrp; } pthread_rwlockattr_t; typedef ulong_t dev_t; typedef ulong_t nlink_t; typedef long pid_t; # 470 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/sys/types.h" 3 4 typedef int ssize_t; typedef long time_t; # 486 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/sys/types.h" 3 4 typedef int clockid_t; typedef int timer_t; typedef unsigned char unchar; typedef unsigned short ushort; typedef unsigned int uint; typedef unsigned long ulong; # 552 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/sys/types.h" 3 4 typedef unsigned char u_char; typedef unsigned short u_short; typedef unsigned int u_int; typedef unsigned long u_long; typedef struct _quad { int val[2]; } quad_t; typedef quad_t quad; # 1 "/usr/include/sys/select.h" 1 3 4 # 12 "/usr/include/sys/select.h" 3 4 #pragma ident "@(#)select.h 1.16 98/04/27 SMI" # 1 "/usr/include/sys/time.h" 1 3 4 # 22 "/usr/include/sys/time.h" 3 4 #pragma ident "@(#)time.h 2.62 98/02/04 SMI" # 32 "/usr/include/sys/time.h" 3 4 extern "C" { # 49 "/usr/include/sys/time.h" 3 4 struct timeval { time_t tv_sec; suseconds_t tv_usec; }; # 82 "/usr/include/sys/time.h" 3 4 struct timezone { int tz_minuteswest; int tz_dsttime; }; } # 100 "/usr/include/sys/time.h" 3 4 # 1 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/sys/types.h" 1 3 4 # 101 "/usr/include/sys/time.h" 2 3 4 extern "C" { # 155 "/usr/include/sys/time.h" 3 4 struct itimerval { struct timeval it_interval; struct timeval it_value; }; # 203 "/usr/include/sys/time.h" 3 4 typedef longlong_t hrtime_t; # 315 "/usr/include/sys/time.h" 3 4 int adjtime(struct timeval *, struct timeval *); # 326 "/usr/include/sys/time.h" 3 4 int getitimer(int, struct itimerval *); int utimes(const char *, const struct timeval *); int setitimer(int, const struct itimerval *, struct itimerval *); # 364 "/usr/include/sys/time.h" 3 4 int settimeofday(struct timeval *, void *); hrtime_t gethrtime(void); hrtime_t gethrvtime(void); # 384 "/usr/include/sys/time.h" 3 4 int gettimeofday(struct timeval *, void *); # 405 "/usr/include/sys/time.h" 3 4 # 1 "/usr/include/time.h" 1 3 4 # 16 "/usr/include/time.h" 3 4 #pragma ident "@(#)time.h 1.36 98/03/27 SMI" extern "C" { # 64 "/usr/include/time.h" 3 4 struct tm { int tm_sec; int tm_min; int tm_hour; int tm_mday; int tm_mon; int tm_year; int tm_wday; int tm_yday; int tm_isdst; }; extern clock_t clock(void); extern double difftime(time_t, time_t); extern time_t mktime(struct tm *); extern time_t time(time_t *); extern char *asctime(const struct tm *); extern char *ctime(const time_t *); extern struct tm *gmtime(const time_t *); extern struct tm *localtime(const time_t *); extern size_t strftime(char *, size_t, const char *, const struct tm *); extern struct tm *gmtime_r(const time_t *, struct tm *); extern struct tm *localtime_r(const time_t *, struct tm *); extern char *strptime(const char *, const char *, struct tm *); # 1 "/usr/include/sys/time_impl.h" 1 3 4 # 15 "/usr/include/sys/time_impl.h" 3 4 #pragma ident "@(#)time_impl.h 1.3 98/02/13 SMI" extern "C" { # 36 "/usr/include/sys/time_impl.h" 3 4 typedef struct timespec { time_t tv_sec; long tv_nsec; } timespec_t; # 60 "/usr/include/sys/time_impl.h" 3 4 typedef struct timespec timestruc_t; # 79 "/usr/include/sys/time_impl.h" 3 4 typedef struct itimerspec { struct timespec it_interval; struct timespec it_value; } itimerspec_t; # 130 "/usr/include/sys/time_impl.h" 3 4 } # 104 "/usr/include/time.h" 2 3 4 # 118 "/usr/include/time.h" 3 4 union sigval { int sival_int; void *sival_ptr; }; struct sigevent { int sigev_notify; int sigev_signo; union sigval sigev_value; void (*sigev_notify_function)(union sigval); pthread_attr_t *sigev_notify_attributes; int __sigev_pad2; }; extern int clock_getres(clockid_t, struct timespec *); extern int clock_gettime(clockid_t, struct timespec *); extern int clock_settime(clockid_t, const struct timespec *); extern int timer_create(clockid_t, struct sigevent *, timer_t *); extern int timer_delete(timer_t); extern int timer_getoverrun(timer_t); extern int timer_gettime(timer_t, struct itimerspec *); extern int timer_settime(timer_t, int, const struct itimerspec *, struct itimerspec *); extern int nanosleep(const struct timespec *, struct timespec *); extern void tzset(void); extern char *tzname[2]; # 162 "/usr/include/time.h" 3 4 extern long timezone; extern int daylight; # 176 "/usr/include/time.h" 3 4 extern struct tm *getdate(const char *); extern int getdate_err; # 266 "/usr/include/time.h" 3 4 extern char *asctime_r(const struct tm *, char *); extern char *ctime_r(const time_t *, char *); #pragma redefine_extname ctime_r __posix_ctime_r #pragma redefine_extname asctime_r __posix_asctime_r # 334 "/usr/include/time.h" 3 4 } # 406 "/usr/include/sys/time.h" 2 3 4 # 418 "/usr/include/sys/time.h" 3 4 # 1 "/usr/include/sys/select.h" 1 3 4 # 419 "/usr/include/sys/time.h" 2 3 4 } # 18 "/usr/include/sys/select.h" 2 3 4 extern "C" { # 45 "/usr/include/sys/select.h" 3 4 typedef long fd_mask; typedef long fds_mask; # 73 "/usr/include/sys/select.h" 3 4 typedef struct fd_set { long fds_bits[(((1024)+(((sizeof (fds_mask) * 8))-1))/((sizeof (fds_mask) * 8)))]; } fd_set; # 97 "/usr/include/sys/select.h" 3 4 extern int select(int, fd_set *, fd_set *, fd_set *, struct timeval *); } # 565 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/sys/types.h" 2 3 4 # 581 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/sys/types.h" 3 4 } # 21 "/usr/include/sys/wait.h" 2 3 4 # 1 "/usr/include/sys/resource.h" 1 3 4 # 16 "/usr/include/sys/resource.h" 3 4 #pragma ident "@(#)resource.h 1.25 98/06/30 SMI" extern "C" { # 67 "/usr/include/sys/resource.h" 3 4 typedef unsigned long rlim_t; # 102 "/usr/include/sys/resource.h" 3 4 struct rlimit { rlim_t rlim_cur; rlim_t rlim_max; }; typedef u_longlong_t rlim64_t; struct rlimit64 { rlim64_t rlim_cur; rlim64_t rlim_max; }; # 143 "/usr/include/sys/resource.h" 3 4 struct rusage { struct timeval ru_utime; struct timeval ru_stime; long ru_maxrss; long ru_ixrss; long ru_idrss; long ru_isrss; long ru_minflt; long ru_majflt; long ru_nswap; long ru_inblock; long ru_oublock; long ru_msgsnd; long ru_msgrcv; long ru_nsignals; long ru_nvcsw; long ru_nivcsw; }; # 193 "/usr/include/sys/resource.h" 3 4 extern int setrlimit(int, const struct rlimit *); extern int getrlimit(int, struct rlimit *); extern int setrlimit64(int, const struct rlimit64 *); extern int getrlimit64(int, struct rlimit64 *); extern int getpriority(int, id_t); extern int setpriority(int, id_t, int); extern int getrusage(int, struct rusage *); # 228 "/usr/include/sys/resource.h" 3 4 } # 25 "/usr/include/sys/wait.h" 2 3 4 # 1 "/usr/include/sys/siginfo.h" 1 3 4 # 16 "/usr/include/sys/siginfo.h" 3 4 #pragma ident "@(#)siginfo.h 1.54 98/03/27 SMI" extern "C" { # 126 "/usr/include/sys/siginfo.h" 3 4 # 1 "/usr/include/sys/machsig.h" 1 3 4 # 16 "/usr/include/sys/machsig.h" 3 4 #pragma ident "@(#)machsig.h 1.14 98/02/05 SMI" extern "C" { # 110 "/usr/include/sys/machsig.h" 3 4 } # 127 "/usr/include/sys/siginfo.h" 2 3 4 # 221 "/usr/include/sys/siginfo.h" 3 4 typedef struct siginfo { int si_signo; int si_code; int si_errno; union { int __pad[((128 / sizeof (int)) - 3)]; struct { pid_t __pid; union { struct { uid_t __uid; union sigval __value; } __kill; struct { clock_t __utime; int __status; clock_t __stime; } __cld; } __pdata; } __proc; struct { void *__addr; int __trapno; caddr_t __pc; } __fault; struct { int __fd; long __band; } __file; struct { caddr_t __faddr; timestruc_t __tstamp; short __syscall; char __nsysarg; char __fault; long __sysarg[8]; int __mstate[10]; } __prof; } __data; } siginfo_t; # 354 "/usr/include/sys/siginfo.h" 3 4 typedef struct k_siginfo { int si_signo; int si_code; int si_errno; union { struct { pid_t __pid; union { struct { uid_t __uid; union sigval __value; } __kill; struct { clock_t __utime; int __status; clock_t __stime; } __cld; } __pdata; } __proc; struct { void *__addr; int __trapno; caddr_t __pc; } __fault; struct { int __fd; long __band; } __file; struct { caddr_t __faddr; timestruc_t __tstamp; short __syscall; char __nsysarg; char __fault; } __prof; } __data; } k_siginfo_t; typedef struct sigqueue { struct sigqueue *sq_next; k_siginfo_t sq_info; void (*sq_func)(struct sigqueue *); void *sq_backptr; } sigqueue_t; # 454 "/usr/include/sys/siginfo.h" 3 4 } # 26 "/usr/include/sys/wait.h" 2 3 4 # 1 "/usr/include/sys/procset.h" 1 3 4 # 16 "/usr/include/sys/procset.h" 3 4 #pragma ident "@(#)procset.h 1.18 98/06/30 SMI" extern "C" { # 40 "/usr/include/sys/procset.h" 3 4 typedef enum idtype { P_PID, P_PPID, P_PGID, P_SID, P_CID, P_UID, P_GID, P_ALL, P_LWPID } idtype_t; # 64 "/usr/include/sys/procset.h" 3 4 typedef enum idop { POP_DIFF, POP_AND, POP_OR, POP_XOR } idop_t; typedef struct procset { idop_t p_op; idtype_t p_lidtype; id_t p_lid; idtype_t p_ridtype; id_t p_rid; } procset_t; # 129 "/usr/include/sys/procset.h" 3 4 } # 27 "/usr/include/sys/wait.h" 2 3 4 extern "C" { # 86 "/usr/include/sys/wait.h" 3 4 extern pid_t wait(int *); extern pid_t waitpid(pid_t, int *, int); extern int waitid(idtype_t, id_t, siginfo_t *, int); extern pid_t wait3(int *, int, struct rusage *); extern pid_t wait4(pid_t, int *, int, struct rusage *); # 118 "/usr/include/sys/wait.h" 3 4 } # 32 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/stdlib.h" 2 3 4 extern "C" { typedef struct { int quot; int rem; } div_t; typedef struct { long quot; long rem; } ldiv_t; typedef struct { long long quot; long long rem; } lldiv_t; # 148 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/stdlib.h" 3 4 extern unsigned char __ctype[]; extern double atof(const char *); extern int atoi(const char *); extern long int atol(const char *); extern double strtod(const char *, char **); extern long int strtol(const char *, char **, int); extern unsigned long int strtoul(const char *, char **, int); extern int rand(void); extern void srand(unsigned int); extern int rand_r(unsigned int *); extern void *calloc(size_t, size_t); extern void free(void *); extern void *malloc(size_t); extern void *realloc(void *, size_t); extern void abort(void); extern int atexit(void (*)(void)); extern void exit(int); extern void _exithandle(void); extern char *getenv(const char *); extern int system(const char *); extern void *bsearch(const void *, const void *, size_t, size_t, int (*)(const void *, const void *)); extern void qsort(void *, size_t, size_t, int (*)(const void *, const void *)); extern int abs(int); extern div_t div(int, int); extern long int labs(long); extern ldiv_t ldiv(long, long); extern int mbtowc(wchar_t *, const char *, size_t); extern int mblen(const char *, size_t); extern int wctomb(char *, wchar_t); extern size_t mbstowcs(wchar_t *, const char *, size_t); extern size_t wcstombs(char *, const wchar_t *, size_t); extern double drand48(void); extern double erand48(unsigned short *); extern long jrand48(unsigned short *); extern void lcong48(unsigned short *); extern long lrand48(void); extern long mrand48(void); extern long nrand48(unsigned short *); extern unsigned short *seed48(unsigned short *); extern void srand48(long); extern int putenv(char *); extern void setkey(const char *); # 219 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/stdlib.h" 3 4 extern int mkstemp(char *); extern int mkstemp64(char *); extern long a64l(const char *); extern char *ecvt(double, int, int *, int *); extern char *fcvt(double, int, int *, int *); extern char *gcvt(double, int, char *); extern int getsubopt(char **, char *const *, char **); extern int grantpt(int); extern char *initstate(unsigned, char *, size_t); extern char *l64a(long); extern char *mktemp(char *); extern char *ptsname(int); extern long random(void); extern char *realpath(const char *, char *); extern char *setstate(const char *); extern void srandom(unsigned); extern int ttyslot(void); extern int unlockpt(int); extern void *valloc(size_t); extern int dup2(int, int); extern char *qecvt(long double, int, int *, int *); extern char *qfcvt(long double, int, int *, int *); extern char *qgcvt(long double, int, char *); extern char *getcwd(char *, size_t); extern const char *getexecname(void); extern char *getlogin(void); extern int getopt(int, char *const *, const char *); extern char *optarg; extern int optind, opterr, optopt; extern char *getpass(const char *); extern char *getpassphrase(const char *); extern int getpw(uid_t, char *); extern int isatty(int); extern void *memalign(size_t, size_t); extern char *ttyname(int); extern long long atoll(const char *); extern long long llabs(long long); extern lldiv_t lldiv(long long, long long); extern char *lltostr(long long, char *); extern long long strtoll(const char *, char **, int); extern unsigned long long strtoull(const char *, char **, int); extern char *ulltostr(unsigned long long, char *); # 412 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/stdlib.h" 3 4 } # 53 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/cstdlib" 2 3 # 84 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/cstdlib" 3 namespace std { using ::div_t; using ::ldiv_t; using ::abort; using ::abs; using ::atexit; using ::atof; using ::atoi; using ::atol; using ::bsearch; using ::calloc; using ::div; using ::exit; using ::free; using ::getenv; using ::labs; using ::ldiv; using ::malloc; using ::mblen; using ::mbstowcs; using ::mbtowc; using ::qsort; using ::rand; using ::realloc; using ::srand; using ::strtod; using ::strtol; using ::strtoul; using ::system; using ::wcstombs; using ::wctomb; inline long abs(long __i) { return labs(__i); } inline ldiv_t div(long __i, long __j) { return ldiv(__i, __j); } } # 68 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_algobase.h" 2 3 # 1 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/new" 1 3 # 42 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/new" 3 # 1 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/exception" 1 3 # 40 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/exception" 3 extern "C++" { namespace std { class exception { public: exception() throw() { } virtual ~exception() throw(); virtual const char* what() const throw(); }; class bad_exception : public exception { public: bad_exception() throw() { } virtual ~bad_exception() throw(); }; typedef void (*terminate_handler) (); typedef void (*unexpected_handler) (); terminate_handler set_terminate(terminate_handler) throw(); void terminate() __attribute__ ((__noreturn__)); unexpected_handler set_unexpected(unexpected_handler) throw(); void unexpected() __attribute__ ((__noreturn__)); # 98 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/exception" 3 bool uncaught_exception() throw(); } namespace __gnu_cxx { # 111 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/exception" 3 void __verbose_terminate_handler (); } } # 43 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/new" 2 3 extern "C++" { namespace std { class bad_alloc : public exception { public: bad_alloc() throw() { } virtual ~bad_alloc() throw(); }; struct nothrow_t { }; extern const nothrow_t nothrow; typedef void (*new_handler)(); new_handler set_new_handler(new_handler) throw(); } # 79 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/new" 3 void* operator new(std::size_t) throw (std::bad_alloc); void* operator new[](std::size_t) throw (std::bad_alloc); void operator delete(void*) throw(); void operator delete[](void*) throw(); void* operator new(std::size_t, const std::nothrow_t&) throw(); void* operator new[](std::size_t, const std::nothrow_t&) throw(); void operator delete(void*, const std::nothrow_t&) throw(); void operator delete[](void*, const std::nothrow_t&) throw(); inline void* operator new(std::size_t, void* __p) throw() { return __p; } inline void* operator new[](std::size_t, void* __p) throw() { return __p; } inline void operator delete (void*, void*) throw() { }; inline void operator delete[](void*, void*) throw() { }; } # 70 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_algobase.h" 2 3 # 1 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/iosfwd" 1 3 # 43 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/iosfwd" 3 # 1 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stringfwd.h" 1 3 # 43 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stringfwd.h" 3 namespace std { template class allocator; template struct char_traits; template, typename _Alloc = allocator<_CharT> > class basic_string; template<> struct char_traits; typedef basic_string string; } # 46 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/iosfwd" 2 3 # 1 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/fpos.h" 1 3 # 43 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/fpos.h" 3 # 1 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/sparc-sun-solaris2.7/bits/c++io.h" 1 3 # 35 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/sparc-sun-solaris2.7/bits/c++io.h" 3 # 1 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/cstdio" 1 3 # 48 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/cstdio" 3 # 1 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/stdio.h" 1 3 4 # 14 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/stdio.h" 3 4 # 1 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/stdarg.h" 1 3 4 # 43 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/stdarg.h" 3 4 typedef __builtin_va_list __gnuc_va_list; # 15 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/stdio.h" 2 3 4 # 34 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/stdio.h" 3 4 #pragma ident "@(#)stdio.h 1.69 98/07/13 SMI" # 1 "/usr/include/sys/va_list.h" 1 3 4 # 9 "/usr/include/sys/va_list.h" 3 4 #pragma ident "@(#)va_list.h 1.11 97/11/22 SMI" # 22 "/usr/include/sys/va_list.h" 3 4 extern "C" { typedef void *__va_list; } # 38 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/stdio.h" 2 3 4 # 1 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/stdio_tag.h" 1 3 4 # 18 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/stdio_tag.h" 3 4 #pragma ident "@(#)stdio_tag.h 1.3 98/04/20 SMI" extern "C" { # 30 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/stdio_tag.h" 3 4 typedef struct __FILE __FILE; } # 39 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/stdio.h" 2 3 4 # 1 "/usr/include/stdio_impl.h" 1 3 4 # 9 "/usr/include/stdio_impl.h" 3 4 #pragma ident "@(#)stdio_impl.h 1.7 98/04/17 SMI" extern "C" { # 38 "/usr/include/stdio_impl.h" 3 4 struct __FILE { ssize_t _cnt; unsigned char *_ptr; unsigned char *_base; unsigned char _flag; unsigned char _file; unsigned __orientation:2; unsigned __filler:6; }; } # 40 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/stdio.h" 2 3 4 # 50 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/stdio.h" 3 4 extern "C" { typedef __FILE FILE; # 74 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/stdio.h" 3 4 typedef long long __longlong_t; # 103 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/stdio.h" 3 4 typedef long fpos_t; typedef __longlong_t fpos64_t; # 132 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/stdio.h" 3 4 typedef __va_list __not_va_list__; # 203 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/stdio.h" 3 4 extern FILE __iob[20]; # 215 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/stdio.h" 3 4 extern unsigned char _sibuf[], _sobuf[]; # 244 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/stdio.h" 3 4 extern unsigned char *_bufendtab[]; extern FILE *_lastbuf; # 275 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/stdio.h" 3 4 extern int remove(const char *); extern int rename(const char *, const char *); extern FILE *tmpfile(void); extern char *tmpnam(char *); extern char *tmpnam_r(char *); extern int fclose(FILE *); extern int fflush(FILE *); extern FILE *fopen(const char *, const char *); extern FILE *freopen(const char *, const char *, FILE *); extern void setbuf(FILE *, char *); extern void setbuffer(FILE *, char *, size_t); extern int setlinebuf(FILE *); extern int setvbuf(FILE *, char *, int, size_t); extern int fprintf(FILE *, const char *, ...); extern int fscanf(FILE *, const char *, ...); extern int printf(const char *, ...); extern int scanf(const char *, ...); extern int snprintf(char *, size_t, const char *, ...); extern int sprintf(char *, const char *, ...); extern int sscanf(const char *, const char *, ...); extern int vfprintf(FILE *, const char *, __gnuc_va_list); extern int vprintf(const char *, __gnuc_va_list); extern int vsnprintf(char *, size_t, const char *, __gnuc_va_list); extern int vsprintf(char *, const char *, __gnuc_va_list); extern int fgetc(FILE *); extern char *fgets(char *, int, FILE *); extern int fputc(int, FILE *); extern int fputs(const char *, FILE *); extern int getc(FILE *); extern int getchar(void); extern char *gets(char *); extern int putc(int, FILE *); extern int putchar(int); extern int puts(const char *); extern int ungetc(int, FILE *); extern size_t fread(void *, size_t, size_t, FILE *); extern size_t fwrite(const void *, size_t, size_t, FILE *); extern int fgetpos(FILE *, fpos_t *); extern int fseek(FILE *, long, int); extern int fsetpos(FILE *, const fpos_t *); extern long ftell(FILE *); extern void rewind(FILE *); extern void clearerr(FILE *); extern int feof(FILE *); extern int ferror(FILE *); extern void perror(const char *); extern int __filbuf(FILE *); extern int __flsbuf(int, FILE *); # 353 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/stdio.h" 3 4 extern FILE *fdopen(int, const char *); extern char *ctermid(char *); extern int fileno(FILE *); # 364 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/stdio.h" 3 4 extern void flockfile(FILE *); extern int ftrylockfile(FILE *); extern void funlockfile(FILE *); extern int getc_unlocked(FILE *); extern int getchar_unlocked(void); extern int putc_unlocked(int, FILE *); extern int putchar_unlocked(int); # 379 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/stdio.h" 3 4 extern FILE *popen(const char *, const char *); extern char *cuserid(char *); extern char *tempnam(const char *, const char *); extern int getopt(int, char *const *, const char *); extern char *optarg; extern int optind, opterr, optopt; extern int getw(FILE *); extern int putw(int, FILE *); extern int pclose(FILE *); extern int fseeko(FILE *, off_t, int); extern off_t ftello(FILE *); # 408 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/stdio.h" 3 4 extern FILE *fopen64(const char *, const char *); extern FILE *freopen64(const char *, const char *, FILE *); extern FILE *tmpfile64(void); extern int fgetpos64(FILE *, fpos64_t *); extern int fsetpos64(FILE *, const fpos64_t *); extern int fseeko64(FILE *, off64_t, int); extern off64_t ftello64(FILE *); # 586 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/stdio.h" 3 4 } # 53 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/cstdio" 2 3 # 97 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/cstdio" 3 namespace std { using ::FILE; using ::fpos_t; using ::clearerr; using ::fclose; using ::feof; using ::ferror; using ::fflush; using ::fgetc; using ::fgetpos; using ::fgets; using ::fopen; using ::fprintf; using ::fputc; using ::fputs; using ::fread; using ::freopen; using ::fscanf; using ::fseek; using ::fsetpos; using ::ftell; using ::fwrite; using ::getc; using ::getchar; using ::gets; using ::perror; using ::printf; using ::putc; using ::putchar; using ::puts; using ::remove; using ::rename; using ::rewind; using ::scanf; using ::setbuf; using ::setvbuf; using ::sprintf; using ::sscanf; using ::tmpfile; using ::tmpnam; using ::ungetc; using ::vfprintf; using ::vprintf; using ::vsprintf; } # 36 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/sparc-sun-solaris2.7/bits/c++io.h" 2 3 # 1 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/sparc-sun-solaris2.7/bits/gthr.h" 1 3 # 98 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/sparc-sun-solaris2.7/bits/gthr.h" 3 # 1 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/sparc-sun-solaris2.7/bits/gthr-default.h" 1 3 # 37 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/sparc-sun-solaris2.7/bits/gthr-default.h" 3 # 1 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/pthread.h" 1 3 4 # 18 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/pthread.h" 3 4 #pragma ident "@(#)pthread.h 1.26 98/04/12 SMI" # 1 "/usr/include/sched.h" 1 3 4 # 11 "/usr/include/sched.h" 3 4 #pragma ident "@(#)sched.h 1.9 98/01/16 SMI" extern "C" { struct sched_param { int sched_priority; int sched_nicelim; int sched_nice; int sched_pad[6]; }; # 44 "/usr/include/sched.h" 3 4 int sched_getparam(pid_t pid, struct sched_param *param); int sched_setparam(pid_t pid, const struct sched_param *param); int sched_getscheduler(pid_t pid); int sched_setscheduler(pid_t pid, int policy, const struct sched_param *param); int sched_yield(void); int sched_get_priority_max(int policy); int sched_get_priority_min(int policy); int sched_rr_get_interval(pid_t pid, struct timespec *interval); # 65 "/usr/include/sched.h" 3 4 } # 24 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/pthread.h" 2 3 4 extern "C" { # 103 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/pthread.h" 3 4 typedef struct _cleanup { uintptr_t pthread_cleanup_pad[4]; } _cleanup_t; void __pthread_cleanup_push(void (*routine)(void *), void *args, caddr_t fp, _cleanup_t *info); void __pthread_cleanup_pop(int ex, _cleanup_t *info); caddr_t _getfp(void); # 137 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/pthread.h" 3 4 extern int pthread_attr_init(pthread_attr_t *); extern int pthread_attr_destroy(pthread_attr_t *); extern int pthread_attr_setstacksize(pthread_attr_t *, size_t); extern int pthread_attr_getstacksize(const pthread_attr_t *, size_t *); extern int pthread_attr_setstackaddr(pthread_attr_t *, void *); extern int pthread_attr_getstackaddr(const pthread_attr_t *, void **); extern int pthread_attr_setdetachstate(pthread_attr_t *, int); extern int pthread_attr_getdetachstate(const pthread_attr_t *, int *); extern int pthread_attr_setscope(pthread_attr_t *, int); extern int pthread_attr_getscope(const pthread_attr_t *, int *); extern int pthread_attr_setinheritsched(pthread_attr_t *, int); extern int pthread_attr_getinheritsched(const pthread_attr_t *, int *); extern int pthread_attr_setschedpolicy(pthread_attr_t *, int); extern int pthread_attr_getschedpolicy(const pthread_attr_t *, int *); extern int pthread_attr_setschedparam(pthread_attr_t *, const struct sched_param *); extern int pthread_attr_getschedparam(const pthread_attr_t *, struct sched_param *); extern int pthread_create(pthread_t *, const pthread_attr_t *, void * (*)(void *), void *); extern int pthread_once(pthread_once_t *, void (*)(void)); extern int pthread_join(pthread_t, void **); extern int pthread_detach(pthread_t); extern void pthread_exit(void *); extern int pthread_cancel(pthread_t); extern int pthread_setschedparam(pthread_t, int, const struct sched_param *); extern int pthread_getschedparam(pthread_t, int *, struct sched_param *); extern int pthread_setcancelstate(int, int *); extern int pthread_setcanceltype(int, int *); extern void pthread_testcancel(void); extern int pthread_equal(pthread_t, pthread_t); extern int pthread_key_create(pthread_key_t *, void (*)(void *)); extern int pthread_key_delete(pthread_key_t); extern int pthread_setspecific(pthread_key_t, const void *); extern void *pthread_getspecific(pthread_key_t); extern pthread_t pthread_self(void); extern int pthread_mutexattr_init(pthread_mutexattr_t *); extern int pthread_mutexattr_destroy(pthread_mutexattr_t *); extern int pthread_mutexattr_setpshared(pthread_mutexattr_t *, int); extern int pthread_mutexattr_getpshared(const pthread_mutexattr_t *, int *); extern int pthread_mutexattr_setprotocol(pthread_mutexattr_t *, int); extern int pthread_mutexattr_getprotocol(const pthread_mutexattr_t *, int *); extern int pthread_mutexattr_setprioceiling(pthread_mutexattr_t *, int); extern int pthread_mutexattr_getprioceiling(const pthread_mutexattr_t *, int *); extern int pthread_mutex_init(pthread_mutex_t *, const pthread_mutexattr_t *); extern int pthread_mutex_destroy(pthread_mutex_t *); extern int pthread_mutex_lock(pthread_mutex_t *); extern int pthread_mutex_unlock(pthread_mutex_t *); extern int pthread_mutex_trylock(pthread_mutex_t *); extern int pthread_mutex_setprioceiling(pthread_mutex_t *, int, int *); extern int pthread_mutex_getprioceiling(pthread_mutex_t *, int *); extern int pthread_condattr_init(pthread_condattr_t *); extern int pthread_condattr_destroy(pthread_condattr_t *); extern int pthread_condattr_setpshared(pthread_condattr_t *, int); extern int pthread_condattr_getpshared(const pthread_condattr_t *, int *); extern int pthread_cond_init(pthread_cond_t *, const pthread_condattr_t *); extern int pthread_cond_destroy(pthread_cond_t *); extern int pthread_cond_broadcast(pthread_cond_t *); extern int pthread_cond_signal(pthread_cond_t *); extern int pthread_cond_wait(pthread_cond_t *, pthread_mutex_t *); extern int pthread_cond_timedwait(pthread_cond_t *, pthread_mutex_t *, const struct timespec *); extern int pthread_attr_getguardsize(const pthread_attr_t *, size_t *); extern int pthread_attr_setguardsize(pthread_attr_t *, size_t); extern int pthread_getconcurrency(void); extern int pthread_setconcurrency(int newval); extern int pthread_mutexattr_settype(pthread_mutexattr_t *, int); extern int pthread_mutexattr_gettype(const pthread_mutexattr_t *, int *); extern int pthread_rwlock_init(pthread_rwlock_t *, const pthread_rwlockattr_t *); extern int pthread_rwlock_destroy(pthread_rwlock_t *); extern int pthread_rwlock_rdlock(pthread_rwlock_t *); extern int pthread_rwlock_tryrdlock(pthread_rwlock_t *); extern int pthread_rwlock_wrlock(pthread_rwlock_t *); extern int pthread_rwlock_trywrlock(pthread_rwlock_t *); extern int pthread_rwlock_unlock(pthread_rwlock_t *); extern int pthread_rwlockattr_init(pthread_rwlockattr_t *); extern int pthread_rwlockattr_destroy(pthread_rwlockattr_t *); extern int pthread_rwlockattr_getpshared(const pthread_rwlockattr_t *, int *); extern int pthread_rwlockattr_setpshared(pthread_rwlockattr_t *, int); # 312 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/pthread.h" 3 4 } # 38 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/sparc-sun-solaris2.7/bits/gthr-default.h" 2 3 typedef pthread_key_t __gthread_key_t; typedef pthread_once_t __gthread_once_t; typedef pthread_mutex_t __gthread_mutex_t; #pragma weak pthread_once #pragma weak pthread_key_create #pragma weak pthread_key_delete #pragma weak pthread_getspecific #pragma weak pthread_setspecific #pragma weak pthread_create #pragma weak pthread_mutex_lock #pragma weak pthread_mutex_trylock #pragma weak pthread_mutex_unlock # 80 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/sparc-sun-solaris2.7/bits/gthr-default.h" 3 static inline int __gthread_active_p (void) { static void *const __gthread_active_ptr = (void *) &pthread_create; return __gthread_active_ptr != 0; } # 437 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/sparc-sun-solaris2.7/bits/gthr-default.h" 3 static inline int __gthread_once (__gthread_once_t *once, void (*func) (void)) { if (__gthread_active_p ()) return pthread_once (once, func); else return -1; } static inline int __gthread_key_create (__gthread_key_t *key, void (*dtor) (void *)) { return pthread_key_create (key, dtor); } static inline int __gthread_key_dtor (__gthread_key_t key, void *ptr) { if (ptr) return pthread_setspecific (key, 0); else return 0; } static inline int __gthread_key_delete (__gthread_key_t key) { return pthread_key_delete (key); } static inline void * __gthread_getspecific (__gthread_key_t key) { return pthread_getspecific (key); } static inline int __gthread_setspecific (__gthread_key_t key, const void *ptr) { return pthread_setspecific (key, ptr); } static inline int __gthread_mutex_lock (__gthread_mutex_t *mutex) { if (__gthread_active_p ()) return pthread_mutex_lock (mutex); else return 0; } static inline int __gthread_mutex_trylock (__gthread_mutex_t *mutex) { if (__gthread_active_p ()) return pthread_mutex_trylock (mutex); else return 0; } static inline int __gthread_mutex_unlock (__gthread_mutex_t *mutex) { if (__gthread_active_p ()) return pthread_mutex_unlock (mutex); else return 0; } # 99 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/sparc-sun-solaris2.7/bits/gthr.h" 2 3 # 38 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/sparc-sun-solaris2.7/bits/c++io.h" 2 3 namespace std { typedef long streamoff; typedef ptrdiff_t streamsize; typedef fpos_t __c_streampos; typedef __gthread_mutex_t __c_lock; typedef FILE __c_file; struct __ios_flags { typedef short __int_type; static const __int_type _S_boolalpha = 0x0001; static const __int_type _S_dec = 0x0002; static const __int_type _S_fixed = 0x0004; static const __int_type _S_hex = 0x0008; static const __int_type _S_internal = 0x0010; static const __int_type _S_left = 0x0020; static const __int_type _S_oct = 0x0040; static const __int_type _S_right = 0x0080; static const __int_type _S_scientific = 0x0100; static const __int_type _S_showbase = 0x0200; static const __int_type _S_showpoint = 0x0400; static const __int_type _S_showpos = 0x0800; static const __int_type _S_skipws = 0x1000; static const __int_type _S_unitbuf = 0x2000; static const __int_type _S_uppercase = 0x4000; static const __int_type _S_adjustfield = 0x0020 | 0x0080 | 0x0010; static const __int_type _S_basefield = 0x0002 | 0x0040 | 0x0008; static const __int_type _S_floatfield = 0x0100 | 0x0004; static const __int_type _S_badbit = 0x01; static const __int_type _S_eofbit = 0x02; static const __int_type _S_failbit = 0x04; static const __int_type _S_app = 0x01; static const __int_type _S_ate = 0x02; static const __int_type _S_bin = 0x04; static const __int_type _S_in = 0x08; static const __int_type _S_out = 0x10; static const __int_type _S_trunc = 0x20; }; } # 45 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/fpos.h" 2 3 # 1 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/cwchar" 1 3 # 48 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/cwchar" 3 # 1 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/ctime" 1 3 # 48 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/ctime" 3 # 64 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/ctime" 3 namespace std { using ::clock_t; using ::time_t; using ::tm; using ::clock; using ::difftime; using ::mktime; using ::time; using ::asctime; using ::ctime; using ::gmtime; using ::localtime; using ::strftime; } # 52 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/cwchar" 2 3 # 1 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/wchar.h" 1 3 4 # 18 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/wchar.h" 3 4 #pragma ident "@(#)wchar.h 1.31 98/05/04 SMI" # 1 "/usr/include/wchar_impl.h" 1 3 4 # 9 "/usr/include/wchar_impl.h" 3 4 #pragma ident "@(#)wchar_impl.h 1.2 98/02/27 SMI" extern "C" { typedef struct { int __filler[6]; } __mbstate_t; } # 24 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/wchar.h" 2 3 4 # 33 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/wchar.h" 3 4 # 1 "/usr/include/ctype.h" 1 3 4 # 16 "/usr/include/ctype.h" 3 4 #pragma ident "@(#)ctype.h 1.30 98/01/16 SMI" extern "C" { # 48 "/usr/include/ctype.h" 3 4 extern int isalnum(int); extern int isalpha(int); extern int iscntrl(int); extern int isdigit(int); extern int isgraph(int); extern int islower(int); extern int isprint(int); extern int ispunct(int); extern int isspace(int); extern int isupper(int); extern int isxdigit(int); extern int tolower(int); extern int toupper(int); extern int isascii(int); extern int toascii(int); extern int _tolower(int); extern int _toupper(int); extern unsigned char __ctype[]; extern unsigned int *__ctype_mask; extern int *__trans_upper; extern int *__trans_lower; # 163 "/usr/include/ctype.h" 3 4 } # 34 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/wchar.h" 2 3 4 # 1 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/stddef.h" 1 3 4 # 35 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/wchar.h" 2 3 4 extern "C" { # 61 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/wchar.h" 3 4 typedef long wint_t; typedef int wctype_t; # 103 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/wchar.h" 3 4 typedef __mbstate_t mbstate_t; # 113 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/wchar.h" 3 4 extern int iswalpha(wint_t); extern int iswupper(wint_t); extern int iswlower(wint_t); extern int iswdigit(wint_t); extern int iswxdigit(wint_t); extern int iswalnum(wint_t); extern int iswspace(wint_t); extern int iswpunct(wint_t); extern int iswprint(wint_t); extern int iswgraph(wint_t); extern int iswcntrl(wint_t); extern int iswctype(wint_t, wctype_t); extern wint_t towlower(wint_t); extern wint_t towupper(wint_t); extern wint_t fgetwc(__FILE *); extern wchar_t *fgetws(wchar_t *, int, __FILE *); extern wint_t fputwc(wint_t, __FILE *); extern int fputws(const wchar_t *, __FILE *); extern wint_t ungetwc(wint_t, __FILE *); extern wint_t getwc(__FILE *); extern wint_t getwchar(void); extern wint_t putwc(wint_t, __FILE *); extern wint_t putwchar(wint_t); extern double wcstod(const wchar_t *, wchar_t **); extern long wcstol(const wchar_t *, wchar_t **, int); extern unsigned long wcstoul(const wchar_t *, wchar_t **, int); extern wchar_t *wcscat(wchar_t *, const wchar_t *); extern wchar_t *wcschr(const wchar_t *, wchar_t); extern int wcscmp(const wchar_t *, const wchar_t *); extern int wcscoll(const wchar_t *, const wchar_t *); extern wchar_t *wcscpy(wchar_t *, const wchar_t *); extern size_t wcscspn(const wchar_t *, const wchar_t *); extern size_t wcslen(const wchar_t *); extern wchar_t *wcsncat(wchar_t *, const wchar_t *, size_t); extern int wcsncmp(const wchar_t *, const wchar_t *, size_t); extern wchar_t *wcsncpy(wchar_t *, const wchar_t *, size_t); extern wchar_t *wcspbrk(const wchar_t *, const wchar_t *); extern wchar_t *wcsrchr(const wchar_t *, wchar_t); extern size_t wcsspn(const wchar_t *, const wchar_t *); extern wchar_t *wcswcs(const wchar_t *, const wchar_t *); extern int wcswidth(const wchar_t *, size_t); extern size_t wcsxfrm(wchar_t *, const wchar_t *, size_t); extern int wcwidth(const wchar_t); extern wctype_t wctype(const char *); extern wchar_t *wcstok(wchar_t *, const wchar_t *, wchar_t **); extern size_t wcsftime(wchar_t *, size_t, const wchar_t *, const struct tm *); #pragma redefine_extname wcstok __wcstok_xpg5 #pragma redefine_extname wcsftime __wcsftime_xpg5 # 180 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/wchar.h" 3 4 extern wint_t btowc(int); extern int fwprintf(__FILE *, const wchar_t *, ...); extern int fwscanf(__FILE *, const wchar_t *, ...); extern int fwide(__FILE *, int); extern int mbsinit(const mbstate_t *); extern size_t mbrlen(const char *, size_t, mbstate_t *); extern size_t mbrtowc(wchar_t *, const char *, size_t, mbstate_t *); extern size_t mbsrtowcs(wchar_t *, const char **, size_t, mbstate_t *); extern int swprintf(wchar_t *, size_t, const wchar_t *, ...); extern int swscanf(const wchar_t *, const wchar_t *, ...); extern int vfwprintf(__FILE *, const wchar_t *, __va_list); extern int vwprintf(const wchar_t *, __va_list); extern int vswprintf(wchar_t *, size_t, const wchar_t *, __va_list); extern size_t wcrtomb(char *, wchar_t, mbstate_t *); extern size_t wcsrtombs(char *, const wchar_t **, size_t, mbstate_t *); extern wchar_t *wcsstr(const wchar_t *, const wchar_t *); extern int wctob(wint_t); extern wchar_t *wmemchr(const wchar_t *, wchar_t, size_t); extern int wmemcmp(const wchar_t *, const wchar_t *, size_t); extern wchar_t *wmemcpy(wchar_t *, const wchar_t *, size_t); extern wchar_t *wmemmove(wchar_t *, const wchar_t *, size_t); extern wchar_t *wmemset(wchar_t *, wchar_t, size_t); extern int wprintf(const wchar_t *, ...); extern int wscanf(const wchar_t *, ...); # 307 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/wchar.h" 3 4 #pragma redefine_extname fgetwc __fgetwc_xpg5 #pragma redefine_extname getwc __getwc_xpg5 #pragma redefine_extname getwchar __getwchar_xpg5 #pragma redefine_extname fputwc __fputwc_xpg5 #pragma redefine_extname putwc __putwc_xpg5 #pragma redefine_extname putwchar __putwchar_xpg5 #pragma redefine_extname fgetws __fgetws_xpg5 #pragma redefine_extname fputws __fputws_xpg5 #pragma redefine_extname ungetwc __ungetwc_xpg5 # 352 "/cm/tools/paks/gcc-3.2.1/lib/gcc-lib/sparc-sun-solaris2.7/3.2.1/include/wchar.h" 3 4 } # 55 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/cwchar" 2 3 # 69 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/cwchar" 3 namespace std { using ::mbstate_t; } # 46 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/fpos.h" 2 3 namespace std { template class fpos { public: typedef _StateT __state_type; private: streamoff _M_off; __state_type _M_st; public: __state_type state() const { return _M_st; } void state(__state_type __st) { _M_st = __st; } fpos(): _M_off(streamoff()), _M_st(__state_type()) { } fpos(streamoff __off, __state_type __st = __state_type()) : _M_off(__off), _M_st(__st) { } operator streamoff() const { return _M_off; } fpos& operator+=(streamoff __off) { _M_off += __off; return *this; } fpos& operator-=(streamoff __off) { _M_off -= __off; return *this; } fpos operator+(streamoff __off) { fpos __t(*this); __t += __off; return __t; } fpos operator-(streamoff __off) { fpos __t(*this); __t -= __off; return __t; } bool operator==(const fpos& __pos) const { return _M_off == __pos._M_off; } bool operator!=(const fpos& __pos) const { return _M_off != __pos._M_off; } streamoff _M_position() const { return _M_off; } void _M_position(streamoff __off) { _M_off = __off; } }; typedef fpos streampos; } # 47 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/iosfwd" 2 3 # 1 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/functexcept.h" 1 3 # 34 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/functexcept.h" 3 # 1 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/exception_defines.h" 1 3 # 35 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/functexcept.h" 2 3 namespace std { void __throw_bad_exception(void); void __throw_bad_alloc(void); void __throw_bad_cast(void); void __throw_bad_typeid(void); void __throw_logic_error(const char* __s); void __throw_domain_error(const char* __s); void __throw_invalid_argument(const char* __s); void __throw_length_error(const char* __s); void __throw_out_of_range(const char* __s); void __throw_runtime_error(const char* __s); void __throw_range_error(const char* __s); void __throw_overflow_error(const char* __s); void __throw_underflow_error(const char* __s); void __throw_ios_failure(const char* __s); } # 48 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/iosfwd" 2 3 namespace std { template > class basic_ios; template > class basic_streambuf; template > class basic_istream; template > class basic_ostream; template > class basic_iostream; template, typename _Alloc = allocator<_CharT> > class basic_stringbuf; template, typename _Alloc = allocator<_CharT> > class basic_istringstream; template, typename _Alloc = allocator<_CharT> > class basic_ostringstream; template, typename _Alloc = allocator<_CharT> > class basic_stringstream; template > class basic_filebuf; template > class basic_ifstream; template > class basic_ofstream; template > class basic_fstream; template > class istreambuf_iterator; template > class ostreambuf_iterator; class ios_base; typedef basic_ios ios; typedef basic_streambuf streambuf; typedef basic_istream istream; typedef basic_ostream ostream; typedef basic_iostream iostream; typedef basic_stringbuf stringbuf; typedef basic_istringstream istringstream; typedef basic_ostringstream ostringstream; typedef basic_stringstream stringstream; typedef basic_filebuf filebuf; typedef basic_ifstream ifstream; typedef basic_ofstream ofstream; typedef basic_fstream fstream; # 134 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/iosfwd" 3 } # 71 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_algobase.h" 2 3 # 1 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_pair.h" 1 3 # 64 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_pair.h" 3 namespace std { template struct pair { typedef _T1 first_type; typedef _T2 second_type; _T1 first; _T2 second; pair() : first(), second() {} pair(const _T1& __a, const _T2& __b) : first(__a), second(__b) {} template pair(const pair<_U1, _U2>& __p) : first(__p.first), second(__p.second) {} }; template inline bool operator==(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) { return __x.first == __y.first && __x.second == __y.second; } template inline bool operator<(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) { return __x.first < __y.first || (!(__y.first < __x.first) && __x.second < __y.second); } template inline bool operator!=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) { return !(__x == __y); } template inline bool operator>(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) { return __y < __x; } template inline bool operator<=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) { return !(__y < __x); } template inline bool operator>=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) { return !(__x < __y); } # 140 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_pair.h" 3 template inline pair<_T1, _T2> make_pair(_T1 __x, _T2 __y) { return pair<_T1, _T2>(__x, __y); } } # 72 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_algobase.h" 2 3 # 1 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/type_traits.h" 1 3 # 53 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/type_traits.h" 3 # 90 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/type_traits.h" 3 struct __true_type {}; struct __false_type {}; template struct __type_traits { typedef __true_type this_dummy_member_must_be_first; # 113 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/type_traits.h" 3 typedef __false_type has_trivial_default_constructor; typedef __false_type has_trivial_copy_constructor; typedef __false_type has_trivial_assignment_operator; typedef __false_type has_trivial_destructor; typedef __false_type is_POD_type; }; template<> struct __type_traits { typedef __true_type has_trivial_default_constructor; typedef __true_type has_trivial_copy_constructor; typedef __true_type has_trivial_assignment_operator; typedef __true_type has_trivial_destructor; typedef __true_type is_POD_type; }; template<> struct __type_traits { typedef __true_type has_trivial_default_constructor; typedef __true_type has_trivial_copy_constructor; typedef __true_type has_trivial_assignment_operator; typedef __true_type has_trivial_destructor; typedef __true_type is_POD_type; }; template<> struct __type_traits { typedef __true_type has_trivial_default_constructor; typedef __true_type has_trivial_copy_constructor; typedef __true_type has_trivial_assignment_operator; typedef __true_type has_trivial_destructor; typedef __true_type is_POD_type; }; template<> struct __type_traits { typedef __true_type has_trivial_default_constructor; typedef __true_type has_trivial_copy_constructor; typedef __true_type has_trivial_assignment_operator; typedef __true_type has_trivial_destructor; typedef __true_type is_POD_type; }; template<> struct __type_traits { typedef __true_type has_trivial_default_constructor; typedef __true_type has_trivial_copy_constructor; typedef __true_type has_trivial_assignment_operator; typedef __true_type has_trivial_destructor; typedef __true_type is_POD_type; }; template<> struct __type_traits { typedef __true_type has_trivial_default_constructor; typedef __true_type has_trivial_copy_constructor; typedef __true_type has_trivial_assignment_operator; typedef __true_type has_trivial_destructor; typedef __true_type is_POD_type; }; template<> struct __type_traits { typedef __true_type has_trivial_default_constructor; typedef __true_type has_trivial_copy_constructor; typedef __true_type has_trivial_assignment_operator; typedef __true_type has_trivial_destructor; typedef __true_type is_POD_type; }; template<> struct __type_traits { typedef __true_type has_trivial_default_constructor; typedef __true_type has_trivial_copy_constructor; typedef __true_type has_trivial_assignment_operator; typedef __true_type has_trivial_destructor; typedef __true_type is_POD_type; }; template<> struct __type_traits { typedef __true_type has_trivial_default_constructor; typedef __true_type has_trivial_copy_constructor; typedef __true_type has_trivial_assignment_operator; typedef __true_type has_trivial_destructor; typedef __true_type is_POD_type; }; template<> struct __type_traits { typedef __true_type has_trivial_default_constructor; typedef __true_type has_trivial_copy_constructor; typedef __true_type has_trivial_assignment_operator; typedef __true_type has_trivial_destructor; typedef __true_type is_POD_type; }; template<> struct __type_traits { typedef __true_type has_trivial_default_constructor; typedef __true_type has_trivial_copy_constructor; typedef __true_type has_trivial_assignment_operator; typedef __true_type has_trivial_destructor; typedef __true_type is_POD_type; }; template<> struct __type_traits { typedef __true_type has_trivial_default_constructor; typedef __true_type has_trivial_copy_constructor; typedef __true_type has_trivial_assignment_operator; typedef __true_type has_trivial_destructor; typedef __true_type is_POD_type; }; template<> struct __type_traits { typedef __true_type has_trivial_default_constructor; typedef __true_type has_trivial_copy_constructor; typedef __true_type has_trivial_assignment_operator; typedef __true_type has_trivial_destructor; typedef __true_type is_POD_type; }; template<> struct __type_traits { typedef __true_type has_trivial_default_constructor; typedef __true_type has_trivial_copy_constructor; typedef __true_type has_trivial_assignment_operator; typedef __true_type has_trivial_destructor; typedef __true_type is_POD_type; }; template<> struct __type_traits { typedef __true_type has_trivial_default_constructor; typedef __true_type has_trivial_copy_constructor; typedef __true_type has_trivial_assignment_operator; typedef __true_type has_trivial_destructor; typedef __true_type is_POD_type; }; template<> struct __type_traits { typedef __true_type has_trivial_default_constructor; typedef __true_type has_trivial_copy_constructor; typedef __true_type has_trivial_assignment_operator; typedef __true_type has_trivial_destructor; typedef __true_type is_POD_type; }; template struct __type_traits<_Tp*> { typedef __true_type has_trivial_default_constructor; typedef __true_type has_trivial_copy_constructor; typedef __true_type has_trivial_assignment_operator; typedef __true_type has_trivial_destructor; typedef __true_type is_POD_type; }; template struct _Is_integer { typedef __false_type _Integral; }; template<> struct _Is_integer { typedef __true_type _Integral; }; template<> struct _Is_integer { typedef __true_type _Integral; }; template<> struct _Is_integer { typedef __true_type _Integral; }; template<> struct _Is_integer { typedef __true_type _Integral; }; template<> struct _Is_integer { typedef __true_type _Integral; }; template<> struct _Is_integer { typedef __true_type _Integral; }; template<> struct _Is_integer { typedef __true_type _Integral; }; template<> struct _Is_integer { typedef __true_type _Integral; }; template<> struct _Is_integer { typedef __true_type _Integral; }; template<> struct _Is_integer { typedef __true_type _Integral; }; template<> struct _Is_integer { typedef __true_type _Integral; }; template<> struct _Is_integer { typedef __true_type _Integral; }; template<> struct _Is_integer { typedef __true_type _Integral; }; template struct _Is_normal_iterator { typedef __false_type _Normal; }; namespace __gnu_cxx { template class __normal_iterator; } template struct _Is_normal_iterator< __gnu_cxx::__normal_iterator<_Iterator, _Container> > { typedef __true_type _Normal; }; # 73 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_algobase.h" 2 3 # 1 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_iterator_base_types.h" 1 3 # 68 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_iterator_base_types.h" 3 namespace std { # 80 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_iterator_base_types.h" 3 struct input_iterator_tag {}; struct output_iterator_tag {}; struct forward_iterator_tag : public input_iterator_tag {}; struct bidirectional_iterator_tag : public forward_iterator_tag {}; struct random_access_iterator_tag : public bidirectional_iterator_tag {}; # 100 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_iterator_base_types.h" 3 template struct iterator { typedef _Category iterator_category; typedef _Tp value_type; typedef _Distance difference_type; typedef _Pointer pointer; typedef _Reference reference; }; template struct iterator_traits { typedef typename _Iterator::iterator_category iterator_category; typedef typename _Iterator::value_type value_type; typedef typename _Iterator::difference_type difference_type; typedef typename _Iterator::pointer pointer; typedef typename _Iterator::reference reference; }; template struct iterator_traits<_Tp*> { typedef random_access_iterator_tag iterator_category; typedef _Tp value_type; typedef ptrdiff_t difference_type; typedef _Tp* pointer; typedef _Tp& reference; }; template struct iterator_traits { typedef random_access_iterator_tag iterator_category; typedef _Tp value_type; typedef ptrdiff_t difference_type; typedef const _Tp* pointer; typedef const _Tp& reference; }; template inline typename iterator_traits<_Iter>::iterator_category __iterator_category(const _Iter&) { return typename iterator_traits<_Iter>::iterator_category(); } } # 74 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_algobase.h" 2 3 # 1 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_iterator_base_funcs.h" 1 3 # 68 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_iterator_base_funcs.h" 3 # 1 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/concept_check.h" 1 3 # 39 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/concept_check.h" 3 # 60 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/concept_check.h" 3 # 1 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/boost_concept_check.h" 1 3 # 20 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/boost_concept_check.h" 3 # 1 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/utility" 1 3 # 65 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/utility" 3 # 1 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_relops.h" 1 3 # 74 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_relops.h" 3 namespace std { namespace rel_ops { # 90 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_relops.h" 3 template inline bool operator!=(const _Tp& __x, const _Tp& __y) { return !(__x == __y); } # 103 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_relops.h" 3 template inline bool operator>(const _Tp& __x, const _Tp& __y) { return __y < __x; } # 116 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_relops.h" 3 template inline bool operator<=(const _Tp& __x, const _Tp& __y) { return !(__y < __x); } # 129 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_relops.h" 3 template inline bool operator>=(const _Tp& __x, const _Tp& __y) { return !(__x < __y); } } } # 67 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/utility" 2 3 # 23 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/boost_concept_check.h" 2 3 namespace __gnu_cxx { template inline void __function_requires() { void (_Concept::*__x)() __attribute__ ((__unused__)) = &_Concept::__constraints; } # 74 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/boost_concept_check.h" 3 template struct _Aux_require_same { }; template struct _Aux_require_same<_Tp,_Tp> { typedef _Tp _Type; }; template struct _SameTypeConcept { void __constraints() { typedef typename _Aux_require_same<_Tp1, _Tp2>::_Type _Required; } }; template struct _IntegerConcept { void __constraints() { __error_type_must_be_an_integer_type(); } }; template <> struct _IntegerConcept { void __constraints() {} }; template <> struct _IntegerConcept { void __constraints(){} }; template <> struct _IntegerConcept { void __constraints() {} }; template <> struct _IntegerConcept { void __constraints() {} }; template <> struct _IntegerConcept { void __constraints() {} }; template <> struct _IntegerConcept { void __constraints() {} }; template <> struct _IntegerConcept { void __constraints() {} }; template <> struct _IntegerConcept { void __constraints() {} }; template struct _SignedIntegerConcept { void __constraints() { __error_type_must_be_a_signed_integer_type(); } }; template <> struct _SignedIntegerConcept { void __constraints() {} }; template <> struct _SignedIntegerConcept { void __constraints() {} }; template <> struct _SignedIntegerConcept { void __constraints() {} }; template <> struct _SignedIntegerConcept { void __constraints(){}}; template struct _UnsignedIntegerConcept { void __constraints() { __error_type_must_be_an_unsigned_integer_type(); } }; template <> struct _UnsignedIntegerConcept { void __constraints() {} }; template <> struct _UnsignedIntegerConcept { void __constraints() {} }; template <> struct _UnsignedIntegerConcept { void __constraints() {} }; template <> struct _UnsignedIntegerConcept { void __constraints() {} }; template struct _DefaultConstructibleConcept { void __constraints() { _Tp __a __attribute__ ((__unused__)); } }; template struct _AssignableConcept { void __constraints() { __a = __a; __const_constraints(__a); } void __const_constraints(const _Tp& __b) { __a = __b; } _Tp __a; }; template struct _CopyConstructibleConcept { void __constraints() { _Tp __a(__b); _Tp* __ptr __attribute__ ((__unused__)) = &__a; __const_constraints(__a); } void __const_constraints(const _Tp& __a) { _Tp __c(__a) __attribute__ ((__unused__)); const _Tp* __ptr __attribute__ ((__unused__)) = &__a; } _Tp __b; }; template struct _SGIAssignableConcept { void __constraints() { _Tp __b(__a) __attribute__ ((__unused__)); __a = __a; __const_constraints(__a); } void __const_constraints(const _Tp& __b) { _Tp __c(__b) __attribute__ ((__unused__)); __a = __b; } _Tp __a; }; template struct _ConvertibleConcept { void __constraints() { _To __y __attribute__ ((__unused__)) = __x; } _From __x; }; # 203 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/boost_concept_check.h" 3 template void __aux_require_boolean_expr(const _Tp& __t) { bool __x __attribute__ ((__unused__)) = __t; } template struct _EqualityComparableConcept { void __constraints() { __aux_require_boolean_expr(__a == __b); __aux_require_boolean_expr(__a != __b); } _Tp __a, __b; }; template struct _LessThanComparableConcept { void __constraints() { __aux_require_boolean_expr(__a < __b); } _Tp __a, __b; }; template struct _ComparableConcept { void __constraints() { __aux_require_boolean_expr(__a < __b); __aux_require_boolean_expr(__a > __b); __aux_require_boolean_expr(__a <= __b); __aux_require_boolean_expr(__a >= __b); } _Tp __a, __b; }; # 263 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/boost_concept_check.h" 3 template struct _EqualOpConcept { void __constraints() { (void)__constraints_(); } bool __constraints_() { return __a == __b; } _First __a; _Second __b; }; template struct _NotEqualOpConcept { void __constraints() { (void)__constraints_(); } bool __constraints_() { return __a != __b; } _First __a; _Second __b; }; template struct _LessThanOpConcept { void __constraints() { (void)__constraints_(); } bool __constraints_() { return __a < __b; } _First __a; _Second __b; }; template struct _LessEqualOpConcept { void __constraints() { (void)__constraints_(); } bool __constraints_() { return __a <= __b; } _First __a; _Second __b; }; template struct _GreaterThanOpConcept { void __constraints() { (void)__constraints_(); } bool __constraints_() { return __a > __b; } _First __a; _Second __b; }; template struct _GreaterEqualOpConcept { void __constraints() { (void)__constraints_(); } bool __constraints_() { return __a >= __b; } _First __a; _Second __b; }; template struct _PlusOpConcept { void __constraints() { (void)__constraints_(); } _Ret __constraints_() { return __a + __b; } _First __a; _Second __b; }; template struct _TimesOpConcept { void __constraints() { (void)__constraints_(); } _Ret __constraints_() { return __a * __b; } _First __a; _Second __b; }; template struct _DivideOpConcept { void __constraints() { (void)__constraints_(); } _Ret __constraints_() { return __a / __b; } _First __a; _Second __b; }; template struct _SubtractOpConcept { void __constraints() { (void)__constraints_(); } _Ret __constraints_() { return __a - __b; } _First __a; _Second __b; }; template struct _ModOpConcept { void __constraints() { (void)__constraints_(); } _Ret __constraints_() { return __a % __b; } _First __a; _Second __b; }; template struct _GeneratorConcept { void __constraints() { const _Return& __r __attribute__ ((__unused__)) = __f(); } _Func __f; }; template struct _GeneratorConcept<_Func,void> { void __constraints() { __f(); } _Func __f; }; template struct _UnaryFunctionConcept { void __constraints() { __r = __f(__arg); } _Func __f; _Arg __arg; _Return __r; }; template struct _UnaryFunctionConcept<_Func, void, _Arg> { void __constraints() { __f(__arg); } _Func __f; _Arg __arg; }; template struct _BinaryFunctionConcept { void __constraints() { __r = __f(__first, __second); } _Func __f; _First __first; _Second __second; _Return __r; }; template struct _BinaryFunctionConcept<_Func, void, _First, _Second> { void __constraints() { __f(__first, __second); } _Func __f; _First __first; _Second __second; }; template struct _UnaryPredicateConcept { void __constraints() { __aux_require_boolean_expr(__f(__arg)); } _Func __f; _Arg __arg; }; template struct _BinaryPredicateConcept { void __constraints() { __aux_require_boolean_expr(__f(__a, __b)); } _Func __f; _First __a; _Second __b; }; template struct _Const_BinaryPredicateConcept { void __constraints() { __const_constraints(__f); } void __const_constraints(const _Func& __fun) { __function_requires<_BinaryPredicateConcept<_Func, _First, _Second> >(); __aux_require_boolean_expr(__fun(__a, __b)); } _Func __f; _First __a; _Second __b; }; template struct _TrivialIteratorConcept { void __constraints() { __function_requires< _DefaultConstructibleConcept<_Tp> >(); __function_requires< _AssignableConcept<_Tp> >(); __function_requires< _EqualityComparableConcept<_Tp> >(); (void)*__i; } _Tp __i; }; template struct _Mutable_TrivialIteratorConcept { void __constraints() { __function_requires< _TrivialIteratorConcept<_Tp> >(); *__i = *__j; } _Tp __i, __j; }; template struct _InputIteratorConcept { void __constraints() { __function_requires< _TrivialIteratorConcept<_Tp> >(); typedef typename std::iterator_traits<_Tp>::difference_type _D; typedef typename std::iterator_traits<_Tp>::reference _R; typedef typename std::iterator_traits<_Tp>::pointer _Pt; typedef typename std::iterator_traits<_Tp>::iterator_category _Cat; __function_requires< _ConvertibleConcept< typename std::iterator_traits<_Tp>::iterator_category, std::input_iterator_tag> >(); ++__i; __i++; } _Tp __i; }; template struct _OutputIteratorConcept { void __constraints() { __function_requires< _AssignableConcept<_Tp> >(); ++__i; __i++; *__i++ = __t; } _Tp __i; _ValueT __t; }; template struct _ForwardIteratorConcept { void __constraints() { __function_requires< _InputIteratorConcept<_Tp> >(); __function_requires< _ConvertibleConcept< typename std::iterator_traits<_Tp>::iterator_category, std::forward_iterator_tag> >(); typedef typename std::iterator_traits<_Tp>::reference _R; _R __r __attribute__ ((__unused__)) = *__i; } _Tp __i; }; template struct _Mutable_ForwardIteratorConcept { void __constraints() { __function_requires< _ForwardIteratorConcept<_Tp> >(); *__i++ = *__i; } _Tp __i; }; template struct _BidirectionalIteratorConcept { void __constraints() { __function_requires< _ForwardIteratorConcept<_Tp> >(); __function_requires< _ConvertibleConcept< typename std::iterator_traits<_Tp>::iterator_category, std::bidirectional_iterator_tag> >(); --__i; __i--; } _Tp __i; }; template struct _Mutable_BidirectionalIteratorConcept { void __constraints() { __function_requires< _BidirectionalIteratorConcept<_Tp> >(); __function_requires< _Mutable_ForwardIteratorConcept<_Tp> >(); *__i-- = *__i; } _Tp __i; }; template struct _RandomAccessIteratorConcept { void __constraints() { __function_requires< _BidirectionalIteratorConcept<_Tp> >(); __function_requires< _ComparableConcept<_Tp> >(); __function_requires< _ConvertibleConcept< typename std::iterator_traits<_Tp>::iterator_category, std::random_access_iterator_tag> >(); typedef typename std::iterator_traits<_Tp>::reference _R; __i += __n; __i = __i + __n; __i = __n + __i; __i -= __n; __i = __i - __n; __n = __i - __j; (void)__i[__n]; } _Tp __a, __b; _Tp __i, __j; typename std::iterator_traits<_Tp>::difference_type __n; }; template struct _Mutable_RandomAccessIteratorConcept { void __constraints() { __function_requires< _RandomAccessIteratorConcept<_Tp> >(); __function_requires< _Mutable_BidirectionalIteratorConcept<_Tp> >(); __i[__n] = *__i; } _Tp __i; typename std::iterator_traits<_Tp>::difference_type __n; }; template struct _ContainerConcept { typedef typename _Container::value_type _Value_type; typedef typename _Container::difference_type _Difference_type; typedef typename _Container::size_type _Size_type; typedef typename _Container::const_reference _Const_reference; typedef typename _Container::const_pointer _Const_pointer; typedef typename _Container::const_iterator _Const_iterator; void __constraints() { __function_requires< _InputIteratorConcept<_Const_iterator> >(); __function_requires< _AssignableConcept<_Container> >(); const _Container __c; __i = __c.begin(); __i = __c.end(); __n = __c.size(); __n = __c.max_size(); __b = __c.empty(); } bool __b; _Const_iterator __i; _Size_type __n; }; template struct _Mutable_ContainerConcept { typedef typename _Container::value_type _Value_type; typedef typename _Container::reference _Reference; typedef typename _Container::iterator _Iterator; typedef typename _Container::pointer _Pointer; void __constraints() { __function_requires< _ContainerConcept<_Container> >(); __function_requires< _AssignableConcept<_Value_type> >(); __function_requires< _InputIteratorConcept<_Iterator> >(); __i = __c.begin(); __i = __c.end(); __c.swap(__c2); } _Iterator __i; _Container __c, __c2; }; template struct _ForwardContainerConcept { void __constraints() { __function_requires< _ContainerConcept<_ForwardContainer> >(); typedef typename _ForwardContainer::const_iterator _Const_iterator; __function_requires< _ForwardIteratorConcept<_Const_iterator> >(); } }; template struct _Mutable_ForwardContainerConcept { void __constraints() { __function_requires< _ForwardContainerConcept<_ForwardContainer> >(); __function_requires< _Mutable_ContainerConcept<_ForwardContainer> >(); typedef typename _ForwardContainer::iterator _Iterator; __function_requires< _Mutable_ForwardIteratorConcept<_Iterator> >(); } }; template struct _ReversibleContainerConcept { typedef typename _ReversibleContainer::const_iterator _Const_iterator; typedef typename _ReversibleContainer::const_reverse_iterator _Const_reverse_iterator; void __constraints() { __function_requires< _ForwardContainerConcept<_ReversibleContainer> >(); __function_requires< _BidirectionalIteratorConcept<_Const_iterator> >(); __function_requires< _BidirectionalIteratorConcept<_Const_reverse_iterator> >(); const _ReversibleContainer __c; _Const_reverse_iterator __i = __c.rbegin(); __i = __c.rend(); } }; template struct _Mutable_ReversibleContainerConcept { typedef typename _ReversibleContainer::iterator _Iterator; typedef typename _ReversibleContainer::reverse_iterator _Reverse_iterator; void __constraints() { __function_requires<_ReversibleContainerConcept<_ReversibleContainer> >(); __function_requires< _Mutable_ForwardContainerConcept<_ReversibleContainer> >(); __function_requires<_Mutable_BidirectionalIteratorConcept<_Iterator> >(); __function_requires< _Mutable_BidirectionalIteratorConcept<_Reverse_iterator> >(); _Reverse_iterator __i = __c.rbegin(); __i = __c.rend(); } _ReversibleContainer __c; }; template struct _RandomAccessContainerConcept { typedef typename _RandomAccessContainer::size_type _Size_type; typedef typename _RandomAccessContainer::const_reference _Const_reference; typedef typename _RandomAccessContainer::const_iterator _Const_iterator; typedef typename _RandomAccessContainer::const_reverse_iterator _Const_reverse_iterator; void __constraints() { __function_requires< _ReversibleContainerConcept<_RandomAccessContainer> >(); __function_requires< _RandomAccessIteratorConcept<_Const_iterator> >(); __function_requires< _RandomAccessIteratorConcept<_Const_reverse_iterator> >(); const _RandomAccessContainer __c; _Const_reference __r __attribute__ ((__unused__)) = __c[__n]; } _Size_type __n; }; template struct _Mutable_RandomAccessContainerConcept { typedef typename _RandomAccessContainer::size_type _Size_type; typedef typename _RandomAccessContainer::reference _Reference; typedef typename _RandomAccessContainer::iterator _Iterator; typedef typename _RandomAccessContainer::reverse_iterator _Reverse_iterator; void __constraints() { __function_requires< _RandomAccessContainerConcept<_RandomAccessContainer> >(); __function_requires< _Mutable_ReversibleContainerConcept<_RandomAccessContainer> >(); __function_requires< _Mutable_RandomAccessIteratorConcept<_Iterator> >(); __function_requires< _Mutable_RandomAccessIteratorConcept<_Reverse_iterator> >(); _Reference __r __attribute__ ((__unused__)) = __c[__i]; } _Size_type __i; _RandomAccessContainer __c; }; template struct _SequenceConcept { typedef typename _Sequence::reference _Reference; typedef typename _Sequence::const_reference _Const_reference; void __constraints() { __function_requires< _Mutable_ForwardContainerConcept<_Sequence> >(); __function_requires< _DefaultConstructibleConcept<_Sequence> >(); _Sequence __c(__n) __attribute__ ((__unused__)), __c2(__n, __t) __attribute__ ((__unused__)), __c3(__first, __last) __attribute__ ((__unused__)); __c.insert(__p, __t); __c.insert(__p, __n, __t); __c.insert(__p, __first, __last); __c.erase(__p); __c.erase(__p, __q); _Reference __r __attribute__ ((__unused__)) = __c.front(); __const_constraints(__c); } void __const_constraints(const _Sequence& __c) { _Const_reference __r __attribute__ ((__unused__)) = __c.front(); } typename _Sequence::value_type __t; typename _Sequence::size_type __n; typename _Sequence::value_type *__first, *__last; typename _Sequence::iterator __p, __q; }; template struct _FrontInsertionSequenceConcept { void __constraints() { __function_requires< _SequenceConcept<_FrontInsertionSequence> >(); __c.push_front(__t); __c.pop_front(); } _FrontInsertionSequence __c; typename _FrontInsertionSequence::value_type __t; }; template struct _BackInsertionSequenceConcept { typedef typename _BackInsertionSequence::reference _Reference; typedef typename _BackInsertionSequence::const_reference _Const_reference; void __constraints() { __function_requires< _SequenceConcept<_BackInsertionSequence> >(); __c.push_back(__t); __c.pop_back(); _Reference __r __attribute__ ((__unused__)) = __c.back(); } void __const_constraints(const _BackInsertionSequence& __c) { _Const_reference __r __attribute__ ((__unused__)) = __c.back(); }; _BackInsertionSequence __c; typename _BackInsertionSequence::value_type __t; }; template struct _AssociativeContainerConcept { void __constraints() { __function_requires< _ForwardContainerConcept<_AssociativeContainer> >(); __function_requires< _DefaultConstructibleConcept<_AssociativeContainer> >(); __i = __c.find(__k); __r = __c.equal_range(__k); __c.erase(__k); __c.erase(__i); __c.erase(__r.first, __r.second); __const_constraints(__c); } void __const_constraints(const _AssociativeContainer& __c) { __ci = __c.find(__k); __n = __c.count(__k); __cr = __c.equal_range(__k); } typedef typename _AssociativeContainer::iterator _Iterator; typedef typename _AssociativeContainer::const_iterator _Const_iterator; _AssociativeContainer __c; _Iterator __i; std::pair<_Iterator,_Iterator> __r; _Const_iterator __ci; std::pair<_Const_iterator,_Const_iterator> __cr; typename _AssociativeContainer::key_type __k; typename _AssociativeContainer::size_type __n; }; template struct _UniqueAssociativeContainerConcept { void __constraints() { __function_requires< _AssociativeContainerConcept<_UniqueAssociativeContainer> >(); _UniqueAssociativeContainer __c(__first, __last); __pos_flag = __c.insert(__t); __c.insert(__first, __last); } std::pair __pos_flag; typename _UniqueAssociativeContainer::value_type __t; typename _UniqueAssociativeContainer::value_type *__first, *__last; }; template struct _MultipleAssociativeContainerConcept { void __constraints() { __function_requires< _AssociativeContainerConcept<_MultipleAssociativeContainer> >(); _MultipleAssociativeContainer __c(__first, __last); __pos = __c.insert(__t); __c.insert(__first, __last); } typename _MultipleAssociativeContainer::iterator __pos __attribute__ ((__unused__)); typename _MultipleAssociativeContainer::value_type __t; typename _MultipleAssociativeContainer::value_type *__first, *__last; }; template struct _SimpleAssociativeContainerConcept { void __constraints() { __function_requires< _AssociativeContainerConcept<_SimpleAssociativeContainer> >(); typedef typename _SimpleAssociativeContainer::key_type _Key_type; typedef typename _SimpleAssociativeContainer::value_type _Value_type; typedef typename _Aux_require_same<_Key_type, _Value_type>::_Type _Requqired; } }; template struct _PairAssociativeContainerConcept { void __constraints() { __function_requires< _AssociativeContainerConcept<_SimpleAssociativeContainer> >(); typedef typename _SimpleAssociativeContainer::key_type _Key_type; typedef typename _SimpleAssociativeContainer::value_type _Value_type; typedef typename _SimpleAssociativeContainer::mapped_type _Mapped_type; typedef std::pair _Required_value_type; typedef typename _Aux_require_same<_Value_type, _Required_value_type>::_Type _Required; } }; template struct _SortedAssociativeContainerConcept { void __constraints() { __function_requires< _AssociativeContainerConcept<_SortedAssociativeContainer> >(); __function_requires< _ReversibleContainerConcept<_SortedAssociativeContainer> >(); _SortedAssociativeContainer __c(__kc) __attribute__ ((__unused__)), __c2(__first, __last) __attribute__ ((__unused__)), __c3(__first, __last, __kc) __attribute__ ((__unused__)); __p = __c.upper_bound(__k); __p = __c.lower_bound(__k); __r = __c.equal_range(__k); __c.insert(__p, __t); } void __const_constraints(const _SortedAssociativeContainer& __c) { __kc = __c.key_comp(); __vc = __c.value_comp(); __cp = __c.upper_bound(__k); __cp = __c.lower_bound(__k); __cr = __c.equal_range(__k); } typename _SortedAssociativeContainer::key_compare __kc; typename _SortedAssociativeContainer::value_compare __vc; typename _SortedAssociativeContainer::value_type __t; typename _SortedAssociativeContainer::key_type __k; typedef typename _SortedAssociativeContainer::iterator _Iterator; typedef typename _SortedAssociativeContainer::const_iterator _Const_iterator; _Iterator __p; _Const_iterator __cp; std::pair<_Iterator,_Iterator> __r; std::pair<_Const_iterator,_Const_iterator> __cr; typename _SortedAssociativeContainer::value_type *__first, *__last; }; } # 61 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/concept_check.h" 2 3 # 69 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_iterator_base_funcs.h" 2 3 namespace std { template inline typename iterator_traits<_InputIterator>::difference_type __distance(_InputIterator __first, _InputIterator __last, input_iterator_tag) { __gnu_cxx::__function_requires< __gnu_cxx::_InputIteratorConcept<_InputIterator> >(); typename iterator_traits<_InputIterator>::difference_type __n = 0; while (__first != __last) { ++__first; ++__n; } return __n; } template inline typename iterator_traits<_RandomAccessIterator>::difference_type __distance(_RandomAccessIterator __first, _RandomAccessIterator __last, random_access_iterator_tag) { __gnu_cxx::__function_requires< __gnu_cxx::_RandomAccessIteratorConcept<_RandomAccessIterator> >(); return __last - __first; } # 111 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_iterator_base_funcs.h" 3 template inline typename iterator_traits<_InputIterator>::difference_type distance(_InputIterator __first, _InputIterator __last) { return __distance(__first, __last, __iterator_category(__first)); } template inline void __advance(_InputIter& __i, _Distance __n, input_iterator_tag) { __gnu_cxx::__function_requires< __gnu_cxx::_InputIteratorConcept<_InputIter> >(); while (__n--) ++__i; } template inline void __advance(_BidirectionalIterator& __i, _Distance __n, bidirectional_iterator_tag) { __gnu_cxx::__function_requires< __gnu_cxx::_BidirectionalIteratorConcept<_BidirectionalIterator> >(); if (__n > 0) while (__n--) ++__i; else while (__n++) --__i; } template inline void __advance(_RandomAccessIterator& __i, _Distance __n, random_access_iterator_tag) { __gnu_cxx::__function_requires< __gnu_cxx::_RandomAccessIteratorConcept<_RandomAccessIterator> >(); __i += __n; } # 164 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_iterator_base_funcs.h" 3 template inline void advance(_InputIterator& __i, _Distance __n) { __advance(__i, __n, __iterator_category(__i)); } } # 75 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_algobase.h" 2 3 # 1 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_iterator.h" 1 3 # 68 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_iterator.h" 3 namespace std { # 89 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_iterator.h" 3 template class reverse_iterator : public iterator::iterator_category, typename iterator_traits<_Iterator>::value_type, typename iterator_traits<_Iterator>::difference_type, typename iterator_traits<_Iterator>::pointer, typename iterator_traits<_Iterator>::reference> { protected: _Iterator current; public: typedef _Iterator iterator_type; typedef typename iterator_traits<_Iterator>::difference_type difference_type; typedef typename iterator_traits<_Iterator>::reference reference; typedef typename iterator_traits<_Iterator>::pointer pointer; public: reverse_iterator() { } explicit reverse_iterator(iterator_type __x) : current(__x) { } reverse_iterator(const reverse_iterator& __x) : current(__x.current) { } template reverse_iterator(const reverse_iterator<_Iter>& __x) : current(__x.base()) { } iterator_type base() const { return current; } reference operator*() const { _Iterator __tmp = current; return *--__tmp; } pointer operator->() const { return &(operator*()); } reverse_iterator& operator++() { --current; return *this; } reverse_iterator operator++(int) { reverse_iterator __tmp = *this; --current; return __tmp; } reverse_iterator& operator--() { ++current; return *this; } reverse_iterator operator--(int) { reverse_iterator __tmp = *this; ++current; return __tmp; } reverse_iterator operator+(difference_type __n) const { return reverse_iterator(current - __n); } reverse_iterator& operator+=(difference_type __n) { current -= __n; return *this; } reverse_iterator operator-(difference_type __n) const { return reverse_iterator(current + __n); } reverse_iterator& operator-=(difference_type __n) { current += __n; return *this; } reference operator[](difference_type __n) const { return *(*this + __n); } }; # 269 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_iterator.h" 3 template inline bool operator==(const reverse_iterator<_Iterator>& __x, const reverse_iterator<_Iterator>& __y) { return __x.base() == __y.base(); } template inline bool operator<(const reverse_iterator<_Iterator>& __x, const reverse_iterator<_Iterator>& __y) { return __y.base() < __x.base(); } template inline bool operator!=(const reverse_iterator<_Iterator>& __x, const reverse_iterator<_Iterator>& __y) { return !(__x == __y); } template inline bool operator>(const reverse_iterator<_Iterator>& __x, const reverse_iterator<_Iterator>& __y) { return __y < __x; } template inline bool operator<=(const reverse_iterator<_Iterator>& __x, const reverse_iterator<_Iterator>& __y) { return !(__y < __x); } template inline bool operator>=(const reverse_iterator<_Iterator>& __x, const reverse_iterator<_Iterator>& __y) { return !(__x < __y); } template inline typename reverse_iterator<_Iterator>::difference_type operator-(const reverse_iterator<_Iterator>& __x, const reverse_iterator<_Iterator>& __y) { return __y.base() - __x.base(); } template inline reverse_iterator<_Iterator> operator+(typename reverse_iterator<_Iterator>::difference_type __n, const reverse_iterator<_Iterator>& __x) { return reverse_iterator<_Iterator>(__x.base() - __n); } # 327 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_iterator.h" 3 template class back_insert_iterator : public iterator { protected: _Container* container; public: typedef _Container container_type; explicit back_insert_iterator(_Container& __x) : container(&__x) { } # 353 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_iterator.h" 3 back_insert_iterator& operator=(typename _Container::const_reference __value) { container->push_back(__value); return *this; } back_insert_iterator& operator*() { return *this; } back_insert_iterator& operator++() { return *this; } back_insert_iterator operator++(int) { return *this; } }; # 384 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_iterator.h" 3 template inline back_insert_iterator<_Container> back_inserter(_Container& __x) { return back_insert_iterator<_Container>(__x); } # 397 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_iterator.h" 3 template class front_insert_iterator : public iterator { protected: _Container* container; public: typedef _Container container_type; explicit front_insert_iterator(_Container& __x) : container(&__x) { } # 422 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_iterator.h" 3 front_insert_iterator& operator=(typename _Container::const_reference __value) { container->push_front(__value); return *this; } front_insert_iterator& operator*() { return *this; } front_insert_iterator& operator++() { return *this; } front_insert_iterator operator++(int) { return *this; } }; # 453 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_iterator.h" 3 template inline front_insert_iterator<_Container> front_inserter(_Container& __x) { return front_insert_iterator<_Container>(__x); } # 470 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_iterator.h" 3 template class insert_iterator : public iterator { protected: _Container* container; typename _Container::iterator iter; public: typedef _Container container_type; insert_iterator(_Container& __x, typename _Container::iterator __i) : container(&__x), iter(__i) {} # 512 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_iterator.h" 3 insert_iterator& operator=(const typename _Container::const_reference __value) { iter = container->insert(iter, __value); ++iter; return *this; } insert_iterator& operator*() { return *this; } insert_iterator& operator++() { return *this; } insert_iterator& operator++(int) { return *this; } }; # 544 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_iterator.h" 3 template inline insert_iterator<_Container> inserter(_Container& __x, _Iterator __i) { return insert_iterator<_Container>(__x, typename _Container::iterator(__i)); } } namespace __gnu_cxx { using std::iterator_traits; using std::iterator; template class __normal_iterator : public iterator::iterator_category, typename iterator_traits<_Iterator>::value_type, typename iterator_traits<_Iterator>::difference_type, typename iterator_traits<_Iterator>::pointer, typename iterator_traits<_Iterator>::reference> { protected: _Iterator _M_current; public: typedef typename iterator_traits<_Iterator>::difference_type difference_type; typedef typename iterator_traits<_Iterator>::reference reference; typedef typename iterator_traits<_Iterator>::pointer pointer; __normal_iterator() : _M_current(_Iterator()) { } explicit __normal_iterator(const _Iterator& __i) : _M_current(__i) { } template inline __normal_iterator(const __normal_iterator<_Iter, _Container>& __i) : _M_current(__i.base()) { } reference operator*() const { return *_M_current; } pointer operator->() const { return _M_current; } __normal_iterator& operator++() { ++_M_current; return *this; } __normal_iterator operator++(int) { return __normal_iterator(_M_current++); } __normal_iterator& operator--() { --_M_current; return *this; } __normal_iterator operator--(int) { return __normal_iterator(_M_current--); } reference operator[](const difference_type& __n) const { return _M_current[__n]; } __normal_iterator& operator+=(const difference_type& __n) { _M_current += __n; return *this; } __normal_iterator operator+(const difference_type& __n) const { return __normal_iterator(_M_current + __n); } __normal_iterator& operator-=(const difference_type& __n) { _M_current -= __n; return *this; } __normal_iterator operator-(const difference_type& __n) const { return __normal_iterator(_M_current - __n); } const _Iterator& base() const { return _M_current; } }; # 645 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_iterator.h" 3 template inline bool operator==(const __normal_iterator<_IteratorL, _Container>& __lhs, const __normal_iterator<_IteratorR, _Container>& __rhs) { return __lhs.base() == __rhs.base(); } template inline bool operator==(const __normal_iterator<_Iterator, _Container>& __lhs, const __normal_iterator<_Iterator, _Container>& __rhs) { return __lhs.base() == __rhs.base(); } template inline bool operator!=(const __normal_iterator<_IteratorL, _Container>& __lhs, const __normal_iterator<_IteratorR, _Container>& __rhs) { return __lhs.base() != __rhs.base(); } template inline bool operator!=(const __normal_iterator<_Iterator, _Container>& __lhs, const __normal_iterator<_Iterator, _Container>& __rhs) { return __lhs.base() != __rhs.base(); } template inline bool operator<(const __normal_iterator<_IteratorL, _Container>& __lhs, const __normal_iterator<_IteratorR, _Container>& __rhs) { return __lhs.base() < __rhs.base(); } template inline bool operator<(const __normal_iterator<_Iterator, _Container>& __lhs, const __normal_iterator<_Iterator, _Container>& __rhs) { return __lhs.base() < __rhs.base(); } template inline bool operator>(const __normal_iterator<_IteratorL, _Container>& __lhs, const __normal_iterator<_IteratorR, _Container>& __rhs) { return __lhs.base() > __rhs.base(); } template inline bool operator>(const __normal_iterator<_Iterator, _Container>& __lhs, const __normal_iterator<_Iterator, _Container>& __rhs) { return __lhs.base() > __rhs.base(); } template inline bool operator<=(const __normal_iterator<_IteratorL, _Container>& __lhs, const __normal_iterator<_IteratorR, _Container>& __rhs) { return __lhs.base() <= __rhs.base(); } template inline bool operator<=(const __normal_iterator<_Iterator, _Container>& __lhs, const __normal_iterator<_Iterator, _Container>& __rhs) { return __lhs.base() <= __rhs.base(); } template inline bool operator>=(const __normal_iterator<_IteratorL, _Container>& __lhs, const __normal_iterator<_IteratorR, _Container>& __rhs) { return __lhs.base() >= __rhs.base(); } template inline bool operator>=(const __normal_iterator<_Iterator, _Container>& __lhs, const __normal_iterator<_Iterator, _Container>& __rhs) { return __lhs.base() >= __rhs.base(); } template inline typename __normal_iterator<_IteratorL, _Container>::difference_type operator-(const __normal_iterator<_IteratorL, _Container>& __lhs, const __normal_iterator<_IteratorR, _Container>& __rhs) { return __lhs.base() - __rhs.base(); } template inline __normal_iterator<_Iterator, _Container> operator+(typename __normal_iterator<_Iterator, _Container>::difference_type __n, const __normal_iterator<_Iterator, _Container>& __i) { return __normal_iterator<_Iterator, _Container>(__i.base() + __n); } } # 76 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_algobase.h" 2 3 namespace std { # 91 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_algobase.h" 3 template inline void iter_swap(_ForwardIter1 __a, _ForwardIter2 __b) { typedef typename iterator_traits<_ForwardIter1>::value_type _ValueType1; typedef typename iterator_traits<_ForwardIter2>::value_type _ValueType2; __gnu_cxx::__function_requires< __gnu_cxx::_Mutable_ForwardIteratorConcept<_ForwardIter1> >(); __gnu_cxx::__function_requires< __gnu_cxx::_Mutable_ForwardIteratorConcept<_ForwardIter2> >(); __gnu_cxx::__function_requires< __gnu_cxx::_ConvertibleConcept<_ValueType1, _ValueType2> >(); __gnu_cxx::__function_requires< __gnu_cxx::_ConvertibleConcept<_ValueType2, _ValueType1> >(); _ValueType1 __tmp = *__a; *__a = *__b; *__b = __tmp; } # 118 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_algobase.h" 3 template inline void swap(_Tp& __a, _Tp& __b) { __gnu_cxx::__function_requires< __gnu_cxx::_SGIAssignableConcept<_Tp> >(); _Tp __tmp = __a; __a = __b; __b = __tmp; } # 146 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_algobase.h" 3 template inline const _Tp& min(const _Tp& __a, const _Tp& __b) { __gnu_cxx::__function_requires< __gnu_cxx::_LessThanComparableConcept<_Tp> >(); if (__b < __a) return __b; return __a; } # 166 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_algobase.h" 3 template inline const _Tp& max(const _Tp& __a, const _Tp& __b) { __gnu_cxx::__function_requires< __gnu_cxx::_LessThanComparableConcept<_Tp> >(); if (__a < __b) return __b; return __a; } # 186 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_algobase.h" 3 template inline const _Tp& min(const _Tp& __a, const _Tp& __b, _Compare __comp) { if (__comp(__b, __a)) return __b; return __a; } # 204 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_algobase.h" 3 template inline const _Tp& max(const _Tp& __a, const _Tp& __b, _Compare __comp) { if (__comp(__a, __b)) return __b; return __a; } # 221 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_algobase.h" 3 template inline _OutputIter __copy(_InputIter __first, _InputIter __last, _OutputIter __result, input_iterator_tag) { for ( ; __first != __last; ++__result, ++__first) *__result = *__first; return __result; } template inline _OutputIter __copy(_RandomAccessIter __first, _RandomAccessIter __last, _OutputIter __result, random_access_iterator_tag) { typedef typename iterator_traits<_RandomAccessIter>::difference_type _Distance; for (_Distance __n = __last - __first; __n > 0; --__n) { *__result = *__first; ++__first; ++__result; } return __result; } template inline _Tp* __copy_trivial(const _Tp* __first, const _Tp* __last, _Tp* __result) { memmove(__result, __first, sizeof(_Tp) * (__last - __first)); return __result + (__last - __first); } template inline _OutputIter __copy_aux2(_InputIter __first, _InputIter __last, _OutputIter __result, __false_type) { return __copy(__first, __last, __result, __iterator_category(__first)); } template inline _OutputIter __copy_aux2(_InputIter __first, _InputIter __last, _OutputIter __result, __true_type) { return __copy(__first, __last, __result, __iterator_category(__first)); } template inline _Tp* __copy_aux2(_Tp* __first, _Tp* __last, _Tp* __result, __true_type) { return __copy_trivial(__first, __last, __result); } template inline _Tp* __copy_aux2(const _Tp* __first, const _Tp* __last, _Tp* __result, __true_type) { return __copy_trivial(__first, __last, __result); } template inline _OutputIter __copy_ni2(_InputIter __first, _InputIter __last, _OutputIter __result, __true_type) { typedef typename iterator_traits<_InputIter>::value_type _ValueType; typedef typename __type_traits<_ValueType>::has_trivial_assignment_operator _Trivial; return _OutputIter(__copy_aux2(__first, __last, __result.base(), _Trivial())); } template inline _OutputIter __copy_ni2(_InputIter __first, _InputIter __last, _OutputIter __result, __false_type) { typedef typename iterator_traits<_InputIter>::value_type _ValueType; typedef typename __type_traits<_ValueType>::has_trivial_assignment_operator _Trivial; return __copy_aux2(__first, __last, __result, _Trivial()); } template inline _OutputIter __copy_ni1(_InputIter __first, _InputIter __last, _OutputIter __result, __true_type) { typedef typename _Is_normal_iterator<_OutputIter>::_Normal __Normal; return __copy_ni2(__first.base(), __last.base(), __result, __Normal()); } template inline _OutputIter __copy_ni1(_InputIter __first, _InputIter __last, _OutputIter __result, __false_type) { typedef typename _Is_normal_iterator<_OutputIter>::_Normal __Normal; return __copy_ni2(__first, __last, __result, __Normal()); } # 339 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_algobase.h" 3 template inline _OutputIter copy(_InputIter __first, _InputIter __last, _OutputIter __result) { __gnu_cxx::__function_requires< __gnu_cxx::_InputIteratorConcept<_InputIter> >(); __gnu_cxx::__function_requires< __gnu_cxx::_OutputIteratorConcept<_OutputIter, typename iterator_traits<_InputIter>::value_type> >(); typedef typename _Is_normal_iterator<_InputIter>::_Normal __Normal; return __copy_ni1(__first, __last, __result, __Normal()); } template inline _BidirectionalIter2 __copy_backward(_BidirectionalIter1 __first, _BidirectionalIter1 __last, _BidirectionalIter2 __result, bidirectional_iterator_tag) { while (__first != __last) *--__result = *--__last; return __result; } template inline _BidirectionalIter __copy_backward(_RandomAccessIter __first, _RandomAccessIter __last, _BidirectionalIter __result, random_access_iterator_tag) { typename iterator_traits<_RandomAccessIter>::difference_type __n; for (__n = __last - __first; __n > 0; --__n) *--__result = *--__last; return __result; } template struct __copy_backward_dispatch { static _BidirectionalIter2 copy(_BidirectionalIter1 __first, _BidirectionalIter1 __last, _BidirectionalIter2 __result) { return __copy_backward(__first, __last, __result, __iterator_category(__first)); } }; template struct __copy_backward_dispatch<_Tp*, _Tp*, __true_type> { static _Tp* copy(const _Tp* __first, const _Tp* __last, _Tp* __result) { const ptrdiff_t _Num = __last - __first; memmove(__result - _Num, __first, sizeof(_Tp) * _Num); return __result - _Num; } }; template struct __copy_backward_dispatch { static _Tp* copy(const _Tp* __first, const _Tp* __last, _Tp* __result) { return __copy_backward_dispatch<_Tp*, _Tp*, __true_type> ::copy(__first, __last, __result); } }; template inline _BI2 __copy_backward_aux(_BI1 __first, _BI1 __last, _BI2 __result) { typedef typename __type_traits::value_type> ::has_trivial_assignment_operator _Trivial; return __copy_backward_dispatch<_BI1, _BI2, _Trivial> ::copy(__first, __last, __result); } template inline _BI2 __copy_backward_output_normal_iterator(_BI1 __first, _BI1 __last, _BI2 __result, __true_type) { return _BI2(__copy_backward_aux(__first, __last, __result.base())); } template inline _BI2 __copy_backward_output_normal_iterator(_BI1 __first, _BI1 __last, _BI2 __result, __false_type) { return __copy_backward_aux(__first, __last, __result); } template inline _BI2 __copy_backward_input_normal_iterator(_BI1 __first, _BI1 __last, _BI2 __result, __true_type) { typedef typename _Is_normal_iterator<_BI2>::_Normal __Normal; return __copy_backward_output_normal_iterator(__first.base(), __last.base(), __result, __Normal()); } template inline _BI2 __copy_backward_input_normal_iterator(_BI1 __first, _BI1 __last, _BI2 __result, __false_type) { typedef typename _Is_normal_iterator<_BI2>::_Normal __Normal; return __copy_backward_output_normal_iterator(__first, __last, __result, __Normal()); } # 477 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_algobase.h" 3 template inline _BI2 copy_backward(_BI1 __first, _BI1 __last, _BI2 __result) { __gnu_cxx::__function_requires< __gnu_cxx::_BidirectionalIteratorConcept<_BI1> >(); __gnu_cxx::__function_requires< __gnu_cxx::_Mutable_BidirectionalIteratorConcept<_BI2> >(); __gnu_cxx::__function_requires< __gnu_cxx::_ConvertibleConcept< typename iterator_traits<_BI1>::value_type, typename iterator_traits<_BI2>::value_type> >(); typedef typename _Is_normal_iterator<_BI1>::_Normal __Normal; return __copy_backward_input_normal_iterator(__first, __last, __result, __Normal()); } # 509 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_algobase.h" 3 template void fill(_ForwardIter __first, _ForwardIter __last, const _Tp& __value) { __gnu_cxx::__function_requires< __gnu_cxx::_Mutable_ForwardIteratorConcept<_ForwardIter> >(); for ( ; __first != __last; ++__first) *__first = __value; } # 531 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_algobase.h" 3 template _OutputIter fill_n(_OutputIter __first, _Size __n, const _Tp& __value) { __gnu_cxx::__function_requires< __gnu_cxx::_OutputIteratorConcept<_OutputIter,_Tp> >(); for ( ; __n > 0; --__n, ++__first) *__first = __value; return __first; } inline void fill(unsigned char* __first, unsigned char* __last, const unsigned char& __c) { unsigned char __tmp = __c; memset(__first, __tmp, __last - __first); } inline void fill(signed char* __first, signed char* __last, const signed char& __c) { signed char __tmp = __c; memset(__first, static_cast(__tmp), __last - __first); } inline void fill(char* __first, char* __last, const char& __c) { char __tmp = __c; memset(__first, static_cast(__tmp), __last - __first); } template inline unsigned char* fill_n(unsigned char* __first, _Size __n, const unsigned char& __c) { fill(__first, __first + __n, __c); return __first + __n; } template inline signed char* fill_n(char* __first, _Size __n, const signed char& __c) { fill(__first, __first + __n, __c); return __first + __n; } template inline char* fill_n(char* __first, _Size __n, const char& __c) { fill(__first, __first + __n, __c); return __first + __n; } # 606 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_algobase.h" 3 template pair<_InputIter1, _InputIter2> mismatch(_InputIter1 __first1, _InputIter1 __last1, _InputIter2 __first2) { __gnu_cxx::__function_requires< __gnu_cxx::_InputIteratorConcept<_InputIter1> >(); __gnu_cxx::__function_requires< __gnu_cxx::_InputIteratorConcept<_InputIter2> >(); __gnu_cxx::__function_requires< __gnu_cxx::_EqualityComparableConcept< typename iterator_traits<_InputIter1>::value_type> >(); __gnu_cxx::__function_requires< __gnu_cxx::_EqualityComparableConcept< typename iterator_traits<_InputIter2>::value_type> >(); while (__first1 != __last1 && *__first1 == *__first2) { ++__first1; ++__first2; } return pair<_InputIter1, _InputIter2>(__first1, __first2); } # 640 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_algobase.h" 3 template pair<_InputIter1, _InputIter2> mismatch(_InputIter1 __first1, _InputIter1 __last1, _InputIter2 __first2, _BinaryPredicate __binary_pred) { __gnu_cxx::__function_requires< __gnu_cxx::_InputIteratorConcept<_InputIter1> >(); __gnu_cxx::__function_requires< __gnu_cxx::_InputIteratorConcept<_InputIter2> >(); while (__first1 != __last1 && __binary_pred(*__first1, *__first2)) { ++__first1; ++__first2; } return pair<_InputIter1, _InputIter2>(__first1, __first2); } # 668 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_algobase.h" 3 template inline bool equal(_InputIter1 __first1, _InputIter1 __last1, _InputIter2 __first2) { __gnu_cxx::__function_requires< __gnu_cxx::_InputIteratorConcept<_InputIter1> >(); __gnu_cxx::__function_requires< __gnu_cxx::_InputIteratorConcept<_InputIter2> >(); __gnu_cxx::__function_requires< __gnu_cxx::_EqualOpConcept< typename iterator_traits<_InputIter1>::value_type, typename iterator_traits<_InputIter2>::value_type> >(); for ( ; __first1 != __last1; ++__first1, ++__first2) if (!(*__first1 == *__first2)) return false; return true; } # 699 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_algobase.h" 3 template inline bool equal(_InputIter1 __first1, _InputIter1 __last1, _InputIter2 __first2, _BinaryPredicate __binary_pred) { __gnu_cxx::__function_requires< __gnu_cxx::_InputIteratorConcept<_InputIter1> >(); __gnu_cxx::__function_requires< __gnu_cxx::_InputIteratorConcept<_InputIter2> >(); for ( ; __first1 != __last1; ++__first1, ++__first2) if (!__binary_pred(*__first1, *__first2)) return false; return true; } # 732 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_algobase.h" 3 template bool lexicographical_compare(_InputIter1 __first1, _InputIter1 __last1, _InputIter2 __first2, _InputIter2 __last2) { __gnu_cxx::__function_requires< __gnu_cxx::_InputIteratorConcept<_InputIter1> >(); __gnu_cxx::__function_requires< __gnu_cxx::_InputIteratorConcept<_InputIter2> >(); __gnu_cxx::__function_requires< __gnu_cxx::_LessThanComparableConcept< typename iterator_traits<_InputIter1>::value_type> >(); __gnu_cxx::__function_requires< __gnu_cxx::_LessThanComparableConcept< typename iterator_traits<_InputIter2>::value_type> >(); for ( ; __first1 != __last1 && __first2 != __last2 ; ++__first1, ++__first2) { if (*__first1 < *__first2) return true; if (*__first2 < *__first1) return false; } return __first1 == __last1 && __first2 != __last2; } # 767 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_algobase.h" 3 template bool lexicographical_compare(_InputIter1 __first1, _InputIter1 __last1, _InputIter2 __first2, _InputIter2 __last2, _Compare __comp) { __gnu_cxx::__function_requires< __gnu_cxx::_InputIteratorConcept<_InputIter1> >(); __gnu_cxx::__function_requires< __gnu_cxx::_InputIteratorConcept<_InputIter2> >(); for ( ; __first1 != __last1 && __first2 != __last2 ; ++__first1, ++__first2) { if (__comp(*__first1, *__first2)) return true; if (__comp(*__first2, *__first1)) return false; } return __first1 == __last1 && __first2 != __last2; } inline bool lexicographical_compare(const unsigned char* __first1, const unsigned char* __last1, const unsigned char* __first2, const unsigned char* __last2) { const size_t __len1 = __last1 - __first1; const size_t __len2 = __last2 - __first2; const int __result = memcmp(__first1, __first2, min(__len1, __len2)); return __result != 0 ? __result < 0 : __len1 < __len2; } inline bool lexicographical_compare(const char* __first1, const char* __last1, const char* __first2, const char* __last2) { return lexicographical_compare((const signed char*) __first1, (const signed char*) __last1, (const signed char*) __first2, (const signed char*) __last2); } } # 68 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/list" 2 3 # 1 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_alloc.h" 1 3 # 84 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_alloc.h" 3 # 1 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/cassert" 1 3 # 47 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/cassert" 3 # 1 "/usr/include/assert.h" 1 3 4 # 11 "/usr/include/assert.h" 3 4 #pragma ident "@(#)assert.h 1.9 92/07/14 SMI" extern "C" { extern void __assert(const char *, const char *, int); } # 49 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/cassert" 2 3 # 85 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_alloc.h" 2 3 # 1 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/functexcept.h" 1 3 # 34 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/functexcept.h" 3 # 1 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/exception_defines.h" 1 3 # 35 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/functexcept.h" 2 3 namespace std { void __throw_bad_exception(void); void __throw_bad_alloc(void); void __throw_bad_cast(void); void __throw_bad_typeid(void); void __throw_logic_error(const char* __s); void __throw_domain_error(const char* __s); void __throw_invalid_argument(const char* __s); void __throw_length_error(const char* __s); void __throw_out_of_range(const char* __s); void __throw_runtime_error(const char* __s); void __throw_range_error(const char* __s); void __throw_overflow_error(const char* __s); void __throw_underflow_error(const char* __s); void __throw_ios_failure(const char* __s); } # 86 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_alloc.h" 2 3 # 1 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_threads.h" 1 3 # 54 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_threads.h" 3 namespace std { struct _Refcount_Base { typedef size_t _RC_t; volatile _RC_t _M_ref_count; __gthread_mutex_t _M_ref_count_lock; _Refcount_Base(_RC_t __n) : _M_ref_count(__n) { __gthread_mutex_t __tmp = {{{0}, 0}, {{{0}}}, 0}; _M_ref_count_lock = __tmp; } void _M_incr() { __gthread_mutex_lock(&_M_ref_count_lock); ++_M_ref_count; __gthread_mutex_unlock(&_M_ref_count_lock); } _RC_t _M_decr() { __gthread_mutex_lock(&_M_ref_count_lock); volatile _RC_t __tmp = --_M_ref_count; __gthread_mutex_unlock(&_M_ref_count_lock); return __tmp; } }; # 109 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_threads.h" 3 template struct _Swap_lock_struct { static __gthread_mutex_t _S_swap_lock; }; template __gthread_mutex_t _Swap_lock_struct<__dummy>::_S_swap_lock = {{{0}, 0}, {{{0}}}, 0}; inline unsigned long _Atomic_swap(unsigned long * __p, unsigned long __q) { __gthread_mutex_lock(&_Swap_lock_struct<0>::_S_swap_lock); unsigned long __result = *__p; *__p = __q; __gthread_mutex_unlock(&_Swap_lock_struct<0>::_S_swap_lock); return __result; } # 151 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_threads.h" 3 struct _STL_mutex_lock { __gthread_mutex_t _M_lock; void _M_initialize() { # 184 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_threads.h" 3 } void _M_acquire_lock() { __gthread_mutex_lock(&_M_lock); } void _M_release_lock() { __gthread_mutex_unlock(&_M_lock); } }; # 220 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_threads.h" 3 struct _STL_auto_lock { _STL_mutex_lock& _M_lock; _STL_auto_lock(_STL_mutex_lock& __lock) : _M_lock(__lock) { _M_lock._M_acquire_lock(); } ~_STL_auto_lock() { _M_lock._M_release_lock(); } private: void operator=(const _STL_auto_lock&); _STL_auto_lock(const _STL_auto_lock&); }; } # 87 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_alloc.h" 2 3 namespace std { # 98 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_alloc.h" 3 class __new_alloc { public: static void* allocate(size_t __n) { return ::operator new(__n); } static void deallocate(void* __p, size_t) { ::operator delete(__p); } }; # 121 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_alloc.h" 3 template class __malloc_alloc_template { private: static void* _S_oom_malloc(size_t); static void* _S_oom_realloc(void*, size_t); static void (* __malloc_alloc_oom_handler)(); public: static void* allocate(size_t __n) { void* __result = malloc(__n); if (0 == __result) __result = _S_oom_malloc(__n); return __result; } static void deallocate(void* __p, size_t ) { free(__p); } static void* reallocate(void* __p, size_t , size_t __new_sz) { void* __result = realloc(__p, __new_sz); if (0 == __result) __result = _S_oom_realloc(__p, __new_sz); return __result; } static void (* __set_malloc_handler(void (*__f)()))() { void (* __old)() = __malloc_alloc_oom_handler; __malloc_alloc_oom_handler = __f; return(__old); } }; template void (* __malloc_alloc_template<__inst>::__malloc_alloc_oom_handler)() = 0; template void* __malloc_alloc_template<__inst>::_S_oom_malloc(size_t __n) { void (* __my_malloc_handler)(); void* __result; for (;;) { __my_malloc_handler = __malloc_alloc_oom_handler; if (0 == __my_malloc_handler) std::__throw_bad_alloc(); (*__my_malloc_handler)(); __result = malloc(__n); if (__result) return(__result); } } template void* __malloc_alloc_template<__inst>::_S_oom_realloc(void* __p, size_t __n) { void (* __my_malloc_handler)(); void* __result; for (;;) { __my_malloc_handler = __malloc_alloc_oom_handler; if (0 == __my_malloc_handler) std::__throw_bad_alloc(); (*__my_malloc_handler)(); __result = realloc(__p, __n); if (__result) return(__result); } } typedef __new_alloc __mem_interface; # 219 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_alloc.h" 3 template class __simple_alloc { public: static _Tp* allocate(size_t __n) { return 0 == __n ? 0 : (_Tp*) _Alloc::allocate(__n * sizeof (_Tp)); } static _Tp* allocate() { return (_Tp*) _Alloc::allocate(sizeof (_Tp)); } static void deallocate(_Tp* __p, size_t __n) { if (0 != __n) _Alloc::deallocate(__p, __n * sizeof (_Tp)); } static void deallocate(_Tp* __p) { _Alloc::deallocate(__p, sizeof (_Tp)); } }; # 251 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_alloc.h" 3 template class __debug_alloc { private: enum {_S_extra = 8}; public: static void* allocate(size_t __n) { char* __result = (char*)_Alloc::allocate(__n + (int) _S_extra); *(size_t*)__result = __n; return __result + (int) _S_extra; } static void deallocate(void* __p, size_t __n) { char* __real_p = (char*)__p - (int) _S_extra; (void)((*(size_t*)__real_p == __n) || (__assert("*(size_t*)__real_p == __n", "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_alloc.h", 270), 0)); _Alloc::deallocate(__real_p, __n + (int) _S_extra); } static void* reallocate(void* __p, size_t __old_sz, size_t __new_sz) { char* __real_p = (char*)__p - (int) _S_extra; (void)((*(size_t*)__real_p == __old_sz) || (__assert("*(size_t*)__real_p == __old_sz", "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_alloc.h", 277), 0)); char* __result = (char*) _Alloc::reallocate(__real_p, __old_sz + (int) _S_extra, __new_sz + (int) _S_extra); *(size_t*)__result = __new_sz; return __result + (int) _S_extra; } }; # 324 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_alloc.h" 3 template class __default_alloc_template { private: enum {_ALIGN = 8}; enum {_MAX_BYTES = 128}; enum {_NFREELISTS = _MAX_BYTES / _ALIGN}; union _Obj { union _Obj* _M_free_list_link; char _M_client_data[1]; }; static _Obj* volatile _S_free_list[_NFREELISTS]; static char* _S_start_free; static char* _S_end_free; static size_t _S_heap_size; static _STL_mutex_lock _S_node_allocator_lock; static size_t _S_round_up(size_t __bytes) { return (((__bytes) + (size_t) _ALIGN-1) & ~((size_t) _ALIGN - 1)); } static size_t _S_freelist_index(size_t __bytes) { return (((__bytes) + (size_t)_ALIGN-1)/(size_t)_ALIGN - 1); } static void* _S_refill(size_t __n); static char* _S_chunk_alloc(size_t __size, int& __nobjs); class _Lock { public: _Lock() { if (__threads) _S_node_allocator_lock._M_acquire_lock(); } ~_Lock() { if (__threads) _S_node_allocator_lock._M_release_lock(); } } __attribute__ ((__unused__)); friend class _Lock; public: static void* allocate(size_t __n) { void* __ret = 0; if (__n > (size_t) _MAX_BYTES) __ret = __mem_interface::allocate(__n); else { _Obj* volatile* __my_free_list = _S_free_list + _S_freelist_index(__n); _Lock __lock_instance; _Obj* __restrict__ __result = *__my_free_list; if (__result == 0) __ret = _S_refill(_S_round_up(__n)); else { *__my_free_list = __result -> _M_free_list_link; __ret = __result; } } return __ret; }; static void deallocate(void* __p, size_t __n) { if (__n > (size_t) _MAX_BYTES) __mem_interface::deallocate(__p, __n); else { _Obj* volatile* __my_free_list = _S_free_list + _S_freelist_index(__n); _Obj* __q = (_Obj*)__p; _Lock __lock_instance; __q -> _M_free_list_link = *__my_free_list; *__my_free_list = __q; } } static void* reallocate(void* __p, size_t __old_sz, size_t __new_sz); }; template inline bool operator==(const __default_alloc_template<__threads, __inst>&, const __default_alloc_template<__threads, __inst>&) { return true; } template inline bool operator!=(const __default_alloc_template<__threads, __inst>&, const __default_alloc_template<__threads, __inst>&) { return false; } template char* __default_alloc_template<__threads, __inst>::_S_chunk_alloc(size_t __size, int& __nobjs) { char* __result; size_t __total_bytes = __size * __nobjs; size_t __bytes_left = _S_end_free - _S_start_free; if (__bytes_left >= __total_bytes) { __result = _S_start_free; _S_start_free += __total_bytes; return(__result); } else if (__bytes_left >= __size) { __nobjs = (int)(__bytes_left/__size); __total_bytes = __size * __nobjs; __result = _S_start_free; _S_start_free += __total_bytes; return(__result); } else { size_t __bytes_to_get = 2 * __total_bytes + _S_round_up(_S_heap_size >> 4); if (__bytes_left > 0) { _Obj* volatile* __my_free_list = _S_free_list + _S_freelist_index(__bytes_left); ((_Obj*)_S_start_free) -> _M_free_list_link = *__my_free_list; *__my_free_list = (_Obj*)_S_start_free; } _S_start_free = (char*) __mem_interface::allocate(__bytes_to_get); if (0 == _S_start_free) { size_t __i; _Obj* volatile* __my_free_list; _Obj* __p; __i = __size; for (; __i <= (size_t) _MAX_BYTES; __i += (size_t) _ALIGN) { __my_free_list = _S_free_list + _S_freelist_index(__i); __p = *__my_free_list; if (0 != __p) { *__my_free_list = __p -> _M_free_list_link; _S_start_free = (char*)__p; _S_end_free = _S_start_free + __i; return(_S_chunk_alloc(__size, __nobjs)); } } _S_end_free = 0; _S_start_free = (char*)__mem_interface::allocate(__bytes_to_get); } _S_heap_size += __bytes_to_get; _S_end_free = _S_start_free + __bytes_to_get; return(_S_chunk_alloc(__size, __nobjs)); } } template void* __default_alloc_template<__threads, __inst>::_S_refill(size_t __n) { int __nobjs = 20; char* __chunk = _S_chunk_alloc(__n, __nobjs); _Obj* volatile* __my_free_list; _Obj* __result; _Obj* __current_obj; _Obj* __next_obj; int __i; if (1 == __nobjs) return(__chunk); __my_free_list = _S_free_list + _S_freelist_index(__n); __result = (_Obj*)__chunk; *__my_free_list = __next_obj = (_Obj*)(__chunk + __n); for (__i = 1; ; __i++) { __current_obj = __next_obj; __next_obj = (_Obj*)((char*)__next_obj + __n); if (__nobjs - 1 == __i) { __current_obj -> _M_free_list_link = 0; break; } else { __current_obj -> _M_free_list_link = __next_obj; } } return(__result); } template void* __default_alloc_template::reallocate(void* __p, size_t __old_sz, size_t __new_sz) { void* __result; size_t __copy_sz; if (__old_sz > (size_t) _MAX_BYTES && __new_sz > (size_t) _MAX_BYTES) { return(realloc(__p, __new_sz)); } if (_S_round_up(__old_sz) == _S_round_up(__new_sz)) return(__p); __result = allocate(__new_sz); __copy_sz = __new_sz > __old_sz? __old_sz : __new_sz; memcpy(__result, __p, __copy_sz); deallocate(__p, __old_sz); return(__result); } template _STL_mutex_lock __default_alloc_template<__threads, __inst>::_S_node_allocator_lock = { {{{0}, 0}, {{{0}}}, 0} }; template char* __default_alloc_template<__threads, __inst>::_S_start_free = 0; template char* __default_alloc_template<__threads, __inst>::_S_end_free = 0; template size_t __default_alloc_template<__threads, __inst>::_S_heap_size = 0; template typename __default_alloc_template<__threads, __inst>::_Obj* volatile __default_alloc_template<__threads, __inst>::_S_free_list[_NFREELISTS]; typedef __default_alloc_template __alloc; typedef __default_alloc_template __single_client_alloc; # 613 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_alloc.h" 3 template class allocator { typedef __alloc _Alloc; public: typedef size_t size_type; typedef ptrdiff_t difference_type; typedef _Tp* pointer; typedef const _Tp* const_pointer; typedef _Tp& reference; typedef const _Tp& const_reference; typedef _Tp value_type; template struct rebind { typedef allocator<_Tp1> other; }; allocator() throw() {} allocator(const allocator&) throw() {} template allocator(const allocator<_Tp1>&) throw() {} ~allocator() throw() {} pointer address(reference __x) const { return &__x; } const_pointer address(const_reference __x) const { return &__x; } _Tp* allocate(size_type __n, const void* = 0) { return __n != 0 ? static_cast<_Tp*>(_Alloc::allocate(__n * sizeof(_Tp))) : 0; } void deallocate(pointer __p, size_type __n) { _Alloc::deallocate(__p, __n * sizeof(_Tp)); } size_type max_size() const throw() { return size_t(-1) / sizeof(_Tp); } void construct(pointer __p, const _Tp& __val) { new(__p) _Tp(__val); } void destroy(pointer __p) { __p->~_Tp(); } }; template<> class allocator { public: typedef size_t size_type; typedef ptrdiff_t difference_type; typedef void* pointer; typedef const void* const_pointer; typedef void value_type; template struct rebind { typedef allocator<_Tp1> other; }; }; template inline bool operator==(const allocator<_T1>&, const allocator<_T2>&) { return true; } template inline bool operator!=(const allocator<_T1>&, const allocator<_T2>&) { return false; } # 695 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_alloc.h" 3 template struct __allocator { _Alloc __underlying_alloc; typedef size_t size_type; typedef ptrdiff_t difference_type; typedef _Tp* pointer; typedef const _Tp* const_pointer; typedef _Tp& reference; typedef const _Tp& const_reference; typedef _Tp value_type; template struct rebind { typedef __allocator<_Tp1, _Alloc> other; }; __allocator() throw() {} __allocator(const __allocator& __a) throw() : __underlying_alloc(__a.__underlying_alloc) {} template __allocator(const __allocator<_Tp1, _Alloc>& __a) throw() : __underlying_alloc(__a.__underlying_alloc) {} ~__allocator() throw() {} pointer address(reference __x) const { return &__x; } const_pointer address(const_reference __x) const { return &__x; } _Tp* allocate(size_type __n, const void* = 0) { return __n != 0 ? static_cast<_Tp*>(__underlying_alloc.allocate(__n * sizeof(_Tp))) : 0; } void deallocate(pointer __p, size_type __n) { __underlying_alloc.deallocate(__p, __n * sizeof(_Tp)); } size_type max_size() const throw() { return size_t(-1) / sizeof(_Tp); } void construct(pointer __p, const _Tp& __val) { new(__p) _Tp(__val); } void destroy(pointer __p) { __p->~_Tp(); } }; template class __allocator { typedef size_t size_type; typedef ptrdiff_t difference_type; typedef void* pointer; typedef const void* const_pointer; typedef void value_type; template struct rebind { typedef __allocator<_Tp1, _Alloc> other; }; }; template inline bool operator==(const __allocator<_Tp, _Alloc>& __a1, const __allocator<_Tp, _Alloc>& __a2) { return __a1.__underlying_alloc == __a2.__underlying_alloc; } template inline bool operator!=(const __allocator<_Tp, _Alloc>& __a1, const __allocator<_Tp, _Alloc>& __a2) { return __a1.__underlying_alloc != __a2.__underlying_alloc; } template inline bool operator==(const __malloc_alloc_template&, const __malloc_alloc_template&) { return true; } template inline bool operator!=(const __malloc_alloc_template<__inst>&, const __malloc_alloc_template<__inst>&) { return false; } template inline bool operator==(const __debug_alloc<_Alloc>&, const __debug_alloc<_Alloc>&) { return true; } template inline bool operator!=(const __debug_alloc<_Alloc>&, const __debug_alloc<_Alloc>&) { return false; } # 840 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_alloc.h" 3 template struct _Alloc_traits { static const bool _S_instanceless = false; typedef typename _Allocator::template rebind<_Tp>::other allocator_type; }; template const bool _Alloc_traits<_Tp, _Allocator>::_S_instanceless; template struct _Alloc_traits<_Tp, allocator<_Tp1> > { static const bool _S_instanceless = true; typedef __simple_alloc<_Tp, __alloc> _Alloc_type; typedef allocator<_Tp> allocator_type; }; template struct _Alloc_traits<_Tp, __malloc_alloc_template<__inst> > { static const bool _S_instanceless = true; typedef __simple_alloc<_Tp, __malloc_alloc_template<__inst> > _Alloc_type; typedef __allocator<_Tp, __malloc_alloc_template<__inst> > allocator_type; }; template struct _Alloc_traits<_Tp, __default_alloc_template<__threads, __inst> > { static const bool _S_instanceless = true; typedef __simple_alloc<_Tp, __default_alloc_template<__threads, __inst> > _Alloc_type; typedef __allocator<_Tp, __default_alloc_template<__threads, __inst> > allocator_type; }; template struct _Alloc_traits<_Tp, __debug_alloc<_Alloc> > { static const bool _S_instanceless = true; typedef __simple_alloc<_Tp, __debug_alloc<_Alloc> > _Alloc_type; typedef __allocator<_Tp, __debug_alloc<_Alloc> > allocator_type; }; template struct _Alloc_traits<_Tp, __allocator<_Tp1, __malloc_alloc_template<__inst> > > { static const bool _S_instanceless = true; typedef __simple_alloc<_Tp, __malloc_alloc_template<__inst> > _Alloc_type; typedef __allocator<_Tp, __malloc_alloc_template<__inst> > allocator_type; }; template struct _Alloc_traits<_Tp, __allocator<_Tp1, __default_alloc_template<__thr, __inst> > > { static const bool _S_instanceless = true; typedef __simple_alloc<_Tp, __default_alloc_template<__thr,__inst> > _Alloc_type; typedef __allocator<_Tp, __default_alloc_template<__thr,__inst> > allocator_type; }; template struct _Alloc_traits<_Tp, __allocator<_Tp1, __debug_alloc<_Alloc> > > { static const bool _S_instanceless = true; typedef __simple_alloc<_Tp, __debug_alloc<_Alloc> > _Alloc_type; typedef __allocator<_Tp, __debug_alloc<_Alloc> > allocator_type; }; extern template class allocator; extern template class allocator; extern template class __default_alloc_template; } # 69 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/list" 2 3 # 1 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_construct.h" 1 3 # 67 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_construct.h" 3 namespace std { template inline void _Construct(_T1* __p, const _T2& __value) { new (static_cast(__p)) _T1(__value); } template inline void _Construct(_T1* __p) { new (static_cast(__p)) _T1(); } # 98 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_construct.h" 3 template inline void __destroy_aux(_ForwardIterator __first, _ForwardIterator __last, __false_type) { for ( ; __first != __last; ++__first) _Destroy(&*__first); } # 112 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_construct.h" 3 template inline void __destroy_aux(_ForwardIterator, _ForwardIterator, __true_type) { } template inline void _Destroy(_Tp* __pointer) { __pointer->~_Tp(); } # 134 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_construct.h" 3 template inline void _Destroy(_ForwardIterator __first, _ForwardIterator __last) { typedef typename iterator_traits<_ForwardIterator>::value_type _Value_type; typedef typename __type_traits<_Value_type>::has_trivial_destructor _Has_trivial_destructor; __destroy_aux(__first, __last, _Has_trivial_destructor()); } } # 70 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/list" 2 3 # 1 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_uninitialized.h" 1 3 # 66 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_uninitialized.h" 3 namespace std { template inline _ForwardIter __uninitialized_copy_aux(_InputIter __first, _InputIter __last, _ForwardIter __result, __true_type) { return copy(__first, __last, __result); } template _ForwardIter __uninitialized_copy_aux(_InputIter __first, _InputIter __last, _ForwardIter __result, __false_type) { _ForwardIter __cur = __result; try { for ( ; __first != __last; ++__first, ++__cur) _Construct(&*__cur, *__first); return __cur; } catch(...) { _Destroy(__result, __cur); throw; } } # 106 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_uninitialized.h" 3 template inline _ForwardIter uninitialized_copy(_InputIter __first, _InputIter __last, _ForwardIter __result) { typedef typename iterator_traits<_ForwardIter>::value_type _ValueType; typedef typename __type_traits<_ValueType>::is_POD_type _Is_POD; return __uninitialized_copy_aux(__first, __last, __result, _Is_POD()); } inline char* uninitialized_copy(const char* __first, const char* __last, char* __result) { memmove(__result, __first, __last - __first); return __result + (__last - __first); } inline wchar_t* uninitialized_copy(const wchar_t* __first, const wchar_t* __last, wchar_t* __result) { memmove(__result, __first, sizeof(wchar_t) * (__last - __first)); return __result + (__last - __first); } template inline void __uninitialized_fill_aux(_ForwardIter __first, _ForwardIter __last, const _Tp& __x, __true_type) { fill(__first, __last, __x); } template void __uninitialized_fill_aux(_ForwardIter __first, _ForwardIter __last, const _Tp& __x, __false_type) { _ForwardIter __cur = __first; try { for ( ; __cur != __last; ++__cur) _Construct(&*__cur, __x); } catch(...) { _Destroy(__first, __cur); throw; } } # 164 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_uninitialized.h" 3 template inline void uninitialized_fill(_ForwardIter __first, _ForwardIter __last, const _Tp& __x) { typedef typename iterator_traits<_ForwardIter>::value_type _ValueType; typedef typename __type_traits<_ValueType>::is_POD_type _Is_POD; __uninitialized_fill_aux(__first, __last, __x, _Is_POD()); } template inline _ForwardIter __uninitialized_fill_n_aux(_ForwardIter __first, _Size __n, const _Tp& __x, __true_type) { return fill_n(__first, __n, __x); } template _ForwardIter __uninitialized_fill_n_aux(_ForwardIter __first, _Size __n, const _Tp& __x, __false_type) { _ForwardIter __cur = __first; try { for ( ; __n > 0; --__n, ++__cur) _Construct(&*__cur, __x); return __cur; } catch(...) { _Destroy(__first, __cur); throw; } } # 210 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_uninitialized.h" 3 template inline _ForwardIter uninitialized_fill_n(_ForwardIter __first, _Size __n, const _Tp& __x) { typedef typename iterator_traits<_ForwardIter>::value_type _ValueType; typedef typename __type_traits<_ValueType>::is_POD_type _Is_POD; return __uninitialized_fill_n_aux(__first, __n, __x, _Is_POD()); } # 227 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_uninitialized.h" 3 template inline _ForwardIter __uninitialized_copy_copy(_InputIter1 __first1, _InputIter1 __last1, _InputIter2 __first2, _InputIter2 __last2, _ForwardIter __result) { _ForwardIter __mid = uninitialized_copy(__first1, __last1, __result); try { return uninitialized_copy(__first2, __last2, __mid); } catch(...) { _Destroy(__result, __mid); throw; } } template inline _ForwardIter __uninitialized_fill_copy(_ForwardIter __result, _ForwardIter __mid, const _Tp& __x, _InputIter __first, _InputIter __last) { uninitialized_fill(__result, __mid, __x); try { return uninitialized_copy(__first, __last, __mid); } catch(...) { _Destroy(__result, __mid); throw; } } template inline void __uninitialized_copy_fill(_InputIter __first1, _InputIter __last1, _ForwardIter __first2, _ForwardIter __last2, const _Tp& __x) { _ForwardIter __mid2 = uninitialized_copy(__first1, __last1, __first2); try { uninitialized_fill(__mid2, __last2, __x); } catch(...) { _Destroy(__first2, __mid2); throw; } } } # 71 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/list" 2 3 # 1 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_list.h" 1 3 # 66 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_list.h" 3 namespace std { struct _List_node_base { _List_node_base* _M_next; _List_node_base* _M_prev; }; template struct _List_node : public _List_node_base { _Tp _M_data; }; struct _List_iterator_base { typedef size_t size_type; typedef ptrdiff_t difference_type; typedef bidirectional_iterator_tag iterator_category; _List_node_base* _M_node; _List_iterator_base(_List_node_base* __x) : _M_node(__x) { } _List_iterator_base() { } void _M_incr() { _M_node = _M_node->_M_next; } void _M_decr() { _M_node = _M_node->_M_prev; } bool operator==(const _List_iterator_base& __x) const { return _M_node == __x._M_node; } bool operator!=(const _List_iterator_base& __x) const { return _M_node != __x._M_node; } }; template struct _List_iterator : public _List_iterator_base { typedef _List_iterator<_Tp,_Tp&,_Tp*> iterator; typedef _List_iterator<_Tp,const _Tp&,const _Tp*> const_iterator; typedef _List_iterator<_Tp,_Ref,_Ptr> _Self; typedef _Tp value_type; typedef _Ptr pointer; typedef _Ref reference; typedef _List_node<_Tp> _Node; _List_iterator(_Node* __x) : _List_iterator_base(__x) { } _List_iterator() { } _List_iterator(const iterator& __x) : _List_iterator_base(__x._M_node) { } reference operator*() const { return ((_Node*) _M_node)->_M_data; } pointer operator->() const { return &(operator*()); } _Self& operator++() { this->_M_incr(); return *this; } _Self operator++(int) { _Self __tmp = *this; this->_M_incr(); return __tmp; } _Self& operator--() { this->_M_decr(); return *this; } _Self operator--(int) { _Self __tmp = *this; this->_M_decr(); return __tmp; } }; # 185 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_list.h" 3 template class _List_alloc_base { public: typedef typename _Alloc_traits<_Tp, _Allocator>::allocator_type allocator_type; allocator_type get_allocator() const { return _Node_allocator; } _List_alloc_base(const allocator_type& __a) : _Node_allocator(__a) { } protected: _List_node<_Tp>* _M_get_node() { return _Node_allocator.allocate(1); } void _M_put_node(_List_node<_Tp>* __p) { _Node_allocator.deallocate(__p, 1); } protected: typename _Alloc_traits<_List_node<_Tp>, _Allocator>::allocator_type _Node_allocator; _List_node<_Tp>* _M_node; }; template class _List_alloc_base<_Tp, _Allocator, true> { public: typedef typename _Alloc_traits<_Tp, _Allocator>::allocator_type allocator_type; allocator_type get_allocator() const { return allocator_type(); } _List_alloc_base(const allocator_type&) { } protected: typedef typename _Alloc_traits<_List_node<_Tp>, _Allocator>::_Alloc_type _Alloc_type; _List_node<_Tp>* _M_get_node() { return _Alloc_type::allocate(1); } void _M_put_node(_List_node<_Tp>* __p) { _Alloc_type::deallocate(__p, 1); } protected: _List_node<_Tp>* _M_node; }; template class _List_base : public _List_alloc_base<_Tp, _Alloc, _Alloc_traits<_Tp, _Alloc>::_S_instanceless> { public: typedef _List_alloc_base<_Tp, _Alloc, _Alloc_traits<_Tp, _Alloc>::_S_instanceless> _Base; typedef typename _Base::allocator_type allocator_type; _List_base(const allocator_type& __a) : _Base(__a) { _M_node = _M_get_node(); _M_node->_M_next = _M_node; _M_node->_M_prev = _M_node; } ~_List_base() { clear(); _M_put_node(_M_node); } void clear(); }; # 289 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/bits/stl_list.h" 3 template > class list : protected _List_base<_Tp, _Alloc> { typedef void (__gnu_cxx::_SGIAssignableConcept <_Tp>::* _func_Tp_SGIAssignableConcept)(); template <_func_Tp_SGIAssignableConcept _Tp1> struct _concept_checking_Tp_SGIAssignableConcept { }; typedef _concept_checking_Tp_SGIAssignableConcept< &__gnu_cxx::_SGIAssignableConcept <_Tp>::__constraints> _concept_checking_typedef_Tp_SGIAssignableConcept; typedef _List_base<_Tp, _Alloc> _Base; protected: typedef void* _Void_pointer; public: typedef _Tp value_type; typedef value_type* pointer; typedef const value_type* const_pointer; typedef value_type& reference; typedef const value_type& const_reference; typedef _List_node<_Tp> _Node; typedef size_t size_type; typedef ptrdiff_t difference_type; typedef typename _Base::allocator_type allocator_type; typedef _List_iterator<_Tp,_Tp&,_Tp*> iterator; typedef _List_iterator<_Tp,const _Tp&,const _Tp*> const_iterator; typedef reverse_iterator const_reverse_iterator; typedef reverse_iterator reverse_iterator; protected: using _Base::_M_node; using _Base::_M_put_node; using _Base::_M_get_node; protected: _Node* _M_create_node(const _Tp& __x) { _Node* __p = _M_get_node(); try { _Construct(&__p->_M_data, __x); } catch(...) { _M_put_node(__p); throw; } return __p; } _Node* _M_create_node() { _Node* __p = _M_get_node(); try { _Construct(&__p->_M_data); } catch(...) { _M_put_node(__p); throw; } return __p; } public: allocator_type get_allocator() const { return _Base::get_allocator(); } explicit list(const allocator_type& __a = allocator_type()) : _Base(__a) { } iterator begin() { return static_cast<_Node*>(_M_node->_M_next); } const_iterator begin() const { return static_cast<_Node*>(_M_node->_M_next); } iterator end() { return _M_node; } const_iterator end() const { return _M_node; } reverse_iterator rbegin() { return reverse_iterator(end()); } const_reverse_iterator rbegin() const { return const_reverse_iterator(end()); } reverse_iterator rend() { return reverse_iterator(begin()); } const_reverse_iterator rend() const { return const_reverse_iterator(begin()); } bool empty() const { return _M_node->_M_next == _M_node; } size_type size() const { return distance(begin(), end()); } size_type max_size() const { return size_type(-1); } reference front() { return *begin(); } const_reference front() const { return *begin(); } reference back() { return *(--end()); } const_reference back() const { return *(--end()); } void swap(list<_Tp, _Alloc>& __x) { std::swap(_M_node, __x._M_node); } iterator insert(iterator __position, const _Tp& __x) { _Node* __tmp = _M_create_node(__x); __tmp->_M_next = __position._M_node; __tmp->_M_prev = __position._M_node->_M_prev; __position._M_node->_M_prev->_M_next = __tmp; __position._M_node->_M_prev = __tmp; return __tmp; } iterator insert(iterator __position) { return insert(__position, _Tp()); } template void _M_insert_dispatch(iterator __pos, _Integer __n, _Integer __x, __true_type) { _M_fill_insert(__pos, (size_type) __n, (_Tp) __x); } template void _M_insert_dispatch(iterator __pos, _InputIterator __first, _InputIterator __last, __false_type); template void insert(iterator __pos, _InputIterator __first, _InputIterator __last) { typedef typename _Is_integer<_InputIterator>::_Integral _Integral; _M_insert_dispatch(__pos, __first, __last, _Integral()); } void insert(iterator __pos, size_type __n, const _Tp& __x) { _M_fill_insert(__pos, __n, __x); } void _M_fill_insert(iterator __pos, size_type __n, const _Tp& __x); void push_front(const _Tp& __x) { insert(begin(), __x); } void push_front() { insert(begin()); } void push_back(const _Tp& __x) { insert(end(), __x); } void push_back() { insert(end()); } iterator erase(iterator __position) { _List_node_base* __next_node = __position._M_node->_M_next; _List_node_base* __prev_node = __position._M_node->_M_prev; _Node* __n = static_cast<_Node*>(__position._M_node); __prev_node->_M_next = __next_node; __next_node->_M_prev = __prev_node; _Destroy(&__n->_M_data); _M_put_node(__n); return iterator(static_cast<_Node*>(__next_node)); } iterator erase(iterator __first, iterator __last); void clear() { _Base::clear(); } void resize(size_type __new_size, const _Tp& __x); void resize(size_type __new_size) { this->resize(__new_size, _Tp()); } void pop_front() { erase(begin()); } void pop_back() { iterator __tmp = end(); erase(--__tmp); } list(size_type __n, const _Tp& __value, const allocator_type& __a = allocator_type()) : _Base(__a) { insert(begin(), __n, __value); } explicit list(size_type __n) : _Base(allocator_type()) { insert(begin(), __n, _Tp()); } template list(_InputIterator __first, _InputIterator __last, const allocator_type& __a = allocator_type()) : _Base(__a) { insert(begin(), __first, __last); } list(const list<_Tp, _Alloc>& __x) : _Base(__x.get_allocator()) { insert(begin(), __x.begin(), __x.end()); } ~list() { } list<_Tp, _Alloc>& operator=(const list<_Tp, _Alloc>& __x); public: void assign(size_type __n, const _Tp& __val) { _M_fill_assign(__n, __val); } void _M_fill_assign(size_type __n, const _Tp& __val); template void assign(_InputIterator __first, _InputIterator __last) { typedef typename _Is_integer<_InputIterator>::_Integral _Integral; _M_assign_dispatch(__first, __last, _Integral()); } template void _M_assign_dispatch(_Integer __n, _Integer __val, __true_type) { _M_fill_assign((size_type) __n, (_Tp) __val); } template void _M_assign_dispatch(_InputIterator __first, _InputIterator __last, __false_type); protected: void _M_transfer(iterator __position, iterator __first, iterator __last) { if (__position != __last) { __last._M_node->_M_prev->_M_next = __position._M_node; __first._M_node->_M_prev->_M_next = __last._M_node; __position._M_node->_M_prev->_M_next = __first._M_node; _List_node_base* __tmp = __position._M_node->_M_prev; __position._M_node->_M_prev = __last._M_node->_M_prev; __last._M_node->_M_prev = __first._M_node->_M_prev; __first._M_node->_M_prev = __tmp; } } public: void splice(iterator __position, list& __x) { if (!__x.empty()) this->_M_transfer(__position, __x.begin(), __x.end()); } void splice(iterator __position, list&, iterator __i) { iterator __j = __i; ++__j; if (__position == __i || __position == __j) return; this->_M_transfer(__position, __i, __j); } void splice(iterator __position, list&, iterator __first, iterator __last) { if (__first != __last) this->_M_transfer(__position, __first, __last); } void remove(const _Tp& __value); void unique(); void merge(list& __x); void reverse(); void sort(); template void remove_if(_Predicate); template void unique(_BinaryPredicate); template void merge(list&, _StrictWeakOrdering); template void sort(_StrictWeakOrdering); }; template inline bool operator==(const list<_Tp,_Alloc>& __x, const list<_Tp,_Alloc>& __y) { typedef typename list<_Tp,_Alloc>::const_iterator const_iterator; const_iterator __end1 = __x.end(); const_iterator __end2 = __y.end(); const_iterator __i1 = __x.begin(); const_iterator __i2 = __y.begin(); while (__i1 != __end1 && __i2 != __end2 && *__i1 == *__i2) { ++__i1; ++__i2; } return __i1 == __end1 && __i2 == __end2; } template inline bool operator<(const list<_Tp,_Alloc>& __x, const list<_Tp,_Alloc>& __y) { return lexicographical_compare(__x.begin(), __x.end(), __y.begin(), __y.end()); } template inline bool operator!=(const list<_Tp,_Alloc>& __x, const list<_Tp,_Alloc>& __y) { return !(__x == __y); } template inline bool operator>(const list<_Tp,_Alloc>& __x, const list<_Tp,_Alloc>& __y) { return __y < __x; } template inline bool operator<=(const list<_Tp,_Alloc>& __x, const list<_Tp,_Alloc>& __y) { return !(__y < __x); } template inline bool operator>=(const list<_Tp,_Alloc>& __x, const list<_Tp,_Alloc>& __y) { return !(__x < __y); } template inline void swap(list<_Tp, _Alloc>& __x, list<_Tp, _Alloc>& __y) { __x.swap(__y); } template void _List_base<_Tp,_Alloc>:: clear() { _List_node<_Tp>* __cur = static_cast<_List_node<_Tp>*>(_M_node->_M_next); while (__cur != _M_node) { _List_node<_Tp>* __tmp = __cur; __cur = static_cast<_List_node<_Tp>*>(__cur->_M_next); _Destroy(&__tmp->_M_data); _M_put_node(__tmp); } _M_node->_M_next = _M_node; _M_node->_M_prev = _M_node; } template template void list<_Tp, _Alloc>:: _M_insert_dispatch(iterator __position, _InputIter __first, _InputIter __last, __false_type) { for ( ; __first != __last; ++__first) insert(__position, *__first); } template void list<_Tp, _Alloc>:: _M_fill_insert(iterator __position, size_type __n, const _Tp& __x) { for ( ; __n > 0; --__n) insert(__position, __x); } template typename list<_Tp,_Alloc>::iterator list<_Tp, _Alloc>:: erase(iterator __first, iterator __last) { while (__first != __last) erase(__first++); return __last; } template void list<_Tp, _Alloc>:: resize(size_type __new_size, const _Tp& __x) { iterator __i = begin(); size_type __len = 0; for ( ; __i != end() && __len < __new_size; ++__i, ++__len) ; if (__len == __new_size) erase(__i, end()); else insert(end(), __new_size - __len, __x); } template list<_Tp, _Alloc>& list<_Tp, _Alloc>:: operator=(const list<_Tp, _Alloc>& __x) { if (this != &__x) { iterator __first1 = begin(); iterator __last1 = end(); const_iterator __first2 = __x.begin(); const_iterator __last2 = __x.end(); while (__first1 != __last1 && __first2 != __last2) *__first1++ = *__first2++; if (__first2 == __last2) erase(__first1, __last1); else insert(__last1, __first2, __last2); } return *this; } template void list<_Tp, _Alloc>:: _M_fill_assign(size_type __n, const _Tp& __val) { iterator __i = begin(); for ( ; __i != end() && __n > 0; ++__i, --__n) *__i = __val; if (__n > 0) insert(end(), __n, __val); else erase(__i, end()); } template template void list<_Tp, _Alloc>:: _M_assign_dispatch(_InputIter __first2, _InputIter __last2, __false_type) { iterator __first1 = begin(); iterator __last1 = end(); for ( ; __first1 != __last1 && __first2 != __last2; ++__first1, ++__first2) *__first1 = *__first2; if (__first2 == __last2) erase(__first1, __last1); else insert(__last1, __first2, __last2); } template void list<_Tp, _Alloc>:: remove(const _Tp& __value) { iterator __first = begin(); iterator __last = end(); while (__first != __last) { iterator __next = __first; ++__next; if (*__first == __value) erase(__first); __first = __next; } } template void list<_Tp, _Alloc>:: unique() { iterator __first = begin(); iterator __last = end(); if (__first == __last) return; iterator __next = __first; while (++__next != __last) { if (*__first == *__next) erase(__next); else __first = __next; __next = __first; } } template void list<_Tp, _Alloc>:: merge(list<_Tp, _Alloc>& __x) { iterator __first1 = begin(); iterator __last1 = end(); iterator __first2 = __x.begin(); iterator __last2 = __x.end(); while (__first1 != __last1 && __first2 != __last2) if (*__first2 < *__first1) { iterator __next = __first2; _M_transfer(__first1, __first2, ++__next); __first2 = __next; } else ++__first1; if (__first2 != __last2) _M_transfer(__last1, __first2, __last2); } inline void __List_base_reverse(_List_node_base* __p) { _List_node_base* __tmp = __p; do { std::swap(__tmp->_M_next, __tmp->_M_prev); __tmp = __tmp->_M_prev; } while (__tmp != __p); } template inline void list<_Tp, _Alloc>:: reverse() { __List_base_reverse(this->_M_node); } template void list<_Tp, _Alloc>:: sort() { if (_M_node->_M_next != _M_node && _M_node->_M_next->_M_next != _M_node) { list<_Tp, _Alloc> __carry; list<_Tp, _Alloc> __counter[64]; int __fill = 0; while (!empty()) { __carry.splice(__carry.begin(), *this, begin()); int __i = 0; while(__i < __fill && !__counter[__i].empty()) { __counter[__i].merge(__carry); __carry.swap(__counter[__i++]); } __carry.swap(__counter[__i]); if (__i == __fill) ++__fill; } for (int __i = 1; __i < __fill; ++__i) __counter[__i].merge(__counter[__i-1]); swap(__counter[__fill-1]); } } template template void list<_Tp, _Alloc>:: remove_if(_Predicate __pred) { iterator __first = begin(); iterator __last = end(); while (__first != __last) { iterator __next = __first; ++__next; if (__pred(*__first)) erase(__first); __first = __next; } } template template void list<_Tp, _Alloc>:: unique(_BinaryPredicate __binary_pred) { iterator __first = begin(); iterator __last = end(); if (__first == __last) return; iterator __next = __first; while (++__next != __last) { if (__binary_pred(*__first, *__next)) erase(__next); else __first = __next; __next = __first; } } template template void list<_Tp, _Alloc>:: merge(list<_Tp, _Alloc>& __x, _StrictWeakOrdering __comp) { iterator __first1 = begin(); iterator __last1 = end(); iterator __first2 = __x.begin(); iterator __last2 = __x.end(); while (__first1 != __last1 && __first2 != __last2) if (__comp(*__first2, *__first1)) { iterator __next = __first2; _M_transfer(__first1, __first2, ++__next); __first2 = __next; } else ++__first1; if (__first2 != __last2) _M_transfer(__last1, __first2, __last2); } template template void list<_Tp, _Alloc>:: sort(_StrictWeakOrdering __comp) { if (_M_node->_M_next != _M_node && _M_node->_M_next->_M_next != _M_node) { list<_Tp, _Alloc> __carry; list<_Tp, _Alloc> __counter[64]; int __fill = 0; while (!empty()) { __carry.splice(__carry.begin(), *this, begin()); int __i = 0; while(__i < __fill && !__counter[__i].empty()) { __counter[__i].merge(__carry, __comp); __carry.swap(__counter[__i++]); } __carry.swap(__counter[__i]); if (__i == __fill) ++__fill; } for (int __i = 1; __i < __fill; ++__i) __counter[__i].merge(__counter[__i-1], __comp); swap(__counter[__fill-1]); } } } # 72 "/cm/tools/paks/gcc-3.2.1/include/c++/3.2.1/list" 2 3 # 2 "foo.cc" 2 class Foo { public: int x; std::list children; }; --ELM745743854-1256-0_--