Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > pl.comp.programming > #32468

Re: Dziwny wyciek zasobów

Newsgroups pl.comp.programming
Date 2019-03-23 13:30 -0700
References <QUOgE.6781$WX2.6137@fx16.fr7> <42388eba-da05-48f0-ad07-2587468ba142@googlegroups.com> <NEqlE.145642$Gr1.106458@fx05.fr7>
Message-ID <b099e30f-4f7b-4e88-9ada-d2324374bc06@googlegroups.com> (permalink)
Subject Re: Dziwny wyciek zasobów
From Wojciech Muła <wojtek.mula@gmail.com>

Show all headers | View raw


On Saturday, March 23, 2019 at 2:37:53 PM UTC+1, Szyk Cech wrote:
> Dzięki!
> Mam jedno pytanie:
> 
> > auto closefile = [](FILE* f){fclose(f);};
> > std::unique_ptr<FILE, decltype(closefile)> infile{fopen("path", "r"), closefile};
> 
> Czemu w drugiej linii stosujesz nawiasy klamrowe?!? Przecież to nie jest 
> ani funkcja ani inicjalizacja tablicy...

Od C++11 można, to się nazywa "uniform initialization": https://en.wikipedia.org/wiki/C%2B%2B11#Uniform_initialization

W ogóle ten kod można jeszcze uprościć, dopiero sam niedawno się tego dowiedziałem. Wystarczy jedna linijka, bez lambdy:

std::unique_ptr<FILE, int(*)(FILE*)> infile{fopen("path", "r"), fclose};

w.

Back to pl.comp.programming | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

Dziwny wyciek zasobów Szyk Cech <szykcech@spoko.pl> - 2019-03-09 14:08 +0100
  Re: Dziwny wyciek zasobów Szyk Cech <szykcech@spoko.pl> - 2019-03-09 14:09 +0100
  Re: Dziwny wyciek zasobów Wojciech Muła <wojtek.mula@gmail.com> - 2019-03-10 13:38 -0700
    Re: Dziwny wyciek zasobów Szyk Cech <szykcech@spoko.pl> - 2019-03-23 14:37 +0100
      Re: Dziwny wyciek zasobów Wojciech Muła <wojtek.mula@gmail.com> - 2019-03-23 13:30 -0700
        Re: Dziwny wyciek zasobów Borneq <borneq@antyspam.hidden.pl> - 2019-03-23 21:49 +0100
          Re: Dziwny wyciek zasobów Wojciech Muła <wojtek.mula@gmail.com> - 2019-03-25 15:13 -0700
  Re: Dziwny wyciek zasobów Szyk Cech <szykcech@spoko.pl> - 2019-03-24 11:55 +0100

csiph-web