Compilation constants

grauzone none at example.net
Wed Nov 11 10:45:17 PST 2009


Phil Deets wrote:
> On Wed, 11 Nov 2009 13:34:32 -0500, Phil Deets <pjdeets2 at gmail.com> wrote:
> 
>> On Wed, 11 Nov 2009 13:30:17 -0500, Phil Deets <pjdeets2 at gmail.com> 
>> wrote:
>>
>>> On Wed, 11 Nov 2009 08:50:48 -0500, bearophile 
>>> <bearophileHUGS at lycos.com> wrote:
>>>
>>>> In a C program I have a numeric constant SIZE (that is in [1,32]), 
>>>> that I can define when I compile the code, like this:
>>>> gcc -DSIZE=14 ...
>>>>
>>>> How can I do the same thing in D? The solution I have found is to 
>>>> put in the D code:
>>>> version(B1) const SIZE = 1;
>>>> version(B2) const SIZE = 2;
>>>> version(B3) const SIZE = 3;
>>>> version(B4) const SIZE = 4;
>>>> ...
>>>> version(B14) const SIZE = 14;
>>>> ...
>>>>
>>>> And then compile the D program with:
>>>> dmd -version=B14 ...
>>>> Or:
>>>> ldc -d-version=B14 ...
>>>>
>>>> Do you know nicer ways to do this in D? (if there are no nicer ways, 
>>>> is this simple feature worth adding to D?)
>>>>
>>>> Thank you, bye,
>>>> bearophile
>>>
>>> What I would probably do is generate a simple .d file right before 
>>> you compile.
>>
>> I'm used to using forums where I can post, look at what I wrote, then 
>> edit if necessary. To continue my thought, the file could be called 
>> constants.d and it could contain just be just one line:
>>
>> enum SIZE=14;

Or use import expressions and mixins, something like 
mixin("SIZE="~import("config.txt"));

But actually, that's horrible.

> See, I need edit functionality :). s/just be just/just/

You can delete your posts to emulate editing...


More information about the Digitalmars-d-learn mailing list