[C++] 타입 추론에 대하여
🌈 프로그래밍/C++

[C++] 타입 추론에 대하여

반응형

 

안녕하세요? 수구리입니다.

 

 

지난 포스팅에서는 C++에서의 레퍼런스(참조) 방식과 예외처리에 대해서 알아봤었죠?

 

 

2021.08.19 - [C++] - [C++] 1.2.4 ~ 1.2.5 레퍼런스와 익셉션

 

[C++] 1.2.4 ~ 1.2.5 레퍼런스와 익셉션

안녕하세요? 수구리입니다. 지난 포스팅에서는 C++의 const에 대해서 알아봤었죠? 지난 포스팅 참고! 2021.08.18 - [C++] - [C++] 1.2.3 const의 이해 [C++] 1.2.3 const의 이해 지난 포스팅에는 C++에서의 스트링..

tasddc.tistory.com

 

이번 포스팅에서는 C++의 타입 추론 키워드인 auto에 대하여 알아보도록 하겠습니다!

 

 

바로 시작해보겠씁니다~

 

 

1.2.6 타입 추론

  • 표현식의 타입을 컴파일러가 스스로 알아내는 기능이다.
  • 키워드로는 auto와 decltype이 있다.

 

auto 키워드

  • auto 키워드는 다음과 같은 상황에서 사용.
    • 함수의 리턴 타입을 추론한다.
    • 구조적 바인딩에 사용한다.
    • 표현식의 타입을 추론하는 데도 사용한다.
    • non-type 템플릿 매개변수의 타입을 추론하는 데 사용한다.
    • decltype(auto)에서 사용한다.
    • 함수에 대한 또 다른 문법으로 사용한다.
    • 제네릭 람다 표현식에서 사용한다.

 

  • 복잡한 타입에 적용할 때는 auto를 사용하면 편리하다.
// 복잡한 타입을 return하는 getFoo 함수.
auto result = getFoo();
  • 위와 같이 작성이 가능하다. 나중에 함수의 리턴 타입을 변경하더라도 간단히 수정이 가능하다.
  • 하지만 auto로 타입을 추론하게 되면 함수에 지정된 레퍼런스나 const 한정자가 제거된다!

auto 키워드를 사용하여 타입을 추론할 때의 주의할 점

auto를 지정하면 레퍼런스와 const 지정자가 사라져서 값이 복제된다는 점에 유의하자. 복제 방식으로 전달되지 않게 하려면 auto&나 const auto&로 지정한다.

 

decltype 키워드

// 컴파일러는 y가 타입이 x인 int 라고 추론하게 된다.
int x = 123;
decltype(x) y = 456;
  • 인수로 지정한 표현식의 타입을 알아낸다.
  • const 지정자를 삭제하지 않는다는 점에서 auto랑 다르다.
  • 자세한 내용은 12장과 22장에서..

 

이상으로 auto 키워드와 devltype 키워드에 대해서 알아보았습니다!

 

여기까지가 C++에서 제공하는 고급 기능에 대해서 알아보았고,

 

다음 포스팅부터는 OOP(Object Oriented Programming)에 대한 내용들을 다뤄보겠습니다.

 

 

감사합니다.

 

반응형