#programowanie

wszystkie notatki oznaczone etykietą "programowanie"

Ciekawe zastosowania klas lokalnych w C++

Po odkopaniu mojego starego hacka na pseudo-lambdy sprzed ery C++11 z wykorzystaniem klas lokalnych, postanowiłem trochę głębiej pogrzebać wokół tego niezbyt popularnego i chyba mniej znanego elementu języka C++. Może ktoś wykorzystuje takie klasy i uda mi się znaleźć jakieś ciekawe zastosowania i użycia tej konstrukcji.

Lokalne klasy w roli funktorów i funkcji lambda w C++03

Natrafiłem na jakiś stary, sprzed ponad 5 lat, kod mojego autorstwa, gdzie w projekcie z różnych powodów używaliśmy starego środowiska, kompilatora lub języka w standardzie C++03. Były to już czasy grubo po premierze C++11 no i jak to bywa, człowiek zachłyśnięty nowymi elementami języka, strasznie usprawniającymi pracę, musiał sobie jakoś radzić w szarej rzeczywistości. Dla mnie takim największym problemem był brak anonimowych funkcji i wpadłem wtedy na genialną pseudo-protezę funkcji lambda, aby tylko nie trzeba było definiować zewnętrznych funktorów ;)

Czytaj dalej

Przeciążenia, specjalizacje i wyszukiwanie nazw w C++

Po ostatnim wpisie, gdzie w przedstawionych sposobach w wielu miejscach bazowałem głównie na możliwościach oferowanych przez przeciążenia funkcji i specjalizacje, dalej chciałbym poruszyć te ciekawe elementy i mechanizmy języka C++ jakimi bez wątpienia są właśnie przeciążania i specjalizacje, a także cały mechanizm wyszukiwania nazw. Ten obszar języka C++ wydaje się trochę skomplikowany, o czym może poświadczyć objętość materiału go opisującego. W dokumencie standaryzacyjnym języka C++ znajdziemy całe rozdziały o przeciążeniach (doc:cpp20:over), wyszukiwaniu nazw (doc:cpp20:basic.

Czytaj dalej

Blokowanie niejawnej konwersji w C++

W ostatnim wpisie napomknąłem coś o dawnych problemach z konstruktorami konwersji odnosząc się do mojego starego wpisu o niejawnych przekształceniach typów. Po przypomnieniu sobie jego treści postanowiłem podzielić się kilkoma, pewnie ogólnie znanymi, sztuczkami kontrolowania i blokowania niejawnych konwersji nie tylko przy typach zdefiniowanych przez użytkownika, ale też te standardowe konwersje zachodzące mimowolnie pod maską języka C++ ;) Wykluczenie metody z niejawnej konwersji (explicit) We wspomniane notce do zapobiegania niejawnych konwersji do typu użytkownika użyto specyfikatora explicit w towarzystwie konstruktora konwersji.

Czytaj dalej

Rust okiem programisty C++

Po rozwiązaniu AoC w Ruscie, i jako takiej 25 dniowej codziennej pracy z tym językiem, mogę wreszcie powiedzieć kilka słów na jego temat i podzielić się moimi odczuciami i uwagami, widoczynmi z perspektywyw programisty piszącego głównie w C++. [Z powodu braków czasowych wynikłych z migracją nie udało mi się jeszcze skończyć tego wpisu…]

Podsumowanie Advent of Code 2020

Już po świętach. Właśnie rozwiązałem dwa ostanie zadania i zakończyłem tegoroczną edycję Advent of Code ;) Congratulations! You’ve finished every puzzle in Advent of Code 2020! I hope you had as much fun solving them as I had making them for you. I’d love to hear about your adventure; you can get in touch with me via contact info on my website or through Twitter. [Z powodu braków czasowych wynikłych z migracją nie udało mi się jeszcze skończyć tego wpisu…]

Czytaj dalej

Advent of Code 2020

Rozpoczął się grudzień, wkrótce rozpocznie się adwent, a po nim święta… A tymczasem wystartowała już tegoroczna edycja adwentowych łamigłówek programistycznych - Advent of Code. Postanowiłem znów wziąć udział w konkursie, pomimo, że po ostatniej edycji (mojej pierwszej) AoC 2019 byłem trochę sceptycznie nastawiony na ewentualny udział w kolejnych latach. Tak się jednak złożyło, że w tym roku też mam trochę luzu w grudniu, więc dobrze będzie go skonsumować na jakieś ciekawe algorytmiczne i programistyczne wyzwania.

Czytaj dalej

Ciekawe i użyteczne operatory w JS

Przy ostatniej aktualizacji mojego skryptu “Allegro Seller Info” odkryłem i wykorzystałem przydatny operator na jaki już od jakiegoś czasu natrafiałem w różnych JavaScriptowych kodach. To zmusiło mnie do przejrzenia co tam nowego pojawiło się w ostatnich kilku standardach tego języka… [Z powodu małych problemów czasowych, wpis w ciągłym przygotowaniu…]

C++20 formalnie (prawie) gotowe...

http://herbsutter.com/2020/02/15/trip-report-winter-iso-c-standards-meeting-prague/ http://www.reddit.com/r/cpp/comments/f47x4o/202002_prague_iso_c_committee_trip_report_c20_is/

Podsumowanie Advent of Code 2019

Dzisiaj, po rozwiązaniu ostatniego zadania, z sukcesem zakończyłem tegoroczną (moją pierwszą) edycję Advent of Code. Congratulations! You’ve finished every puzzle in Advent of Code 2019! I hope you had as much fun solving them as I had making them for you. I’d love to hear about your adventure; you can get in touch with me via contact info on my website or through Twitter. Zatem przyszła pora na kilka zdań krótkiego podsumowania.

Czytaj dalej