CppNews #36: [03.09 - 09.09.2018]
Zapraszamy na kolejny zestaw linków dotyczących C++. Dzisiaj między innymi analiza kodu assemblerowego dla ARMa i dokładny opis klasy promise z proposalu dotyczącym coroutines.
CppNews #36: [03.09 - 09.09.2018]
Nowy filmik od Jasona Turnera z C++ Weekly, analizuje dość szczegółowo wygenerowany kod assemblerowy dla architektury ARM.
https://www.youtube.com/watch?v=eMluWRp5hbIKolejna część z serii o C++ Core Guidelines od Rainera Grimma - tym razem opisuje pierwsze zasady dotyczące metaprogramowania, między innymi kiedy używać template’ów
http://www.modernescpp.com/index.php/c-core-guidelines-rules-for-templates-and-generic-programmingWpis na stronie Microsoftu o tym, kiedy używać std::optional.
https://blogs.msdn.microsoft.com/vcblog/2018/09/04/stdoptional-how-when-and-why/Gościnny wpis na blogu Jonathana Boccary - w jaki sposób podmienić funkcję przy użyciu dyrektyw preprocesora (a konkretniej dyrektywa #pragma GCC poison). Pierwsze co przychodzi do głowy, to “po co miałby ktoś tego używać?”, we wpisie wyjaśnione są przypadki użycia.
https://www.fluentcpp.com/2018/09/04/function-poisoning-in-cpp/Kolejna część wpisu o coroutines, tym razem wyjaśniająca czym jest typ “promise”. Bazuje on bezpośrednia na dokumencie TS 4736. Pokazuje między innymi co zrobić, by dostosować zachowanie podczas wywoływania i powrótu z couroutine. Wyjaśnione jest również na przykład, jak wygląda alokacja ramki korutyny. Bardzo szczegółowy artykuł, warto przeczytać:
https://lewissbaker.github.io/2018/09/05/understanding-the-promise-typeKolejny proposal dotyczący obsługi błędów (jak pewnie pamiętacie, ostatnio Herb Sutter zaproponował wyjątki bez narzutu). Autor proponuje ujednolicony system obsługi błędów dla C i C++:
http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2289.pdfWpis od Jonathana Boccary na temat paremtrów typu in/out. Przedstawia między innymi podejście Kate Gregory i Mathieu Roperta. W jaki sposób można zmienić architekturę, by nie było potrzeby tworzenia takiej metody? Odpowiedź znajdziecie poniżej:
https://www.fluentcpp.com/2018/09/07/input-output-values/