Code is compatible with g++ v4.4 and newer, with c++0x support