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 مع تعبيرات لامدا، وحلقات for المعتمدة على النطاق، والمكرِّرات.
auto مفيدة بشكل خاص في سياقات البرمجة العمومية حيث قد تكون الأنواع معقدة أو مرتبطة بالقوالب.auto تقليل الفوضى وتحسين قابلية صيانة الكود.