Advertisement
Guest User

Untitled

a guest
Dec 21st, 2014
159
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 44.17 KB | None | 0 0
  1. # 1 "test.cpp"
  2. # 1 "<built-in>"
  3. # 1 "<command-line>"
  4. # 1 "/usr/include/stdc-predef.h" 1 3 4
  5. # 1 "<command-line>" 2
  6. # 1 "test.cpp"
  7. # 1 "/usr/include/stdio.h" 1 3 4
  8. # 27 "/usr/include/stdio.h" 3 4
  9. # 1 "/usr/include/features.h" 1 3 4
  10. # 374 "/usr/include/features.h" 3 4
  11. # 1 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 1 3 4
  12. # 385 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 3 4
  13. # 1 "/usr/include/x86_64-linux-gnu/bits/wordsize.h" 1 3 4
  14. # 386 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 2 3 4
  15. # 375 "/usr/include/features.h" 2 3 4
  16. # 398 "/usr/include/features.h" 3 4
  17. # 1 "/usr/include/x86_64-linux-gnu/gnu/stubs.h" 1 3 4
  18. # 10 "/usr/include/x86_64-linux-gnu/gnu/stubs.h" 3 4
  19. # 1 "/usr/include/x86_64-linux-gnu/gnu/stubs-64.h" 1 3 4
  20. # 11 "/usr/include/x86_64-linux-gnu/gnu/stubs.h" 2 3 4
  21. # 399 "/usr/include/features.h" 2 3 4
  22. # 28 "/usr/include/stdio.h" 2 3 4
  23.  
  24. extern "C" {
  25.  
  26.  
  27.  
  28. # 1 "/usr/lib/gcc/x86_64-linux-gnu/4.9/include/stddef.h" 1 3 4
  29. # 212 "/usr/lib/gcc/x86_64-linux-gnu/4.9/include/stddef.h" 3 4
  30. typedef long unsigned int size_t;
  31. # 34 "/usr/include/stdio.h" 2 3 4
  32.  
  33. # 1 "/usr/include/x86_64-linux-gnu/bits/types.h" 1 3 4
  34. # 27 "/usr/include/x86_64-linux-gnu/bits/types.h" 3 4
  35. # 1 "/usr/include/x86_64-linux-gnu/bits/wordsize.h" 1 3 4
  36. # 28 "/usr/include/x86_64-linux-gnu/bits/types.h" 2 3 4
  37.  
  38.  
  39. typedef unsigned char __u_char;
  40. typedef unsigned short int __u_short;
  41. typedef unsigned int __u_int;
  42. typedef unsigned long int __u_long;
  43.  
  44.  
  45. typedef signed char __int8_t;
  46. typedef unsigned char __uint8_t;
  47. typedef signed short int __int16_t;
  48. typedef unsigned short int __uint16_t;
  49. typedef signed int __int32_t;
  50. typedef unsigned int __uint32_t;
  51.  
  52. typedef signed long int __int64_t;
  53. typedef unsigned long int __uint64_t;
  54.  
  55.  
  56.  
  57.  
  58.  
  59.  
  60.  
  61. typedef long int __quad_t;
  62. typedef unsigned long int __u_quad_t;
  63. # 121 "/usr/include/x86_64-linux-gnu/bits/types.h" 3 4
  64. # 1 "/usr/include/x86_64-linux-gnu/bits/typesizes.h" 1 3 4
  65. # 122 "/usr/include/x86_64-linux-gnu/bits/types.h" 2 3 4
  66.  
  67.  
  68. typedef unsigned long int __dev_t;
  69. typedef unsigned int __uid_t;
  70. typedef unsigned int __gid_t;
  71. typedef unsigned long int __ino_t;
  72. typedef unsigned long int __ino64_t;
  73. typedef unsigned int __mode_t;
  74. typedef unsigned long int __nlink_t;
  75. typedef long int __off_t;
  76. typedef long int __off64_t;
  77. typedef int __pid_t;
  78. typedef struct { int __val[2]; } __fsid_t;
  79. typedef long int __clock_t;
  80. typedef unsigned long int __rlim_t;
  81. typedef unsigned long int __rlim64_t;
  82. typedef unsigned int __id_t;
  83. typedef long int __time_t;
  84. typedef unsigned int __useconds_t;
  85. typedef long int __suseconds_t;
  86.  
  87. typedef int __daddr_t;
  88. typedef int __key_t;
  89.  
  90.  
  91. typedef int __clockid_t;
  92.  
  93.  
  94. typedef void * __timer_t;
  95.  
  96.  
  97. typedef long int __blksize_t;
  98.  
  99.  
  100.  
  101.  
  102. typedef long int __blkcnt_t;
  103. typedef long int __blkcnt64_t;
  104.  
  105.  
  106. typedef unsigned long int __fsblkcnt_t;
  107. typedef unsigned long int __fsblkcnt64_t;
  108.  
  109.  
  110. typedef unsigned long int __fsfilcnt_t;
  111. typedef unsigned long int __fsfilcnt64_t;
  112.  
  113.  
  114. typedef long int __fsword_t;
  115.  
  116. typedef long int __ssize_t;
  117.  
  118.  
  119. typedef long int __syscall_slong_t;
  120.  
  121. typedef unsigned long int __syscall_ulong_t;
  122.  
  123.  
  124.  
  125. typedef __off64_t __loff_t;
  126. typedef __quad_t *__qaddr_t;
  127. typedef char *__caddr_t;
  128.  
  129.  
  130. typedef long int __intptr_t;
  131.  
  132.  
  133. typedef unsigned int __socklen_t;
  134. # 36 "/usr/include/stdio.h" 2 3 4
  135. # 44 "/usr/include/stdio.h" 3 4
  136. struct _IO_FILE;
  137.  
  138.  
  139.  
  140. typedef struct _IO_FILE FILE;
  141.  
  142.  
  143.  
  144.  
  145.  
  146. # 64 "/usr/include/stdio.h" 3 4
  147. typedef struct _IO_FILE __FILE;
  148. # 74 "/usr/include/stdio.h" 3 4
  149. # 1 "/usr/include/libio.h" 1 3 4
  150. # 31 "/usr/include/libio.h" 3 4
  151. # 1 "/usr/include/_G_config.h" 1 3 4
  152. # 15 "/usr/include/_G_config.h" 3 4
  153. # 1 "/usr/lib/gcc/x86_64-linux-gnu/4.9/include/stddef.h" 1 3 4
  154. # 16 "/usr/include/_G_config.h" 2 3 4
  155.  
  156.  
  157.  
  158.  
  159. # 1 "/usr/include/wchar.h" 1 3 4
  160. # 82 "/usr/include/wchar.h" 3 4
  161. typedef struct
  162. {
  163. int __count;
  164. union
  165. {
  166.  
  167. unsigned int __wch;
  168.  
  169.  
  170.  
  171. char __wchb[4];
  172. } __value;
  173. } __mbstate_t;
  174. # 21 "/usr/include/_G_config.h" 2 3 4
  175. typedef struct
  176. {
  177. __off_t __pos;
  178. __mbstate_t __state;
  179. } _G_fpos_t;
  180. typedef struct
  181. {
  182. __off64_t __pos;
  183. __mbstate_t __state;
  184. } _G_fpos64_t;
  185. # 32 "/usr/include/libio.h" 2 3 4
  186. # 49 "/usr/include/libio.h" 3 4
  187. # 1 "/usr/lib/gcc/x86_64-linux-gnu/4.9/include/stdarg.h" 1 3 4
  188. # 40 "/usr/lib/gcc/x86_64-linux-gnu/4.9/include/stdarg.h" 3 4
  189. typedef __builtin_va_list __gnuc_va_list;
  190. # 50 "/usr/include/libio.h" 2 3 4
  191. # 144 "/usr/include/libio.h" 3 4
  192. struct _IO_jump_t; struct _IO_FILE;
  193. # 154 "/usr/include/libio.h" 3 4
  194. typedef void _IO_lock_t;
  195.  
  196.  
  197.  
  198.  
  199.  
  200. struct _IO_marker {
  201. struct _IO_marker *_next;
  202. struct _IO_FILE *_sbuf;
  203.  
  204.  
  205.  
  206. int _pos;
  207. # 177 "/usr/include/libio.h" 3 4
  208. };
  209.  
  210.  
  211. enum __codecvt_result
  212. {
  213. __codecvt_ok,
  214. __codecvt_partial,
  215. __codecvt_error,
  216. __codecvt_noconv
  217. };
  218. # 245 "/usr/include/libio.h" 3 4
  219. struct _IO_FILE {
  220. int _flags;
  221.  
  222.  
  223.  
  224.  
  225. char* _IO_read_ptr;
  226. char* _IO_read_end;
  227. char* _IO_read_base;
  228. char* _IO_write_base;
  229. char* _IO_write_ptr;
  230. char* _IO_write_end;
  231. char* _IO_buf_base;
  232. char* _IO_buf_end;
  233.  
  234. char *_IO_save_base;
  235. char *_IO_backup_base;
  236. char *_IO_save_end;
  237.  
  238. struct _IO_marker *_markers;
  239.  
  240. struct _IO_FILE *_chain;
  241.  
  242. int _fileno;
  243.  
  244.  
  245.  
  246. int _flags2;
  247.  
  248. __off_t _old_offset;
  249.  
  250.  
  251.  
  252. unsigned short _cur_column;
  253. signed char _vtable_offset;
  254. char _shortbuf[1];
  255.  
  256.  
  257.  
  258. _IO_lock_t *_lock;
  259. # 293 "/usr/include/libio.h" 3 4
  260. __off64_t _offset;
  261. # 302 "/usr/include/libio.h" 3 4
  262. void *__pad1;
  263. void *__pad2;
  264. void *__pad3;
  265. void *__pad4;
  266. size_t __pad5;
  267.  
  268. int _mode;
  269.  
  270. char _unused2[15 * sizeof (int) - 4 * sizeof (void *) - sizeof (size_t)];
  271.  
  272. };
  273.  
  274.  
  275.  
  276.  
  277.  
  278. struct _IO_FILE_plus;
  279.  
  280. extern struct _IO_FILE_plus _IO_2_1_stdin_;
  281. extern struct _IO_FILE_plus _IO_2_1_stdout_;
  282. extern struct _IO_FILE_plus _IO_2_1_stderr_;
  283. # 338 "/usr/include/libio.h" 3 4
  284. typedef __ssize_t __io_read_fn (void *__cookie, char *__buf, size_t __nbytes);
  285.  
  286.  
  287.  
  288.  
  289.  
  290.  
  291.  
  292. typedef __ssize_t __io_write_fn (void *__cookie, const char *__buf,
  293. size_t __n);
  294.  
  295.  
  296.  
  297.  
  298.  
  299.  
  300.  
  301. typedef int __io_seek_fn (void *__cookie, __off64_t *__pos, int __w);
  302.  
  303.  
  304. typedef int __io_close_fn (void *__cookie);
  305.  
  306.  
  307.  
  308.  
  309. typedef __io_read_fn cookie_read_function_t;
  310. typedef __io_write_fn cookie_write_function_t;
  311. typedef __io_seek_fn cookie_seek_function_t;
  312. typedef __io_close_fn cookie_close_function_t;
  313.  
  314.  
  315. typedef struct
  316. {
  317. __io_read_fn *read;
  318. __io_write_fn *write;
  319. __io_seek_fn *seek;
  320. __io_close_fn *close;
  321. } _IO_cookie_io_functions_t;
  322. typedef _IO_cookie_io_functions_t cookie_io_functions_t;
  323.  
  324. struct _IO_cookie_file;
  325.  
  326.  
  327. extern void _IO_cookie_init (struct _IO_cookie_file *__cfile, int __read_write,
  328. void *__cookie, _IO_cookie_io_functions_t __fns);
  329.  
  330.  
  331.  
  332.  
  333. extern "C" {
  334.  
  335.  
  336. extern int __underflow (_IO_FILE *);
  337. extern int __uflow (_IO_FILE *);
  338. extern int __overflow (_IO_FILE *, int);
  339. # 434 "/usr/include/libio.h" 3 4
  340. extern int _IO_getc (_IO_FILE *__fp);
  341. extern int _IO_putc (int __c, _IO_FILE *__fp);
  342. extern int _IO_feof (_IO_FILE *__fp) throw ();
  343. extern int _IO_ferror (_IO_FILE *__fp) throw ();
  344.  
  345. extern int _IO_peekc_locked (_IO_FILE *__fp);
  346.  
  347.  
  348.  
  349.  
  350.  
  351. extern void _IO_flockfile (_IO_FILE *) throw ();
  352. extern void _IO_funlockfile (_IO_FILE *) throw ();
  353. extern int _IO_ftrylockfile (_IO_FILE *) throw ();
  354. # 464 "/usr/include/libio.h" 3 4
  355. extern int _IO_vfscanf (_IO_FILE * __restrict, const char * __restrict,
  356. __gnuc_va_list, int *__restrict);
  357. extern int _IO_vfprintf (_IO_FILE *__restrict, const char *__restrict,
  358. __gnuc_va_list);
  359. extern __ssize_t _IO_padn (_IO_FILE *, int, __ssize_t);
  360. extern size_t _IO_sgetn (_IO_FILE *, void *, size_t);
  361.  
  362. extern __off64_t _IO_seekoff (_IO_FILE *, __off64_t, int, int);
  363. extern __off64_t _IO_seekpos (_IO_FILE *, __off64_t, int);
  364.  
  365. extern void _IO_free_backup_area (_IO_FILE *) throw ();
  366. # 526 "/usr/include/libio.h" 3 4
  367. }
  368. # 75 "/usr/include/stdio.h" 2 3 4
  369.  
  370.  
  371.  
  372.  
  373. typedef __gnuc_va_list va_list;
  374. # 90 "/usr/include/stdio.h" 3 4
  375. typedef __off_t off_t;
  376.  
  377.  
  378.  
  379.  
  380.  
  381.  
  382. typedef __off64_t off64_t;
  383.  
  384.  
  385.  
  386.  
  387. typedef __ssize_t ssize_t;
  388.  
  389.  
  390.  
  391.  
  392.  
  393.  
  394.  
  395. typedef _G_fpos_t fpos_t;
  396.  
  397.  
  398.  
  399.  
  400.  
  401. typedef _G_fpos64_t fpos64_t;
  402. # 164 "/usr/include/stdio.h" 3 4
  403. # 1 "/usr/include/x86_64-linux-gnu/bits/stdio_lim.h" 1 3 4
  404. # 165 "/usr/include/stdio.h" 2 3 4
  405.  
  406.  
  407.  
  408. extern struct _IO_FILE *stdin;
  409. extern struct _IO_FILE *stdout;
  410. extern struct _IO_FILE *stderr;
  411.  
  412.  
  413.  
  414.  
  415.  
  416.  
  417.  
  418. extern int remove (const char *__filename) throw ();
  419.  
  420. extern int rename (const char *__old, const char *__new) throw ();
  421.  
  422.  
  423.  
  424.  
  425. extern int renameat (int __oldfd, const char *__old, int __newfd,
  426. const char *__new) throw ();
  427.  
  428.  
  429.  
  430.  
  431.  
  432.  
  433.  
  434.  
  435. extern FILE *tmpfile (void) ;
  436. # 205 "/usr/include/stdio.h" 3 4
  437. extern FILE *tmpfile64 (void) ;
  438.  
  439.  
  440.  
  441. extern char *tmpnam (char *__s) throw () ;
  442.  
  443.  
  444.  
  445.  
  446.  
  447. extern char *tmpnam_r (char *__s) throw () ;
  448. # 227 "/usr/include/stdio.h" 3 4
  449. extern char *tempnam (const char *__dir, const char *__pfx)
  450. throw () __attribute__ ((__malloc__)) ;
  451.  
  452.  
  453.  
  454.  
  455.  
  456.  
  457.  
  458.  
  459. extern int fclose (FILE *__stream);
  460.  
  461.  
  462.  
  463.  
  464. extern int fflush (FILE *__stream);
  465.  
  466. # 252 "/usr/include/stdio.h" 3 4
  467. extern int fflush_unlocked (FILE *__stream);
  468. # 262 "/usr/include/stdio.h" 3 4
  469. extern int fcloseall (void);
  470.  
  471.  
  472.  
  473.  
  474.  
  475.  
  476.  
  477.  
  478.  
  479. extern FILE *fopen (const char *__restrict __filename,
  480. const char *__restrict __modes) ;
  481.  
  482.  
  483.  
  484.  
  485. extern FILE *freopen (const char *__restrict __filename,
  486. const char *__restrict __modes,
  487. FILE *__restrict __stream) ;
  488. # 295 "/usr/include/stdio.h" 3 4
  489.  
  490.  
  491. extern FILE *fopen64 (const char *__restrict __filename,
  492. const char *__restrict __modes) ;
  493. extern FILE *freopen64 (const char *__restrict __filename,
  494. const char *__restrict __modes,
  495. FILE *__restrict __stream) ;
  496.  
  497.  
  498.  
  499.  
  500. extern FILE *fdopen (int __fd, const char *__modes) throw () ;
  501.  
  502.  
  503.  
  504.  
  505.  
  506. extern FILE *fopencookie (void *__restrict __magic_cookie,
  507. const char *__restrict __modes,
  508. _IO_cookie_io_functions_t __io_funcs) throw () ;
  509.  
  510.  
  511.  
  512.  
  513. extern FILE *fmemopen (void *__s, size_t __len, const char *__modes)
  514. throw () ;
  515.  
  516.  
  517.  
  518.  
  519. extern FILE *open_memstream (char **__bufloc, size_t *__sizeloc) throw () ;
  520.  
  521.  
  522.  
  523.  
  524.  
  525.  
  526. extern void setbuf (FILE *__restrict __stream, char *__restrict __buf) throw ();
  527.  
  528.  
  529.  
  530. extern int setvbuf (FILE *__restrict __stream, char *__restrict __buf,
  531. int __modes, size_t __n) throw ();
  532.  
  533.  
  534.  
  535.  
  536.  
  537. extern void setbuffer (FILE *__restrict __stream, char *__restrict __buf,
  538. size_t __size) throw ();
  539.  
  540.  
  541. extern void setlinebuf (FILE *__stream) throw ();
  542.  
  543.  
  544.  
  545.  
  546.  
  547.  
  548.  
  549.  
  550. extern int fprintf (FILE *__restrict __stream,
  551. const char *__restrict __format, ...);
  552.  
  553.  
  554.  
  555.  
  556. extern int printf (const char *__restrict __format, ...);
  557.  
  558. extern int sprintf (char *__restrict __s,
  559. const char *__restrict __format, ...) throw ();
  560.  
  561.  
  562.  
  563.  
  564.  
  565. extern int vfprintf (FILE *__restrict __s, const char *__restrict __format,
  566. __gnuc_va_list __arg);
  567.  
  568.  
  569.  
  570.  
  571. extern int vprintf (const char *__restrict __format, __gnuc_va_list __arg);
  572.  
  573. extern int vsprintf (char *__restrict __s, const char *__restrict __format,
  574. __gnuc_va_list __arg) throw ();
  575.  
  576.  
  577.  
  578.  
  579.  
  580. extern int snprintf (char *__restrict __s, size_t __maxlen,
  581. const char *__restrict __format, ...)
  582. throw () __attribute__ ((__format__ (__printf__, 3, 4)));
  583.  
  584. extern int vsnprintf (char *__restrict __s, size_t __maxlen,
  585. const char *__restrict __format, __gnuc_va_list __arg)
  586. throw () __attribute__ ((__format__ (__printf__, 3, 0)));
  587.  
  588.  
  589.  
  590.  
  591.  
  592.  
  593. extern int vasprintf (char **__restrict __ptr, const char *__restrict __f,
  594. __gnuc_va_list __arg)
  595. throw () __attribute__ ((__format__ (__printf__, 2, 0))) ;
  596. extern int __asprintf (char **__restrict __ptr,
  597. const char *__restrict __fmt, ...)
  598. throw () __attribute__ ((__format__ (__printf__, 2, 3))) ;
  599. extern int asprintf (char **__restrict __ptr,
  600. const char *__restrict __fmt, ...)
  601. throw () __attribute__ ((__format__ (__printf__, 2, 3))) ;
  602.  
  603.  
  604.  
  605.  
  606. extern int vdprintf (int __fd, const char *__restrict __fmt,
  607. __gnuc_va_list __arg)
  608. __attribute__ ((__format__ (__printf__, 2, 0)));
  609. extern int dprintf (int __fd, const char *__restrict __fmt, ...)
  610. __attribute__ ((__format__ (__printf__, 2, 3)));
  611.  
  612.  
  613.  
  614.  
  615.  
  616.  
  617.  
  618.  
  619. extern int fscanf (FILE *__restrict __stream,
  620. const char *__restrict __format, ...) ;
  621.  
  622.  
  623.  
  624.  
  625. extern int scanf (const char *__restrict __format, ...) ;
  626.  
  627. extern int sscanf (const char *__restrict __s,
  628. const char *__restrict __format, ...) throw ();
  629. # 463 "/usr/include/stdio.h" 3 4
  630.  
  631.  
  632.  
  633.  
  634.  
  635.  
  636.  
  637.  
  638. extern int vfscanf (FILE *__restrict __s, const char *__restrict __format,
  639. __gnuc_va_list __arg)
  640. __attribute__ ((__format__ (__scanf__, 2, 0))) ;
  641.  
  642.  
  643.  
  644.  
  645.  
  646. extern int vscanf (const char *__restrict __format, __gnuc_va_list __arg)
  647. __attribute__ ((__format__ (__scanf__, 1, 0))) ;
  648.  
  649.  
  650. extern int vsscanf (const char *__restrict __s,
  651. const char *__restrict __format, __gnuc_va_list __arg)
  652. throw () __attribute__ ((__format__ (__scanf__, 2, 0)));
  653. # 522 "/usr/include/stdio.h" 3 4
  654.  
  655.  
  656.  
  657.  
  658.  
  659.  
  660.  
  661.  
  662.  
  663. extern int fgetc (FILE *__stream);
  664. extern int getc (FILE *__stream);
  665.  
  666.  
  667.  
  668.  
  669.  
  670. extern int getchar (void);
  671.  
  672. # 550 "/usr/include/stdio.h" 3 4
  673. extern int getc_unlocked (FILE *__stream);
  674. extern int getchar_unlocked (void);
  675. # 561 "/usr/include/stdio.h" 3 4
  676. extern int fgetc_unlocked (FILE *__stream);
  677.  
  678.  
  679.  
  680.  
  681.  
  682.  
  683.  
  684.  
  685.  
  686.  
  687.  
  688. extern int fputc (int __c, FILE *__stream);
  689. extern int putc (int __c, FILE *__stream);
  690.  
  691.  
  692.  
  693.  
  694.  
  695. extern int putchar (int __c);
  696.  
  697. # 594 "/usr/include/stdio.h" 3 4
  698. extern int fputc_unlocked (int __c, FILE *__stream);
  699.  
  700.  
  701.  
  702.  
  703.  
  704.  
  705.  
  706. extern int putc_unlocked (int __c, FILE *__stream);
  707. extern int putchar_unlocked (int __c);
  708.  
  709.  
  710.  
  711.  
  712.  
  713.  
  714. extern int getw (FILE *__stream);
  715.  
  716.  
  717. extern int putw (int __w, FILE *__stream);
  718.  
  719.  
  720.  
  721.  
  722.  
  723.  
  724.  
  725.  
  726. extern char *fgets (char *__restrict __s, int __n, FILE *__restrict __stream)
  727. ;
  728. # 638 "/usr/include/stdio.h" 3 4
  729. extern char *gets (char *__s) __attribute__ ((__deprecated__));
  730.  
  731.  
  732. # 649 "/usr/include/stdio.h" 3 4
  733. extern char *fgets_unlocked (char *__restrict __s, int __n,
  734. FILE *__restrict __stream) ;
  735. # 665 "/usr/include/stdio.h" 3 4
  736. extern __ssize_t __getdelim (char **__restrict __lineptr,
  737. size_t *__restrict __n, int __delimiter,
  738. FILE *__restrict __stream) ;
  739. extern __ssize_t getdelim (char **__restrict __lineptr,
  740. size_t *__restrict __n, int __delimiter,
  741. FILE *__restrict __stream) ;
  742.  
  743.  
  744.  
  745.  
  746.  
  747.  
  748.  
  749. extern __ssize_t getline (char **__restrict __lineptr,
  750. size_t *__restrict __n,
  751. FILE *__restrict __stream) ;
  752.  
  753.  
  754.  
  755.  
  756.  
  757.  
  758.  
  759.  
  760. extern int fputs (const char *__restrict __s, FILE *__restrict __stream);
  761.  
  762.  
  763.  
  764.  
  765.  
  766. extern int puts (const char *__s);
  767.  
  768.  
  769.  
  770.  
  771.  
  772.  
  773. extern int ungetc (int __c, FILE *__stream);
  774.  
  775.  
  776.  
  777.  
  778.  
  779.  
  780. extern size_t fread (void *__restrict __ptr, size_t __size,
  781. size_t __n, FILE *__restrict __stream) ;
  782.  
  783.  
  784.  
  785.  
  786. extern size_t fwrite (const void *__restrict __ptr, size_t __size,
  787. size_t __n, FILE *__restrict __s);
  788.  
  789. # 726 "/usr/include/stdio.h" 3 4
  790. extern int fputs_unlocked (const char *__restrict __s,
  791. FILE *__restrict __stream);
  792. # 737 "/usr/include/stdio.h" 3 4
  793. extern size_t fread_unlocked (void *__restrict __ptr, size_t __size,
  794. size_t __n, FILE *__restrict __stream) ;
  795. extern size_t fwrite_unlocked (const void *__restrict __ptr, size_t __size,
  796. size_t __n, FILE *__restrict __stream);
  797.  
  798.  
  799.  
  800.  
  801.  
  802.  
  803.  
  804.  
  805. extern int fseek (FILE *__stream, long int __off, int __whence);
  806.  
  807.  
  808.  
  809.  
  810. extern long int ftell (FILE *__stream) ;
  811.  
  812.  
  813.  
  814.  
  815. extern void rewind (FILE *__stream);
  816.  
  817. # 773 "/usr/include/stdio.h" 3 4
  818. extern int fseeko (FILE *__stream, __off_t __off, int __whence);
  819.  
  820.  
  821.  
  822.  
  823. extern __off_t ftello (FILE *__stream) ;
  824. # 792 "/usr/include/stdio.h" 3 4
  825.  
  826.  
  827.  
  828.  
  829.  
  830.  
  831. extern int fgetpos (FILE *__restrict __stream, fpos_t *__restrict __pos);
  832.  
  833.  
  834.  
  835.  
  836. extern int fsetpos (FILE *__stream, const fpos_t *__pos);
  837. # 815 "/usr/include/stdio.h" 3 4
  838.  
  839.  
  840.  
  841. extern int fseeko64 (FILE *__stream, __off64_t __off, int __whence);
  842. extern __off64_t ftello64 (FILE *__stream) ;
  843. extern int fgetpos64 (FILE *__restrict __stream, fpos64_t *__restrict __pos);
  844. extern int fsetpos64 (FILE *__stream, const fpos64_t *__pos);
  845.  
  846.  
  847.  
  848.  
  849. extern void clearerr (FILE *__stream) throw ();
  850.  
  851. extern int feof (FILE *__stream) throw () ;
  852.  
  853. extern int ferror (FILE *__stream) throw () ;
  854.  
  855.  
  856.  
  857.  
  858. extern void clearerr_unlocked (FILE *__stream) throw ();
  859. extern int feof_unlocked (FILE *__stream) throw () ;
  860. extern int ferror_unlocked (FILE *__stream) throw () ;
  861.  
  862.  
  863.  
  864.  
  865.  
  866.  
  867.  
  868.  
  869. extern void perror (const char *__s);
  870.  
  871.  
  872.  
  873.  
  874.  
  875.  
  876. # 1 "/usr/include/x86_64-linux-gnu/bits/sys_errlist.h" 1 3 4
  877. # 26 "/usr/include/x86_64-linux-gnu/bits/sys_errlist.h" 3 4
  878. extern int sys_nerr;
  879. extern const char *const sys_errlist[];
  880.  
  881.  
  882. extern int _sys_nerr;
  883. extern const char *const _sys_errlist[];
  884. # 854 "/usr/include/stdio.h" 2 3 4
  885.  
  886.  
  887.  
  888.  
  889. extern int fileno (FILE *__stream) throw () ;
  890.  
  891.  
  892.  
  893.  
  894. extern int fileno_unlocked (FILE *__stream) throw () ;
  895. # 873 "/usr/include/stdio.h" 3 4
  896. extern FILE *popen (const char *__command, const char *__modes) ;
  897.  
  898.  
  899.  
  900.  
  901.  
  902. extern int pclose (FILE *__stream);
  903.  
  904.  
  905.  
  906.  
  907.  
  908. extern char *ctermid (char *__s) throw ();
  909.  
  910.  
  911.  
  912.  
  913.  
  914. extern char *cuserid (char *__s);
  915.  
  916.  
  917.  
  918.  
  919. struct obstack;
  920.  
  921.  
  922. extern int obstack_printf (struct obstack *__restrict __obstack,
  923. const char *__restrict __format, ...)
  924. throw () __attribute__ ((__format__ (__printf__, 2, 3)));
  925. extern int obstack_vprintf (struct obstack *__restrict __obstack,
  926. const char *__restrict __format,
  927. __gnuc_va_list __args)
  928. throw () __attribute__ ((__format__ (__printf__, 2, 0)));
  929.  
  930.  
  931.  
  932.  
  933.  
  934.  
  935.  
  936. extern void flockfile (FILE *__stream) throw ();
  937.  
  938.  
  939.  
  940. extern int ftrylockfile (FILE *__stream) throw () ;
  941.  
  942.  
  943. extern void funlockfile (FILE *__stream) throw ();
  944. # 943 "/usr/include/stdio.h" 3 4
  945. }
  946. # 2 "test.cpp" 2
  947. # 1 "/usr/include/stdlib.h" 1 3 4
  948. # 32 "/usr/include/stdlib.h" 3 4
  949. # 1 "/usr/lib/gcc/x86_64-linux-gnu/4.9/include/stddef.h" 1 3 4
  950. # 33 "/usr/include/stdlib.h" 2 3 4
  951.  
  952. extern "C" {
  953.  
  954.  
  955.  
  956.  
  957.  
  958.  
  959. # 1 "/usr/include/x86_64-linux-gnu/bits/waitflags.h" 1 3 4
  960. # 50 "/usr/include/x86_64-linux-gnu/bits/waitflags.h" 3 4
  961. typedef enum
  962. {
  963. P_ALL,
  964. P_PID,
  965. P_PGID
  966. } idtype_t;
  967. # 42 "/usr/include/stdlib.h" 2 3 4
  968. # 1 "/usr/include/x86_64-linux-gnu/bits/waitstatus.h" 1 3 4
  969. # 64 "/usr/include/x86_64-linux-gnu/bits/waitstatus.h" 3 4
  970. # 1 "/usr/include/endian.h" 1 3 4
  971. # 36 "/usr/include/endian.h" 3 4
  972. # 1 "/usr/include/x86_64-linux-gnu/bits/endian.h" 1 3 4
  973. # 37 "/usr/include/endian.h" 2 3 4
  974. # 60 "/usr/include/endian.h" 3 4
  975. # 1 "/usr/include/x86_64-linux-gnu/bits/byteswap.h" 1 3 4
  976. # 28 "/usr/include/x86_64-linux-gnu/bits/byteswap.h" 3 4
  977. # 1 "/usr/include/x86_64-linux-gnu/bits/wordsize.h" 1 3 4
  978. # 29 "/usr/include/x86_64-linux-gnu/bits/byteswap.h" 2 3 4
  979.  
  980.  
  981.  
  982.  
  983.  
  984.  
  985. # 1 "/usr/include/x86_64-linux-gnu/bits/byteswap-16.h" 1 3 4
  986. # 36 "/usr/include/x86_64-linux-gnu/bits/byteswap.h" 2 3 4
  987. # 44 "/usr/include/x86_64-linux-gnu/bits/byteswap.h" 3 4
  988. static __inline unsigned int
  989. __bswap_32 (unsigned int __bsx)
  990. {
  991. return __builtin_bswap32 (__bsx);
  992. }
  993. # 108 "/usr/include/x86_64-linux-gnu/bits/byteswap.h" 3 4
  994. static __inline __uint64_t
  995. __bswap_64 (__uint64_t __bsx)
  996. {
  997. return __builtin_bswap64 (__bsx);
  998. }
  999. # 61 "/usr/include/endian.h" 2 3 4
  1000. # 65 "/usr/include/x86_64-linux-gnu/bits/waitstatus.h" 2 3 4
  1001.  
  1002. union wait
  1003. {
  1004. int w_status;
  1005. struct
  1006. {
  1007.  
  1008. unsigned int __w_termsig:7;
  1009. unsigned int __w_coredump:1;
  1010. unsigned int __w_retcode:8;
  1011. unsigned int:16;
  1012.  
  1013.  
  1014.  
  1015.  
  1016.  
  1017.  
  1018.  
  1019. } __wait_terminated;
  1020. struct
  1021. {
  1022.  
  1023. unsigned int __w_stopval:8;
  1024. unsigned int __w_stopsig:8;
  1025. unsigned int:16;
  1026.  
  1027.  
  1028.  
  1029.  
  1030.  
  1031.  
  1032. } __wait_stopped;
  1033. };
  1034. # 43 "/usr/include/stdlib.h" 2 3 4
  1035. # 95 "/usr/include/stdlib.h" 3 4
  1036.  
  1037.  
  1038. typedef struct
  1039. {
  1040. int quot;
  1041. int rem;
  1042. } div_t;
  1043.  
  1044.  
  1045.  
  1046. typedef struct
  1047. {
  1048. long int quot;
  1049. long int rem;
  1050. } ldiv_t;
  1051.  
  1052.  
  1053.  
  1054.  
  1055.  
  1056.  
  1057.  
  1058. __extension__ typedef struct
  1059. {
  1060. long long int quot;
  1061. long long int rem;
  1062. } lldiv_t;
  1063.  
  1064.  
  1065. # 139 "/usr/include/stdlib.h" 3 4
  1066. extern size_t __ctype_get_mb_cur_max (void) throw () ;
  1067.  
  1068.  
  1069.  
  1070.  
  1071. extern double atof (const char *__nptr)
  1072. throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
  1073.  
  1074. extern int atoi (const char *__nptr)
  1075. throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
  1076.  
  1077. extern long int atol (const char *__nptr)
  1078. throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
  1079.  
  1080.  
  1081.  
  1082.  
  1083.  
  1084. __extension__ extern long long int atoll (const char *__nptr)
  1085. throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
  1086.  
  1087.  
  1088.  
  1089.  
  1090.  
  1091. extern double strtod (const char *__restrict __nptr,
  1092. char **__restrict __endptr)
  1093. throw () __attribute__ ((__nonnull__ (1)));
  1094.  
  1095.  
  1096.  
  1097.  
  1098.  
  1099. extern float strtof (const char *__restrict __nptr,
  1100. char **__restrict __endptr) throw () __attribute__ ((__nonnull__ (1)));
  1101.  
  1102. extern long double strtold (const char *__restrict __nptr,
  1103. char **__restrict __endptr)
  1104. throw () __attribute__ ((__nonnull__ (1)));
  1105.  
  1106.  
  1107.  
  1108.  
  1109.  
  1110. extern long int strtol (const char *__restrict __nptr,
  1111. char **__restrict __endptr, int __base)
  1112. throw () __attribute__ ((__nonnull__ (1)));
  1113.  
  1114. extern unsigned long int strtoul (const char *__restrict __nptr,
  1115. char **__restrict __endptr, int __base)
  1116. throw () __attribute__ ((__nonnull__ (1)));
  1117.  
  1118.  
  1119.  
  1120.  
  1121. __extension__
  1122. extern long long int strtoq (const char *__restrict __nptr,
  1123. char **__restrict __endptr, int __base)
  1124. throw () __attribute__ ((__nonnull__ (1)));
  1125.  
  1126. __extension__
  1127. extern unsigned long long int strtouq (const char *__restrict __nptr,
  1128. char **__restrict __endptr, int __base)
  1129. throw () __attribute__ ((__nonnull__ (1)));
  1130.  
  1131.  
  1132.  
  1133.  
  1134.  
  1135. __extension__
  1136. extern long long int strtoll (const char *__restrict __nptr,
  1137. char **__restrict __endptr, int __base)
  1138. throw () __attribute__ ((__nonnull__ (1)));
  1139.  
  1140. __extension__
  1141. extern unsigned long long int strtoull (const char *__restrict __nptr,
  1142. char **__restrict __endptr, int __base)
  1143. throw () __attribute__ ((__nonnull__ (1)));
  1144.  
  1145. # 235 "/usr/include/stdlib.h" 3 4
  1146. # 1 "/usr/include/xlocale.h" 1 3 4
  1147. # 27 "/usr/include/xlocale.h" 3 4
  1148. typedef struct __locale_struct
  1149. {
  1150.  
  1151. struct __locale_data *__locales[13];
  1152.  
  1153.  
  1154. const unsigned short int *__ctype_b;
  1155. const int *__ctype_tolower;
  1156. const int *__ctype_toupper;
  1157.  
  1158.  
  1159. const char *__names[13];
  1160. } *__locale_t;
  1161.  
  1162.  
  1163. typedef __locale_t locale_t;
  1164. # 236 "/usr/include/stdlib.h" 2 3 4
  1165.  
  1166.  
  1167.  
  1168. extern long int strtol_l (const char *__restrict __nptr,
  1169. char **__restrict __endptr, int __base,
  1170. __locale_t __loc) throw () __attribute__ ((__nonnull__ (1, 4)));
  1171.  
  1172. extern unsigned long int strtoul_l (const char *__restrict __nptr,
  1173. char **__restrict __endptr,
  1174. int __base, __locale_t __loc)
  1175. throw () __attribute__ ((__nonnull__ (1, 4)));
  1176.  
  1177. __extension__
  1178. extern long long int strtoll_l (const char *__restrict __nptr,
  1179. char **__restrict __endptr, int __base,
  1180. __locale_t __loc)
  1181. throw () __attribute__ ((__nonnull__ (1, 4)));
  1182.  
  1183. __extension__
  1184. extern unsigned long long int strtoull_l (const char *__restrict __nptr,
  1185. char **__restrict __endptr,
  1186. int __base, __locale_t __loc)
  1187. throw () __attribute__ ((__nonnull__ (1, 4)));
  1188.  
  1189. extern double strtod_l (const char *__restrict __nptr,
  1190. char **__restrict __endptr, __locale_t __loc)
  1191. throw () __attribute__ ((__nonnull__ (1, 3)));
  1192.  
  1193. extern float strtof_l (const char *__restrict __nptr,
  1194. char **__restrict __endptr, __locale_t __loc)
  1195. throw () __attribute__ ((__nonnull__ (1, 3)));
  1196.  
  1197. extern long double strtold_l (const char *__restrict __nptr,
  1198. char **__restrict __endptr,
  1199. __locale_t __loc)
  1200. throw () __attribute__ ((__nonnull__ (1, 3)));
  1201. # 305 "/usr/include/stdlib.h" 3 4
  1202. extern char *l64a (long int __n) throw () ;
  1203.  
  1204.  
  1205. extern long int a64l (const char *__s)
  1206. throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
  1207.  
  1208.  
  1209.  
  1210.  
  1211. # 1 "/usr/include/x86_64-linux-gnu/sys/types.h" 1 3 4
  1212. # 27 "/usr/include/x86_64-linux-gnu/sys/types.h" 3 4
  1213. extern "C" {
  1214.  
  1215.  
  1216.  
  1217.  
  1218.  
  1219. typedef __u_char u_char;
  1220. typedef __u_short u_short;
  1221. typedef __u_int u_int;
  1222. typedef __u_long u_long;
  1223. typedef __quad_t quad_t;
  1224. typedef __u_quad_t u_quad_t;
  1225. typedef __fsid_t fsid_t;
  1226.  
  1227.  
  1228.  
  1229.  
  1230. typedef __loff_t loff_t;
  1231.  
  1232.  
  1233.  
  1234. typedef __ino_t ino_t;
  1235.  
  1236.  
  1237.  
  1238.  
  1239.  
  1240.  
  1241. typedef __ino64_t ino64_t;
  1242.  
  1243.  
  1244.  
  1245.  
  1246. typedef __dev_t dev_t;
  1247.  
  1248.  
  1249.  
  1250.  
  1251. typedef __gid_t gid_t;
  1252.  
  1253.  
  1254.  
  1255.  
  1256. typedef __mode_t mode_t;
  1257.  
  1258.  
  1259.  
  1260.  
  1261. typedef __nlink_t nlink_t;
  1262.  
  1263.  
  1264.  
  1265.  
  1266. typedef __uid_t uid_t;
  1267. # 98 "/usr/include/x86_64-linux-gnu/sys/types.h" 3 4
  1268. typedef __pid_t pid_t;
  1269.  
  1270.  
  1271.  
  1272.  
  1273.  
  1274. typedef __id_t id_t;
  1275. # 115 "/usr/include/x86_64-linux-gnu/sys/types.h" 3 4
  1276. typedef __daddr_t daddr_t;
  1277. typedef __caddr_t caddr_t;
  1278.  
  1279.  
  1280.  
  1281.  
  1282.  
  1283. typedef __key_t key_t;
  1284. # 132 "/usr/include/x86_64-linux-gnu/sys/types.h" 3 4
  1285. # 1 "/usr/include/time.h" 1 3 4
  1286. # 57 "/usr/include/time.h" 3 4
  1287.  
  1288.  
  1289. typedef __clock_t clock_t;
  1290.  
  1291.  
  1292.  
  1293. # 73 "/usr/include/time.h" 3 4
  1294.  
  1295.  
  1296. typedef __time_t time_t;
  1297.  
  1298.  
  1299.  
  1300. # 91 "/usr/include/time.h" 3 4
  1301. typedef __clockid_t clockid_t;
  1302. # 103 "/usr/include/time.h" 3 4
  1303. typedef __timer_t timer_t;
  1304. # 133 "/usr/include/x86_64-linux-gnu/sys/types.h" 2 3 4
  1305.  
  1306.  
  1307.  
  1308. typedef __useconds_t useconds_t;
  1309.  
  1310.  
  1311.  
  1312. typedef __suseconds_t suseconds_t;
  1313.  
  1314.  
  1315.  
  1316.  
  1317.  
  1318. # 1 "/usr/lib/gcc/x86_64-linux-gnu/4.9/include/stddef.h" 1 3 4
  1319. # 147 "/usr/include/x86_64-linux-gnu/sys/types.h" 2 3 4
  1320.  
  1321.  
  1322.  
  1323. typedef unsigned long int ulong;
  1324. typedef unsigned short int ushort;
  1325. typedef unsigned int uint;
  1326. # 194 "/usr/include/x86_64-linux-gnu/sys/types.h" 3 4
  1327. typedef int int8_t __attribute__ ((__mode__ (__QI__)));
  1328. typedef int int16_t __attribute__ ((__mode__ (__HI__)));
  1329. typedef int int32_t __attribute__ ((__mode__ (__SI__)));
  1330. typedef int int64_t __attribute__ ((__mode__ (__DI__)));
  1331.  
  1332.  
  1333. typedef unsigned int u_int8_t __attribute__ ((__mode__ (__QI__)));
  1334. typedef unsigned int u_int16_t __attribute__ ((__mode__ (__HI__)));
  1335. typedef unsigned int u_int32_t __attribute__ ((__mode__ (__SI__)));
  1336. typedef unsigned int u_int64_t __attribute__ ((__mode__ (__DI__)));
  1337.  
  1338. typedef int register_t __attribute__ ((__mode__ (__word__)));
  1339. # 219 "/usr/include/x86_64-linux-gnu/sys/types.h" 3 4
  1340. # 1 "/usr/include/x86_64-linux-gnu/sys/select.h" 1 3 4
  1341. # 30 "/usr/include/x86_64-linux-gnu/sys/select.h" 3 4
  1342. # 1 "/usr/include/x86_64-linux-gnu/bits/select.h" 1 3 4
  1343. # 22 "/usr/include/x86_64-linux-gnu/bits/select.h" 3 4
  1344. # 1 "/usr/include/x86_64-linux-gnu/bits/wordsize.h" 1 3 4
  1345. # 23 "/usr/include/x86_64-linux-gnu/bits/select.h" 2 3 4
  1346. # 31 "/usr/include/x86_64-linux-gnu/sys/select.h" 2 3 4
  1347.  
  1348.  
  1349. # 1 "/usr/include/x86_64-linux-gnu/bits/sigset.h" 1 3 4
  1350. # 22 "/usr/include/x86_64-linux-gnu/bits/sigset.h" 3 4
  1351. typedef int __sig_atomic_t;
  1352.  
  1353.  
  1354.  
  1355.  
  1356. typedef struct
  1357. {
  1358. unsigned long int __val[(1024 / (8 * sizeof (unsigned long int)))];
  1359. } __sigset_t;
  1360. # 34 "/usr/include/x86_64-linux-gnu/sys/select.h" 2 3 4
  1361.  
  1362.  
  1363.  
  1364. typedef __sigset_t sigset_t;
  1365.  
  1366.  
  1367.  
  1368.  
  1369.  
  1370. # 1 "/usr/include/time.h" 1 3 4
  1371. # 120 "/usr/include/time.h" 3 4
  1372. struct timespec
  1373. {
  1374. __time_t tv_sec;
  1375. __syscall_slong_t tv_nsec;
  1376. };
  1377. # 44 "/usr/include/x86_64-linux-gnu/sys/select.h" 2 3 4
  1378.  
  1379. # 1 "/usr/include/x86_64-linux-gnu/bits/time.h" 1 3 4
  1380. # 30 "/usr/include/x86_64-linux-gnu/bits/time.h" 3 4
  1381. struct timeval
  1382. {
  1383. __time_t tv_sec;
  1384. __suseconds_t tv_usec;
  1385. };
  1386. # 46 "/usr/include/x86_64-linux-gnu/sys/select.h" 2 3 4
  1387. # 54 "/usr/include/x86_64-linux-gnu/sys/select.h" 3 4
  1388. typedef long int __fd_mask;
  1389. # 64 "/usr/include/x86_64-linux-gnu/sys/select.h" 3 4
  1390. typedef struct
  1391. {
  1392.  
  1393.  
  1394.  
  1395. __fd_mask fds_bits[1024 / (8 * (int) sizeof (__fd_mask))];
  1396.  
  1397.  
  1398.  
  1399.  
  1400.  
  1401. } fd_set;
  1402.  
  1403.  
  1404.  
  1405.  
  1406.  
  1407.  
  1408. typedef __fd_mask fd_mask;
  1409. # 96 "/usr/include/x86_64-linux-gnu/sys/select.h" 3 4
  1410. extern "C" {
  1411. # 106 "/usr/include/x86_64-linux-gnu/sys/select.h" 3 4
  1412. extern int select (int __nfds, fd_set *__restrict __readfds,
  1413. fd_set *__restrict __writefds,
  1414. fd_set *__restrict __exceptfds,
  1415. struct timeval *__restrict __timeout);
  1416. # 118 "/usr/include/x86_64-linux-gnu/sys/select.h" 3 4
  1417. extern int pselect (int __nfds, fd_set *__restrict __readfds,
  1418. fd_set *__restrict __writefds,
  1419. fd_set *__restrict __exceptfds,
  1420. const struct timespec *__restrict __timeout,
  1421. const __sigset_t *__restrict __sigmask);
  1422. # 131 "/usr/include/x86_64-linux-gnu/sys/select.h" 3 4
  1423. }
  1424. # 220 "/usr/include/x86_64-linux-gnu/sys/types.h" 2 3 4
  1425.  
  1426.  
  1427. # 1 "/usr/include/x86_64-linux-gnu/sys/sysmacros.h" 1 3 4
  1428. # 24 "/usr/include/x86_64-linux-gnu/sys/sysmacros.h" 3 4
  1429. extern "C" {
  1430.  
  1431. __extension__
  1432. extern unsigned int gnu_dev_major (unsigned long long int __dev)
  1433. throw () __attribute__ ((__const__));
  1434. __extension__
  1435. extern unsigned int gnu_dev_minor (unsigned long long int __dev)
  1436. throw () __attribute__ ((__const__));
  1437. __extension__
  1438. extern unsigned long long int gnu_dev_makedev (unsigned int __major,
  1439. unsigned int __minor)
  1440. throw () __attribute__ ((__const__));
  1441. # 58 "/usr/include/x86_64-linux-gnu/sys/sysmacros.h" 3 4
  1442. }
  1443. # 223 "/usr/include/x86_64-linux-gnu/sys/types.h" 2 3 4
  1444.  
  1445.  
  1446.  
  1447.  
  1448.  
  1449. typedef __blksize_t blksize_t;
  1450.  
  1451.  
  1452.  
  1453.  
  1454.  
  1455.  
  1456. typedef __blkcnt_t blkcnt_t;
  1457.  
  1458.  
  1459.  
  1460. typedef __fsblkcnt_t fsblkcnt_t;
  1461.  
  1462.  
  1463.  
  1464. typedef __fsfilcnt_t fsfilcnt_t;
  1465. # 262 "/usr/include/x86_64-linux-gnu/sys/types.h" 3 4
  1466. typedef __blkcnt64_t blkcnt64_t;
  1467. typedef __fsblkcnt64_t fsblkcnt64_t;
  1468. typedef __fsfilcnt64_t fsfilcnt64_t;
  1469.  
  1470.  
  1471.  
  1472.  
  1473.  
  1474. # 1 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h" 1 3 4
  1475. # 21 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h" 3 4
  1476. # 1 "/usr/include/x86_64-linux-gnu/bits/wordsize.h" 1 3 4
  1477. # 22 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h" 2 3 4
  1478. # 60 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h" 3 4
  1479. typedef unsigned long int pthread_t;
  1480.  
  1481.  
  1482. union pthread_attr_t
  1483. {
  1484. char __size[56];
  1485. long int __align;
  1486. };
  1487.  
  1488. typedef union pthread_attr_t pthread_attr_t;
  1489.  
  1490.  
  1491.  
  1492.  
  1493.  
  1494. typedef struct __pthread_internal_list
  1495. {
  1496. struct __pthread_internal_list *__prev;
  1497. struct __pthread_internal_list *__next;
  1498. } __pthread_list_t;
  1499. # 90 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h" 3 4
  1500. typedef union
  1501. {
  1502. struct __pthread_mutex_s
  1503. {
  1504. int __lock;
  1505. unsigned int __count;
  1506. int __owner;
  1507.  
  1508. unsigned int __nusers;
  1509.  
  1510.  
  1511.  
  1512. int __kind;
  1513.  
  1514. short __spins;
  1515. short __elision;
  1516. __pthread_list_t __list;
  1517. # 124 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h" 3 4
  1518. } __data;
  1519. char __size[40];
  1520. long int __align;
  1521. } pthread_mutex_t;
  1522.  
  1523. typedef union
  1524. {
  1525. char __size[4];
  1526. int __align;
  1527. } pthread_mutexattr_t;
  1528.  
  1529.  
  1530.  
  1531.  
  1532. typedef union
  1533. {
  1534. struct
  1535. {
  1536. int __lock;
  1537. unsigned int __futex;
  1538. __extension__ unsigned long long int __total_seq;
  1539. __extension__ unsigned long long int __wakeup_seq;
  1540. __extension__ unsigned long long int __woken_seq;
  1541. void *__mutex;
  1542. unsigned int __nwaiters;
  1543. unsigned int __broadcast_seq;
  1544. } __data;
  1545. char __size[48];
  1546. __extension__ long long int __align;
  1547. } pthread_cond_t;
  1548.  
  1549. typedef union
  1550. {
  1551. char __size[4];
  1552. int __align;
  1553. } pthread_condattr_t;
  1554.  
  1555.  
  1556.  
  1557. typedef unsigned int pthread_key_t;
  1558.  
  1559.  
  1560.  
  1561. typedef int pthread_once_t;
  1562.  
  1563.  
  1564.  
  1565.  
  1566.  
  1567. typedef union
  1568. {
  1569.  
  1570. struct
  1571. {
  1572. int __lock;
  1573. unsigned int __nr_readers;
  1574. unsigned int __readers_wakeup;
  1575. unsigned int __writer_wakeup;
  1576. unsigned int __nr_readers_queued;
  1577. unsigned int __nr_writers_queued;
  1578. int __writer;
  1579. int __shared;
  1580. unsigned long int __pad1;
  1581. unsigned long int __pad2;
  1582.  
  1583.  
  1584. unsigned int __flags;
  1585.  
  1586. } __data;
  1587. # 211 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h" 3 4
  1588. char __size[56];
  1589. long int __align;
  1590. } pthread_rwlock_t;
  1591.  
  1592. typedef union
  1593. {
  1594. char __size[8];
  1595. long int __align;
  1596. } pthread_rwlockattr_t;
  1597.  
  1598.  
  1599.  
  1600.  
  1601.  
  1602. typedef volatile int pthread_spinlock_t;
  1603.  
  1604.  
  1605.  
  1606.  
  1607. typedef union
  1608. {
  1609. char __size[32];
  1610. long int __align;
  1611. } pthread_barrier_t;
  1612.  
  1613. typedef union
  1614. {
  1615. char __size[4];
  1616. int __align;
  1617. } pthread_barrierattr_t;
  1618. # 271 "/usr/include/x86_64-linux-gnu/sys/types.h" 2 3 4
  1619.  
  1620.  
  1621. }
  1622. # 315 "/usr/include/stdlib.h" 2 3 4
  1623.  
  1624.  
  1625.  
  1626.  
  1627.  
  1628.  
  1629. extern long int random (void) throw ();
  1630.  
  1631.  
  1632. extern void srandom (unsigned int __seed) throw ();
  1633.  
  1634.  
  1635.  
  1636.  
  1637.  
  1638. extern char *initstate (unsigned int __seed, char *__statebuf,
  1639. size_t __statelen) throw () __attribute__ ((__nonnull__ (2)));
  1640.  
  1641.  
  1642.  
  1643. extern char *setstate (char *__statebuf) throw () __attribute__ ((__nonnull__ (1)));
  1644.  
  1645.  
  1646.  
  1647.  
  1648.  
  1649.  
  1650.  
  1651. struct random_data
  1652. {
  1653. int32_t *fptr;
  1654. int32_t *rptr;
  1655. int32_t *state;
  1656. int rand_type;
  1657. int rand_deg;
  1658. int rand_sep;
  1659. int32_t *end_ptr;
  1660. };
  1661.  
  1662. extern int random_r (struct random_data *__restrict __buf,
  1663. int32_t *__restrict __result) throw () __attribute__ ((__nonnull__ (1, 2)));
  1664.  
  1665. extern int srandom_r (unsigned int __seed, struct random_data *__buf)
  1666. throw () __attribute__ ((__nonnull__ (2)));
  1667.  
  1668. extern int initstate_r (unsigned int __seed, char *__restrict __statebuf,
  1669. size_t __statelen,
  1670. struct random_data *__restrict __buf)
  1671. throw () __attribute__ ((__nonnull__ (2, 4)));
  1672.  
  1673. extern int setstate_r (char *__restrict __statebuf,
  1674. struct random_data *__restrict __buf)
  1675. throw () __attribute__ ((__nonnull__ (1, 2)));
  1676.  
  1677.  
  1678.  
  1679.  
  1680.  
  1681.  
  1682. extern int rand (void) throw ();
  1683.  
  1684. extern void srand (unsigned int __seed) throw ();
  1685.  
  1686.  
  1687.  
  1688.  
  1689. extern int rand_r (unsigned int *__seed) throw ();
  1690.  
  1691.  
  1692.  
  1693.  
  1694.  
  1695.  
  1696.  
  1697. extern double drand48 (void) throw ();
  1698. extern double erand48 (unsigned short int __xsubi[3]) throw () __attribute__ ((__nonnull__ (1)));
  1699.  
  1700.  
  1701. extern long int lrand48 (void) throw ();
  1702. extern long int nrand48 (unsigned short int __xsubi[3])
  1703. throw () __attribute__ ((__nonnull__ (1)));
  1704.  
  1705.  
  1706. extern long int mrand48 (void) throw ();
  1707. extern long int jrand48 (unsigned short int __xsubi[3])
  1708. throw () __attribute__ ((__nonnull__ (1)));
  1709.  
  1710.  
  1711. extern void srand48 (long int __seedval) throw ();
  1712. extern unsigned short int *seed48 (unsigned short int __seed16v[3])
  1713. throw () __attribute__ ((__nonnull__ (1)));
  1714. extern void lcong48 (unsigned short int __param[7]) throw () __attribute__ ((__nonnull__ (1)));
  1715.  
  1716.  
  1717.  
  1718.  
  1719.  
  1720. struct drand48_data
  1721. {
  1722. unsigned short int __x[3];
  1723. unsigned short int __old_x[3];
  1724. unsigned short int __c;
  1725. unsigned short int __init;
  1726. __extension__ unsigned long long int __a;
  1727.  
  1728. };
  1729.  
  1730.  
  1731. extern int drand48_r (struct drand48_data *__restrict __buffer,
  1732. double *__restrict __result) throw () __attribute__ ((__nonnull__ (1, 2)));
  1733. extern int erand48_r (unsigned short int __xsubi[3],
  1734. struct drand48_data *__restrict __buffer,
  1735. double *__restrict __result) throw () __attribute__ ((__nonnull__ (1, 2)));
  1736.  
  1737.  
  1738. extern int lrand48_r (struct drand48_data *__restrict __buffer,
  1739. long int *__restrict __result)
  1740. throw () __attribute__ ((__nonnull__ (1, 2)));
  1741. extern int nrand48_r (unsigned short int __xsubi[3],
  1742. struct drand48_data *__restrict __buffer,
  1743. long int *__restrict __result)
  1744. throw () __attribute__ ((__nonnull__ (1, 2)));
  1745.  
  1746.  
  1747. extern int mrand48_r (struct drand48_data *__restrict __buffer,
  1748. long int *__restrict __result)
  1749. throw () __attribute__ ((__nonnull__ (1, 2)));
  1750. extern int jrand48_r (unsigned short int __xsubi[3],
  1751. struct drand48_data *__restrict __buffer,
  1752. long int *__restrict __result)
  1753. throw () __attribute__ ((__nonnull__ (1, 2)));
  1754.  
  1755.  
  1756. extern int srand48_r (long int __seedval, struct drand48_data *__buffer)
  1757. throw () __attribute__ ((__nonnull__ (2)));
  1758.  
  1759. extern int seed48_r (unsigned short int __seed16v[3],
  1760. struct drand48_data *__buffer) throw () __attribute__ ((__nonnull__ (1, 2)));
  1761.  
  1762. extern int lcong48_r (unsigned short int __param[7],
  1763. struct drand48_data *__buffer)
  1764. throw () __attribute__ ((__nonnull__ (1, 2)));
  1765.  
  1766.  
  1767.  
  1768.  
  1769.  
  1770.  
  1771.  
  1772.  
  1773.  
  1774. extern void *malloc (size_t __size) throw () __attribute__ ((__malloc__)) ;
  1775.  
  1776. extern void *calloc (size_t __nmemb, size_t __size)
  1777. throw () __attribute__ ((__malloc__)) ;
  1778.  
  1779.  
  1780.  
  1781.  
  1782.  
  1783.  
  1784.  
  1785.  
  1786.  
  1787.  
  1788. extern void *realloc (void *__ptr, size_t __size)
  1789. throw () __attribute__ ((__warn_unused_result__));
  1790.  
  1791. extern void free (void *__ptr) throw ();
  1792.  
  1793.  
  1794.  
  1795.  
  1796. extern void cfree (void *__ptr) throw ();
  1797.  
  1798.  
  1799.  
  1800. # 1 "/usr/include/alloca.h" 1 3 4
  1801. # 24 "/usr/include/alloca.h" 3 4
  1802. # 1 "/usr/lib/gcc/x86_64-linux-gnu/4.9/include/stddef.h" 1 3 4
  1803. # 25 "/usr/include/alloca.h" 2 3 4
  1804.  
  1805. extern "C" {
  1806.  
  1807.  
  1808.  
  1809.  
  1810.  
  1811. extern void *alloca (size_t __size) throw ();
  1812.  
  1813.  
  1814.  
  1815.  
  1816.  
  1817. }
  1818. # 493 "/usr/include/stdlib.h" 2 3 4
  1819.  
  1820.  
  1821.  
  1822.  
  1823.  
  1824. extern void *valloc (size_t __size) throw () __attribute__ ((__malloc__)) ;
  1825.  
  1826.  
  1827.  
  1828.  
  1829. extern int posix_memalign (void **__memptr, size_t __alignment, size_t __size)
  1830. throw () __attribute__ ((__nonnull__ (1))) ;
  1831.  
  1832.  
  1833.  
  1834.  
  1835. extern void *aligned_alloc (size_t __alignment, size_t __size)
  1836. throw () __attribute__ ((__malloc__)) __attribute__ ((__alloc_size__ (2))) ;
  1837.  
  1838.  
  1839.  
  1840.  
  1841. extern void abort (void) throw () __attribute__ ((__noreturn__));
  1842.  
  1843.  
  1844.  
  1845. extern int atexit (void (*__func) (void)) throw () __attribute__ ((__nonnull__ (1)));
  1846.  
  1847.  
  1848.  
  1849.  
  1850. extern "C++" int at_quick_exit (void (*__func) (void))
  1851. throw () __asm ("at_quick_exit") __attribute__ ((__nonnull__ (1)));
  1852.  
  1853.  
  1854.  
  1855.  
  1856.  
  1857.  
  1858.  
  1859.  
  1860.  
  1861. extern int on_exit (void (*__func) (int __status, void *__arg), void *__arg)
  1862. throw () __attribute__ ((__nonnull__ (1)));
  1863.  
  1864.  
  1865.  
  1866.  
  1867.  
  1868.  
  1869. extern void exit (int __status) throw () __attribute__ ((__noreturn__));
  1870.  
  1871.  
  1872.  
  1873.  
  1874.  
  1875. extern void quick_exit (int __status) throw () __attribute__ ((__noreturn__));
  1876.  
  1877.  
  1878.  
  1879.  
  1880.  
  1881.  
  1882.  
  1883. extern void _Exit (int __status) throw () __attribute__ ((__noreturn__));
  1884.  
  1885.  
  1886.  
  1887.  
  1888.  
  1889.  
  1890. extern char *getenv (const char *__name) throw () __attribute__ ((__nonnull__ (1))) ;
  1891.  
  1892.  
  1893.  
  1894.  
  1895.  
  1896. extern char *secure_getenv (const char *__name)
  1897. throw () __attribute__ ((__nonnull__ (1))) ;
  1898.  
  1899.  
  1900.  
  1901.  
  1902.  
  1903.  
  1904. extern int putenv (char *__string) throw () __attribute__ ((__nonnull__ (1)));
  1905.  
  1906.  
  1907.  
  1908.  
  1909.  
  1910. extern int setenv (const char *__name, const char *__value, int __replace)
  1911. throw () __attribute__ ((__nonnull__ (2)));
  1912.  
  1913.  
  1914. extern int unsetenv (const char *__name) throw () __attribute__ ((__nonnull__ (1)));
  1915.  
  1916.  
  1917.  
  1918.  
  1919.  
  1920.  
  1921. extern int clearenv (void) throw ();
  1922. # 606 "/usr/include/stdlib.h" 3 4
  1923. extern char *mktemp (char *__template) throw () __attribute__ ((__nonnull__ (1)));
  1924. # 620 "/usr/include/stdlib.h" 3 4
  1925. extern int mkstemp (char *__template) __attribute__ ((__nonnull__ (1))) ;
  1926. # 630 "/usr/include/stdlib.h" 3 4
  1927. extern int mkstemp64 (char *__template) __attribute__ ((__nonnull__ (1))) ;
  1928. # 642 "/usr/include/stdlib.h" 3 4
  1929. extern int mkstemps (char *__template, int __suffixlen) __attribute__ ((__nonnull__ (1))) ;
  1930. # 652 "/usr/include/stdlib.h" 3 4
  1931. extern int mkstemps64 (char *__template, int __suffixlen)
  1932. __attribute__ ((__nonnull__ (1))) ;
  1933. # 663 "/usr/include/stdlib.h" 3 4
  1934. extern char *mkdtemp (char *__template) throw () __attribute__ ((__nonnull__ (1))) ;
  1935. # 674 "/usr/include/stdlib.h" 3 4
  1936. extern int mkostemp (char *__template, int __flags) __attribute__ ((__nonnull__ (1))) ;
  1937. # 684 "/usr/include/stdlib.h" 3 4
  1938. extern int mkostemp64 (char *__template, int __flags) __attribute__ ((__nonnull__ (1))) ;
  1939. # 694 "/usr/include/stdlib.h" 3 4
  1940. extern int mkostemps (char *__template, int __suffixlen, int __flags)
  1941. __attribute__ ((__nonnull__ (1))) ;
  1942. # 706 "/usr/include/stdlib.h" 3 4
  1943. extern int mkostemps64 (char *__template, int __suffixlen, int __flags)
  1944. __attribute__ ((__nonnull__ (1))) ;
  1945.  
  1946.  
  1947.  
  1948.  
  1949.  
  1950.  
  1951.  
  1952.  
  1953.  
  1954. extern int system (const char *__command) ;
  1955.  
  1956.  
  1957.  
  1958.  
  1959.  
  1960.  
  1961. extern char *canonicalize_file_name (const char *__name)
  1962. throw () __attribute__ ((__nonnull__ (1))) ;
  1963. # 734 "/usr/include/stdlib.h" 3 4
  1964. extern char *realpath (const char *__restrict __name,
  1965. char *__restrict __resolved) throw () ;
  1966.  
  1967.  
  1968.  
  1969.  
  1970.  
  1971.  
  1972. typedef int (*__compar_fn_t) (const void *, const void *);
  1973.  
  1974.  
  1975. typedef __compar_fn_t comparison_fn_t;
  1976.  
  1977.  
  1978.  
  1979. typedef int (*__compar_d_fn_t) (const void *, const void *, void *);
  1980.  
  1981.  
  1982.  
  1983.  
  1984.  
  1985. extern void *bsearch (const void *__key, const void *__base,
  1986. size_t __nmemb, size_t __size, __compar_fn_t __compar)
  1987. __attribute__ ((__nonnull__ (1, 2, 5))) ;
  1988.  
  1989.  
  1990.  
  1991.  
  1992.  
  1993.  
  1994.  
  1995. extern void qsort (void *__base, size_t __nmemb, size_t __size,
  1996. __compar_fn_t __compar) __attribute__ ((__nonnull__ (1, 4)));
  1997.  
  1998. extern void qsort_r (void *__base, size_t __nmemb, size_t __size,
  1999. __compar_d_fn_t __compar, void *__arg)
  2000. __attribute__ ((__nonnull__ (1, 4)));
  2001.  
  2002.  
  2003.  
  2004.  
  2005. extern int abs (int __x) throw () __attribute__ ((__const__)) ;
  2006. extern long int labs (long int __x) throw () __attribute__ ((__const__)) ;
  2007.  
  2008.  
  2009.  
  2010. __extension__ extern long long int llabs (long long int __x)
  2011. throw () __attribute__ ((__const__)) ;
  2012.  
  2013.  
  2014.  
  2015.  
  2016.  
  2017.  
  2018.  
  2019. extern div_t div (int __numer, int __denom)
  2020. throw () __attribute__ ((__const__)) ;
  2021. extern ldiv_t ldiv (long int __numer, long int __denom)
  2022. throw () __attribute__ ((__const__)) ;
  2023.  
  2024.  
  2025.  
  2026.  
  2027. __extension__ extern lldiv_t lldiv (long long int __numer,
  2028. long long int __denom)
  2029. throw () __attribute__ ((__const__)) ;
  2030.  
  2031. # 812 "/usr/include/stdlib.h" 3 4
  2032. extern char *ecvt (double __value, int __ndigit, int *__restrict __decpt,
  2033. int *__restrict __sign) throw () __attribute__ ((__nonnull__ (3, 4))) ;
  2034.  
  2035.  
  2036.  
  2037.  
  2038. extern char *fcvt (double __value, int __ndigit, int *__restrict __decpt,
  2039. int *__restrict __sign) throw () __attribute__ ((__nonnull__ (3, 4))) ;
  2040.  
  2041.  
  2042.  
  2043.  
  2044. extern char *gcvt (double __value, int __ndigit, char *__buf)
  2045. throw () __attribute__ ((__nonnull__ (3))) ;
  2046.  
  2047.  
  2048.  
  2049.  
  2050. extern char *qecvt (long double __value, int __ndigit,
  2051. int *__restrict __decpt, int *__restrict __sign)
  2052. throw () __attribute__ ((__nonnull__ (3, 4))) ;
  2053. extern char *qfcvt (long double __value, int __ndigit,
  2054. int *__restrict __decpt, int *__restrict __sign)
  2055. throw () __attribute__ ((__nonnull__ (3, 4))) ;
  2056. extern char *qgcvt (long double __value, int __ndigit, char *__buf)
  2057. throw () __attribute__ ((__nonnull__ (3))) ;
  2058.  
  2059.  
  2060.  
  2061.  
  2062. extern int ecvt_r (double __value, int __ndigit, int *__restrict __decpt,
  2063. int *__restrict __sign, char *__restrict __buf,
  2064. size_t __len) throw () __attribute__ ((__nonnull__ (3, 4, 5)));
  2065. extern int fcvt_r (double __value, int __ndigit, int *__restrict __decpt,
  2066. int *__restrict __sign, char *__restrict __buf,
  2067. size_t __len) throw () __attribute__ ((__nonnull__ (3, 4, 5)));
  2068.  
  2069. extern int qecvt_r (long double __value, int __ndigit,
  2070. int *__restrict __decpt, int *__restrict __sign,
  2071. char *__restrict __buf, size_t __len)
  2072. throw () __attribute__ ((__nonnull__ (3, 4, 5)));
  2073. extern int qfcvt_r (long double __value, int __ndigit,
  2074. int *__restrict __decpt, int *__restrict __sign,
  2075. char *__restrict __buf, size_t __len)
  2076. throw () __attribute__ ((__nonnull__ (3, 4, 5)));
  2077.  
  2078.  
  2079.  
  2080.  
  2081.  
  2082.  
  2083. extern int mblen (const char *__s, size_t __n) throw ();
  2084.  
  2085.  
  2086. extern int mbtowc (wchar_t *__restrict __pwc,
  2087. const char *__restrict __s, size_t __n) throw ();
  2088.  
  2089.  
  2090. extern int wctomb (char *__s, wchar_t __wchar) throw ();
  2091.  
  2092.  
  2093.  
  2094. extern size_t mbstowcs (wchar_t *__restrict __pwcs,
  2095. const char *__restrict __s, size_t __n) throw ();
  2096.  
  2097. extern size_t wcstombs (char *__restrict __s,
  2098. const wchar_t *__restrict __pwcs, size_t __n)
  2099. throw ();
  2100.  
  2101.  
  2102.  
  2103.  
  2104.  
  2105.  
  2106.  
  2107.  
  2108. extern int rpmatch (const char *__response) throw () __attribute__ ((__nonnull__ (1))) ;
  2109. # 899 "/usr/include/stdlib.h" 3 4
  2110. extern int getsubopt (char **__restrict __optionp,
  2111. char *const *__restrict __tokens,
  2112. char **__restrict __valuep)
  2113. throw () __attribute__ ((__nonnull__ (1, 2, 3))) ;
  2114.  
  2115.  
  2116.  
  2117.  
  2118.  
  2119. extern void setkey (const char *__key) throw () __attribute__ ((__nonnull__ (1)));
  2120.  
  2121.  
  2122.  
  2123.  
  2124.  
  2125.  
  2126.  
  2127. extern int posix_openpt (int __oflag) ;
  2128.  
  2129.  
  2130.  
  2131.  
  2132.  
  2133.  
  2134.  
  2135. extern int grantpt (int __fd) throw ();
  2136.  
  2137.  
  2138.  
  2139. extern int unlockpt (int __fd) throw ();
  2140.  
  2141.  
  2142.  
  2143.  
  2144. extern char *ptsname (int __fd) throw () ;
  2145.  
  2146.  
  2147.  
  2148.  
  2149.  
  2150.  
  2151. extern int ptsname_r (int __fd, char *__buf, size_t __buflen)
  2152. throw () __attribute__ ((__nonnull__ (2)));
  2153.  
  2154.  
  2155. extern int getpt (void);
  2156.  
  2157.  
  2158.  
  2159.  
  2160.  
  2161.  
  2162. extern int getloadavg (double __loadavg[], int __nelem)
  2163. throw () __attribute__ ((__nonnull__ (1)));
  2164.  
  2165.  
  2166. # 1 "/usr/include/x86_64-linux-gnu/bits/stdlib-float.h" 1 3 4
  2167. # 956 "/usr/include/stdlib.h" 2 3 4
  2168. # 968 "/usr/include/stdlib.h" 3 4
  2169. }
  2170. # 3 "test.cpp" 2
  2171. # 17 "test.cpp"
  2172. typedef unsigned char uchar;
  2173. typedef unsigned short ushort;
  2174. typedef unsigned int uint;
  2175. typedef unsigned long ulong;
  2176. typedef uchar bool;
  2177. enum {
  2178. false = 0,
  2179. true = !false
  2180. };
  2181. # 381 "test.cpp"
  2182. typedef struct intMaybe intMaybe; struct intMaybe { bool IsNothing; int Value; }; intMaybe intNothing() { intMaybe result; result.IsNothing = true; return result; } intMaybe intJust(int just) { intMaybe result; result.IsNothing = false; result.Value = just; return result; }
  2183. typedef struct doubleMaybe doubleMaybe; struct doubleMaybe { bool IsNothing; double Value; }; doubleMaybe doubleNothing() { doubleMaybe result; result.IsNothing = true; return result; } doubleMaybe doubleJust(double just) { doubleMaybe result; result.IsNothing = false; result.Value = just; return result; }
  2184. enum { doubleMaybeIsintMaybeFunctor = true }; intMaybe doubleMaybeintMaybemap(doubleMaybe maybe, int (*function)(double)) { { return (maybe.IsNothing) ? (intNothing()) : (intJust(function(maybe.Value))); } }
  2185. typedef double (*intMaybedoubleMaybedoubleintApplicativeF) (int) ; typedef struct intMaybedoubleMaybedoubleintApplicativeFMaybe intMaybedoubleMaybedoubleintApplicativeFMaybe; struct intMaybedoubleMaybedoubleintApplicativeFMaybe { bool IsNothing; intMaybedoubleMaybedoubleintApplicativeF Value; }; intMaybedoubleMaybedoubleintApplicativeFMaybe intMaybedoubleMaybedoubleintApplicativeFNothing() { intMaybedoubleMaybedoubleintApplicativeFMaybe result; result.IsNothing = true; return result; } intMaybedoubleMaybedoubleintApplicativeFMaybe intMaybedoubleMaybedoubleintApplicativeFJust(intMaybedoubleMaybedoubleintApplicativeF just) { intMaybedoubleMaybedoubleintApplicativeFMaybe result; result.IsNothing = false; result.Value = just; return result; } enum { intMaybeIsdoubleMaybeApplicative = true }; enum { doubleMaybeIsAintMaybeFunctor384 = doubleMaybeIsintMaybeFunctor }; intMaybe intMaybedoubleMaybePure(int just) { { return intJust(just); } } doubleMaybe intMaybedoubleMaybeApply(intMaybe maybe, intMaybedoubleMaybedoubleintApplicativeFMaybe function) { { return doubleJust(function.Value(maybe.Value)); } }
  2186.  
  2187. double ToDouble(int a) {
  2188. return a + 1;
  2189. }
  2190.  
  2191. int main(void) {
  2192. doubleMaybe Foo = intMaybedoubleMaybeApply(intJust(10),
  2193. intMaybedoubleMaybedoubleintApplicativeFJust
  2194. (ToDouble));
  2195. printf("%lf\n", Foo.Value);
  2196. return 0;
  2197. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement