HP aC++/HP C Programmer's Guide (B3901-90036; A.06.26; September 2011)
i=3;
f(i); // Use an lvalue for reference initialization.
return 0;
}
Digraph White Space Separators
HP C++ does not support alternative tokens (digraphs). In HP aC++, digraphs are
supported and legal C++ syntax can be considered an error because of digraph
substitution. Insert a blank between two characters of the digraph.
Example:
C<::A> a;
The characters <: are one of the alternative tokens (digraphs) for which HP aC++ performs
a substitution. In this case, <: becomes [. The statement to be compiled becomes C[:A
a;, which produces many compilation errors.
To successfully compile this program with either compiler, insert a blank between < and
:.
Example:
C< ::A> a;
Migration Considerations when Using Templates
In HP aC++, templates are processed differently than in HP C++ (cfront). HP aC++ does
not have a repository. All instantiations are placed in an object (.o) file (with additional
information in a .Ia file if you specify the +inst_auto command-line option). You
cannot modify these files as was possible with the files in a repository.
See Chapter 5: “Using HP aC++ Templates” (page 163) for more information.
To begin migrating code containing templates to HP aC++, try to compile and link using
the default compile-time instantiation. If this fails with compilation errors, you can compile
using one of the following:
• The +inst_all option to view all compile-time errors, including template
instantiation errors. This may generate errors that will not occur in your program,
because the draft standard allows template parameters that cannot instantiate all
members. The +inst_all option forces instantiation of such members.
• The +inst_directed option to mask compile-time template instantiation errors.
To reset after all translation units compile successfully:
1. Remove any .o and .I files. Using a clobber makefile target to remove .I files is
similar to removing the ptrepository directory in cfront.
2. Recompile and link using compile-time instantiation.
274 Migrating from HP C++ (cfront) to HP aC++