Apache C++ Standard Library Reference Guide

# Appendix B: Extensions to the C++ Standard

This implementation of the C++ Standard Library contains numerous features that enhance its functionality, but do not strictly conform to the Standard as it is written. These extensions are listed in Table 39. If you are reading this manual online, click the name of the extension to take you to its location in the documentation.

#### Table 39: Extensions to the C++ Standard Library

Class or Component | Extension
basic_filebuf | `basic_filebuf``(int fd, char_type *buf = 0,` `streamsize n = /* default size */);`
`basic_filebuf``(FILE *fp, char_type *buf = 0,` `streamsize n = /* default size */);`
    attach(int fd);
`detach``();`
`open``(const char* fname, ios_base::openmode mode,` `long protection = 0666);` The behavior of the function when `(fname == 0)` evaluates to `true` is defined as an extension of this implementation. The `protection` argument is not part of the Standard.
`open``(int fd, char_type *buf = 0,` `streamsize n = /* default size */);`
`open``(FILE *fp, char_type *buf = 0,` `streamsize n = /* default size */);`
basic_fstream | `basic_fstream``(const char* s,` `ios_base::openmode mode, long protection);` The `protection` argument is not part of the Standard.
`basic_ifstream``(int fd, char_type *buf,` `streamsize n);`
`basic_ifstream``(FILE *fp, char_type* buf,` `streamsize n);`
`open``(const char* s,` `ios_base::openmode, long protection);` The `protection` argument is not part of the Standard.
`open``(int fd, char_type *buf = 0,` `streamsize n = /* default size */);`
`open``(FILE *fp, char_type *buf = 0,` `streamsize n = /* default size */);`
`fd``() const;`
basic_ifstream | `basic_ifstream``(const char* s` `ios_base::openmode mode,` `long protection = 0666);`
`basic_ifstream``(int fd, char_type *buf,` `streamsize n);`
`basic_ifstream``(FILE *fp, char_type* buf,` `streamsize n);`
`open``(const char* s, ios_base::openmode,` `long protection);` The `protection` argument is not part of the Standard.
`open``(int fd, char_type *buf = 0,` `streamsize n = /* default size */);`
`open``(FILE *fp, char_type *buf = 0,` `streamsize n = /* default size */);`
basic_ofstream | `basic_ofstream``(const char* s,` `ios_base::openmode mode = ios_base::in,` `long protection = 0666);`
`basic_ofstream``(int fd, char_type *buf,` `streamsize n);`
`basic_ofstream``(FILE *fp, char_type* buf,` `streamsize n);`
`open``(const char* s, ios_base::openmode,` `long protection);`
`open``(int fd, char_type *buf = 0,` `streamsize n = /* default size */);`
`open``(FILE *fp, char_type *buf = 0,` `streamsize n = /* default size */);`
`count()`, `count_if()` |
    count(InputIterator first, InputIterator last,
      const T& value, Size& n);
    count_if(InputIterator first,
      InputIterator last, Predicate pred, Size& n);
ios_base | The elements `nocreate` and `noreplace` of the `openmode` bitmask type are provided for compatibility with Classic iostreams as an extension of this implementation. See Bitmask Types for more information.