Как устроен auto
Заинтересовался природой auto, но почему-то по нему как-то скудновато информации, все говорят что с ним можно сделать, а не как устроен. Тогда я попытался изучить сам. Верно ли утверждение, что auto работает на этапе исполнения и создаёт переменную нужного типа, но тип она менять не может? Если да, то почему тогда не сделали auto который может принимать любой объект и по сути быть безтиповой переменной? Есть ли такое в плюсах? Если auto работает на этапе исполнения, есть ли такой же аналог, только на этапе компиляции, какой-нибудь директивой препроцессора(конечно при условии, что никакой неопределённости не будет в начении)?