CppNews #60 [11.03 - 17.03.2019] - Przewodnik po coroutines!
CppNews #60 [11.03 - 17.03.2019] - Przewodnik po coroutines!
Witamy w kolejnym CppNews, czyli zbiorze linków do blogów, artykułów, słuchowisk i filmów dotyczących C++.
W tym tygodniu znajdziecie świetny artykuł o coroutines od naszego rodaka, dlaczego nie powinno się używać using namespace std;
i wiele więcej!
Nowy wpis od Bartłomieja Filipka - tym razem omawia jak zmieniła się lambda w C++17 - między innymi capture’owanie
*this
i lambda jakoconstexpr
:
bfilipek.com/2019/03/lambdas-story-part2.htmlW zeszłym tygodniu Microsoft udostępnił kod źródłowy swojego kalkulatora. Ekipa od PVS Studio, narzędzia do statycznej analizy kodu, przeskanowała projekt Microsoftu i znalazła wiele ciekawych błędów w implementacji:
habr.com/en/company/pvs-studio/blog/443400/
Przeskanowali również inne open-source’owe kalkulatory:
viva64.com/en/b/0616/Arthur O’Dwyer napisał artykuł o długości życia obiektów w kontekście obiektów tymczasowych i metod zwracających referencję:
quuxplusone.github.io/blog/2019/03/11/value-category-is-not-lifetime/Rainer Grimm pokazuje zasady z C++ Core Guideliness dotyczące mieszania kodu C++ z kodem z C:
modernescpp.com/index.php/c-core-guidelines-mixing-c-with-cJonathan Boccara na swoim blogu opisał jak zaimplementować demultiplekser, czyli iterator przekazujący dane do wielu kontenerów:
fluentcpp.com/2019/03/12/the-demultiplexer-iterator-routing-data-to-any-numbers-of-outputs/Nowy odcinek C++ Weekly - Jason Turner pokazuje jak włączyć wektoryzację przy użyciu odpowiednich flag kompilatora:
youtube.com/watch?v=_4D1y_KyEzACiekawy artykuł opisujący wpływ
std::move
(a właściwie jego brak) na performance:
jeremyong.com/c++17/metaprogramming/2019/03/12/optimizing-cpp-by-avoiding-moves.htmlInteresujący wątek na reddicie. Ktoś zadał komentarz, dlaczego operator dereferencji (
*
) dlastd::unique_ptr
w wersji debugowej ma tak duży callstack. Świetna, rzeczowa odpowiedź od autorów implementacji:
reddit.com/r/cpp/comments/b0sq6p/unique_ptr_seven_calls_to_dereference_why_is_this/Dwa genialne artykuły o czymś co nas czeka w C++20 - coroutines. Dokładny opis czym są, kiedy będziemy ich potrzebować i kilka przykładów użycia. A to wszystko od naszego rodaka, członka komisji standaryzacyjnej Dawida Pilarskiego:
blog.panicsoftware.com/your-first-coroutine/
blog.panicsoftware.com/coroutines-introduction/Andrzej Krzemiński wyjaśnia, dlaczego nie powinniśmy używać
using namespace std;
:
akrzemi1.wordpress.com/2019/03/14/not-using-namespace-std/Wpis od Sticky Bits o tworzeniu własnych allocatorów.
blog.feabhas.com/2019/03/thanks-for-the-memory-allocator/Artykuł na temat mało znanej konstrukcji, bloku
try-catch
obejmującego całą funkcję:
mariusbancila.ro/blog/2019/03/13/little-known-cpp-function-try-block/Kolejny wpis od Jonathana Boccary, porównuje wydajność biblioteki
ranges
z autorskimismart iteratorami
fluentcpp.com/2019/03/15/performance-benchmark-ranges-vs-stl-algorithms-vs-smart-output-iterators/