auto একটি কিওয়ার্ড যা C++ "বিরাসত" পেয়েছিল C-থেকে, যা ungefär সदा থেকে 그곳ে ছিল, কিন্তু تقریباً কখনো ব্যবহার হতো না। সব পরিবর্তন হয়েছে C++11-এ auto-র প্রবর্তনের সাথে যা কনটেক্সট থেকে টাইপ ডিডাকশন করে। C++11-এর আগে, প্রতিটি ডেটা টাইপ কম্পাইল টাইমে এক্সপ্লিসিটলি ডিক্লেয়ার করতে হতো, যা রানটাইমে এক্সপ্রেশনের মান সীমাবদ্ধ করত, কিন্তু C++-র নতুন ভার্সনে অনেক কিওয়ার্ড যোগ হয়েছে যা প্রোগ্রামারকে টাইপ ডিডাকশন কম্পাইলারের ওপর ছেড়ে দেওয়ার সুযোগ দেয়।
টাইপ ইনফারেন্স ক্ষমতার সাথে, আমরা কম্পাইলারের জানা বিষয়গুলো লিখতে কম সময় ব্যয় করি। যেহেতু সব টাইপ কম্পাইলেশন ফেজেই ডিডাক্ট করা হয়, কম্পাইলেশন টাইম কিছুটা বাড়ে কিন্তু প্রোগ্রামের রানটাইমে কোনো প্রভাব পড়ে না।
auto কিওয়ার্ড নির্দেশ করে যে ডিক্লেয়ার করা ভেরিয়েবলের টাইপটি তার ইনিশিয়ালাইজার থেকে স্বয়ংক্রিয়ভাবে ডিডাক্ট হবে এবং ফাংশনগুলোর রিটার্ন টাইপ auto হলে তা রানটাইমে রিটার্ন টাইপ এক্সপ্রেশন দ্বারা ইভ্যালুয়েট হবে।
উদাহরণ
#include <iostream>
#include <vector>
using namespace std;
int main() {
vector<int> vec(10);
// Auto টাইপ ডিডাক্ট করবে vector of ints-এর ইটারেটর।
for(auto it = vec.begin(); it != vec.end(); ++it) {
cin >> *it;
}
return 0;
}
নোট: মূল উদাহরণে vec++ ছিল যা ভুল, এখানে ++it সংশোধন করা হয়েছে।