2015-05-22 11 views
6

Uruchamianie lambda na wyjściu lunety wydaje się być tak podstawową rzeczą, spodziewałbym się, że będzie ona znormalizowana. Rzeczy takie jak unique_ptr są lepsze, gdy się stosują, ale uważam, że istnieje nieskończona ilość "jednorazowych" destruktorów, szczególnie w przypadku korzystania z bibliotek w stylu C. Czy ktoś wie, czy to się zbliża?Czy nastąpi standaryzacja idiomów wyjścia oscyloskopu/zakresu?

+0

W jakich przypadkach używasz lambdas na wyjściu lunety? – Borgleader

+0

Oczekiwanie na elementy robocze puli wątków do ukończenia przed zamknięciem puli wątków jest dobrym przykładem (nawet jeśli zostanie zgłoszony wyjątek, musisz jeszcze poczekać lub spowoduje to awarię pracowników). Zawsze jest możliwe utworzenie pełnego opakowania C++ dla każdej wykonywanej czynności, ale o tyle dodatkowego kodu w przypadkach, w których używasz go jeden raz. – VoidStar

+0

Napisz ofertę? Tak się składa, że ​​lubię [Stefanus Du Toit] (https://github.com/CppCon/CppCon2014/blob/master/Presentations/C%2B%2B11%20in%20the%20Wild%20-%20Techniques%20from%20a%20Real Implementacja% 20Codebase/auto.h) (choć nie mam pojęcia, dlaczego nazwał to "Auto") – Barry

Odpowiedz

8

n4189 to propozycja dodania do języka wrapperów make_scope_exit i innych podobnych programów do obsługi zasobów. Jest on oparty na stosunkowo słynnej rozmowie scope_guard.

Najnowszy "aktualny stan papieru" z LWG ma miejsce w 2013 r., Przed tą datą.

Zawartość C++ 1z (mam nadzieję C++ 17) nie została jeszcze określona.

C++1z status for clang o tym nie wspomina. C++1z TS for clang nic o tym nie wspomina.

Sam artykuł zawiera przykładową implementację. Nie wiem, jakie są warunki licencji.

+3

[zdaje się, że minął LEWG] (https://issues.isocpp.org/show_bug.cgi?id=6), ale wygląda na to, że będzie potrzebował lepszego sformułowania, zanim będzie mógł być przyjęty. Sformułowanie N4189 jest dość złe. –

7

It would appear że obecna wersja referatu wyjścia zakresu, P0052 będzie wchodząc podstaw Library v3, dla prawdopodobnego przyjęcia w Napisz C++ standardowych 17.

W skrócie, nie stanie się to w C++ 17. Przepraszam.

+1

Ostateczny komentarz, który mówi o propozycji przeniesienia go do IS. Nie mogę powiedzieć, czy to się stanie. –

+0

@pepper_chico Czym jest IS? – Jens

+0

@Jens: The International Standard. To nie sprawiło, że przy okazji. –

Powiązane problemy