프로그래밍 언어/C++
[C++]auto
claire
2022. 1. 13. 00:30
auto 키워드는 선언된 변수의 초기화 식을 사용하여 해당 형식을 추론하도록 컴파일러에 지시한다.
즉, auto 키워드를 사용하면 초기값 형식에 맞춰 선언하는 인스턴스(변수)의 형식이 자동으로 결정된다. 이것을 타입 추론(type inference)라고 한다.
auto d=5.0; //5.0은 double type이므로 d는 double로 결정
auto i=1+2; //1+2는 int type이므로 i는 int 타입
변수를 함수의 반환 값으로 초기화 할 때도 사용 가능하다.
int add(int x, int y)
{
return x + y;
}
int main()
{
auto sum = add(5, 6); // add() returns an int, so sum will be type int
return 0;
}
auto는 함수 매개 변수와 함께 사용할 수 없다. 아래와 같이 사용 불가. 컴파일러가 컴파일 시 함수 매개 변수 x와 y에 대한 타입을 추론할 수 없기 때문이다.
void addAndPrint(auto x, auto y) { std::cout << x + y; }
C++14에서는 auto 키워드가 함수의 반환 타입을 자동으로 추론할 수 있도록 확장되었다.
auto add(int x,int y)
{
return x+y;
}
하지만 위의 문법은 사용하지 않는 게 좋다. 함수의 반환 타입은 호출자가 함수에서 어떤 값을 반환할 지 예상하는데 auto 키워드를 사용하면 잘못 해석할 수 있으며 오류가 발생할 수 있다.