Тип даннных auto

Я не совсем понимаю, что значит данное выражение: auto ptr = find(ba, ba + 6, str[i]); Вроде как auto определяет тип данных сам. Но тогда почему я не могу написать int* ptr = find(ba, ba + 6, str[i]); ?


Ответы (1 шт):

Автор решения: Harry

Какой тип вы напишете, например, тут, вместо ????

template<typename T, typename F>
void calc(T& x, F func)
{
    ??? z = func(x);
    ??? y = func(z);
    ....
}

Там, где вы тип знаете точно — вам же никто не запрещает использовать его, а не auto? В чем проблема? Например, никто не мешает написать

std::vector<std::set<std::string>>::const_iterator a = v.begin();

вместо

auto a = v.begin();
→ Ссылка