Fog Creek Software
Discussion Board

Books on platform differences?

We've had a couple of projects recently that involved porting or developing on multiple platforms: Windows, Solaris, OSX. Each one is a little different :( This was all C++ work, so we had to deal with parts of the STL missing, and other vagaries of picky compilers (gcc 3.2, 2.95, VC6, blech!).

What I'm wondering is this: does anyone know of a book which catalogs the differences, with workarounds/etc? Thinking back, this would have been exceptionally useful when writing crossplatform code and porting existing code.


Mike Swieton
Monday, February 2, 2004 is your best bet. good luck! :-)

Monday, February 2, 2004

Off the top of most anyone's head Rogue Wave is on Windows and UN*X, not Mac. GNU STL is everywhere. GPL/OSS C++ libraries are generally best on Linux/BSD, second best on commercial unixes (Mac OS X--unix subsystem fits here), 3rd best quality on Windows, and Mac OS 9 as an after thought.

Li-fan Chen
Monday, February 2, 2004

Google groups is useless: by the time I've run into most problems, I've already hit the wall. I'd prefer to have some insight ahead of time, rather than going back and repairing things after I find out it won't work. Sure, I can just remember that the given class or method doesn't exist on platform XY, but it'd be nice to have a book give me some heads up before the crap hits the fan.

No, it's never been really much of a problem, because I wasn't doing any GUI work. Just little things like "windows doesn't have hash_map" and "auto_ptr on windows doesn't have reset" and such.

I'd love to see a book like Effective C++ on cross-platform development. Not something too special, just a "watch out if you use class X" list. It shouldn't be too much to ask for.

Mike Swieton
Monday, February 2, 2004

> windows doesn't have hash_map

By the time such a book gets published, most of the info in it will be obsolete.

The way we approach this is nightly builds. If platform foo does not have feature "bar", we discover it the next morning.
If a day is too long a lag for you, set up hourly builds.

Employed Russian
Tuesday, February 3, 2004

Uh ... use gcc on everything?

VC.Net has hash maps.

How's the new digs?  You hirin'? :-)

Matt H.
Tuesday, February 3, 2004

This was VC6. I don't know why our windows build was on VC6 (we had .NET too), but whatever. Customer wants it, customer gets it. I may be remembering wrong, but something was missing it.

Hehe, we're doing great over here. I hear we may be getting some business from you guys, in fact :)

Mike Swieton
Tuesday, February 3, 2004

Whether you have hash_map or any other stl class is not a function of your operating system, it is a function of the STL library you use.  VC6 by default comes with an old version of dinkumware that didn't have hash_map.  Upgrade to a newer version of Dinkumware or do what I do and use STLPort with all of your compilers.

Oren Miller
Tuesday, February 3, 2004

I second the recommendation to use STLport! See

Tuesday, February 3, 2004

Another vote for STLport. It rocks.

Also, consider the Boost library to fill in lots of other holes.

Brad Wilson (
Tuesday, February 3, 2004

*  Recent Topics

*  Fog Creek Home