Auto (C++11)
auto 는 기존의 자료형 자리에 위치하며 자료형을 타입 추론으로 대체할 수 있습니다.
- C++11 부터 사용할 수 있습니다.
- template argument deduction rules 이 적용됩니다.
#include <iostream>
int main(int argc, char** argv)
{
auto intNum = 4;
auto floatNum = 4.2;
}
auto keyword 가 가장 많이 사용되는 경우는 위와 같이 변수선언을 할 때입니다.
auto 를 사용할 때는 변수 선언과 동시에 반드시 초기화가 이루어질 필요가 있으며, 초기화 시 주어지는 값을 통해 타입을 추론하여 가장 적합한 자료형이 지정됩니다.
이 키워드는 코드의 양을 줄여주고, 가독성을 높여 줄 수 있습니다.
아래 코드는 추후 기술할 STL 을 사용한 코드입니다. iterA 변수의 선언식과 iterB 의 선언식을 비교해보면, 코드가 줄어들었음을 확인할 수 있습니다.
#include <vector>
int main(int argc, char** argv)
{
std::vector vector;
std::vector::iterator iterA = vector.begin();
auto iterB = vector.begin();
}
#include <vector>
int main(int argc, char** argv)
{
std::vector vector;
std::vector::iterator* iterA = (std::vector::iterator*) &vector.begin();
auto iterB = (std::vector::iterator*) &vector.begin();
}