20. ANSI C and C++ Include Files#
20.1. Standard C++ Include Files#
The following include files are supplied with the front end:
compare.stdhcoroutine.stdhcxxabi.hexception.hexception.stdhinitializer_list.stdhnew.hnew.stdhsource_location.stdhstdexcept.hstdexcept.stdhstdfloat.stdhtypeinfo.htypeinfo.stdh
The “. stdh” files are basically the same as the definitions in the C++
standard. The standard specifies header names without a suffix (e.g.,
<new>). The front end, by default, adds the stdh suffix when searching
for the header file. The “.h” versions are supplied so that older code
that uses header names like <new.h> will continue to work.
Not all of the header files for the libraries required by the C++ standard are provided. In general, header files are only supplied for components of the library for which an implementation is supplied with the front end.
The typeinfo.h header file contains the definition of the type_info
data structure used by the front end and the runtime library. The
type_info structure must not be changed unless corresponding changes are
also made in the front end and runtime.
The cxxabi.h header includes declarations of routines and data structures
specified by the IA-64 ABI.
20.1.1. Namespaces and the Standard Header Files#
When front end configuration flag RUNTIME_USES_NAMESPACES is TRUE the front
end defines the preprocessing macro __EDG_RUNTIME_USES_NAMESPACES. This
flag is tested by the C++ header files to determine whether the runtime
declarations should appear in the global scope or in the std namespace.
The C++ header files also test the __EDG_IMPLICIT_USING_STD flag, which is
defined by the front end when the front end is configured to use namespace in
the runtime and when the --using_std option is specified when the front end
is invoked. This flag causes the header files to do a using namespace std
in any header file that contains declarations for entities in the std
namespace.