eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingDziwny wyciek zasobówRe: Dziwny wyciek zasobów
  • Data: 2019-03-25 23:13:21
    Temat: Re: Dziwny wyciek zasobów
    Od: Wojciech Muła <w...@g...com> szukaj wiadomości tego autora
    [ pokaż wszystkie nagłówki ]

    On Saturday, March 23, 2019 at 9:49:03 PM UTC+1, Borneq wrote:
    > W dniu 23.03.2019 o 21:30, Wojciech Muła pisze:
    > > 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_init
    ialization
    > >
    > > 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.
    > >
    > A nie lepszy kod mniej uproszczony a bardziej czytelny?

    Można jeszcze inaczej:

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

    Ale masz 100% rację, że to wciąż koślawy zapis. Chwilę mi zajęło,
    zanim doszedłem do powyższego zapisu. Lambda najbardziej oczywista
    i co więcej GCC ładnie ją inlinuje.

    w.

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: