The adptation was developed and tested under eMbedded Visual C++ 3.0. All compilers have been tested under more or less all available platform and CPUs (including CEF). Test on real devices has not been extensive, however my test program compiles and works on an HP 620 LX, Philips Velo 1 with Windows CE 2.0 upgrade kit, Casio Cassiopeia E11, HP Jornada 420 and HP Jornada 548.
STL expects a number of features which are not supported from standard SDKs:
Many header files, such as stddef.h, stdio.h, new.h, assert.h are missing; C runtime library support is somewhat limited.
Some important stuff (definition for ptrdiff_t, assertions, etc.) is missing from CE SDK.
No stream library (iostream,
iostream.h, etc.
are missing).
C++ exceptions are not supported.
This is a limit of the OS: Windows CE 2.0 (H/PC) and 2.01 (Palm-size PC) does not have a system console.
A new header, <wce_defs.h>
,
contains some patches for missing definitions
No stream iterators:
ostream_iterator
and istream_iterator
.
No stream-related functions (this
limits the functionality in some class template, such as rope
and string
)
rope.dump
is not
available
It is not possible to use
pthread_alloc
allocator
bitset
has some
overloaded operator implemented as global function. I had to move
them as non-static memebr functions to get a working bitset
.
No C++ exceptions
warning 4786 (identifier was truncated to '255' characters in the debug information) is disabled by default
CEF compiler is working but stops occasionally with an ICE. I was not able to find the reason. The same source compiles fine one time and stops another time.
abort()
is implemented as a macro calling
TerminateProcess
.
No other major problem encountered; however, it is important to underline that it was almost impossible for me to test everything. All contributions are welcome!