Note: C++0x is a new version of
the C++ programming language standard. This is a draft standard and
has not been officially adopted in its entirety. Note that future
levels of support for this standard are likely to change. The implementation
of the language level is based on IBM's interpretation of the draft
C++0x standard, and is subject to change at any time without notice.
IBM makes no attempt to maintain compatibility with earlier releases,
in source or binary, of the new C++0x -qlanglvl suboptions (their
names or their semantics) and therefore they should not be relied
on as a stable programming interface.
Purpose
Controls whether to inform users with messages
about differences in their programs caused by migration from the C++98
standard to the C++0x standard.
For example, when
-qlanglvl=noc99preprocessor and
-qwarn0x are
specified, the C++0x preprocessor evaluates the controlling expressions
in the
#if and
#elif conditional
inclusion directives, and compare the evaluation results against that
of the non-C++0x preprocessor. If they are different, the compiler
issues the following warning message:
The preprocessor controlling expression evaluates differently between C++0x
and non-C++0x langlvls.
For another example,
when you specify both the
-qlanglvl=noc99longlong and
-qwarn0x options,
the compiler might display messages to indicate that the types of
an integer literal are different between the non-C++0x and C++0x language
levels. In 32-bit mode, when you use the integer literal 2147483648
to initialize a variable, the compiler issues the following message:
Integral constant "2147483648" has implied type unsigned long int under the non-C++0x
language levels. It has implied type long long int under C++0x.
The
compiler displays a similar message for the literal 10000000000000000000
with the same option setting:
Integral constant "10000000000000000000" has implied type unsigned long long or is not allowed
with "-qlanglvl=extendedintegersafe" under C++0x. Its impiled type is not unsigned long long under
non-C++0x language levels.
Syntax
.-nowarn0x-.
>>- -q--+-warn0x---+-------------------------------------------><
Usage
This option is in effect when -qwarn0x is
set.