Modern C++ auto

CJB_ny·2022년 8월 26일
0

C++ 정리

목록 보기
73/95
post-thumbnail

2011년 기준으로 C++이 많이 달라졌고

현업에서도 사용하고 중요하니 꼭 숙지를 해아한다.

auto

타입을 자동으로 추론해서 찾아준다.
일종의 '조커카드'
형식 연역(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사용하는거 고려할 수 있지만, 일반적인 상황에서는 타입을 항상 적어주자!

이런식으로.

profile
https://cjbworld.tistory.com/ <- 이사중

0개의 댓글