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 میتواند شلوغی را کم کند و نگهداری کد را بهبود ببخشد.