Jak zapewne wiecie, istnieją pewne mechanizmy w C++, które pozwalają na uzyskanie danych o typie obiektu w czasie życia programu. Być może zastanawiacie się po co są one w C++. Dzięki nim możemy np. obsługiwać wyjątki oraz implementować typy takie jak `std::any`. W tym artykule przyjrzymy się narzędziom dynamicznego rzutowania oraz uzyskiwania informacji o dynamicznym typie zmiennej.... 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
Wielodziedziczenie to cecha programowania obiektowego, od której wielu programistów stara się odchodzić. Bardzo często spotykamy w sieci pytania na temat wielodziedziczenia, po czym otrzymujemy odpowiedzi w formie: "nie używaj, bo nie.". Dzisiaj przedstawimy życiowy przykład, który przemawia przeciw wielodziedziczeniu właśnie.... 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
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