On Oct 5, 2012 5:09 PM, "_" <neura...@gmail.com> wrote:
>
> Hi Guys
>
> By proposing switch I think no c++ standard is threatened. We allready
> have switch for unsigned char etc.
>
> Looking at most of effort being pushed to STL and all kinds of
> smart-pointer templates to produce more resilient code.
> I think C/kernel developers deserve some love too.
> I strongly belive That automatic cleanup should be provided also for
> dynamic data on C/C++ low level language level.
> Imagine specially declared ointers being freed when leaving scope.
> So normal recovery in case of exception/error without memory leaks or
> double deallocations are possible without error prone duplicate
> copy-paste cleanup statements.
> This will result to simpler and safer but not slower code.
>
> First current state example
>
> void proc() {
>   Object* object_ptr;
>   // zillion error/exception handlers zillion ways to messup cleanup
> }
>
> Let smart pointer declaration be for example
> type *~ variable;
>
> void proc() {
>   Object*~ object_ptr;
>   // zillion error/exception handlers but destructor/free is
> automatically called when not null  and leaving scope just like with
> static objects
> }
>
> Another important example
>
> struct A {
>   Object*~ object_ptr;
>   Object*~ array[1000]; // during creation of array element [500]
> exception happens yet resources are properly freed like with static
> objects
> }
>
> // when stuct is destroyed all non null pointers have free called/
> destructors where appropriate
>
> Now those of you sayng that it is too complex to be done. I already
> implemented it.
> You can test it here.
> http://www.codeproject.com/Articles/468126/new-local-for-safer-and-simpler-code-with-no-need
>
> Unfortunately I have no idea how to do it in gcc. Is someone fluid
> with gcc or it's plugins willing to hlep me ?
> I would be more than thankfull.
>
> I thing it would be best to implement it as compiller switch -fsmart-pointers
> not requiring scope object and derive statement for objects. ie we
> need equal flexibility and freedom like have today with static objects
>
>
> What you guys think about this? I don't belive in stl solves all
> especially in low level land.

What's wrong with doing:

void proc() {
  Object* object_ptr = 0;
   struct cleanup {
     ~cleanup() { delete p; }
     Object*& p;
   } c = { object_ptr };
   ...
}

?

Reply via email to