프로그래밍 언어/C++

[게임 프로그래머 입문 올인원] C++11 (Modern C++) 1 : auto (68강)

순정법사 2024.02.22

A. Modern C++

1. auto 키워드

a.  auto란?

🌟 변수의 타입을 컴파일러가 자동으로 추론(type deduction)해 결정하도록 하는 기능

 

  • 코드를 간결하게 작성하고 유지보수성을 높여줌
  • 다른 키워드 (int, double..) 보다 빠르지도 느리지도 않음
  • 💥 너무 남발하여 사용할 경우 가독성을 해치거나 의도하지 않은 타입 추론으로 인한 오류를 발생
  • 템플릿과 auto가 사용하는 뿌리가 같음 

 

주로 iterator를 사용할 떄 사용 (타이핑 귀찮음)

 

💙 타입 추론

변수의 타입을 컴파일러가 자동으로 추론하는 과정

◽◽◽ 타입 추론 코드

#include <iostream> #include <vector> int main() { ​​​​// int 타입 변수의 선언 ​​​​int x = 5; ​​​​// auto를 사용하여 변수의 타입을 추론 ​​​​auto y = x; // y는 int 타입으로 추론됨 ​​​​// double 타입 변수의 선언 ​​​​double z = 3.14; ​​​​// auto를 사용하여 변수의 타입을 추론 ​​​​auto w = z; // w는 double 타입으로 추론됨 ​​​​// vector<int> 타입의 벡터 선언 ​​​​std::vector<int> numbers = {1, 2, 3, 4, 5}; ​​​​// auto를 사용하여 벡터의 타입을 추론 ​​​​auto nums_copy = numbers; // nums_copy는 std::vector<int> 타입으로 추론됨 ​​​​// 벡터 요소 출력 ​​​​for (auto num : nums_copy) { ​​​​​​​​std::cout << num << " "; ​​​​} ​​​​std::cout << std::endl; ​​​​return 0; }

 

b. 주의사항

💥 auto는 const와 &값을 빼고 추론

 

 

하나는 참조값, 하나는 const값을 가지고 있지만 

auto 키워드를 사용하는 ref2, cst2는 둘다 int로 추론됨

 

형식만 맞다면 이렇게 수정해서 사용할 수 있음 / 사용 예시 (복사된 값의 원본 건드리기)

 

이렇게 형식도 안맞으면 사용도 못함

 

 

 


출처 : https://www.inflearn.com/course/%EA%B2%8C%EC%9E%84-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8-%EC%9E%85%EB%AC%B8-%EC%98%AC%EC%9D%B8%EC%9B%90-rookiss#curriculum

 

[게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버 -

어디부터 시작할지 막막한 게임 프로그래밍 입문자를 위한 All-In-One 커리큘럼입니다. C++, 자료구조/알고리즘, STL, 게임 수학, Windows API, 게임 서버 입문으로 이어지는 알찬 커리큘럼으로 게임 프

www.inflearn.com