"Walter Bright" wrote > Nick Sabalausky wrote: >> "Walter Bright" <[email protected]> wrote in message >> news:[email protected]... >>> Denis Koroskin wrote: >>>> Does it look any better? No way! >>> Of course doing it that way doesn't look any better, because it still >>> just replicates the C preprocessor style of doing it. >>> >> >> Which just goes to show that the restrictions you've placed on D's >> version() (in order to eliminate rat's nest versioning) DON'T eliminate >> rat's nest versioning. > > But they do make it more painful to write the rat's nest, which can be > motivating to find a more appropriate solution.
And when the rats nest MUST be created? Why make it more painful? I'm sure if Hans Bohem could write it in a clearer fashion he would have. To be perfectly clear, I absolutely agree with version statements not messing with the separation between semantic analysis and parsing, but these shortcuts for having multiple version identifiers in one statement do not hurt anything. I contend it is the lack of separation in C's preprocessor that makes it difficult to understand, not the lack of requirements on the #if itself. At least, that's what I've always hated about C/C++ preprocessor. The same arguments could be said about actual if statements in code, yet you have no qualms not forcing people to combine their logic into boolean variables before using an if statement. >>> A far better solution... >> >> And we can come up with better solutions for C as well. Granted, the >> optimal D solution is going to be much better than the optimal C >> solution, but it won't be due to version()'s lack of !, ||, &&, etc... > > When cookies and veggies are laid out on the buffet, I tend to reach for > the cookies <g>. It's more like moldy cookies and half-eaten donuts :) Neither looks appetizing, but when your really hungry... -Steve
