If you are writing a program that will only work on Windows, it would be necessary to use this... version (Windows) else { static assert (0); } Same with any other requirements. I do agree with you about the double negative style though. > etc. If there are some specifics cases you feel just don't fit with > this, can you post them?