Auto เป็นคีย์เวิร์ดที่ C++ "สืบทอด" จากภาษา C ซึ่งอยู่ที่นั่นเกือบตลอดไป แต่แทบไม่เคยใช้เลย ทั้งหมดนี้เปลี่ยนไปด้วยการแนะนำ auto to do type deduction จากบริบทใน C ++ 11 ก่อน C++ 11 ข้อมูลแต่ละประเภทจะต้องมีการประกาศอย่างชัดแจ้ง ณ เวลาคอมไพล์ โดยจำกัดค่าของนิพจน์ขณะรันไทม์ แต่หลังจาก C++ เวอร์ชันใหม่ คีย์เวิร์ดจำนวนมากจะถูกรวมไว้ด้วย ซึ่งช่วยให้โปรแกรมเมอร์ปล่อยให้การหักประเภทนั้นตกเป็นของคอมไพเลอร์เอง
ด้วยความสามารถในการอนุมานชนิด เราสามารถใช้เวลาน้อยลงในการเขียนสิ่งที่คอมไพเลอร์รู้อยู่แล้ว เนื่องจากทุกประเภทถูกอนุมานในเฟสคอมไพเลอร์เท่านั้น เวลาในการคอมไพล์จึงเพิ่มขึ้นเล็กน้อยแต่จะไม่ส่งผลต่อรันไทม์ของโปรแกรม
คีย์เวิร์ดอัตโนมัติระบุว่าประเภทของตัวแปรที่ประกาศเริ่มต้นจะถูกอนุมานโดยอัตโนมัติจากตัวเริ่มต้นและสำหรับฟังก์ชัน หากประเภทการส่งคืนเป็นอัตโนมัติ ค่านั้นจะถูกประเมินโดยนิพจน์ประเภทส่งคืนที่รันไทม์
ตัวอย่าง
#include<iostream> #incllude<vector> using namespace std; int main() { vector<int> vec(10); // Auto deduce type to be iterator of a vector of ints. for(auto it = vec.begin(); it != vec.end(); vec ++) { cin >> *it; } return 0; }