What is the auto keyword in C++?

Written by

Garvit Gulati

auto keyword is used to avoid writing the data-type of a variable.

The compiler infers the data-type from its initializer.

Let us look at an example to get a clear understanding of the concept:

#include <iostream>
#include <typeinfo>	//for typeid().name()
using namespace std;

int main(){
	auto a = 4;
	auto b = 'a';
	auto ptr = &b;
	cout << typeid(a).name() << "\n" << typeid(b).name() << "\n" << typeid(ptr).name() << "\n";

	return 0;
}

Output:

i

c

Pc

typeid(x).name() returns a shorthand name for data-type of x. Here, the compiler automatically sets the data-type of the variables from the value they are assigned.

The auto keyword provides a number of benefits over the primitive method of data-type declaration:

  1. It is a simple way of declaring a variable of complicated data type
  2. If the expression’s type is changed—this includes when a function return type is changed—it just works.
  3. Your coding can be more efficient

NOTE: “auto” is a feature introduced in C++ 11. Hence, it isn’t available in C and previous versions of C++.

What is the auto keyword in C++?