HP aC++ A.03.85 Release Notes

HP aC++ Release Notes
What’s in This Version
Chapter 1 9
NOTE Using -fshort-enums causes the compiler to generate code that may be binary
incompatible with the code generated without this option. To generate
compatible code, do not use or define external enumerators (defined or used in
other source files or shared libraries) that are compiled without this option.
The _HP_NONSTD_FAST_IOSTREAM Performance Improvement Directive
HP aC++ A.03.70 has a new performance improvement preprocessor directive,
-D_HP_NONSTD_FAST_IOSTREAM, which improves the iostream performance. This directive
enables the following non-standard features:
•Sets 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 directive might result in noticeable performance improvement, if the
application uses iostreams more often.
NOTE Do not enable -D_HP_NONSTD_FAST_IOSTREAM directive in any of the following
cases:
If the application assumes C++ stream to be in sync with C stream
If the application depends on stream flushing behavior with endl
If the user uses "cout.unsetf(ios::unitbuf)" to unit buffer the output
stream.
The +rodata_array_init Option for Memory Efficient Initialization for Local Arrays
A new command-line option, +rodata_array_init is added in HP aC++ A.03.70 to enable
memory efficient initialization for local arrays.
When you use this option, the compiler allocates the local array initializers (that it generates
for initialized local arrays) to the read-only data section. By default, these initializers are
allocated to the data section.