version(debug)
denizzzka
4denizzz at gmail.com
Sun Oct 7 00:27:31 PDT 2012
On Sunday, 7 October 2012 at 01:20:49 UTC, Jonathan M Davis wrote:
> On Saturday, October 06, 2012 23:49:23 denizzzka wrote:
>> I am on dmd 2.060
>>
>> debug {} else {} was not obvious for me - I thought that debug
>> is
>> a kind of qualifer.
>
> I wouldn't expect you to try either version(debug) or debug {}
> without seeing
> them in the docs or in TDPL. I suppose that I can see why you
> would try
> version(debug), but it's not listed in the docs.
>
> There isn't really a debug version of anything in D. What debug
> {} does is
> it's compiled in when -debug is compiled in, and that can be
> used in
> conjunction with -release if you want to. So talking about
> debug vs release in
> D is likely to get very confusing. Rather -debug enables debug
> blocks which
> are intended for inserting debug code, _not_ code which is
> meant for non-
> release builds.
>
> It looks like version(assert) (which I guess is only in the
> github version
> right now) will effectively correspond to not having -release,
> but if there's
> ever a compiler flag which specifically enables or disables
> assertions instead
> of -release (which does more than just disable assertions -
> e.g. it disables
> bounds checking in non- at safe code), then it won't actually be
> guaranteed to
> not be there if -release isn't there. It's close enough though
> I guess,
> particularly when the type of stuff that you specifically do in
> non-release code
> is typically the kind of stuff that you want done with
> assertions are enabled
> and probably wouldn't want enable if assertions were turned
> off, even if that
> were to somehow happen without -release.
I've got a situation that debug information should be placed into
the class via the constructor. Therefore, when used -debug
constructor has another arguments list, and its need debug {}
else {} for ctor calling.
> In any case, -debug and debug{} should be explained in the docs
> somewhere.
> It's certainly not the sort of thing that I would expect you to
> magically
> know.
Yes.
More information about the Digitalmars-d-learn
mailing list