On Wednesday, 20 July 2022 at 02:44:28 UTC, Steven Schveighoffer wrote:
>version(a) version(b)
accomplishes a && b. But a || b is just a complete pain to write.
Does this solve the issue?
version(a)
version = a_or_b;
version(b)
version = a_or_b;
version(a_or_b)
// do whatever you need
> > > But in any case, we have the numeric versions, which are 100% useless (because, as you say, they are not scoped to any dependencies), it would make sense to at least make that feature useful.
I don't see how raw numbers can be useful. Could you clarify your idea?
The proposal here (I think) is that if you define version MyLibrary.5
then version(MyLibrary.4)
or version(MyLibrary.1)
all are enabled.
What the current system does is worthless, because version(5)
has no meaning. If we scope the numbers to be within a specific project, then that project has the ability to define what those things mean, and you can just define one version on the command line.
Scoping to a project doesn't always provide the meaning: if I have a library that does network communication then what is this version number - library version, protocol version or something else?