HP aC++/HP C A.06.28 Programmer's Guide Integrity servers (769150-001, March 2014)
Example:
aCC file1.o file2.o lib1.so lib2.so lib3.so
In this scenario, cfront would initialize file2.o first, and then file1.o, while HP aC++ initializes
file1.o and then file2.o. You must take this into account in your cfront code to avoid link
problems with HP aC++.
More Frequent Inlining of Inline Code
HP C++ does not inline some functions even when you request for it. This happens when the function
is too complex. If you use the +w option, the compiler displays a message whenever it does not
inline a requested function.
HP aC++ almost always inlines functions for which you have specified the inline keyword.
Changes in C++ Syntax
When you migrate from HP C++ to HP aC++, in addition to changes related to standards based
keywords, you may need to make changes to your source code in the following areas:
• “Explicit int Declaration” (page 211)
• “The for Statement, New Scoping Rules” (page 212)
• “struct as Template Type Parameter is Permitted” (page 212)
• “Base Template Class Reference Syntax Change” (page 213)
• “Tokens after #endif” (page 213)
• “overload not a Keyword” (page 213)
• “Dangling Comma in enum” (page 214)
• “Static Member Definition Required” (page 214)
• “Declaring friend Classes” (page 214)
• “Incorrect Syntax for Calls to operator new” (page 215)
• “Using :: in Class Definitions” (page 215)
• “Duplicate Formal Argument Names” (page 215)
• “Ambiguous Function or Object Declaration” (page 215)
• “Overloaded Operations ++ and --” (page 216)
• “Reference Initialization” (page 216)
• “Using operator new to Allocate Arrays” (page 217)
• “Parentheses in Static Member Initialization List” (page 217)
• “&qualified-id Required in Static Member Initialization List” (page 218)
• “Non-constant Reference Initialization” (page 218)
• “Digraph White Space Separators” (page 219)
Explicit int Declaration
In HP C++, you do not need to explicitly specify int types. In HP aC++, you must explicitly declare
int types. This change reduces ambiguity among expressions involving function-like casts and
declarations.
Example:
The following code is valid in HP C++:
Migration Considerations Related to Standardization 211