Only works because windows ignores case. If any of them is accidentally included on Linux, due to name collisions, things break. There are probably better solutions than maintaining every header twice, once for linux and once for windows.