Tutorial C++ Modern
Tutorial ini bertujuan untuk memberikan referensi cepat bagi pengembang berpengalaman mengenai fitur-fitur baru C++11/14/17/20. Ini mencakup peningkatan kenyamanan bahasa, peningkatan runtime, container baru, pointer cerdas dan manajemen memori, ekspresi reguler, pemrograman konkuren, serta gambaran singkat tentang C++20.
Gambaran Umum Kursus
Ringkasan Konten
Tutorial ini dirancang untuk memberikan referensi cepat bagi pengembang berpengalaman mengenai fitur-fitur baru C++11/14/17/20. Konten mencakup peningkatan kenyamanan bahasa, peningkatan runtime, penggunaan container baru, pointer pintar dan manajemen memori, ekspresi reguler, pemrograman konkuren, serta gambaran awal tentang C++20.
Cepat pahami C++11/14/17/20 dan langkah menuju dunia pemrograman C++ modern.
Penulis: 欧长坤 (Ou Changkun)
Ucapan Terima Kasih: Dilisensikan di bawah lisensi CC BY-NC-ND 4.0, terima kasih kepada semua kontributor GitHub dan dukungan komunitas terkait.
Tujuan Pembelajaran
- Mengidentifikasi dan memverifikasi lingkungan kompiler C++ dan arsitektur target menggunakan alat baris perintah.
- Menjelaskan kompatibilitas standar dan sejarah tumpang tindih antara C (C89, C99, C11) dan C++ (C++98, C++1x).
- Menerapkan tautan lintas bahasa secara fungsional dengan menggunakan header
extern "C"dan alur kerja kompilasi multi-tahap. - Menyelesaikan ambiguitas pointer menggunakan
nullptrdan menerapkan logika compile-time menggunakanconstexprdanif constexpr. - Menyederhanakan deklarasi kompleks menggunakan
auto,decltype, dan alias tipe (using) sambil memastikan desain berbasis objek yang kuat denganoverridedanfinal. - Merancang kode yang sangat generik menggunakan template variadic, ekspresi lipat, dan deduksi parameter template non-type.
- Mendefinisikan dan menerapkan ekspresi Lambda dengan berbagai mode tangkapan (Nilai, Referensi, Ekspresi, dan Umum).
- Memanfaatkan
std::functiondanstd::binduntuk membuat pembungkus fungsi fleksibel dan aplikasi parsial fungsi. - Mengategorikan ekspresi menjadi Lvalue, Prvalue, dan Xvalue, serta menerapkan Semantik Pindah untuk mengoptimalkan manajemen sumber daya kelas.
- Membedakan antara model memori dan kasus penggunaan
std::array(ukuran tetap, stack) danstd::vector(ukuran dinamis, heap).