2011년 기준으로 C++이 많이 달라졌고
현업에서도 사용하고 중요하니 꼭 숙지를 해아한다.
타입을 자동으로 추론해서 찾아준다.
일종의 '조커카드'
형식 연역(type deduction)
추론 규칙은 생각보다 복잡해질 수 있다.
조커카드이기는 하지만
auto* test2 = a; 이런거는 바로 에러남
'상식 선에서 다 맞춰준다'
기본 auto는 const, & 무시한다.
test1 -> int&, test2 -> const int로 될거같지만
실제로는 test1 -> int, test2 -> const int 로 됨.
int& data로 받아서 싹다 100 으로 바꾸는 것 까지 OK.
그런데 auto배우고 나서
그런데 이렇게 바꾼 다음에
확인하니까 벡터의 값이 안바뀜.
=> 참조값 무시해서 이렇게 됨.
auto가 참조를 할 수 있게
이렇게 똑같이 참조를 주거나,
이렇게 캐스팅을 해주어야한데 캐스팅한다면 auto쓰는 이유가 없으니까
일반적으로는 auto& 이런식으로 사용한다.
map이나 vector의 경우 이게 거의 공식이다.
그런데 치는게 너무 귀찮다.
이럴때는 auto사용하는거 고려할 수 있지만, 일반적인 상황에서는 타입을 항상 적어주자!
이런식으로.