CppNews #39: [24.09 - 30.09.2018]
CppNews #39: [24.09 - 30.09.2018]
Zapraszamy na kolejną porcję newsów, czyli zbioru linków do postów, filmików i artykułów, które pojawiły się w ostatnim tygodniu.
W tym tygodniu odbyła się największa konferencja C++ na świecie - CppCon! Zaczęły się pojawiać pierwsze prelekcje w serwisie Youtube - przez najbliższy miesiąc będziemy wybierać jeden z filmików, który uznamy za warty obejrzenia. Dzisiaj będzie to wykład od “ojca C++”, Bjarne’a, na temat przyszłości naszego ukochanego języka. Oprócz tego artykuł o tym, jak usunąć zduplikowane elementy z kontenerów asocjacyjnych oraz przykład programowania ekstremalnie defensywnego. Zapraszamy!
Artykuł od Christophera Di Belli - zaczyna od fragmentu kodu, który sprawdza czy dana liczba jest liczba pierwszą (używa algogrytmu z angielskiej wikipedii, z optymalizacją 6k±1), i refaktoruję kod w stylu funkcyjnym korzystając std::ranges. Ten post może zmienić sposób myślenia podczas projektowania algorytmów!
https://cjdb.com.au/a-prime-opportunity-for-rangesJeśli zastanawialiście się, jak może wyglądać kod ekstremalnie defensywny, koniecznie sprawdźcie linka poniżej. Philippe Goarke prezentuje ciekawy styl, z mnóstwem static_assertów:
https://philippegroarke.com/posts/2018/easy_defensive_programming/Nowy odcinek C++ Weekly od Jasona Turnera - tym razem wraca do jednego ze starych odcinków, gdzie prezentował praktyczny przypadek użycia dziedziczenia po lambdzie (tutaj). W nowym odcinku pokazuje, jak przy użyciu funkcji z C++17 uprościć implementację. Bez wątpienia, nowa wersja jest dużo prostsza i bardziej czytelna:
https://youtube.com/watch?v=EsUmnLgz8QYKolejny post z serii od Jonathana Boccary na temat usuwania elementów z kontenerów - tym razem pokazuje, jak pozbyć się zduplikowanych obiektów z kontenerów asocjacyjnych:
https://fluentcpp.com/2018/09/25/remove-duplicates-associative-container-cpp/Rainer Grimm napisał post wprowadzający do wpisów z C++ Core Guideliness na temat Concepts - tym razem tylko pokazuje po co piszemy generyczny kod oraz kiedy kod jest “zbyt generyczny”:
http://modernescpp.com/index.php/c-core-guidelines-rules-for-the-usage-of-conceptsWszyscy na to czekaliśmy - pojawiają się pierwsze filmiki z CppCon! Mnóstwo wiedzy, setki godzin użytecznej wiedzy. Wszystkie filmiki będą się sukcesywnie pojawiać na oficjalnym kanale konferencji -w tym tygodniu polecamy inaguracyjny wykład od Bjarne’a Stroustrupa o przyszłości języka, czyli jak nowa funkcja “Concepts” zmieni sposób pisania generycznego kodu:
https://youtube.com/watch?v=HddFGPTAmtUWpis od Arthura O’Dwyera o “perfect backwarding”, czyli jak prawidłowo “przechwytywać” zwracane obiekty:
https://quuxplusone.github.io/blog/2018/09/25/perfect-backwarding/Artykuł od Arne Mertz, pokazuje ze szczegółami różnicę pomiędzy tworzeniem shared_ptra konstruktorem a metodą std::make_shared. Co ciekawe, pokazuje jakie wady ma to drugie rozwiązanie:
https://arne-mertz.de/2018/09/make_shared-vs-the-normal-shared_ptr-constructor/Artykuł od Jonathana Boccary - prezentuje trochę inny styl deklarowania zmiennych, przy użyciu słowa kluczowego auto. Na pewno nie zmieni to światopoglądu, ale warto znać plusy i minusy takiej deklaracji:
https://fluentcpp.com/2018/09/28/auto-stick-changing-style/Popularna bilbioteka Abseil dostarczyła nowe algorytmu haszujące do swoich kontenerów (oraz nowe API do hashowania): https://abseil.io/blog/20180927-swisstables