W poprzednich dwóch częściach tego cyklu artykułów wyjaśniliśmy sobie rzeczy, które powinny być podstawą podczas pisania eleganckiego kodu w C++. W tej części przyjrzymy się bardziej niskopoziomowym aspektom języka związanym z zarządzaniem zasobami. Mogą być one jednak trudniejsze w zrozumieniu. Nie są jednak bardzo istotne z punktu widzenia programisty, dlatego nie polecam tego artykułu początkującym – mógłbym ich odstraszyć. Wszystkich innych zapraszam do lektury.... więcej
Jednym z potężniejszych wykorzystań std::variant niewątpliwie jest implementacja Maszyny Stanowej. Jakiś czas temu przygotowałem prosty przykład tego wzorca. Dzisiaj jednak mamy coś większego. W dzisiejszym wpisie przygotowanym przez Nikolai Wuttke zobaczycie, jak wykorzystać std::variant przy budowie gry kosmicznej!Poniższy wpis jest wpisem gościnnym autorstwa **Nikolai Wuttke**.... więcej
Późna inicjalizacja to wzorzec projektowy wykorzystywany w praktycznie każdym języku. Jego zaletą jest przesunięcie w czasie konstrukcji jakiegoś obiektu, która jest w jakiś sposób kosztowna, lub jej całkowite uniknięcie, jeżeli akurat tak się złoży, że dany obiekt w ogóle nie będzie potrzebny. Spójrzmy jak zaimplementować ten wzorzec poprawnie w C++.... więcej
Słowo kluczowe `inline` w języku C++ jest znane zapewne większości osób, które w co najmniej podstawowym stopniu opanowały ten język. Z mojej praktyki wynika jednak, że mniej doświadczonym osobom znane jest tylko jego jedno, i to mniej ważne zastosowanie.... więcej
Jak byście zaimplementowali funkcję która ma przeglądnąć katalogi i znaleźć plik z zadanym rozszerzeniem? Na przykład wyszukać wszystkie pliki .txt lub .cpp? Aby rozwiązać ten problem musicie posiadać dostęp do iteracji po plikach. Czy jest to możliwe w C++? Przyjrzyjmy się dostępnym technikom oraz zobaczmy, co jest dostępne od nowego standardu C++17.... więcej
W pierwszej części serii przeszliśmy przez lambdy w perspektywie od C++03, przez C++11 aż do C++14. Opisałem motywację do wprowadzenia tej potężnej funkcjonalności języka C++, podstawowe scenariusze użycia, składnię oraz jej udoskonalenia, które pojawiały się z każdą kolejną wersją standardu. Wspomniałem również o kilku scenariuszach brzegowych. Teraz pora na przeniesienie się do standardu C++17 oraz spojrzenie w przyszłość (całkiem bliską!): C++20.... więcej