Seminář C++: (ISVUT):
Informace pro studenty (letní semestr 2023/2024)


Informace, termíny:

Zadání projektu - viz dále.

? Něco jako scanf pro C++: https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2024/p1729r4.html

Pozor - novinka: změna na klasifikovaný zápočet (==přepočet bodů z projektu na známku)

Pozor: budou průběžně reorganizovány slajdy (+doplňky, C++23, příklady).

TODO: kategorie hodnot a decltype
== Malé Qt příklady: PP-small-qt-examples.tar.gz
Dokumentace: Třídy Qt5

Zajímavé: cppinsights.io , cpp.libhunt.com
C++20 feature testing
diff C++17 C++20


Projekt -- zadání viz dále

***** Projekt: vše řešte s kolegou Janouškem - bude to hodnotit.

Pro zájemce jsou k dispozici příklady - viz dále

Toto je seminář běžící paralelně s předmětem IPP = "Principy programovacích jazyků a OOP". Předpokládá se základní znalost jazyka ISO C. Přednáška/seminář: viz rozvrh.
Pro dotazy existuje fórum v IS. Doporučuji nahlédnutí do C FAQ a C++ FAQ (viz Texty)

Test základních znalostí C++ (bývalo součástí zkoušky) - zkuste si doplnit ještě kopírovací konstruktor a také C++11 "move" operace. (Nenechte se v podobných příkladech překvapit povinným "copy elision" v některých situacích.) [TODO: doplnit odkaz]

Pro informaci: Bjarne Stroustrup: výslovnost
Tip1: Výpis VMT: g++ -fdump-class-hierarchy
Tip2: Styl: g++ -Weffc++
Tip3: Pomalý vstup/výstup? Zkuste std::ios::sync_with_stdio(false);
Tip4: Ladění: g++ -fsanitize=address
Tip5: Předdefinovaná makra: echo | g++ -x c++ -E -dM -
...
Benchmark: test-2012-04-gcc-4.4.5.pdf - test-2023-10-gcc-12.2.pdf - efektivita práce s kontejnery
Místní GIT/SVN repozitář viz FIT-Linux-FAQ-15


Plán výuky:

Přednášky:

Týmový projekt:


Další informace:

Texty:

Odkazy:


etc:

Příklady, slajdy, ...,

Knihovny: BOOST (x), ref, uBLAS (x), regexp example: grep lambda, BGL-example, , example: asio-test-echo.cc
JTC1/SC22/WG21, TR1 - info2,

Design Patterns: Definice(Wikip), Přehled a kritika,
Příklad: Singleton,
DP Library, patterns-intro.pdf, patterns-examples.pdf, Pattern Language, ,
Introduction to Design Patterns in C++ with Qt,

Smart pointer: shared_ptr, weak_ptr, unique_ptr,

Template Metaprogramming, Blitz++, , +doplněk: template-1.cc

Koenig lookup,

Nifty Assignments

*=*novinky/standardizace

* Rvalue References Explained
* Universal References in C++11,

(zastaralé ale zajímavé: TODO)

Událostmi řízené programy, Událostmi řízené programování, ... - jen princip (cca 15min)

** CppCoreGuidelines,

Mixing C and C++ code,

** GotW,

Výjimky (exceptions): GotW#102 a příklad
FAQ: výjimky
iostreams a výjimky: http://en.cppreference.com/w/cpp/io/ios_base/failure
Pravidla 3/5,

C++ Library: Time,

UNICODE: The Absolute Minimum..., utf8everywhere.org,

? C++ antipatterns,

info: Perfect forwarding and universal references,

,

Historie: C++17 ISO standard publikován 2017-12
C++20 final-draft schválen 2020-02 (+-1), publikován 2020-12
Stroustrup: C++ evoluce 2006-2020
přehled rozdílů, 2,
Příklad C++17: icp-fold-expr.cc

Konference: CppCon,


Poslední modifikace: 20. March 2024
Připomínky k obsahu stránky posílejte na e-mail: peringer AT fit.vutbr.cz