auto στη C++Στη C++, η λέξη-κλειδί auto είναι ένα ισχυρό χαρακτηριστικό που εισήχθη στη C++11 και χρησιμοποιείται για τη δήλωση μεταβλητών με συμπεραινόμενο τύπο δεδομένων.
Ο μεταγλωττιστής συμπεραίνει τον τύπο της μεταβλητής με βάση την αρχικοποίησή της, κάτι που μπορεί να κάνει τον κώδικα πιο ευανάγνωστο και πιο εύκολο στη συντήρηση.
Δες το παρακάτω παράδειγμα, όπου το auto χρησιμοποιείται για τη δήλωση μεταβλητών:
auto dragon_population{3}; // dragon_population is deduced as an integer
auto westeros{7.7777}; // westeros is deduced as a double
auto wedding_location{"The Twins"}; // wedding_location is deduced as a const char*, not std::string
Σε κάθε περίπτωση, ο τύπος της μεταβλητής συμπεραίνεται από την τιμή με την οποία αρχικοποιείται.
Η λέξη-κλειδί auto βοηθά γράφοντας πιο συνοπτικό και ευανάγνωστο κώδικα, μειώντας τη φλυαρία των ρητών τύπων.
const std::vector<std::string> pigeon_pie{"flour", "butter", "pigeon", "salt"};
auto purple_wedding_pie{pigeon_pie};
purple_wedding_pie.emplace_back("the strangler");
Σε αυτόν τον βρόχο, το auto συμπεραίνει τον τύπο του purple_wedding_pie ως std::vector<std::string>, αποφεύγοντας την ανάγκη να καθοριστεί ρητά ο τύπος ξανά.
Η λέξη-κλειδί auto είναι συμβατή με διάφορες δομές της C++, γεγονός που την κάνει ένα ευέλικτο εργαλείο στον σύγχρονο προγραμματισμό C++.
auto& element{array[0]}; // reference to an element
const auto object{otherObject}; // const type version of otherObject's type
auto* ptr{&x}; // pointer to x with the same type as x, but as a pointer.
Σε επόμενες έννοιες θα βλέπουμε συχνά τη λέξη-κλειδί auto με εκφράσεις lambda, βρόχους for με βάση το εύρος και επαναλήπτες.
auto είναι ιδιαίτερα χρήσιμο σε σενάρια γενικού προγραμματισμού, όπου οι τύποι μπορεί να είναι πολύπλοκοι ή να σχετίζονται με πρότυπα.auto μπορεί να κάνει τον κώδικα πιο καθαρό και να βελτιώσει τη συντηρησιμότητά του.