compiles with clang++