Wszystko
Wszystkie
Archiwum
14
Niesamowita wydajność Algorytmów Równoległych z C++17... czy to możłiwe?
W artykule przedstawiam kilka przykładów wykorzystania algorytmów równoległych z C++17. Powyżej ilu elementem kolekcji w ogóle się opłaca "zrównoleglać" kod, jak się ma czekanie na pamięć, jak zająć CPU obliczeniami... Czy jest możliwe uzyskanie wydajności liniowej względem ilość rdzeni CPU?
z- 6
- #
- #
- #
9
Wyszukiwanie wzorców z nowymi algorytmami Boyer-Moore z C++17
Kolejna porcja nowości z C++17! Tym razem artykuł wprowadza do nowych algorytmów wyszukiwania wzorców w kontenerach (lub ciągach znaków). W C++17 mamy do wyboru Boyer-Moore oraz Boyer-Moore-Horspool. Nowe algorytmy oferują liniową złożoność w średnich wypadkach!
z- 0
- #
- #
- #
3
C++: Jak zainicjować pole string w klasie? Przykład paru opcji
Przekazać w konstruktorze referencję? Nowy typ string_view z C++17? A może przez wartość i wykonać std::move? Czy jest jeszcze jakaś inna opcja? Parę przykładów z analizą zysków i strat
z- 0
- #
- #
- #
2
Test wydajności std::string_view vs std::string Z C++17
Nowa porcja informacji o C++17! string_view może dać potencjalnie duże wzrosty wydajności względem kodu który używa zwykłych std:string. W artykule jest kilka testów od zwykłego substr do dzielenia ciągów znaków.
z- 0
- #
- #
- #
8
Do czego są nam potrzebne typy "in_place" w optional/any/variant z C++17
Kolejny artykuł o detalach C++17. Tym razem podsumowanie do czego przydają się konstrukcje w wykorzystaniem "in_place" - przy tworzeniu any/variant/optional. Jak zwykle jest to związane z wydajnością i możliwością zaoszczędzenia tworzenia dodatkowych kopii.
z- 0
- #
- #
- #
23
Klasa Menu - Przykład użycia nowych typów z C++17
Przykład użycia nowych typów dostepnych z C++17: std::optional, std::any, std::variant do implementacji klasy menu. Moduł pozwala na dodawanie callbacków a także tworzenie struktur hierarchicznych. Ciekawa droga jak można się uczyć nowych technik na bazie eksperymentowania.
z- 6
- #
- #
- #
- #
9
C++17: Aplikacja do Liczenia Słów w Plikach (wielowątkowo!)
Kolejna porcja C++17. Tym razem przykład jak można użyć Parallel STL oraz Filesystem - wszystko w oparciu o STL, bez dodatkowych bibliotek pomocniczych. Wersja "Parallel" daje nawet 3x wzrost wydajności względem sekwencyjnej.
z- 4
- #
- #
- #
14
Wszystko co musisz wiedzieć o std::any z C++17
Z nowym standardem C++17 dostajemy kilka ciekawych typów pomocniczych. W tym artykule przedstawiam `std::any` które jest alternatywą (bezpieczną?) dla void*.
z- 0
- #
- #
- #
7
C++17: Przykłady użycia std::optional
Dzięki wsparciu czytelników bloga udało się zebrać wiele przykładów wykorzystania nowego typu std::optional.
z- 0
- #
- #
- #
4
Wszystko o nowym typie std::variant z C++17
W artykule omawiam nowym typ dostępny z C++17: std::variant. Podstawy, użycie, "wizytacje" aktywnego typu za pomocą "overload", przykłady użycia jak maszyna stanów, parsowanie linii poleceń, czy nawet alternatywa dla polimorfizmu.
z- 3
- #
- #
- #
2
Obsługa błędów i std::optional z C++17
W artykule przedstawiam parę sposobów na obsługę błędów oraz jak się ma do tego std::optional, który się pojawił w C++17 (lub alternatywnie jako boost.optional)
z- 0
- #
- #
- #
5
Nowy atrybut [[nodiscard]] z C++17 i usprawnianie kodu
[[nodiscard]] jest nowym atrybutem dodanym do C++17. W artykule przybliżam jak można wykorzystać ten dodatek i jak on może usprawnić kod.
z- 1
- #
- #
- #
8
Refactoring kodu z C++17 std::optional
Przykład jak można zrefaktorować dość nieciekawą funkcję przyjmującą parametry "out" w postaci wskaźników. Przechodzimy od std::tuple do std::optional (z C++17). Może macie jakieś lepsze podejście jak coś takiego ulepszyć?
z- 0
- #
- #
- #
4
Upraszczanie kodu z 'if constexpr' w C++17
Szablony w C++ są jednym z trudniejszych obszarów do nauki. Często meta-programowanie wydaje się "magią". Na szczęście od C++11 dostajemy coraz więcej ułatwień! W C++17 mamy w końcu 'compile time if" który z powodzeniem zastępuje SFINAE czy tag-dispatching które bardzo komplikowały kod.
z- 0
- #
- #
- #
24
Lista zmian w C++ 17
C++17 został zaakceptowany pod koniec ubiegłego roku. W tym wpisie przedstawiam listę najważniejszych zmian w języku i bibliotece standardowej. Zapraszam także do dodawania przykładów i propozycji opisów.
z- 7
- #
- #
- #
5
C++17 in detail: Filesystem (eng)
W nowym standardzie języka C++ do dyspozycji mamy cały nowy subsystem do obsługi plików! Oryginalnie wywodzi się z boosta, więc jest sprawdzonym rozwiązaniem. Ścieżki, iterowanie po katalogach, atrybuty, liczenie rozmiaru plików, etc...
z- 0
- #
- #
- #
- #
Autor: Matt Bierner
Ciekawa implementacja tetrisa oparta o szablony języka C++ (wykorzystuje elemnty C++17).
Mechanika gry odbywa się w trakcie kompilacji a ruch jaki chcemy wykonać podajemy jako parametr dla kopmilatora. Jedyne zadanie skompilowanego programu to wyświetlenie aktualnego stanu gry i zaktualizowanie pliku przechowującego stan gry.