Modified class layout for multiple inheritance of empty
base classes, so they take up a minimum of one byte. This is
so that pointer-to-members in different base classes can be
properly distinguished.
Added -Ad switch which goes back to one-level name
lookup for compatibility with legacy C++ code.
Some examples:
For any use with the older STL implementation in \dm\stl.
For \dm\stlport\stlport\stl\_deque.h, change line 429 from: allocator_type get_allocator() const { return _M_map_size; }
to: allocator_type get_allocator() const { return this->_M_map_size; }
Bruce Eckel's "Thinking in C++" example C05/Sortable.cpp.
Added forward referencing in class member function default arguments.
Fixed problem with "bad type index" messages from the linker.
This would sometimes happen if debug compiles, namespaces, and
precompiled headers were used together.
Fixed problem with needing to #include <typeinfo.h>
before <exception>.
Removed the _ prefixed long double names from math.h.
Now issues an error on negative array dimensions.
Fixed numerous issues with compiling Boost.
Fixed preprocessor problem with F. Tydeman's tests.
Fixed nanl() and copysignl().
Fixed bug with redefinitions of statics.
Fixed internal error out 637.
Fixed internal error type 149.
Upgraded to STLsoft 1.6.5.
Make
Comment lines are now removed before \ line splicing (thanks,
Matthew).
Implemented class template partial specializations.
Implemented partial ordering of class template specializations.
Implemented class template explicit specializations.
Implemented template friends.
Implemented new C++ 98 for statement scoping rules. This
can be disabled with -A- (for backwards compatibility with
old code), and then re-enabled with -As.
For C++, changed 3rd operand of conditional operator from
a conditional-expression to an assignment-expression.
There is no switch to revert to the old behavior.
Operator delete can now take cv-qualified pointers.
main() now defaults to return 0; if no return
is specified.
Implemented function try blocks.
Function templates instantiations that match non-template function
declarations are now distinct functions. This can break some existing
code, but the source fixes are worth doing to be standard compliant.
Function template instantiations
now include the template-argument-list as part of the function signature.
Added -wc switch which warns on every occurance of a C style
cast which should be replaced with the appropriate C++ style cast.
Mangled names can now be considerably longer.
Added STLport 4.5.3.
Fixed el 2005 bug
C and C++
Implemented universal character names for strings and character literals.
Fixed iasm 2585 bug
Fixed error parsing REP MOVSD/CMPSD instructions
Unrecognized preprocessing directives are now ignored in false
conditionals (previously, an error was issued). -A will
cause them to be an error.
Fixed problem with -s stack probes in 16 bit code.
Non-existing directories are now created as necessary when
writing output files. This is convenient when writing .obj files
to temporary directories.
Name mangling for type bool is changed from _X to _N, in order
to be more compatible with VC.
Literal float support has now been brought in line with ANSI
C99.
Floating point constants for other than static initializations are
not folded if the folding would result in any exception flags being
raised. This is per C99. To always fold the constants anyway, use the
-ff (fast float) flag.
New Intel MMX instructions now supported by the inline assembler.
Added Support for Alternative Names
With -A and the C++ compiler, the alternative representations
in the standard 2.9 are now supported. In the future, they will
become the default, so don't use the following names otherwise:
and and_eq bitand bitor compl not
not_eq or or_eq xor xor_eq
Added -B[e|f|g|j] switches
See "Definitive list of SC switches" for how they work.
The SCMSGS environment variable and SC.INI setting is no
longer supported.
Added #elseif directive, with same semantics as #elif.
Changed overload resolution rules to reflect ANSI C++ standard changes
regarding integral promotions vs integral conversions.
Added namespaces
Added -g5 switch
See "Definitive list of SC switches".
Added #pragma setlocale("locale")
See "Pragmas supported by SC/SC++".
Added _CPPRTTI and _CPPUNWIND predefined macros
See "Predefined macros".
Added New Keywords
explicit, mutable, typename - but the semantics of them aren't
implemented.
Added __unaligned Keyword
For unaligned pointer support for PowerPC. Ignored for Intel
compiler.
Added Pentium Pro Instructions to Inline Assembler and OBJ2ASM.