FYI my experience with D' version
Don Clugston
dac at nospam.com
Mon Jul 30 06:15:10 PDT 2012
On 30/07/12 14:32, Jacob Carlborg wrote:
> On 2012-07-30 12:30, torhu wrote:
>
>> version is good for global options that you set with -version on the
>> command line. And can also be used internally in a module, but doesn't
>> work across modules. But it seems you have discovered this the hard way
>> already.
>>
>> I think there was a discussion about this a few years ago, Walter did it
>> this way on purpose. Can't remember the details, though.
>
> He probably wants to avoid the C macro hell.
>
IIRC it's because version identifiers are global.
______________________________
module b;
version = CoolStuff;
______________________________
module a;
import b;
version (X86)
{
version = CoolStuff;
}
version(CoolStuff)
{
// Looks as though this is only true on X86.
// But because module b used the same name, it's actually true always.
}
______________________________
These types of problems would be avoided if we used the one-definition
rule for version statements, bugzilla 7417.
More information about the Digitalmars-d-learn
mailing list