하다보니

[C++]auto 본문

프로그래밍 언어/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 키워드를 사용하면 잘못 해석할 수 있으며 오류가 발생할 수 있다. 

'프로그래밍 언어 > C++' 카테고리의 다른 글

[C++]pair 사용법  (0) 2022.01.22
[C++]문자열 숫자 간 형변환  (0) 2022.01.13
sort algorithm  (0) 2022.01.10
fill 함수  (0) 2022.01.09
[C++]배열  (0) 2022.01.09