wenn's C++ sein darf: Schau mal die Boost library an.