Czy wiesz, że jesteśmy również na Slacku? Dołącz do nas już teraz klikając tutaj!

Zarządzanie zasobami w C++ #4 – referencje uniwersalne i std::forward


2021-03-01, 00:00
Zarządzanie zasobami w C++ #4 – referencje uniwersalne i std::forward

Język C++ nie był by sobą, gdyby nie szablony. Kiedy chcemy napisać jakiś szablon klasy lub funkcji, która manipuluje zasobem, chcielibyśmy dać jej użytkownikowi możliwość zdecydowania, czy zasób ten daje nam na wyłączność, czy musimy go sobie skopiować. To zadanie ułatwiać ma nam uniwersalna referencja, która jest domeną wyłącznie funkcji szablonowych.... więcej

Późna inicjalizacja w C++


2019-09-24, 00:00
Późna inicjalizacja w C++

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

Standardowe konwersje wyrażeń dotyczące kategorii wartości


2019-04-18, 00:00
Standardowe konwersje wyrażeń dotyczące kategorii wartości

W ostatnim artykule dotyczącym kategorii typów powiedzieliśmy sobie o podziale wyrażeń, oraz o tym, czym są kategorie wartości. Nie wspomnieliśmy jednak, co się dzieje, kiedy wyrażenie danej kategorii pojawi się w miejscu gdzie oczekiwane jest wyrażenie innej kategorii. Ten artykuł ma na celu wyjaśnienie właśnie zasad konwersji wyrażeń oraz tego, jakie operacje program musi przeprowadzić, aby te konwersje mogły się odbyć.... więcej

Podział wyrażeń ze względu na kategorie wartości w C++


2019-03-28, 01:20
Podział wyrażeń ze względu na kategorie wartości w C++

Prawdopodobnie słyszałeś o lvalue oraz rvalue. W czasach panowania C oraz C++ (przed standardem C++ 11) były one dość łatwe do rozróżnienia - lvalue, to były te wyrażenia, które mogły znajdować się po lewej stronie przypisania, a rvalue to cała reszta. Od C++11 podział na wyrażenia stał się nieco bardziej skomplikowany. Poza znanymi l- i r-value mamy także gl-, x- oraz p-rvalue. W tym poście, chciałbym się przyjrzeć temu podziałowi nieco bardziej.... więcej

Historia Wyrażeń Lambda: od C++03 do C++20, część I


2019-03-21, 00:00
Historia Wyrażeń Lambda: od C++03 do C++20, część I

Wyrażenia lambda są jednym z najpotężniejszych dodatków do C++11, które w dodatku ewoluują z każdą nową wersją Standardu C++. W tym wpisie przejdziemy przez ich historę, pokazując kluczową funkcję nowoczesnego C++.... więcej

Kompendium wiedzy o smart pointerach


2018-11-07, 00:00
Kompendium wiedzy o smart pointerach

Niestety, bardzo często język C++ jest obwiniany przez programistów o to, że pisząc w nim, łatwo o wycieki pamięci. Wiele osób nie zdaje sobie sprawy, że mówią o C++ sprzed... ponad 7 lat! Dzisiaj dowiemy się, dlaczego nie jest tak łatwo walczyć z wyciekami pamięci używając zwykłych wskaźników oraz co nowego w tym temacie oferuje nam standard C++11.... więcej

Pssst! Używamy Cookies. Poprzez używanie naszego serwisu zgadzasz się na odczytywanie i zapisywanie Cookies w swojej przeglądarce.
Polityka Prywatności