HP aC++/HP C A.06.25 Release Notes

Table Of Contents
-AA -D_HP_NONSTD_FAST_IOSTREAM Performance Improvement Macro
A new performance improvement preprocessor macro, _HP_NONSTD_FAST_IOSTREAM
can be used to improve -AA iostream performance.
This macro enables the following non-standard features:
Sets std::ios_base::sync_with_stdio(false), which disables the default
synchronization with stdio.
Sets std::cin.tie(0), which unties the cin from other streams.
Replaces all occurrences of "std::endl" with "\n".
Enabling this macro might result in noticeable performance improvement if the
application uses iostreams often.
NOTE: Do not enable the macro in any of the following cases:
If the application assumes a C++ stream to be in sync with a C stream.
If the application depends on stream flushing behavior with endl.
If the user uses "std::cout.unsetf(ios::unitbuf)" to unit buffer the output
stream.
New Function Attributes
__attribute__ is a language feature that allows you to add attributes to functions.
The capabilities are similar to those of #pragma. It is more integrated into the language
syntax than pragmas and its placement in the source code depends on the construct to
which the attribute is being applied.
The new function attributes in this release are "malloc", "non-exposing", "noreturn",
and "format". Refer to the Pragmas and Attributes online help topic for additional
information.
Improved Diagnostics
Diagnostic messages now include more context to aid in tracing their root causes,
including an improved template instantiation traceback.
C++ Standard Library Change
Technical Corrigenda 1 has changed the STL function make_pair to take their
arguments by value instead of const reference. This change brings the HP library into
compliance if the enabling macro -D__HP_TC1_MAKE_PAIR is specified at compile
time. For binary compatibility reasons, the default behavior is unchanged.
40 What’s New in This Version