서적/Effective Modern C++

항목 5: 명시적 형식 선언보다는 auto를 선호하라

박오이님 2022. 7. 4. 23:59

먼저, Effective Modern C++을 책을 읽기 시작했습니다.

항목 1~4는 어딨을까요? 필자는 템플릿을 문법만 알지.. 잘 쓰지 못한다.. 그래서 잠깐 스킵

auto 의 장점
1. 변수의 초기화를 빼먹는 실수를 방지한다.

int x1;		//	문맥에 따라서는 초기화되지 않을 수 있음
auto x2;	//	Error
auto x3 = 0; 	//	Ok

2. 반드시 형식을 지정해줘야 하는 경우보다 편리성과 효율성에서 장점을 가진다.
std::function 객체를 통해서 클로저를 호출하는 것은 거의 항상 auto로 선언된 객체를 통해 호출하는 것보다 느리다.
메모리와 시간을 더 많이 소비한다. 
와우....처음 알았음..

3.32 bit -> 64bit 이식할 때 문제 방지를 할 수 있다.

4. 리팩토링의 장점
초기화 표현식의 형식이 변하면 자동으로 변한다.

auto 의 단점

1. 가독성

정리

- auto 변수는 반드시 초괴화해야 하며, 이식성 또는 효율성 문제를 유발할 수 있는 형식 불일치가 발생하는 경우가 거의 없으며, 대체로 변수의 형식을 명시적으로 지정할 때보다 타자량도 더 적다.

- auto로 형식을 지정한 변수는 항목 2와 항목 6에서 설명한 문제점들을 겪을 수 있다.