Arun Chandrasekaran wrote:

On Thursday, 23 February 2017 at 09:57:09 UTC, ketmar wrote:

Thanks for your help. NRVO looks interesting. However this may not be RAII after all. Or may be too much of C++ has spoiled me. I am not familiar enough with D to appreciate/question the language design choice. I'll accept this and move forward and see how my code evolves. Nevertheless, I'm still learning something new. :)

also, why structs at all? there are another ways! ;-)

 void doWithLock (scope void delegate () action) {
   lockSomething();
   scope(exit) unlockSomething();
   action();
 }

no, wait, this is not so limiting as it may look!

 void foo () {
   int i = 42;
   doWithLock({
     writeln("i=", i); // yay, 42!
   });
 }

this looks *almost* like `synchronized(obj) { ... }`! and if we'll ever press D devs to allow us to omit "()" when the only argument is arg-less lambda... it will be indistinguishable from built-in! ;-)
  • RAII Arun Chandrasekaran via Digitalmars-d-learn
    • Re: RAII ketmar via Digitalmars-d-learn
      • Re: RAII kinke via Digitalmars-d-learn
        • Re: RAII Adam D. Ruppe via Digitalmars-d-learn
      • Re: RAII Arun Chandrasekaran via Digitalmars-d-learn
        • Re: RAII ketmar via Digitalmars-d-learn
    • Re: RAII Adrian Matoga via Digitalmars-d-learn
    • Re: RAII cym13 via Digitalmars-d-learn
      • Re: RAII Arun Chandrasekaran via Digitalmars-d-learn

Reply via email to