Tytuł: | C++ STL - efektywne wykorzystanie i najlepsze praktyki |
Kod: | ccpp-C++ STL |
Kategoria: | C i C++ |
Forma: | 35% wykłady / 65% warsztaty |
Czas trwania: | 3 dni |
Odbiorcy: | developerzy |
Zapisy: |
Indywidualne zamówienie i dopasowanie dla grupy. |
Logistyka: |
W siedzibie klienta lub w innym dowolnym miejscu. |
Szkolenie poświęcone standardowej bibliotece C++ (STL), które pozwala zrozumieć od podszewki moc możliwości dostarczanych przez STL.
W nieksiążkowy i nieszablonowy sposób, bazując na użytecznych przykładach kolejno odsłaniane są rozmaite elementy biblioteki standardowej z mocnym akcentem na wydajność.
Szkolenie przeznaczone jest dla programistów znających podstawową składnie C++ chcących w płynny i efektywny sposób wykorzystywać wszystkie mechanizmy dostarczane przez standard tego języka oraz otwartych bibliotek.
Poznaj ekspertów, którzy mogą poprowadzić Twoje szkolenie.
Idea renesansowej pracowni - Bottegi zakłada nieustanną pracę jej członków i dzielenie się jej wynikami.
Wzorzec Reaktor to podstawowy, jeden z najprostszych, ale zarazem stosunkowo efektywny wzorzec obsługi zdarzeń. Z tego artykułu dowiesz się, jakie ma własności oraz czy i kiedy go wykorzystać już na etapie projektowania rozwiązania problemu w danej aplikacji.
Wzorzec Reaktor z wykorzystaniem̨c innych współdziałających wzorców oraz zastosowaniem̨ w pełni zasady GRASP i SOLID.
Wzorzec Reaktor - wielowątkowe podejście do obsługi zdarzeń z wzorcem ThreadPool.
Obsługa częściowo synchroniczna (reaktywna) i częściowo asynchroniczna.
Orkiestracja poprzednich rozwiązań w jedną konfigurowalną į, skalowalną ̨ aplikację.
Strategie testowania całości rozwiązania.
Writing fast C++ applications is a really complex subject. It often turns out that deep but isolated knowledge of ISO C++ standard and algorithmic complexity of operations does not guarantee the success. Often the bottleneck of our applications happens to be the performance of computer’s memory or its wrong usage by our code. The lack of knowledge in that subject can ruin all our ambitions to create high performance implementation.
C++ rule of thumb is “you do not pay for what you do not use”. However, it turns out that this is not the case for some of the utilities from the C++ Standard Library. The key example here is the favorite tool of many developers – std::shared_ptr. The talk will describe the problems related to it in detail. It will also try to answer the question how it was possible to avoid them.
C++ is not C. C++ developers too often forget about that. The effects are often disastrous. nullptr dereferences, buffer overflows, resource leaks are the problems often seen in C++ applications bug trackers. Does it have to be like that? The talk presents a few simple rules tested in production that will make most of those issues go away and never appear again in the C++ software.
That talk will present the C++ world seen from Low Latency domain. The world where no dynamic allocations are welcomed, C++ exceptions are nearly not used, where STL containers are often not enough, and where developers often need to go deep down to assembly level to verify if the code really does its best.
That talk will present the C++ world seen from Low Latency domain. The world where no dynamic allocations are welcomed, C++ exceptions are nearly not used, where STL containers are often not enough, and where developers often need to go deep down to assembly level to verify if the code really does its best.
Presentation of features already voted into C++20 Standard Draft in Toronto, Albuquerque, and Jacksonville ISO C++ Committee Meetings as well as the overview of other really promising proposals that have high chances to arrive in C++20.
During the lecture, we will analyze and compare 2 implementations of the same simple Finite State Machine. It turns up that variant-based code is not only much faster but also it gives us the opportunity to define our interfaces and program flow much better.
The most of the Concepts TS and Ranges TS is merged into the C++20 standard draft document. The talk will present a current design of those features and will provide suggestions on how to use them in our source code.
I will present all the challenges, design tradeoffs, and potential solutions to those problems. During the lecture, we will also see how new C++20 features help to make the library interface easier to use, maintain, and extend.
I will talk about contracts, generic functions, constraints, concepts, ranges, constexpr'ing all the things, immediate functions, "fixing" UTF-8 and aggregates, and many other hot topics.
This talk presents a new C++20 library for Dimensional Analysis and Physical Units handling. The essential requirements of the library are user-friendliness, compile-time safety, no runtime overhead, and easy extensibility. The syntax of the library is built around a few easy to learn concepts and strictly checked at compile time, which makes it easy to learn and very forgiving for the novice.
This talk is summarizing my experience and thoughts gathered during the implementation of the Physical Units Library for C++. The way we do template metaprogramming now results with inscrutable compile-time errors and really long type names observed while debugging our code.