От 0 до Hero — вот как ключевое слово auto играет роль в C++ 11 и более поздних версиях.

Не совсем 0, auto использовался для объявления локальных переменных с автоматическим классом хранения по умолчанию.

Но теперь здесь появилась функция вывода/получения типа значения, хранящегося в автоматической переменной на этапе компиляции.

Одно условие заключается в том, что переменная auto должна быть правильно инициализирована, это приведет к ошибке компиляции, если вы просто объявите ее, не установив в ней какое-либо значение во время объявления.

Посмотрите на этот снимок экрана ниже, где мы присваиваем int, double, object и указатель на объект различным автоматическим переменным.

Этот механизм известен как Resource Acquisition Is Initialization (RAII), который позволяет автоматическипонимать, какой тип данных используется при инициализации, будь то тип данных типа double, int, указатель или любой другой класс. объект.

Здесь typeid(var).name() мы будем использовать для проверки типа данных var во время выполнения, давайте посмотрим на снимок экрана, чтобы получить лучшее изображение ниже.

Таким образом, он ясно делает вывод, что

Тип x -> i, поскольку мы присвоили значение int 20

Тип y -> d, поскольку мы присвоили двойное значение 34,98

Type of obj -> 6Medium т.е. показывает тип объекта Medium здесь назначен.

Тип obj2 -> P6Medium т.е. P здесь указывает на указатель на объект класса Medium.

Выяснение типа значения во время компиляции немного увеличивает время компиляции, но это не повлияет на время выполнения приложения.