4.13.2. Standard C++ library implementation definition

This section describes the implementation of the C++ libraries. The ARM C++ library provides all of the library defined in the ISO/IEC 14822 :1998 International Standard for C++, aside from some limitations described below. For information on implementation-defined behavior that is defined in the Rogue Wave C++ library, see the included Rogue Wave HTML documentation. By default, this is installed in the install_directory\HTML.

The standard C++ library is distributed in binary form only.

The requirements that the C++ library places on the C library are described in Table 4.20.

Table 4.20. C++ requirements on the C library

FileRequired function in C library
ctype.hisalnum(), isalpha(), iscntrl(), isdigit(), isgraph(), islower(), isprint(), ispunct(), isspace(), isupper(), isxdigit(), tolower(), toupper()
locale.hlocaleconv(), setlocale()
math.hacos(), asin(), atan2(), atan(), ceil(), cos(), cosh(), exp(), fabs(), floor(), fmod(), frexp(), ldexp(), log10(), log(), modf(), pow(), sin(), sinh(), sqrt(), tan(), tanh()
signal.hraise(), signal()

clearerr(), fclose(), feof(), ferror(), fflush(), fgetc(), fgetpos(), fgets(), fopen(), fprintf(), fputc(), fputs(), fread(), freopen(), fscanf(), fseek(), fsetpos(), ftell(), fwrite(), getc(), getchar(), gets(), perror(), printf(), putc(), putchar(), puts(), remove(), rename(), rewind(), scanf(), setbuf(), setvbuf(), sprintf(), sscanf(), tmpfile(), tmpnam(), ungetc(), vfprintf(), vprintf(), vsprintf()

stdlib.habort(), abs(), atexit(), atof(), atoi(), atol(), bsearch(), calloc(), div(), exit(), free(), getenv(), labs(), ldiv(), malloc(), mblen(), qsort(), rand(), realloc(), srand(), strtod(), strtol(), strtoul(), system()
string.hmemchr(), memcmp(), memcpy(), memmove(), memset(), memset(), strcat(), strchr(), strcmp(), strcoll(), strcpy(), strcspn(), strerror(), strlen(), strncat(), strncmp(), strncpy(), strpbrk(), strrchr(), strspn(), strstr(), strtok(), strxfrm()
time.hasctime(), clock(), ctime(), difftime(), mktime(), strftime(), time()

The most important features missing from this release are described in Table 4.21.

Table 4.21. Standard C++ library differences

StandardImplementation differences
Wide characterNot a separate type. wchar_t is an implicit typedef for unsigned short. Characters are 8-bits wide.
NamespacesNot supported. All top-level items are in the global namespace.
Unimplemented featuresSupport functions for unimplemented language features, class bad_cast for example, are unlikely to be functional.
localeThe locale message facet is not supported. It fails to open catalogs at runtime because the ARM C library does not support catopen and catclose through nl_types.h. One of two locale definitions can be selected at link time. Other locales can be created by user-redefinable functions.
TimezoneNot supported. The ARM C library does not support it.
Complex default template argumentsNot supported. Complex default template argument definitions are where a type parameter has a default instantiation involving an earlier type parameter. When you request a template that the standard says is defined with a complex default (such as instantiating class queue), you must always supply a value for each template parameter. No defaults are present.
ExceptionsNot supported.
typeinfoLimited support. typeinfo is supported in a basic way by the ARM C++ library additions.
Copyright © 1999-2001 ARM Limited. All rights reserved.ARM DUI 0067D