Subversion Repositories Kolibri OS

Rev

Blame | Last modification | View Log | RSS feed

  1. // -*- C++ -*- forwarding header.
  2.  
  3. // Copyright (C) 1997-2015 Free Software Foundation, Inc.
  4. //
  5. // This file is part of the GNU ISO C++ Library.  This library is free
  6. // software; you can redistribute it and/or modify it under the
  7. // terms of the GNU General Public License as published by the
  8. // Free Software Foundation; either version 3, or (at your option)
  9. // any later version.
  10.  
  11. // This library is distributed in the hope that it will be useful,
  12. // but WITHOUT ANY WARRANTY; without even the implied warranty of
  13. // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  14. // GNU General Public License for more details.
  15.  
  16. // Under Section 7 of GPL version 3, you are granted additional
  17. // permissions described in the GCC Runtime Library Exception, version
  18. // 3.1, as published by the Free Software Foundation.
  19.  
  20. // You should have received a copy of the GNU General Public License and
  21. // a copy of the GCC Runtime Library Exception along with this program;
  22. // see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
  23. // <http://www.gnu.org/licenses/>.
  24.  
  25. /** @file include/cstdio
  26.  *  This is a Standard C++ Library file.  You should @c #include this file
  27.  *  in your programs, rather than any of the @a *.h implementation files.
  28.  *
  29.  *  This is the C++ version of the Standard C Library header @c stdio.h,
  30.  *  and its contents are (mostly) the same as that header, but are all
  31.  *  contained in the namespace @c std (except for names which are defined
  32.  *  as macros in C).
  33.  */
  34.  
  35. //
  36. // ISO C++ 14882: 27.8.2  C Library files
  37. //
  38.  
  39. #ifndef _GLIBCXX_CSTDIO
  40. #define _GLIBCXX_CSTDIO 1
  41.  
  42. #pragma GCC system_header
  43.  
  44. #include <bits/c++config.h>
  45. #include <stdio.h>
  46.  
  47. #ifndef _GLIBCXX_HAVE_GETS
  48. extern "C" char* gets (char* __s) __attribute__((__deprecated__));
  49. #endif
  50.  
  51. // Get rid of those macros defined in <stdio.h> in lieu of real functions.
  52. #undef clearerr
  53. #undef fclose
  54. #undef feof
  55. #undef ferror
  56. #undef fflush
  57. #undef fgetc
  58. #undef fgetpos
  59. #undef fgets
  60. #undef fopen
  61. #undef fprintf
  62. #undef fputc
  63. #undef fputs
  64. #undef fread
  65. #undef freopen
  66. #undef fscanf
  67. #undef fseek
  68. #undef fsetpos
  69. #undef ftell
  70. #undef fwrite
  71. #undef getc
  72. #undef getchar
  73. #if __cplusplus <= 201103L
  74. # undef gets
  75. #endif
  76. #undef perror
  77. #undef printf
  78. #undef putc
  79. #undef putchar
  80. #undef puts
  81. #undef remove
  82. #undef rename
  83. #undef rewind
  84. #undef scanf
  85. #undef setbuf
  86. #undef setvbuf
  87. #undef sprintf
  88. #undef sscanf
  89. #undef tmpfile
  90. #undef tmpnam
  91. #undef ungetc
  92. #undef vfprintf
  93. #undef vprintf
  94. #undef vsprintf
  95.  
  96. namespace std
  97. {
  98.   using ::FILE;
  99.   using ::fpos_t;
  100.  
  101.   using ::clearerr;
  102.   using ::fclose;
  103.   using ::feof;
  104.   using ::ferror;
  105.   using ::fflush;
  106.   using ::fgetc;
  107.   using ::fgetpos;
  108.   using ::fgets;
  109.   using ::fopen;
  110.   using ::fprintf;
  111.   using ::fputc;
  112.   using ::fputs;
  113.   using ::fread;
  114.   using ::freopen;
  115.   using ::fscanf;
  116.   using ::fseek;
  117.   using ::fsetpos;
  118.   using ::ftell;
  119.   using ::fwrite;
  120.   using ::getc;
  121.   using ::getchar;
  122. #if __cplusplus <= 201103L
  123.   // LWG 2249
  124.   using ::gets;
  125. #endif
  126.   using ::perror;
  127.   using ::printf;
  128.   using ::putc;
  129.   using ::putchar;
  130.   using ::puts;
  131.   using ::remove;
  132.   using ::rename;
  133.   using ::rewind;
  134.   using ::scanf;
  135.   using ::setbuf;
  136.   using ::setvbuf;
  137.   using ::sprintf;
  138.   using ::sscanf;
  139.   using ::tmpfile;
  140.   using ::tmpnam;
  141.   using ::ungetc;
  142.   using ::vfprintf;
  143.   using ::vprintf;
  144.   using ::vsprintf;
  145. } // namespace std
  146.  
  147. #if _GLIBCXX_USE_C99
  148.  
  149. #undef snprintf
  150. #undef vfscanf
  151. #undef vscanf
  152. #undef vsnprintf
  153. #undef vsscanf
  154.  
  155. namespace __gnu_cxx
  156. {
  157. #if _GLIBCXX_USE_C99_CHECK || _GLIBCXX_USE_C99_DYNAMIC
  158.   extern "C" int
  159.   (snprintf)(char * __restrict, std::size_t, const char * __restrict, ...)
  160.   throw ();
  161.   extern "C" int
  162.   (vfscanf)(FILE * __restrict, const char * __restrict, __gnuc_va_list);
  163.   extern "C" int (vscanf)(const char * __restrict, __gnuc_va_list);
  164.   extern "C" int
  165.   (vsnprintf)(char * __restrict, std::size_t, const char * __restrict,
  166.               __gnuc_va_list) throw ();
  167.   extern "C" int
  168.   (vsscanf)(const char * __restrict, const char * __restrict, __gnuc_va_list)
  169.   throw ();
  170. #endif
  171.  
  172. #if !_GLIBCXX_USE_C99_DYNAMIC
  173.   using ::snprintf;
  174.   using ::vfscanf;
  175.   using ::vscanf;
  176.   using ::vsnprintf;
  177.   using ::vsscanf;
  178. #endif
  179. } // namespace __gnu_cxx
  180.  
  181. namespace std
  182. {
  183.   using ::__gnu_cxx::snprintf;
  184.   using ::__gnu_cxx::vfscanf;
  185.   using ::__gnu_cxx::vscanf;
  186.   using ::__gnu_cxx::vsnprintf;
  187.   using ::__gnu_cxx::vsscanf;
  188. } // namespace std
  189.  
  190. #endif
  191.  
  192. #endif
  193.