compiles on g++ 4.4.5