compiles with g++