compiles in gcc (mingw) and msvc but not on linux (yet)