Version very simple?
Jonathan M Davis
jmdavisProg at gmx.com
Sun Feb 27 16:18:24 PST 2011
On Sunday 27 February 2011 07:18:29 David Nadlinger wrote:
> On 2/27/11 3:52 PM, simendsjo wrote:
> > I'm having some problems grokking version.
> >
> > How would I translate this simple C macro?
> > #if !defined(IDENT) || !defined(IDENT2)
>
> You are facing a quite common question, with the answer being that there
> is no simpler way to do this, at least that I know of.
>
> This has to do with both the stage at which version blocks are parsed
> internally, and with Walter taking a defensive stance on the power of
> version statements because he feels that the typical C preprocessor
> constructs are often a source for confusion (sorry if I misquoted you
> there).
Yeah. Essentially, Walter believes that how versioning is often done in C with
#ifdefs is inherently wrong. If you're doing complicated versioning statements
like that you really need to rethink how you're doing things. You shouldn't need
them. Granted, converting from C/C++ can be quite a bit messier in that regard
than writing D code from scratch, but still, in general, if you need complicated
versioning statements, then you're probably going about it the wrong way.
Though, on occasion, it definitely _would_ be nice to have the ability to ||
version identifiers together, and I'm not sure what the problem with that would
be other than the fact that version statements just don't work that way and
their implementation would probably have to be redesigned a fair bit to allow
for it. Walter is _definitely_ against the negation of version identifiers and
stuff like that though.
- Jonathan M Davis
More information about the Digitalmars-d-learn
mailing list