Lambda pod maską języka C++
• tech • 137 słów • 1 minuta czytania
Ta notatka została oznaczona jako wymagająca dopracowania: treść w przygotowaniu.
Zawartość wpisu może ulec zmianie, zatem zapraszam do ponownych odwiedzin w niedalekiej przyszłości :)
Wprowadzone w C++11 wyrażenia i funkcje lambda umożliwiające “inlinowe” definiowanie lokalnych funkcji anonimowych były chyba jednym z najbardziej wyczekiwanych, a później docenionych, nowości dodanych w 2011 roku do języka C++. Dzisiaj raczej ciężko byłoby się bez nich obejść w codziennej pracy. Ale czy ktoś zastanawiał się jak one działają i jak zostały zaimplementowane pod maską języka i kompilatora?
Sam zaciekawiony tymi elementami postanowiłem zastanowić się nad możliwymi sposobami implementacji tych konstrukcji językowych oraz zajrzeć do środka sprawdzając jak to zostało zrobione. Mogłoby się wydawać, że standard da wiele swobody w implementacji tej funkcjonalności, ale o dziwo narzuca pewne wymagania, które jasno determinują sposób implementacji i traktowania takich funkcji przez kompilator. Ale tym się na razie nie przejmujmy :)
To tylko zajawka z moich ostatnich eksperymentów i zabaw, mam nadzieję, że wkrótce pojawi się tutaj cały materiał ;)
Komentarze (0)