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.

Thoughts?

Mike Swieton
Monday, February 02, 2004

groups.google.com is your best bet. good luck! :-)

runtime
Monday, February 02, 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 02, 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 02, 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 03, 2004


Uh ... use gcc on everything?

VC.Net has hash maps.

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

Matt H.
Tuesday, February 03, 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 03, 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 03, 2004

I second the recommendation to use STLport! See http://stlport.org/


Tuesday, February 03, 2004

Another vote for STLport. It rocks.

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

Brad Wilson (dotnetguy.techieswithcats.com)
Tuesday, February 03, 2004

*  Recent Topics

*  Fog Creek Home