Πρότυπα & Γενικός Προγραμματισμός
Γράψτε αυθεντικά γενικές, επαναχρησιμοποιήσιμες, μηδενικές γενικές αφαιρέσεις χρησιμοποιώντας πρότυπα, έννοιες και προγραμματισμό χρόνου μεταγλώττισης.
Βασικές αρχές προτύπου
Πρότυπα συναρτήσεων & Αφαίρεση τύπου
Μάθετε πώς να γράφετε συναρτήσεις που λειτουργούν με οποιονδήποτε τύπο. Κατανοήστε την αφαίρεση ορισμάτων προτύπου, τις παραμέτρους που δεν είναι τύπου και γιατί τα πρότυπα ζουν σε κεφαλίδες.
Πρότυπα τάξης & CTAD
Δημιουργήστε γενικές δομές δεδομένων με πρότυπα κλάσεων. Κατανοήστε τους ορισμούς των μελών, τα προεπιλεγμένα ορίσματα και πώς το CTAD του C++17 σάς επιτρέπει να παραλείπετε ορίσματα προτύπου.
Προηγμένα πρότυπα
Εξειδίκευση προτύπων & αποστολή ετικετών
Κατακτήστε την πλήρη και μερική εξειδίκευση, μάθετε πότε να προτιμάτε την υπερφόρτωση και ανακαλύψτε την αποστολή ετικετών και εάν constexpr ως εναλλακτικές λύσεις για τη διακλάδωση στο χρόνο μεταγλώττισης.
Variadic Templates & Fold Expressions
Χειριστείτε οποιονδήποτε αριθμό ορισμάτων προτύπου με πακέτα παραμέτρων. Κύρια αναδιπλούμενες εκφράσεις για κομψή, χωρίς αναδρομική επεξεργασία πακέτων.
SFINAE, Type Traits & enable_if
Κατανοήστε την αρχή Η αποτυχία αντικατάστασης δεν είναι σφάλμα, χρησιμοποιήστε χαρακτηριστικά τύπου για ενδοσκόπηση στο χρόνο μεταγλώττισης και περιορίστε πρότυπα με το enable_if.
Σύγχρονος Γενικός Προγραμματισμός
C++20 Έννοιες & Περιορισμοί
Ορίστε ακριβείς απαιτήσεις για ορίσματα προτύπων χρησιμοποιώντας έννοιες. Γράψτε πιο καθαρό γενικό κώδικα με ρήτρες απαιτήσεων, συντετμημένα πρότυπα συναρτήσεων και τυπικές έννοιες βιβλιοθήκης.
Προγραμματισμός constexpr, consteval & Compile-Time
Μετακινήστε τον υπολογισμό από το χρόνο εκτέλεσης στον χρόνο μεταγλώττισης χρησιμοποιώντας constexpr, consteval και constinit. Δημιουργήστε πίνακες αναζήτησης, επικυρώστε διαμορφώσεις και χρησιμοποιήστε κοντέινερ constexpr.
Μοτίβα μεταπρογραμματισμού προτύπων
Κατακτήστε προηγμένα μοτίβα προτύπων: CRTP για στατικό πολυμορφισμό, σχεδιασμός βάσει πολιτικής για ευέλικτη σύνθεση, διαγραφή τύπων για γενικά στοιχεία χρόνου εκτέλεσης και οδηγίες για το πότε να χρησιμοποιείτε πρότυπα έναντι εικονικής αποστολής.