There is an Apache incubator project to develop an implementation of the standard C++ library (their web site is here http://incubator.apache.org/stdcxx<http://incubator.apache.org/stdcxx/#platforms>). Currently, in SDO for C++, we use the library provided by whichever platform we happen to run on. Using the Apache stdcxx library instead would provide us with a number of benefits
- It is available on a wide range of platforms - It is the same implementation on all of them (so avoids obscure bugs from slight differences in C++ libraries) - It is open source so we can contribute fixes rather than writing around problems. - We become better citizens of the Apache community The one difficulty is that once SDO links against the stdcxx library then all users of SDO must also do so. I think this gives us two options 1. Just do it, and live with the consequences. In this case we will (one way or another) pre-req stdcxx on all platforms, and all users of SDO for C++ will be required to use stdcxx as their C++ standard library. 2. Create a build time switch that chooses between whatever the platform offers (ie the current arrangement) and stdcxx. Presumably defaulting to the current arrangement. I prefer option 2 but obviously it somewhat complicates our build process and perhaps more seriously adds another complication to our test cases. What does the team think? Geoff.
