Safe mode in D?

Max Samukha maxsamukha at gmail.com
Fri Oct 18 12:46:43 PDT 2013


On Friday, 18 October 2013 at 19:28:35 UTC, Maxim Fomin wrote:
> On Friday, 18 October 2013 at 18:59:46 UTC, Andrei Alexandrescu 
> wrote:
>>
>> I think one good compromise is to stick with the exact amount 
>> of flow control we currently have in constructors (which is 
>> primitive but quite adequate), and use that creatively. It's 
>> already implemented and works, so the implementation costs of 
>> applying it to other cases should be low.
>>
>> Andrei
>
> Do you mean preventing calling constructor (from another 
> constructor) within one control branch? May be this will be 
> case #13.
>
> import std.stdio;
>
> extern(C) void _D4main1A6__ctorMFiZC4main1A(A a, int i);
>
> class A
> {
>    this(int i) { writeln("reached"); }
>    this()
>    {
>       int i = 1;
>       //if (i)
>       //   this(i); // Error: one path skips constructor
>       if (i)
>          _D4main1A6__ctorMFiZC4main1A(this, i);
>       if (i)
>          auto dg = __traits(getOverloads, this, "__ctor")[0](i);
>    }
> }
>
> void main()
> {
>    new A;
> }

Wanna talk about what can be done with reflection in "safe" C#?


More information about the Digitalmars-d mailing list