scope as template struct

Christian Kamm kamm-incasoftware at removethis.de
Fri Jan 16 14:30:40 PST 2009


Christian Kamm wrote:
>> >> Unless there's a major difference to 'scope' I missed, I think that
>> >> with the addition of a few generic features it should be possible to
>> >> move it into a library entirely.

Robert Fraser wrote:
>> > Yes this would be possible. But what's the advantage of doing it this
>> > way and is it worth sacrificing syntax sugar and backwards
>> > compatibility for? And would this even work right with RAII?
>> 

Christian Kamm Wrote:
>> For the same reason that std.typecons.Rebindable isn't in the language
>> but in a library: if you can build it out of other features, it's not
>> worth making the language more complicated by adding it explicitly. I
>> agree that there's a fine line where ease of use conflicts with
>> orthogonality, but in this case not much sugar seems to be lost.
>> 
>> About RAII: The wrapped classes' constructor and destructor are called
>> just fine at the right time. There is a bug that the destructor will
>> probably segfault if construct() wasn't called, but that should be
>> avoidable either by having a flag set on construction or somehow forcing
>> construction during initialization.

Eldar Insafutdinov wrote:
> and in this case where would be class allocated? On heap? scope allocates
> classes on the stack afaik.

In the case that construct() isn't called? There'd be stack space reserved
for the class, but no object constructed inside. The template I posted
doesn't touch the heap at all.




More information about the Digitalmars-d mailing list